自动驾驶感知——激光雷达物体检测算法
文章目錄
- 1. 基于激光雷達(dá)的物體檢測(cè)
- 1.1 物體檢測(cè)的輸入與輸出
- 1.2 點(diǎn)云數(shù)據(jù)庫(kù)
- 1.3 激光雷達(dá)物體檢測(cè)算法
- 1.3.1 點(diǎn)視圖
- 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 總結(jié)和對(duì)比
- 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 總結(jié)與對(duì)比
- 1.3.3 前視圖
- 1.3.3.1 LaserNet
- 1.3.3.2 RangeDet
- 1.3.4 多視圖融合 (俯視圖+點(diǎn)視圖)
- 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. 基于激光雷達(dá)的物體檢測(cè)
1.1 物體檢測(cè)的輸入與輸出
輸入
? 點(diǎn):X, Y, Z和反射強(qiáng)度R
? 點(diǎn)云:多個(gè)點(diǎn)的集合(無(wú)序的,非結(jié)構(gòu)化的數(shù)據(jù))
輸出
? 目標(biāo)的類(lèi)別和置信度
? 目標(biāo)的邊框(BoundingBox)
中心點(diǎn)3D坐標(biāo),長(zhǎng)寬高,旋轉(zhuǎn)角度
?目標(biāo)的其它信息
速度,加速度等
算法
? 點(diǎn)云表示:點(diǎn)視圖,俯視圖,前視圖
1.2 點(diǎn)云數(shù)據(jù)庫(kù)
????如下表所示:常見(jiàn)的點(diǎn)云數(shù)據(jù)庫(kù)由KITTI、NuScenes、WOD等數(shù)據(jù)庫(kù)。
1.3 激光雷達(dá)物體檢測(cè)算法
????為了直觀,先將激光雷達(dá)物體檢測(cè)的一些常用算法列出。
| 點(diǎn)視圖 | PointNet/PointNet++,Point-RCNN,3D-SSD |
| 俯視圖 | VoxelNet,SECOND,PIXOR,AFDet |
| 前視圖 | LaserNet,RangeDet |
| 多視圖融合 (俯視圖+點(diǎn)視圖) | PointPillar,SIENet,PV-CNN |
| 多視圖融合(俯視圖+前視圖) | MV3D,RSN |
1.3.1 點(diǎn)視圖
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有以下的用法:
-
識(shí)別/分類(lèi)(Classification):對(duì)于給定的一幀點(diǎn)云,判斷該 點(diǎn)云中物體所屬的種類(lèi)。
-
分割(segmentation):對(duì)于給定的一幀點(diǎn)云,將點(diǎn)云分成 若干個(gè)特定的、具有獨(dú)特性質(zhì)的區(qū)域。
核心思路:點(diǎn)云特征提取
- MLP(多個(gè)全連接層)提取點(diǎn)特征:n個(gè)點(diǎn),特征由3維提升到1024維
- MaxPooling得到全局特征:1024維
端對(duì)端學(xué)習(xí),對(duì)點(diǎn)云進(jìn)行分類(lèi)/語(yǔ)義分割
物體檢測(cè):Clustering得到候選 + PointNet分類(lèi)
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
在物體檢測(cè)方向進(jìn)行擴(kuò)展:Clustering+PointNet
- 用聚類(lèi)的方式來(lái)產(chǎn)生多個(gè)候選點(diǎn)集,每個(gè)候選點(diǎn)集采用PointNet來(lái)提取點(diǎn)的特征
- 上述過(guò)程重復(fù)多次:上一層的點(diǎn)集經(jīng)過(guò)全局特征提取后看作下一層的點(diǎn)(Set Abstraction,SA)
- 點(diǎn)特征具有較大的感受野,包含周?chē)h(huán)境的上下文信息
PointNet和PointNet++中存在的問(wèn)題
- 無(wú)法利用視覺(jué)領(lǐng)域成熟的檢測(cè)框架,比如Faster-RCNN,YOLO等
- Clustering部分的計(jì)算復(fù)雜度較高,而且難以并行處理
- 兩個(gè)改進(jìn)方法: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是一個(gè)兩步式目標(biāo)檢測(cè)網(wǎng)絡(luò),該網(wǎng)絡(luò)第一步進(jìn)行前景點(diǎn)分割,找出點(diǎn)云中所有的目標(biāo)點(diǎn);第二步利用前景點(diǎn)回歸目標(biāo)的準(zhǔn)確邊界框。該網(wǎng)絡(luò)同時(shí)兼顧了檢測(cè)的準(zhǔn)確(AP@0.7=75.6%)與實(shí)時(shí)性(10FPS)。
點(diǎn)處理 + Faster RCNN
- PointNet++提取點(diǎn)特征,同時(shí)進(jìn)行前景分割,以區(qū)分物體點(diǎn)和背景點(diǎn)
- 每個(gè)前景點(diǎn)生成一個(gè)3D候選框(PointNet++采用聚類(lèi)生成候選)
- 對(duì)每個(gè)候選框內(nèi)的點(diǎn)進(jìn)行Pooling,最后輸出候選框所屬的類(lèi)別,修正其位置和大小
運(yùn)行速度瓶頸++中的Feature Propagation
- PointNet++需要將點(diǎn)集特征映射回原始點(diǎn)云(Feature Propagation), 因?yàn)榫垲?lèi)生成的點(diǎn)集無(wú)法很好的覆蓋所有物體
- 全局搜索屬于每個(gè)物體候選的點(diǎn)
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
提高聚類(lèi)質(zhì)量
- 同時(shí)考慮點(diǎn)與點(diǎn)之間在幾何和特征空間的相似度
- 聚類(lèi)的輸出可以直接用來(lái)生成物體候選
避免重復(fù)計(jì)算
- 聚類(lèi)算法輸出每個(gè)cluster的中心和鄰域點(diǎn)
- 避免全局搜索物體候選和點(diǎn)之間的匹配關(guān)系
1.3.1.5 總結(jié)和對(duì)比
? PointNet++的主要問(wèn)題在于運(yùn)行速度太慢
? 速度的瓶頸在于聚類(lèi)過(guò)程中需要將點(diǎn)集特征映射回原始點(diǎn)云
? Point RCNN和3D-SSD的改進(jìn)主要在于提高運(yùn)行速度
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
核心點(diǎn):
- 特征學(xué)習(xí)網(wǎng)絡(luò)(Feature Learning Network)
- 3D卷積網(wǎng)絡(luò) (Convolutional Middle Layers)
- 區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network)
VoxelNet中存在的問(wèn)題
? 數(shù)據(jù)表示低效,大量空白區(qū)域
- KITTI數(shù)據(jù)庫(kù)一般生成5K-8K個(gè)Voxel,只有0.5%的Voxel是非空的
- 改進(jìn)方法:SECOND(采用稀疏卷積)
? 三維卷積計(jì)算量巨大
- 改進(jìn)方法:PIXOR(3D網(wǎng)格壓縮到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
稀疏卷積避免無(wú)效計(jì)算
- 中間層采用稀疏卷積
- 其余模塊與VoxelNet類(lèi)似
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)
? 手工設(shè)計(jì)高度維度的特征
? 3D->2D:高度維度變成特征通道
? 可以用2D卷積來(lái)提取特征
- 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
? 單階段,無(wú)Anchor
? Waymo 3D物體檢測(cè) 2021年度的獲勝算法
? 算法方面的改進(jìn)
- 輕量級(jí)的點(diǎn)云特征提取
- 擴(kuò)大神經(jīng)網(wǎng)絡(luò)的感受野
- 額外的預(yù)測(cè)分支
1.3.2.5 總結(jié)與對(duì)比
? 俯視圖
- 輸入結(jié)構(gòu)化數(shù)據(jù),網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單
- 對(duì)量化參數(shù)敏感:粗網(wǎng)格導(dǎo)致較大的信息損失,細(xì)網(wǎng)格導(dǎo)致較大的計(jì)算量 和內(nèi)存使用量
? 點(diǎn)視圖
- 沒(méi)有量化損失,數(shù)據(jù)比較緊致
- 輸入非結(jié)構(gòu)化數(shù)據(jù),網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,并行處理困難,提取鄰域特征困難
1.3.3 前視圖
前視圖的特點(diǎn)
? 優(yōu)點(diǎn)
- 表示更為緊致,而且沒(méi)有量化損失
- 每個(gè)像素上理論上都會(huì)有數(shù)據(jù)
? 問(wèn)題
- 不同距離的物體尺度差別很大
- 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
? 輸入數(shù)據(jù)為多通道的前視圖圖像
? 卷積和下采樣提取多尺度特征
? 每個(gè)像素都預(yù)測(cè)物體邊框的分布(均值和方差)
? MeanShift聚類(lèi)+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
核心點(diǎn):
? Meta-Kernel Convolution
? Range Conditioned Pyramid
1.3.4 多視圖融合 (俯視圖+點(diǎn)視圖)
? 基本思路
- 在較低分辨率的Voxel上提取鄰域特征或者生成物體候選
- 在原始點(diǎn)云上提取點(diǎn)特征,忽略空白區(qū)域,保持空間分辨率
- Voxel特征與點(diǎn)特征結(jié)合
? 代表性方法
- 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提取點(diǎn)特征(點(diǎn)視圖),然后進(jìn)行Voxel量化(俯視圖)
? 主干:Feature Pyramid Network
? 檢測(cè)頭: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相似
? 解決遠(yuǎn)處物體點(diǎn)云相對(duì)稀疏的問(wèn)題
- 采用了一個(gè)附加分支,將物體候選框中的點(diǎn)集進(jìn)行擴(kuò)展
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提取鄰域特征,然后映射回每個(gè)點(diǎn)上
?Point分支:利用MLP來(lái)提取點(diǎn)特征,沒(méi)有量化損失,也避免空白區(qū)域的計(jì)算
?兩個(gè)分支的特征合并用于后續(xù)的物體檢測(cè)
1.3.5 多視圖融合(俯視圖+前視圖)
? 基本思路
- 融合俯視圖和前視圖下的特征
- 盡量避免空白區(qū)域的無(wú)效計(jì)算
? 代表性方法
- 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網(wǎng)格生成3D物體候選,再轉(zhuǎn)換為不同視圖下的候選
? 不同候選中進(jìn)行ROI-Pooling
? 在候選層級(jí)上融合不同視圖的特征
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
兩階段檢測(cè)器,目的在于提高檢測(cè)距離的可擴(kuò)展性
- 階段1:前視圖上進(jìn)行前景分割,過(guò)濾背景點(diǎn)
- 階段2:前景點(diǎn)量化為Voxel,稀疏卷積提取特征,稀疏的Grid上檢測(cè)物體
- 稠密的前視圖+稀疏的俯視圖
聲明
本人所有文章僅作為自己的學(xué)習(xí)記錄,若有侵權(quán),聯(lián)系立刪。本系列文章主要參考了清華大學(xué)、北京理工大學(xué)、哈爾濱工業(yè)大學(xué)、深藍(lán)學(xué)院、百度Apollo等相關(guān)課程。
總結(jié)
以上是生活随笔為你收集整理的自动驾驶感知——激光雷达物体检测算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redis分区/分片详解
- 下一篇: sql 2005 用户 sa 登录失败一