VoteNet是用于点云三维目标检测模型算法,发表在ICCV 2019《Deep Hough Voting for 3D Object Detection in Point Clouds》,论文地址为“https://arxiv.org/abs/1904.09664”。VoteNet核心思想在于通过霍夫投票的方法实现了端到端3D对象检测网络,属于anchor free的目标检测方式。传统基于anchor的三维目标检测方法会将三维点云投影到bev视图后采用二维目标检测的方式来生成目标候选框。这种方式很有可能会丢失物体细节。VoteNet分别在SUN RGB-D和ScanNet数据集上进行了实验,并且取得了不错的结果。截至目前2022-11-30,VoteNet在SUN RGB-D数据集上的目标检测性能排在了11位,如下图所示。数据和图片来源于paperwithcode官网,地址为“https://paperswithcode.com/sota/3d-object-detection-on-sun-rgbd-val”。
1 源码与数据输入
源码采用的是mmdetection3d框架中的VoteNet模型。mmdetection3d安装和调试验证可参考本博客之前的专栏【mmdetection3d】mmdetection3d安装详细步骤_Coding的叶子的博客-CSDN博客_mmdetection3d安装,里面有详细介绍。
mmdetection3d VoteNet支持ScaNet和SUN RGB-D两种数据集,这里以SUN RGB-D为例。数据详细预处理过程请参考mmdetection3d SUN RGB-D数据集预处理_Coding的叶子的博客-CSDN博客。
2 mmdetection3d SUN RGB-D数据处理与模型训练
SUN RGB-D数据集预处理命令如下:
python extract_split.py
python extract_data_v2.py
python tools/create_data.py sunrgbd --root-path ./data/sunrgbd --out-dir ./data/sunrgbd --extra-tag sunrgbd
模型训练命令为:
python tools/train.py configs/votenet/votenet_16x8_sunrgbd-3d-10class.py
3 VoteNet简介
VoteNet核心思想在于通过霍夫投票的方法实现了端到端3D对象检测网络,属于anchor free的目标检测方式。传统基于anchor的三维目标检测方法会将三维点云投影到bev视图后采用二维目标检测的方式来生成目标候选框。这种方式很有可能会丢失物体细节。
VoteNet模型结构如下图所示。该模型大量用到了PointNet结构。在主干网络中,VoteNet利用PointNet采样分组和特征上采样得到了用于投票的种子点(seed)及其特征。种子点类比求解霍夫直线时的定点,也就是具备投票权的点。种子点投票结果为Votes,包含投票目标中心点和特征。VoteNet接着利用PointNet采样分组模块对投票点进行聚合,用聚合后的点分别预测目标有无、类别和位置。聚合的作用可类比霍夫直线参数空间中的直线交点,即聚合空间中的点投票给了同一个目标。
模型输入数据为SUN RGB-D,共预测10个类别目标,且输入点云维度为Nx4,N=20000。
4 模型结构与代码详解
模型详细结构及推理过程请参考下一篇博客:预计本周内更新。