自动驾驶感知——激光雷达物体检测算法
文章目錄
- 1. 基于激光雷達的物體檢測
- 1.1 物體檢測的輸入與輸出
- 1.2 點云數據庫
- 1.3 激光雷達物體檢測算法
- 1.3.1 點視圖
- 1.3.1.1 PointNet
- 1.3.1.2 PointNet++
- 1.3.1.3 Point-RCNN
- 1.3.1.4 3D-SSD
- 1.3.1.5 總結和對比
- 1.3.2 俯視圖
- 1.3.2.1 VoxelNet
- 1.3.2.2 SECOND
- 1.3.2.3 PIXOR
- 1.3.2.4 AFDet
- 1.3.2.5 總結與對比
- 1.3.3 前視圖
- 1.3.3.1 LaserNet
- 1.3.3.2 RangeDet
- 1.3.4 多視圖融合 (俯視圖+點視圖)
- 1.3.4.1 PointPillar
- 1.3.4.2 SIENet
- 1.3.4.3 PV-CNN
- 1.3.5 多視圖融合(俯視圖+前視圖)
- 1.3.5.1 MV3D
- 1.3.5.2 RSN
- 聲明
1. 基于激光雷達的物體檢測
1.1 物體檢測的輸入與輸出
輸入
? 點:X, Y, Z和反射強度R
? 點云:多個點的集合(無序的,非結構化的數據)
輸出
? 目標的類別和置信度
? 目標的邊框(BoundingBox)
中心點3D坐標,長寬高,旋轉角度
?目標的其它信息
速度,加速度等
算法
? 點云表示:點視圖,俯視圖,前視圖
1.2 點云數據庫
????如下表所示:常見的點云數據庫由KITTI、NuScenes、WOD等數據庫。
1.3 激光雷達物體檢測算法
????為了直觀,先將激光雷達物體檢測的一些常用算法列出。
| 點視圖 | PointNet/PointNet++,Point-RCNN,3D-SSD |
| 俯視圖 | VoxelNet,SECOND,PIXOR,AFDet |
| 前視圖 | LaserNet,RangeDet |
| 多視圖融合 (俯視圖+點視圖) | PointPillar,SIENet,PV-CNN |
| 多視圖融合(俯視圖+前視圖) | MV3D,RSN |
1.3.1 點視圖
1.3.1.1 PointNet
Qi et al., Pointnet: Deep learning on point sets for 3d classification and segmentation, 2017.
論文地址:https://arxiv.org/pdf/1612.00593.pdf
????PointNet有以下的用法:
-
識別/分類(Classification):對于給定的一幀點云,判斷該 點云中物體所屬的種類。
-
分割(segmentation):對于給定的一幀點云,將點云分成 若干個特定的、具有獨特性質的區域。
核心思路:點云特征提取
- MLP(多個全連接層)提取點特征:n個點,特征由3維提升到1024維
- MaxPooling得到全局特征:1024維
端對端學習,對點云進行分類/語義分割
物體檢測:Clustering得到候選 + PointNet分類
1.3.1.2 PointNet++
Qi et al., Pointnet++: Deep hierarchical feature learning on point sets in a metric space, 2017.
論文地址:https://papers.nips.cc/paper/2017/file/d8bf84be3800d12f74d8b05e9b89836f-Paper.pdf
在物體檢測方向進行擴展:Clustering+PointNet
- 用聚類的方式來產生多個候選點集,每個候選點集采用PointNet來提取點的特征
- 上述過程重復多次:上一層的點集經過全局特征提取后看作下一層的點(Set Abstraction,SA)
- 點特征具有較大的感受野,包含周圍環境的上下文信息
PointNet和PointNet++中存在的問題
- 無法利用視覺領域成熟的檢測框架,比如Faster-RCNN,YOLO等
- Clustering部分的計算復雜度較高,而且難以并行處理
- 兩個改進方法:Point-RCNN和3D-SSD
1.3.1.3 Point-RCNN
Shi et al., PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud, 2018
論文地址:https://arxiv.org/pdf/1812.04244.pdf
????PointRCNN是一個兩步式目標檢測網絡,該網絡第一步進行前景點分割,找出點云中所有的目標點;第二步利用前景點回歸目標的準確邊界框。該網絡同時兼顧了檢測的準確(AP@0.7=75.6%)與實時性(10FPS)。
點處理 + Faster RCNN
- PointNet++提取點特征,同時進行前景分割,以區分物體點和背景點
- 每個前景點生成一個3D候選框(PointNet++采用聚類生成候選)
- 對每個候選框內的點進行Pooling,最后輸出候選框所屬的類別,修正其位置和大小
運行速度瓶頸++中的Feature Propagation
- PointNet++需要將點集特征映射回原始點云(Feature Propagation), 因為聚類生成的點集無法很好的覆蓋所有物體
- 全局搜索屬于每個物體候選的點
1.3.1.4 3D-SSD
Yang et al., 3dssd: Point-based 3d single stage object detector, 2020
論文地址:https://arxiv.org/pdf/2002.10187.pdf
提高聚類質量
- 同時考慮點與點之間在幾何和特征空間的相似度
- 聚類的輸出可以直接用來生成物體候選
避免重復計算
- 聚類算法輸出每個cluster的中心和鄰域點
- 避免全局搜索物體候選和點之間的匹配關系
1.3.1.5 總結和對比
? PointNet++的主要問題在于運行速度太慢
? 速度的瓶頸在于聚類過程中需要將點集特征映射回原始點云
? Point RCNN和3D-SSD的改進主要在于提高運行速度
1.3.2 俯視圖
1.3.2.1 VoxelNet
Zhou and Tuzel, Voxelnet: End-to-end learning for point cloud based 3d object detection, 2018
論文地址:https://arxiv.org/pdf/1711.06396.pdf
核心點:
- 特征學習網絡(Feature Learning Network)
- 3D卷積網絡 (Convolutional Middle Layers)
- 區域候選網絡(Region Proposal Network)
VoxelNet中存在的問題
? 數據表示低效,大量空白區域
- KITTI數據庫一般生成5K-8K個Voxel,只有0.5%的Voxel是非空的
- 改進方法:SECOND(采用稀疏卷積)
? 三維卷積計算量巨大
- 改進方法:PIXOR(3D網格壓縮到2D)
1.3.2.2 SECOND
Yan et al., Second: Sparsely embedded convolutional detection, Sensors, 2018.
論文地址:https://www.mdpi.com/1424-8220/18/10/3337
稀疏卷積避免無效計算
- 中間層采用稀疏卷積
- 其余模塊與VoxelNet類似
1.3.2.3 PIXOR
Yang et al., Pixor: Real-time 3d object detection from point clouds, CVPR, 2018
論文地址:https://arxiv.org/pdf/1902.06326.pdf
PIXOR (ORiented 3D object detection from PIXel-wise neural network predictions)
? 手工設計高度維度的特征
? 3D->2D:高度維度變成特征通道
? 可以用2D卷積來提取特征
- Occupancy:L x W x H(H維度作為特征通道)
- Intensity:L x W x 1(H方向壓縮為1維)
- In totalLxWx (H+1)
1.3.2.4 AFDet
Ge et al., Real-Time Anchor-Free Single-Stage 3D Detection with IoU-Awareness, 2021
論文地址:https://arxiv.org/pdf/2006.12671.pdf
? 單階段,無Anchor
? Waymo 3D物體檢測 2021年度的獲勝算法
? 算法方面的改進
- 輕量級的點云特征提取
- 擴大神經網絡的感受野
- 額外的預測分支
1.3.2.5 總結與對比
? 俯視圖
- 輸入結構化數據,網絡結構簡單
- 對量化參數敏感:粗網格導致較大的信息損失,細網格導致較大的計算量 和內存使用量
? 點視圖
- 沒有量化損失,數據比較緊致
- 輸入非結構化數據,網絡結構復雜,并行處理困難,提取鄰域特征困難
1.3.3 前視圖
前視圖的特點
? 優點
- 表示更為緊致,而且沒有量化損失
- 每個像素上理論上都會有數據
? 問題
- 不同距離的物體尺度差別很大
- 2D特征與3D物體信息存在不一致性
1.3.3.1 LaserNet
Meyer et al., LaserNet: An Efficient Probabilistic 3D Object Detector for Autonomous Driving, 2019.
論文地址:https://arxiv.org/pdf/1903.08701.pdf
? 輸入數據為多通道的前視圖圖像
? 卷積和下采樣提取多尺度特征
? 每個像素都預測物體邊框的分布(均值和方差)
? MeanShift聚類+NMS得到最終的輸出
1.3.3.2 RangeDet
Fan et al., RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection, 2021
論文地址:https://arxiv.org/pdf/2103.10039.pdf
核心點:
? Meta-Kernel Convolution
? Range Conditioned Pyramid
1.3.4 多視圖融合 (俯視圖+點視圖)
? 基本思路
- 在較低分辨率的Voxel上提取鄰域特征或者生成物體候選
- 在原始點云上提取點特征,忽略空白區域,保持空間分辨率
- Voxel特征與點特征結合
? 代表性方法
- PointPillar
- PV-CNN
- SIENet
1.3.4.1 PointPillar
Lang et al., PointPillars: Fast Encoders for Object Detection from Point Clouds, 2019.
論文地址:https://openaccess.thecvf.com/content_CVPR_2019/papers/Lang_PointPillars_Fast_Encoders_for_Object_Detection_From_Point_Clouds_CVPR_2019_paper.pdf
? 特征: PointNet提取點特征(點視圖),然后進行Voxel量化(俯視圖)
? 主干:Feature Pyramid Network
? 檢測頭:SSD
1.3.4.2 SIENet
Li et al., SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud, 2021.
論文地址:https://arxiv.org/pdf/2103.15396.pdf
? 融合策略與PV-CNN相似
? 解決遠處物體點云相對稀疏的問題
- 采用了一個附加分支,將物體候選框中的點集進行擴展
1.3.4.3 PV-CNN
Liu et al., Point-voxel CNN for efficient 3d deep learning, 2019.
論文地址:https://arxiv.org/pdf/1907.03739.pdf
?Voxel分支:低分辨率的Voxel提取鄰域特征,然后映射回每個點上
?Point分支:利用MLP來提取點特征,沒有量化損失,也避免空白區域的計算
?兩個分支的特征合并用于后續的物體檢測
1.3.5 多視圖融合(俯視圖+前視圖)
? 基本思路
- 融合俯視圖和前視圖下的特征
- 盡量避免空白區域的無效計算
? 代表性方法
- MV3D
- Range Sparse Net (RSN)
1.3.5.1 MV3D
Chen, et al., Multi-view 3d object detection network for autonomous driving, 2017
論文地址:https://openaccess.thecvf.com/content_cvpr_2017/papers/Chen_Multi-View_3D_Object_CVPR_2017_paper.pdf
? BEV網格生成3D物體候選,再轉換為不同視圖下的候選
? 不同候選中進行ROI-Pooling
? 在候選層級上融合不同視圖的特征
1.3.5.2 RSN
Sun, et al., RSN: Range Sparse Net for Efficient, Accurate LiDAR 3D Object Detection, 2021.
論文地址:https://arxiv.org/pdf/2106.13365.pdf
兩階段檢測器,目的在于提高檢測距離的可擴展性
- 階段1:前視圖上進行前景分割,過濾背景點
- 階段2:前景點量化為Voxel,稀疏卷積提取特征,稀疏的Grid上檢測物體
- 稠密的前視圖+稀疏的俯視圖
聲明
本人所有文章僅作為自己的學習記錄,若有侵權,聯系立刪。本系列文章主要參考了清華大學、北京理工大學、哈爾濱工業大學、深藍學院、百度Apollo等相關課程。
總結
以上是生活随笔為你收集整理的自动驾驶感知——激光雷达物体检测算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis分区/分片详解
- 下一篇: python开发软件-七种流行的pyth