3D目标检测系列的前4篇已经把训练的方法介绍完整了,接下来会一步一步准备训练数据,也就是点云的处理。
我们知道,目前点云的公开数据集主要是自动驾驶领域,模型的设计及训练都是集中在此类数据,同时标注工具也都是为此设计。该类数据的特点是有道路平面但无顶部(为避免引起误解,这里举个例子说明,比如室内的点云是有天花板的)、同时lidar视角基本是与地面平行的,无旋转。因此我们标注的时候基本都是先从俯视图开始定位bounding box的中心位置,读者可以自行体会有旋转时标注的困难程度。
学习资源地址 https://gitee.com/studywangke/zdjs
本节通过一个室内点云的变换来介绍上述处理过程。
点云的原始状态
如上图,原始的点云图是延Y轴(绿色)倾斜的,而且是带有屋顶的。
点云旋转
这里我们想人为调整旋转角度,因此使用欧拉角(RPY:对应的旋转顺序为ZYX)比较方便。观察上图可知,点云需要延Y轴逆时针旋转20几度。详见代码:
#include <ros/ros.h>
#include <pcl_ro