论文部分内容阅读
摘 要:针对自动驾驶场景中的点云数据标注问题,设计了一款基于目标跟踪算法的标注软件。该软件除了很好的完成点云标注功能,还实现了对相應图片的映射标注,使用的目标跟踪算法极大的提高了标注效率。本文主要从以上三个方面介绍软件的设计思路,最后介绍软件的标注流程。
关键词:点云标注;目标跟踪;软件设计
Abstract:Aiming at the problem of point cloud data labeling in autonomous driving scenarios,a labeling software based on target tracking algorithm is designed.In addition to the good completion of the point cloud annotation function,the software also realizes the mapping annotation of the corresponding pictures.The target tracking algorithm used greatly improves the annotation efficiency.This article mainly introduces the software design ideas from the above three aspects,and finally introduces the software annotation process.
Key words:Point cloud annotation;Target tracking algorithm;Software design
随着深度学习在物体识别领域的快速发展,其在自动驾驶中发挥着越来越重要的作用。而在深度学习里,标注的数据质量影响着模型的训练效果。在自动驾驶领域中,对数据标注有了更高的要求,希望同时可以标注点云和图像,同时拥有更高的标注效率。
本文在点云库的基础上,引入了目标跟踪算法,以此来提高标注效率,同时还添加了点云到图像的映射功能,完成标注点云的同时也完成了图片的标注。
1 点云的标注
点云中3维bounding box的绘制采用了PCL库中的方法实现,选定点云集合,利用沿坐标轴包围盒算法(AABB)计算边界,按照边界绘制框。由于点云密集分布这一特点,有可能会无差别的将一
些误选的点云也包含在集合中,增加了需要修正的次数。加入自动修正机制,对手动选取的点云集合进行处理,去除杂点,提高标注的准确度。
修正功能的实现是使用栅格法[1]对选中的点云集合构建俯视图,即投影到平面的2D网格,网格的大小由点云的大小决定。建立网格之后,可以得到一些统计量。例如:网格中的点云个数、点云高度、点云序号等等,基于以上的统计量,寻找每个格子领域的连通区域,连通区域可以视为是物体,从而达到去除杂点的效果。
2 点云标注在图像的映射
2.1 映射关系
在装配了一台Velodyne激光雷达扫描仪和4台相机的实验车辆在采集原始数据的过程中[2],主要存在三类坐标系,分别是相机坐标系、Velodyne坐标系和以车辆中心为坐标原点的笛卡尔坐标系。点云坐标到图像坐标需要一系列的转换操作,例如3D点 投影到经过矫正的第i个相机图像上点 的表示为:
由上述式子可知,各坐标间的转换关系是线性的,这也就大大减少我们计算的工作量,遍历所有的点,记录下X、Y、Z方向的最大值和最小值,即为边界范围。对这六个边界值进行映射,得到图像的标注边框。
3 目标跟踪算法
粒子滤波算法[3]广泛应用在目标跟踪中,主要分为四个阶段。第一阶段是提取跟踪目标特征,第二阶段为搜索阶段,第三阶段为决策阶段,第四为重采样阶段。粒子滤波的核心思想就是随机采样和重要性重采样,在随机撒粒子后,根据特征相似度计算每个粒子的重要性,然后在重要的地方多撒粒子,不重要的地方少撒粒子。如此的循环往复,即完成了目标的动态追踪。
传统的粒子滤波算法是采用粒子随机分布采样,基于KLD采样的自适应滤波算法[4]可以根据场景调整粒子的数目,来降低算法的时间复杂度。KLD采样的全称是库尔贝科-莱布勒距离Kullback-Lerbler Distance,它是一种计算两个概率分布之间差异的方法。KLD采样背后的思想就是根据基于采样近似质量的统计界限来确定粒子数量。更特殊的是,在粒子滤波器的每次迭代的过程中,KLD采样以概率1- 来确定采样数量,真实的后验概率与基于采样的近似分布之间的差异小于 。以下是它的算法流程:
4 标注流程
如下图是我们软件的UI使用界面,主要的功能标注点云文件,在有图片文件的情况下也可以根据映射算法,同步标注图片文件,下面是主要的流程介绍:
结语
点云标注在自动驾驶算法训练中占据这十分重要的部分,数据的质量影响这模型的准确度,一款适合模型需要的标注工具显得更为重要。这款工具主要标注采集到的点云数据,同时也可以标注对应的图片文件。在标注的过程中,使用到一些提高效率的方法,也就是基于目标跟踪的半自动标注。通过这一流程,极大提高了标注的效率。同时目标跟踪也有一些局限的地方[5],比如需要前文信息加以辅助,这也是我们后续工作的研究点。
参考文献
[1] 汪世财.基于三维激光雷达的障碍物检测与跟踪研究[D].
[2] Geiger A,Lenz P,Stiller C,et al.Vision meets robotics:The KITTI dataset[J].International Journal of Robotics Research,2013,32(11):1231-1237..
[3] 王法胜,鲁明羽,赵清杰,et al.粒子滤波算法[J].计算机学报,2014,37(008):1679-1694..
[4] 作田真.多目标检测前跟踪的粒子滤波算法研究[D].2019.
[5] 卢湖川,李佩霞,王栋.目标跟踪算法综述[J].模式识别与人工智能,2018,31(001):61-76.
关键词:点云标注;目标跟踪;软件设计
Abstract:Aiming at the problem of point cloud data labeling in autonomous driving scenarios,a labeling software based on target tracking algorithm is designed.In addition to the good completion of the point cloud annotation function,the software also realizes the mapping annotation of the corresponding pictures.The target tracking algorithm used greatly improves the annotation efficiency.This article mainly introduces the software design ideas from the above three aspects,and finally introduces the software annotation process.
Key words:Point cloud annotation;Target tracking algorithm;Software design
随着深度学习在物体识别领域的快速发展,其在自动驾驶中发挥着越来越重要的作用。而在深度学习里,标注的数据质量影响着模型的训练效果。在自动驾驶领域中,对数据标注有了更高的要求,希望同时可以标注点云和图像,同时拥有更高的标注效率。
本文在点云库的基础上,引入了目标跟踪算法,以此来提高标注效率,同时还添加了点云到图像的映射功能,完成标注点云的同时也完成了图片的标注。
1 点云的标注
点云中3维bounding box的绘制采用了PCL库中的方法实现,选定点云集合,利用沿坐标轴包围盒算法(AABB)计算边界,按照边界绘制框。由于点云密集分布这一特点,有可能会无差别的将一
些误选的点云也包含在集合中,增加了需要修正的次数。加入自动修正机制,对手动选取的点云集合进行处理,去除杂点,提高标注的准确度。
修正功能的实现是使用栅格法[1]对选中的点云集合构建俯视图,即投影到平面的2D网格,网格的大小由点云的大小决定。建立网格之后,可以得到一些统计量。例如:网格中的点云个数、点云高度、点云序号等等,基于以上的统计量,寻找每个格子领域的连通区域,连通区域可以视为是物体,从而达到去除杂点的效果。
2 点云标注在图像的映射
2.1 映射关系
在装配了一台Velodyne激光雷达扫描仪和4台相机的实验车辆在采集原始数据的过程中[2],主要存在三类坐标系,分别是相机坐标系、Velodyne坐标系和以车辆中心为坐标原点的笛卡尔坐标系。点云坐标到图像坐标需要一系列的转换操作,例如3D点 投影到经过矫正的第i个相机图像上点 的表示为:
由上述式子可知,各坐标间的转换关系是线性的,这也就大大减少我们计算的工作量,遍历所有的点,记录下X、Y、Z方向的最大值和最小值,即为边界范围。对这六个边界值进行映射,得到图像的标注边框。
3 目标跟踪算法
粒子滤波算法[3]广泛应用在目标跟踪中,主要分为四个阶段。第一阶段是提取跟踪目标特征,第二阶段为搜索阶段,第三阶段为决策阶段,第四为重采样阶段。粒子滤波的核心思想就是随机采样和重要性重采样,在随机撒粒子后,根据特征相似度计算每个粒子的重要性,然后在重要的地方多撒粒子,不重要的地方少撒粒子。如此的循环往复,即完成了目标的动态追踪。
传统的粒子滤波算法是采用粒子随机分布采样,基于KLD采样的自适应滤波算法[4]可以根据场景调整粒子的数目,来降低算法的时间复杂度。KLD采样的全称是库尔贝科-莱布勒距离Kullback-Lerbler Distance,它是一种计算两个概率分布之间差异的方法。KLD采样背后的思想就是根据基于采样近似质量的统计界限来确定粒子数量。更特殊的是,在粒子滤波器的每次迭代的过程中,KLD采样以概率1- 来确定采样数量,真实的后验概率与基于采样的近似分布之间的差异小于 。以下是它的算法流程:
4 标注流程
如下图是我们软件的UI使用界面,主要的功能标注点云文件,在有图片文件的情况下也可以根据映射算法,同步标注图片文件,下面是主要的流程介绍:
结语
点云标注在自动驾驶算法训练中占据这十分重要的部分,数据的质量影响这模型的准确度,一款适合模型需要的标注工具显得更为重要。这款工具主要标注采集到的点云数据,同时也可以标注对应的图片文件。在标注的过程中,使用到一些提高效率的方法,也就是基于目标跟踪的半自动标注。通过这一流程,极大提高了标注的效率。同时目标跟踪也有一些局限的地方[5],比如需要前文信息加以辅助,这也是我们后续工作的研究点。
参考文献
[1] 汪世财.基于三维激光雷达的障碍物检测与跟踪研究[D].
[2] Geiger A,Lenz P,Stiller C,et al.Vision meets robotics:The KITTI dataset[J].International Journal of Robotics Research,2013,32(11):1231-1237..
[3] 王法胜,鲁明羽,赵清杰,et al.粒子滤波算法[J].计算机学报,2014,37(008):1679-1694..
[4] 作田真.多目标检测前跟踪的粒子滤波算法研究[D].2019.
[5] 卢湖川,李佩霞,王栋.目标跟踪算法综述[J].模式识别与人工智能,2018,31(001):61-76.