單目的3D目標(biāo)檢測(cè)近幾年一直是研究的熱點(diǎn),雖然往算法中添加先驗(yàn)知識(shí),能夠一定程度的提升準(zhǔn)確率,但是也增加了獲取標(biāo)簽的難度和算法設(shè)計(jì)的復(fù)雜性。本文介紹一種端到端且輕量化的單目3D檢測(cè)技術(shù)——基于關(guān)鍵點(diǎn)獲取目標(biāo)在圖像空間的透視投影位置。
三維目標(biāo)檢測(cè)是自動(dòng)駕駛領(lǐng)域中常見的視覺任務(wù),感知模塊需要將周圍的環(huán)境信息,包括目標(biāo)的三維坐標(biāo)、朝向角、類別、速度、加速度等輸出給規(guī)控模塊。那么如何得到一個(gè)物體的三維信息呢?我們可以從KITTI算法測(cè)評(píng)數(shù)據(jù)集中瀏覽一些主流方法:從上圖中可以發(fā)現(xiàn),MAP靠前的算法還是以激光雷達(dá)的感知為主,畢竟此類主動(dòng)觸發(fā)式傳感器能夠提高準(zhǔn)確的距離信息。但問題是20萬以下的車型很難負(fù)擔(dān)得起激光雷達(dá)的高額成本,所以單目相機(jī)的3D檢測(cè)逐漸成為主要的研究方向,圖像中的3D外接框由于缺少深度信息,其三維空間中的8個(gè)頂點(diǎn)是通過透視投影映射到圖像空間的,如下圖所示:單目3D目標(biāo)檢測(cè)根據(jù)采用的方法大致分成以下四類:1. 基于現(xiàn)在的二維檢測(cè)算法,在目標(biāo)的ROI中添加額外的回歸分支預(yù)測(cè)三維參數(shù)。但是這種直接回歸的方法由于搜索空間過大很難取得好的效果。如下圖所示:使用CNN檢測(cè)2D的外接框以及圖像中的朝向角,然后利用相關(guān)的引導(dǎo)信息得到粗略的3D檢測(cè)框。然后再對(duì)粗略的檢測(cè)框進(jìn)行提煉,得到最終的檢測(cè)框。2.利用2D外接框和3D目標(biāo)屬性作為監(jiān)督數(shù)據(jù)。將投影幾何引入作為一種約束用深度回歸網(wǎng)絡(luò)去預(yù)測(cè)3D信息,但是2D外接框只能提供四個(gè)約束,這就要求BBox的預(yù)測(cè)相當(dāng)精準(zhǔn)。如下圖所示:使用CNN提取特征估計(jì)2D外接框中的尺寸和方向,然后采用最小二乘求解基于相機(jī)投影矩陣解決2D到3D逆幾何映射問題來獲得物體的位置。這個(gè)約束依據(jù)某個(gè)3D點(diǎn)會(huì)被投影到2D邊界框的邊緣,但是相應(yīng)關(guān)系和投影的具體位置存在多種可能性,所以只能提供四個(gè)約束不足以在9個(gè)參數(shù)(8個(gè)頂點(diǎn)+1個(gè)中心)中進(jìn)行完整的3D表示,需要估計(jì)其他先驗(yàn)信息。?同時(shí)2D框的偏移也會(huì)帶有約束結(jié)果的不準(zhǔn)確性,為降低2D框的預(yù)測(cè)偏差此類方法大多通過兩階段檢測(cè)來獲得精確的2D框,這樣就很難保證實(shí)時(shí)性。3. 利用復(fù)雜特征比如語義分割、CAD模型、對(duì)象輪廓、深度圖等,在多階段融合模塊中選擇最佳建議計(jì)算目標(biāo)的3D外接框。但是訓(xùn)練這些網(wǎng)絡(luò)大多也需要額外的標(biāo)注,同時(shí)在推理過程中也會(huì)耗費(fèi)更多的資源。如下圖所示:此類方法從車輛關(guān)鍵點(diǎn)推斷出完整形狀,可以提高遮擋物和截?cái)辔锏臋z測(cè)精度。一般使用線框模板(CAD模型)來表示常規(guī)形狀的車輛。但是為了訓(xùn)練關(guān)鍵點(diǎn)檢測(cè)網(wǎng)絡(luò),需要額外標(biāo)注相關(guān)數(shù)據(jù),甚至需要提供深度圖來增強(qiáng)檢測(cè)能力。4.參照人體姿態(tài)估計(jì)中的關(guān)鍵點(diǎn)檢測(cè)技術(shù),對(duì)車輛行人等道路障礙物進(jìn)行關(guān)鍵點(diǎn)提取和組合,最后再通過相機(jī)的內(nèi)外參進(jìn)行圖像的透視約束。如下圖所示:此類將3D檢測(cè)重新構(gòu)造為稀疏關(guān)鍵點(diǎn)檢測(cè)任務(wù),無需基于現(xiàn)成的2D檢測(cè)器或其他數(shù)據(jù)生成器來預(yù)測(cè)3D框,而是建立一個(gè)網(wǎng)絡(luò)預(yù)測(cè)3D框的8個(gè)頂點(diǎn)和1個(gè)中心投影的9個(gè)2D關(guān)鍵點(diǎn),同時(shí)將重投影誤差最小化以找到最佳結(jié)果 。基于關(guān)鍵點(diǎn)的3D目標(biāo)檢測(cè)分析
幾何信息融入深度學(xué)習(xí)方法的一個(gè)局限性在于2D外接框的四條邊所能提供的約束有限,2D框的4條邊只提供恢復(fù)3D框的4個(gè)約束,而3D框的頂點(diǎn)可能與2D外接框任何一條邊都有關(guān)。而且對(duì)2D框的過度依賴使得當(dāng)2D框有輕微的錯(cuò)誤會(huì)對(duì)3D框的預(yù)測(cè)效果有很大影響。但是如果采用提取關(guān)鍵點(diǎn)的方法對(duì)遮擋和截?cái)嗟奈矬w就能具有良好的特性,試想一下即使檢測(cè)出幾個(gè)特征點(diǎn),其它信息的也可以根據(jù)物體的表示模型推斷出來。近幾年來由于anchor-free技術(shù)的日漸成熟,基于關(guān)鍵點(diǎn)檢測(cè)的方法越來越受到工業(yè)界追捧。相比于以前采用2D檢測(cè)器提供的ROI來回歸頂點(diǎn)坐標(biāo),兩階段的檢測(cè)算法限制了推理速度,在一些需要算法快速相應(yīng)的場(chǎng)景中已經(jīng)逐漸銷聲匿跡。關(guān)鍵點(diǎn)檢測(cè)較早的應(yīng)用出現(xiàn)在人臉識(shí)別或者姿態(tài)估計(jì)中,從這些應(yīng)用中我們了解到直接回歸特征點(diǎn)一般沒有熱度圖的精度高。因此擬采用單階段生成熱度圖的方法,考慮只預(yù)測(cè)3D外接框的8個(gè)頂點(diǎn)和1個(gè)中心點(diǎn)。不過考慮到9個(gè)特征點(diǎn)盡管可以提供18個(gè)約束,但尺度還沒辦法確定,所以需要一些額外的先驗(yàn)信息。根據(jù)上面的分析也就和RTM3D的主要思想基本吻合:建立全卷積網(wǎng)絡(luò)預(yù)測(cè)目標(biāo)的3D信息,包括目標(biāo)的9個(gè)關(guān)鍵點(diǎn)投影(1個(gè)中心點(diǎn),8個(gè)頂點(diǎn)),9個(gè)關(guān)鍵點(diǎn)提供對(duì)3D框的18個(gè)幾何約束。8個(gè)頂點(diǎn)和1個(gè)中心的關(guān)系通過建模來解決關(guān)鍵點(diǎn)聚集和頂點(diǎn)的順序問題。同時(shí)為了解決搜索空間較大的問題,該算法利用3D外接框頂點(diǎn)到2D外接框邊緣之間的幾何約束來修正并預(yù)測(cè)目標(biāo)參數(shù),得到更加精確的9個(gè)空間點(diǎn)。第一步:輸入單RGB圖像,輸出關(guān)鍵點(diǎn)的熱度圖,頂點(diǎn)熱度圖和頂點(diǎn)坐標(biāo),用于預(yù)測(cè)由8個(gè)頂點(diǎn)和3D對(duì)象的中心點(diǎn)在圖像空間中投影的序數(shù)關(guān)鍵點(diǎn);第二步:使用透視投影的幾何約束將預(yù)測(cè)的3D邊界框估計(jì)重新構(gòu)造為使能量函數(shù)最小化的問題,來修正空間點(diǎn)坐標(biāo);針對(duì)輸入圖像使用因子S=4進(jìn)行下采樣,源碼中提供了ResNet-18和DLA-34兩個(gè)網(wǎng)絡(luò)進(jìn)行提取特征,編碼環(huán)節(jié)進(jìn)行5次采樣,然后通過三次雙線性插值和1×1卷積層對(duì)瓶頸進(jìn)行了三次上采樣。引入FPN將低級(jí)特征圖和高級(jí)特征圖連接用于整合多尺度特征,同時(shí)添加一個(gè)1×1的卷積層以減少信道尺寸。圖像中的關(guān)鍵點(diǎn)的大小基本不會(huì)隨著目標(biāo)的遠(yuǎn)近產(chǎn)生太大的變化。所以傳統(tǒng)的特征金字塔網(wǎng)絡(luò)并不適用于關(guān)鍵點(diǎn)檢測(cè)。這里使用關(guān)鍵點(diǎn)特征金字塔網(wǎng)絡(luò)來檢測(cè)點(diǎn)向空間中的尺度不變性。具體做法如下:假設(shè)有F尺度的特征圖,可以先將每個(gè)尺度f還原到最大尺度,然后通過softmax運(yùn)算生成輕權(quán)重以表示每個(gè)尺度的重要性。通過線性加權(quán)和獲得最終的尺度空間得分圖(有點(diǎn)類似與注意力機(jī)制)。檢測(cè)頭由三個(gè)基本組件和六個(gè)可選組件組成,在網(wǎng)絡(luò)訓(xùn)練時(shí)可以選擇輸出特征圖的個(gè)數(shù),附加的可選項(xiàng)越多可以達(dá)到精度上限越高,但是訓(xùn)練時(shí)任務(wù)頭之間的權(quán)衡也需要仔細(xì)調(diào)節(jié)。RTM3D算法中將一個(gè)關(guān)鍵點(diǎn)作為連接所有功能的主要中心,由于在截?cái)嗟那闆r下對(duì)象的三維投影點(diǎn)可能超過圖像邊界不利于檢測(cè),所以最終選擇二維框的中心點(diǎn)作為主點(diǎn)。如何檢測(cè)目標(biāo)的關(guān)鍵點(diǎn)?
檢測(cè)圖像中的某一點(diǎn),我們可能會(huì)想到這么幾種方式:
傳統(tǒng)Harris等算子提取角點(diǎn)
區(qū)域生長等角點(diǎn)檢測(cè)算法
直接在圖像中回歸坐標(biāo)點(diǎn)
高斯分布角點(diǎn)區(qū)域進(jìn)行分割
方法1和2是在圖像處理中最常見的提取角點(diǎn)手段,如下圖所示:在做相機(jī)標(biāo)定時(shí)提取棋盤格的角點(diǎn)坐標(biāo)是必不可少的一項(xiàng)工作。那么在深度學(xué)習(xí)蓬勃發(fā)展的今天,如何在神經(jīng)網(wǎng)絡(luò)中得到角點(diǎn)或者關(guān)鍵點(diǎn)坐標(biāo)呢?方法3是最直接也最容易想到的,有監(jiān)督的學(xué)習(xí)要么是分類任務(wù)要么是回歸任務(wù),在圖像中定位關(guān)鍵點(diǎn)的位置好像和坐標(biāo)回歸的關(guān)系更大一些哦~~~但是在整張圖片中回歸幾個(gè)坐標(biāo)點(diǎn)總感覺比較困難,試想一副720P分辨率的圖片包括100萬個(gè)像素的,回歸幾個(gè)或者幾十個(gè)像素點(diǎn)坐標(biāo)難度可想而知。實(shí)驗(yàn)證明用神經(jīng)網(wǎng)絡(luò)直接回歸點(diǎn)的二維坐標(biāo)是很難收斂的,這是一個(gè)極其非線性的過程,而且損失函數(shù)對(duì)權(quán)重的約束會(huì)比較弱。方法4在關(guān)鍵點(diǎn)上附加了二維高斯分布,因?yàn)殛P(guān)鍵點(diǎn)附近的點(diǎn)其實(shí)也很像關(guān)鍵點(diǎn),如果直接將其標(biāo)為負(fù)樣本,可能給神經(jīng)網(wǎng)絡(luò)的訓(xùn)練帶來干擾噪聲(人工打標(biāo)注也是存在偏差的),將其用高斯函數(shù)做一個(gè)軟標(biāo)簽?zāi)軌虼偈咕W(wǎng)絡(luò)更好的收斂。并且高斯分布也能夠給訓(xùn)練增加方向性引導(dǎo),距離關(guān)鍵點(diǎn)越近真值概率越大,這樣網(wǎng)絡(luò)能有方向的去快速到達(dá)關(guān)鍵點(diǎn)。
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。