李 鵬,馬味敏,袁文婷
(南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇 南京 210044)
由于公路常年暴露在外受到風(fēng)吹日曬,加上行駛車(chē)流量多,其中還存在超載的問(wèn)題,導(dǎo)致我國(guó)公路的使用壽命遠(yuǎn)遠(yuǎn)低于國(guó)外。此時(shí),公路路面路面裂縫檢測(cè)和養(yǎng)護(hù)就顯得尤為重要,傳統(tǒng)的人工檢測(cè)不僅僅消耗精力大,檢測(cè)效率低,而且存在一定的安全隱患?;谟?jì)算機(jī)視覺(jué)的路面檢測(cè)無(wú)疑是當(dāng)今最高效、智能的一種檢測(cè)手段。
Kamaliardakani M[1]等人采用經(jīng)典的灰度閾值分割,但是容易受路面光照陰影影響。馬常霞[2]等人利用非下采樣 contourlet 變換結(jié)合圖像形態(tài)學(xué)方法和中值濾波實(shí)現(xiàn)裂縫檢測(cè),但該方法計(jì)算較復(fù)雜。Lee B Y等人[3]采用形態(tài)學(xué)方法檢測(cè)路面裂縫,但是裂縫受背景影響難以表現(xiàn)出完整的裂縫形態(tài)。劉娜[4]等人一種結(jié)合形態(tài)學(xué)和最大熵的路面裂縫檢測(cè)方法,但是分割后的圖像存在少量的失真。Bayoung Jik Lee 和 David Lee[5]共同提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的路面裂縫分割識(shí)別的算法,將原始圖像分割成眾多的子圖像并閾值分割,缺陷在于只能識(shí)別橫向和縱向的裂縫,對(duì)于龜裂并不理想。采用機(jī)器學(xué)習(xí)的方法[6-7]能很好的自動(dòng)檢測(cè)裂縫,但是需要大量的裂縫數(shù)據(jù),提取的特征具有不確定性,難以應(yīng)用于實(shí)際。
脈沖耦合神經(jīng)網(wǎng)絡(luò)(pulse coupled neural networks,PCNN)作為第三代神經(jīng)網(wǎng)絡(luò),不需要提前采集大量的數(shù)據(jù)進(jìn)行訓(xùn)練,但是該神經(jīng)網(wǎng)絡(luò)的模型參數(shù)設(shè)置以及迭代次數(shù)的終止始終是個(gè)難題。Helmy 等人[8]在SOM聚類(lèi)算法初步分類(lèi)的基礎(chǔ)上,用改進(jìn)的 PCNN 增強(qiáng)SOM 分類(lèi)結(jié)果,減少了過(guò)分割現(xiàn)象。宰柯楠等人[9]將遺傳算法與PCNN結(jié)合來(lái)檢測(cè)裂縫,遺傳算法確定PCNN模型參數(shù),雖然實(shí)現(xiàn)了自適應(yīng)但是計(jì)算量比較大。趙慧潔等人[10]用最小誤差準(zhǔn)則來(lái)確定PCNN模型迭代中止條件,仍舊要計(jì)算每次迭代的最小均方誤差,從而確定裂縫分割的最佳圖像。常學(xué)鋒等人[11]利用最大熵來(lái)確定PCNN的迭代終止,但是不可避免的計(jì)算每次迭代的熵,造成了計(jì)算的冗余。張平康等人[12]采用計(jì)算二維熵確定PCNN迭代結(jié)果,但沒(méi)有考慮對(duì)PCNN模型參數(shù)的自適應(yīng)。
本文不僅對(duì)脈沖耦合神經(jīng)網(wǎng)路的模型進(jìn)行了簡(jiǎn)化和改進(jìn),對(duì)于模型的關(guān)鍵參數(shù)也采取了自適應(yīng)方法。PCNN的模型迭代終止條件采取簡(jiǎn)單高效的方法,對(duì)裂縫做外接矩形并統(tǒng)計(jì)其內(nèi)部連通域。實(shí)驗(yàn)證明本文提出的算法相比于其算法,保證了裂縫分割的完整性的同時(shí)還具有較好的抗噪性。
脈沖耦合神經(jīng)網(wǎng)絡(luò)[13]是根據(jù)貓的視覺(jué)神經(jīng)系統(tǒng)發(fā)展而來(lái)的第三代神經(jīng)網(wǎng)絡(luò),是一種單層神經(jīng)網(wǎng)絡(luò),不需要提前進(jìn)行數(shù)據(jù)訓(xùn)練,在各種技術(shù)領(lǐng)域都有一定的優(yōu)勢(shì),尤其是在語(yǔ)音信號(hào),圖像處理等方面。傳統(tǒng)的脈沖耦合神經(jīng)網(wǎng)絡(luò)模型復(fù)雜,需要預(yù)先設(shè)置很多參數(shù),這一傳統(tǒng)的模型在實(shí)際的應(yīng)用過(guò)程中不太理想。所以一般解決實(shí)際問(wèn)題都使用簡(jiǎn)化的脈沖耦合神經(jīng)元模型,如圖1所示,該模型單個(gè)神經(jīng)元主要有三個(gè)部分構(gòu)成,分別是輸入域,耦合鏈接調(diào)制域,脈沖發(fā)生域。輸入域有線性鏈接輸入Lij和反饋輸入Fij兩部分構(gòu)成。耦合連接調(diào)制域?yàn)閮?nèi)部活動(dòng)項(xiàng)U,脈沖發(fā)生域是由脈沖發(fā)生器和動(dòng)態(tài)閾值Fij(n)=sij所構(gòu)成。
圖1 簡(jiǎn)化的脈沖耦合神經(jīng)元模型
(2)
Uij(n)=Fij(n)[1+βLij(n)]
(3)
Eij(n)=e-αEEij(n-1)+VgYij(n-1)
(4)
(5)
簡(jiǎn)化的脈沖耦合模型[14]按照式(1)-(5)進(jìn)行迭代,n為迭代次數(shù)。由此可以看到該簡(jiǎn)化模型中反饋輸入Fij就是外部刺激Sij。線性鏈接輸入Lij與權(quán)值矩陣Wijkl和神經(jīng)元在第n-1次迭代輸出的Ykl有關(guān),其中權(quán)值矩陣Wijkl表示神經(jīng)元間相互影響的強(qiáng)弱。內(nèi)部活動(dòng)項(xiàng)Uij與反饋輸入Fij和線性鏈接輸入Lij有關(guān),其中β是鏈接系數(shù),主要用來(lái)調(diào)節(jié)神經(jīng)元之間的連接強(qiáng)度。動(dòng)態(tài)閾值E與上一次的閾值門(mén)限和脈沖輸出有關(guān),其中αE是衰減系數(shù),Vg是放大系數(shù)。脈沖輸出的值Yij取決于動(dòng)態(tài)閾值和內(nèi)部活動(dòng)項(xiàng)的大小關(guān)系。當(dāng)動(dòng)態(tài)閾值E大于內(nèi)部活動(dòng)項(xiàng)Uij,則神經(jīng)元點(diǎn)火,輸出高脈沖導(dǎo)致系統(tǒng)反饋使得動(dòng)態(tài)閾值E快速放大,相鄰神經(jīng)元不點(diǎn)火并停止輸出脈沖,此時(shí)動(dòng)態(tài)閾值又開(kāi)始衰減,當(dāng)動(dòng)態(tài)閾值E小于內(nèi)部活動(dòng)項(xiàng)Uij。神經(jīng)元再次點(diǎn)火并輸出高脈沖,如此循環(huán)往復(fù)完成神經(jīng)元之間的相互作用。在該簡(jiǎn)化模型中,權(quán)值矩陣Wijkl、鏈接系數(shù)β、衰減系數(shù)αE、放大系數(shù)Vg的設(shè)置很關(guān)鍵,將直接影響神經(jīng)元。
對(duì)上文介紹的簡(jiǎn)化的脈沖耦合神經(jīng)網(wǎng)絡(luò)模型進(jìn)一步的改進(jìn)在于對(duì)式(4),如式(6)。神經(jīng)元點(diǎn)火過(guò)程中,當(dāng)動(dòng)態(tài)閾值E大于內(nèi)部活動(dòng)項(xiàng)Uij,則神經(jīng)元點(diǎn)火,輸出高脈沖導(dǎo)致系統(tǒng)反饋使得動(dòng)態(tài)閾值E快速放大,為了減少放大系數(shù)Vg對(duì)該模型的影響,本文方法可以重新定義一個(gè)和圖像像素大小相同的零矩陣,將已激活的像素位置標(biāo)記,即使得內(nèi)部活動(dòng)項(xiàng)遠(yuǎn)遠(yuǎn)小于設(shè)置的門(mén)限值,避免被激活過(guò)的神經(jīng)元再次被激發(fā),經(jīng)過(guò)大量實(shí)驗(yàn)設(shè)置門(mén)限為10000,式(6)這一改進(jìn)去掉了放大系數(shù)這個(gè)參數(shù)對(duì)模型的影響。
Eij[n]=e-αEEij[n-1]
(6)
所以在此改進(jìn)的脈沖耦合神經(jīng)網(wǎng)絡(luò)模型中,所需要確定的參數(shù)有權(quán)值矩陣Wijkl、鏈接系數(shù)β、衰減系數(shù)αE、初始門(mén)限H和E。
2.2.1 各參數(shù)設(shè)置
1)始圖像灰度化后作為脈沖耦合神經(jīng)網(wǎng)絡(luò)的外部輸入。權(quán)值矩陣Wijkl一般將其設(shè)置為神經(jīng)元ij和其神經(jīng)元kl的歐幾里德距離平方倒數(shù)[15]。本文選用雙邊濾波器的權(quán)重,如式(7)計(jì)算得到。
(7)
其中σd和σr分別表示空間域和像素范圍域的尺度。不僅考慮到鄰域歐氏距離對(duì)中心像素的影響,而且當(dāng)檢測(cè)到圖像邊緣區(qū)域時(shí),像素值變化很大,像素范圍域權(quán)重增大,可以更好的保持邊緣信息。
2)鏈接系數(shù)β表示周?chē)窠?jīng)元與本神經(jīng)元的鏈接強(qiáng)度,在圖像中即為中心像素與周?chē)袼氐穆?lián)系,本文采用計(jì)算灰度共生矩陣來(lái)研究灰度空間的相關(guān)特性。
①首先在圖像選取一點(diǎn)(i,j)以及鄰域像素(i+a,j+b),其灰度值分別為x和y,構(gòu)成點(diǎn)對(duì)。則其灰度共生矩陣可以表示為
P(x,y,d,θ)={[(i,j),(i+a,j+b)|f(i,j)=x,f(i+a,j+b)=y]}
(8)
其中d為步長(zhǎng),即像素之間的距離;θ為生成方向,一般取0°,45°,90°,和135°。
②其次采用歸一化的概率值表示灰度共生矩陣元素,即p(x,y)=p(x,y|d,θ)/s,其中s表示灰度共生矩陣各元素之和。
③最后,通過(guò)計(jì)算灰度共生矩陣的特征參數(shù)來(lái)提取鄰域像素與中心像素之間的聯(lián)系強(qiáng)度。即選用差的方差來(lái)描述鄰近像素對(duì)中心像素灰度值差異的方差,紋理變化越大,其值越大。其公式如下
(9)
(10)
③初始閾值門(mén)限H取最佳分割閾值,本文取圖像的最大類(lèi)間方差法分割的閾值。衰減系數(shù)αE的選取直接影響該模型的動(dòng)態(tài)閾值的衰減以及神經(jīng)元點(diǎn)火,所以在此根據(jù)圖像的灰度-信息量估計(jì)方法[16-17]。假設(shè)原圖像的信息總量為Imax,I(O)為裂縫的信息量,I(B)為背景及噪聲的信息量,t為搜索閾值,有以下公式
(11)
(12)
當(dāng)t由0至255進(jìn)行閾值搜索時(shí),分割結(jié)果的二值圖像的熵不斷增加,H(O)不斷增加,H(B)不斷減少,由熵的性質(zhì)可知,當(dāng)目標(biāo)裂縫的像素出現(xiàn)概率等于背景及噪聲像素的出現(xiàn)概率時(shí),圖像的熵最大,兩條曲線交點(diǎn)所對(duì)應(yīng)的灰度值為最佳分割閾值,即H(O)=H(B)。
圖2 灰度信息量直方圖搜索過(guò)程示意圖
此時(shí)在灰度-信息量直方圖中,累計(jì)目標(biāo)裂縫區(qū)域所包含的直方圖面積記為A目,總的直方圖的面積記為A總,滿足(13)式,即可得到最佳的分割閾值。
(13)
所以假設(shè)圖像中灰度值最大為gmax,上述方法得到的最佳分割閾值記為g估,所以PCNN模型的衰減系數(shù)由下式可以獲得:
αE=lngmax-lng估
(14)
2.2.2 形態(tài)學(xué)處理
將PCNN每一次的迭代輸出的圖像作以下的形態(tài)學(xué)處理,首先是對(duì)圖像進(jìn)行細(xì)化,細(xì)化是將圖像中的黑色部分沿著中心軸線細(xì)化成一個(gè)像素寬的線條,保留圖形中黑色部分的拓?fù)浣Y(jié)構(gòu),這一細(xì)化處理能夠提取圖像中裂縫的骨骼,其中背景噪聲的骨骼也被保留。
2.2.3 迭代終止條件
隨著PCNN模型的點(diǎn)火條件中的動(dòng)態(tài)閾值衰減,神經(jīng)元受鄰域影響得到觸發(fā),每一次迭代中對(duì)形態(tài)學(xué)處理后的二值圖像劃分連通域,以面積最大的連通域作為裂縫目標(biāo),作外接矩形,并計(jì)算該矩形的面積Sn,計(jì)算該矩形中所包含的連通域的個(gè)數(shù)Nn,并與后一次迭代結(jié)果的最大外接矩形面積Sn+1比較,如果面積相差超過(guò)前者外接矩形的85%,則說(shuō)明裂縫出現(xiàn)了過(guò)分割的斷裂,應(yīng)該及時(shí)停止迭代,并取上一次的迭代分割結(jié)果。如果面積相差不大,則應(yīng)該比較前后兩次的最大裂縫中連通域的個(gè)數(shù),如果Nn+1大于Nn,則說(shuō)明還是出現(xiàn)了裂縫的斷裂即過(guò)分割,應(yīng)該取上一次的迭代輸出,否則說(shuō)明需要PCNN模型繼續(xù)迭代去噪,直至出現(xiàn)過(guò)分割并終止迭代,取前一次迭代結(jié)果并進(jìn)行連通域分割去除細(xì)小噪聲。算法設(shè)計(jì)流程圖如圖3所示。
圖3 算法設(shè)計(jì)流程圖
本文算法驗(yàn)證在CPU為3.00GHz,RAM為4.00GB,64位操作系統(tǒng)的PC機(jī)上,使用 MATLAB2014a對(duì)224*224尺寸的大量路面裂縫圖片進(jìn)行分割實(shí)驗(yàn)。
本文算法是對(duì)PCNN模型的改進(jìn),在迭代終止的條件上通過(guò)形態(tài)學(xué)的操作,對(duì)細(xì)化后的裂縫作外接矩形,計(jì)算矩形面積及連通域個(gè)數(shù),判斷有無(wú)過(guò)分割,以確定是否迭代終止。如圖4所示, 對(duì)龜裂的圖a進(jìn)行檢測(cè)裂縫即作最大外接矩形,n為迭代次數(shù),當(dāng)n=4時(shí),圖b中最大的外接矩形遠(yuǎn)遠(yuǎn)大于圖c中n=3時(shí)的最大外接矩形,即出現(xiàn)了過(guò)分割,取n=3時(shí)的迭代結(jié)果。在對(duì)圖d的裂縫檢測(cè)中,圖e中n=2時(shí)的最大外接矩形與圖f中n=3的矩形面積相同,此時(shí)n=3的矩形內(nèi)的連通域個(gè)數(shù)增加,說(shuō)明裂縫出現(xiàn)了過(guò)分割,取n=2時(shí)的迭代結(jié)果。
圖4 外接矩形判斷
由于篇幅限制,圖5給出了一些具有代表性的橫向,縱向,塊狀裂縫分割結(jié)果??梢钥闯鯬CNN最大熵算法迭代結(jié)果的圖片中雖然濾除了大部分噪聲,但是裂縫容易出現(xiàn)過(guò)分割,而PCNN灰度迭代閾值算法[18]很好的保留了裂縫的細(xì)節(jié)信息,但是抗噪性能不高,本文算法在保留裂縫形態(tài)的同時(shí)對(duì)細(xì)小噪聲有很好的去除。
圖5 裂縫分割算法對(duì)比
通過(guò)三種算法實(shí)驗(yàn)對(duì)比,本文算法的計(jì)算量以及運(yùn)行效率明顯優(yōu)于PCNN最大熵算法和PCNN遺傳算法,接下來(lái)通過(guò)受試者工作特征曲線分析(receiver operating characteristics,ROC)[19-20]比較算法的魯棒性。
ROC曲線是用于顯示分類(lèi)靈敏度和特異性的一種圖形分析,本文對(duì)于裂縫檢測(cè)分割的實(shí)質(zhì)就是將背景噪聲與裂縫目標(biāo)進(jìn)行分類(lèi),其中靈敏度Sn表示裂縫目標(biāo)被正確檢測(cè)的概率,特異性SP表示背景噪聲被正確識(shí)別的概率,當(dāng)誤警率為零時(shí)即Sn=1且1-Sp=0,表示該曲線達(dá)到最理想的情況。當(dāng)曲線越接近左上角,即曲線的下面積越大,算法檢測(cè)的魯棒性越高。靈敏度Sn和特異性SP的計(jì)算公式如式(15)和(16)
(15)
(16)
其中,A表示分割后的裂縫像素?cái)?shù),N表示分割后圖像的總的像素?cái)?shù),Xi,j表示分割后的圖像,Yi,j表示對(duì)原圖取一定閾值后的圖像。針對(duì)圖5中塊狀裂縫圖片的ROC曲線描繪如圖6所示。對(duì)圖5三類(lèi)圖片分別經(jīng)過(guò)三種算法的分割結(jié)果進(jìn)行ROC曲線分析,得到圖7中統(tǒng)計(jì)三種圖片的曲線下面積。綜合來(lái)看,PCNN最大熵算法,PCNN灰度迭代閾值算法,本文算法的平均曲線下面積分別為:81.4%,75.1%,89.8%,本文算法高于PCNN最大熵算法8.4%,高于PCNN灰度迭代閾值算法14.7%。表明其裂縫檢測(cè)分割的性能有一定的提高,去噪能力強(qiáng)。
圖6 塊狀裂縫三種算法ROC曲線對(duì)比
圖7 三種裂縫不同算法下的ROC曲線下面積
本文提出簡(jiǎn)化的PCNN模型以及迭代終止條件的改進(jìn),避免了計(jì)算PCNN模型每一次迭代的熵,利用形態(tài)學(xué)相關(guān)的運(yùn)算,根據(jù)裂縫外接矩形變化的特征,來(lái)判斷有無(wú)出現(xiàn)過(guò)分割,從而決定迭代是否終止,該方法比計(jì)算模型每一次點(diǎn)火后的熵更簡(jiǎn)單高效,易于得到裂縫的最佳分割效果,與基于PCNN最大熵算法和PCNN灰度迭代閾值算法比較,無(wú)論是從主觀的視覺(jué)效果還是客觀的ROC評(píng)價(jià)曲線來(lái)看,檢測(cè)的準(zhǔn)確率也有較好的改進(jìn)效果。但對(duì)于路面污跡和異物干擾的情況下,在裂縫檢測(cè)提取過(guò)程中還存在進(jìn)一步的改進(jìn)空間。