柴雪松,朱興永,李健超,薛 峰,辛學仕
(1.中國鐵道科學研究院集團有限公司 鐵道建筑研究所,北京 100081;2.中國鐵路蘭州局集團有限公司 工務(wù)處,甘肅 蘭州 730000;3.北京郵電大學,北京 100876)
隧道襯砌裂縫會影響隧道的穩(wěn)定性,嚴重時危及列車運行安全,因此必須及時對襯砌裂縫進行有效識別。傳統(tǒng)的檢測方法是以人工目視檢查為主,檢測效率很低,檢測質(zhì)量也難以保證。為此,國內(nèi)外相繼研制了基于圖像處理的隧道襯砌質(zhì)量檢測系統(tǒng),實現(xiàn)了對隧道襯砌圖像的快速采集,并開展了裂縫自動識別的研究。中國鐵道科學研究院于2017年自主研制了隧道襯砌表面狀態(tài)檢測系統(tǒng)[1],能以50 km/h的速度采集含1 mm以上襯砌裂縫的圖像,并實現(xiàn)了對圖片中襯砌裂縫的快速準確識別。本文對該系統(tǒng)中的襯砌裂縫快速識別算法予以介紹。
隧道圖像具有復(fù)雜的特性,既有水漬、污染及其他結(jié)構(gòu)縫的存在,又有光照不均勻、噪聲繁多、分布不規(guī)律的情況。這些都給傳統(tǒng)的圖像處理方法帶來了發(fā)展瓶頸。近年來人工智能逐步發(fā)展,其中尤為重要的深度學習技術(shù)已經(jīng)全面滲透計算機視覺領(lǐng)域,并且取得了傲人的成績。本文提出的基于計算機視覺的襯砌裂縫自動識別算法正是將深度學習開創(chuàng)性地應(yīng)用到傳統(tǒng)的襯砌裂縫識別領(lǐng)域。這是一種有監(jiān)督的學習方式,采用深度卷積神經(jīng)網(wǎng)絡(luò)能夠更好地提取圖像更深層次的特征,能做到在識別裂縫時不受或者少受環(huán)境因素干擾。試驗表明,這一算法具有很高的識別率,同時時間性能優(yōu)異,應(yīng)用價值極高。
目前,基于圖像處理的裂縫檢測已經(jīng)取得了很多研究成果。國外,出現(xiàn)了基于網(wǎng)絡(luò)分析的裂縫檢測算法和基于最小路徑的裂縫檢測算法。此類方法不適合處理被嚴重噪聲污染的圖像。FUJITA等[2]提出了一種兩步處理的算法。該算法能有效地去除圖像中不均勻光照、陰影、污點等引起的噪聲。后來,產(chǎn)生了一種利用形態(tài)學處理和邏輯回歸的統(tǒng)計學分類的裂縫檢測算法[3]。該算法對裂縫提取的精度超過80%,但是該算法會漏檢一些細小的裂縫且計算量較大,效率低下。國內(nèi),李剛等[4]提出了一種基于Sobel算子和最大熵法的圖像分割算法,褚燕利[5]提出了一種基于灰度圖像及其紋理特性的裂縫特征提取算法。盧曉霞分析和比較了多種經(jīng)典的算子,王曉明等提出了一種基于多圖像和多分辨率的路面裂縫檢測方法[6]。該方法使用了圖像融合技術(shù),而且多尺度的方法很好地保存了圖像的集合特性,極大地提高了裂縫檢測的可靠性和精度。隨著機器學習方法的快速發(fā)展,結(jié)合機器學習方法和圖像處理的裂縫識別算法不斷涌現(xiàn)。
深度學習(deep learning)這一概念由Hinton等[7]于2006年提出。首先提出的是自動編碼器的多層次結(jié)構(gòu)模型,后來在限制玻爾茲曼機(Restricted Boltzmann Machine,RBM)的基礎(chǔ)上拓展出了深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)。它是一種無監(jiān)督性逐層訓練算法,在優(yōu)化并解決深層結(jié)構(gòu)問題方面有很大改善[8]。另外,SERMANET等[9]提出了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Netwok,CNN)——一個較為直觀的多層結(jié)構(gòu)網(wǎng)絡(luò)學習算法,利用圖像空間信息減少訓練參數(shù)數(shù)量從而在提高模型訓練性能方面有了很大改善。深度學習通過分層式結(jié)構(gòu)的多層信息處理來進行非監(jiān)督的特征學習和圖像分類,模擬人腦學習和分析的能力,形成一個神經(jīng)網(wǎng)絡(luò)[10-12]結(jié)構(gòu)。它可以像人腦一樣對外界輸入事物進行分析和理解,該網(wǎng)絡(luò)優(yōu)勢被廣泛應(yīng)用于圖像、文本、聲音等研究領(lǐng)域。
圖像分類是要解決圖片中是否包含某類物體的問題,對圖像進行特征描述是物體分類的主要研究內(nèi)容。一般說來,物體分類算法通過手工特征或者特征學習方法對整個圖像進行全局描述,然后使用分類器判斷是否存在某類物體。應(yīng)用比較廣泛的圖像特征有SIFT,HOG,SURF等。這些對圖像分類的研究中,大多數(shù)特征提取過程是人工設(shè)計的,通過淺層學習獲得圖像底層特征,與圖像高級主題間還存在很大的“語義鴻溝”。而深度學習利用設(shè)定好的網(wǎng)絡(luò)結(jié)構(gòu),完全從訓練數(shù)據(jù)中學習圖像的層級結(jié)構(gòu)性特征,能夠提取更加接近圖像高級語義的抽象特征,因此在圖像識別上的表現(xiàn)遠遠超過傳統(tǒng)方法。
卷積神經(jīng)網(wǎng)絡(luò)在特征表示上具有極大的優(yōu)越性,模型提取的特征隨著網(wǎng)絡(luò)深度的增加越來越抽象,越來越能表現(xiàn)圖像主題語義,不確定性越少,識別能力越強。AlexNet的成功證明了CNN網(wǎng)絡(luò)能夠提升圖像分類的效果,其使用了8層的網(wǎng)絡(luò)結(jié)構(gòu),獲得了2012年ImageNet數(shù)據(jù)集上圖像分類的冠軍[13],為訓練深度卷積神經(jīng)網(wǎng)絡(luò)模型提供了參考。2014年GoogleNet另辟蹊徑,從設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)的角度來提升識別效果[14]。其主要貢獻是設(shè)計了Inception模塊結(jié)構(gòu)來捕捉不同尺度的特征,通過1×1的卷積來進行降維。2014年另外一個工作是VGG,進一步證明了網(wǎng)絡(luò)的深度在提升模型效果方面的重要性[15]。2015年最重要的一篇文章是關(guān)于深度殘差網(wǎng)絡(luò)(ResNet),文章提出了擬合殘差網(wǎng)絡(luò)的方法,能夠做到更好地訓練更深層的網(wǎng)絡(luò)[16]。后續(xù)分類網(wǎng)絡(luò)的發(fā)展如Google的inception系列,2017年的主流模型比如獲得最佳論文獎的DenseNet等都借鑒了ResNet的設(shè)計思想。本文的模型也是基于ResNet的基礎(chǔ)網(wǎng)絡(luò)設(shè)計的。
雖然深度學習在圖像分類和目標檢測上取得了巨大的進步,但仍有人質(zhì)疑深度學習在工程中的應(yīng)用效果。因為它無法很好地解決圖像識別的另一大任務(wù)——圖像分割。圖像分割與圖像分類的最大區(qū)別是圖像分割要實現(xiàn)對每個像素的分類。而真正解決這一問題的是2015年CVPR的一篇圖像語義分割的文章FullyConvolutionalNetworksforSemanticSegmentation,自此以后一系列的用于圖像分割的改進神經(jīng)網(wǎng)絡(luò)模型被提出,從FCN,DecovNet,DilatedNet到DeepLab,PSPNet,分割精度進一步提升。
針對文獻[1]中研制的隧道襯砌表面狀態(tài)檢測系統(tǒng)所獲取的隧道襯砌圖片,建立的襯砌裂縫識別算法的流程如圖1 所示。
圖1 襯砌裂縫識別算法流程
通過相機獲取的原始隧道圖片(4 096×4 096)過于龐大,為便于處理,需要對其進行切分。由于裂縫分布的不均勻性,普通的切分方法極有可能使裂縫出現(xiàn)在切分圖的邊緣,對后續(xù)的分類模型訓練造成負面影響。因此,本文采用SLIC超像素分割方法對原圖進行分割,按照生成的一定數(shù)量的超像素對原圖進行切分。裂縫的形狀多為細長形,本文針對這一特點做了相應(yīng)的算法改進,同時也做了大量試驗對SLIC超像素分割進行優(yōu)化和加速。該過程如圖2所示。
圖2 超像素分割示意
輸入為一張大圖,經(jīng)過超像素分割,聚類成一定數(shù)量的不規(guī)則圖像塊。經(jīng)過調(diào)試和一些編程技巧的優(yōu)化后,本文用cuda編程將分割程序運行在GPU(Pascal Titan X)上,速度為每張圖片0.05 s,在同樣效果的情況下速度大幅提升。
大圖中每一個不規(guī)則像素塊被切分出來按照一定格式保存,被用于裂縫識別數(shù)據(jù)集的建立。保存的圖片如圖3所示??梢钥闯觯@些不規(guī)則的像素塊有效地保持了裂縫的形狀,避免了裂縫出現(xiàn)在分割的邊緣處。
圖3 超像素分割后像素塊形成的圖片
為了解決襯砌裂縫識別問題,本文構(gòu)建了一個名為CNT的專有數(shù)據(jù)集,包含分類子集CLS-CRACK的專用數(shù)據(jù)集和分割子集SEG-CRACK。數(shù)據(jù)集選取3條完整隧道的圖片數(shù)據(jù)作為數(shù)據(jù)源,涵蓋不同路段、不同光照和不同的隧道類型。經(jīng)過龐大的人工清洗和人工標注最終生成一個符合深度學習模型訓練標準的數(shù)據(jù)集。其中,CLS-CRACK共包含 6 550 張圖像和對應(yīng)的分類標注,其中 4 550 張用作訓練集,2 000 張用作驗證集,正負樣本比例基本為2∶1。CLS-CRACK數(shù)據(jù)集包括圖像分類標簽0和1,代表圖片樣本是否含有裂縫。SEG-CRACK數(shù)據(jù)集包含裂縫圖片 2 000 張及其相應(yīng)的分割標注,其中訓練集 1 700 張,驗證集300張。分割標注是包圍裂縫的多邊形,通過圖像處理轉(zhuǎn)化成分割掩碼,用0和1的灰度值代表類別。
2.3.1 模型細節(jié)
一個完整的分類網(wǎng)絡(luò)包括輸入、圖片處理、計算推理和輸出。在訓練階段輸入包括圖像和對應(yīng)的標簽,而在測試階段輸入只有圖像。模型最終輸出該圖像是否含有裂縫。分類模型框架如圖4所示。
圖4 分類模型框架
為了快速并準確地對隧道圖片進行裂縫的識別,本文選擇了速度性能均衡的ResNet18網(wǎng)絡(luò)。
本文基于caffe深度學習框架來實現(xiàn),在GPU(Pascal Titan X)上進行測試,一張尺寸300左右的圖片前向與反向計算的時間分別是4.48 ms與5.07 ms,速度極快。ResNet18包括18個卷積層,第1層為7×7的卷積層,最后一層為全連接層,中間為8個模塊結(jié)構(gòu),每個模塊結(jié)構(gòu)包括2個3×3卷積層。網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 ResNet18網(wǎng)絡(luò)結(jié)構(gòu)
2.3.2 模型訓練與測試
本文使用caffe深度學習框架來進行模型訓練與測試,模型訓練采用在ImageNet上訓練好的分類模型繼續(xù)訓練。訓練參數(shù)的設(shè)置對于模型訓練的效果至關(guān)重要。本文設(shè)置基礎(chǔ)學習率為0.001并采用分段式下降策略,圖片批數(shù)量為15,訓練100次全數(shù)據(jù),圖片進入網(wǎng)絡(luò)前統(tǒng)一縮放至600×600大小,并進行減均值除方差操作進行歸一化處理。
模型測試應(yīng)用了不同的裁切(crop)策略,即對一張圖先縮放,再從圖中crop出一定尺寸大小的圖片。這些圖片經(jīng)過模型預(yù)測的結(jié)果綜合起來能更好地提升準確率。
在分類任務(wù)中,最常用的性能度量指標是錯誤率和精度。但是,本項目關(guān)心的是挑出的圖片中有多少是存在裂縫的或者所有存在裂縫的圖片有多少被挑出來了。此時,查準率(precision)和查全率(recall)是更為適用于此類需求的性能度量指標。對于二分類問題,根據(jù)真實類別和模型預(yù)測的類別組合可劃分為真正例(TP)、假正例(FP)、真反例(TN)和假反例(FN)4種情形。查準率P和查全率R分別定義為
查準率和查全率是一對矛盾的度量指標,很多情況下可根據(jù)模型的預(yù)測結(jié)果對樣本進行排序,排在最前面的是最有可能為正例的樣本,按照從前往后的順序逐個把樣本作為正例進行預(yù)測,每次可計算出當前的查全率和查準率,以查準率為縱軸、查全率為橫軸作圖就得到P-R曲線。本文的試驗不僅分析了這些指標,也在P-R曲線上對模型效果進行了評估。
分割網(wǎng)絡(luò)基于ResNet 18與DeepLabv 3分割框架設(shè)計。分割網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 ResNet 18-DeepLabv 3分割網(wǎng)絡(luò)結(jié)構(gòu)
2.4.1 帶孔卷積
使用帶孔卷積可以處理任意大小的輸入圖片,將最后一次全局池化的參長(stride)設(shè)為1,其前面網(wǎng)絡(luò)的下采樣過程用擴散系數(shù)(rate)為2的帶孔卷積來替代,就能夠直接在原始圖像分辨率大小下獲得特征響應(yīng)。但是這種一直在全分辨率下進行計算的方式無論在時間上還是空間上都成本巨大。而根據(jù)FCN-8s最終是對8倍下采樣的特征圖進行8倍雙線性插值得到原始輸入圖片大小的分割預(yù)測圖。可以在得到8倍下采樣特征圖的后續(xù)網(wǎng)絡(luò)中加入帶孔卷積。這樣既不會過多地增大時間和空間成本,又能對足夠精確的特征圖進一步優(yōu)化。
根據(jù)空洞卷積原理,對原始ResNet 18網(wǎng)絡(luò)進行了如下改進:即在第3次下采樣后第4次下采樣網(wǎng)絡(luò)開始時,將后續(xù)所有網(wǎng)絡(luò)的卷積層的stride設(shè)為1,同時添加空洞因子。其中對于之前的第4次下采樣模型塊rate=2,第5次下采樣rate=4,最后得到8倍下采樣的特征圖,再通過8倍雙線性插值后就可以得到原始圖片大小的預(yù)測結(jié)果。
2.4.2 帶權(quán)重的Softmax Loss函數(shù)
與常規(guī)的裂縫分割不同,裂縫分割有其數(shù)據(jù)分布的特殊性,裂縫在每張圖片上其像素只占有很小比例,而深度學習框架常用的Softmax損失函數(shù)可以看作為一個平均投票器,這樣就會導致像素更偏向于被預(yù)測為非裂縫的背景點。針對這個問題,修改了Softmax Loss函數(shù),改為帶權(quán)重的Softmax Loss函數(shù),該函數(shù)使有裂縫的像素值位置加權(quán)參與運算。該方法有效解決了裂縫數(shù)據(jù)不均衡的問題。
2.4.3 分割模型測試指標
在深度學習語義分割任務(wù)中慣用的評價指標有像素分類準確率、均交并比(Mean Intersection over Union,MIOU)等。MIOU指的是模型預(yù)測結(jié)果與“真相”的交并比,是一個非常嚴苛的指標。在本文中只有一類裂縫需要被分割,因此只要計算裂縫的MIOU即可分析模型的分割效果。
2.4.4 分割模型閾值選取
在裂縫分割的過程中,經(jīng)過分割網(wǎng)絡(luò)的每個像素點都會得到一個得分。該得分代表著該像素點屬于裂縫的置信度。在判斷像素點是否為裂縫的過程中可以選取不同的閾值。選取不同閾值,獲得的裂縫分割圖像效果不同,如圖7所示。
圖7 不同閾值的分割圖像
從圖7可以看出:閾值選取得越高,越會導致一些裂縫點被認為是背景。為了不損失裂縫信息,在后面的試驗分析中將閾值取為0.5。
模型采用的是Softmax分類器,最終輸出的是該圖像是否存在裂縫的概率值。試驗中,概率值大于0.5則認為測試圖像存在裂縫。本文首先做了單尺度crop(600/600)試驗,模型精度為0.927,查準率和查全率分別為0.545和0.800。以此作為基準試驗,做了三組對比試驗。試驗參數(shù)及結(jié)果見表1。
表1 分類模型性能測試對比試驗參數(shù)及結(jié)果
從表1中可以看出:試驗2比試驗1在精度,查準率和查全率方面都有所提升,原因是一張圖片crop出多個子圖片,模型對這些子圖片都進行判別,再綜合考慮所有的結(jié)果最后對一張測試圖像給出結(jié)果。試驗3與試驗2對比,不同之處在于模型的最終結(jié)果不根據(jù)多張子圖片的結(jié)果綜合打分,而是找出其中概率最大的結(jié)果。依據(jù)是,在更關(guān)注查全率的前提下隧道圖片正樣本較少,且裂縫為細長形不容易被發(fā)現(xiàn),一旦在某個狀態(tài)下被確定為裂縫則就認為它存在裂縫,這樣能提高查全率。經(jīng)過分析,試驗2的multi-crop策略能有效提升模型精度,因此在搭建級聯(lián)網(wǎng)絡(luò)時采取試驗2的參數(shù)。
P-R圖直觀地顯示出分類器模型在測試樣本總體上的查全率和查準率,能通過曲線的分布情況與曲線下的面積來比較分類器的性能。3次試驗的P-R曲線見圖8。
圖8 分類模型性能測試對比試驗P-R曲線分析
從圖8中可以看出:試驗2和試驗3的P-R曲線基本能完全包住試驗1的曲線,即試驗2、試驗3的查準率和查全率都要高于試驗1。多尺度crop的技巧對于提高模型性能具有良好的效果。試驗2和試驗3的曲線存在交疊,模型性能較難評估。雖然表1表明在相同得分閾值下,試驗3的查全率要高于試驗2,但試驗2的曲線下方面積比試驗3大,試驗2曲線取得查準率和查全率雙高點的可能性要大于試驗3曲線。因此,通過分析P-R曲線不僅能夠評估模型性能,還能根據(jù)不同的任務(wù)需求尋找最合適的得分閾值。在裂縫分類任務(wù)及后面的試驗中,默認閾值為0.5。
用SEG-CRACK的驗證集共300張圖片進行模型的測試,進行了多組試驗與baseline對比來分析MIOU,結(jié)果見表2。
表2 分割模型性能測試結(jié)果對比
裂縫分割優(yōu)化結(jié)果見圖9。可看出分割優(yōu)化后圖像與標注圖像非常吻合。
圖9 裂縫分割優(yōu)化結(jié)果展示
本文提出了一個基于深度學習的襯砌裂縫識別算法,針對隧道圖片特征分析并優(yōu)化了SLIC超像素分割算法,構(gòu)建了一個用于襯砌裂縫分析的數(shù)據(jù)集CLS-CRACK。在此基礎(chǔ)上,設(shè)計分類網(wǎng)絡(luò)ResNet 18,用caffe深度學習框架進行模型訓練與優(yōu)化。最后,將訓練好的模型在驗證集上進行性能分析。試驗結(jié)果表明,該模型在CLS-CRACK數(shù)據(jù)集上表現(xiàn)良好,模型識別正確率94%,能夠快速準確地實現(xiàn)裂縫的識別。完成裂縫識別后,用ResNet 18網(wǎng)絡(luò)參考DeepLabv 3框架搭建裂縫分割網(wǎng)絡(luò),針對裂縫分割問題作了諸多調(diào)整改進使得模型收斂,且做了大量的試驗來優(yōu)化分割模型,最終在分割驗證集上MIOU達到65%。
通過進一步收集現(xiàn)場圖片并不斷完善模型,本文的研究成果在鐵路襯砌裂縫檢測中可以發(fā)揮積極作用。
[1]柴雪松,李健超.基于圖像識別技術(shù)的隧道襯砌裂縫檢測系統(tǒng)研究[J].鐵道建筑,2018,58(1):20-24.
[2]FUJITA Y,MITANI Y,HAMAMOTO Y.A Method for Crack Detection On A Concrete Structure[C]//Pattern Recognition,the 18th Internation Conference.IEEE,2006.
[3]LANDSTROM A,THURLEY M J.Morphology-based Crack Detection For Steel Slabs[J].Selected Topics in Signal Processing,IEEE Journal,2012,6(7):866-875.
[4]李剛,賀昱曜.不均勻光照的路面裂縫檢測和分類新方法[J].光子學報,2010,39(8):1405-1408.
[5]褚燕利.基于灰度圖像及其紋理特性的裂縫特征提取[J].公路,2010,7(7):131-136.
[6]盧曉霞.基于圖像處理的混凝土裂縫寬度檢測技術(shù)的研究[D].電子科技大學,2010.
[7]HINTON G E,SALAKHUTDINOV R R.Reducing the Dimensionality of Data with Neural Networks[J].Science,2006,313(7):504-507.
[8]BENGIO Y,COURVILLE A,VINCENT P.Representation Learning:A Review and New Perspectives[J].Pattern Analysis and Machine Intelligence,IEEE Transactions,2013,35(8):1798-1828.
[9]SERMANET P,CHINTALA S,LECUN Y.Convolutional Neural Networks Applied to House Numbers Digit Classification[C]Pattern Recognition,the 21st International Conference.IEEE,2012.
[10]BENGIO Y.Deep Learning[M].Massachusetts:MIT Press,2015.
[11]AGATONOVIC-KUSTRIN S,BERESFORD R.Basic Concepts of Artificial Neural Network (ANN) Modeling and Its Application in Pharmaceutical Research[].Journal of Pharmaceutical and Biomedical Analysis,2000,22(5):717-727.
[12]BENGIO Y.Learning Deep Architectures for AI[J].Foundations and Trends in Machine Learning,2009,2(1):1-127.
[13]KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet Classification with Deep Convolutional Neural Networks[J].Neural Information Processing Systems,2012,1-9.
[14]SZEGEDY C,LIU W,JIA Y,et al.Going Deeper with Convolutions[J].Computer Vision and Pattern Recognition,2015,1-9.
[15]SIMONYAN K,ZISSERMAN A.Very Deep Convolutional Networks for Large-scale Image Recognition[C]//the International Conference on Learning Representations,2015.
[16]HE K,ZHANG X Y,REN S Q,et al.Deep Residual Learning for Image Recognition[J].Computer Vision and Pattern Recognition,2015(12):1-9.