單目3D目標檢測調研

2021-10-10 12:56:42 字數 1872 閱讀 7780

現有的單目3d目標檢測方案主要方案主要分為兩類,分別為基於的方法和基於偽雷達點雲的方法。

基於的方法一般通過2d-3d之間的幾何約束來學習,包括目標形狀資訊,地面資訊,以及關鍵點等等,通過這些資訊在損失函式中約束3d檢測學習得更好。

基於偽雷達點雲的方法首先從2d中估計出單目深度資訊來,然後利用單目深度將2d投射到3d空間,從而模擬雷達點雲訊號,之後可以利用基於點雲的3d目標檢測演算法。

本文工作反思了傳統的2d卷積在學習目標深度資訊時遇到的區域性結構歧義性和尺度變化敏感問題,從而提出了一種新的使用於單目3d檢測任務的卷積操作,即深度指導的區域性動態卷積,並基於這個操作搭建了乙個一階3d檢測器d4lcn。d4lcn在權威資料集kitti上的單目3d方法中獲取了第一的成績,被cvpr2020接收。

模型架構:為了利用深度資訊作為2d卷積的引導,設計了乙個雙流網路的形式,主分支特徵提取網路使用rgb作為輸入,輔助分支是卷積核生成網路,用來生成用於特徵提取網路的卷積核,輸入是使用dorn(或其他單目深度模型)估計出來的深度圖。這兩個網路分別處理,輸出到深度指導的卷積模組來融合,如下圖:

實驗結果如下表:

該工作旨在通過增強基於雷射雷達的演算法來處理單幅影象輸入,從而縮小3d感測和2d感測之間在3d目標檢測的效能差距。具體來說,執行單目深度估計並將輸入影象提公升到偽雷射雷達(pseudo-lidar)點雲的表示形式,然後使用pseudo-lidar端到端訓練的3d檢測網路。pseudo-lidar在標準的三維目標檢測基準上,實現了最先進的效能,發表於cvpr2019。

模型架構:a)輸入影象的每個畫素提公升到給定估計深度的3d座標,生成pseudo-lidar;b)檢測用於提取點雲視錐的例項掩碼提議(instance mask proposals);c)每個點雲視錐的3d邊框(藍色)與相應的2d提議保持一致,稱為bbc。如下圖所示:

實驗結果如下表:

由於很多演算法對不同資料集和不同目標檢測效果不同,檢測精度(iou>0.7)部分只是大致的表達:

3d目標檢測方案

檢測精度

代表作輸入資料

硬體成本

單目影象下的3d目標檢測

低(30%以下)

d4lcn, mono3d-plidar

單張rgb

低基於立體視覺下的3d目標檢測

中等(30%-70%)

stereo r-cnn, psmnet

左右兩張rgb影象

中等基於rgb-d影象下的3d目標檢測

中等(30%-70%)

f-pointnets

深度影象

中等基於雷射雷達點雲的3d目標檢測

高(80%以上)

pv-rcnn, pointrcnn

3d點雲資料

高基於融合的方法rgb影象+雷射雷達/深度圖的3d目標檢測

高(80%以上)

clocs, 3d-cvf

rgb+3d點雲資料/深度圖

高如下圖是多個演算法在kitti資料集上的效能:

kitti資料集:

儘管目前學術界已經提出了很多關於單目3d目標檢測的點子,但是其精度卻依然在乙個較低水平,且目前研究大多在kitti資料集上訓練測試,測試物件也侷限於車輛、行人、自行車,甚至多數演算法僅能在車輛檢測中得到乙個較好的精度。

3D目標檢測之AM3D

accurate monocular object detection via color embedded 3d reconstructionfor autonomous driving 參考戳這裡 先用2d目標檢測網路和單目深度估計網路分別檢測2d box和深度資訊,然後將深度資訊轉化為三維點雲...

3d 目標檢測 判斷點雲是否在bbox中

有時候需要判斷某些點是否在點雲的凸包內,例如3d object detection 中找到了bbox,判斷場景中的點雲哪些在這個bbox中,這裡以2d點為例 import numpy as np import matplotlib.pyplot as plt from matplotlib.coll...

車道線檢測之3D車道線檢測

可參考文獻 有相機座標系ccamera和道路座標系croad,作者假定兩個座標系的roll和yaw一致,僅存pitch的差異,那麼,兩座標係之間的轉換關係tc2r將由h cam和camera pitch確定,其中,h cam和camera pitch由模型 輸入為相機採集的影象,輸出分為2部分,第一...