天天看點

關鍵點提取:單目3D檢測的

作者丨愛做菜的煉丹師

關鍵點提取:單目3D檢測的

文章導讀

關鍵點提取:單目3D檢測的

單目的3D目标檢測近幾年一直是研究的熱點,雖然往算法中添加先驗知識,能夠一定程度的提升準确率,但是也增加了擷取标簽的難度和算法設計的複雜性。本文介紹一種端到端且輕量化的單目3D檢測技術——基于關鍵點擷取目标在圖像空間的透視投影位置。

關鍵點提取:單目3D檢測的

聊聊單目的3D目标檢測方法

三維目标檢測是自動駕駛領域中常見的視覺任務,感覺子產品需要将周圍的環境資訊,包括目标的三維坐标、朝向角、類别、速度、加速度等輸出給規控子產品。

那麼如何得到一個物體的三維資訊呢?我們可以從KITTI算法測評資料集中浏覽一些主流方法:

關鍵點提取:單目3D檢測的

從上圖中可以發現,mAP靠前的算法還是以雷射雷達的感覺為主,畢竟此類主動觸發式傳感器能夠提高準确的距離資訊。但問題是20萬以下的車型很難負擔得起雷射雷達的高額成本,是以單目相機的3D檢測逐漸成為主要的研究方向,圖像中的3D外接框由于缺少深度資訊,其三維空間中的8個頂點是通過透視投影映射到圖像空間的,如下圖所示:

關鍵點提取:單目3D檢測的

單目3D目标檢測根據采用的方法大緻分成以下四類:

1. 基于現在的二維檢測算法,在目标的ROI中添加額外的回歸分支預測三維參數。但是這種直接回歸的方法由于搜尋空間過大很難取得好的效果。如下圖所示:

關鍵點提取:單目3D檢測的

使用CNN檢測2D的外接框以及圖像中的朝向角,然後利用相關的引導資訊得到粗略的3D檢測框。然後再對粗略的檢測框進行提煉,得到最終的檢測框。

2.利用2D外接框和3D目标屬性作為監督資料。将投影幾何引入作為一種限制用深度回歸網絡去預測3D資訊,但是2D外接框隻能提供四個限制,這就要求BBox的預測相當精準。如下圖所示:

關鍵點提取:單目3D檢測的

使用CNN提取特征估計2D外接框中的尺寸和方向,然後采用最小二乘求解基于相機投影矩陣解決2D到3D逆幾何映射問題來獲得物體的位置。

這個限制依據某個3D點會被投影到2D邊界框的邊緣,但是相應關系和投影的具體位置存在多種可能性,是以隻能提供四個限制不足以在9個參數(8個頂點+1個中心)中進行完整的3D表示,需要估計其他先驗資訊。 

同時2D框的偏移也會帶有限制結果的不準确性,為降低2D框的預測偏差此類方法大多通過兩階段檢測來獲得精确的2D框,這樣就很難保證明時性。

3. 利用複雜特征比如語義分割、CAD模型、對象輪廓、深度圖等,在多階段融合子產品中選擇最佳建議計算目标的3D外接框。但是訓練這些網絡大多也需要額外的标注,同時在推理過程中也會耗費更多的資源。如下圖所示:

關鍵點提取:單目3D檢測的

此類方法從車輛關鍵點推斷出完整形狀,可以提高遮擋物和截斷物的檢測精度。一般使用線框模闆(CAD模型)來表示正常形狀的車輛。

但是為了訓練關鍵點檢測網絡,需要額外标注相關資料,甚至需要提供深度圖來增強檢測能力。

4.參照人體姿态估計中的關鍵點檢測技術,對車輛行人等道路障礙物進行關鍵點提取群組合,最後再通過相機的内外參進行圖像的透視限制。如下圖所示:

關鍵點提取:單目3D檢測的

此類将3D檢測重新構造為稀疏關鍵點檢測任務,無需基于現成的2D檢測器或其他資料生成器來預測3D框,而是建立一個網絡預測3D框的8個頂點和1個中心投影的9個2D關鍵點,同時将重投影誤差最小化以找到最佳結果 。

關鍵點提取:單目3D檢測的

基于關鍵點的3D目标檢測分析

幾何資訊融入深度學習方法的一個局限性在于2D外接框的四條邊所能提供的限制有限,2D框的4條邊隻提供恢複3D框的4個限制,而3D框的頂點可能與2D外接框任何一條邊都有關。而且對2D框的過度依賴使得當2D框有輕微的錯誤會對3D框的預測效果有很大影響。

但是如果采用提取關鍵點的方法對遮擋和截斷的物體就能具有良好的特性,試想一下即使檢測出幾個特征點,其它資訊的也可以根據物體的表示模型推斷出來。

近幾年來由于anchor-free技術的日漸成熟,基于關鍵點檢測的方法越來越受到工業界追捧。相比于以前采用2D檢測器提供的ROI來回歸頂點坐标,兩階段的檢測算法限制了推理速度,在一些需要算法快速相應的場景中已經逐漸銷聲匿迹。關鍵點檢測較早的應用出現在人臉識别或者姿态估計中,從這些應用中我們了解到直接回歸特征點一般沒有熱度圖的精度高。

關鍵點提取:單目3D檢測的

是以拟采用單階段生成熱度圖的方法,考慮隻預測3D外接框的8個頂點和1個中心點。不過考慮到9個特征點盡管可以提供18個限制,但尺度還沒辦法确定,是以需要一些額外的先驗資訊。

根據上面的分析也就和RTM3D的主要思想基本吻合:建立全卷積網絡預測目标的3D資訊,包括目标的9個關鍵點投影(1個中心點,8個頂點),9個關鍵點提供對3D框的18個幾何限制。8個頂點和1個中心的關系通過模組化來解決關鍵點聚集和頂點的順序問題。

同時為了解決搜尋空間較大的問題,該算法利用3D外接框頂點到2D外接框邊緣之間的幾何限制來修正并預測目标參數,得到更加精确的9個空間點。

關鍵點提取:單目3D檢測的

算法架構可以看成2步:

第一步:輸入單RGB圖像,輸出關鍵點的熱度圖,頂點熱度圖和頂點坐标,用于預測由8個頂點和3D對象的中心點在圖像空間中投影的序數關鍵點;

第二步:使用透視投影的幾何限制将預測的3D邊界框估計重新構造為使能量函數最小化的問題,來修正空間點坐标;

特征提取部分

針對輸入圖像使用因子S=4進行下采樣,源碼中提供了ResNet-18和DLA-34兩個網絡進行提取特征,編碼環節進行5次采樣,然後通過三次雙線性插值和1×1卷積層對瓶頸進行了三次上采樣。引入FPN将低級特征圖和進階特征圖連接配接用于整合多尺度特征,同時添加一個1×1的卷積層以減少信道尺寸。

關鍵點融合部分

圖像中的關鍵點的大小基本不會随着目标的遠近産生太大的變化。是以傳統的特征金字塔網絡并不适用于關鍵點檢測。這裡使用關鍵點特征金字塔網絡來檢測點向空間中的尺度不變性。

具體做法如下:假設有F尺度的特征圖,可以先将每個尺度f還原到最大尺度,然後通過softmax運算生成輕權重以表示每個尺度的重要性。通過線性權重和獲得最終的尺度空間得分圖(有點類似與注意力機制)。

關鍵點提取:單目3D檢測的

多任務檢測部分

檢測頭由三個基本元件和六個可選元件組成,在網絡訓練時可以選擇輸出特征圖的個數,附加的可選項越多可以達到精度上限越高,但是訓練時任務頭之間的權衡也需要仔細調節。RTM3D算法中将一個關鍵點作為連接配接所有功能的主要中心,由于在截斷的情況下對象的三維投影點可能超過圖像邊界不利于檢測,是以最終選擇二維框的中心點作為主點。

關鍵點提取:單目3D檢測的
關鍵點提取:單目3D檢測的

如何檢測目标的關鍵點?

檢測圖像中的某一點,我們可能會想到這麼幾種方式:

  1. 傳統Harris等算子提取角點
  2. 區域生長等角點檢測算法
  3. 直接在圖像中回歸坐标點
  4. 高斯分布角點區域進行分割

方法1和2是在圖像進行中最常見的提取角點手段,如下圖所示:在做相機标定時提取棋盤格的角點坐标是必不可少的一項工作。

關鍵點提取:單目3D檢測的

那麼在深度學習蓬勃發展的今天,如何在神經網絡中得到角點或者關鍵點坐标呢?

方法3是最直接也最容易想到的,有監督的學習要麼是分類任務要麼是回歸任務,在圖像中定位關鍵點的位置好像和坐标回歸的關系更大一些哦~~~但是在整張圖檔中回歸幾個坐标點總感覺比較困難,試想一副720P分辨率的圖檔包括100萬個像素的,回歸幾個或者幾十個像素點坐标難度可想而知。實驗證明用神經網絡直接回歸點的二維坐标是很難收斂的,這是一個極其非線性的過程,而且損失函數對權重的限制會比較弱。

方法4在關鍵點上附加了二維高斯分布,因為關鍵點附近的點其實也很像關鍵點,如果直接将其标為負樣本,可能給神經網絡的訓練帶來幹擾噪聲(人工打标注也是存在偏差的),将其用高斯函數做一個軟标簽能夠促使網絡更好的收斂。并且高斯分布也能夠給訓練增加方向性引導,距離關鍵點越近真值機率越大,這樣網絡能有方向的去快速到達關鍵點。

繼續閱讀