范林坤 陳濤 李旭川 郭叢帥
(長(zhǎng)安大學(xué),西安 710065)
主題詞:雙目測(cè)距 深度學(xué)習(xí) 實(shí)時(shí)性 移動(dòng)終端 圓檢測(cè) 智能駕駛
基于超聲波、雷達(dá)、紅外的測(cè)距方式很早便應(yīng)用在移動(dòng)機(jī)器人領(lǐng)域,雖然可以達(dá)到不錯(cuò)的測(cè)距精度,但其成本居高不下,阻礙了產(chǎn)品的商業(yè)化[1-2]。視覺(jué)傳感器采集到的信息豐富,不但滿足測(cè)距需求,而且可以基于視覺(jué)信息進(jìn)行車(chē)輛、行人的識(shí)別。視覺(jué)方案是同時(shí)考慮成本、穩(wěn)定性、精度和使用復(fù)雜度時(shí)的最佳方案。
傳統(tǒng)的雙目測(cè)距算法得到目標(biāo)點(diǎn)的視差后利用三角測(cè)量原理得到目標(biāo)點(diǎn)的距離。而計(jì)算視差的前提是兩幅圖像像素的匹配,在光照惡劣的情況下很難做到點(diǎn)與點(diǎn)間的精確匹配,并且場(chǎng)景中出現(xiàn)若干相似物體時(shí),很容易出現(xiàn)誤匹配,從而造成較大誤差[3-4]。另外,這種測(cè)量方法的誤差會(huì)隨著測(cè)量距離的增加而增加。另一種思路是首先根據(jù)雙目圖像恢復(fù)場(chǎng)景的視差圖,在視差圖上選取目標(biāo)點(diǎn)得到該點(diǎn)的視差,從而避免了雙目圖像匹配的問(wèn)題,可達(dá)到更高的精度,獲得更好的魯棒性。如何基于雙目圖像得到視差圖一直是計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn),近年來(lái),很多學(xué)者將深度學(xué)習(xí)引入該領(lǐng)域。
Mayer 等人[5]引入神經(jīng)網(wǎng)絡(luò)層間的關(guān)聯(lián)函數(shù)定義損失函數(shù),通過(guò)訓(xùn)練2個(gè)卷積神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)雙目圖像間的視差,但是該網(wǎng)絡(luò)參數(shù)量巨大,難以部署在算力較低的移動(dòng)終端上。很多工作旨在提高算法的實(shí)時(shí)性,其中多數(shù)算法是基于決策樹(shù)的[6-9],此類(lèi)算法容易過(guò)擬合,從而降低模型的泛化能力。也有基于神經(jīng)網(wǎng)絡(luò)的方法:Grubb 等人[10]利用3D 模型的重投影誤差來(lái)盡量簡(jiǎn)化損失函數(shù),以提高模型的運(yùn)行速度,但模型精度顯著下降;Laina等人[11]基于ResNet-50創(chuàng)建了一個(gè)單網(wǎng)絡(luò)結(jié)構(gòu),可以在深度預(yù)測(cè)的同時(shí)進(jìn)行語(yǔ)義分割;Godard等人[12]提出的AnyNet 網(wǎng)絡(luò)使用U-net 特征提取器得到4 個(gè)尺寸的特征圖,特征圖尺寸越小,模型的速度越快,但精度越差。現(xiàn)有工作雖然可以提高模型的實(shí)時(shí)性,但往往大幅降低模型的精度,如何在模型的實(shí)時(shí)性和精度間進(jìn)行取舍是一個(gè)亟待解決的問(wèn)題。針對(duì)這一問(wèn)題,本文結(jié)合在AnyNet中使用U-net網(wǎng)絡(luò)進(jìn)行特征提取的思想對(duì)Loop-Net[13]進(jìn)行改進(jìn),提出一個(gè)新的模型,可以在保證精度的前提下提高模型的實(shí)時(shí)性。
采用編碼-解碼架構(gòu)進(jìn)行卷積網(wǎng)絡(luò)的模型搭建,受AnyNet 的啟發(fā)[13],首先將矯正后的雙目圖片送入U(xiǎn)-Net特征提取網(wǎng)絡(luò),得到2 張?jiān)瓐D像尺寸1∕4 大小的特征圖之后,經(jīng)過(guò)3D卷積層再輸入到視差回歸網(wǎng)絡(luò),以降低送入模型的數(shù)據(jù)維度。之后,在Loop-Net 網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行遷移學(xué)習(xí),刪除原網(wǎng)絡(luò)中的最后一個(gè)全連接層,這樣便可以去除大多數(shù)網(wǎng)絡(luò)參數(shù)。除此之外,為了進(jìn)一步減少模型處理的數(shù)據(jù)量,應(yīng)當(dāng)盡量降低圖像的分辨率,但由于低分辨率特征圖包含的邊界信息較少,會(huì)使預(yù)測(cè)精度下降,因此使用擴(kuò)張卷積來(lái)擴(kuò)大感受野,使得最后得到的視差圖可以包含足夠多的邊界信息。同時(shí),為了保證模型精度,選擇Chen 提出的上投影模塊作為上采樣層,以防止在訓(xùn)練過(guò)程中出現(xiàn)過(guò)擬合,增加網(wǎng)絡(luò)深度,該模塊包括由1 個(gè)解池層和2 個(gè)卷積層構(gòu)成的殘差單元。此外,在模型的解碼過(guò)程中同樣使用了上采樣層,以增加特征圖分辨率。整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。其中,3DConvn,s表示大小為n×n×n、步長(zhǎng)為s的3D 卷積核,Convn,s表示大小為n×n,步長(zhǎng)為s的2D 卷積核,Pooln,s表示k=n、步長(zhǎng)為s的池化層,Res表示由2個(gè)大小為3×3的卷積核組成的殘差網(wǎng)絡(luò),Up表示上采樣層。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)示意
U-Net網(wǎng)絡(luò)是一種改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)沒(méi)有全連接層,可以實(shí)現(xiàn)任意尺寸圖像的檢測(cè),由于其可以捕捉足夠的特征信息以獲得最終的視差圖,同時(shí)相對(duì)于其他特征提取網(wǎng)絡(luò)具有更少的參數(shù),因此,其運(yùn)行速率相對(duì)較高,更適合應(yīng)用在移動(dòng)端。
U-Net網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)由搜索路徑和擴(kuò)展路徑2個(gè)部分組成。搜索路徑主要用于捕捉圖片中的上下文信息,對(duì)輸入的影像進(jìn)行卷積和池化操作,得到高維的特征金字塔。擴(kuò)展路徑對(duì)圖片中所需提取的特征部分進(jìn)行定位。對(duì)輸入圖片反復(fù)進(jìn)行卷積和上采樣∕下采樣,最后可以得到圖片的視差特征。為了縮小視差回歸網(wǎng)絡(luò)處理的特征維度的尺寸,在U-Net 特征提取網(wǎng)絡(luò)上進(jìn)行改進(jìn),使網(wǎng)絡(luò)最終輸出原圖像1∕4 大小的特征圖。U-Net 網(wǎng)絡(luò)同時(shí)應(yīng)用于左、右目圖像,首先對(duì)原始輸入圖像進(jìn)行卷積操作,然后通過(guò)下采樣和上采樣得到不同尺寸的特征圖,最后通過(guò)拼接融合2種不同尺寸特征圖的特征,得到2張1∕4尺寸的特征圖。U-Net網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,圖中Max pooln,s表示最大池化采樣。
圖2 U-Net特征提取網(wǎng)絡(luò)結(jié)構(gòu)
通過(guò)卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)圖像視差的傳統(tǒng)模型的損失函數(shù)使用一個(gè)固定的衰減權(quán)重代替噪聲參數(shù)σ,但這種方式并未考慮模型輸出的不確定性變化。為了更好地學(xué)習(xí)模型的不確定性,首先對(duì)RGB 圖像的輸入噪聲進(jìn)行概率量化,認(rèn)為不同的輸入應(yīng)該對(duì)應(yīng)不同的噪聲參數(shù)。不同的紋理場(chǎng)景會(huì)給視差估計(jì)帶來(lái)不同的不確定性,在無(wú)紋理場(chǎng)景中不確定性較大,而在紋理豐富的場(chǎng)景中不確定性較小。因此,模型的損失函數(shù)L主要包含殘差退化項(xiàng)和正則化項(xiàng):
得到視差圖后,需要在左、右目圖像中定位被測(cè)物體的位置,常用的是基于神經(jīng)網(wǎng)絡(luò)的方法,但該方法計(jì)算量較大,難以滿足算法實(shí)時(shí)性的需求。為了快速定位測(cè)距目標(biāo),本文提出基于圓匹配的方法,與其他形狀相比,圓形具有很好的幾何性質(zhì),對(duì)旋轉(zhuǎn)和縮放均不敏感,而且?guī)缀蚊枋鎏卣骱?jiǎn)單,可以快速地完成匹配。首先檢測(cè)左、右目圖像中的特征圓,利用式(2)給出的相似度函數(shù)對(duì)左、右目圖像中的圓進(jìn)行匹配,將成功匹配的2 個(gè)圓的圓心作為目標(biāo)物體在左、右目圖像中的位置:
式中,yLi、yRj分別為左目檢測(cè)的第i個(gè)圓和右目檢測(cè)的第j個(gè)圓的圓心縱坐標(biāo);rLi、rRj分別為左目檢測(cè)的第i個(gè)圓和右目檢測(cè)的第j個(gè)圓的半徑。
在進(jìn)行圓檢測(cè)時(shí),檢測(cè)閾值的選取是圓匹配策略的關(guān)鍵,如果檢測(cè)閾值設(shè)定過(guò)高,將會(huì)無(wú)法檢測(cè)到圓,而閾值過(guò)低會(huì)導(dǎo)致誤檢,增大測(cè)量誤差。由于背景的動(dòng)態(tài)變化,背景中會(huì)出現(xiàn)不同數(shù)量和相似度的圓的相似物,為了在保證可以檢測(cè)到目標(biāo)圓的同時(shí)盡可能降低誤檢率,檢測(cè)閾值應(yīng)小于且盡量靠近目標(biāo)圓得分。因此,檢測(cè)閾值的大小應(yīng)為:
式中,c為目標(biāo)圓得分;Δε為閾值松弛量。
ε越小,檢測(cè)條件越苛刻,則誤檢率越低,但同時(shí)可能出現(xiàn)無(wú)法檢測(cè)到目標(biāo)圓的問(wèn)題,反之,該值較大時(shí)能夠保證檢測(cè)到目標(biāo)圓,但會(huì)提高誤檢率。通過(guò)試驗(yàn)比較了各種閾值松弛量的效果,發(fā)現(xiàn)將Δε大小設(shè)定為0.05s可以達(dá)到較好的效果[14],因此本文設(shè)Δε=0.05s。閾值確定后,根據(jù)圓的相似度對(duì)檢測(cè)出的圓進(jìn)行匹配,將匹配得分最高的一對(duì)圓的位置作為目標(biāo)物在左、右目圖像中的位置,具體算法流程如圖3所示。
圖3 目標(biāo)匹配算法流程
得到目標(biāo)物在圖像中的位置和對(duì)應(yīng)的視差值后,計(jì)算目標(biāo)物與相機(jī)的距離dis:
式中,b為雙目相機(jī)2 個(gè)光心間的距離;f為相機(jī)焦距;d為視差值。
為驗(yàn)證算法的有效性,設(shè)計(jì)試驗(yàn)對(duì)比本文算法與AnyNet、PSMNet 算法的精度和實(shí)時(shí)性。模型使用Middlebury Stereo 數(shù)據(jù)集進(jìn)行訓(xùn)練,試驗(yàn)平臺(tái)為JNIndustriPi(見(jiàn)圖4),采用板載ARM5708,最高主頻為1 000 MHz,內(nèi)核為Coretex-A15,支持DSP 加速,其尺寸為9 cm×6 cm×2 cm,為小型移動(dòng)終端。相機(jī)為CTLO200 雙目相機(jī),單個(gè)相機(jī)分辨率為720×480。被測(cè)物體為標(biāo)注有大小不同的同心圓的紙盒,便于在近場(chǎng)和遠(yuǎn)場(chǎng)條件下檢測(cè),如圖5所示。測(cè)量距離為同心圓圓心與2個(gè)相機(jī)光心連線的距離,如圖6所示。
圖4 JN-IndustriPi
圖5 被檢測(cè)物體
圖6 測(cè)量距離
準(zhǔn)備好硬件環(huán)境后,在真實(shí)距離為20~150 cm 的范圍內(nèi),通過(guò)測(cè)量目標(biāo)物體與相機(jī)間的距離,得到3種算法的精度和運(yùn)行速度。搭建的試驗(yàn)環(huán)境如圖7所示。
圖7 試驗(yàn)環(huán)境
此外,為了評(píng)估被測(cè)物體出現(xiàn)在圖像不同位置時(shí)的精度,測(cè)試了3 種不同方位角時(shí)的測(cè)量精度,包括被測(cè)物體位于中心軸線、軸線偏15°及15°方位角。圖8展示了真實(shí)距離為50 cm 時(shí)3 種不同的測(cè)量方位角和測(cè)量結(jié)果。
圖8 試驗(yàn)環(huán)境及測(cè)試結(jié)果
在真實(shí)距離為20~150 cm時(shí)不同方位角下3種算法的測(cè)距誤差如表1所示。
由表1可以看出,當(dāng)被測(cè)物體出現(xiàn)在相機(jī)中心線上時(shí),3種算法的測(cè)量精度為98%左右,當(dāng)被測(cè)物體出現(xiàn)在偏離相機(jī)中心線的位置時(shí),3 種算法的精度均有所下降。對(duì)比發(fā)現(xiàn),本文算法的精度與其他2種方法的精度相當(dāng)。
表1 3種算法的誤差 cm
為了驗(yàn)證所提出算法的實(shí)時(shí)性,分別測(cè)試3種算法的運(yùn)行幀率,結(jié)果如表2 所示。可以看出,本文模型實(shí)時(shí)性相較于其他算法提升了約15%。
表2 3種算法的實(shí)時(shí)性
針對(duì)基于深度學(xué)習(xí)的雙目測(cè)距算法的實(shí)時(shí)性問(wèn)題,本文在Loop-Net的基礎(chǔ)上進(jìn)行改進(jìn),引入U(xiǎn)-Net特征提取網(wǎng)絡(luò),設(shè)計(jì)了雙目測(cè)距模型,同時(shí)提出了基于圓檢測(cè)的物體定位算法對(duì)目標(biāo)物進(jìn)行定位。以移動(dòng)終端JNIndustriPi 為試驗(yàn)平臺(tái)對(duì)比了本文方法與AnyNet 和PSMNet的精度與實(shí)時(shí)性,結(jié)果表明,本文所提出的模型在保證測(cè)距精度的同時(shí)提高了測(cè)距的實(shí)時(shí)性。