游江川
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650500)
如今,隨著城市建設(shè)的不斷擴(kuò)大和公共基礎(chǔ)設(shè)施的迅速發(fā)展,行車道路越來越多,因此,為路面保養(yǎng)維護(hù)提供有效支持愈發(fā)重要。路面裂縫是路面缺陷問題之一,路面使用時(shí)間過長(zhǎng)、材料老化和環(huán)境條件是導(dǎo)致產(chǎn)生路面裂縫的主要因素[1-2]。如果不及時(shí)處理路面裂縫,這些裂縫可能會(huì)不斷擴(kuò)大,損害道路的完整性,造成路面大范圍性斷裂等問題[3]。因此,定期檢查并在問題進(jìn)一步嚴(yán)重之前進(jìn)行路面修復(fù)極其重要。基于技術(shù)的不斷發(fā)展,如今可以利用專門的車輛或無人機(jī)對(duì)路面進(jìn)行拍攝并收集大量圖像信息[4-5],而如何有效地利用這些海量的圖像數(shù)據(jù)并得到準(zhǔn)確的路面裂縫檢測(cè)結(jié)果,是目前面臨的一項(xiàng)挑戰(zhàn)。路面裂縫以形狀不同的網(wǎng)格橫向或縱向出現(xiàn)在路面上,不同條裂縫長(zhǎng)寬大小不一,且同一條裂縫不同部位的寬度也不盡相同。另外,由于路面有交通標(biāo)記、污漬和少許植被的情況,導(dǎo)致技術(shù)人員僅憑肉眼觀測(cè)裂縫的結(jié)果不夠準(zhǔn)確。
隨著科技的進(jìn)步與圖像處理技術(shù)的深入研究,出現(xiàn)了許多路面裂縫檢測(cè)方法。早期的自動(dòng)化檢測(cè)裂縫方法有閾值法[6]、邊緣檢測(cè)法[7]以及基于機(jī)器學(xué)習(xí)的方法[8],但是這些方法容易受到光照、污漬、石子等干擾因素的影響,裂縫檢測(cè)的效率和準(zhǔn)確度不高。隨著深度學(xué)習(xí)的迅速發(fā)展,基于神經(jīng)網(wǎng)絡(luò)的路面裂縫檢測(cè)方法逐漸成為研究和實(shí)際應(yīng)用的首要選擇。文獻(xiàn)[9]通過在神經(jīng)網(wǎng)絡(luò)中融入注意力機(jī)制,使更多圖像信息加入網(wǎng)絡(luò)模型訓(xùn)練中,但同時(shí)也會(huì)將圖像背景中與路面裂縫圖像特征相近的噪聲特征引入,使檢測(cè)結(jié)果受噪聲的影響較大。文獻(xiàn)[10]通過使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)預(yù)測(cè)圖像中每一像素所屬的類別,但同時(shí)需要人工設(shè)計(jì)的特征提取器進(jìn)行預(yù)處理步驟,并且網(wǎng)絡(luò)對(duì)輸入圖像的大小有一定要求,使得其在實(shí)際應(yīng)用中的效率不高。文獻(xiàn)[11]使用基于全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)對(duì)物體表面的裂紋進(jìn)行檢測(cè),但平均交并比(Mean Intersection over Union,MIoU)最高只達(dá)到了52.16%,檢測(cè)結(jié)果不夠理想。為提高路面裂縫檢測(cè)的效率以及魯棒性,本文提出一種基于Mask-RCNN 網(wǎng)絡(luò)[12]的路面裂縫自動(dòng)化檢測(cè)方法,并在其基礎(chǔ)上進(jìn)行改進(jìn),分別對(duì)區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)和特征金字塔(Feature Pyramid Networks,F(xiàn)PN)網(wǎng)絡(luò)進(jìn)行改進(jìn)以更適用于本文路面裂縫數(shù)據(jù)集,并增加了后處理模塊,進(jìn)一步提升路縫檢測(cè)效果。
Mask-RCNN 算法由基礎(chǔ)網(wǎng)絡(luò)、區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)、分類網(wǎng)絡(luò)以及掩碼分割網(wǎng)絡(luò)組成。基礎(chǔ)網(wǎng)絡(luò)是由去除全連接層的殘差網(wǎng)絡(luò)組成的,并利用特征金字塔(Feature Pyramid Networks,F(xiàn)PN)對(duì)圖像進(jìn)行再次采樣,將兩者特征圖融合,輸出具有不同深度的特征圖,使特征圖具有更為完整的圖像信息以便后續(xù)操作。RPN 的作用是為了在生成的候選框內(nèi)使用訓(xùn)練好的參數(shù)為分類網(wǎng)絡(luò)提供感興趣的候選區(qū)域?qū)R層(Region of Interest Align,RoIAlign)。RPN 的輸入為經(jīng)過特征提取后的特征圖,在特征圖上生成許多候選框。RPN 首先對(duì)候選框?qū)崿F(xiàn)二元類別判斷以及邊界框的預(yù)測(cè),然后利用非極大抑制方法對(duì)候選框篩選,減少無效候選框并留下有效的候選框,提高之后要進(jìn)行的分類網(wǎng)絡(luò)、回歸任務(wù)的效率。其中,RoIAlign 相較于RoIpooling 取消了量化操作,從而減少了因量化操作導(dǎo)致的錯(cuò)位對(duì)于算法精度的影響。分類網(wǎng)絡(luò)的功能是預(yù)測(cè)RoIAlign 范圍內(nèi)檢測(cè)目標(biāo)的類別,并調(diào)整RoIAlign 位置,減少因RoIAlign 位置不準(zhǔn)確造成對(duì)算法精度的影響。掩碼分割網(wǎng)絡(luò)的原理是憑借之前得到的RoIAlign 位置和分類網(wǎng)絡(luò)的結(jié)果,對(duì)待檢測(cè)目標(biāo)逐像素地分類出目標(biāo)所屬類別。
Mask-RCNN 算法的損失函數(shù)如下:
式中:Lcls代表檢測(cè)框的分類誤差,Lbox代表檢測(cè)框的回歸誤差,Lmask代表掩碼分割網(wǎng)絡(luò)的誤差。網(wǎng)絡(luò)訓(xùn)練時(shí),式(1)所示的損失函數(shù)將圖像標(biāo)簽與預(yù)測(cè)結(jié)果逐像素地比較,將分類任務(wù)由Lcls分支完成,Lmask則使用Sigmoid 交叉熵?fù)p失函數(shù)來計(jì)算,這就是Mask-RCNN 算法檢測(cè)結(jié)果優(yōu)于一般的目標(biāo)檢測(cè)算法的一大特點(diǎn)。
為提高M(jìn)ask-RCNN 算法針對(duì)地面裂縫數(shù)據(jù)集的檢測(cè)精度,本文對(duì)Mask-RCNN 算法進(jìn)行改進(jìn)。主要改進(jìn)如下。
(1)對(duì)RPN 網(wǎng)絡(luò)改進(jìn)。本文針對(duì)路面裂縫數(shù)據(jù)集的尺寸大小,將原始RPN 網(wǎng)絡(luò)的9 種大小不同的目標(biāo)框改為64×64 和128×128 大小,改進(jìn)后能提升對(duì)小的裂縫的檢測(cè)效果,提升目標(biāo)檢測(cè)框的檢出率。
(2)對(duì)FPN 網(wǎng)絡(luò)改進(jìn)。原始Mask-RCNN 算法使用自頂向下的方法將高層語義特征和低層語義特征相融合,以提高FPN 的分類能力。本文使用自底向上的方法縮短高層語義特征獲取低層語義特征的路徑,提升特征金字塔架構(gòu)帶來的精確定位能力。
(3)最后增加后處理模塊,使用之前改進(jìn)后的Mask-RCNN 算法定位出來的目標(biāo)檢測(cè)框,在檢測(cè)框內(nèi)使用自適應(yīng)閾值法中的大津閾值算法來進(jìn)一步區(qū)分路面裂縫和路面背景。
本文采用CRACK500 數(shù)據(jù)集[13-14]作為實(shí)驗(yàn)數(shù)據(jù)。該數(shù)據(jù)集由3 792 張訓(xùn)練集圖像、696 張驗(yàn)證集圖像以及2 248 張測(cè)試集圖像組成。實(shí)驗(yàn)環(huán)境為:CPU 為Inter(R)Core i9-10900KF CPU @ 3.70 GHz,顯卡為NVIDIA Geforce GTX 1080 Ti,32 GB 內(nèi)存,系統(tǒng)為Ubuntu20.04.3LTS,開發(fā)環(huán)境為Pycharm,開發(fā)語言為Python,運(yùn)算平臺(tái)為CUDA10.0,深度學(xué)習(xí)框架為Cudnn10.0,機(jī)器學(xué)習(xí)庫(kù)位Pytorch1.2.2。訓(xùn)練時(shí)采用Adam[15]作為優(yōu)化器,初始學(xué)習(xí)率設(shè)為0.000 1,批大?。╞atch size)設(shè)為2,訓(xùn)練50 個(gè)epoch。
本文采用召回率(Recall)、精確率(Precision)和F1 值(F1-score)對(duì)路面裂縫測(cè)試集圖像進(jìn)行性能評(píng)價(jià),其計(jì)算公式如下:
式中:TP(True Positive)代表檢測(cè)正確的裂縫像素點(diǎn),F(xiàn)P(False Positive)代表檢測(cè)出是裂縫的像素點(diǎn)事實(shí)上是裂縫背景的像素點(diǎn),F(xiàn)N(False Negative)代表檢測(cè)出是裂縫背景的像素點(diǎn)事實(shí)上是裂縫的像素點(diǎn)。
本文在CRACK500 數(shù)據(jù)集上與原始Mask-RCNN算法進(jìn)行對(duì)比,評(píng)價(jià)指標(biāo)Recall,Precision和F1 值的對(duì)比結(jié)果如表1 所示。裂縫檢測(cè)實(shí)驗(yàn)結(jié)果對(duì)比如圖1、圖2 所示。
表1 裂縫檢測(cè)結(jié)果對(duì)比
從表1 可以看出,本文算法的實(shí)驗(yàn)結(jié)果召回率(Recall)、精確率(Precision)和F1 值(F1-score)分別比原始Mask-RCNN 算法高6.47%,5.64%和6.07%,證明了本文對(duì)Mask-RCNN 算法改進(jìn)的有效性。從圖1 和圖2 兩張示例圖的檢測(cè)結(jié)果對(duì)比可以看出,本文改進(jìn)的算法得到的檢測(cè)結(jié)果能減少非裂縫類別的干擾,提升了檢測(cè)準(zhǔn)確度,性能優(yōu)于原始Mask-RCNN 算法。
圖1 示例一實(shí)驗(yàn)結(jié)果對(duì)比
圖2 示例二實(shí)驗(yàn)結(jié)果對(duì)比
本文提出一種改進(jìn)的Mask-RCNN 算法對(duì)路面裂縫圖像進(jìn)行裂縫檢測(cè)。本文分別對(duì)RPN 網(wǎng)絡(luò)和FPN 網(wǎng)絡(luò)進(jìn)行改進(jìn),并增加了后處理模塊。實(shí)驗(yàn)結(jié)果表明,與原始Mask-RCNN 網(wǎng)絡(luò)相比,本文的方法可以提供更有效的檢測(cè),避免了背景噪聲點(diǎn)的影響,并提升了檢測(cè)精確度。盡管本文取得了不錯(cuò)的檢測(cè)結(jié)果,但改進(jìn)后的方法的檢測(cè)時(shí)間較原始Mask-RCNN 網(wǎng)絡(luò)有了一定的增加,因此,未來研究中在進(jìn)一步提升檢測(cè)精度的同時(shí)還需減少檢測(cè)時(shí)間。