外貿(mào)網(wǎng)站做的作用是什么sem工作內(nèi)容
縱目發(fā)表的這篇單目3D目標(biāo)檢測(cè)論文不同于以往用2D預(yù)選框建立3D信息,而是采取直接回歸3D信息,這種思路簡(jiǎn)單又高效,并不需要復(fù)雜的前后處理,而且是一種one stage方法,對(duì)于實(shí)際業(yè)務(wù)部署也很友好。
- 題目:SMOKE:Single-Stage Monocular 3D Object Detection via Keypoint Estimation
- 代碼:https://github.com/lzccccc/SMOKE
Introduction
2D目標(biāo)檢測(cè)目前已經(jīng)在精度和速度上都取得了不錯(cuò)的成績(jī),而3D目標(biāo)檢測(cè)由于需要同時(shí)估計(jì)出目標(biāo)的位置與姿態(tài),因此相比2D是一個(gè)更具挑戰(zhàn)的方向。
目前性能最好的3D目標(biāo)檢測(cè)還是需要依賴激光雷達(dá)的點(diǎn)云或者點(diǎn)云+圖像融合,考慮到成本因素,僅依靠單目攝像頭的3D目標(biāo)檢測(cè)還是非常值得研究的。
本作有以下幾個(gè)貢獻(xiàn)點(diǎn):
- 提出了一個(gè)one-stage單目3D檢測(cè)方法,思路簡(jiǎn)答,且end-to-end。
- 3D框8個(gè)角點(diǎn)的計(jì)算使用了多種方式得到,每種方式都參與了loss的計(jì)算,使訓(xùn)練更容易收斂。
- 在KITTI數(shù)據(jù)集上達(dá)到了SOTA。
Detection Problem
SMOKE Approach
Backbone
主干網(wǎng)絡(luò)選擇使用DLA-34,其中部分卷積換成了DCN,最后的輸出相對(duì)于原始圖4次下采樣的特征圖。論文還將BN換成了GN(GroupNorm),因?yàn)镚N對(duì)batch size的大小不那么敏感,且在訓(xùn)練中對(duì)噪聲更魯棒。
3D Detection Network
head部分一共兩條分支,一條用于檢測(cè)目標(biāo)中心點(diǎn)位置同時(shí)分類,另一條回歸目標(biāo)的3D信息。
Keypoint Branch
中心點(diǎn)的估計(jì)與CenterNet那片論文的思路相似,不同的是CenterNet里用的是2D框的中心點(diǎn),而這里用的是3D框的中心點(diǎn)在圖像上的投影點(diǎn),如下圖所示:
Regression Branch
根據(jù)深度信息,投影點(diǎn)(x,y)坐標(biāo),和相機(jī)參數(shù),可計(jì)算得到3D中心點(diǎn)坐標(biāo)
預(yù)測(cè)長(zhǎng)寬高,有點(diǎn)像anchor的思想
偏航角:ray到Z軸角度
Loss Function
偏航角pred與尺寸gt,坐標(biāo)gt構(gòu)成的3d box與gt的回歸loss
偏航角gt與尺寸pred,坐標(biāo)gt構(gòu)成的3d box與gt的回歸loss
偏航角gt與尺寸gt,坐標(biāo)pred構(gòu)成的3d box與gt的回歸loss
Keypoint Classification分支的loss跟CenterNet中一樣,用的是focal loss。
Regression分支的loss計(jì)算比較有新意,沒有采取直接計(jì)算τ \tauτ中8個(gè)參數(shù)的loss,而是通過在角度、尺寸、坐標(biāo)位置三種分支下得到的3D框的8個(gè)角點(diǎn)去和真值比較計(jì)算loss。
總loss:
# mmdetection3d/mmdet3d/models/dense_heads/smoke_mono3d_head.py
# 角度分支下計(jì)算得到的3D框,所謂角度分支即只有角度用的是預(yù)測(cè)值,而坐標(biāo)位置和尺寸兩個(gè)用的是真值
bbox3d_yaws = self.bbox_coder.encode(gt_locations, gt_dimensions, orientations, img_metas)
# 尺寸分支下計(jì)算得到的3D框
bbox3d_dims = self.bbox_coder.encode(gt_locations, dimensions, gt_orientations, img_metas)
# 坐標(biāo)位置分支下計(jì)算得到的3D框
bbox3d_locs = self.bbox_coder.encode(locations, gt_dimensions, gt_orientations, img_metas)
...
...
# 三種分支下分別計(jì)算推理出的8個(gè)角點(diǎn)的和真值8個(gè)角點(diǎn)的loss
loss_bbox_oris = self.loss_bbox(pred_bboxes['ori'].corners[reg_inds, ...], target_labels['gt_cors'][reg_inds, ...])loss_bbox_dims = self.loss_bbox(pred_bboxes['dim'].corners[reg_inds, ...], target_labels['gt_cors'][reg_inds, ...])loss_bbox_locs = self.loss_bbox(pred_bboxes['loc'].corners[reg_inds, ...], target_labels['gt_cors'][reg_inds, ...])loss_bbox = loss_bbox_dims + loss_bbox_locs + loss_bbox_oris
Conclusion
縱目發(fā)表的這篇單目3D目標(biāo)檢測(cè)論文不同于以往用2D預(yù)選框建立3D信息,而是采取直接回歸3D信息,這種思路簡(jiǎn)單又高效,并不需要復(fù)雜的前后處理,而且是一種one stage方法,對(duì)于實(shí)際業(yè)務(wù)部署也很友好。
參考:https://blog.csdn.net/qq_30483585/article/details/124954023