当今,随着传感器技术的不断发展,各种各样的传感器被研制出来,其中就包括光学 3D 传感器。当前,据外媒报道,谷歌与来自 Synthesis AI 和哥伦比亚大学的研究人员共同开发了一种能够估计透明物体准确 3D 数据的学习算法。
从自动驾驶汽车到自动机器人等领域,光学 3D 距离传感器与 RGB-D 相机的应用一样广泛,它可以生成丰富而精确的 3D 环境地图。
但它也有个「天敌」,透明的物体就可以让一套常用的昂贵传感器挠头,哪怕只是一个普通的玻璃容器。
这是因为光学三维传感器的算法都是基于一个前提——假设所有表面都是 Lambertian 的,也就是说这个表面反射的光线是均匀的,从而从各个角度看,表面的亮度都是一致的。然而,透明物体显然不符合这个假设,因为它们的表面除了反射光线,还会折射光线。因此,大多数透明对象的深度数据是无效的,或者是包含不可预测的噪声。
光学三维传感器通常无法探测到透明物体。右上:例如,IntelRealSenseD415 RGB-D 摄像机拍到的 3D 深度图像中没有显示玻璃瓶。底部:对深度图像点云的三维可视化。
让机器更好地感知透明的表面,不仅能提高安全性,还能在非结构化应用中开辟新的交互——比如处理厨房用具或对塑料进行回收分类的机器人,或是在室内环境中导航或在玻璃桌面上生成增强现实 (AR) 可视化效果。
为了解决这个问题,谷歌与来自 Synthesis AI 和哥伦比亚大学的研究人员合作开发了 ClearGrasp。ClearGrasp 是一种机器学习算法,它能够从 RGB-D 图像中估计透明物体的准确 3D 数据。
这种效果的实现主要得益于谷歌同时公开的一个大规模的合成数据集。ClearGrasp 的输入可以来自任何标准的 RGB-D 摄像机,然后它会使用深度学习来精确地重建透明物体的深度,并将其泛化成一种全新的物体,这种物体在训练过程中是看不到的。这与以前的方法不同,以前的方法需要事先了解透明物体(如它们的 3D 模型),然后结合背景照明和摄像机位置图来进行建模。在这项工作中,谷歌还证明了 ClearGrasp 可以通过将其整合到其 pick and place 机器人的控制系统中,来提高机器人的操作效率,在该系统中透明塑料物体的抓取成功率有了显著的提高。
ClearGrasp 通过深度学习来重建透明表面的精确三维深度数据。
透明对象的可视化数据集
任何有效的深度学习模型都需要需要大量的数据来训练(如视觉领域的 ImageNet 和 BERT 使用的 wikipedia),ClearGrasp 也不例外。不幸的是,并没有这种带透明物体 3D 数据的数据集。现有的 3D 数据集(如 Matterport3D、ScanNet 等)都没有透明表面的记录,因为这种标记过程耗时耗力。
为了克服这个问题,谷歌创建了自己的大型透明对象数据集,其中包含 5 万多个具有相应表面法线(表示表面曲率)、分割掩模、边缘和深度的真实感渲染,这对于训练各种 2D 和 3D 检测任务非常有用。每个图像包含的透明物体多达 5 个,有的在一个平面上,有的在一个手提袋里,而且包含了各种背景和照明的场景。
ClearGrasp 合成数据集的一些透明物体实例。
谷歌还在数据集中收集了 286 张实景图的测试集,这些图像都有深度标注。实景图的拍摄过程是艰苦的,拍摄时需要在场景中的每个透明物体的位置上绘制一个跟其位置大小完全一致的图像。这些图像是在许多不同的室内照明条件下拍摄的,使用了各种不同的布和饰面背景,而且包含了散落在场景周围的随机不透明物体。它们既包含合成训练集中已有的对象,也包含新对象。
左:实景图拍摄设置;中:自定义用户界面支持精确地用喷漆复制替换每个透明对象;右:捕获数据的示例。
挑战
虽然通过透明物体看到的扭曲的背景视图混淆了典型的深度估计方法,但是也有一些线索暗示了物体的形状。透明的表面也有镜面反射,这种反射跟镜子一样,在光线充足的环境中就变成亮点了。由于这些视觉线索在 RGB 图像中比较突出,并且主要受到物体形状的影响,因此卷积神经网络可以利用这些反射来推断出准确的表面法线,然后再用于深度估计。
透明物体上的镜面反射反映了不同的特征,这些特征根据物体的形状而变化,并为估计表面法线提供了极其有用的视觉线索。
大多数机器学习算法试图直接从单目 RGB 图像中估计深度。然而,即便对人类来说,单目深度估计也是一个非适定(ill-posed)的任务。团队观察到,在估计平坦背景表面的深度时存在较大的误差,这就增加了对位于其上的透明物体深度估计的误差。因此,与直接估计所有几何图形的深度不同,纠正 RGB-D 3D 相机的初始深度估计值可能更实用——能够使用非透明表面的深度来通知透明表面的深度。
ClearGrasp 算法
ClearGrasp 用了 3 种神经网络:一种网络用于估计表面法线,一种用于遮挡边界(深度上不连续),另一种用于遮挡透明对象。遮挡会删除跟透明对象有关的所有像素,以便填充其正确的深度。然后,使用一个全局优化模块,从已知的表面开始扩展深度,并使用预测的表面法线来指导重建的形状,然后使用预测的遮挡边界来保持不同对象之间的分离。
方法概述:点云首先根据输出深度生成,然后根据其表面法线着色。
每个神经网络都在透明的合成数据集上训练,它们在实景图中的透明物体上表现良好。然而,对于其他表面,如墙壁或水果,表面的法线估计是很差的。这个合成数据集还存在局限性,它只包含地面上的透明对象。为了减轻这个问题的影响,团队在表面法线训练循环中加入了一些来自 Matterport3D 和 ScanNet 数据集的真实室内场景。通过对域内的合成数据集和域外的实景数据集的训练,该模型在测试集中表现良好。
在 a) Matterport3D 和 ScanNet (MP+SN),b) 谷歌的合成数据集,c) MP+SN 以及谷歌的合成数据集训练后的表面法线估计。注意,在 MP+SN 上训练的模型没有检测到透明的物体。只训练合成数据的模型能很好地识别真实的塑料瓶,但却无法识别其他物体和物体表面。当模型同时在这两中数据集上训练时,就可以同时满足这两方面的需求。
责任编辑:Ct