Deep Learning on 3D object detection paper 閱讀路徑


Posted by Po-Jen on 2021-06-07

前言

要追上一個研究領域的 SOTA(state-of-the-art),最快的方法就是直接去看最新的 paper。但問題是,最新的 paper 往往很難一次看懂,因為裡面常常會有,這個部分我們用到 paper A[1]、那個部分我們用到 paper B[2] 等等,然後就一句話帶過,而沒看過 paper A 跟 paper B 的你,當然就很難理解最新 paper 的細節。為了能通達最新 paper,勢必要往回追,弄懂以前的 paper。

這篇文章就是因此目的而生,盡可能地把要追上 Deep Learning on 3D object detection(這篇主要討論只從 lidar point cloud,得到物體的 3D bounding box)SOTA 的文章整理出來。本著能省時間就省的精神,我只列出比較具代表性的 work(前面也順便附上 paper 的年月份,讓大家比較容易比較時間序),有時候同時期的 work 可能有好幾篇,但可能只要看一篇,就能大概抓到那個時期主要的方法長怎樣(當然還是可能有遺漏,不過歡迎各位讀者自己再去多閱讀,如果你覺得有些文章一定要補,但我沒寫,也歡迎留言補充)。

這篇文章假設你有很多基礎是懂的,例如 CNN、RPN、Batch Normalization 等等,如果你不懂,可以自己再去搜尋一些資源來學習。另外,我下面的分類是用 Lidar + Image 跟 Lidar 來分,所以年份並不是完全從舊到新,而且我覺得根據個人喜好來閱讀也很重要,未必要從舊的看到新的,你在閱讀這些 paper 時,可以自己斟酌閱讀順序,最後有覺得把研究脈絡搞懂就行了。

重點 paper

(2017/04)PointNet & (2017/06)PointNet++

貢獻:

  1. PointNet 應該算是當時前幾個(或第一個)提出讓 DNN 可以直接吃 pointcloud 這種不規則狀的 data,然後直接做到 3D object classification,雖然無法直接做到 3D object detection,但這篇對後續 3D object detection 的研究影響頗深,於是還是放了進來,應該還是要讀一讀。
  2. PointNet++ 在 PointNet 的基礎上,添加了 hierarchical feature learning 跟 multi-scale grouping 來抗 scale 的變化。

關於這兩篇 paper 稍微更深入的介紹,可以參考延伸閱讀二。

(2017/11) VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection

貢獻:

  1. 利用創新的 VFE(Voxel Feature Extractor),解決了 hand-crafted feature engineering 的問題,因為 feature 是讓 network 自己去學習,所以 accuracy 進步很多。
  2. 只使用 lidar data 就超越當時所有 SOTA 在 KITTI dataset 上的表現。

(2018/10)SECOND: Sparsely Embedded Convolutional Detection

貢獻:

  1. VoxelNet 雖然是在 end-to-end learning 上最早的幾篇 paper 之一,但缺點就是 inference speed 太慢,大約 4.4 Hz(VoxelNet paper 裡有分析 inference 時各 module 花的時間,其他最花時間的就是 3D convolution),在實際自駕車的應用不夠快,所以 SECOND 改進了這點。
  2. 架構上 SECOND 沿用了 VoxelNet 的 VFE,同樣不需要手動 tune feature,主要改進之處在於把 VoxelNet 的 conv middle layers 改成 sparse conv layers。
  3. 提出了改進的 GPU-based rule generation algorithm,讓 SECOND 的 sparse conv layer 跑起來比當時已存在的做法快上不少。

(2019/05)PointPillars: Fast Encoders for Object Detection from Point Clouds

貢獻:

  1. 這篇的 related work 寫得很棒,會對 3D DL on object detection 的脈絡有清晰的認識。此脈絡為:
    • 3D CNN(非常耗時)
    • 將 point cloud 投影到 2D plane,或是把 pointcloud voxelize,然後 vertical column encode 成 hand-crafted、fixed-length feature,形成 pseudo image(這類的方法有 MV3D、AVOD、PIXOR、Complex YOLO)
    • Full end-to-end learning(不再使用 hand-crafted 的 feature),但仍依賴 3D conv layers(VoxelNet、SECOND)
  2. 既提出 end-to-end learning 的架構,又只用到 2D conv layers,使得 inference speed 來到 62 Hz。

(2019/07)STD: Sparse-to-Dense 3D Object Detector for Point Cloud

貢獻:

  1. 這篇也把研究發展脈絡寫得不錯清楚,放個截圖來展示一下:
  2. 有別於現存的兩種主流做法 - voxel-based(消耗運算資源少,但會失去一些 local details) 跟 point-based(辨識的表現較佳,但運算慢),提出了 point-based proposal generation 跟 PointsPool layer,綜合了兩種主流做法的優點,既有很好的辨識表現、運算速度又能達到 10 fps 以上。
  3. 提出的方法在 KITTI dataset 上面有極佳的表現,尤其在 hard 類別中碾壓群雄:

如果你已經把以上的 paper 都看完了,讚喔!雖然有點累,但你即將進到下一個階段!

順帶提一下,上面的很多 paper,未必所有的細節都要覺得很懂,畢竟沒有實作,要說完全懂我是覺得很難,但沒關係,很多細節如果你未來有需要,可以再回來看。這邊的重點是懂這些方法懂到你能理解發展脈絡、了解各 paper 方法的優缺點。

相對新的 SOTA paper

恭喜恭喜!看完上面那些 paper,想必你應該已經對這個領域常用的技巧和演進有些熟悉,這時來看一些最新的 work 就相當有趣啦!

(2020/02)3DSSD: Point-based 3D Single Stage Object Detector

貢獻:

  1. one-stage
  2. 比較結果很讚,可以再次驗證我們的 paper 閱讀路徑是否有涵蓋到不同類型的重要 work,裡面講到的 MV3D、AVOD、F-PointNet、AVOD-FPN、STD、Contfuse、VoxelNet、SECOND、PointPillars 我們上面都提到了。

(2020/03)Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud

貢獻:

  1. 是用 GNN 直接對 point cloud 做 3D object detection 的領頭羊,而且結果還能跟其他 SOTA 的方法相提並論。
  2. 提出的 Point-GNN 也算是一個 end-To-end 的架構,整體來說算是滿好理解的。
  3. 提出了相對應的 box merging 跟 scoring 方法,而且用 ablation study 驗證其優於一般的 NMS。
  4. 有提供 source code,所以想要深入細節完全弄懂的人,可以自己去跑跑看、改 code 確保理解。

(2020/06)AFDet: Anchor Free One Stage 3D Object Detection

貢獻:

  1. 捨棄從 Faster-RCNN、SSD 以來就很常用的 anchor box,採用 heat map,也就省下了 anchor-based methods 需要做的 NMS。

(2020/06)1st Place Solution for Waymo Open Dataset Challenge -- 3D Detection and Domain Adaptation

貢獻:

  1. 這篇用到很多技巧,雖然不太可能在實際的自駕車上面使用,不過裡面的技巧還是可以當作參考,順便看看自己還有沒有哪些知識是不懂的。

總結

這篇文章集合了 Deep Learning on 3D object detection 的一些 seminal work,總結了他們的特點跟演進過程,有興趣的讀者可以跟隨這條 paper reading path 追上 SOTA, 然後從這邊開始擴展你的知識體系。我推薦大家利用 connectedpapers.com,只要輸入一篇 paper,就能看到相關重要 paper 的視覺化呈現,大推。下面是一個範例:

延伸閱讀

  1. A survey on 3d object detection methods for autonomous driving applications
  2. 3D Deep Learning 入門(一)- Deep learning on regular structures
  3. 3D Deep Learning 入門(二)- Deep learning on point cloud

#Deep Learning #3D Object Detection









Related Posts

C語言-loop應用 & 常用函式

C語言-loop應用 & 常用函式

HTTP API 串接

HTTP API 串接

CSS - 裝潢你的網站

CSS - 裝潢你的網站




Newsletter




Comments



archanarathod561 Jun 08, 2021

This is an awesome blog for the people who are really seeking information for this technology.
Power BI Training in Hyderabad
Power BI Training in Ameerpet