張凱龍,錢(qián)莉,陳夢(mèng)濤,陸洪光,單明陶,杜嘉偉
(201600 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車(chē)工程學(xué)院)
隨著無(wú)人駕駛、智能網(wǎng)聯(lián)車(chē)輛技術(shù)的不斷發(fā)展,檢測(cè)障礙物對(duì)智能移動(dòng)測(cè)距的研究十分重要。單目視覺(jué)測(cè)距技術(shù)由于其視覺(jué)結(jié)構(gòu)相對(duì)簡(jiǎn)單,計(jì)算量相對(duì)較小,因此在智能網(wǎng)聯(lián)車(chē)輛測(cè)距中有著廣闊的應(yīng)用前景。
單目視覺(jué)測(cè)距系統(tǒng)可以分為結(jié)合測(cè)距與傳統(tǒng)檢測(cè)的算法[1-2]和結(jié)合測(cè)距與深度學(xué)習(xí)的檢測(cè)算法兩類(lèi)?;跈C(jī)器學(xué)習(xí)的視覺(jué)檢測(cè)方法被廣泛運(yùn)用在車(chē)輛檢測(cè)任務(wù)上,而車(chē)輛測(cè)距技術(shù)是在車(chē)輛檢測(cè)的基礎(chǔ)上發(fā)展而成的一項(xiàng)技術(shù)。算法通過(guò)測(cè)量車(chē)輛的橫向與縱向距離對(duì)車(chē)輛進(jìn)行準(zhǔn)確定位,而且能為行駛中的汽車(chē)提供安全距離控制[3-5]。有關(guān)研究中,劉志強(qiáng)[6]等人通過(guò)PTZ 采集圖像和毫米波雷達(dá)采集的數(shù)據(jù)來(lái)進(jìn)行車(chē)輛檢測(cè),并研究了傳感器之間的坐標(biāo)變換關(guān)系;Silva[7]等人通過(guò)采用IPM 方法來(lái)實(shí)時(shí)生成新的圖像坐標(biāo),消除由透視效果引起的圖像失真現(xiàn)象;Zhang[8]等人提出了一種單目視覺(jué)平面測(cè)量方法,通過(guò)控制相機(jī)運(yùn)動(dòng)、物體高度和相機(jī)焦距來(lái)計(jì)算圖像放大率,進(jìn)一步提高了距離測(cè)量的準(zhǔn)確性且具有通用性高、步驟簡(jiǎn)單、誤差小的優(yōu)點(diǎn)。傳統(tǒng)的測(cè)距方法與基于深度學(xué)習(xí)的目標(biāo)檢測(cè)、實(shí)例分割方法相結(jié)合,可以提升測(cè)距的精度。Bao[9]等人將先進(jìn)的目標(biāo)檢測(cè)技術(shù)應(yīng)用于公路車(chē)輛距離檢測(cè),結(jié)合傳統(tǒng)的視覺(jué)檢測(cè)研究結(jié)果,提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的單目視覺(jué)測(cè)距方法;姚振鑫[10]等人提出了一種基于車(chē)牌寬度和單目視覺(jué)的車(chē)輛距離測(cè)量方法。該算法首次提出以車(chē)牌寬度代替車(chē)身陰影和車(chē)牌面積等光學(xué)模型作為距離測(cè)量的基礎(chǔ),避免了相機(jī)俯仰角變化和地面高度變化對(duì)測(cè)距精度的影響。
本文基于單目測(cè)距算法,將檢測(cè)與測(cè)量分為2個(gè)模塊:車(chē)輛檢測(cè)模塊中使用YOLOv4-Tiny pro 算法檢測(cè)車(chē)輛車(chē)牌,通過(guò)深度學(xué)習(xí)算法彌補(bǔ)了傳統(tǒng)視覺(jué)檢測(cè)的不足。車(chē)距檢測(cè)模塊中使用基于幾何關(guān)系的車(chē)輛測(cè)距模型,根據(jù)車(chē)牌尺寸大小等先驗(yàn)信息計(jì)算得車(chē)輛距離。算法在GTSDB 數(shù)據(jù)集上實(shí)驗(yàn),構(gòu)建baseline 網(wǎng)絡(luò)驗(yàn)證了不同模塊對(duì)于網(wǎng)絡(luò)性能的提升與方法的有效性。
準(zhǔn)確快速地完成車(chē)牌檢測(cè)是實(shí)現(xiàn)本文單目視覺(jué)車(chē)距測(cè)量方案的第一步。相較于傳統(tǒng)的車(chē)牌檢測(cè)方法,易受光照、圖像畸變、運(yùn)動(dòng)模糊等客觀因素影響,導(dǎo)致模型的魯棒性差,算法精度往往難以達(dá)到實(shí)際需求。而基于深度學(xué)習(xí)的車(chē)牌檢測(cè)在模型訓(xùn)練時(shí),就充分考慮到上述情況。選擇使用現(xiàn)場(chǎng)環(huán)境復(fù)雜的數(shù)據(jù)集進(jìn)行訓(xùn)練,自適應(yīng)地獲得泛化能力強(qiáng)的網(wǎng)絡(luò)模型,獲得更精準(zhǔn)的車(chē)牌檢測(cè)效果,從而在初始環(huán)節(jié)減少由于車(chē)牌尺寸回歸不精準(zhǔn)帶來(lái)的誤差。并且由于車(chē)牌識(shí)別的類(lèi)別較為單一,但對(duì)檢測(cè)的實(shí)時(shí)性又有一定的要求,因此綜合考慮選擇使用輕量級(jí)的目標(biāo)檢測(cè)算法。
YOLOv4-Tiny 是目前流行的目標(biāo)檢測(cè)模型YOLOv4 的輕量化版本,它可以在檢測(cè)任務(wù)單一的情況中,獲得檢測(cè)精度和速度的最大收益。相較于其他輕量級(jí)網(wǎng)絡(luò),YOLOv4-Tiny 在mAP 和FPS 上都有巨大提升。其骨干網(wǎng)絡(luò)主要包括下采樣CBL結(jié)構(gòu)和CSP 結(jié)構(gòu),下采樣CBL 結(jié)構(gòu)中,每個(gè)卷積核大小為3×3,步長(zhǎng)為2,主要對(duì)圖像進(jìn)行下采樣處理。CSP 結(jié)構(gòu)將基礎(chǔ)層的特征映射劃分為2 部分,通過(guò)使用跨層連接操作將它們合開(kāi),增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,在減少計(jì)算量的同時(shí)可保證準(zhǔn)確率。跨層連接與殘差網(wǎng)絡(luò)的結(jié)果類(lèi)似,有兩個(gè)好處:
(1)形成特征映射,實(shí)現(xiàn)特征的重用以獲得更多的語(yǔ)義信息,提高檢測(cè)準(zhǔn)確率;
(2)降低計(jì)算瓶頸,減少內(nèi)存開(kāi)銷(xiāo)。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 YOLOv4-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv4-Tiny network structure diagram
原YOLOv4-Tiny 網(wǎng)絡(luò)的檢測(cè)效率高,已基本滿(mǎn)足實(shí)際場(chǎng)景中測(cè)距的需求,但由于其大規(guī)模簡(jiǎn)化了網(wǎng)絡(luò)的寬度和深度,所以該算法的精度會(huì)受到影響。對(duì)此,本文將在不過(guò)多引入計(jì)算參數(shù)的情況下,從以下三方面進(jìn)行改進(jìn):
(1)使用ResBlock-D 模塊代替CSPBlock 模塊能夠一定程度上提高目標(biāo)檢測(cè)的速度,但是它降低了目標(biāo)檢測(cè)的準(zhǔn)確性。為了保持精度和速度的平衡,設(shè)計(jì)了兩個(gè)相同的ResBlock+CBAM 模塊,并將其添加到ResBlock-D 模塊中以提高精度;
(2)利用兩個(gè)3×3 卷積網(wǎng)絡(luò)提取全局特征,同時(shí)使用通道注意力和空間注意力提取更有效的特征信息。采用級(jí)聯(lián)操作將第1 個(gè)卷積網(wǎng)絡(luò)的輸出特征與空間注意力機(jī)制的輸出特征進(jìn)行組合,組合后的特征作為ResBlock+CBAM 模塊的輸出特征;
(3)將最終的輸出特征與Backbone 中Residual 網(wǎng)絡(luò)的輸出特征相結(jié)合,作為下一個(gè)骨干網(wǎng)中Residual 網(wǎng)絡(luò)的輸入特征,使改進(jìn)后的骨干網(wǎng)能夠提取出檢測(cè)對(duì)象的全局和局部特征,進(jìn)一步提高了檢測(cè)的準(zhǔn)確性。
改進(jìn)后的YOLOv4-Tiny pro 網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示。
圖2 改進(jìn)后的YOLOv4-Tiny pro 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Improved YOLOv4-Tiny pro network structure diagram
車(chē)輛測(cè)距中,車(chē)輛屬于剛體,其形狀和大小不隨時(shí)間、地點(diǎn)的變化而變化,且對(duì)于車(chē)輛而言,其車(chē)牌尺寸是先驗(yàn)信息,根據(jù)已知的尺寸信息與幾何模型可以推導(dǎo)出前方車(chē)輛的距離。
在有關(guān)研究中,Stein[11]等人提出了相似三角形測(cè)距算法的基礎(chǔ)模型;劉昌輝[12]等人考慮了相機(jī)俯仰角(pitch)對(duì)測(cè)距的影響;楊雪姣[13]在前人基礎(chǔ)上提出了含俯仰角和航向角的相似三角形測(cè)距算法。本文認(rèn)為進(jìn)行車(chē)輛測(cè)距時(shí)不需要考慮航向角的因素,僅需考慮待測(cè)對(duì)象相對(duì)于光軸在XOZ平面上的偏移角度。
測(cè)距向前方采集圖像時(shí),待測(cè)車(chē)輛不會(huì)一定處于光軸上,可能會(huì)左右偏移部分角度,車(chē)輛測(cè)距一般只是需要知道待測(cè)車(chē)輛距離本車(chē)輛的直線(xiàn)距離以及車(chē)輛到本車(chē)輛相機(jī)中心的垂直縱向距離。測(cè)距模型如圖3 所示。
圖3 基于幾何關(guān)系的相似三角形測(cè)距模型Fig.3 Similar triangle ranging model based on geometric relation
圖3 中,左上角為相機(jī)靶面,O'為相機(jī)靶面中心點(diǎn);右側(cè)坐標(biāo)系中2 條水平線(xiàn)所成面與相機(jī)光軸直線(xiàn)重合,O 點(diǎn)為相機(jī)光心,O"PA 所在面為路面,O"為靶面中心點(diǎn)與路面所交的點(diǎn)。假設(shè)待測(cè)物體所在點(diǎn)與地面垂直相交于A 點(diǎn),則要求的距離即為PA 距離d。根據(jù)針孔相機(jī)模型,待測(cè)物體落腳點(diǎn)A在相機(jī)靶面上投影為A',像素坐標(biāo)為(xA,yA)。點(diǎn)A'與像素中心點(diǎn)所在列相交于點(diǎn)B',像素坐標(biāo)為(uC,yA)。w為點(diǎn)A'與點(diǎn)B'的水平距離,w=S(xxA-uC);h 為點(diǎn)B'與圖像中心點(diǎn)O'的垂直距離,h=S(yyA-v)c。
點(diǎn)B'透過(guò)光心與地面相交于點(diǎn)B,過(guò)直線(xiàn)OO'作點(diǎn)B 的垂線(xiàn),交于點(diǎn)R。由模型可知,記∠O'OB 與∠O'OB'為γ,點(diǎn)B'與像素中心點(diǎn)O'的距離為h,OO'為焦距f。
式中:由系統(tǒng)已知,H——參數(shù)相機(jī)高度;f ——相機(jī)焦距;δ——俯仰角;Sx和Sy——像元尺寸。由圖3 可得參數(shù)w 和h,最終可得車(chē)輛距離。
3.1.1 實(shí)驗(yàn)材料與配置
在實(shí)際場(chǎng)景中采集車(chē)牌檢測(cè)的數(shù)據(jù),共采集了1 000 張車(chē)牌圖像,為保證訓(xùn)練樣本與測(cè)試樣本的獨(dú)立性,從1 000 張圖像中隨機(jī)抽取800 張作為訓(xùn)練集,將剩下的200 張圖像作為測(cè)試集,訓(xùn)練集和測(cè)試集占比為8∶2,并對(duì)測(cè)試集圖像進(jìn)行了車(chē)距測(cè)量,以便于后續(xù)車(chē)距檢測(cè)的性能評(píng)估。對(duì)圖像進(jìn)行人工標(biāo)注,將圖像寬、高、深度、車(chē)牌種類(lèi)及位置信息存入xml 文件。
訓(xùn)練過(guò)程中參數(shù)設(shè)置如下:輸入大小512×512;采用SDG 優(yōu)化器,初始學(xué)習(xí)速率0.01,動(dòng)量大小0.937,權(quán)重衰減系數(shù)0.000 5,學(xué)習(xí)率采用余弦降火衰減策略,訓(xùn)練110 個(gè)epoch,批量大小32。在平臺(tái)方面,操作系統(tǒng)為Windows 10(64 位),CPU 為Intel i7-7700 4.2GHz;內(nèi)存大小為16 G;GPU 采用NVIDIA GeForce GTX3060 的12 GB 顯卡;編譯環(huán)境為Pycharm/ python 語(yǔ)言;Pytorch 版本為1.2.0;安裝Cuda10.0 和Cudnn7.51 進(jìn)行GPU 加速運(yùn)算。
3.1.2 性能指標(biāo)
評(píng)價(jià)網(wǎng)絡(luò)性能的優(yōu)劣需要兼顧召回率(Recall)和精確率(Precision),通常目標(biāo)檢測(cè)中用mAP 來(lái)評(píng)價(jià)網(wǎng)絡(luò)模型性能。精確率公式如式(7),召回率公式如式(8),AP 的含義是不同Recall 下的Precision 值的均值,評(píng)價(jià)某一類(lèi)的檢測(cè)精度。mAP表示的是所有類(lèi)別檢測(cè)精度的均值,公式如式(9)所示。
3.1.3 實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證前述網(wǎng)絡(luò)改進(jìn)方法的有效性,本文在GTSDB 數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn),構(gòu)建baseline網(wǎng)絡(luò)(即YOLOv4-Tiny),組合使用前述的ResBlock-D、ResBlock+CBAM,來(lái)驗(yàn)證不同模塊對(duì)于網(wǎng)絡(luò)性能的提升。測(cè)試集結(jié)果如表1 所示。
表1 測(cè)試集結(jié)果Tab.1 Results of the test set
表1 列出了 Precision、Recall 和mAP(IoU 閾值取 0.5)3 種指標(biāo)。對(duì)比 baseline 和模型A、B 可知,ResBlock-D 和ResBlock+CBAM 對(duì)于模型的性能均有所提升,在mAP 上分別提高了1.49%、2.37%。而集合3 種模塊的YOLOv4-Tiny pro 則在mAP 上均取得最優(yōu)結(jié)果,與baseline 相比,提升了5.27%。根據(jù)消融實(shí)驗(yàn)結(jié)果可知,ResBlock-D 和ResBlock+CBAM 對(duì)于網(wǎng)絡(luò)的性能提升是有效的。
車(chē)牌檢測(cè)的結(jié)果如圖4 所示。由圖4 可見(jiàn)該檢測(cè)方法可以對(duì)車(chē)牌進(jìn)行精確定位。
圖4 車(chē)牌檢測(cè)結(jié)果Fig.4 License plate detection result
實(shí)驗(yàn)數(shù)據(jù)通過(guò)相機(jī)采集,為了驗(yàn)證測(cè)距算法有效性,將相機(jī)擺放在距離路面1.5 m 高的高度上,待測(cè)車(chē)輛與相機(jī)距離以10 m 為起點(diǎn),間隔10 m 為一組,直到50 m,其中每組將待測(cè)車(chē)輛側(cè)向偏移5 m,驗(yàn)證待測(cè)物不在光軸上時(shí)的數(shù)據(jù)。為了驗(yàn)證測(cè)距算法的準(zhǔn)確性,與只含俯仰角的測(cè)距算法作對(duì)比。實(shí)驗(yàn)結(jié)果如表2 所示。
表2 單目測(cè)距算法對(duì)比Tab.2 Comparison of single visual distance algorithms
表2 中列出了多組位置情況下,每組距離各測(cè)距算法的誤差數(shù)據(jù)。對(duì)比基于俯仰角的測(cè)距模型和基于幾何關(guān)系的測(cè)距模型可知,本文算法的誤差有所減少,在10 m 至50 m 的誤差分別減少了1.08%,2.76%,3.35%,3.92%和3.08%。由表2 數(shù)據(jù)可以看出,基于俯仰角的算法的誤差與基于幾何關(guān)系的算法誤差相近,當(dāng)待測(cè)車(chē)輛越遠(yuǎn)離光軸時(shí)誤差越大,這是該算法沒(méi)有考慮車(chē)輛偏移光軸角度造成的。
實(shí)驗(yàn)數(shù)據(jù)通過(guò)相機(jī)采集,將相機(jī)置于車(chē)輛內(nèi)后視鏡上采集照片,通過(guò)車(chē)牌檢測(cè)算法提取車(chē)牌區(qū)域,將車(chē)牌區(qū)域與圖像傳送給測(cè)距算法,得到車(chē)輛距離。實(shí)驗(yàn)結(jié)果如表3 所示。
表3 車(chē)距檢測(cè)結(jié)果Tab.3 Results of vehicle distance detection
由表3 的數(shù)據(jù)可知,本算法實(shí)現(xiàn)了穩(wěn)定的檢測(cè)效果,對(duì)于極端角度下的情況也有了更好的適應(yīng)性。
綜上所述,基于YOLOv4-Tiny pro 的車(chē)牌檢測(cè)給測(cè)距打下了良好的基礎(chǔ)?;趲缀侮P(guān)系的測(cè)距模型考慮到車(chē)輛位于光軸一側(cè)時(shí)的情況,檢測(cè)結(jié)果更穩(wěn)定。
隨著新能源車(chē)的普及和自動(dòng)駕駛的探索,傳統(tǒng)車(chē)輛正在向智能網(wǎng)聯(lián)汽車(chē)轉(zhuǎn)變。對(duì)前方車(chē)輛的距離檢測(cè)是智能汽車(chē)量產(chǎn)與應(yīng)用中必不可少的內(nèi)容。本文設(shè)計(jì)的單目測(cè)距算法將檢測(cè)與測(cè)量分離,車(chē)輛檢測(cè)使用YOLOv4-Tiny pro 檢測(cè)每個(gè)車(chē)輛都有的車(chē)牌,充分發(fā)揮深度學(xué)習(xí)的優(yōu)勢(shì),彌補(bǔ)傳統(tǒng)視覺(jué)檢測(cè)的不足;車(chē)距測(cè)量使用基于幾何關(guān)系的車(chē)輛測(cè)距模型,根據(jù)車(chē)牌尺寸的先驗(yàn)信息準(zhǔn)確計(jì)算出車(chē)輛距離。最后對(duì)系統(tǒng)的識(shí)別效果和距離檢測(cè)結(jié)果分別進(jìn)行了實(shí)驗(yàn)驗(yàn)證,對(duì)于整合后的算法進(jìn)行了進(jìn)一步優(yōu)化,證明了該系統(tǒng)的性能。