在机器人和计算机视觉领域,光学 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 个真实场景测试图,其中不仅包括透明物体本身,还有各种不同的背景贴图和随机不透明物体。图片中既包含训练集中存在的已知对象,也包括从未出现过的新物体。
在数据集的问题解决之后,下一步是思考如何收集透明物体的深度数据。