Segmentace trhlin
Segmentace trhlin je úloha počítačového vidění, která klasifikuje každý pixel obrazu jako trhlinu nebo netrhlínu, čímž vytváří binární masku umožňující přesné m...
Skeletonizace trhlin je morfologická operace zpracování obrazu, která redukuje segmentovanou binární oblast trhliny na reprezentaci osy o šířce jednoho pixelu pomocí ztenčovacích algoritmů, jako jsou Zhang-Suen, Lee nebo transformace mediální osy. Kostra umožňuje přesné měření délky trhliny, analýzu větvení, klasifikaci vzoru trhliny, odhad šířky a kvantifikaci tortuozity v systémech automatické inspekce vozovek.
Skeletonizace trhlin (také označovaná jako ztenčování nebo extrakce mediální osy) je morfologická operace zpracování obrazu, která redukuje segmentovanou binární oblast trhliny na reprezentaci osové linie o šířce jednoho pixelu — kostru — při zachování topologických vlastností (konektivita, struktura větvení) a geometrických vztahů (tvar cesty, orientace) původní trhliny. Kostra představuje “osovou linii” nebo “mediální osu” trhliny a je základem prakticky veškeré kvantitativní analýzy geometrie trhlin v automatické inspekci vozovek.
Formálně pro binární obraz I s pixely trhlin nastavenými na 1 (popředí) a pozadím nastaveným na 0 vytváří skeletonizace množinu S ⊆ I se čtyřmi základními vlastnostmi. S je široká 1 pixel: každý pixel v S má nejvýše dva 8-směrové sousedy také v S, kromě uzlů, kde je stupeň vyšší než 2 povolen. S je topologicky ekvivalentní I: S a I mají stejný počet souvislých komponent a stejnou strukturu děr/smyček — Eulerův charakteristik je zachován. S je vystředěná uvnitř I: každý pixel kostry leží přibližně na lokální středové linii trhliny. S je dostatečná pro rekonstrukci: v případě transformace mediální osy (MAT) lze původní tvar přibližně rekonstruovat z kostry a jejích přidružených hodnot poloměru.

V automatické analýze trhlin vozovek slouží skeletonizace jako kritický mezikrok mezi detekcí a segmentací trhlin a kvantitativním odhadem parametrů. Kostra umožňuje sedm primárních analytických funkcí. Měření délky trhliny se přímo vypočítává sledováním cest pixelů podél osové linie o šířce 1 pixelu. Odhad šířky trhliny využívá vzdálenost od pixelů kostry k okrajům trhliny pro výpočet lokálních a agregovaných statistik šířky. Klasifikace vzoru trhliny detekuje spoje, větve a topologickou strukturu pro rozlišení aligátorového, blokového, podélného a příčného praskání. Analýza orientace trhliny určuje dominantní směr trhliny na segment. Kvantifikace tortuozity měří zakřivení a klikatění trhliny jako poměr délky cesty kostry k euklidovské vzdálenosti koncových bodů. Redukce dat komprimuje oblast trhliny ze stovek či tisíců pixelů na kompaktní lineární reprezentaci, která je výpočetně efektivní pro následnou analýzu. Analýza založená na grafech převádí kostru na euklidovský graf s uzly představujícími spoje a koncové body a hranami představujícími segmenty trhlin pro pokročilou strukturální a topologickou analýzu.
Kostra poskytuje funkční deskriptor, který propojuje nízkoúrovňová pixelová data s vysokoúrovňovými parametry technického hodnocení stavu — délku trhliny v metrech, průměrnou šířku v milimetrech, hustotu trhlin a odpočty indexu stavu vozovky (PCI) podle norem ICAO ALACPA/09-2012, FAA PAVER, ASTM D5340-12 a ASTM D6433.
Pro skeletonizaci trhlin se používají čtyři hlavní algoritmy: ztenčování Zhang-Suen, ztenčování Guo-Hall, skeletonizace Lee a transformace mediální osy (MAT). Každý má odlišné charakteristiky, které jej činí vhodným pro různé scénáře analýzy vozovek.
Algoritmus Zhang-Suen (ZS), publikovaný T.Y. Zhangem a C.Y. Suenem v Communications of the ACM (roč. 27, č. 3, březen 1984), je nejpoužívanějším ztenčovacím algoritmem v analýze trhlin vozovek díky své rychlosti, jednoduchosti a dobrým výsledkům na protáhlých vzorech připomínajících trhliny. ZS je paralelní iterativní ztenčovací algoritmus, který pracuje s binárními obrazy opakovaným odstraňováním okrajových pixelů při zachování konektivity.
Označovací konvence sousedů pro každý uvažovaný pixel P1 uspořádá jeho osm sousedů ve směru hodinových ručiček: P9 (vlevo nahoře), P2 (nahoře uprostřed), P3 (vpravo nahoře), P8 (vlevo uprostřed), P4 (vpravo uprostřed), P7 (vlevo dole), P6 (dole uprostřed), P5 (vpravo dole). Pro každý černý pixel P1 jsou definovány dvě funkce: A(P1) se rovná počtu přechodů z bílé (0) do černé (1) v uspořádané kruhové posloupnosti P2 až P9 a zpět k P2, což měří počet připojených komponent pozadí v okolí; B(P1) se rovná počtu černých sousedních pixelů P1.
ZS je dvousubiterační algoritmus. Každá iterace se skládá ze dvou po sobě jdoucích kroků. V kroku 1 jsou pixely na severním a východním okraji označeny k odstranění; v kroku 2 jsou pixely na jižním a západním okraji označeny. Odstraněny jsou pouze pixely, které současně splňují podmínky obou subiterací.
Podmínky kroku 1 (označení k odstranění): P1 je černé popředí A má 8 sousedů (není okrajový pixel obrazu); 2 ≤ B(P1) ≤ 6 (zajišťuje, že P1 není koncový bod ani tlustý vnitřní pixel); A(P1) = 1 (zachovává konektivitu zabráněním odstranění pixelů, které propojují více komponent pozadí); P2 × P4 × P6 = 0 (alespoň jeden z východních, jižních nebo západních sousedů je bílý); a P4 × P6 × P8 = 0 (alespoň jeden ze severních, východních nebo jižních sousedů je bílý). Podmínky 4 a 5 společně zajišťují, že v kroku 1 jsou odstraněny pouze pixely na severním/východním okraji.
Podmínky kroku 2 (označení k odstranění): Podmínky 1, 2 a 3 jsou shodné s krokem 1. Podmínky 4 a 5 se mění tak, aby cílovaly na pixely jižního/západního okraje: P2 × P4 × P8 = 0 (alespoň jeden ze severních, východních nebo západních sousedů je bílý) a P2 × P6 × P8 = 0 (alespoň jeden ze severních, jižních nebo západních sousedů je bílý).
Iterační proces se opakuje, dokud nejsou v žádném kroku odstraněny žádné pixely. Odstraňování se provádí po každém úplném průchodu, aby pořadí odstraňování neovlivnilo výsledky (paralelismus). Algoritmus končí, když žádný pixel nesplňuje podmínky kroku 1 ani kroku 2. V praxi obvykle obrazy trhlin vyžadují 5 až 15 iterací. Standardní implementace používá vyhledávací tabulku o 256 položkách indexovanou 8bitovým vzorem sousedů pro výpočetní efektivitu.
Charakteristiky Zhang-Suen zahrnují zachování 8-konektivity popředí, velmi rychlý výkon O(n) na iteraci, produkci koster, které mohou ponechat některé dvoupixelové diagonální linie, střední citlivost na šum produkující falešné větve (výběžky) na okrajích nepravidelných oblastí trhlin (prořezávání je téměř vždy vyžadováno) a dobré, ale ne dokonalé vystředění s mírným zkreslením vůči určitým konfiguracím okrajů.
Algoritmus Guo-Hall (GH), publikovaný Z. Guem a R.W. Hallem v Communications of the ACM (roč. 32, č. 3, 1989), je další paralelní dvousubiterační ztenčovací algoritmus navržený k řešení omezení ZS — zejména produkce dvoupixelových diagonálních linií a citlivosti na šum. GH používá dvě subiterace se stejnou strukturou jako ZS, ale s odlišnými podmínkami odstraňování: liché iterace odstraňují pixely severovýchodního okraje (podobně jako krok 1 ZS) a sudé iterace odstraňují pixely jihozápadního okraje (podobně jako krok 2 ZS), s použitím restriktivnější sady podmínek okolí.
Podmínky Guo-Hall pro lichou iteraci vyžadují: P1 je černé popředí; 2 ≤ B(P1) ≤ 6; A(P1) = 1; P2 × P4 × P6 = 0; a P4 × P6 × P8 = 0. Pro sudou iteraci: P1 je černé popředí; 2 ≤ B(P1) ≤ 6; A(P1) = 1; P2 × P4 × P8 = 0; a P2 × P6 × P8 = 0. GH přidává kontrolní podmínku, která zabraňuje úplnému odstranění diagonálních linií: pixel není odstraněn, pokud je jediným zbývajícím pixelem spojujícím dvě jinak nespojené komponenty kostry, což se určuje kontrolou, zda by odstranění porušilo 8-konektivitu pomocí specifického porovnávání vzorů.
| Vlastnost | Zhang-Suen | Guo-Hall |
|---|---|---|
| Tloušťka kostry | Může zanechat dvoupixelové diagonální linie | Jednopixelová v celém rozsahu |
| Zpracování diagonál | Slabé — vytváří tlustší diagonály | Dobré — zachovává jednopixelové diagonály |
| Doba běhu | Mírně rychlejší | Srovnatelná |
| Vystředění | Dobré | Dobré |
| Tvorba výběžků | Střední | Mírně méně výběžků |
| Konektivita | Dobrá | Lepší pro tenké prvky |
| Implementace | Jednoduchá | Střední (další kontroly) |
Podle publikovaných benchmarků produkuje GH celkově tenčí kostry než ZS a lépe zpracovává diagonální linie, avšak za mírně vyšší výpočetní náklady.
Algoritmus Lee, publikovaný T.-C. Leem, R.L. Kashyapem a C.-N. Chuem v Computer Vision, Graphics, and Image Processing (roč. 56, č. 6, 1994), rozšiřuje ztenčování na 3-D binární obrazy pomocí oktalové datové struktury pro zkoumání okolí 3×3×3. Pro 2-D analýzu trhlin představuje užitečnou alternativu k ZS. Při aplikaci na 2-D obrazy (jako v scikit-image skeletonize(image, method='lee')) sleduje stejný základní princip iterativního odstraňování okrajových pixelů, ale používá dvoufázový přístup na iteraci: identifikaci kandidátů (skenování všech okrajových pixelů popředí a identifikace těch odstranitelných na základě porovnávání se sadou 256 vzorů 3×3) a sekvenční překontrolování (kandidáti jsou postupně znovu zkoumáni, aby se ověřilo, že odstranění nenaruší konektivitu). Toto sekvenční překontrolování je klíčový rozdíl oproti ZS — lépe zachovává konektivitu, ale je mírně pomalejší.
Klíčové vlastnosti algoritmu Lee zahrnují vynikající zachování konektivity ve srovnání se ZS pro složité sítě trhlin s více uzly, konzistentně jednopixelové kostry, nižší rychlost u 2-D obrazů kvůli fázi sekvenčního překontrolování (navržen primárně pro 3-D) a srovnatelnou nebo mírně lepší tvorbu výběžků než ZS.
Transformace mediální osy (MAT), zavedená H. Blumem v Models for the Perception of Speech and Visual Form (MIT Press, 1967), je zásadně odlišný přístup od iterativního ztenčování. Je založena na transformaci vzdálenosti binárního obrazu. Mediální osa binárního objektu je množina všech bodů, které mají více než jeden nejbližší bod na hranici objektu — ekvivalentně, locus středů maximálních vepsaných kružnic (disků), které se zcela vejdou dovnitř objektu.
Výpočet zahrnuje tři kroky. Nejprve se vypočítá transformace vzdálenosti: pro každý pixel popředí (trhliny) se vypočítá jeho euklidovská vzdálenost k nejbližšímu pixelu pozadí, čímž vznikne mapa vzdálenosti D(x,y). Zadruhé se identifikují hřebenové body: mediální osa se skládá z pixelů, které jsou lokálními maximy v transformaci vzdálenosti — pixelů, jejichž hodnota vzdálenosti k okraji je větší nebo alespoň rovna hodnotě kteréhokoli z jejich sousedů. Zatřetí se provede prahování a ztenčení: hřebenové body s hodnotami vzdálenosti nad prahem šumu tvoří počáteční kostru, s dodatečným ztenčením pro zajištění jednopixelové šířky.
| Vlastnost | Iterativní ztenčování (ZS, GH, Lee) | Transformace mediální osy |
|---|---|---|
| Princip | Iterativní odstraňování okrajů | Hřebeny transformace vzdálenosti |
| Vystředění | Dobré, přibližné | Optimální — inherentně vystředěné |
| Informace o šířce | Vyžaduje samostatný výpočet | Vestavěná (hodnoty vzdálenosti) |
| Výpočetní náklady | Rychlé (O(n) na iteraci) | Střední (transformace vzdálenosti) |
| Tvorba výběžků | Významná | Méně falešných |
| Konektivita | Zachována | Může vytvářet nesouvislé komponenty |
| Odolnost vůči šumu | Střední | Méně odolná vůči nepravidelným okrajům |
| Hladkost kostry | Může být zubatá | Celkově hladší |
Pro analýzu trhlin vozovek jsou běžněji používány ztenčovací algoritmy (zejména ZS), protože trhliny jsou protáhlé, nepravidelné struktury, kde je striktní vystředění MAT méně kritické a zachování konektivity je prvořadé.

Skeletonizace nevyhnutelně produkuje falešné větve (také nazývané výběžky, chloupky nebo artefakty) — krátké postranní větve, které neodpovídají skutečným rysům trhliny, ale vznikají v důsledku šumu, nepravidelností okrajů nebo textury kameniva na povrchu vozovky. Mezi hlavní zdroje patří okrajový šum (malé konkávní/konvexní perturbace v okraji trhliny, které jsou skeletonizovány jako krátké větve), textura asfaltového kameniva (odstíny šedi v blízkosti okrajů trhliny způsobující, že binární segmentace má hrubé okraje), šum typu sůl a pepř (izolované chybně klasifikované pixely v segmentovaném obrazu) a artefakty bifurkace trhliny (kde proměnná šířka trhliny způsobuje, že se kostra krátce rozdělí a znovu spojí).
Nejjednodušší a nejpoužívanější technikou prořezávání je prořezávání na základě délky. Algoritmus identifikuje všechny koncové pixely v kostře (pixely s právě jedním 8-směrovým sousedem). Pro každý koncový bod sleduje větev zpět směrem k hlavní kostře, dokud nenarazí na uzel (stupeň ≥ 3). Poté změří délku větve v pixelech a odstraní větev, pokud je její délka pod prahem T (typické hodnoty prahu se pohybují od 5 do 30 pixelů v závislosti na rozlišení obrazu a charakteristikách trhliny). Proces se opakuje, dokud nejsou ořezány žádné další větve, protože odstranění jedné větve může vytvořit nové koncové body. Délkový práh se obvykle nastavuje na základě kalibrace pixelů na mm. U běžně používaných rozlišení snímání vozovek (0,5–2 mm/pixel) odpovídá práh 10–20 pixelů hodnotě 5–40 mm, což účinně odstraňuje šum způsobený texturou při zachování skutečných krátkých větví trhlin.
Popsaná v Li et al. (2023) pro analýzu trhlin asfaltových vozovek, metoda prahování souvislých domén aplikuje označování souvislých komponent na obraz kostry, vypočítá počet pixelů pro každou souvislou komponentu a odstraní komponenty s počtem pixelů pod prahem (typicky 50–200 pixelů). Toto současně odstraňuje izolovaný šum a krátké falešné větve z jinak souvislých koster trhlin.
Sofistikovanější přístupy zohledňují další kritéria, jako je úhel větve vůči kostře (větve svírající téměř kolmé úhly s hlavní linií trhliny jsou pravděpodobněji falešné), tloušťka větve u počátku (větev vycházející z tlusté části kostry je pravděpodobněji skutečná), hodnota transformace vzdálenosti (větve, jejichž hodnoty transformace vzdálenosti se náhle mění, jsou pravděpodobněji šum) a kontinuita obrysu (pokud větev nemá odpovídající prohlubeň na obrysu trhliny, je falešná).
Matematická morfologie nabízí přímé prořezávací operátory: MATLAB bwmorph(BW, 'spur', k) odstraňuje výběžkové pixely s parametrem k určujícím iterace a transformace hit-or-miss používá porovnávání strukturálních elementů k identifikaci a odstranění specifických vzorů výběžků. Grafový přístup převádí kostru na graf s uzly (spoje a koncové body) a hranami (cesty pixelů mezi uzly), přiřazuje hranám váhy na základě euklidovské vzdálenosti, prořezává hrany, jejichž váha je pod prahem a které se připojují ke koncovému bodu (okrajové hrany), a navíc prořezává krátké hrany spojující dva uzly, pokud vytvářejí malou smyčku.
Hybridní metoda Skeleton-Prune-EOB z článku MDPI 2025 o měření šířky trhlin v betonu aplikuje rychlé prořezávání kostry pomocí iterativního sledování koncových bodů s odstraňováním na základě délky s adaptivním prahem založeným na průměrné šířce trhliny, následované rekonstrukcí Edge-OrthoBoundary (EOB), kde zbývající kostra prochází zpřesněním okrajů pro zajištění přesného měření šířky.
Přesné měření délky trhliny z kostry vyžaduje pečlivé zacházení s konektivitou pixelů. Základní přístup sleduje cestu kostry pixel po pixelu a akumuluje vzdálenosti.
Počínaje koncovým bodem (nebo mezi uzly) algoritmus prochází po 8-směrové cestě. Pro každou po sobě jdoucí dvojici pixelů (x₁, y₁) a (x₂, y₂) je přičtena příslušná vzdálenost. Jsou k dispozici tři metriky vzdálenosti. 4-směrová vzdálenost přidává 1,0 za každý ortogonální krok (horizontální nebo vertikální), ale ignoruje diagonální spojení, čímž produkuje systematicky delší délky pro diagonální segmenty trhlin. 8-směrová (Čebyševova) vzdálenost přidává 1,0 za každý krok v libovolném z 8 směrů, což však podhodnocuje diagonální vzdálenost. Korigovaná 8-směrová (Chamferova) vzdálenost přidává 1,0 za ortogonální kroky a √2 ≈ 1,414 za diagonální kroky, čímž poskytuje měření délky s přesností přibližně 0,5 % skutečné euklidovské délky cesty.
Doporučený přístup pro měření trhlin používá 8-směrové sledování s korekcí √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
U komplexních sítí trhlin s větvemi je kostra rozložena na segmenty mezi uzly/konečnými body. Jsou detekovány všechny spojové pixely (stupeň ≥ 3) a koncové pixely (stupeň = 1). Kostra je rozložena na segmenty mezi těmito uzly. Každý segment je měřen individuálně pomocí Chamferovy metody vzdálenosti. Celková délka trhliny se rovná součtu délek všech segmentů: L_celkem = Σᵢ Lᵢ kde Lᵢ je korigovaná 8-směrová délka i-tého segmentu kostry.
Praktická implementační pipeline extrahuje kostru pomocí ztenčování Zhang-Suen, prořezává falešné větve (prahování souvislých domén, minimum 50–200 pixelů), kalibruje poměr pixelů na mm pomocí referenčního objektu známých rozměrů zobrazeného ve stejné vzdálenosti, sleduje uspořádané pixely kostry, aplikuje akumulaci Chamferovy vzdálenosti a převádí na fyzické jednotky: L_mm = L_pixely × faktor_měřítka.
Spojový pixel v skeletonizovaném obraze trhliny je pixel se stupněm ≥ 3 — třemi nebo více sousedními pixely kostry v 8-směrovém okolí. Pro každý pixel kostry se počítá počet 8-směrových sousedů:
| Stupeň | Klasifikace | Interpretace trhliny |
|---|---|---|
| d = 0 | Izolovaný vrchol | Šum (obvykle odstraněn) |
| d = 1 | Koncový vrchol | Hrot trhliny, konec větve nebo neúplná detekce |
| d = 2 | Vnitřní vrchol | Pokračování jediného segmentu trhliny |
| d = 3 | Větvící vrchol (T/Y) | Bifurkace trhliny |
| d = 4 | Větvící vrchol (X) | Křížení trhlin |
| d ≥ 3 | Spojový vrchol | Obecný bod větvení |
V MATLABu bwmorph(skel, 'branchpoints') detekuje pixely, kde se kostra rozděluje, pomocí vyhledávací tabulky, která zkoumá vzor okolí 3×3 oproti předpočítaným šablonám pro konfigurace větvení. Tato funkce může produkovat shluky spojových bodů kolem jediného uzlu; ty by měly být sloučeny pomocí označování souvislých komponent a převzetím centroidu každého shluku.
Z grafové reprezentace lze vypočítat osm topologických metrik. Počet spojů (J) na jednotku plochy — vysoké J indikuje komplexní, propojenou síť trhlin. Distribuce stupňů uzlů zahrnuje průměrný stupeň ⟨d⟩ = 2E/N (kde E = počet hran, N = počet uzlů), přičemž čistě lineární trhlina má ⟨d⟩ = 2 a větvící se síť má ⟨d⟩ > 2, a poměr stupňů R_d = (uzly se stupněm 3+) / (uzly se stupněm 1). Počet větví (B) udává celkový počet segmentů kostry mezi uzly/konečnými body. Statistiky délky větví zahrnují průměrnou délku větve (kratší u aligátorového praskání, delší u podélného/příčného praskání), směrodatnou odchylku (vysoká u smíšených vzorů praskání) a variační koeficient (používá se k rozlišení blokového praskání od aligátorového). Počet souvislých komponent (C) indikuje buď více samostatných trhlin, nebo mezery v detekci. Eulerovo číslo (χ) = C − H kde H = počet děr (smyček), přičemž smyčky indikují aligátorové nebo blokové praskání. Fraktální dimenze (D_f) pomocí metody počítání krabiček na kostře dává přibližně 1,0 pro přímé lineární trhliny, 1,2–1,4 pro klikatící se trhliny a 1,5–1,8 pro aligátorové praskání. Velikost ok u blokového/aligátorového praskání — průměrná plocha polygonu z detekce cyklů v grafu — indikuje závažnost trhliny.
| Vzor trhliny | Topologický signatura |
|---|---|
| Podélná | Jediná hlavní větev, málo krátkých postranních větví, d ≈ 2, nízké J |
| Příčná | Jediná hlavní větev křížící vozovku, d ≈ 2, nízké J |
| Bloková | Polygonální síť s cykly o ≥4 stranách, střední J, střední až velká velikost ok |
| Aligátorová (únavová) | Hustá síť malých polygonů, vysoké J, vysoká hustota větví, malá velikost ok, D_f ≥ 1,5 |
| Odrazová | Lineární trhliny v pravidelných intervalech odpovídajících spárám podkladních desek |
| Okrajová/pojezdová | Lokalizovaný shluk trhlin, často rovnoběžný se směrem provozu |
Pro pokročilou topologickou charakterizaci poskytují Bettiho čísla další vhled: β₀ se rovná počtu souvislých komponent (C) a β₁ se rovná počtu nezávislých cyklů nebo děr (H). Rod g = β₁ = H. Aligátorové praskání má vysoké β₁, zatímco jednoduché lineární trhliny mají β₁ = 0.

Šířka trhliny je kritický parametr pro posouzení závažnosti poškození vozovky podle norem jako ICAO ALACPA/09-2012, FAA PAVER a ASTM D6433. Kostra poskytuje přirozený referenční bod pro měření šířky.
Nejpřímější metoda využívá hodnoty transformace vzdálenosti na pixelech kostry. Euklidovská transformace vzdálenosti (EDT) binárního obrazu trhliny ukládá pro každý pixel popředí euklidovskou vzdálenost k nejbližšímu pixelu pozadí. Hodnoty EDT jsou extrahovány na všech pozicích pixelů kostry. Pro každý pixel kostry platí, že lokální šířka trhliny = 2 × hodnota_EDT (protože EDT udává poloměr k nejbližšímu okraji). Mezi vypočítávané statistiky patří průměrná šířka, max. šířka, min. šířka a směrodatná odchylka šířky. Výhrady zahrnují nadhodnocení šířky v blízkosti koncových bodů kostry (poloměr EDT se zvětšuje na hrotech trhlin, kde vzdálenost obepíná zakřivení hrotu) a podhodnocení v uzlech (kostra se odchyluje od pravé mediální osy v bodech větvení). Korekce obvykle vylučuje posledních 5–10 pixelů na každém koncovém bodě.
Přesnější alternativa zohledňuje lokální orientaci trhliny. Pro každý pixel kostry (x₀, y₀) je lokální orientace trhliny θ určena proložením přímky sousedními pixely kostry (typicky ±3–5 pixelů podél cesty kostry). Normálový směr se vypočítá: θ_normála = θ + π/2. V binárním obraze trhliny je profil podél normály z (x₀, y₀) směrem ven v obou směrech sledován, dokud nejsou dosaženy pixely pozadí. Šířka trhliny se rovná celkové vzdálenosti (v pixelech) mezi dvěma průsečíky s okrajem podél normály. Mezi implementační detaily patří použití bilineární interpolace pro subpixelovou přesnost při profilování, nastavení délky profilu tak, aby přesahovala očekávanou maximální šířku trhliny (typicky 50–100 pixelů), a udržení velikosti normálového kroku ≤ 1 pixel pro přesnou detekci okraje.
Výhody kolmého profilování zahrnují vyšší přesnost než metoda EDT a lepší zpracování nekulatých průřezů trhlin. Nevýhody zahrnují výpočetní náročnost a citlivost na hladkost kostry (zubaté kostry produkují zašuměné odhady orientace).
Maximální šířka trhliny je standardní kritérium závažnosti v příručkách pro inspekci vozovek ICAO i FAA. Pro její výpočet se měří šířka na každém pixelu kostry (pomocí EDT nebo profilování) a vykazuje se maximální hodnota. Volitelně je pole šířek vyhlazeno klouzavým průměrem (okno 5–11 pixelů) pro filtrování odlehlých hodnot před určením maxima. Průměrná šířka trhliny zprůměruje šířku podél celé kostry s vyloučením uzlů a koncových segmentů pro přesnost. Histogram distribuce šířky charakterizuje rovnoměrnost trhliny a identifikuje místa lokálního rozšíření. Variační koeficient šířky (CV = σ_w / μ_w): vysoké CV indikuje nerovnoměrné praskání naznačující odlupování nebo degradaci okrajů.
Tortuozita (τ) kvantifikuje odchylku trhliny od přímky. Je definována jako poměr skutečné délky cesty trhliny k euklidovské (přímé) vzdálenosti mezi jejími koncovými body:
τ = L_kostra / L_euklidovská
kde L_kostra je celková délka cesty podél kostry (s použitím 8-směrové vzdálenosti korigované √2) a L_euklidovská je euklidovská vzdálenost mezi dvěma koncovými body segmentu trhliny.
Vlastnosti zahrnují τ ≥ 1,0 vždy (přímka má τ = 1,0), τ = 1,0–1,05 indikující téměř přímou trhlinu (typické pro příčné nebo podélné tepelné praskání), τ = 1,05–1,2 indikující středně klikatící se trhlinu, τ = 1,2–1,5 indikující vysoce tortuózní trhlinu (typické pro sekundární větve aligátorového praskání) a τ > 1,5 indikující extrémně tortuózní cestu.
U sítí trhlin s více větvemi se tortuozita počítá na segment trhliny (mezi po sobě jdoucími uzly). Pro segment i s koncovými body A(x₁,y₁) a B(x₂,y₂): τᵢ = L_kostraᵢ / √[(x₂ - x₁)² + (y₂ - y₁)²]. Celková tortuozita pro síť trhlin může být vykázána jako průměrná segmentová tortuozita τ_průměr = (1/N) Σᵢ τᵢ, maximální segmentová tortuozita τ_max = max(τᵢ) nebo globální tortuozita pomocí koncových bodů celé sítě trhlin (méně smysluplné u rozvětvených trhlin).
Tortuozita souvisí s fraktální dimenzí (D_f) cesty trhliny. Pro trhlinu s fraktální dimenzí D_f: τ ≈ K · (L_euklidovská)^(D_f - 1) kde K je škálovací konstanta. Tento vztah se používá v lomové mechanice ke spojení tortuozity trhliny s materiálovými vlastnostmi, jako je propojení kameniva a lomová energie. Z výzkumu Purdue University o tortuozitě trhlin v betonu vyplývá, že tortuozita přímo koreluje s propustností tekutin skrze síť trhlin — vyšší tortuozita vede ke snížené efektivní průtokové ploše a nižší propustnosti. Pro aplikace na vozovky mají trhliny s vyšší tortuozitou tendenci zadržovat méně vody a nečistot, což ovlivňuje potenciál poškození mrazem a rozmrazováním.
Skeletonizace trhlin funguje jako krok následného zpracování v rámci větší pipeline analýzy trhlin vozovek. Kompletní pipeline se skládá ze šesti fází. Akvizice obrazu pořizuje snímky povrchu vozovky pomocí řádkových kamer, DSLR kamer nebo mobilních inspekčních vozidel při typickém rozlišení 0,5–2 mm/pixel. Předzpracování aplikuje normalizaci, zvýšení kontrastu a redukci šumu pro přípravu obrazu k segmentaci. Segmentace trhlin vytváří binární masku oblastí trhlin pomocí modelů hlubokého učení (U-Net, DeepLab nebo Mask R-CNN) nebo tradičních prahovacích metod. Skeletonizace redukuje binární masku na osovou linii o šířce jednoho pixelu pomocí Zhang-Suen, Guo-Hall, Lee nebo MAT. Následné zpracování aplikuje prořezávání kostry pro odstranění falešných větví, shlukování uzlů pro sloučení blízkých spojových bodů a analýzu souvislých komponent pro oddělení různých trhlin. Výpočet parametrů extrahuje z vyčištěné kostry délku, šířku, tortuozitu, metriky větvení a klasifikaci vzoru.
Tok dat zpracovává binární masku na kostru na graf na parametry. Poznámky k integraci hlubokého učení: moderní systémy používají segmentační modely trénované na anotacích trhlin na úrovni pixelů, přičemž skeletonizace je aplikována na výstup modelu. Kvalita kostry silně závisí na kvalitě základní segmentace — přesygmentace vytváří četné falešné větve, zatímco podsegmentace produkuje nesouvislé kostry. Přístupy společného trénování, které zahrnují ztráty konzistence kostry (segmentace uvědomující si kostru), jsou aktivní oblastí výzkumu.
Kvantitativní hodnocení kvality kostry je zásadní pro validaci výkonnosti skeletonizačních algoritmů v analýze trhlin vozovek. Používá se pět primárních metrik.
Úplnost měří podíl oblasti trhliny, která je reprezentována kostrou. Vypočítá se jako zlomek pixelů popředí v binární masce, které jsou v rámci vzdálenostního prahu (typicky 2–5 pixelů) od pixelu kostry. Hodnota úplnosti nad 0,95 indikuje, že kostra adekvátně zachycuje celý rozsah trhliny.
Správnost (Precision) měří podíl pixelů kostry, které leží uvnitř skutečné oblasti trhliny. Vypočítá se jako zlomek pixelů kostry, které jsou v rámci binární masky (s ohledem na malou toleranci pro okrajové efekty). Hodnota správnosti nad 0,98 indikuje minimální halucinovanou strukturu.
IoU kostry (Intersection over Union) kombinuje úplnost a správnost. Vypočítá se dilatací kostry o malý poloměr (např. 2 pixely), výpočtem průniku s binární maskou a dělením sjednocením. To poskytuje jediné skalární skóre kvality, které se u dobře fungujících algoritmů typicky pohybuje od 0,85 do 0,98.
Hladkost měří konzistenci zakřivení cesty kostry. Vypočítá se pomocí průměrné rychlosti změny orientace podél kostry (úhlová odchylka na pixel) nebo počtu inflexních bodů na jednotku délky. Nižší hodnoty indikují hladší, přirozenější kostry.
Konektivita ověřuje, že kostra zachovává souvislost původní trhliny. Měří se počítáním počtu souvislých komponent v binární masce i v kostře. Poměr počtu komponent (komponenty kostry / komponenty masky) by měl být blízko 1,0. Chyba Eulerova charakteristiku |χ_kostra − χ_maska| měří topologickou konzistenci.
Chyba vystředění měří, jak dobře kostra reprezentuje pravou mediální osu. Vypočítá se jako průměrná nebo RMS vzdálenost od pixelů kostry k pravé mediální ose (známá u syntetických testovacích případů) nebo ke středové linii obrysu (odhadovaná u reálných snímků).
Kompozitní skóre hodnocení kvality lze vypočítat jako váženou kombinaci: Q = w₁Úplnost + w₂Správnost + w₃(1 − NormalizovanáHladkost) + w₄Konektivita, s váhami přizpůsobenými požadavkům aplikace.
Několik softwarových knihoven implementuje skeletonizační algoritmy vhodné pro analýzu trhlin.
OpenCV poskytuje cv2.ximgproc.thinning() v rozšířeném modulu zpracování obrazu. Tato funkce implementuje varianty Zhang-Suen (výchozí) i Guo-Hall, volitelné pomocí parametru thinningType. Pracuje přímo s binárními obrazy a vrací kostru o šířce jednoho pixelu. Funkce používá efektivní vyhledávací tabulky a je optimalizována pro aplikace v reálném čase.
scikit-image poskytuje tři skeletonizační funkce. skimage.morphology.skeletonize(image, method='zhang') implementuje ztenčování Zhang-Suen. skimage.morphology.skeletonize(image, method='lee') implementuje Leeův algoritmus se sekvenčním překontrolováním. skimage.morphology.medial_axis(image, return_distance=True) počítá transformaci mediální osy a volitelně vrací hodnoty transformace vzdálenosti pro odhad šířky. Všechny funkce přijímají 2-D binární pole a vracejí binární kostry.
MATLAB poskytuje bwmorph(BW, 'skel', Inf) pro skeletonizaci pomocí algoritmu Zhang-Suen s nekonečnými iteracemi, bwmorph(BW, 'branchpoints') pro detekci uzlů, bwmorph(BW, 'endpoints') pro detekci koncových bodů a bwmorph(BW, 'spur', k) pro iterativní odstraňování výběžků. MATLAB také poskytuje bwdist() pro transformaci vzdálenosti používanou v přístupech založených na MAT.
SciPy poskytuje scipy.ndimage.distance_transform_edt() pro výpočet euklidovské transformace vzdálenosti, která se používá se skeletonizací pro odhad šířky metodou transformace vzdálenosti.
| Nástroj | Funkce | Algoritmus | Použití |
|---|---|---|---|
| OpenCV | cv2.ximgproc.thinning() | ZS (výchozí) nebo GH | Analýza trhlin v reálném čase |
| scikit-image | skeletonize(method='zhang') | Zhang-Suen | Obecná skeletonizace trhlin |
| scikit-image | skeletonize(method='lee') | Lee | Komplexní sítě trhlin |
| scikit-image | medial_axis() | MAT | Analýza integrovaná s šířkou |
| MATLAB | bwmorph('skel', Inf) | ZS | Výzkum a prototypování |
| MATLAB | bwmorph('branchpoints') | Detekce uzlů | Analýza vzorů |
| Fiji/ImageJ | Skeletonize3D plugin | ZS, Lee | 3-D analýza trhlin |
Fiji/ImageJ s pluginem Skeletonize3D (od Ignacia Arganda-Carrerase) poskytuje 2-D a 3-D skeletonizaci a je široce používán v materiálových vědách pro analýzu sítí trhlin v CT snímcích.
Mezinárodní organizace pro civilní letectví (ICAO) poskytuje pokyny pro inspekci a měření trhlin vozovek prostřednictvím několika klíčových dokumentů. ICAO ALACPA/09-2012 (Údržba a správa letištních vozovek) specifikuje protokoly měření trhlin včetně měření délky v metrech pomocí metody osové linie (přímo odpovídající měření založenému na kostře), klasifikace šířky do stupňů závažnosti (vlásková: <3 mm, střední: 3–6 mm, závažná: >6 mm) a klasifikace vzorů (podélné, příčné, blokové, aligátorové, odrazové). Příručka pro návrh letišť ICAO (Doc 9157, Část 3 — Vozovky) odkazuje na ASTM D5340-12 (Standardní zkušební metoda pro průzkumy indexu stavu letištních vozovek), který vyžaduje výpočty hustoty trhlin (celková délka trhlin na jednotku plochy) a hodnocení závažnosti trhlin na základě šířky a vzoru.
Příručka poruch FAA PAVER definuje typy trhlin s konkrétními kódy: podélná (L), příčná (T), bloková (B), aligátorová/únavová (A), odrazová (R) a okrajová (E). Prahové hodnoty závažnosti jsou definovány pro šířku v palcích: nízká závažnost (vlásková až <1/4 palce), střední závažnost (1/4 až 1/2 palce) a vysoká závažnost (>1/2 palce). Protokoly měření vyžadují zaznamenání délky trhlin pro lineární trhliny a plošné výměry pro plošné trhliny. ICAO ALACPA a FAA PAVER vyžadují výpočet PCI pomocí hustoty trhlin (délka na plochu), odečítacích hodnot ze standardizovaných křivek a korekčních faktorů pro více typů poruch. Skeletonizační algoritmy přímo počítají všechny požadované parametry: délku trhliny (část 4), průměrnou šířku (část 6), hustotu trhlin (délka na jednotku plochy vozovky) a klasifikaci vzoru (část 5) pro automatické přiřazení srážek PCI.
Pro více informací o implementaci skeletonizace trhlin ve vašem pracovním postupu inspekce vozovek kontaktujte náš tým nebo si domluvte demo .
Využijte pokročilou skeletonizaci trhlin a extrakci geometrie pro přesné posouzení stavu vozovek. Naše řešení počítačového vidění integruje analýzu délky, šířky a vzorů založenou na kostře, aby poskytovala přesné hodnocení PCI a doporučení pro údržbu. Kontaktujte nás pro ukázku naší automatizované inspekční platformy.
Segmentace trhlin je úloha počítačového vidění, která klasifikuje každý pixel obrazu jako trhlinu nebo netrhlínu, čímž vytváří binární masku umožňující přesné m...
Automatizované měření šířky trhlin odvozuje šířku otevření detekovaných trhlin z pixelových segmentačních masek pomocí Euklidovské distance transformace od okra...
Detekce trhlin na bázi AI využívá počítačové vidění — konvoluční neuronové sítě, vision transformery a modely sémantické segmentace — k automatické identifikaci...