Mesure Automatisée de la Largeur des Fissures à partir d'Imagerie
La mesure automatisée de la largeur des fissures calcule l'ouverture des fissures détectées à partir de masques de pixels segmentés en utilisant la transformée ...
La squelettisation de fissures est l’opération morphologique de traitement d’image qui réduit une région binaire segmentée de fissure en une représentation de ligne centrale d’un pixel de large à l’aide d’algorithmes d’amincissement tels que Zhang-Suen, Lee ou la transformée de l’axe médian. Le squelette permet la mesure précise de la longueur des fissures, l’analyse des ramifications, la classification des motifs de fissuration, l’estimation de la largeur et la quantification de la tortuosité dans les systèmes automatisés d’inspection des chaussées.
La squelettisation de fissures (également appelée amincissement ou extraction de l’axe médian) est une opération morphologique de traitement d’image qui réduit une région binaire segmentée de fissure en une représentation de ligne centrale d’un pixel de large — le squelette — tout en préservant les propriétés topologiques (connectivité, structure de ramification) et les relations géométriques (forme du chemin, orientation) de la fissure d’origine. Le squelette représente la « ligne centrale » ou « l’axe médian » de la fissure et constitue le fondement de pratiquement toute analyse quantitative de la géométrie des fissures dans l’inspection automatisée des chaussées.
Formellement, pour une image binaire I avec les pixels de fissure définis sur 1 (premier plan) et l’arrière-plan sur 0, la squelettisation produit un ensemble S ⊆ I avec quatre propriétés essentielles. S a une largeur d'1 pixel : chaque pixel de S a au plus deux voisins 8-connexes également dans S, sauf aux jonctions où un degré supérieur à 2 est autorisé. S est topologiquement équivalent à I : S et I ont le même nombre de composantes connexes et la même structure de trous/boucles — la caractéristique d’Euler est préservée. S est centré dans I : chaque pixel du squelette se trouve approximativement sur la ligne médiane locale de la fissure. S est suffisant pour la reconstruction : dans le cas de la transformée de l’axe médian (MAT), la forme originale peut être approximativement reconstruite à partir du squelette et de ses valeurs de rayon associées.

Dans l’analyse automatisée des fissures de chaussées, la squelettisation sert d’étape intermédiaire critique entre la détection et la segmentation des fissures et l’estimation quantitative des paramètres. Le squelette permet sept fonctions analytiques principales. La mesure de la longueur des fissures est directement calculée en traçant les chemins de pixels le long de la ligne centrale d’un pixel de large. L’estimation de la largeur des fissures utilise la distance des pixels du squelette aux limites de la fissure pour calculer les statistiques de largeur locales et globales. La classification des motifs de fissuration détecte les jonctions, les branches et la structure topologique pour distinguer les fissurations en carrelage, en bloc, longitudinales et transversales. L’analyse de l’orientation des fissures détermine la direction dominante de la fissure par segment. La quantification de la tortuosité mesure la courbure et le méandre de la fissure comme rapport de la longueur du chemin du squelette à la distance euclidienne des extrémités. La réduction de données compresse la région de fissure de centaines ou milliers de pixels en une représentation linéaire compacte, efficace sur le plan computationnel pour l’analyse en aval. L’analyse basée sur les graphes convertit le squelette en un graphe euclidien avec des nœuds représentant les jonctions et les extrémités et des arêtes représentant les segments de fissure pour une analyse structurelle et topologique avancée.
Le squelette fournit un descripteur fonctionnel qui fait le pont entre les données pixels de bas niveau et les paramètres d’évaluation d’état de haut niveau — longueur de fissure en mètres, largeur moyenne en millimètres, densité de fissuration et déductions de l’indice de condition des chaussées (PCI) telles que définies dans les normes ICAO ALACPA/09-2012, FAA PAVER, ASTM D5340-12 et ASTM D6433.
Quatre algorithmes principaux sont utilisés pour la squelettisation de fissures : l’amincissement de Zhang-Suen, l’amincissement de Guo-Hall, la squelettisation de Lee et la transformée de l’axe médian (MAT). Chacun présente des caractéristiques distinctes qui le rendent adapté à différents scénarios d’analyse des chaussées.
L’algorithme de Zhang-Suen (ZS), publié par T.Y. Zhang et C.Y. Suen dans Communications of the ACM (Vol. 27, No. 3, mars 1984), est l’algorithme d’amincissement le plus utilisé dans l’analyse des fissures de chaussées en raison de sa rapidité, de sa simplicité et de ses bons résultats sur les motifs allongés ressemblant à des fissures. ZS est un algorithme d’amincissement itératif parallèle qui opère sur des images binaires en supprimant répétitivement les pixels de bordure tout en préservant la connectivité.
La convention d’étiquetage des voisins pour chaque pixel P1 considéré arrange ses huit voisins dans l’ordre horaire : P9 (haut-gauche), P2 (haut-centre), P3 (haut-droite), P8 (centre-gauche), P4 (centre-droite), P7 (bas-gauche), P6 (bas-centre), P5 (bas-droite). Deux fonctions sont définies pour chaque pixel noir P1 : A(P1) est égal au nombre de transitions du blanc (0) au noir (1) dans la séquence circulaire ordonnée de P2 à P9 et retour à P2, ce qui mesure le nombre de composantes d’arrière-plan connectées dans le voisinage ; B(P1) est égal au nombre de pixels voisins noirs de P1.
ZS est un algorithme à deux sous-itérations. Chaque itération comprend deux étapes séquentielles. À l’étape 1, les pixels sur les bordures nord et est sont marqués pour suppression ; à l’étape 2, les pixels sur les bordures sud et ouest sont marqués. Seuls les pixels qui satisfont simultanément les conditions des deux sous-itérations sont supprimés.
Conditions de l’étape 1 (marquage pour suppression) : P1 est un pixel noir de premier plan ET a 8 voisins (n’est pas un pixel de bordure de l’image) ; 2 ≤ B(P1) ≤ 6 (garantit que P1 n’est ni une extrémité ni un pixel intérieur épais) ; A(P1) = 1 (préserve la connectivité en empêchant la suppression des pixels qui relient plusieurs composantes d’arrière-plan) ; P2 × P4 × P6 = 0 (au moins un des voisins est, sud ou ouest est blanc) ; et P4 × P6 × P8 = 0 (au moins un des voisins nord, est ou sud est blanc). Les conditions 4 et 5 ensemble garantissent que seuls les pixels de bordure nord/est sont supprimés à l’étape 1.
Conditions de l’étape 2 (marquage pour suppression) : Les conditions 1, 2 et 3 sont identiques à l’étape 1. Les conditions 4 et 5 changent pour cibler les pixels de bordure sud/ouest : P2 × P4 × P8 = 0 (au moins un des voisins nord, est ou ouest est blanc) et P2 × P6 × P8 = 0 (au moins un des voisins nord, sud ou ouest est blanc).
Le processus itératif se répète jusqu’à ce qu’aucun pixel ne soit supprimé dans l’une ou l’autre étape. Les suppressions sont effectuées après chaque passage complet pour éviter que l’ordre de suppression n’affecte les résultats (parallélisme). L’algorithme se termine lorsqu’aucun pixel ne satisfait les conditions de l’étape 1 ou de l’étape 2. En pratique, les images de fissures nécessitent généralement 5 à 15 itérations. L’implémentation standard utilise une table de correspondance de 256 entrées indexées par le motif de voisinage 8 bits pour l’efficacité computationnelle.
Les caractéristiques de Zhang-Suen incluent la préservation de la 8-connexité du premier plan, des performances très rapides de O(n) par itération, la production de squelettes qui peuvent conserver certaines lignes diagonales de 2 pixels de large, une sensibilité modérée au bruit produisant des branches parasites (épines) aux limites des régions de fissures irrégulières (l’élagage est presque toujours nécessaire), et un centrage bon mais imparfait avec un léger biais vers certaines configurations de bordure.
L’algorithme de Guo-Hall (GH), publié par Z. Guo et R.W. Hall dans Communications of the ACM (Vol. 32, No. 3, 1989), est un autre algorithme d’amincissement parallèle à deux sous-itérations conçu pour pallier les limitations de ZS — en particulier la production de lignes diagonales de 2 pixels de large et la sensibilité au bruit. GH utilise deux sous-itérations avec la même structure que ZS mais avec des conditions de suppression différentes : les itérations impaires suppriment les pixels de bordure nord-est (similaire à l’étape 1 de ZS) et les itérations paires suppriment les pixels de bordure sud-ouest (similaire à l’étape 2 de ZS), en utilisant un ensemble plus restrictif de conditions de voisinage.
Les conditions de Guo-Hall pour l’itération impaire exigent : P1 est un pixel noir de premier plan ; 2 ≤ B(P1) ≤ 6 ; A(P1) = 1 ; P2 × P4 × P6 = 0 ; et P4 × P6 × P8 = 0. Pour l’itération paire : P1 est un pixel noir de premier plan ; 2 ≤ B(P1) ≤ 6 ; A(P1) = 1 ; P2 × P4 × P8 = 0 ; et P2 × P6 × P8 = 0. GH ajoute une condition de vérification pour empêcher l’élimination complète des lignes diagonales : le pixel n’est pas supprimé s’il est le seul pixel restant reliant deux composantes de squelette autrement déconnectées, déterminé en vérifiant si la suppression violerait la 8-connexité en utilisant une correspondance de motifs spécifique.
| Propriété | Zhang-Suen | Guo-Hall |
|---|---|---|
| Épaisseur du squelette | Peut laisser des lignes diagonales de 2 pixels | Un pixel partout |
| Gestion des diagonales | Médiocre — produit des diagonales plus épaisses | Bonne — conserve les diagonales d'1 pixel |
| Temps d’exécution | Légèrement plus rapide | Comparable |
| Centrage | Bon | Bon |
| Formation d’épines | Modérée | Légèrement moins d’épines |
| Connectivité | Bonne | Meilleure pour les caractéristiques fines |
| Implémentation | Simple | Modérée (vérifications supplémentaires) |
Selon des benchmarks publiés, GH produit des squelettes plus fins que ZS dans l’ensemble et gère mieux les motifs de lignes diagonales, mais à un coût computationnel marginalement plus élevé.
L’algorithme de Lee, publié par T.-C. Lee, R.L. Kashyap et C.-N. Chu dans Computer Vision, Graphics, and Image Processing (Vol. 56, No. 6, 1994), étend l’amincissement aux images binaires 3-D en utilisant une structure de données octree pour examiner les voisinages 3×3×3. Pour l’analyse de fissures 2-D, il offre une alternative utile à ZS. Lorsqu’il est appliqué aux images 2-D (comme dans skeletonize(image, method='lee') de scikit-image), il suit le même principe fondamental de suppression itérative des pixels de bordure mais utilise une approche en deux phases par itération : identification des candidats (balayage de tous les pixels de bordure du premier plan et identification de ceux pouvant être supprimés en fonction de la correspondance de modèles par rapport à un ensemble de 256 motifs 3×3) et revérification séquentielle (les candidats sont réexaminés séquentiellement pour vérifier que la suppression ne rompt pas la connectivité). Cette revérification séquentielle est la principale différence par rapport à ZS — elle préserve mieux la connectivité mais est légèrement plus lente.
Les principales propriétés de l’algorithme de Lee incluent une préservation supérieure de la connectivité par rapport à ZS pour les réseaux de fissures complexes avec plusieurs jonctions, des squelettes constamment d’un pixel de large, une vitesse plus lente pour les images 2-D en raison de la phase de revérification séquentielle (conçue principalement pour la 3-D), et une formation d’épines comparable ou légèrement meilleure que ZS.
La transformée de l’axe médian (MAT), introduite par H. Blum dans Models for the Perception of Speech and Visual Form (MIT Press, 1967), est une approche fondamentalement différente de l’amincissement itératif. Elle est basée sur la transformée de distance de l’image binaire. L’axe médian d’un objet binaire est l’ensemble de tous les points qui ont plus d’un point le plus proche sur la frontière de l’objet — de manière équivalente, le lieu des centres des cercles inscrits maximaux (disques) qui s’insèrent entièrement à l’intérieur de l’objet.
Le calcul comprend trois étapes. Premièrement, calculer la transformée de distance : pour chaque pixel de premier plan (fissure), calculer sa distance euclidienne au pixel d’arrière-plan le plus proche, produisant une carte de distance D(x,y). Deuxièmement, identifier les points de crête : l’axe médian est constitué des pixels qui sont des maxima locaux dans la transformée de distance — des pixels dont la valeur de distance à la frontière est supérieure ou au moins égale à celle de l’un de leurs voisins. Troisièmement, seuillage et amincissement : les points de crête avec des valeurs de distance supérieures à un seuil de bruit forment le squelette initial, avec un amincissement supplémentaire appliqué pour garantir une largeur d’un pixel.
| Propriété | Amincissement itératif (ZS, GH, Lee) | Transformée de l’axe médian |
|---|---|---|
| Principe | Suppression itérative des bordures | Crêtes de la transformée de distance |
| Centrage | Bon, approximatif | Optimal — intrinsèquement centré |
| Information de largeur | Nécessite un calcul séparé | Intégrée (valeurs de distance) |
| Coût computationnel | Rapide (O(n) par itération) | Modéré (transformée de distance) |
| Formation d’épines | Significative | Moins d’épines |
| Connectivité | Préservée | Peut produire des composantes déconnectées |
| Robustesse au bruit | Modérée | Moins robuste aux frontières irrégulières |
| Lissage du squelette | Peut être irrégulier | Globalement plus lisse |
Pour l’analyse des fissures de chaussées, les algorithmes d’amincissement (en particulier ZS) sont plus couramment utilisés car les fissures sont des structures allongées et irrégulières où le centrage strict de la MAT est moins critique et la préservation de la connectivité est primordiale.

La squelettisation produit inévitablement des branches parasites (également appelées épines, poils ou artefacts) — des branches latérales courtes qui ne correspondent pas à des caractéristiques réelles de fissures mais proviennent du bruit, des irrégularités de bordure ou de la texture des granulats dans la surface de la chaussée. Les principales sources incluent le bruit de contour (petites perturbations concaves/convexes dans le contour de la fissure qui sont squelettisées en branches courtes), la texture des granulats d’asphalte (variations de niveaux de gris près des bords de la fissure qui rendent la segmentation binaire avec des contours irréguliers), le bruit poivre et sel (pixels mal classifiés isolés dans l’image segmentée) et les artefacts de bifurcation de fissure (lorsque la largeur variable de la fissure amène le squelette à se diviser et se rejoindre brièvement).
La technique d’élagage la plus simple et la plus utilisée est l’élagage basé sur la longueur. L’algorithme identifie tous les pixels d’extrémité dans le squelette (pixels ayant exactement un voisin 8-connexe). Pour chaque extrémité, il trace la branche vers l’arrière jusqu’au squelette principal jusqu’à rencontrer un pixel de jonction (degré ≥ 3). Il mesure ensuite la longueur de la branche en pixels et supprime la branche si sa longueur est inférieure à un seuil T (les valeurs de seuil typiques vont de 5 à 30 pixels selon la résolution de l’image et les caractéristiques de la fissure). Le processus se répète jusqu’à ce qu’aucune autre branche ne soit élaguée, car la suppression d’une branche peut créer de nouvelles extrémités. Le seuil de longueur est généralement défini en fonction de l’étalonnage pixel-mm. Pour les résolutions d’imagerie de chaussées couramment utilisées (0,5-2 mm/pixel), un seuil de 10-20 pixels correspond à 5-40 mm, ce qui supprime efficacement le bruit induit par la texture tout en conservant les branches courtes réelles de fissures.
Décrite dans Li et al. (2023) pour l’analyse des fissures de chaussées en asphalte, la méthode du seuil de domaine connexe applique un étiquetage des composantes connexes à l’image du squelette, calcule le nombre de pixels pour chaque composante connexe et supprime les composantes dont le nombre de pixels est inférieur à un seuil (typiquement 50-200 pixels). Cela supprime simultanément le bruit isolé et les courtes branches parasites des squelettes de fissures autrement connectés.
Des approches plus sophistiquées prennent en compte des critères supplémentaires tels que l’angle branche-squelette (les branches formant des angles quasi perpendiculaires avec la ligne principale de fissure sont plus susceptibles d’être parasites), l’épaisseur de la branche à l’origine (une branche émergeant d’une section épaisse du squelette est plus susceptible d’être réelle), la valeur de la transformée de distance (les branches dont les valeurs de la transformée de distance changent brusquement sont plus susceptibles d’être du bruit) et la continuité du contour (si la branche n’a pas d’indentation correspondante sur le contour de la fissure, elle est parasite).
La morphologie mathématique offre des opérateurs d’élagage directs : bwmorph(BW, 'spur', k) de MATLAB supprime les pixels d’épines avec le paramètre k spécifiant les itérations, et la transformée hit-or-miss utilise la correspondance d’éléments structurants pour identifier et supprimer des motifs d’épines spécifiques. L’approche basée sur les graphes convertit le squelette en un graphe avec des nœuds (jonctions et extrémités) et des arêtes (chemins de pixels entre les nœuds), assigne des poids d’arête basés sur la distance euclidienne, élague les arêtes dont le poids est inférieur à un seuil et qui se connectent à une extrémité (arêtes feuilles), et élague en outre les arêtes courtes qui connectent deux jonctions si elles créent une petite boucle.
La méthode hybride Squelette-Élagage-EOB d’un article MDPI de 2025 sur la mesure de largeur des fissures dans le béton applique un élagage rapide du squelette utilisant le traçage itératif des extrémités avec suppression basée sur la longueur en utilisant un seuil adaptatif basé sur la largeur moyenne de la fissure, suivi d’une reconstruction Edge-OrthoBoundary (EOB) où le squelette restant subit un raffinement des contours pour garantir une mesure précise de la largeur.
La mesure précise de la longueur des fissures à partir du squelette nécessite une gestion soigneuse de la connectivité des pixels. L’approche fondamentale trace le chemin du squelette pixel par pixel et accumule les distances.
En partant d’une extrémité (ou de jonction à jonction), l’algorithme parcourt le chemin 8-connexe. Pour chaque paire consécutive de pixels (x₁, y₁) et (x₂, y₂), la distance appropriée est ajoutée. Trois métriques de distance sont disponibles. La distance 4-connexe ajoute 1,0 pour chaque pas orthogonal (horizontal ou vertical) mais ignore les connexions diagonales, produisant des longueurs systématiquement plus longues pour les segments de fissure diagonaux. La distance 8-connexe (Chebyshev) ajoute 1,0 pour chaque pas dans l’une des 8 directions, mais cela sous-estime la distance diagonale. La distance 8-connexe corrigée (Chamfer) ajoute 1,0 pour les pas orthogonaux et √2 ≈ 1,414 pour les pas diagonaux, donnant des mesures de longueur précises à environ 0,5 % près de la véritable longueur de chemin euclidien.
L’approche recommandée pour la mesure des fissures utilise le traçage 8-connexe avec correction √2 :
def squelette_longueur(pixels_squelette):
longueur_totale = 0.0
for i in range(len(pixels_squelette) - 1):
x1, y1 = pixels_squelette[i]
x2, y2 = pixels_squelette[i+1]
dx = abs(x2 - x1)
dy = abs(y2 - y1)
if dx == 1 and dy == 0 or dx == 0 and dy == 1:
longueur_totale += 1.0
elif dx == 1 and dy == 1:
longueur_totale += sqrt(2)
return longueur_totale
Pour les réseaux de fissures complexes avec ramifications, le squelette est décomposé en segments entre nœuds de jonction/extrémité. Tous les pixels de jonction (degré ≥ 3) et les pixels d’extrémité (degré = 1) sont détectés. Le squelette est décomposé en segments entre ces nœuds. Chaque segment est mesuré individuellement en utilisant la méthode de distance de Chamfer. La longueur totale de fissure est égale à la somme de toutes les longueurs de segments : L_total = Σᵢ Lᵢ où Lᵢ est la longueur 8-connexe corrigée du i-ème segment du squelette.
Le pipeline d’implémentation pratique extrait le squelette en utilisant l’amincissement de Zhang-Suen, élague les branches parasites (seuil de domaine connexe, minimum 50-200 pixels), calibre le ratio pixel-mm en utilisant un objet de référence de dimensions connues imagé à la même distance, trace les pixels ordonnés du squelette, applique l’accumulation de distance de Chamfer et convertit en unités physiques : L_mm = L_pixels × facteur_d_échelle.
Un pixel de jonction dans une image de fissure squelettisée est un pixel avec un degré ≥ 3 — trois pixels voisins du squelette ou plus dans un voisinage 8-connexe. Pour chaque pixel du squelette, le nombre de voisins 8-connexes est compté :
| Degré | Classification | Interprétation de la fissure |
|---|---|---|
| d = 0 | Sommet isolé | Bruit (généralement supprimé) |
| d = 1 | Sommet d’extrémité | Pointe de fissure, extrémité de branche ou détection incomplète |
| d = 2 | Sommet interne | Continuation d’un segment de fissure unique |
| d = 3 | Sommet de ramification (T/Y) | Bifurcation de fissure |
| d = 4 | Sommet de ramification (X) | Intersection de fissures |
| d ≥ 3 | Sommet de jonction | Point de ramification général |
Dans MATLAB, bwmorph(skel, 'branchpoints') détecte les pixels où le squelette se divise en utilisant une approche de table de correspondance qui examine le motif de voisinage 3×3 par rapport à des modèles précalculés pour les configurations de ramification. Cette fonction peut produire des groupes de points de ramification autour d’une seule jonction ; ceux-ci doivent être fusionnés en utilisant l’étiquetage des composantes connexes et en prenant le centroïde de chaque groupe.
À partir de la représentation graphe, huit métriques topologiques peuvent être calculées. Le nombre de jonctions (J) par unité de surface — un J élevé indique un réseau de fissures complexe et interconnecté. La distribution des degrés des nœuds inclut le degré moyen ⟨d⟩ = 2E/N (où E = nombre d’arêtes, N = nombre de nœuds), avec une fissure linéaire pure ayant ⟨d⟩ = 2 et un réseau ramifié ayant ⟨d⟩ > 2, et le rapport de degrés R_d = (nœuds de degré 3+) / (nœuds de degré 1). Le nombre de branches (B) compte le nombre total de segments du squelette entre les nœuds de jonction/extrémité. Les statistiques de longueur des branches incluent la longueur moyenne des branches (plus courte pour les fissures en carrelage, plus longue pour les fissures longitudinales/transversales), l’écart type (élevé pour les motifs de fissuration mixtes) et le coefficient de variation (utilisé pour distinguer la fissuration en bloc de la fissuration en carrelage). Le nombre de composantes connexes (C) indique soit des fissures distinctes multiples, soit des lacunes de détection. Le nombre d’Euler (χ) = C − H où H = nombre de trous (boucles), les boucles indiquant une fissuration en carrelage ou en bloc. La dimension fractale (D_f) utilisant la méthode de comptage par boîtes sur le squelette donne approximativement 1,0 pour les fissures linéaires droites, 1,2–1,4 pour les fissures sinueuses et 1,5–1,8 pour les fissures en carrelage. La taille des mailles pour la fissuration en bloc/carrelage — la surface polygonale moyenne issue de la détection de cycles dans le graphe — indique la sévérité de la fissuration.
| Motif de fissuration | Signature topologique |
|---|---|
| Longitudinale | Branche principale unique, quelques branches latérales courtes, d ≈ 2, J faible |
| Transversale | Branche principale unique traversant la chaussée, d ≈ 2, J faible |
| Bloc | Réseau polygonal avec cycles ≥4 côtés, J modéré, taille de maille moyenne à grande |
| Carrelage (Fatigue) | Réseau dense de petits polygones, J élevé, haute densité de branches, petite taille de maille, D_f ≥ 1,5 |
| Réflexion | Fissures linéaires à intervalles réguliers correspondant aux joints de dalle sous-jacents |
| Bordure/Ornière | Amas localisé de fissures, souvent parallèle à la direction du trafic |
Pour une caractérisation topologique avancée, les nombres de Betti fournissent un aperçu supplémentaire : β₀ est égal au nombre de composantes connexes (C), et β₁ est égal au nombre de cycles ou trous indépendants (H). Le genre g = β₁ = H. La fissuration en carrelage a un β₁ élevé, tandis que les fissures linéaires simples ont β₁ = 0.

La largeur des fissures est un paramètre critique pour évaluer la sévérité des dommages des chaussées dans des normes telles que ICAO ALACPA/09-2012, FAA PAVER et ASTM D6433. Le squelette fournit une référence naturelle pour la mesure de la largeur.
La méthode la plus directe utilise les valeurs de la transformée de distance aux pixels du squelette. La transformée de distance euclidienne (EDT) de l’image binaire de fissure stocke, pour chaque pixel de premier plan, la distance euclidienne au pixel d’arrière-plan le plus proche. Les valeurs EDT sont extraites à toutes les positions des pixels du squelette. Pour chaque pixel du squelette, la largeur locale de fissure = 2 × valeur_EDT (car l’EDT donne le rayon jusqu’à la frontière la plus proche). Les statistiques calculées incluent la largeur moyenne, la largeur maximale, la largeur minimale et l’écart type de la largeur. Les mises en garde incluent la surestimation de la largeur près des extrémités du squelette (le rayon EDT augmente aux pointes de fissure où la distance s’étend autour de la courbure de la pointe) et la sous-estimation aux jonctions (le squelette diverge du véritable axe médian aux points de ramification). La correction exclut généralement les 5 à 10 derniers pixels à chaque extrémité.
Une alternative plus précise tient compte de l’orientation locale de la fissure. Pour chaque pixel du squelette (x₀, y₀), l’orientation locale de la fissure θ est déterminée en ajustant une ligne à travers les pixels voisins du squelette (typiquement ±3-5 pixels le long du chemin du squelette). La direction normale est calculée : θ_normal = θ + π/2. Dans l’image binaire de fissure, un profil le long de la normale depuis (x₀, y₀) vers l’extérieur dans les deux directions est tracé jusqu’à atteindre des pixels d’arrière-plan. La largeur de fissure est égale à la distance totale (en pixels) entre les deux points d’intersection des limites le long de la normale. Les détails d’implémentation incluent l’utilisation de l’interpolation bilinéaire pour une précision sub-pixel lors du profilage, le réglage de la longueur du profil pour dépasser la largeur maximale attendue de la fissure (typiquement 50-100 pixels) et le maintien du pas normal à ≤ 1 pixel pour une détection précise des limites.
Les avantages du profilage perpendiculaire incluent une précision plus élevée que la méthode EDT et une meilleure gestion des sections transversales non circulaires des fissures. Les inconvénients incluent l’intensité computationnelle et la sensibilité au lissage du squelette (les squelettes irréguliers produisent des estimations d’orientation bruyantes).
La largeur maximale des fissures est un critère de sévérité standard dans les manuels d’inspection des chaussées de l’ICAO et de la FAA. Pour la calculer, la largeur est mesurée à chaque pixel du squelette (en utilisant l’EDT ou le profilage), et la valeur maximale est rapportée. Optionnellement, le tableau des largeurs est lissé avec une moyenne mobile (fenêtre de 5-11 pixels) pour filtrer les valeurs aberrantes avant de prendre le maximum. La largeur moyenne des fissures fait la moyenne des largeurs le long du squelette complet, en excluant les jonctions et les segments terminaux pour plus de précision. L’histogramme de distribution des largeurs caractérise l’uniformité de la fissure et identifie les emplacements d’élargissement localisé. Le coefficient de variation de la largeur (CV = σ_w / μ_w) : un CV élevé indique une fissuration non uniforme suggestive d’écaillage ou de détérioration des bords.
La tortuosité (τ) quantifie la déviation d’une fissure par rapport à une ligne droite. Elle est définie comme le rapport de la longueur réelle du chemin de la fissure à la distance euclidienne (ligne droite) entre ses extrémités :
τ = L_squelette / L_euclidienne
où L_squelette est la longueur totale du chemin le long du squelette (en utilisant la distance 8-connexe corrigée √2) et L_euclidienne est la distance euclidienne entre les deux extrémités du segment de fissure.
Les propriétés incluent τ ≥ 1,0 toujours (une ligne droite a τ = 1,0), τ = 1,0–1,05 indiquant une fissure quasi droite (typique des fissures thermiques transversales ou longitudinales), τ = 1,05–1,2 indiquant une fissure modérément sinueuse, τ = 1,2–1,5 indiquant une fissure hautement tortueuse (typique des branches secondaires de fissuration en carrelage) et τ > 1,5 indiquant un chemin extrêmement tortueux.
Pour les réseaux de fissures avec plusieurs branches, la tortuosité est calculée par segment de fissure (entre jonctions consécutives). Pour le segment i avec les extrémités A(x₁,y₁) et B(x₂,y₂) : τᵢ = L_squeletteᵢ / √[(x₂ - x₁)² + (y₂ - y₁)²]. La tortuosité globale du réseau de fissures peut être rapportée comme la tortuosité moyenne des segments τ_moyenne = (1/N) Σᵢ τᵢ, la tortuosité maximale des segments τ_max = max(τᵢ), ou la tortuosité globale utilisant les extrémités de l’ensemble du réseau de fissures (moins significative pour les fissures ramifiées).
La tortuosité est liée à la dimension fractale (D_f) du chemin de fissure. Pour une fissure avec une dimension fractale D_f : τ ≈ K · (L_euclidienne)^(D_f - 1) où K est une constante d’échelle. Cette relation est utilisée en mécanique de la rupture pour relier la tortuosité des fissures aux propriétés du matériau telles que l’engrènement des granulats et l’énergie de fracture. Selon des recherches de Purdue sur la tortuosité des fissures dans le béton, la tortuosité est directement corrélée à la perméabilité des fluides à travers le réseau de fissures — une tortuosité plus élevée entraîne une réduction de la surface d’écoulement effective et une perméabilité plus faible. Pour les applications de chaussées, les fissures à tortuosité plus élevée ont tendance à retenir moins d’eau et de débris, ce qui affecte le potentiel de dommages dus au gel-dégel.
La squelettisation de fissures fonctionne comme une étape de post-traitement dans un pipeline plus large d’analyse des fissures de chaussées. Le pipeline complet comprend six étapes. L’acquisition d’images capture l’imagerie de surface des chaussées à l’aide de caméras à balayage linéaire, d’appareils photo reflex numériques ou de véhicules d’inspection mobiles à des résolutions typiques de 0,5-2 mm/pixel. Le prétraitement applique la normalisation, l’amélioration du contraste et la réduction du bruit pour préparer l’image à la segmentation. La segmentation des fissures produit un masque binaire des régions de fissures en utilisant des modèles d’apprentissage profond (U-Net, DeepLab ou Mask R-CNN) ou des méthodes de seuillage traditionnelles. La squelettisation réduit le masque binaire à une ligne centrale d’un pixel de large en utilisant Zhang-Suen, Guo-Hall, Lee ou MAT. Le post-traitement applique l’élagage du squelette pour supprimer les branches parasites, le regroupement des jonctions pour fusionner les points de ramification proches et l’analyse des composantes connexes pour séparer les fissures distinctes. Le calcul des paramètres extrait la longueur, la largeur, la tortuosité, les métriques de ramification et la classification des motifs à partir du squelette nettoyé.
Le flux de données traite le masque binaire vers le squelette vers le graphe vers les paramètres. Les notes sur l’intégration de l’apprentissage profond indiquent que les systèmes modernes utilisent des modèles de segmentation entraînés sur des annotations de fissures au niveau pixel, la squelettisation étant appliquée à la sortie du modèle. La qualité du squelette dépend fortement de la qualité de la segmentation sous-jacente — la sur-segmentation crée de nombreuses branches parasites tandis que la sous-segmentation produit des squelettes déconnectés. Les approches d’entraînement conjoint qui intègrent des pertes de cohérence du squelette (segmentation sensible au squelette) sont un domaine de recherche actif.
L’évaluation quantitative de la qualité du squelette est essentielle pour valider les performances des algorithmes de squelettisation dans l’analyse des fissures de chaussées. Cinq métriques principales sont utilisées.
L’exhaustivité mesure la proportion de la région de fissure représentée par le squelette. Elle est calculée comme la fraction des pixels de premier plan dans le masque binaire qui se trouvent à moins d’un seuil de distance (typiquement 2-5 pixels) d’un pixel du squelette. Une valeur d’exhaustivité supérieure à 0,95 indique que le squelette capture adéquatement l’étendue complète de la fissure.
La correction (Précision) mesure la proportion de pixels du squelette qui se trouvent dans la région réelle de la fissure. Elle est calculée comme la fraction des pixels du squelette qui se trouvent dans le masque binaire (en considérant une petite tolérance pour les effets de bord). Une valeur de correction supérieure à 0,98 indique une structure hallucinée minimale.
L’IoU du squelette (Intersection sur Union) combine l’exhaustivité et la correction. Elle est calculée en dilatant le squelette par un petit rayon (par exemple, 2 pixels), en calculant l’intersection avec le masque binaire et en divisant par l’union. Cela fournit un score de qualité scalaire unique allant typiquement de 0,85 à 0,98 pour les algorithmes performants.
Le lissage mesure la cohérence de la courbure du chemin du squelette. Il est calculé en utilisant le taux moyen de changement d’orientation le long du squelette (déviation angulaire par pixel) ou le nombre de points d’inflexion par unité de longueur. Des valeurs plus faibles indiquent des squelettes plus lisses et plus naturels.
La connectivité vérifie que le squelette préserve la connectivité de la fissure d’origine. Elle est mesurée en comptant le nombre de composantes connexes dans le masque binaire et dans le squelette. Le rapport du nombre de composantes (composantes du squelette / composantes du masque) doit être proche de 1,0. L’erreur de la caractéristique d’Euler |χ_squelette − χ_masque| mesure la cohérence topologique.
L’erreur de centrage mesure à quel point le squelette représente le véritable axe médian. Elle est calculée comme la distance moyenne ou RMS des pixels du squelette au véritable axe médian (connu pour les cas de test synthétiques) ou à la ligne médiane du contour (estimée pour les images réelles).
Un score composite d’évaluation de la qualité peut être calculé comme une combinaison pondérée : Q = w₁Exhaustivité + w₂Correction + w₃(1 − LissageNormalisé) + w₄Connectivité, avec des poids ajustés selon les exigences de l’application.
Plusieurs bibliothèques logicielles implémentent des algorithmes de squelettisation adaptés à l’analyse des fissures.
OpenCV fournit cv2.ximgproc.thinning() dans le module de traitement d’image étendu. Cette fonction implémente les variantes Zhang-Suen (par défaut) et Guo-Hall, sélectionnables via le paramètre thinningType. Elle opère directement sur les images binaires et retourne un squelette d’un pixel de large. La fonction utilise des tables de correspondance efficaces et est optimisée pour les applications temps réel.
scikit-image fournit trois fonctions de squelettisation. skimage.morphology.skeletonize(image, method='zhang') implémente l’amincissement de Zhang-Suen. skimage.morphology.skeletonize(image, method='lee') implémente l’algorithme de Lee avec revérification séquentielle. skimage.morphology.medial_axis(image, return_distance=True) calcule la transformée de l’axe médian et retourne optionnellement les valeurs de la transformée de distance pour l’estimation de la largeur. Toutes les fonctions acceptent des tableaux binaires 2-D et retournent des squelettes binaires.
MATLAB fournit bwmorph(BW, 'skel', Inf) pour la squelettisation en utilisant l’algorithme de Zhang-Suen avec des itérations infinies, bwmorph(BW, 'branchpoints') pour la détection des jonctions, bwmorph(BW, 'endpoints') pour la détection des extrémités et bwmorph(BW, 'spur', k) pour la suppression itérative des épines. MATLAB fournit également bwdist() pour la transformée de distance utilisée dans les approches basées sur MAT.
SciPy fournit scipy.ndimage.distance_transform_edt() pour calculer la transformée de distance euclidienne, qui est utilisée avec la squelettisation pour l’estimation de la largeur via la méthode de la transformée de distance.
| Outil | Fonction | Algorithme | Cas d’utilisation |
|---|---|---|---|
| OpenCV | cv2.ximgproc.thinning() | ZS (défaut) ou GH | Analyse de fissures en temps réel |
| scikit-image | skeletonize(method='zhang') | Zhang-Suen | Squelettisation générale de fissures |
| scikit-image | skeletonize(method='lee') | Lee | Réseaux de fissures complexes |
| scikit-image | medial_axis() | MAT | Analyse intégrée de la largeur |
| MATLAB | bwmorph('skel', Inf) | ZS | Recherche et prototypage |
| MATLAB | bwmorph('branchpoints') | Détection de jonctions | Analyse de motifs |
| Fiji/ImageJ | Plugin Skeletonize3D | ZS, Lee | Analyse de fissures 3-D |
Fiji/ImageJ avec le plugin Skeletonize3D (par Ignacio Arganda-Carreras) fournit une squelettisation 2-D et 3-D et est largement utilisé en science des matériaux pour l’analyse des réseaux de fissures dans l’imagerie CT aux rayons X.
L’Organisation de l’aviation civile internationale (OACI) fournit des conseils sur l’inspection et la mesure des fissures de chaussées à travers plusieurs documents clés. L’ICAO ALACPA/09-2012 (Maintenance et gestion des chaussées aéroportuaires) spécifie les protocoles de mesure des fissures, y compris la mesure de la longueur en mètres en utilisant la méthode de la ligne centrale (correspondant directement à la mesure basée sur le squelette), la classification de la largeur en niveaux de sévérité (capillaire : <3 mm, moyen : 3-6 mm, sévère : >6 mm) et la classification des motifs (longitudinal, transversal, bloc, carrelage, réflexion). Le Manuel de conception des aérodromes de l’OACI (Doc 9157, Partie 3 — Chaussées) fait référence à l’ASTM D5340-12 (Méthode d’essai standard pour les relevés d’indice de condition des chaussées aéroportuaires) qui exige des calculs de densité de fissuration (longueur totale de fissure par unité de surface) et des évaluations de sévérité des fissures basées sur la largeur et le motif.
Le Manuel des dégradations FAA PAVER définit les types de fissures avec des codes spécifiques : longitudinale (L), transversale (T), bloc (B), carrelage/fatigue (A), réflexion (R) et bordure (E). Les seuils de sévérité sont définis pour la largeur en pouces : faible sévérité (capillaire à <1/4 pouce), sévérité moyenne (1/4 à 1/2 pouce) et sévérité élevée (>1/2 pouce). Les protocoles de mesure exigent l’enregistrement de la longueur des fissures pour les fissures linéaires et de la superficie pour les fissures de surface. L’ICAO ALACPA et la FAA PAVER exigent le calcul du PCI en utilisant la densité de fissuration (longueur par surface), les valeurs de déduction à partir de courbes standardisées et les facteurs de correction pour les multiples types de dégradations. Les algorithmes de squelettisation calculent directement tous les paramètres requis : longueur de fissure (Section 4), largeur moyenne (Section 6), densité de fissuration (longueur par unité de surface de chaussée) et classification des motifs (Section 5) pour l’attribution automatisée des déductions PCI.
Pour plus d’informations sur la mise en œuvre de la squelettisation de fissures dans votre flux de travail d’inspection des chaussées, contactez notre équipe ou planifiez une démonstration .
Tirez parti de la squelettisation avancée des fissures et de l'extraction géométrique pour une évaluation précise de l'état des chaussées. Nos solutions de vision par ordinateur intègrent l'analyse de la longueur, de la largeur et des motifs basée sur le squelette pour fournir des indices PCI précis et des recommandations de maintenance. Contactez-nous pour une démonstration de notre plateforme d'inspection automatisée.
La mesure automatisée de la largeur des fissures calcule l'ouverture des fissures détectées à partir de masques de pixels segmentés en utilisant la transformée ...
La segmentation de fissures est une tâche de vision par ordinateur consistant à classer chaque pixel d'une image comme fissure ou non-fissure, produisant un mas...
La détection de fissures par IA utilise la vision par ordinateur — réseaux de neurones convolutifs, vision transformers et modèles de segmentation sémantique — ...