陳朝陽 王澤松 陸佳辰 孫銘悅 董 巖 李澤宇
(1、北京建筑大學(xué)測(cè)繪與城市空間信息學(xué)院,北京102616 2、北京市建筑遺產(chǎn)精細(xì)重構(gòu)與健康檢測(cè)重點(diǎn)實(shí)驗(yàn)室,北京102616 3、北京城建勘測(cè)設(shè)計(jì)研究院有限責(zé)任公司,北京100101)
斑馬線是行人的生命線,它在道路交通中有至關(guān)重要的作用。利用現(xiàn)代科學(xué)技術(shù),對(duì)斑馬線進(jìn)行檢測(cè),可以為自動(dòng)駕駛技術(shù)提供幫助,降低交通安全事故,還可以為導(dǎo)盲系統(tǒng)的設(shè)計(jì)提供思路,幫助視障患者安全過馬路。在斑馬線的檢測(cè)上,B.Riveiroa[1]等人利用激光雷達(dá)技術(shù),開發(fā)出一種斑馬線自動(dòng)檢測(cè)算法,由于存在汽車行人的干擾,識(shí)別率只有83%;Stephen Se[2]等人利用斑馬線相互平行的特點(diǎn),提出了一種基于姿態(tài)估計(jì)的斑馬線檢測(cè)方法,但是該算法無法進(jìn)行實(shí)時(shí)檢測(cè);蔡敏等人利用斑馬線自身形態(tài)學(xué)特征,結(jié)合機(jī)器視覺,對(duì)斑馬線進(jìn)行篩選和識(shí)別,但是這些方法都存在成本高、精度低、實(shí)時(shí)性差等短板。
因?yàn)闆]有相關(guān)的斑馬線數(shù)據(jù)集可供參考,所以本研究建立了自己的斑馬線數(shù)據(jù)集。從視覺差異角度,斑馬線有普通斑馬線、創(chuàng)意斑馬線和電子斑馬線。彩色斑馬線和電子斑馬線雖然具有較高視覺沖擊、增添城市文化等功能,但對(duì)于目標(biāo)檢測(cè)來說,共同點(diǎn)少,不利于學(xué)習(xí),所以本次斑馬線數(shù)據(jù)集的建立只考慮普通斑馬線。利用LabelImg 制作VOC 數(shù)據(jù)集,共有斑馬線600 張、汽車200 張和人200 張,其中80%作為訓(xùn)練集,20%作為測(cè)試集。
Faster R-CNN 算法是two-stage 的代表算法,可分為4 個(gè)主要部分:卷積層、RPN 網(wǎng)絡(luò)、ROI Pooling 和分類回歸。其核心思想是在Fast R-CNN 的基礎(chǔ)上構(gòu)建了RPN 網(wǎng)絡(luò),直接產(chǎn)生Region Proposal 來代替如selective search 等其他方法得到ROI。在Faster R-CNN 算法中,首先將任意大小的圖片輸入到卷積神經(jīng)網(wǎng)絡(luò)(CNN)中,計(jì)算后得到特征圖像Feature Map,并將最后一層的特征圖像輸入到區(qū)域推薦網(wǎng)絡(luò)RPN 中,進(jìn)行推薦候選區(qū)域的過程,然后將推薦好的候選區(qū)域框輸入到感興趣池化層(ROI Pooling)中,形成固定大小維度的矢量特征,最后,將得到的矢量特征輸入到分類器和邊框回歸器中完成類別的判斷和邊框回歸。(圖1)
VGG16 是VGG 網(wǎng)絡(luò)中性能最佳的網(wǎng)絡(luò)結(jié)構(gòu)。VGG16 將conv 和relu 組合成卷積層,共有13 個(gè)卷積層和3 個(gè)全連接層。通過卷積層和池化層疊加的性質(zhì),將步長(zhǎng)為2 的池化層處理后,再進(jìn)入全連接層對(duì)提取的特征進(jìn)行連接,最后通過Softmax進(jìn)行分類。
深度殘差網(wǎng)絡(luò)(Deep Residual Network,Res)比VGG16 神經(jīng)網(wǎng)絡(luò)的層數(shù)更多,還可以進(jìn)行殘差學(xué)習(xí)。殘差學(xué)習(xí)是為了解決因?yàn)閷訑?shù)增加而出現(xiàn)彌散現(xiàn)象,導(dǎo)致檢測(cè)準(zhǔn)確度下降的問題。相比于VGG16 卷積神經(jīng)網(wǎng)絡(luò),ResNet50 網(wǎng)絡(luò)不但增加了深度,還減少了復(fù)雜程度,參數(shù)量也比VGG16 少得多,因此可以在網(wǎng)絡(luò)更深的同時(shí),提高分類準(zhǔn)確率,并且不會(huì)出現(xiàn)深層網(wǎng)絡(luò)的彌散現(xiàn)象。
通過對(duì)兩種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行對(duì)比,由表1 可知,隨著網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化,網(wǎng)絡(luò)的體積也逐漸在降低,識(shí)別能力也越來越強(qiáng),TOP-5 錯(cuò)誤率也越來越低。
本項(xiàng)目在Faster R-CNN 框架下,利用四個(gè)損失函數(shù)進(jìn)行聯(lián)合訓(xùn)練,使用Smooth-L1 函數(shù)訓(xùn)練兩個(gè)邊框回歸層,對(duì)斑馬線的推薦區(qū)域使用Softmax 損失函數(shù),判斷是否為斑馬線,最后一個(gè)Softmax 損失函數(shù)進(jìn)行對(duì)類別的判斷。在訓(xùn)練Faster R-CNN的時(shí)候,損失主要可以分為RPN 的損失和Fast R-CNN 的損失兩個(gè)部分,包括分類損失(cls loss)和回歸損失(bbox regression loss)。

圖1 Faster R-CNN 算法流程

表1 VGG16 與ResNet50 網(wǎng)絡(luò)模型對(duì)比
在對(duì)訓(xùn)練好的Faster R-CNN 模型進(jìn)行模型評(píng)估時(shí),檢測(cè)分類目標(biāo)主要分為兩類:正例positive 和負(fù)例negtive,在本文中,以斑馬線為例,正例positive 就是斑馬線,負(fù)例negtive 就是除了斑馬線外的其他類別,具體如下:
Ture positive(tp):斑馬線被正確的識(shí)別;
Ture negtive(tn):斑馬線沒有被識(shí)別成斑馬線,被識(shí)別成了別的類;
False positive(fp):其他類別被不正確的識(shí)別成了斑馬線;
False negtive(fn):斑馬線的圖片沒有被識(shí)別。
本文基于keras 使用聯(lián)合訓(xùn)練法來訓(xùn)練Faster R-CNN,首先選擇基礎(chǔ)網(wǎng)絡(luò)模型VGG16 和ResNet50,并且設(shè)置基礎(chǔ)網(wǎng)絡(luò)模型權(quán)重的路徑,然后對(duì)數(shù)據(jù)進(jìn)行解析,劃分訓(xùn)練集和測(cè)試集,學(xué)習(xí)率設(shè)置為0.01,每10 個(gè)epochs 學(xué)習(xí)率降為原來的10%,共40個(gè)epochs。權(quán)重衰減設(shè)置為0.0005。

圖2 模型檢測(cè)結(jié)果
使用測(cè)試集對(duì)模型進(jìn)行測(cè)試,mAP 值達(dá)到97.7%。從圖3 中可以看出,經(jīng)過40 次的迭代,我們的模型的總損失函數(shù)從1.4降到了0.2,隨著迭代次數(shù)的增加,損失函數(shù)趨近平穩(wěn),沒有過擬合現(xiàn)象的出現(xiàn)。所以該模型滿足對(duì)斑馬線自動(dòng)檢測(cè)的精度要求。
針對(duì)傳統(tǒng)斑馬線檢測(cè)存在的識(shí)別精度低和成本高的問題。本文提出使用VGG16 特征提取網(wǎng)絡(luò)和ResNet50 特征提取網(wǎng)絡(luò)聯(lián)合進(jìn)行算法訓(xùn)練,這種訓(xùn)練方法提升了分類網(wǎng)絡(luò)的精度和檢測(cè)速度,使斑馬線的檢測(cè)精度達(dá)到了97.7%,滿足對(duì)斑馬線檢測(cè)的實(shí)際需求,為自動(dòng)駕駛領(lǐng)域的斑馬線識(shí)別提供幫助,也可為視覺障礙者出行導(dǎo)航提供新思路。