labelCloud:用于三维点云物体检测的轻量级标注工具

点云PCL免费知识星球,点云论文速读。

文章:labelCloud: A Lightweight Domain-Independent Labeling Tool for 3D Object Detection in Point Clouds

作者:Christoph Sager, Technische Universität Dresden Patrick Zschech,

编辑:点云PCL

代码:https://github.com/ch-sa/labelCloud.git

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

在过去的十年里,基于人工智能(AI)和机器学习(ML)的兴起,在不同领域内都产生了许多重大贡献。应用范围从机器人医学诊断到自动驾驶。然而,几乎所有的应用程序都依赖于经过训练的数据,如果该数据由3D图像组成,则标签应尽可能准确,以确保ML模型的高质量结果,这一点至关重要,3D点云中的标注大多是由专家工作者进行的人工工作,会在目标物体周围绘制3D边界框,ML模型随后应自动识别,例如自动驾驶的行人或癌细胞,虽然目前存在少量3D标记工具,但它们都有三个主要缺点:

(i)它们被指定用于自动驾驶应用,

(ii)它们缺乏便利性和舒适性功能,

(iii)它们在数据格式方面具有高度依赖性和灵活性。因此,我们提出了一种新的标记工具,用于点云中的三维对象检测,以解决这些缺点。

详细的视频教程

介绍

自动驾驶的最新进展得益于两大发展:ML的进步和改进的传感器,特别是像光探测和测距(LiDAR)和深度相机这样的3D传感器近年来变得更加精确和经济,这些设备通过测量激光束(即激光雷达)的飞行时间或比较平行相机(即立体视觉)的图像,创建其环境的三维重建。大多数3D传感器输出点云——欧氏空间中无序的点集,这种数据类型的无序性质以及缺乏任何固定网格(如2D图像),使得很难简单地将成功的解决方案从2D计算机视觉提升到3D空间。然而,PointNet的新体系结构带来了突破,并支持多种解决方案,可以直接检测点云数据中的对象,三维物体检测方法可以根据物体的类别、位置、尺寸,有时甚至旋转来自动识别和定位物体,然而所有现有的方法都是基于有监督的ML,通过提供许多具有已知结果的示例,人工神经网络可以针对特定问题进行训练。因此,研究人员和从业者首先必须标记大量训练数据,以创建准确的ML模型,现有的非商业点云标记工具只关注自动驾驶领域,因此,它们只支持此特定域中常见的数据格式和对象类型,另一方面,直接标记使用户可以直接在点云内绘制3D边界框,我们开发了labelCloud,这是一个轻量级和独立的标注工具,用于在3D点云中注释旋转的边界框。labelCloud支持LiDAR传感器和深度相机(有七种输入格式),多种标签格式可在现有ML框架中使用,以及围绕所有三个轴旋转边界框以进行6D姿势估计。表1将我们的解决方案与现有方法进行了比较。

表1:现有点云标注工具的比较

该项目之所以启动,是因为缺乏合适的标注工具来标注通常由3D相机生成的彩色点云(如Intel RealSense系列)。想要利用这些数据的研究人员面临的问题是,现有软件要么设置非常复杂,要么与所需的数据格式(如*.ply或*.pcd)不兼容。因此,我们开发了一种解决方案,使用户可以从深度传感器快速生成带标签的训练数据,以加速独立于各自领域的3D视觉研究,首先,我们进行了一次系统的文献回顾和三次行业专家访谈,以收集通用点云标注工具的要求,虽然文献主要关注标注耗时、标注质量和易用性方面的改进,但行业专家也强调了易学性和进一步调整软件并将其扩展到单个应用程序的可能性等方面。

主要内容

A

软件体系结构

基于定义的用户需求,软件以模块化的方式设计,并使用灵活的Python编程语言进行开发,这允许集成NumPy和Open3D等外部模块,这些模块分别擅长点云处理和数组计算。总的来说,labelCloud是根据MVC设计范式分为模型、视图和控制三个主要部分。模型捕获点云和标签的表示,labelCloud可以从LiDAR传感器(非彩色)和深度相机(彩色)导入七种不同的点云格式,将Open3D库用于大多数格式,并为二进制文件(*.bin)实现了一个基于NumPy的自定义加载程序,每个标签都与一个点云关联,并且可以包含多个三维边界框,每个边界框由10个参数组成:1个用于对象类,3个用于位置(x、y、z),3个用作尺寸(长度、宽度、高度),3种用于旋转(滚动、俯仰、偏航)。因此,用户可以准确地标记对象及其大小和完整姿势,创建的标签可以导出为四种不同的格式,包括KITTI格式,从而可以轻松地与现有框架集成,点云的大小和结构使导航和交互成为一项计算成本高昂的任务,因此,labelCloud的视图利用GPU的并行处理能力,并使用OpenGL实现流畅的可视化,在每个标记任务开始时传输点云数据,并使用投影矩阵实现任何转换,此设置允许使用标准计算机硬件流畅地注释通常较大的点云文件(通常约为10万点)。使用常用的鼠标命令旋转(单击鼠标左键)和平移(单击鼠标右键)点云。此外,用户界面还提供了用于可视化用户交互的按钮和文本字段(见图1)。

图1:labelCloud标注点云的用户界面

B

标注过程

标注过程通常包括三个阶段:(i)对象检测,(ii)边界框创建,和(iii)参数校正。特别是在未着色的点云中,定位和识别对象可能需要很长时间,完成后,用户必须输入对象类并创建初始边界框,虽然只需单击两次即可跨越2D边界框,但对于3D边界框,必须指定对象位置、大小和旋转。标记方法可以同时求解所有步骤,也可以只提供边界框的初始图。

实现了两种标记方法,即点拾取和跨越,以及几种随后改进所创建边界框参数的可能性,拾取模式基于以下假设:对象大小以前已知或变化不大,它提供了一个具有固定尺寸的默认边界框,用户可以简单地将其拖动和旋转到点云中,由于点云具有三维空间,如果对象距离更远,默认边界框会自动调整其大小,可以通过滚动鼠标滚轮来调整边界框的z轴旋转,预览为用户提供了生成的标签外观的实时预览。一旦指定了位置,所有其他参数都可以自由调整,通过生成模式,我们尝试将常用的2D标记方法提升到3D空间,用户不用选择两个相对的矩形角,而是通过四次单击跨越3D边界框。用户拾取两个顶点后,通过锁定特定尺寸来支持选择,首先指定对象的深度,最后指定其高度,锁定允许用户选择不属于对象的点,只要它们表示所需的深度或高度,我们对测试用户的评估表明,跨越模式通过仅使用四次点击指定九个参数,大大减少了必要的用户交互。

图2:跨越模式的任务序列,最后两点(c+d)的尺寸已锁定

创建初始边界框后,可以使用选择的组合键和可视按钮更正其参数,此外,labelCloud还提供了一种称为“侧拉”的新用户交互模式。由于手动定义每个对象维度非常费力,我们允许使用鼠标单独更改长度、宽度和高度。用户只需将光标悬停在特定的边界框一侧,然后可以使用鼠标滚轮推拉选定的一侧,从而调整垂直尺寸。

C

点选择和深度估计

查看器内的标签交互需要从点云中选择特定点,然而,只有二维可视化(屏幕)和输入设备(鼠标)的三维选择是一个困难的问题,因为鼠标单击只返回有关二维(x和y)的信息,我们通过基于用户意图的提示和假设估计第三维度(z)来克服这一挑战,大多数软件都使用光线投射来解决此问题,即从单击坐标中获取与垂直光线快照相交的第一个对象的深度。由于遮挡和稀疏性,此方法对于点云失败,导致选择过程不稳定。深度传感器自然会产生稀疏的点云,因为场景是从固定的角度记录的,但现在用户也可以采用其他角度。因此,光线很有可能不会投射任何点,并一直延伸到无穷远处。为了解决这些问题,我们引入了关于用户意图的两个假设,并对OpenGL的深度缓冲区进行操作,该缓冲区为每个屏幕像素保留一个深度值:(i)用户总是想从点云中选择一个点,以及(ii)用户更可能选择离屏幕最近的点(即在对象表面上)。基于这些假设,我们引入了深度平滑和深度最小化,如果用户无法选择点,深度平滑将尝试解决稀疏性问题,使用阈值检测这种情况,并导致鼠标单击周围指定半径内所有深度值的平均值。此方法的效果可以与其他CAD软件(如AutoCAD)中的捕捉功能相比较,即使用户错过了要点,也可以成功进行选择。另一方面,当用户实际单击某个点时,总是使用深度最小化。在这种情况下,标注主要需要选择对象曲面外边界上的点,由于用户可能直接面对感兴趣的对象,我们假设他希望选择最靠近屏幕的点,因此具有最小的深度值,为了减少此功能的意外效果,使用比平滑更小的半径进行最小化,深度最小化旨在减少后续边界框校正的需要。

评价

用户对labelCloud的第一次评估表明,与从点选择(间接标记)生成边界框相比,直接标记方法可以获得更高的精度,这是通过交集/并集(IoU)测量的,不熟悉该主题的测试用户在使用旋转对象的室内测试数据集上平均获得67%的IoU,每个点云大约需要一分钟,虽然labelCloud的两种标注模式都可以获得相似的边界框精度,但与拾取模式相比,生成模式所需的标记时间(-22%)和用户交互(-63%)要少得多,此外,在随后的问卷调查中,用户将跨越模式描述为更直观、更具表现力的方法,在第二次评估中,对软件的技术方面进行了测试,由于该软件应代表一个合适的解决方案来快速创建各个领域的训练数据,因此它必须在加载和操作大型点云方面具有强大的功能,labelCloud的安装过程不到五分钟,因为它只需要四个选定的外部库,而且源代码小于1MB,它可以在所有常见操作系统上使用两个命令行指令下载和安装,在对标准消费者笔记本电脑进行性能测试期间,它可以无缝加载和处理多达500万个点的点云,同时仍能以超过30 FPS的速度进行渲染。这证明它也适用于数据量非常大的领域,如航空观测。

总结

标记三维点云中的对象是为各个领域的ML模型生成训练数据的关键任务,现有的点云标签工具通常是针对有限的设置而设计的,除其他外,不包含无装饰和三维跨越可能性的方面,因此,我们引入了labelCloud,它允许使用多种不同格式的轻量级、方便的3D点标记,而无需关注特定领域。我们的第一次评估表明,与间接标记方法相比,效率有所提高。在未来的迭代中,计划集成转移学习能力,以识别随时间推移的相似对象模式、对象跟踪以及其他标记模式,以减少每个点云的平均标记时间。