0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

KITTI 3D檢測數(shù)據集

新機器視覺 ? 來源:新機器視覺 ? 作者:千百度@知乎 ? 2022-05-31 10:49 ? 次閱讀

77c8d9f8-e01e-11ec-ba43-dac502259ad0.png

基于Lidar的object檢測模型包括Point-based [PointRCNN(CVPR19), IA-SSD(CVPR22)等], Voxel-based [PointPillars(CVPR19), CenterPoint(CVPR21)等],Point-Voxel-based [PV-RCNN(CVPR20), HVPR(CVPR21)等]和Multi-view-based[PIXOR(CVPR18)等]等。本博客主要記錄,作為菜鳥的我,在KITTI數(shù)據集上(3類)基于PyTorch實現(xiàn)PointPillars的一些學習心得, 訓練和測試的pipeline如Figure 1所示。這里按照深度學習算法的流程進行展開: 數(shù)據 + 網絡結構 + 預測/可視化 + 評估,和實現(xiàn)的代碼結構是一一對應的,完整代碼已更新于github//github.com/zhulf0804/PointPillars [說明 - 代碼的實現(xiàn)是通過閱讀mmdet3dv0.18.1源碼, 加上自己的理解完成的。因為不會寫cuda, 所以cuda代碼和少量代碼是從mmdet3dv0.18.1復制過來的。]

78442ec8-e01e-11ec-ba43-dac502259ad0.jpg

一、KITTI 3D檢測數(shù)據集

1.1 數(shù)據集信息:

·KITTI數(shù)據集論文:Are we ready for autonomous driving? the kitti vision benchmark suite[CVPR 2012] 和Vision meets robotics: The kitti dataset[IJRR 2013]·KITTI數(shù)據集下載(下載前需要登錄): point cloud(velodyne, 29GB), images(image_2, 12 GB), calibration files(calib, 16 MB)和labels(label_2, 5 MB)。數(shù)據velodyne, calib 和 label_2的讀取詳見utils/io.py

1.2 ground truth label信息 [file]

對每一幀點云數(shù)據, label是 n個15維的向量, 組成了8個維度的信息。

786aee6e-e01e-11ec-ba43-dac502259ad0.png

1)訓練時主要用到的是類別信息(type) 和3d bbox 信息 (location, dimension, rotation_y).2)觀測角(alpha)和旋轉角(rotation_y)的區(qū)別和聯(lián)系可以參考博客blog.csdn.net/qq_161375。

1.3 坐標系的變換

因為gt label中提供的bbox信息是Camera坐標系的,因此在訓練時需要使用外參等將其轉換到Lidar坐標系; 有時想要把3d bbox映射到圖像中的2d bbox方便可視化,此時需要內參。具體轉換關系如Figure 2。坐標系轉換的代碼見utils/process.py。

78b98984-e01e-11ec-ba43-dac502259ad0.jpg

1.4 數(shù)據增強

數(shù)據增強應該是Lidar檢測中很重要的一環(huán)。發(fā)現(xiàn)其與2D檢測中的增強差別較大,比如3D中會做database sampling(我理解的是把gt bbox進行cut-paste), 會做碰撞檢測等。在本庫中主要使用了采用了5種數(shù)據增強, 相關代碼在dataset/data_aug.py。
  • 采樣gt bbox并將其復制到當前幀的點云
    • 從Car, Pedestrian, Cyclist的database數(shù)據集中隨機采集一定數(shù)量的bbox及inside points, 使每類bboxes的數(shù)量分別達到15, 10, 10.
    • 將這些采樣的bboxes進行碰撞檢測, 通過碰撞檢測的bboxes和對應labels加到gt_bboxes_3d, gt_labels
    • 把位于這些采樣bboxes內點刪除掉, 替換成bboxes內部的點.
  • bbox 隨機旋轉平移
    • 以某個bbox為例, 隨機產生num_try個平移向量t和旋轉角度r, 旋轉角度可以轉成旋轉矩陣(mat).
    • 對bbox進行旋轉和平移, 找到num_try中第一個通過碰撞測試的平移向量t和旋轉角度r(mat).
    • 對bbox內部的點進行旋轉和平移.
    • 對bbox進行旋轉和平移.
  • 隨機水平翻轉
    • points水平翻轉
    • bboxes水平翻轉
  • 整體旋轉/平移/縮放
    • object旋轉, 縮放和平移
    • point旋轉, 縮放和平移
  • 對points進行shuffle: 打亂點云數(shù)據中points的順序。
Figure3是對上述前4種數(shù)據增強的可視化結果。

78e2ec70-e01e-11ec-ba43-dac502259ad0.jpg

二、網絡結構與訓練

790ffaf8-e01e-11ec-ba43-dac502259ad0.png

7944643c-e01e-11ec-ba43-dac502259ad0.png

2.2 GT值生成

Head的3個分支基于anchor分別預測了類別, bbox框(相對于anchor的偏移量和尺寸比)和旋轉角度的類別, 那么在訓練時, 如何得到每一個anchor對應的GT值呢 ? 相關代碼見model/anchors.py

79a33d0e-e01e-11ec-ba43-dac502259ad0.png

79daebe6-e01e-11ec-ba43-dac502259ad0.png

2.3 損失函數(shù)和訓練

現(xiàn)在知道了類別分類head, bbox回歸head和朝向分類head的預測值和GT值, 接下來介紹損失函數(shù)。相關代碼見loss/loss.py

7a01fcf4-e01e-11ec-ba43-dac502259ad0.png

總loss = 1.0*類別分類loss + 2.0*回歸loss + 2.0*朝向分類loss。模型訓練: 優(yōu)化器torch.optim.AdamW(), 學習率的調整torch.optim.lr_scheduler.OneCycleLR(); 模型共訓練160epoches。

三、單幀預測和可視化

基于Head的預測值和anchors, 如何得到最后的候選框呢 ? 相關代碼見model/pointpillars.py。一般經過以下幾個步驟:基于預測的類別分數(shù)的scores, 選出nms_pre (100) 個anchors: 每一個anchor具有3個scores, 分別對應屬于每一類的概率, 這里選擇這3個scores中最大值作為該anchor的score; 根據每個anchor的score降序排序, 選擇anchors。

7a278974-e01e-11ec-ba43-dac502259ad0.png

3. 逐類進行以下操作:
  • 過濾掉類別score 小于 score_thr (0.1) 的bboxes
  • 基于nms_thr (0.01), nms過濾掉重疊框:

7a9bf3a4-e01e-11ec-ba43-dac502259ad0.png

另外, 基于Open3d實現(xiàn)了在Lidar和Image里3d bboxes的可視化, 相關代碼見test.pyutils/vis_o3d.py。下圖是對驗證集中id=000134的數(shù)據進行可視化的結果。

7acf8ade-e01e-11ec-ba43-dac502259ad0.jpg

7af3dce0-e01e-11ec-ba43-dac502259ad0.jpg

四、模型評估

評估指標同2D檢測類似, 也是采用AP, 即Precison-Recall曲線下的面積。不同的是, 在3D中可以計算3D bbox, BEV bbox 和 (2D bbox, AOS)的AP。先說明一下AOS指標和Difficulty的定義。

7b52c138-e01e-11ec-ba43-dac502259ad0.png

Difficulty: 根據2d框的高度, 遮擋程度和截斷程度, 把bbox分為 difficulty=0, 1, 2 或 其它。相關定義具體查看代碼pre_process_kitti.py#L16-32。這里以3D bbox為例, 介紹類別=Car,difficulty=1AP的計算。注意, difficulty=1的數(shù)據實際上是指difficulty<=1的數(shù)據; 另外這里主要介紹大致步驟, 具體實現(xiàn)見evaluate.py。1.計算3D IoU (utils/process.pyiou3d(bboxes1, bboxes2)), 用于判定一個det bbox是否和gt bbox匹配上 (IoU > 0.7)。2.根據類別=Car,difficulty=1選擇gt bboxes和det bboxes。
  • gt bboxes: 選擇類別=Car,difficulty<=1的bboxes;
  • det bboxes: 選擇預測類別=Car的bboxes。
3. 確定P-R曲線中的點對(Pi, Ri)對應的score閾值。

7bed7ae8-e01e-11ec-ba43-dac502259ad0.png

7c33fc20-e01e-11ec-ba43-dac502259ad0.jpg

五、總結點云檢測, 相比于點云中其它任務(分類, 分割和配準等), 邏輯和代碼都更加復雜, 但這并不是體現(xiàn)在網絡結構上, 更多的是體現(xiàn)在數(shù)據增強, Anchors和GT生成, 單幀推理等。點云檢測, 相比于2D圖像檢測任務, 不同的是坐標系變換, 數(shù)據增強(碰撞檢測, 點是否在立方體判斷等), 斜長方體框IoU的計算等; 評估方式因為考慮到DontCare, difficulty等, 也更加復雜一些.初次接觸基于KITTI的3D檢測, 如有理解錯誤的, 還請指正; 內容太多了, 如有遺漏, 待以后補充。 審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 可視化
    +關注

    關注

    1

    文章

    1198

    瀏覽量

    20989
  • 數(shù)據集
    +關注

    關注

    4

    文章

    1208

    瀏覽量

    24749
  • 深度學習
    +關注

    關注

    73

    文章

    5510

    瀏覽量

    121338

原文標題:3D點云 (Lidar)檢測入門篇 : PointPillars PyTorch實現(xiàn)

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    湖北三維掃描儀3D掃描黑色反光件3D偏差比對尺寸檢測設備-CASAIM

    3D掃描
    中科院廣州電子
    發(fā)布于 :2024年09月26日 09:46:46

    3D激光線掃輪廓傳感器在汽車行業(yè)的汽車車縫檢測的應用

    在實際應用中,3D激光線掃傳感器可以集成到自動化檢測系統(tǒng)中,與機器人或自動化輸送系統(tǒng)配合,實現(xiàn)對汽車車縫的全面檢測。這些系統(tǒng)通常包括傳感器、控制軟件、數(shù)據處理單元和用戶界面,能夠自動分
    的頭像 發(fā)表于 09-14 09:00 ?535次閱讀
    <b class='flag-5'>3D</b>激光線掃輪廓傳感器在汽車行業(yè)的汽車車縫<b class='flag-5'>檢測</b>的應用

    透明塑料件噴粉3D掃描CAV全尺寸檢測逆向3D建模設計服務-CASAIM

    3D建模
    中科院廣州電子
    發(fā)布于 :2024年08月30日 10:04:53

    安寶特產品 安寶特3D Analyzer:智能的3D CAD高級分析工具

    安寶特3D Analyzer包含多種實用的3D CAD高級分析工具,包括自動比對模型、碰撞檢測、間隙檢查、壁厚檢查,以及拔模和底切分析,能夠有效提升3D CAD模型
    的頭像 發(fā)表于 08-07 10:13 ?398次閱讀
    安寶特產品  安寶特<b class='flag-5'>3D</b> Analyzer:智能的<b class='flag-5'>3D</b> CAD高級分析工具

    廣東3D掃描鈑金件外觀尺寸測量3D偏差檢測對比解決方案CASAIM

    3D掃描
    中科院廣州電子
    發(fā)布于 :2024年07月22日 16:13:45

    裸眼3D筆記本電腦——先進的光場裸眼3D技術

    隨著科技的不斷進步,裸眼3D技術已經不再是科幻電影中的幻想。如今,英倫科技裸眼3D筆記本電腦將這一前沿科技帶到了我們的日常生活中。無論你是專業(yè)的3D模型設計師,還是希望在視頻播放和模型展示中體驗逼真
    的頭像 發(fā)表于 07-16 10:04 ?598次閱讀

    蘇州吳中區(qū)多色PCB板元器件3D視覺檢測技術

    3D視覺檢測相較于2D視覺檢測,有其獨特的優(yōu)勢,不受產品表面對比度影響,精確檢出產品形狀,可以測出高度(厚度)、體積、平整度等。在實際應用中可以與2
    的頭像 發(fā)表于 06-14 15:02 ?437次閱讀
    蘇州吳中區(qū)多色PCB板元器件<b class='flag-5'>3D</b>視覺<b class='flag-5'>檢測</b>技術

    工業(yè)鏡頭在3D結構光檢測中實際應用

    工業(yè)鏡頭在3D結構光檢測中實際應用
    的頭像 發(fā)表于 06-01 08:34 ?316次閱讀
    工業(yè)鏡頭在<b class='flag-5'>3D</b>結構光<b class='flag-5'>檢測</b>中實際應用

    銀牛微電子:3D視覺感知、AI及SLAM為一體的3D空間計算芯

    有限責任公司研發(fā)副總裁周凡在論壇上介紹了“3D視覺感知、AI及SLAM為一體的3D空間計算芯片NU4500”。 ? 合肥銀牛微電子有限責任公司研發(fā)副總裁周凡 ? 銀牛微電子是一家專注3D
    的頭像 發(fā)表于 05-17 10:18 ?998次閱讀
    銀牛微電子:<b class='flag-5'>集</b><b class='flag-5'>3D</b>視覺感知、AI及SLAM為一體的<b class='flag-5'>3D</b>空間計算芯

    Cognex發(fā)布了In-Sight? L38 3D視覺系統(tǒng),為3D檢測設立新標準

    人工智能(AI)驅動的3D視覺系統(tǒng)為自動化制造提供快速部署和可靠的檢測功能。
    的頭像 發(fā)表于 04-15 09:04 ?484次閱讀

    大陸團的3D Flash激光雷達有何優(yōu)勢?

    在這一技術革命的前沿,激光雷達成為了不可或缺的一環(huán)。而在這其中,大陸團的3D Flash激光雷達引人矚目。
    發(fā)表于 04-11 10:28 ?377次閱讀
    大陸<b class='flag-5'>集</b>團的<b class='flag-5'>3D</b> Flash激光雷達有何優(yōu)勢?

    PLC如何應用于建筑的3D打印?

    MC Pi-Prime模塊化PLC采用EtherCat作為通信協(xié)議,有助于實現(xiàn)快速的反應時間和精確的定位控制,為自動化工程師提供靈活的擴展與集成,并縮短實施時間,助力建筑行業(yè)引入3D打印。
    的頭像 發(fā)表于 03-22 10:46 ?361次閱讀
    宏<b class='flag-5'>集</b>PLC如何應用于建筑的<b class='flag-5'>3D</b>打???

    3D動畫原理:電阻

    電阻3D
    深圳崧皓電子
    發(fā)布于 :2024年03月19日 06:49:19

    Nullmax提出多相機3D目標檢測新方法QAF2D

    今天上午,計算機視覺領域頂會CVPR公布了最終的論文接收結果,Nullmax感知部門的3D目標檢測研究《Enhancing 3D Object Detection with 2D De
    的頭像 發(fā)表于 02-27 16:38 ?1180次閱讀
    Nullmax提出多相機<b class='flag-5'>3D</b>目標<b class='flag-5'>檢測</b>新方法QAF2<b class='flag-5'>D</b>

    基于深度學習的方法在處理3D點云進行缺陷分類應用

    背景部分介紹了3D點云應用領域中公開可訪問的數(shù)據的重要性,這些數(shù)據對于分析和比較各種模型至關重要。研究人員專門設計了各種
    的頭像 發(fā)表于 02-22 16:16 ?1244次閱讀
    基于深度學習的方法在處理<b class='flag-5'>3D</b>點云進行缺陷分類應用