三维目标的具体内容是什么(【三维目标检测】CenterPoint(一))
CenterPoint是一种anchor free的三维目标检测算法模型 ,发表在CVPR 2021 ,论文名称为《Center-based 3D Object Detection and Tracking》 。其主要特点在于通过预测物体的中心点来进行目标检测和位置回归 ,而不需要预先产生大量候选框(anchor) 。因而 ,这种方法的后处理更加简洁 ,相邻目标可通过直接选择热力图中心点来确定最终目标 ,不需要非极大值抑制(NMS)操作来合并重叠的候选框 。但这也会带来一个缺点 ,CenterPoint无法区分同类型且中心点接近的目标 。CenterPoint可看作是二维CorneNet和CenterNet到三维空间的一个扩展 。因此 ,了解CornerNet和CenterNet模型有利于加深对CenterPoint的理解 。CenterPoint和CenterNet来源于同一个课题组的研究成果 。在nuScenes数据集的3D检测和跟踪任务中 ,单阶段的CenterPoint模型的NDS为65.5 ,AMOTA为63.8 。
1 源码与输入数据
接下来介绍的源码来源于mmdetection3d框架中的CenterPoint模型 。mmdetection3d安装和调试验证可参考本专栏之前的博客【mmdetection3d】mmdetection3d安装详细步骤_Coding的叶子的博客-CSDN博客_mmdetection3d安装 ,里面有详细介绍 。
数据采用的是nuScenes数据集 ,完整版和Mini版均可 。NuScenes数据集详细介绍请参考博文:nuScenes数据集详细介绍_Coding的叶子的博客-CSDN博客_nuscence数据集 。
2 mmdetection3d nuScenes数据处理与模型训练
mmdetection3d NuScenes处理过程请参考博文:mmdetection3d nuScenes (持续更新)_Coding的叶子的博客-CSDN博客。
完整版NuScenes处理命令为:
python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenesMini版NuScenes处理命令为:
python tools/create_data.py nuscenes --version v1.0-mini --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes在进行程序研究或调试时,建议直接采用Mini 版NuScenes ,下载速度较快且占用存储空间较小 。mmdetection3d NuScenes数据集预处理完成之后 ,运行下述命令即可开始CenterPoint训练 。
python tools/train.py configs/centerpoint/centerpoint_0075voxel_second_secfpn_4x8_cyclic_20e_nus.py3 CenterPoint简介
CenterPoint模型的整体结构如下图所示,由最初的一阶段模型扩展为了两阶段模型。第二阶段负责对第一阶段的检测结果进行微调修正 ,与基于候选框的两阶段目标检测思想基本一致 。这里重点介绍CenterPoint的第一个阶段 ,并且单阶段的CenterPoint可直接完成对三维目标的检测 。
图1 CenterPoint模型结构
CenterPoint模型的关键数据和路径包含如下几个方面 。带着这几个关键点来深入理解算法程序时效率会大大提高 。
3.1 输入数据
输入数据来源于nuScenes的顶部激光雷达点云数据 。点云数据包含了空间三维坐标x 、y 、z 、雷达反射强度和雷达线束序号 ,共5个维度 。线束序号取值范围0~31 ,即雷达的32线 。数据包括10个类别 ,分属6个大类 ,如下所示 。
[[car], [truck, construction_vehicle], [bus, trailer], [barrier], [motorcycle, bicycle], [pedestrian, traffic_cone]]3.2 真实标签
真实标签主要包括中心偏移(dx 、dy) 、高度(z) 、尺寸对数(log(size_x) 、log(size_y) 、log(size_z)) 、偏航角正弦值(sin(rot)) 、偏航角余弦值(cos(rot)) 、速度(vx 、vy)和热力图(heatmap) 。
每个热力图检测一个小类目标 ,即场景中相同类型目标的中心由同一个特征图来预测 。因此 ,在计算热力图的真实标签时 ,同一类型多目标的高斯热力图可能会出现重叠 ,重叠时保留最大值 。另一方面 ,在预测时 ,如果相邻的预测中心点其热力图峰值也相近,而后处理直接以最大取值作为最终预测结果 。因此 ,CenterPoint无法区分同类型且中心点接近的目标。
3.3 模型推理
CenterPoint模型推理过程如下:
输入点云通过体素化和稀疏卷积特征得到256x180x180特征图 ,尺度为180x180,特征维度为256 。 特征图通过Second主干网络和Neck拼接得到512x180x180维特征 。 由于输入数据被分为了6个大类 ,且每个热力图仅预测一类目标 ,因而模型预测任务也被分为6个Head。每个Head分别预测相应类别目标的位置偏移(reg ,2x180x180)、高度(height ,1x180x180) 、尺寸(dim ,3x180x180) 、偏航角(rot ,2x180x180)、速度(vel ,2x180x180) 、热力图(heatmap ,Kx180x180) 。其中 ,热力图维度中的K表示每个大类下的子类别个数 ,进步确定一个热力图只能预测一个类别 。模型推理预测的结果与真实标签一一对应 。热力图的损失函数为GaussianFocalLoss 。其它预测值的损失函数为L1Loss ,并且速度损失权重为0.2 ,其它权重均为1.0 。
4 模型结构与代码详解
模型详细结构及推理过程请参考下一篇博客:【三维目标检测】CenterPoint(二)_Coding的叶子的博客-CSDN博客 。
5【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_三维点云深度学习
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!