通信约束下机器人视觉任务中的点云剔除
一、引言
许多机器人使用视觉感知来解释周围环境。经济实惠的 RGB-D 传感器的开发引起了机器人界的兴趣,尤其是在 3D 点云处理领域。RGB-D 传感器能够同时捕获彩色和深度图像。该传感器以高帧速率运行,可以产生超过 10 MB/s 的数据,从而可以解决机器人网络中的潜在瓶颈问题。
机器人视觉任务,例如检测、分割和分类对象,本质上是数据和处理密集型的。小型机器人平台通常没有执行这些任务的机载资源。然而,通过使用远程计算基础设施,可以卸载数据和计算,从而扩展独立机器人的能力。
云计算是一种模型,它支持对共享的可配置计算资源池(例如网络、服务器、存储、应用程序和服务)进行无处不在、方便的按需网络访问,这些资源可以通过最少的管理工作快速配置和发布服务提供商 [1]。最近,机器人领域开始利用云计算资源。云机器人利用云计算和大数据的进步,并具有开发新一代机器人应用程序的潜力。
在这项工作中,我们提出了两种算法,允许智能节流客户端(机器人)和服务器(云)之间的 RGB-D 数据,用于对象分类和跟踪。客户端利用点云帧中的冗余信息来减少传输的数据量。服务器分析接收到的数据,并通过采用自适应阈值设置来调整客户端的传输速率。客户端和服务器共同维护网络的可用性,同时执行手头的视觉任务。
来源:微信公众号「3D视觉工坊」
二、客户端点云剔除
1、场景熵
离散随机变量 的香农熵定义为:

其中 ,在云基础架构中,由于有限的带宽和网络延迟,会遇到重大困难。在这些通信限制下,我们在传输之前选择性地剔除点云数据。这种剔除是通过测量连续点云帧的场景熵来完成的。
为了定义场景熵,机器人当前视点提供的点云中体素的密度被用作概率分布。因此,场景熵定义为:

其中 是场景中体素的总数,是体素 的密度, 是所有体素的总密度。这里 表示第 个体素相对于机器人观察场景 的密度,当所有体素具有相同的密度时获得最大熵。
体素密度用作熵计算的度量,因为它提供了检测整体信息内容变化的直接方法。例如,场景中机器人和/或物体的移动导致熵的相应变化。相反,静态场景不会导致熵发生变化。我们感兴趣的是传输具有显着熵差异的连续帧,同时丢弃具有相似熵值的帧。
2、机器人熵计算
我们利用机器人的机载资源对来自 RGB-D 传感器的传入点云帧进行过滤。这种过滤包括移除范围异常值,以及平面模型的估计和提取,以便将场景简化为被分类的对象。八叉树结构用于下采样和存储每个过滤后的点云帧。令 表示当前帧的八叉树,令 为包含 3D 点数据的 的叶(体素),其中 d 是叶的密度。 中所有叶子的密度 是在熵之前计算的。我们遍历 的叶子并累积帧的总熵(算法 1)。

在算法1 中,for 循环是通过对熵变量使用归约子句并行计算的。这导致每片叶子计算的显著加速。在计算出熵之后,与当前设置的阈值进行比较。如果熵值低于阈值,则丢弃该帧。否则,帧的八叉树被压缩 [10] 并发送到远程服务器。在下一节中,我们将解释服务器如何确定熵阈值。
三、服务器端传输节流
1、对象分类和跟踪
对于服务器从客户端接收到的每个过滤后的点云帧,我们使用尺度不变协方差描述符来逐帧分类和跟踪对象。服务器处理的点云帧为每个点提供九种不同的特征。该特征向量表示为:

特征向量的由特定点的笛卡尔坐标 、颜色通道值 和表面法线的坐标组成。从每个点的特征向量 ,可以计算出一个对象的协方差 :

其中 是对象中的点数, 是点在对象列表中的索引, 是特征向量的平均值。这些协方差矩阵表征对象并形成对其执行分类的描述符。分类过程在协方差 和 之间的对数欧氏距离 上使用具有径向基函数 的支持向量机 (SVM) [11]。距离定义为协方差矩阵对数之差的 Frobenius 范数:

协方差描述符也用于逐帧跟踪对象。在对当前帧中的对象簇进行分割和提取之后,我们遍历对象并将它们与前一帧中的相应簇进行匹配。具体来说,对于当前帧中的给定对象 ,我们从前一帧中选择对象 ,使得协方差矩阵之间的距离最小:

与使用其他跟踪方法相比,使用协方差描述符进行对象跟踪可以节省计算量。由于对象的协方差矩阵已经在前一帧中进行了分类计算,因此很容易在当前帧中调用它们进行匹配。此外,每个对象的协方差矩阵可以紧凑地存储在内存中,使描述符成为跟踪对象的理想选择。
2、 熵阈值设置
对于识别常见物体的机器人视觉任务,我们允许服务器限制客户端对 RGB-D 数据的传输。服务器利用滑动窗口的方法,通过调整熵阈值来确认客户端接收到的点云帧。当前帧中对象的正确分类会导致服务器增加熵阈值。当前帧中对象的错误标记会导致服务器降低客户端的熵阈值。
在算法2中,令 代表服务器接收到的第 帧 3D点云数据。对于每一帧,我们计算提取的对象簇 的协方差描述符。然后根据计算的描述符从 SVM 模型中获得簇 的预测标签。接下来,簇 与 中的簇匹配,具有最小对数欧氏距离。最后,如果当前帧和前一帧之间存在标签不匹配,则熵阈值减小 ,如果标签匹配且当前熵阈值小于最大阈值,则熵阈值增加 。

传感器噪声和聚类分割不佳的结果会导致对象标记的错误分类。通过降低熵阈值,我们允许客户端传输更多帧,并期望额外的帧会降低整体错误分类率。当系统处于最佳状态时(即当前帧中没有错误分类的对象),我们可以通过增加熵阈值来降低客户端的发送速率,从而减少机器人网络中的数据包流量。
四、实验结果
在实验中,我们使用 Microvision 机器人对标记为 A、B 和 C 的三组对象进行了对象分类。组 A 由盒子、咖啡罐和鞋子组成。套装 B 由咖啡罐、热水器、纸卷和梭子组成。集合 C 由所有六件物品组成:盒子、咖啡罐、热水器、纸卷、鞋子和梭子。

在表中,我们展示了执行点云剔除的结果。对于每个对象集,该表显示了从客户端传输到服务器的点云帧与捕获的帧总数的比率、不传输相似帧数据所节省的数据量以及分类的准确性。准确度的衡量标准是每个对象簇正确分类的帧数除以捕获的帧总数。通过协同工作,客户端和服务器能够将对象集 A 通过网络发送的帧数减少 45.1%,对象集 B 减少 40.6%。对象集 C,由彼此靠近放置的所有对象组成 由于物体之间有很多遮挡,从机器人传输到服务器的帧数减少了 22.6%。通过点云剔除,每组对象的分类性能保持一致(与不执行剔除相比),同时减少了传输的帧总数。

总结与展望
客户端(机器人)在连接到云环境中的服务器时,可以理想地利用数据资源进行处理。服务器的角色也可以用来为客户端的动作提供指导。分类和跟踪对象既是数据密集型又是计算密集型机器人视觉任务。它可以压倒机器人的机载资源并使网络紧张。我们提出了一种新颖的框架,可以通过减少从客户端传输到服务器的点云帧的数量来自主防止网络饱和。
当机器人围绕一个目标集移动时,实验结果表明机器人没有必要传输每个点云帧;分类性能是通过传输帧的一个子集来维持的。这项工作展示了使用移动机器人在云计算环境中执行实时视觉任务的能力。
未来的工作包括开发更强大的分割方案。通过改进对象簇的分割,我们可以提高分类性能并进一步降低 RGB-D 数据传输速率。对象簇的提取仍然是该领域的一个重要且困难的问题。合并其他信息指标(例如互信息)是我们未来工作的一部分。
最后,我们有兴趣将云计算的思想应用于异构机器人团队中的视觉任务。在分布式机器人中心,我们目前正致力于开发利用云计算基础设施的机器人算法。我们相信云机器人领域将为小型和低成本机器人在越来越多的应用中的利用开辟新的途径。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
8.从零搭建一套结构光3D重建系统[理论+源码+实践]
9.单目深度估计方法:算法梳理与代码实现
10.自动驾驶中的深度学习模型部署实战
11.相机模型与标定(单目+双目+鱼眼)
12.重磅!四旋翼飞行器:算法与实战
13.ROS2从入门到精通:理论与实战
14.国内首个3D缺陷检测教程:理论、源码与实战
15.基于Open3D的点云处理入门与实战教程
16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进
17.不断更新中......
重磅!粉丝学习交流群已成立
交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。
添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速通过且邀请进群。原创投稿也请联系。