藍章禮,黃 濤,王慶珍,譚立云
基于Mask R-CNN與改進Criminisi的瀝青路面車道線移除方法
藍章禮1,黃 濤1,王慶珍2,譚立云2
(1. 重慶交通大學信息科學與工程學院,重慶 400074;2. 重慶市公路局,重慶 401147)
在對瀝青路面病害圖像進行自動分類時,含車道線的圖像數(shù)量較多易造成干擾。為此,提出一種車道線移除方法以降低其對分類的影響,首先基于Mask R-CNN網(wǎng)絡訓練出復雜背景下車道線區(qū)域的檢測模型,通過該模型自動獲取車道線區(qū)域mask;然后利用mask將車道線區(qū)域全部移除得到破損圖像;最后用改進的Criminisi圖像修復方法對破損圖像進行樣本塊填充。實驗表明,采用Mask R-CNN方法對400張不同環(huán)境下的路面圖像進行檢測,其漏檢率和誤檢率分別為0.50%和7.87%。在保證圖像修復質量的基礎上,改進的Criminisi方法在修復速度上比改進前提升約4~5倍。同等條件下,采用VGG分類模型對比驗證,經(jīng)該算法移除車道線后的新數(shù)據(jù)集表現(xiàn)更優(yōu)。
車道線檢測;Mask R-CNN;目標移除;Criminisi;瀝青路面
目前對路面病害檢測的方法主要是依靠工程車沿道路線行駛,用CCD (charge coupled device)攝像機采集道路表面圖像,然后集中對路面圖像進行分析處理。這些路面圖像中通常會出現(xiàn)車道線,其是一種分布于道路表面引導交通的常見標識,與路面在視覺上形成明顯的對比。具備一定的反光性是基本要求,以保證在雨天、霧天、夜晚等惡劣環(huán)境下有良好的能見度。
為提高檢測效率,一些研究者開始引入人工智能的方法用于病害圖像處理。但是,在采用卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)等方法對路面病害圖像實現(xiàn)自動分類識別時,圖像中的車道線表現(xiàn)較為突兀,車道線區(qū)域亮度偏高,邊沿處存在強烈的灰度跳變,且寬度往往大于裂縫寬度,經(jīng)CNN卷積、池化操作后,對車道線的特征感知強于裂縫,若含車道線的圖像數(shù)量較多,容易影響最后的分類結果。為了削弱影響,本文提出一種車道線移除方法,利用Mask R-CNN檢出車道線區(qū)域,然后將該區(qū)域移除,采用改進Criminisi方法修復圖像達到移除車道線的目的。
對于車道線檢測,國內(nèi)外有較多的相關研究,傳統(tǒng)方法有基于RANSAC算法、基于Hough變換等[1-3],此類方法抗噪聲性能較好,可以處理檢測目標被遮擋的情況,但泛化性差,需要根據(jù)不同的道路場景特點手工調(diào)節(jié)參數(shù),一旦道路環(huán)境發(fā)生變化,檢測效果不佳。隨著深度學習技術的出現(xiàn),深度學習的特征提取過程更智能,提取的特征也更抽象[4-6]。如文獻[5]運用可變形卷積神經(jīng)網(wǎng)絡提取不同環(huán)境下的道路數(shù)據(jù)特征,利用模型對車道線進行圖像語義分割,并判斷車道線類型。該方法通過網(wǎng)絡模型提取多樣本圖像中車道線的顏色、紋理、形狀等特征,比傳統(tǒng)方法更準確地區(qū)分開車道線和背景,檢測效果較好,缺點是車道線被污染與路面背景差異不大時容易漏檢或誤檢。
對于車道線處理,本文思想是移除車道線后對該區(qū)域進行修復。圖像修復方法主要有2類:①基于偏微分方程的修復方法,最早由BERTALMIO等[7]提出,此后,研究者們又相繼提出全變分模型TV (total variation)[8]、曲率驅動擴散模型CDD (curvature driven diffusions)[9]等。其只適合修復破損面積較小的圖像,大面積破損修復則易出現(xiàn)修復區(qū)域模糊和失真的效果。②由CRIMINISI等[10]提出基于樣本塊的圖像修復技術,該方法在修復紋理的同時兼顧結構,對大面積破損圖像的修復效果較好,但時間復雜度高。文獻[11]加入局部特征信息,重新約束優(yōu)先權,采用分級搜索樣本,縮短修復時間,并提出弧形推進填充,保持修復邊沿的平滑性。文獻[12]將圖像的局部亮度方差用作優(yōu)先級的度量因子,并改進了最佳匹配子塊的獲取過程,使得匹配更為準確,修復效果更為理想,其應用在目標移除上效果較好,但修復過程漫長、耗時長。
圖1為本文方法的流程圖,主要包括車道線檢測與車道線處理。車道線檢測采用Mask R-CNN方法獲取車道線區(qū)域mask,車道線處理部分則用mask將車道線移除,并采用改進的Criminisi算法對破損圖像進行迭代修復。
圖1 整體流程圖
早在2014年,GIRSHICK等[13]提出R-CNN (regions with CNN)算法,有效解決了一直困擾眾多研究者的目標檢測難題。后來,HE等[14]又提出空間金字塔池化網(wǎng)絡(spatial pyramid pooling-net,SPP-Net),不到1年時間,GIRSHICK[15]改進了SPP-Net算法,提出Fast R-CNN算法,但依然采用R-CNN的選擇性搜索算法生成候選框,該過程的耗時問題仍然存在。于是,REN等[16]設計一種區(qū)域建議網(wǎng)絡(region proposal network, RPN),提出Faster R-CNN算法。該算法先由RPN判斷候選框是否為目標,再由分類層和回歸層判斷目標類型并調(diào)整,大大改善了整個網(wǎng)絡的性能。此后研究者又相繼提出HyperNet、R-FCN、MS-CNN、Mask R-CNN等多種改進算法[17],針對以R-CNN為代表的區(qū)域建議網(wǎng)絡在目標檢測中的性能特點,文獻[17]做了非常詳細的對比,本文選用Mask R-CNN作為車道線區(qū)域檢測框架。
Mask R-CNN模型結構如圖2所示,是在Faster R-CNN的網(wǎng)絡框架上做的改進?;A網(wǎng)絡層由2部分構成:①訓練好的ResNet50、ResNet101或VGGNet等;②基于不同尺度的Feature map,構建了特征金字塔網(wǎng)絡(feature pyramid network, FPN) 結構。
圖2 Mask R-CNN結構圖
區(qū)域建議網(wǎng)絡(region proposal networks,RPN)中的anchor采用5個尺度,每個尺度包含3種縱橫比的策略,即共享特征圖每個像素點位置上生成15個不同的anchor,根據(jù)特征圖的尺寸不同,生成的anchor數(shù)量可多達上萬個,anchor中是否有目標,用交并比IoU (intersection over union)的值判定,即預測box和真實box的重疊率,等于2個區(qū)域重疊部分與其并集的比值。
Faster R-CNN中的ROI(region of interest)池化被ROIAlign替代,使ROI到特征圖上的映射不再采用四舍五入取整的方式,同時,將每個ROI對應的特征轉化為固定維度時也不做取整操作,簡單說來就是ROIAlign消除了ROI池化過程中的量化誤差。相對Faster R-CNN而言,標定位更加精確。
最后,Mask R-CNN新增了分割Mask分支,可以對車道線區(qū)域進行像素級分割。
從網(wǎng)絡的基本結構,可知每一個ROI區(qū)域的損失函數(shù)來自3個部分:分類誤差、檢測誤差和分割誤差,分別對應分類層、回歸層、Mask層。故損失函數(shù)表示為
其中,()為車道線分類損失,是對ROI區(qū)域進行類別判斷時產(chǎn)生的誤差;()為車道線區(qū)域的邊框回歸損失誤差;()為車道線與路面背景像素的分類損失,即判斷該像素是否屬于車道線區(qū)域產(chǎn)生的誤差,等于ROI上所有像素交叉熵的平均值,其中每個像素均采用Sigmoid函數(shù)求二值交叉熵。
至此,不再對深度學習部分做詳細闡述。經(jīng)該模型測試的輸出結果如圖3(a)所示,藍色部分表示檢測到的車道線區(qū)域;圖3(b)為該車道線區(qū)域的mask,像素值為1表示檢測區(qū)域,0則表示背景。
從檢測結果看出:mask并不能完全覆蓋車道線區(qū)域,故對mask做形態(tài)學膨脹操作向外擴充區(qū)域,確保mask對車道線覆蓋完整。
(a) 檢測結果 (b) 對應的mask
對車道線檢測目的是獲取車道線區(qū)域的位置信息,以便后續(xù)處理。由于道路使用多年,車道線可能被泥土等污染,在邊沿處灰度變化緩慢,如圖4所示,會出現(xiàn)區(qū)域內(nèi)像素漏檢或區(qū)域外像素誤檢的情況。但本文只考慮是否存在車道線及車道線所在的基本位置,不考慮像素級的檢測,認為檢測出的mask能基本覆蓋實際可見車道線區(qū)域則檢測準確。
圖4 車道線邊界局部細節(jié)圖
采用漏檢率(miss detection rate,MDR)和誤檢率(false detection rate,F(xiàn)DR)作為衡量檢測結果的基本標準,即