孫曉賀 施成華 劉凌暉 雷明鋒
(中南大學 土木工程學院,湖南 長沙,410075)
隨著我國大量基礎設施逐漸進入運營維護階段,高效率監(jiān)測手段的缺乏給運營維護帶來了巨大的挑戰(zhàn)。圖像識別方法因其高效、客觀、低成本等特點成為自動化監(jiān)測的焦點,是應對大規(guī)模運維工作的重要方法。裂縫是建筑工程運維中的主要健康監(jiān)測對象,針對其開展自動化的圖像識別算法研究具有重要意義。
隨著圖像采集設備的更新?lián)Q代,目前已經(jīng)可以較為高效地獲取待監(jiān)測結構的圖像[1- 3]。但受環(huán)境因素和結構本身的影響,得到的圖像往往存在曝光不均、干擾較多等問題。這些問題一方面可以通過提升采集設備的性能來減弱干擾;另一方面則可以通過使用抗干擾能力強的程序對圖像進行處理,從算法方面減輕干擾因素造成的干擾。隨著計算機技術發(fā)展而崛起的深度學習算法在裂縫識別方面就具有抗干擾能力強、識別準確率高等優(yōu)勢。很多學者將深度學習技術應用于橋梁[4]、隧道[5- 6]等結構的裂縫識別,均獲得了很好的識別效果。然而,現(xiàn)在一般采用基于監(jiān)督學習模式的深度學習方法對裂縫進行識別,這就意味著訓練前需要準備大量的數(shù)據(jù)集以及進行繁瑣的數(shù)據(jù)標記工作。數(shù)據(jù)集的獲取一直以來就是個難題,對于投入運營不久的基礎設施更是如此。同時數(shù)據(jù)標記工作也將耗費大量的時間和精力,上述缺點,一定程度上限制了該方法的推廣使用。
傳統(tǒng)的圖像處理方法是基于裂縫圖像的特征描述而開發(fā)的,基本不需要數(shù)據(jù)集且無需對圖片進行標記操作,避免了深度學習方法的缺點,如閾值分割[7]、邊緣檢測[8]、OTSU[9]、種子跟蹤[10- 11]等算法。這些方法處理簡單的裂縫圖像效果較好,但是當裂縫圖像中干擾多,背景雜亂時處理效果往往不理想。因此很多學者對傳統(tǒng)圖像處理算法進行了改進,例如在加入頻率濾波[12]和霍夫變換[13]等算法后去除了水泥路面刻槽、接縫及線路等特征鮮明的干擾,算法抗干擾能力得到了加強,但還是無法應對復雜的干擾。張碩和邵永軍等[14- 15]利用種子填充方法實現(xiàn)了橋梁及隧道裂縫的準確提取,抗干擾能力很強;但該方法需要手動在裂縫圖像上提供種子點,無法滿足自動化檢測的需求。
鑒于上述算法的不足,本研究提出了一種基于種子自動填充算法的圖像裂縫識別方法,并通過整合、優(yōu)化一些既有的圖像處理方法,形成了一套兼顧了效率和識別精度的裂縫圖像自動化識別系統(tǒng)。該系統(tǒng)在算法方面進行了多處創(chuàng)新,包括使用光照不均勻系數(shù)來提高勻光算法的計算效率以及引入種子填充算法來提高裂縫圖像分割的抗干擾能力;并經(jīng)過多項對比實驗,對該識別系統(tǒng)的優(yōu)越性進行論證。
裂縫圖像自動識別過程主要包括預處理、裂縫識別和特征提取三個部分,如圖1所示。預處理過程中的勻光處理采用光照不均勻系數(shù)對圖像進行篩選,提高效率的同時最大程度保留了裂縫的信息;隨后的裂縫識別過程創(chuàng)新性地引入了計算機圖形學中種子填充算法的概念,在此基礎上結合自動確定生長點以及連通域濾波等算法實現(xiàn)了圖像中裂縫的精準提?。惶卣魈崛‰A段對裂縫骨架提取流程進行了優(yōu)化,并且加入了骨架拼接等方法,最終可準確得到裂縫的條數(shù)、長寬值等量化參數(shù),為結構健康評定提供了依據(jù)。
圖1 總體設計流程圖
對所有圖像都使用勻光算法不僅會降低預處理效率,而且會造成圖像細節(jié)的損失。為克服這一缺點,本研究針對光照不足的圖像常帶有暗角的現(xiàn)象,提出了基于光照不均勻系數(shù)的勻光算法;該方法能自動篩選需要勻光處理的圖像,提高運算效率的同時保留了裂縫的細節(jié)信息。預處理流程如圖2所示,具體實施過程如下。
步驟1對原始圖像進行HSV變換,對V通道提取得到灰度圖(亮度矩陣),將灰度圖劃分為6×6的小塊。
步驟2計算圖像光照不均勻系數(shù)。如圖2所示,分別計算邊角位置B處12個子塊平均灰度iB,中心位置A處4個子塊平均灰度為iA,按照式(1)求取不均勻系數(shù)。將不均勻系數(shù)與0.1作對比,如果大于0.1,則進行步驟3勻光處理;反之,直接進入步驟4灰度線性變換。
K=|iA-iB|/iA
(1)
步驟3勻光處理,采用基于亮度均衡的處理算法[16]。
步驟4灰度線性變換。對勻光后的圖像進行灰度線性拉伸增強處理,使其灰度值充滿在0-255范圍,以此增加裂縫與背景圖像的對比度,方便裂縫提取。
圖2 勻光處理及圖像增強流程圖
對裂縫圖像的降噪處理有兩個目標:①近可能地保留裂縫信息;②對非裂縫區(qū)域盡可能的降噪模糊。為此,本研究將不同的降噪方法應用到混凝土裂縫圖像進行對比,結果如表1所示。其中的雙邊濾波算法[17]考慮了距離及灰度值兩個方面的影響因素,對背景區(qū)域進行模糊的同時保留了裂縫的邊緣信息,可以很好地滿足降噪處理的兩個目標,因此本研究選用雙邊濾波方法進行降噪處理[18]。
表1 關于混凝土圖像的降噪方法對比
種子填充算法原是計算機圖形學的概念,是指通過手動指定封閉區(qū)域中的一個像素點,從而將整個封閉區(qū)域用指定顏色進行填充[19]。本研究借鑒種子填充算法的原理并對其進行改進,實現(xiàn)了裂縫圖像的自動分割;該方法克服了邊緣檢測、閾值分割等傳統(tǒng)算法抗干擾能力弱的缺點,具有較強的魯棒性。
改進后的種子填充算法首先自動確定若干個種子生長點,然后搜索生長點周圍與其灰度相似的像素點,將搜索得到的像素點作為種子點進行生長區(qū)域的擴張,反復執(zhí)行此操作,直至遇到邊界;得到的整個生長區(qū)域的圖像就是裂縫初始二值圖;再通過連通域濾波即可得到最終準確的裂縫二值圖像??偭鞒倘鐖D3所示。
圖3 圖像分割流程圖
通過對大量裂縫圖像進行觀察,發(fā)現(xiàn)圖像中的裂縫區(qū)域比背景更暗(裂縫灰度值較低),并且裂縫在局部區(qū)域內(nèi)是連續(xù)的[20]。因此,只要確保選擇的生長點位于裂縫區(qū)域,依據(jù)種子填充算法的特點,就能提取出整條裂縫,而不必關心種子點數(shù)量的多少。為滿足上述要求,生長點的確定主要通過以下兩個步驟。
步驟1找出濾波處理后圖像中灰度值低的點,并將其坐標記錄在矩陣M中備用。
此步的關鍵在于選取合適數(shù)量的種子點。如果選取的種子點數(shù)量太少,極可能導致所選種子全部落于混凝土裂縫圖像背景中的零星黑點區(qū)域,導致裂縫分割失敗。如果選取的種子點數(shù)量過多,種子點的灰度值就會增大,由此可能使灰度值比裂縫高的背景區(qū)域被選為種子點,也使得裂縫分割失敗。本研究處理的原圖大小為800萬個像素,經(jīng)過大量試驗比較,種子點數(shù)量為像素總數(shù)的1‰時(即 8 000 個像素點)可以達到較好效果。此時,不管是粗裂縫還是細裂縫,該比例都能保證裂縫區(qū)域存在生長點且不溢出至背景區(qū)域,具有較高的魯棒性。經(jīng)此步驟提取的種子點如圖4(b)所示,可以看到大部分生長點都位于裂縫中,說明選取該比例的種子點是成功的。
步驟2隨機從矩陣M中選取一定數(shù)量的坐標點作為生長點。
為提高算法的運行效率,此步選取矩陣M中的部分種子點作為生長點即可。考慮到一個圖像中可能有一條以上的裂縫,再加上背景區(qū)域黑色噪點干擾,如果選取種子點太少,難以保證生長點覆蓋全部裂縫。經(jīng)過大量試驗,對于800萬像素大小的圖像,從矩陣M中隨機選取50個作為最終的種子生長點就可達到很好的效果。處理結果如圖4(c)所示,裂縫中都有種子點的存在,因此選取該數(shù)量的種子生長點是可行的。
通過圖4(c)可以看到,經(jīng)此步處理后,這些種子點有位于裂縫中的,也有位于背景區(qū)域的黑點中的。當在實施種子填充算法時,位于裂縫中的種子點因為裂縫具有連續(xù)性,所以能擴張到整個裂縫區(qū)域;而位于背景區(qū)域的黑點中的種子,周圍像素值與其差別很大(如圖4(c)綠框中的種子點,該種子點為灰度值較低的點,而周圍均為白色背景)。此處種子往往擴張不了,從而只填充極小一部分,而這一部分可以在后續(xù)連通域濾波階段進行去除,因此通過種子填充算法進行裂縫圖像分割是可行的。
(a)局部位置選取
對鄰近像素的搜索通常是在以生長點為中心的3×3大小的區(qū)域進行操作。實施種子填充算法時連通像素的搜索分為四方向搜索和八方向搜索,如圖5所示,其中T為搜索方向,F(xiàn)為非搜索方向。
圖5 鄰近像素的搜索方式
假定圖6(a)中藍色部分為裂縫區(qū)域,其中橙色點為種子生長點。四方向搜索結果如圖6(b)所示,而八方向搜索結果為如圖6(c)所示。八方向搜索方法更為全面,抗干擾能力更強,所以本研究用八方向搜索方法。
圖6 不同搜索方式結果對比
邊界的確定考慮鄰近像素與生長點的灰度差,如果灰度差超過某一閾值則視為邊界像素點。本研究采用抗干擾能力較強的相對閾值法進行邊界判斷。
首先嘗試將生長點鄰近像素加入生長區(qū)域J,然后計算區(qū)域J的平均灰度值m,判斷m是否超過預設的閾值K。如果超過閾值K,則將該點定義為邊界點;如果沒超過閾值K,則將該點加入生長區(qū)域J,繼續(xù)進行下一個鄰近像素點的搜索,直至遇到邊界點。設圖像區(qū)域J中的像素數(shù)目為N,坐標(x,y)處的灰度值為f(x,y),則平均灰度m可用式(2)表達:
(2)
假設有一幅圖像,如圖7(a)所示,以灰度值為1的點進行種子填充,閾值為2,采用八方向搜索。種子點的生長過程如圖7所示。種子填充算法執(zhí)行完成后,記錄種子填充的區(qū)域,即可得到裂縫的二值化圖像。
連通域濾波即統(tǒng)計二值圖中各部分連通區(qū)域像素點的個數(shù),然后將極小面積的噪點進行去除。本步驟分濾除背景區(qū)域白色噪點與濾除裂縫內(nèi)部黑色噪點兩個階段進行。
圖7 種子生長過程
第一階段中采用八方向連通域搜索算法對各白色連通區(qū)域像素點個數(shù)進行統(tǒng)計,將面積小的白色噪點進行濾除,處理結果如圖8(b)所示。此時背景白色噪點基本濾除干凈,但裂縫內(nèi)部仍存在大量黑色噪點,這些噪點將會嚴重影響后續(xù)的裂縫細化操作,必須進行濾除。因此,采用連通域濾波方法對小面積黑色區(qū)域像素點進行濾除。考慮到存在如圖9所示的裂縫內(nèi)部黑色噪點,該噪點與外部黑色背景斜向相連,若采用八連通域搜索方式對各黑色連通區(qū)域進行搜索時,程序會將圖9中裂縫內(nèi)部黑色噪點與黑色大背景視為一體,不會將小面積噪點剔除。而四方向搜索僅進行上下左右方向搜索,并不進行斜向搜索,此時圖9所示黑色噪點會被視為孤立點,會被算法濾除。因此在第二階段必須采用四方向連通域搜索算法進行濾波處理,處理后的裂縫二值圖幾乎不含內(nèi)、外噪點,如圖8(c)所示。
圖8 連通域濾波處理
圖9 裂縫內(nèi)部的黑色噪點放大圖
裂縫特征提取旨在獲取裂縫長寬值,實現(xiàn)對裂縫的量化,包括圖像細化、獲取裂縫條數(shù)、寬度、長度等步驟。
圖像細化流程如圖10所示,該步處理得到的裂縫骨架可以提供裂縫的中心位置及走向信息。如果直接對裂縫二值化圖像進行細化處理,得到的圖像往往含有很多毛刺,如圖10(b)所示。為解決這個問題,本研究先對圖像進行形態(tài)學膨脹處理,然后進行Zhang-Suen快速并行細化算法[21]處理即可得到毛刺較少的骨架圖,如圖10(d)所示。最后再將長度小的支鏈進行剔除[22],即可得到最終裂縫骨架,如圖10(e)所示。此時裂縫骨架圖已經(jīng)沒有了細小毛刺,可為裂縫的特征提取提供基礎。
圖10 裂縫骨架提取流程
當裂縫中存在干擾(如泥塊、小石塊)時,因為干擾處的亮度比裂縫區(qū)域高,使用種子填充算法進行圖像分割會認為裂縫在此斷開,從而將其當成兩條裂縫,如圖11所示。然而實際上此裂縫確實為一條,考慮到干擾點面積較小的特點,可以先對裂縫骨架圖中各條裂縫的端點之間的距離進行獲取。如果距離過小(小于圖像長度或寬度1/40),則對干擾處斷開裂縫在骨架圖中實施連接,作為一條裂縫(如圖11所示)。如果距離過大,則認為是兩條裂縫。統(tǒng)計連接好的骨架圖中連通區(qū)域的個數(shù),以此作為裂縫的條數(shù)。
圖11 骨架圖連接
每條裂縫是一個連通區(qū)域,可能為單一裂縫,也可能是網(wǎng)狀裂縫。對于單一裂縫,可以采取Freeman編碼,以此來獲取裂縫的長度及方向信息[23]。對于網(wǎng)狀裂縫,可以先消除網(wǎng)狀裂縫的節(jié)點(如圖12所示),使其變?yōu)槎鄠€簡單單一裂縫,統(tǒng)計出各簡單裂縫的長度最后進行相加即可獲得網(wǎng)狀裂縫的總長度。
圖12 斷除節(jié)點
裂縫的平均寬度和局部最大寬度在一定程度上可以反映結構健康狀態(tài),因此本研究將對這兩個指標進行獲取。裂縫的平均寬度獲取較簡單,直接由每條裂縫二值化圖像面積除以對應的裂縫長度獲得。而裂縫局部最大寬度可結合Freeman鏈碼信息及裂縫二值圖進行獲取,具體操作方法可參考文獻[23]確定。
為了測試該圖像識別方法的處理效果,對幾種典型工程結構的襯砌裂縫圖像進行了處理,并與其他常規(guī)算法進行了比較??傮w而言,這些或直觀或定量的處理結果在一定程度上反映了文中所提出的圖像識別系統(tǒng)的優(yōu)越性。
本研究圖像預處理中采取先判斷圖像光照均勻程度,再決定是否使用勻光算法進行勻光處理。這樣不僅可以提高計算效率,而且能避免勻光處理對光照均勻圖像的裂縫信息造成損失、最大程度保留裂縫細節(jié)。最后再用灰度值線性變化使得裂縫信息完整呈現(xiàn)出來,如圖13所示。
圖13 勻光處理及圖像增強
同時,為比較各濾波方法的處理效果及適應性,選取了3種不同干擾環(huán)境下的圖像來對比。由圖14可以看出,均值和高斯濾波在一定程度上模糊了裂縫的邊緣信息,而中值濾波對背景噪點的處理效果又不甚理想。本研究采用的雙邊濾波方法既可以很好地處理背景噪聲,又可以保留裂縫邊緣的細節(jié)。同時采用峰值信噪比(PSNR)來對比不同濾波方法對圖的處理效果,其中峰值信噪比越高,處理效果越好,結果如圖15所示,由圖15可見,采用文中提出的雙邊濾波處理法的效果最好。
圖15 不同濾波方法PSNR對比圖
本研究選取了4種不同環(huán)境下的裂縫圖像來對裂縫提取效果進行對比分析,如圖16所示。由圖16可以看出,自適應閾值法對噪聲異常敏感,分割后的圖像干擾太多;OTSU算法則因裂縫與背景所占圖像比例相差過大,導致該算法得到的閾值較實際最佳閾值高,使得部分背景區(qū)域也被識別為裂縫,識別效果不理想;而采用文中基于種子填充的分割算法則可在保留裂縫形態(tài)基礎上使得噪聲干擾降至極低的水平,增大了裂縫的識別率,更有利于進行裂縫的特征提取。
為了對裂縫識別算法效果進行定量評價,采用下式來表示裂縫識別算法的識別率[10]。
(3)
式中,∪表示集合的并運算,∩表示集合的交運算,Rc值為0%~100%(數(shù)值越高表示識別效果越好)。
(a)原圖
圖17為文中算法與自適應閾值法、OTSU法分割效果的對比圖,從圖中可以看出,本研究采用的種子填充算法在面對背景復雜的裂縫圖像時識別率遠高于自適應閾值及OTSU分割算法。
圖17 識別率定量對比
采用文中的特征提取方法對圖16中4種環(huán)境下的圖片分別進行處理,結果如表2所示,其中長、寬值均以像素為單位。從表中可以看出,程序所得裂縫長、寬值與實際值非常接近,誤差基本在10%以內(nèi)。因此文中所采用的圖像識別系統(tǒng)對復雜干擾情況下的裂縫進行識別及特征提取是可行的。
表2 裂縫信息提取結果的對比
本研究提出了一種裂縫圖像自動識別系統(tǒng),該系統(tǒng)在集成成熟算法的基礎上,進一步改進了勻光處理算法,并且提出了基于種子填充算法的裂縫圖像自動分割方法。對比其他傳統(tǒng)圖像識別方法,本研究所提出的圖像處理系統(tǒng)在裂縫識別方面抗干擾能力更強,結果更加準確且系統(tǒng)整體效率更高。研究成果主要包括以下幾個方面:
(1)該系統(tǒng)集成了一系列圖像處理程序,實現(xiàn)了裂縫的自動化識別。
(2)勻光算法流程通過光照不均勻系數(shù)進行照片初選,大幅提高了預處理效率,并且減少了算法造成的圖像細節(jié)損失。
(3)提出基于種子填充算法的圖像分割方法,結合連通域濾波算法,減輕了混凝土裂縫圖像背景干擾,具有較強的抗干擾能力。
(4)改進了裂縫特征提取流程。其中圖像細化中引入了形態(tài)學處理及毛刺剔除,優(yōu)化了裂縫骨架;條數(shù)提取中將節(jié)點間距離過短的骨架相連,消除了裂縫中石塊或泥塊的干擾。改進后的程序得到的長寬值與實際值更加接近,誤差在10%左右。