谷歌用AI检测透明对象,实现玻璃上生成AR可视化效果
光学3D传感器通常难以检测透明对象
(映维网 2020年02月14日)诸如RGB-D摄像头和LIDAR等光学3D距离传感器已在机器人技术中得到广泛应用,并正在为从无人驾驶汽车到自动操纵器的一系列应用生成丰富准确的环境3D映射。然而,诸如玻璃容器这样的透明对象会造成昂贵传感器的混乱。这是因为光学3D传感器是由假定所有表面均为朗伯(Lambertian)的算法驱动,即它们在所有方向均等地反射光线,从而在所有视角下产生均匀的表面亮度。但是,透明对象违反了这一假设,因为它们的表面既折射又反射光线。所以,来自透明对象的大多数深度数据一般为无效,或包含不可预测的噪点。
光学3D传感器通常难以检测透明对象。例如,玻璃瓶没有出现在英特尔实感D415 RGB-D摄像头捕获的3D深度图像之中(上方静态图);下方动图:根据深度图像和点云方法构建的3D可视化
支持机器更好地感知透明表面,这不仅可以提高安全性,而且能够在非结构化应用中开启一系列全新的交互,如可以处理厨具或分类塑料以进行回收利用的机器人,导航室内环境,或在玻璃桌面生成AR可视化效果等等。
为了解决这个问题,谷歌与Synthesis AI和哥伦比亚大学的研究人员合作开发了名为ClearGrasp的机器学习算法。据介绍,它能够根据RGB-D图像估计透明对象的精确3D数据。这主要得益于一个大规模合成数据集(谷歌日前同样进行了公开)。ClearGrasp可以配合所有标准RGB-D摄像头,然后使用深度学习来准确地重建透明对象的深度,并泛化为训练期间不可见的全新对象。作为对比,以前的方法需要事先理解透明对象,并且通常需要结合背景照明的映射和摄像头位置。在这项研究中,谷歌同时演示了将ClearGrasp集成到拾取和放置式机器人的控制系统中。谷歌表示,他们留意到透明塑料对象的抓取成功率有了显著提高。
ClearGrasp使用深度学习来恢复透明表面的准确3D深度数据。
1. 透明对象的可视数据集
要训练有效的深度学习模型(如用于视觉的ImageNet或用于BERT的Wikipedia),你需要大量的数据。ClearGrasp也不例外。遗憾的是,我们缺乏透明对象的3D数据集。诸如Matterport3D或ScanNet这样的现有3D数据集会忽略透明表面,因为它们需要昂贵且耗时的标记过程。
为解决此问题,研发团队自行构建了透明对象的大规模数据集,其中包含50000多个具有相应表面法线(表示表面曲率),分割蒙版,边缘和深度的图片真实感渲染,并可用于训练各种2D和3D检测任务。每个图像最多包含五个透明对象,而它们要么位于平坦的地平面之上或手提袋之内,并且具有不同的背景和照明。
ClearGrasp合成数据集中的透明对象的示例数据。
研究人员同时纳入了包含286张真实世界图像的测试集,而它们具有相应的ground truth深度。对于真实世界图像,团队将场景中的每个透明对象替换为具有相同姿态的绘制对象。图像是在各种不同的室内照明条件下并使用各种布料和贴面背景捕获,并且包含散布在场景周围的不透明对象。它们既包括合成训练集中存在的已知对象,又包含新的对象。
左:现实世界中的图像捕获设置;中:可以用喷涂副本精确替换每个透明对象;右:捕获数据的示例。
2. 挑战
通过透明对象看到的扭曲背景视图会混淆典型的深度估计方法,但存在暗示对象形状的线索。透明表面会出现镜面反射,并在光线充足的环境中显示为亮点。由于这种视觉提示在RGB图像中十分明显,并且主要受对象形状的影响,所以卷积神经网络可以利用反射来推断出精确的表面法线,然后再将其用于深度估计。
透明对象的镜面反射会创建不同的特征(特征会根据对象的形状而变化),并提供强大的视觉提示来帮助估计表面法线。
大多数机器学习算法都尝试直接根据单眼RGB图像估计深度。但即便是人类,单眼深度估计都是一项艰巨的任务。我们在估计平坦背景表面的深度时会观察到较大的误差,这加深了放置于其上的透明对象的深度估计误差。所以,研究人员认为与其直接估计所有几何图形的深度,不如更正来自RGB-D 3D摄像头的初始深度估计值,这将允许他们使用非透明表面的深度来确定透明表面的深度。
3. ClearGrasp算法
ClearGrasp使用3个神经网络:一个用于估计表面法线的网络,一个用于遮挡边界(深度不连续)的网络,另一个用于遮盖透明对象的网络。遮罩用于删除属于透明对象的所有像素,以便能够填充正确的深度。然后团队使用了全局优化模块,使用预测的表面发现来引导重建的形状,以及使用预测的遮挡边界来保持不同对象之间的分离。
团队提出的方法的综述。点云是使用输出深度生成并用表面法线着色。
每个神经网络都利用合成数据集进行训练,而它们能够很好地处理真实世界的透明对象。但是,诸如如墙壁或水果等表面的表面法线估计糟糕。这是由于合成数据集的局限性:仅包含位于地面地透明对象。为了应对这个问题,团队在表面法线训练循环中纳入了来自Matterport3D和ScanNet数据集的真实室内场景。通过域内合成数据集和域外实词数据集的训练,模型在测试集中的所有表面均取得出色的表现。
根据真实图像的表面法线预测:a 仅Matterport3D和ScanNet(MP + SN);b 仅合成数据集;c MP + SN以及合成数据集。注意,通过MP + SN训练的模型无法检测透明对象。仅根据合成数据训练的模型可以很好地拾取真实塑料瓶,但对其他对象和表面的效果不理想。当通过两者进行训练时,模型可以同时兼顾两个方面。
4. 结果
总体而言,团队的定量实验表明,ClearGrasp能够以比其他方法高得多的保真度来重建透明对象深度。尽管仅就合成的透明对象接受过训练,但团队发现模型能够很好地适应现实世界域,在不同域的已知对象方面实现了非常相似的定量重建性能。模型同时可以很好地推广到具有复杂形状的新对象。
为了确定ClearGrasp的定性性能,团队根据输入和输出深度图像构造3D点云,如下所示。生成的估计3D表面具有清晰且连贯的重构形状(这对于诸如3D映射和3D对象检测的应用而言非常重要),没有单眼深度估计方法中出现的锯齿噪点。模型十分稳定,并且在挑战性条件下都取得出色的表现,如识别位于带图案背景中的透明对象,或区分部分遮挡的透明对象。
真实图像的定性结果。前两行:已知对象的结果;下两行:新对象的结果。用表面法线着色的点云是根据对应的深度图像生成。
最重要的是,ClearGrasp的输出深度可以直接用作利用RGB-D图像的操作算法的输入。通过使用ClearGrasp的输出深度估算值而非原始传感器数据,UR5机械臂的抓取算法在抓取透明对象的成功率方面取得了显著提升。在使用抓爪时,成功率从基线的12%提高到74%,而抽吸的成功率则从64%提高到86%。
使用ClearGrasp处理新透明对象。请注意具有挑战性的条件:无纹理背景,复杂的对象形状,以及定向光会导致混乱的阴影和焦散。
5. 局限与未来的研究方向
谷歌指出,合成数据集的局限性在于,由于传统路径追踪算法的渲染存在局限性,所以它不能代表精确的焦散。结果是,模型将明亮的焦散与阴影混淆为独立的透明对象。尽管存在这样的缺点,但ClearGrasp的研究表明,合成数据依然是一种可行的方法,可以帮助基于学习的深度重建方法取得令人满意的结果。对于未来的研究,一个充满前景的方向是通过生成具有物理正确的焦散和表面缺陷的渲染来改善域转真实世界图像。
对于ClearGrasp,团队证明了高质量的渲染可用于成功训练在现实世界中表现出色的模型。谷歌表示,他们希望数据集将推动业界进一步研究针对透明对象的数据驱动感知算法。下载链接和示例图像请前往谷歌的项目官网和GitHub页面。