3D目標檢測
核心思路
輸入裁剪的RGB image和對應的3D點雲,分別透過
ResNet
和
PointNet變體
提取特徵,再對兩類特徵進行
fusion
,最後將3D points視為
dense spatial anchors
並進行
dense prediction
以得到物體的3D bounding box及對應置信度。
PointFusion由三部分組成:
pointnet的變體,提取點雲特徵;
CNN網路提取圖片表面特徵;
特徵融合網路,它結合特徵並輸出裁剪物件的3D邊界框。
使用dense spatial anchor mechanism提升3D邊界框預測,使用2個scoring function選擇最佳預測結果。
網路結構
Point Cloud Network:
pointnet結構
pointnet
使用max pooling實現點雲的置換不變性,該模型輸入原始點雲,學習每個點的空間編碼,以及一個聚合的全域性點雲特徵。
pointnet
的優點在於:
直接處理原始點雲,沒有經過體素或對映投影等操作,不會損失資訊;
與輸入點雲數量成線性縮放。(暫不明白啥意思)
但由於pointnet不能直接回歸3D邊界框,因此針對做以下改進:
No batchnorm
:在原始的PointNet中,所有FC layer都會接一個BN layer。然而,
BN layer阻礙了3D邊界框估計的效能
。原因在於:歸一化處理目的是為了消除輸入資料中的scale和bias,但是對於3D迴歸任務來說,點雲絕對位置數值是有用的。因此,移除了原始pointnet中所有BN layer。
Input normalization
:找到場景中可以投影到box的所有點,可以獲得影象邊界框的相應的3D點雲。然而,3D點的空間位置與2D box的位置高度相關,這引入了不期望的偏差。PointNet應用STN網路來強制化(canonicalizw)輸入空間。然而,我們發現STN並不能完全糾正這些偏差。相反,我們使用已知的相機幾何形狀來計算標準的旋轉矩陣Rc。Rc將透過2D box中心的射線旋轉到相機框架的z軸
Fusion Network
輸入:CNN(resnet網路)提取的圖片特徵和PointNet辯題提取的點雲特徵;
輸出:結合2個特徵輸出目標物體的3D邊界框。
global fusion network
:處理圖片和點雲特徵,直接回歸目標3D邊界框的8個角點位置。實驗發現:
直接連線2個向量,再經過一個FC layer
效果最好(2048+1024+64=3136)。損失如下:
Lstn是pointnet中提出的空間變換損失。
global fusion network的主要缺點是:
迴歸目標的方差取決於特定場景(由於直接回歸8個角點,存在尺寸等差異)。這種問題給網路帶來了負擔,且導致效能不理想。一個常見的解決方案不是直接回歸2D box,而是透過使用
滑動視窗
或透過預測
相對於spatial anchor的位移
來生成proposal。這些想法引入下面的dense fusion network,如下所描述:
Dense fusion network
:該模型背後的思想主要是使用3D點作為dense spatial anchor。
對於每個3D輸入點,我們預測從該點到附近box角點的空間偏移
。使用PointNet的一個變體來輸出point-wise特徵,對於每一點,
這些都與global pointnet feature和image feature連線,從而產生一個n×3136輸入張量
。密集融合網路使用幾個layer處理這個輸入,並輸出一個3D邊界框以及每個點的分數。在測試時,選擇得分最高的預測作為最終預測。損失函式是:
注:從網路圖中可以看到2種fusion方式:
第一個為
global fusion
,結合了RGB影象的全域性特徵(1x2048)和點雲的全域性特徵(1x1024),經過若干層全連線層後直接回歸出3D box的八個頂點座標(1x8x3);
第二個為
dense fusion
,即最終採用的版本。在global fusion的基礎之上加入了
point-wise feature
(nx64),處理方式類似PointNet中segmentation部分,經過若干層全連線層後預測每一個點相對box center的
偏移值
以及
得分
,最後選取得分最高的點為預測結果(因為是相對座標,所以box其他七個頂點的座標值可以直接由最高分點得到)。
3.3 dense fusion prediction scoring:
Lscose函式的目標是讓網路聚焦從靠近目標box的點學習空間偏移。提出了兩個評分函式:一個監督評分函式,直接訓練網路預測一個點是否在目標邊界框內,另一個無監督評分函式,讓網路選擇將導致最優預測的點。
supervised scoring
:即讓網路學習點是否在目標box內。然而,該損失可能不是最優的結果,因為box內建信度最高的點可能不是最佳預測的點。
unsupervised scoring:
無監督得分的目標是讓網路直接學習哪些點可能給出最好的假設,無論它們是否在box內的置信度最高。因此,
我們需要訓練網路去分配高置信度給可能產生一個良好的預測點
。該損失包括兩個相互競爭的損失:我們更喜歡高置信度的所有點,然而,角點預測誤差與這個置信度成正比。
注:Supervised scoring function要求最佳預測點是在
target bounding box之內
的,而unsupervised scoring function則沒有這一約束,將
高置信度
賦給那些可能是good prediction的點。
可改進的點:
非end-to-end訓練;