公众号/
在机器人和计算机视觉领域,光学 3D 距离传感器已经得到了广泛应用,比如 RGB-D 摄像头和 LIDAR 传感器,都在 3D 环境绘制和无人驾驶等任务中扮演了重要角色。
尽管它们性能十分强大,兼具高敏感度、高精度和高可靠性等特质,但在识别透明物体上却不尽如人意。想要破坏这些传感器的成像效果,或者让机械手臂无从下手,只需要在它们面前放上玻璃杯一类的透明物体就可以了,因此难以在不使用其他传感器的情况下独立完成特定任务。
这是因为光学传感器的算法假设所有表面均是理想散射的 (Lambert),即物体会在各个方向和各个角度均匀地反射光线。在 Lambert 光照模型中,无论观察者的视角如何,其表面亮度都是相同的。
现实中的绝大多数物体符合这一假设,除了透明物体,因为它们的表面既折射又反射光线。这样一来,光线传播的复杂性大幅提升,表面亮度与视角无关的假设被破坏了,基于 Lambert 模型的算法也就失效了,导致传感器收集的透明物体的大多数深度数据都是噪声或者无效的。
图 | 透明物体在传统算法眼中是噪声(来源:谷歌 AI)
为了改善这一问题,让机器可以更好地感知透明表面,谷歌 AI,Synthesis AI 和哥伦比亚大学的研究人员合作开发了一种名为 ClearGrasp 的机器学习算法,能够从 RGB-D 图像中估算透明物体的准确 3D 数据。
根据谷歌 AI 介绍,在设计之初,ClearGrasp 算法就考虑到了兼容性。它可以与任何标准 RGB-D 相机捕捉的数据配合使用,借助神经网络和深度学习来准确地重建透明物体的景深数据。
图 | ClearGrasp 算法的工作原理(来源:谷歌 AI)
与目前所使用的技术不同,ClearGrasp 算法不依赖于对透明物体的先验知识,比如预先对透明物体进行 3D 建模,还要补充观察视角和光线数据。在神经网络的帮助下,它可以很好地泛化到从未见过的全新物体身上。
在测试过程中,研究人员将新算法集成到了一套现有的拾取机器人控制系统中,最终发现它对透明塑料物体的抓取成功率有了非常显著的提升,最多可以提升 6 倍。未来有望在拾取机器人和自动驾驶等领域应用。
透明对象的可视数据集
无论是什么样的深度学习模型,训练时都要依赖于大量数据,比如训练自然语言模型 BERT 需要维基百科,ClearGrasp 也不例外。然而目前广泛使用的 3D 数据集,包括 Matterport3D 和 ScanNet,都会忽略透明表面和物体,因为标记过程过于复杂和耗时。
这让研究人员不得不自己创建训练集和测试集,专门针对透明对象设计。
在训练数据集中,他们创造了 5 万多个符合真实物理原则的渲染图,每张图片最多包含 5 个透明物体,放置于平面上或者开放式容器中,视角、背景和光线各不相同。每个物体还有配套的表面法线(曲率)、分割蒙版、边缘和深度等信息,用于训练各种 2D 和 3D 物体检测任务。
至于测试集,研究团队选择用真实场景创建图片和数据,方便最大程度上测试算法的真实表现。这是一个十分痛苦的过程,因为对于每个场景都要在保证视角、光线和场景布置完全一致的情况下照两遍:第一遍用透明物体,第二遍用一模一样的非透明物体替换它们(必须保证位置完全一样)。
图 | 布置真实场景(来源:谷歌 AI)
最终他们得到了 286 个真实场景测试图,其中不仅包括透明物体本身,还有各种不同的背景贴图和随机不透明物体。图片中既包含训练集中存在的已知对象,也包括从未出现过的新物体。
在数据集的问题解决之后,下一步是思考如何收集透明物体的深度数据。
虽然在透明物体上,RGB-D 经典的深度估算方法无法给出准确数据,但仍然有一些蛛丝马迹暗示了物体的形状。最重要的一点是,透明表面会出现镜面反射,在光线充足的环境中会显示成亮点,在 RGB 图像中非常明显,而且主要受到物体形状的影响。
因此,卷积神经网络可以利用这些反射数据推断出准确的表面法线,然后将其用于深度估算。
另一方面,大多数机器学习算法都尝试直接从单眼 RGB 图像中估计深度,不过即使对于人类而言,这也是一个困难的任务。尤其在背景表面比较平滑时,现有算法对深度的估计会出现很大的误差。这也会进一步加大透明物体深度的估算误差。
基于此,研究人员认为与其直接估算透明物体深度,不如矫正 RGB-D 相机的初始深度估算数据。这样更容易实现,还可以通过非透明表面的深度来推算透明表面的深度。
ClearGrasp 算法
ClearGrasp 算法使用了三个神经网络:一个用于估计表面法线,一个用于分析受遮挡边界(深度不连续),另一个给透明对象罩上蒙版。蒙版负责删除透明对象的所有像素,以便填充上正确的深度数据。
研究人员使用了一种全局优化模块,可以预测表面法线并利用其来引导形状的重建,实现对已知表面深度的拓展,还可以利用推算出的遮挡边界来保持不同物体之间的分离状态。
由于研究人员创建的数据集存在局限性,比如训练图片只包含放在地平面上的透明物体,因此初期的 ClearGrasp 算法判断墙壁等其他表面法线的表现很差。为了改善这一问题,他们在表面法线估算训练中加入了 Matterport3D 和 ScanNet 数据集中的真实室内场景,虽然没有透明物体,但针对真实场景的训练有效提高了算法估算表面法线的准确率。
图 | 三套神经网络各有不同分工(来源:谷歌 AI)
为了系统分析 ClearGrasp 的性能,研究人员分别利用 RGB-D 数据和 ClearGrasp 数据构造了 3D 点云。点云显示了算法所生成的 3D 表面形状干净且连贯,没有原始单眼深度估算法中常见的锯齿状噪声,而且还可以分辨复杂图案背景下的透明物体,以及区分相互遮挡的透明物体。
最重要的是,ClearGrasp 输出深度数据可以直接控制依赖于 RGB-D 图像的机械臂。
研究人员使用了 UR5 工业机械臂进行测试,将其原始传感器数据替换成 ClearGrasp 输出深度数据后,它的透明物体抓取成功率得到了显著改善:平行夹爪的成功率从 12% 大幅提升到 74%,吸爪的成功率从 64% 提升到 86%。
图 | UR5 机械臂拾取透明物体(来源:谷歌 AI)
虽然分辨透明物体的准确率已经有了大幅提升,但新算法仍然有很大的进步空间。
研究人员认为,受到训练数据集和传统路径跟踪及渲染算法的局限性影响,ClearGrasp 仍然不能准确分辨散焦线,经常会把明亮的散焦线和物体阴影混淆为独立的透明物体。这将是未来的重要研究方向之一。
研究人员相信,这项研究成果证明了,基于深度学习的深度数据重建方法足以胜过传统方法,使机器能够更好地感知透明表面,不仅有望提高 LIDAR 无人驾驶等技术的安全性,而且还可以在多变的应用场景中开启新的交互方式,让分类机器人或者室内导航等技术更加高效和可靠。
-End-
参考:
https://ai.googleblog.com/2020/02/learning-to-see-transparent-objects.html