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

跨出平面設計,闖蕩前端的轉職之路

跨出平面設計,闖蕩前端的轉職之路

[程式挑戰] 全域變數和區域變數可視範圍 Variable Scope

[程式挑戰] 全域變數和區域變數可視範圍 Variable Scope

電腦科學概論:演算法概要

電腦科學概論:演算法概要




Newsletter




Comments