Segmentación de Grietas
La segmentación de grietas es la tarea de visión por computadora que clasifica cada píxel de una imagen como grieta o no grieta, produciendo una máscara binaria...
La esqueletización de grietas es la operación morfológica de procesamiento de imágenes que reduce una región de grieta binaria segmentada a una representación de línea central de un píxel de ancho utilizando algoritmos de adelgazamiento como Zhang-Suen, Lee o la transformada del eje medial. El esqueleto permite la medición precisa de la longitud de la grieta, el análisis de ramificaciones, la clasificación de patrones de grietas, la estimación del ancho y la cuantificación de la tortuosidad en sistemas automatizados de inspección de pavimentos.
La esqueletización de grietas (también conocida como adelgazamiento o extracción del eje medial) es una operación morfológica de procesamiento de imágenes que reduce una región de grieta binaria segmentada a una representación de línea central de un píxel de ancho — el esqueleto — mientras preserva las propiedades topológicas (conectividad, estructura de ramificación) y las relaciones geométricas (forma del trazado, orientación) de la grieta original. El esqueleto representa la “línea central” o “eje medial” de la grieta y es la base para prácticamente todo el análisis cuantitativo de geometría de grietas en la inspección automatizada de pavimentos.
Formalmente, para una imagen binaria I con píxeles de grieta establecidos en 1 (primer plano) y fondo en 0, la esqueletización produce un conjunto S ⊆ I con cuatro propiedades esenciales. S tiene 1 píxel de ancho: cada píxel en S tiene como máximo dos vecinos 8-conectados también en S, excepto en las uniones donde se permite un grado superior a 2. S es topológicamente equivalente a I: S e I tienen el mismo número de componentes conectados y la misma estructura de agujeros/bucles — la característica de Euler se preserva. S está centrado dentro de I: cada píxel del esqueleto se encuentra aproximadamente en la línea media local de la grieta. S es suficiente para la reconstrucción: en el caso de la transformada del eje medial (MAT), la forma original puede reconstruirse aproximadamente a partir del esqueleto más sus valores de radio asociados.

En el análisis automatizado de grietas en pavimentos, la esqueletización sirve como un paso intermedio crítico entre la detección y segmentación de grietas y la estimación de parámetros cuantitativos. El esqueleto permite siete funciones analíticas principales. La medición de la longitud de la grieta se calcula directamente trazando trazados de píxeles a lo largo de la línea central de un píxel de ancho. La estimación del ancho de la grieta utiliza la distancia desde los píxeles del esqueleto hasta los bordes de la grieta para calcular estadísticas de ancho local y agregado. La clasificación de patrones de grietas detecta uniones, ramas y estructura topológica para distinguir entre grietas de piel de cocodrilo, de bloque, longitudinales y transversales. El análisis de orientación de grietas determina la dirección dominante de la grieta por segmento. La cuantificación de la tortuosidad mide la curvatura y el serpenteo de la grieta como una relación entre la longitud del trazado del esqueleto y la distancia euclidiana entre los puntos extremos. La reducción de datos comprime la región de la grieta de cientos o miles de píxeles a una representación lineal compacta que es computacionalmente eficiente para el análisis posterior. El análisis basado en grafos convierte el esqueleto en un grafo euclidiano con nodos que representan uniones y puntos finales y aristas que representan segmentos de grieta para un análisis estructural y topológico avanzado.
El esqueleto proporciona un descriptor funcional que une los datos de píxeles de bajo nivel y los parámetros de evaluación de condición de ingeniería de alto nivel — longitud de la grieta en metros, ancho medio en milímetros, densidad de grietas y deducciones del Índice de Condición del Pavimento (PCI) según lo definido en las normas ICAO ALACPA/09-2012, FAA PAVER, ASTM D5340-12 y ASTM D6433.
Cuatro algoritmos principales se utilizan para la esqueletización de grietas: el adelgazamiento de Zhang-Suen, el adelgazamiento de Guo-Hall, la esqueletización de Lee y la Transformada del Eje Medial (MAT). Cada uno tiene características distintas que lo hacen adecuado para diferentes escenarios de análisis de pavimentos.
El algoritmo Zhang-Suen (ZS), publicado por T.Y. Zhang y C.Y. Suen en Communications of the ACM (Vol. 27, No. 3, marzo de 1984), es el algoritmo de adelgazamiento más utilizado en el análisis de grietas en pavimentos debido a su velocidad, simplicidad y buenos resultados en patrones alargados similares a grietas. ZS es un algoritmo de adelgazamiento iterativo paralelo que opera sobre imágenes binarias eliminando repetidamente píxeles de borde mientras preserva la conectividad.
La convención de etiquetado de vecinos para cada píxel P1 bajo consideración organiza sus ocho vecinos en orden horario: P9 (superior-izquierdo), P2 (superior-centro), P3 (superior-derecho), P8 (centro-izquierdo), P4 (centro-derecho), P7 (inferior-izquierdo), P6 (inferior-centro), P5 (inferior-derecho). Se definen dos funciones para cada píxel negro P1: A(P1) es igual al número de transiciones de blanco (0) a negro (1) en la secuencia circular ordenada P2 a P9 y de vuelta a P2, que mide el número de componentes de fondo conectados en la vecindad; B(P1) es igual al número de vecinos de píxel negro de P1.
ZS es un algoritmo de dos subiteraciones. Cada iteración consta de dos pasos secuenciales. En el Paso 1, los píxeles en los bordes norte y este se marcan para su eliminación; en el Paso 2, los píxeles en los bordes sur y oeste se marcan. Solo se eliminan los píxeles que sobreviven simultáneamente a ambas condiciones de subiteración.
Condiciones del Paso 1 (marcar para eliminación): P1 es primer plano negro Y tiene 8 vecinos (no es un píxel de borde de la imagen); 2 ≤ B(P1) ≤ 6 (asegura que P1 no sea un punto final ni un píxel interior grueso); A(P1) = 1 (preserva la conectividad evitando la eliminación de píxeles que puentean múltiples componentes de fondo); P2 × P4 × P6 = 0 (al menos uno de los vecinos este, sur u oeste es blanco); y P4 × P6 × P8 = 0 (al menos uno de los vecinos norte, este o sur es blanco). Las condiciones 4 y 5 juntas aseguran que solo se eliminen los píxeles del borde norte/este en el Paso 1.
Condiciones del Paso 2 (marcar para eliminación): Las condiciones 1, 2 y 3 son idénticas al Paso 1. Las condiciones 4 y 5 cambian para apuntar a los píxeles del borde sur/oeste: P2 × P4 × P8 = 0 (al menos uno de los vecinos norte, este u oeste es blanco) y P2 × P6 × P8 = 0 (al menos uno de los vecinos norte, sur u oeste es blanco).
El proceso de iteración se repite hasta que no se eliminen píxeles en ninguno de los dos pasos. Las eliminaciones se realizan después de cada paso completo para evitar que el orden de eliminación afecte los resultados (paralelismo). El algoritmo termina cuando ningún píxel satisface las condiciones del Paso 1 o del Paso 2. En la práctica, las imágenes de grietas típicamente requieren de 5 a 15 iteraciones. La implementación estándar utiliza una tabla de consulta de 256 entradas indexadas por el patrón de vecindad de 8 bits para eficiencia computacional.
Las características de Zhang-Suen incluyen preservación de la conectividad 8 del primer plano, rendimiento muy rápido O(n) por iteración, producción de esqueletos que pueden retener algunas líneas diagonales de 2 píxeles de ancho, sensibilidad moderada al ruido que produce ramas espurias en los bordes de regiones de grietas irregulares (la poda casi siempre es necesaria), y centrado bueno pero no perfecto con un ligero sesgo hacia ciertas configuraciones de borde.
El algoritmo Guo-Hall (GH), publicado por Z. Guo y R.W. Hall en Communications of the ACM (Vol. 32, No. 3, 1989), es otro algoritmo de adelgazamiento paralelo de dos subiteraciones diseñado para abordar las limitaciones de ZS — particularmente la producción de líneas diagonales de 2 píxeles de ancho y la sensibilidad al ruido. GH utiliza dos subiteraciones con la misma estructura que ZS pero con diferentes condiciones de eliminación: las iteraciones impares eliminan píxeles del borde noreste (similar al Paso 1 de ZS) y las iteraciones pares eliminan píxeles del borde suroeste (similar al Paso 2 de ZS), utilizando un conjunto más restrictivo de condiciones de vecindad.
Las condiciones de Guo-Hall para iteración impar requieren: P1 es primer plano negro; 2 ≤ B(P1) ≤ 6; A(P1) = 1; P2 × P4 × P6 = 0; y P4 × P6 × P8 = 0. Para iteración par: P1 es primer plano negro; 2 ≤ B(P1) ≤ 6; A(P1) = 1; P2 × P4 × P8 = 0; y P2 × P6 × P8 = 0. GH añade una condición de verificación para prevenir la eliminación completa de líneas diagonales: el píxel no se elimina si es el único píxel restante que conecta dos componentes del esqueleto que de otro modo estarían desconectados, determinado verificando si la eliminación violaría la conectividad 8 utilizando coincidencia de patrones específica.
| Propiedad | Zhang-Suen | Guo-Hall |
|---|---|---|
| Grosor del esqueleto | Puede dejar líneas diagonales de 2 píxeles | Un píxel en todo momento |
| Manejo de diagonales | Pobre — produce diagonales más gruesas | Bueno — mantiene diagonales de 1 píxel |
| Tiempo de ejecución | Ligeramente más rápido | Comparable |
| Centrado | Bueno | Bueno |
| Formación de espolones | Moderada | Ligeramente menos espolones |
| Conectividad | Buena | Mejor para características delgadas |
| Implementación | Simple | Moderada (verificaciones adicionales) |
Según puntos de referencia publicados, GH produce esqueletos más delgados que ZS en general y maneja mejor los patrones de líneas diagonales, pero a un costo computacional ligeramente mayor.
El algoritmo de Lee, publicado por T.-C. Lee, R.L. Kashyap y C.-N. Chu en Computer Vision, Graphics, and Image Processing (Vol. 56, No. 6, 1994), extiende el adelgazamiento a imágenes binarias 3-D utilizando una estructura de datos de octree para examinar vecindarios de 3×3×3. Para el análisis de grietas en 2-D, proporciona una alternativa útil a ZS. Cuando se aplica a imágenes 2-D (como en skeletonize(image, method='lee') de scikit-image), sigue el mismo principio fundamental de eliminación iterativa de píxeles de borde pero utiliza un enfoque de dos fases por iteración: identificación de candidatos (escaneando todos los píxeles de borde del primer plano e identificando aquellos que se pueden eliminar basándose en la coincidencia de plantillas con un conjunto de 256 patrones de 3×3) y re-verificación secuencial (los candidatos se re-examinan secuencialmente para verificar que la eliminación no rompa la conectividad). Esta re-verificación secuencial es la diferencia clave con ZS — preserva mejor la conectividad pero es ligeramente más lento.
Las propiedades clave del algoritmo de Lee incluyen una preservación superior de la conectividad en comparación con ZS para redes de grietas complejas con múltiples uniones, esqueletos consistentemente de 1 píxel de ancho, velocidad más lenta para imágenes 2-D debido a la fase de re-verificación secuencial (diseñada principalmente para 3-D), y formación de espolones comparable o ligeramente mejor que ZS.
La Transformada del Eje Medial (MAT), introducida por H. Blum en Models for the Perception of Speech and Visual Form (MIT Press, 1967), es un enfoque fundamentalmente diferente al adelgazamiento iterativo. Se basa en la transformada de distancia de la imagen binaria. El eje medial de un objeto binario es el conjunto de todos los puntos que tienen más de un punto más cercano en el borde del objeto — equivalentemente, el lugar geométrico de los centros de los círculos (discos) máximos inscritos que caben completamente dentro del objeto.
El cálculo implica tres pasos. Primero, calcular la transformada de distancia: para cada píxel de primer plano (grieta), calcular su distancia euclidiana al píxel de fondo más cercano, produciendo un mapa de distancia D(x,y). Segundo, identificar puntos de cresta: el eje medial consiste en píxeles que son máximos locales en la transformada de distancia — píxeles cuyo valor de distancia al borde es mayor o al menos igual que cualquiera de sus vecinos. Tercero, umbralizar y adelgazar: los puntos de cresta con valores de distancia por encima de un umbral de ruido forman el esqueleto inicial, con adelgazamiento adicional aplicado para garantizar un ancho de un píxel.
| Propiedad | Adelgazamiento Iterativo (ZS, GH, Lee) | Transformada del Eje Medial |
|---|---|---|
| Principio | Eliminación iterativa de bordes | Crestas de transformada de distancia |
| Centrado | Bueno, aproximado | Óptimo — inherentemente centrado |
| Información de ancho | Requiere cálculo separado | Incorporada (valores de distancia) |
| Costo computacional | Rápido (O(n) por iteración) | Moderado (transformada de distancia) |
| Formación de espolones | Significativa | Menos espurios |
| Conectividad | Preservada | Puede producir componentes desconectados |
| Robustez al ruido | Moderada | Menos robusta a bordes irregulares |
| Suavidad del esqueleto | Puede ser irregular | Más suave en general |
Para el análisis de grietas en pavimentos, los algoritmos de adelgazamiento (especialmente ZS) se utilizan más comúnmente porque las grietas son estructuras alargadas e irregulares donde el centrado estricto de MAT es menos crítico y la preservación de la conectividad es primordial.

La esqueletización produce inevitablemente ramas espurias (también llamadas espolones, pelos o artefactos) — ramas laterales cortas que no corresponden a características reales de la grieta sino que surgen del ruido, irregularidades de borde o textura de agregados en la superficie del pavimento. Las fuentes principales incluyen ruido de borde (pequeñas perturbaciones cóncavas/convexas en el borde de la grieta que se esqueletizan como ramas cortas), textura de agregado de asfalto (variaciones de gris cerca de los bordes de la grieta que hacen que la segmentación binaria tenga bordes rugosos), ruido sal y pimienta (píxeles aislados mal clasificados en la imagen segmentada), y artefactos de bifurcación de grietas (donde el ancho variable de la grieta hace que el esqueleto se divida brevemente y se vuelva a unir).
La técnica de poda más simple y más utilizada es la poda basada en longitud. El algoritmo identifica todos los píxeles de punto final en el esqueleto (píxeles con exactamente un vecino 8-conectado). Para cada punto final, traza la rama de vuelta hacia el esqueleto principal hasta que se encuentra un píxel de unión (grado ≥ 3). Luego mide la longitud de la rama en píxeles y elimina la rama si su longitud está por debajo de un umbral T (los valores de umbral típicos oscilan entre 5 y 30 píxeles dependiendo de la resolución de la imagen y las características de la grieta). El proceso se repite hasta que no se poden más ramas, ya que eliminar una rama puede crear nuevos puntos finales. El umbral de longitud se establece típicamente basándose en la calibración píxel a mm. Para resoluciones de imágenes de pavimento comúnmente utilizadas (0.5-2 mm/píxel), un umbral de 10-20 píxeles corresponde a 5-40 mm, lo que elimina eficazmente el ruido inducido por la textura mientras retiene las ramas cortas reales de la grieta.
Descrito en Li et al. (2023) para el análisis de grietas en pavimentos asfálticos, el método de umbral de dominio conectado aplica etiquetado de componentes conectados a la imagen del esqueleto, calcula el recuento de píxeles para cada componente conectado y elimina los componentes con recuentos de píxeles por debajo de un umbral (típicamente 50-200 píxeles). Esto elimina simultáneamente el ruido aislado y las ramas espurias cortas de esqueletos de grietas que de otro modo estarían conectados.
Los enfoques más sofisticados consideran criterios adicionales como el ángulo rama-esqueleto (las ramas que forman ángulos casi perpendiculares a la línea principal de la grieta tienen más probabilidades de ser espurias), grosor de la rama en el origen (una rama que emerge de una sección gruesa del esqueleto tiene más probabilidades de ser real), valor de la transformada de distancia (las ramas cuyos valores de transformada de distancia cambian abruptamente tienen más probabilidades de ser ruido), y continuidad del contorno (si la rama no tiene una hendidura correspondiente en el contorno del borde de la grieta, es espuria).
La morfología matemática ofrece operadores de poda directos: bwmorph(BW, 'spur', k) de MATLAB elimina píxeles de espolón con el parámetro k especificando iteraciones, y la transformada hit-or-miss utiliza coincidencia de elementos estructurales para identificar y eliminar patrones de espolón específicos. El enfoque basado en grafos convierte el esqueleto en un grafo con nodos (uniones y puntos finales) y aristas (trazados de píxeles entre nodos), asigna pesos a las aristas basándose en la distancia euclidiana, poda las aristas cuyo peso está por debajo de un umbral y que se conectan a un punto final (aristas hoja), y además poda las aristas cortas que conectan dos uniones si crean un bucle pequeño.
El método Híbrido Skeleton-Prune-EOB de un artículo de MDPI de 2025 sobre medición de ancho de grietas en concreto aplica poda rápida del esqueleto mediante trazado iterativo de puntos finales con eliminación basada en longitud utilizando un umbral adaptativo basado en el ancho medio de la grieta, seguido de reconstrucción Edge-OrthoBoundary (EOB) donde el esqueleto restante se somete a un refinamiento de borde para garantizar una medición precisa del ancho.
La medición precisa de la longitud de la grieta a partir del esqueleto requiere un manejo cuidadoso de la conectividad de píxeles. El enfoque fundamental traza el trazado del esqueleto píxel por píxel y acumula distancias.
Comenzando desde un punto final (o unión a unión), el algoritmo recorre el trazado 8-conectado. Para cada par consecutivo de píxeles (x₁, y₁) y (x₂, y₂), se añade la distancia apropiada. Hay tres métricas de distancia disponibles. Distancia 4-conectada añade 1.0 por cada paso ortogonal (horizontal o vertical) pero ignora las conexiones diagonales, produciendo longitudes sistemáticamente más largas para segmentos de grieta diagonales. Distancia 8-conectada (Chebyshev) añade 1.0 por cada paso en cualquiera de las 8 direcciones, pero esto subestima la distancia diagonal. Distancia 8-conectada corregida (Chamfer) añade 1.0 para pasos ortogonales y √2 ≈ 1.414 para pasos diagonales, produciendo mediciones de longitud precisas dentro de aproximadamente el 0.5% de la verdadera longitud del trazado euclidiano.
El enfoque recomendado para la medición de grietas utiliza trazado 8-conectado con corrección √2:
def skeleton_length(skeleton_pixels):
total_length = 0.0
for i in range(len(skeleton_pixels) - 1):
x1, y1 = skeleton_pixels[i]
x2, y2 = skeleton_pixels[i+1]
dx = abs(x2 - x1)
dy = abs(y2 - y1)
if dx == 1 and dy == 0 or dx == 0 and dy == 1:
total_length += 1.0
elif dx == 1 and dy == 1:
total_length += sqrt(2)
return total_length
Para redes de grietas complejas con ramas, el esqueleto se descompone en segmentos entre nodos de unión/punto final. Se detectan todos los píxeles de unión (grado ≥ 3) y los píxeles de punto final (grado = 1). El esqueleto se descompone en segmentos entre estos nodos. Cada segmento se mide individualmente utilizando el método de distancia Chamfer. La longitud total de la grieta es igual a la suma de todas las longitudes de los segmentos: L_total = Σᵢ Lᵢ donde Lᵢ es la longitud 8-conectada corregida del i-ésimo segmento del esqueleto.
El flujo de implementación práctico extrae el esqueleto usando el adelgazamiento de Zhang-Suen, poda las ramas espurias (umbral de dominio conectado, mínimo 50-200 píxeles), calibra la relación píxel a mm utilizando un objeto de referencia de dimensiones conocidas capturado a la misma distancia, traza los píxeles ordenados del esqueleto, aplica la acumulación de distancia Chamfer y convierte a unidades físicas: L_mm = L_píxeles × factor_de_escala.
Un píxel de unión en una imagen de grieta esqueletizada es un píxel con grado ≥ 3 — tres o más píxeles vecinos del esqueleto en una vecindad 8-conectada. Para cada píxel del esqueleto, se cuenta el número de vecinos 8-conectados:
| Grado | Clasificación | Interpretación de Grieta |
|---|---|---|
| d = 0 | Vértice aislado | Ruido (típicamente eliminado) |
| d = 1 | Vértice final | Punta de grieta, extremo de rama o detección incompleta |
| d = 2 | Vértice interno | Continuación de un segmento de grieta único |
| d = 3 | Vértice de ramificación (T/Y) | Bifurcación de grieta |
| d = 4 | Vértice de ramificación (X) | Intersección de grietas |
| d ≥ 3 | Vértice de unión | Punto de ramificación general |
En MATLAB, bwmorph(skel, 'branchpoints') detecta píxeles donde el esqueleto se divide utilizando un enfoque de tabla de consulta que examina el patrón de vecindad 3×3 contra plantillas precomputadas para configuraciones de ramificación. Esta función puede producir grupos de puntos de ramificación alrededor de una sola unión; estos deben fusionarse utilizando etiquetado de componentes conectados y tomando el centroide de cada grupo.
A partir de la representación de grafo, se pueden calcular ocho métricas topológicas. Número de uniones (J) por unidad de área — J alto indica una red de grietas compleja e interconectada. Distribución del grado de nodos incluye el grado medio ⟨d⟩ = 2E/N (donde E = número de aristas, N = número de nodos), con una grieta lineal pura teniendo ⟨d⟩ = 2 y una red ramificada teniendo ⟨d⟩ > 2, y la relación de grado R_d = (nodos con grado ≥ 3) / (nodos con grado = 1). Número de ramas (B) cuenta el total de segmentos del esqueleto entre nodos de unión/punto final. Estadísticas de longitud de ramas incluyen la longitud media de rama (más corta para grietas de piel de cocodrilo, más larga para grietas longitudinales/transversales), desviación estándar (alta para patrones de grietas mixtos) y coeficiente de variación (utilizado para distinguir grietas de bloque de las de piel de cocodrilo). Número de componentes conectados (C) indica ya sea múltiples grietas distintas o brechas de detección. Número de Euler (χ) = C − H donde H = número de agujeros (bucles), con bucles indicando grietas de piel de cocodrilo o de bloque. Dimensión fractal (D_f) utilizando el método de conteo de cajas sobre el esqueleto produce aproximadamente 1.0 para grietas lineales rectas, 1.2–1.4 para grietas serpenteantes y 1.5–1.8 para grietas de piel de cocodrilo. Tamaño de malla para grietas de bloque/piel de cocodrilo — el área poligonal promedio de la detección de ciclos en el grafo — indica la severidad de la grieta.
| Patrón de Grieta | Firma Topológica |
|---|---|
| Longitudinal | Una sola rama principal, pocas ramas laterales cortas, d ≈ 2, J bajo |
| Transversal | Una sola rama principal que cruza el pavimento, d ≈ 2, J bajo |
| Bloque | Red poligonal con ciclos de ≥4 lados, J moderado, tamaño de malla mediano a grande |
| Piel de Cocodrilo (Fatiga) | Red densa de pequeños polígonos, J alto, alta densidad de ramas, tamaño de malla pequeño, D_f ≥ 1.5 |
| Reflexión | Grietas lineales a intervalos regulares correspondientes a juntas de losa subyacentes |
| Borde/Carril de Rueda | Grupo localizado de grietas, a menudo paralelo a la dirección del tráfico |
Para la caracterización topológica avanzada, los números de Betti proporcionan información adicional: β₀ es igual al número de componentes conectados (C), y β₁ es igual al número de ciclos o agujeros independientes (H). El género g = β₁ = H. La grieta de piel de cocodrilo tiene β₁ alto, mientras que las grietas lineales simples tienen β₁ = 0.

El ancho de la grieta es un parámetro crítico para evaluar la severidad del daño del pavimento en normas como ICAO ALACPA/09-2012, FAA PAVER y ASTM D6433. El esqueleto proporciona una referencia natural para la medición del ancho.
El método más directo utiliza los valores de la transformada de distancia en los píxeles del esqueleto. La Transformada de Distancia Euclidiana (EDT) de la imagen binaria de la grieta almacena, para cada píxel de primer plano, la distancia euclidiana al píxel de fondo más cercano. Los valores de EDT se extraen en todas las posiciones de píxeles del esqueleto. Para cada píxel del esqueleto, el ancho local de la grieta = 2 × valor_EDT (ya que la EDT proporciona el radio hasta el borde más cercano). Las estadísticas calculadas incluyen ancho medio, ancho máximo, ancho mínimo y desviación estándar del ancho. Las advertencias incluyen sobreestimación del ancho cerca de los puntos finales del esqueleto (el radio de EDT aumenta en las puntas de la grieta donde la distancia se extiende alrededor de la curvatura de la punta) y subestimación en las uniones (el esqueleto se desvía del verdadero eje medial en los puntos de ramificación). La corrección típicamente excluye los últimos 5-10 píxeles en cada punto final.
Una alternativa más precisa tiene en cuenta la orientación local de la grieta. Para cada píxel del esqueleto (x₀, y₀), la orientación local de la grieta θ se determina ajustando una línea a través de los píxeles vecinos del esqueleto (típicamente ±3-5 píxeles a lo largo del trazado del esqueleto). La dirección normal se calcula: θ_normal = θ + π/2. En la imagen binaria de la grieta, se traza un perfil a lo largo de la normal desde (x₀, y₀) hacia afuera en ambas direcciones hasta alcanzar píxeles de fondo. El ancho de la grieta es igual a la distancia total (en píxeles) entre los dos puntos de intersección del borde a lo largo de la normal. Los detalles de implementación incluyen el uso de interpolación bilineal para precisión subpíxel al perfilar, establecer la longitud del perfil para que exceda el ancho máximo esperado de la grieta (típicamente 50-100 píxeles) y mantener el tamaño del paso normal en ≤ 1 píxel para una detección precisa del borde.
Las ventajas del perfil perpendicular incluyen mayor precisión que el método EDT y mejor manejo de secciones transversales de grietas no circulares. Las desventajas incluyen intensidad computacional y sensibilidad a la suavidad del esqueleto (los esqueletos irregulares producen estimaciones de orientación ruidosas).
El ancho máximo de la grieta es un criterio de severidad estándar tanto en los manuales de inspección de pavimentos de ICAO como de FAA. Para calcularlo, se mide el ancho en cada píxel del esqueleto (usando EDT o perfilado), y se reporta el valor máximo. Opcionalmente, el arreglo de ancho se suaviza con un promedio móvil (ventana de 5-11 píxeles) para filtrar valores atípicos antes de tomar el máximo. El ancho medio de la grieta promedia el ancho a lo largo del esqueleto completo, excluyendo uniones y segmentos terminales para mayor precisión. El histograma de distribución de ancho caracteriza la uniformidad de la grieta e identifica ubicaciones de ensanchamiento localizado. El coeficiente de variación del ancho (CV = σ_w / μ_w): CV alto indica grietas no uniformes sugestivas de descascaramiento o deterioro del borde.
La tortuosidad (τ) cuantifica la desviación de una grieta de una línea recta. Se define como la relación entre la longitud real del trazado de la grieta y la distancia euclidiana (en línea recta) entre sus puntos extremos:
τ = L_esqueleto / L_euclidiana
donde L_esqueleto es la longitud total del trazado a lo largo del esqueleto (usando distancia 8-conectada corregida con √2) y L_euclidiana es la distancia euclidiana entre los dos puntos extremos del segmento de grieta.
Las propiedades incluyen τ ≥ 1.0 siempre (una línea recta tiene τ = 1.0), τ = 1.0–1.05 indicando una grieta casi recta (típica de grietas térmicas transversales o longitudinales), τ = 1.05–1.2 indicando una grieta moderadamente serpenteante, τ = 1.2–1.5 indicando una grieta altamente tortuosa (típica de ramas secundarias de grietas de piel de cocodrilo), y τ > 1.5 indicando un trazado extremadamente tortuoso.
Para redes de grietas con múltiples ramas, la tortuosidad se calcula por segmento de grieta (entre uniones consecutivas). Para el segmento i con puntos extremos A(x₁,y₁) y B(x₂,y₂): τᵢ = L_esqueletoᵢ / √[(x₂ - x₁)² + (y₂ - y₁)²]. La tortuosidad general para la red de grietas puede reportarse como tortuosidad media de segmento τ_media = (1/N) Σᵢ τᵢ, tortuosidad máxima de segmento τ_máx = máx(τᵢ), o tortuosidad global utilizando los puntos extremos de toda la red de grietas (menos significativa para grietas ramificadas).
La tortuosidad está relacionada con la dimensión fractal (D_f) del trazado de la grieta. Para una grieta con dimensión fractal D_f: τ ≈ K · (L_euclidiana)^(D_f - 1) donde K es una constante de escalado. Esta relación se utiliza en mecánica de fracturas para relacionar la tortuosidad de la grieta con propiedades del material como el entrelazado de agregados y la energía de fractura. Según la investigación de Purdue sobre la tortuosidad de grietas en concreto, la tortuosidad se correlaciona directamente con la permeabilidad de fluidos a través de la red de grietas — una mayor tortuosidad conduce a un área de flujo efectivo reducida y menor permeabilidad. Para aplicaciones de pavimentos, las grietas con mayor tortuosidad tienden a retener menos agua y residuos, afectando el potencial de daño por congelación-descongelación.
La esqueletización de grietas opera como un paso de post-procesamiento dentro de un flujo más amplio de análisis de grietas en pavimentos. El flujo completo consta de seis etapas. Adquisición de imágenes captura imágenes de la superficie del pavimento utilizando cámaras de línea, cámaras DSLR o vehículos de inspección móvil a resoluciones típicas de 0.5-2 mm/píxel. Preprocesamiento aplica normalización, mejora de contraste y reducción de ruido para preparar la imagen para la segmentación. Segmentación de grietas produce una máscara binaria de las regiones de grieta utilizando modelos de aprendizaje profundo (U-Net, DeepLab o Mask R-CNN) o métodos de umbralización tradicionales. Esqueletización reduce la máscara binaria a una línea central de un píxel de ancho utilizando Zhang-Suen, Guo-Hall, Lee o MAT. Post-procesamiento aplica poda del esqueleto para eliminar ramas espurias, agrupación de uniones para fusionar puntos de ramificación cercanos y análisis de componentes conectados para separar grietas distintas. Cálculo de parámetros extrae longitud, ancho, tortuosidad, métricas de ramificación y clasificación de patrones del esqueleto limpiado.
El flujo de datos procesa la máscara binaria al esqueleto, luego al grafo y luego a los parámetros. Las notas de integración con aprendizaje profundo indican que los sistemas modernos utilizan modelos de segmentación entrenados con anotaciones de grietas a nivel de píxel, con esqueletización aplicada a la salida del modelo. La calidad del esqueleto depende en gran medida de la calidad de la segmentación subyacente — la sobresegmentación crea numerosas ramas espurias mientras que la subsegmentación produce esqueletos desconectados. Los enfoques de entrenamiento conjunto que incorporan pérdidas de consistencia del esqueleto (segmentación consciente del esqueleto) son un área activa de investigación.
La evaluación cuantitativa de la calidad del esqueleto es esencial para validar el rendimiento de los algoritmos de esqueletización en el análisis de grietas en pavimentos. Se utilizan cinco métricas principales.
Completitud mide la proporción de la región de la grieta que está representada por el esqueleto. Se calcula como la fracción de píxeles de primer plano en la máscara binaria que están dentro de un umbral de distancia (típicamente 2-5 píxeles) de un píxel del esqueleto. Un valor de completitud superior a 0.95 indica que el esqueleto captura adecuadamente la extensión completa de la grieta.
Corrección (Precisión) mide la proporción de píxeles del esqueleto que se encuentran dentro de la región real de la grieta. Se calcula como la fracción de píxeles del esqueleto que están dentro de la máscara binaria (considerando una pequeña tolerancia para efectos de borde). Un valor de corrección superior a 0.98 indica una estructura alucinada mínima.
IoU del Esqueleto (Intersección sobre Unión) combina completitud y corrección. Se calcula dilatando el esqueleto por un radio pequeño (por ejemplo, 2 píxeles), calculando la intersección con la máscara binaria y dividiendo por la unión. Esto proporciona una puntuación de calidad escalar única que típicamente oscila entre 0.85 y 0.98 para algoritmos de buen rendimiento.
Suavidad mide la consistencia de la curvatura del trazado del esqueleto. Se calcula utilizando la tasa media de cambio de orientación a lo largo del esqueleto (desviación angular por píxel) o el número de puntos de inflexión por unidad de longitud. Los valores más bajos indican esqueletos más suaves y naturales.
Conectividad verifica que el esqueleto preserve la conectividad de la grieta original. Se mide contando el número de componentes conectados tanto en la máscara binaria como en el esqueleto. La relación de recuento de componentes (componentes del esqueleto / componentes de la máscara) debe ser cercana a 1.0. El error de la característica de Euler |χ_esqueleto − χ_máscara| mide la consistencia topológica.
Error de centrado mide qué tan bien representa el esqueleto el verdadero eje medial. Se calcula como la distancia media o RMS desde los píxeles del esqueleto hasta el verdadero eje medial (conocido para casos de prueba sintéticos) o hasta la línea media del contorno (estimada para imágenes reales).
Se puede calcular una puntuación compuesta de evaluación de calidad como una combinación ponderada: Q = w₁Completitud + w₂Corrección + w₃(1 − SuavidadNormalizada) + w₄Conectividad, con pesos ajustados según los requisitos de la aplicación.
Varias bibliotecas de software implementan algoritmos de esqueletización adecuados para el análisis de grietas.
OpenCV proporciona cv2.ximgproc.thinning() en el módulo extendido de procesamiento de imágenes. Esta función implementa tanto las variantes de Zhang-Suen (predeterminada) como de Guo-Hall, seleccionables mediante el parámetro thinningType. Opera directamente sobre imágenes binarias y devuelve un esqueleto de un píxel de ancho. La función utiliza tablas de consulta eficientes y está optimizada para aplicaciones en tiempo real.
scikit-image proporciona tres funciones de esqueletización. skimage.morphology.skeletonize(image, method='zhang') implementa el adelgazamiento de Zhang-Suen. skimage.morphology.skeletonize(image, method='lee') implementa el algoritmo de Lee con re-verificación secuencial. skimage.morphology.medial_axis(image, return_distance=True) calcula la Transformada del Eje Medial y opcionalmente devuelve los valores de la transformada de distancia para la estimación del ancho. Todas las funciones aceptan arreglos binarios 2-D y devuelven esqueletos binarios.
MATLAB proporciona bwmorph(BW, 'skel', Inf) para esqueletización utilizando el algoritmo de Zhang-Suen con iteraciones infinitas, bwmorph(BW, 'branchpoints') para detección de uniones, bwmorph(BW, 'endpoints') para detección de puntos finales y bwmorph(BW, 'spur', k) para eliminación iterativa de espolones. MATLAB también proporciona bwdist() para la transformada de distancia utilizada en enfoques basados en MAT.
Aproveche la esqueletización avanzada de grietas y la extracción de geometría para una evaluación precisa del estado del pavimento. Nuestras soluciones de visión artificial integran análisis de longitud, ancho y patrones basados en esqueletos para generar calificaciones PCI precisas y recomendaciones de mantenimiento. Contáctenos para una demostración de nuestra plataforma de inspección automatizada.
La segmentación de grietas es la tarea de visión por computadora que clasifica cada píxel de una imagen como grieta o no grieta, produciendo una máscara binaria...
La medición automatizada del ancho de grietas obtiene la apertura de grietas detectadas a partir de máscaras de píxeles segmentadas mediante la transformada de ...
La detección de grietas basada en IA utiliza visión por computadora — redes neuronales convolucionales, transformadores de visión y modelos de segmentación semá...