3D 目标(pointpillars)识别方案
对车辆进行3D的目标识别,经过调研之后,发现autoware 和 apollo等平台均采用pointpillars算法。因此便尝试单纯使用激光雷达数据进行识别。
效果如下视频:
基于PointPillars的3D目标检测
方案实施步骤:
- 理解pointpillars算法模型,并复现。
- 了解自动驾驶数据集KITTI的格式。
- 采集数据并标注。
- 训练与部署。
一、理解pointpillars算法模型
pointpillars的论文解读可以看这篇论文解析。
二、了解KITTI数据的格式
因为pointpillars输入的数据格式为KITTI或者nuScenes。KITTI数据格式较为简单,因此需要采集数据并把数据标注为KITTI的数据格式。具体可以看这篇博文。
三、采集数据并标注
采集数据分为下列几个步骤:
- 工业相机的选型
- 雷达与相机的标定
- 采集数据
- 数据标注
(1). 工业相机的选型
尽管pointpillars算法是纯激光雷达数据进行训练和推理,但是由于KITTI数据是在相机坐标系下的,且由于所使用的激光雷达为16线,点数比较稀疏,因此图像数据可以辅助点云的标注。但工业相机的选型,较为陌生。因此本人就直接参考了KITTI相机的参数,进行购买。而对于购买和使用海康工业相机,可以参考这篇博文。
(2). 雷达与相机的标定
雷达与相机的标定,主要是用于确定相机的内参和相对于激光雷达的外参。本方案采用的是开源的autoware标定方法。具体可以参考这篇博文。
(3). 采集数据
经过上述两个步骤,可以准备采集数据了。本文通过ROS采集相机数据和激光雷达数据。具体可以参考这篇博文。
(4). 数据标注
然后通过开源的点云标注工具,进行标注,具体可以看这篇博客。
四、训练与部署
对于标注好的数据,我们可以得到下列文件夹,放入OpenPCDet中,对其进行训练和部署。