【机器人】论文分析 ASGrasp 通用透明物体重建、6-DoF抓取预测
在机器人抓取领域,透明和镜面物体的抓取一直是个难题。
物体是透明的,光线会直接穿过,深度相机就很难准确测量出杯子的实际位置和形状,很难准确地感知这类物体的深度信息。
ASGrasp核心是两层学习型立体网络,能够同时恢复透明和镜面物体的可见部分和不可见部分的深度信息。
然后融合两层深度信息,进行重建物体,得到点云信息作为GSNet(GraspNess)的输入,进而预测出抓取位姿。
与传统方法不同,ASGrasp不依赖深度相机生成的深度图,而是直接从主动立体相机获取的原始红外图像和RGB图像入手。
- RGB图像,要恢复物体的表面可见部分深度信息。
- 左红外图和右红外图,预测那些被遮挡或者不可直接观测到的深度信息。
- 使用的相机是常规的Intel® RealSense系列(d415等)
论文地址:ASGrasp: Generalizable Transparent Object Reconstruction and 6-DoF Grasp Detection from RGB-D Active Stereo Camera
代码地址:https://github.com/jun7-shi/ASGrasp
论文复现:【机器人】复现 ASGrasp 通用透明物体重建、6-DoF抓取预测-CSDN博客
输入图片:
输出Top10的抓取位姿
输出Top1的抓取位姿
1、研究背景
- 研究问题:这篇文章要解决的问题是透明和镜面物体的抓取问题。由于深度相机无法准确感知这些物体的几何形状,因此在机器人领域,抓取这些物体成为一个主要的瓶颈。
- 研究难点:该问题的研究难点包括:深度相机无法准确恢复透明和镜面物体的几何形状;现有的基于RGB-D的抓取检测方法依赖于深度恢复网络,而这些网络的质量直接影响抓取效果。
- 相关工作:ClearGrasp通过优化技术恢复透明区域的深度;DREDS和TransCG利用RGB信息来恢复透明物体的深度;GraspNeRF和EvoNeRF通过多视图RGB图像重建透明物体的形状。
- 小结:这些方法试图通过估计或恢复透明和镜面物体的深度来解决抓取问题,但都没有从深度观测中获取有意义的透明区域线索。
展开讲讲,现有的解决方法大致分为两类。
一类是基于深度恢复的方法,比如ClearGrasp、DREDS、TransCG等。它们尝试通过各种优化算法,从深度相机获取的原始深度图中,恢复出透明和镜面物体的深度信息。
另一类方法则是直接绕过深度传感器,转而利用多视图RGB图像来重建物体形状,比如GraspNeRF和EvoNeRF。
不过,这些方法要么依赖精确的物体分割,要么需要额外的时间成本去捕获多视图图像,存在一定的局限性。
2、ASGrasp方法思路
针对上述问题,作者提出了ASGrasp,一种基于RGB-D主动立体相机的6自由度抓取检测网络。
- 系统输入包括一幅RGB图像(Ic)和两幅红外图像(Iir_l、Iir_r)。这些图像由包含RGB相机和两个红外相机的主动立体系统捕捉,用于获取物体的外观和深度信息。
- 系统输出是一组6-DoF抓取姿势(gj),每个抓取姿势包括抓取分数、抓取中心、旋转和开口宽度。这些参数共同定义了机器人抓取物体的方式和位置。
- ASGrasp方法包含两个主要组件:场景重建模块(Fd)和基于显式点云的抓取检测模块(Fg)。
- 这两个模块协同工作,首先从输入的图像中重建出场景的完整深度信息,然后利用这些深度信息检测出适合抓取的6DoF姿势。
这个方法的核心亮点在于:
-
两层学习型立体网络(预测深度):简单来说,就是利用一个包含两层结构的网络,去分别预测物体的可见部分和不可见部分的深度信息。第一层主要负责恢复物体的表面可见部分,第二层则尝试去预测那些被遮挡或者不可直接观测到的深度信息。就好比我们看一个杯子,第一层能告诉你杯子外表面的形状,第二层则能推测出杯子内部的结构。
-
直接利用原始IR和RGB图像:与传统方法不同,ASGrasp不依赖深度相机生成的深度图,而是直接从主动立体相机获取的原始红外(IR)图像和RGB图像入手。这样做的好处是,能够充分利用原始图像中的信息,避免因深度图质量不佳而导致的抓取失败。
-
大规模合成数据集:为了训练这个网络,作者们基于GraspNet-1Billion数据集,通过领域随机化技术,创建了一个包含大量透明和镜面物体的合成数据集。这个数据集不仅物体材质丰富,而且场景复杂多样,能够很好地模拟现实世界中的各种抓取场景。
ASGrasp是一种使用RGB-D主动立体相机的6-DoF抓取检测网络,主要用于解决透明物体的抓取问题。
-
场景重建模块:首先,选择RGB图像作为参考图像,并将左右IR图像分别微分地变换到RGB参考坐标系中,构建一个成本体积。然后,利用基于GRU的立体匹配方法进行深度预测。此外,引入了一个第二层深度分支,用于预测不可见深度,从而捕捉物体的完整3D形状。
-
点云抓取检测模块:基于GSNet(抓取网络),输入可见和不可见的点云,生成更准确的抓取姿态。可见点云作为主要资源用于生成增强的抓取点,而不可见点云则提供额外的上下文特征。
-
合成数据集生成:为了训练网络,扩展了GraspNet-1Billion数据集,生成了一个包含漫反射、透明或镜面材料的大规模光真实合成数据集(即:STD-GraspNet,但还没开源)。该数据集包含115,000组RGB和IR图像,并通过物理渲染和多样化的域随机化进行增强。
2、ASGrasp问题与思考
问题1:为什么使用主动立体相机的深度估计
- 主动立体相机通过IR投影仪(红外相机)在场景中投射纹理,有效解决了无纹理场景中的深度估计难题,相比被动立体传感器具有优势。
- 者们使用Intel RealSense等主动立体相机,结合RGB图像与左右IR图像,构建了一个三视立体系统,探索其在透明和镜面场景中的有效性。
问题2:ASGrasp方法在场景重建模块中是如何利用RGB和IR图像进行深度预测的?
ASGrasp方法在场景重建模块中采用了基于GRU的立体匹配方法和两层深度预测。具体步骤如下:
- 左、右IR图像变换:首先,选择RGB图像作为参考图像,并将左右IR图像分别微分地变换到RGB参考坐标系中,构建一个成本体积。
- 立体匹配:利用基于GRU的立体匹配方法进行第一层深度预测。该方法通过计算左右IR图像与RGB图像之间的特征相关性来生成深度图。
- 第二层深度预测:引入了一个第二层深度分支,用于预测不可见深度。这个分支通过引入额外的更新操作来捕捉物体的完整3D形状,从而提高深度预测的准确性。
问题3:ASGrasp方法在抓取检测模块中如何利用可见和不可见的点云信息?
ASGrasp方法在抓取检测模块中通过以下方式利用可见和不可见的点云信息:
- 输入点云:基于GSNet(抓取网络),输入可见和不可见的点云。可见点云作为主要资源用于生成增强的抓取点,而不可见点云则提供额外的上下文特征。
- 生成抓取姿态:可见点云提供丰富的几何特征,使得抓取网络能够生成更准确的抓取姿态。不可见点云则帮助捕捉物体的其他重要特征,从而进一步提高抓取的成功率。
- 双层点云输入:通过结合可见和不可见的点云信息,ASGrasp方法能够提供更全面的几何特征,避免抓取过程中出现混淆,从而提高抓取的准确性和效率。
3、预测深度—>场景重建
ASGrasp提出的框架基于RAFT-like立体匹配方法,该方法能够同时恢复透明和镜面物体的第一层深度(可见部分)以及物体的遮挡表面信息的第二层深度(不可见部分)。
这种两层深度预测的机制,使得网络能够更全面地捕捉物体的几何形状,提高抓取检测的准确性。
(一)图像特征提取
- 给定左右IR图像(Iir_l、Iir_r)和RGB图像(Ic),使用特征编码器提取IR图像的特征和RGB图像的多尺度上下文特征。
- 具体来说,IR图像特征在1/4分辨率下提取,而RGB图像特征则在1/4、1/8、1/16分辨率下提取,通道数为128。这些特征将用于后续的成本体积构建和深度预测。
(二)极线成本体积构建
- 在提取了IR图像对的特征图之后,使用可微分双线性采样方法,根据给定的深度假设,将IR特征扭曲到参考RGB视图。
- 然后,通过计算左右IR特征的相关性,构建一个3D成本体积。
- 这个成本体积包含了左右图像在不同深度假设下的匹配信息,是后续深度预测的重要依据。
(三)迭代更新机制
- 为了更准确地预测深度,作者引入了迭代更新机制,这个挺重要的。
- 在每次迭代中,从成本体积中提取第一层和第二层的成本特征,并结合RGB图像的上下文特征,输入到基于GRU(门控循环单元)的更新操作符。
- 该操作符输出第一层和第二层视差场的增量以及新的隐藏状态,从而逐步优化视差预测。这种迭代更新的方式有助于提高深度预测的精度和稳定性。
通过两层学习型立体网络,从输入的RGB和IR图像中恢复出物体的可见和不可见部分的深度信息。
这种两层深度预测机制,不仅提高了深度恢复的准确性,还为后续的抓取检测提供了更丰富的几何线索。
通过基于RAFT-like立体匹配的框架、图像特征提取、极线成本体积构建和迭代更新机制,场景重建模块能够有效地解决透明和镜面物体的深度估计难题。
4、基于GSNet的抓取检测网络
根据场景重建模块生成的完整点云(包括可见和不可见部分),检测出适合抓取物体的6自由度(6-DoF)抓取姿势。
这些抓取姿势定义了机器人抓取物体的方式,包括抓取的位置、角度和夹爪宽度等参数。
(一)选择GSNet的原因
GSNet是一个两阶段的抓取检测网络,能够从单视图点云中预测密集的抓取姿势。
它适用于复杂、非结构化环境,能够处理不规则和非均匀采样的数据,因此非常适合用于透明和镜面物体的抓取检测任务。
(二)网络输入
GSNet的输入不仅包括可见点云(从第一层深度采样得到),还包括不可见点云(从第二层深度采样得到)。
可见点云提供了物体的表面信息,而不可见点云则提供了物体内部或被遮挡部分的信息。这种全面的几何特征输入,有助于网络更准确地预测抓取姿势。
(三)两阶段抓取检测策略
-
第一阶段:生成密集的抓取候选点。网络通过分析点云,识别出可能适合抓取的区域,并生成大量的抓取候选点。
-
第二阶段:优化抓取候选点。网络对第一阶段生成的抓取候选点进行进一步分析和优化,筛选出最有可能成功的抓取姿势,并为每个抓取姿势分配一个抓取分数,表示该姿势的成功概率。
通过结合可见和不可见点云,GSNet能够更全面地理解物体的几何形状和空间关系。
这不仅有助于提高抓取姿势的准确性,还能在一定程度上弥补单视图点云的局限性,特别是在需要侧向抓取或抓取物体不可见部分时。
5、STD-GraspNet数据集
现有的抓取数据集如GraspNet-1Billion等,主要包含漫反射物体,缺乏透明和镜面物体的数据。而当前针对透明和镜面物体的数据集,又缺乏密集的抓取注释。
ASGrasp提出的合成抓取数据集包含115,000组RGB和IR图像,以及10亿个抓取姿势。
数据集中物体的材质包括漫反射、镜面和透明三种类型,场景复杂多样,能够很好地模拟现实世界中的各种抓取场景。
利用Blender生成逼真的RGB和IR图像,并应用领域随机化技术,包括多样化的光照条件、物体姿态、背景等,以缩小模拟与现实的差距,提高模型的泛化能力。
数据集生成流程
(一)材质修改:首先,修改GraspNet-1Billion数据集中的物体材质,增加镜面和透明材质,形成STD-GraspNet数据集。
(二)图像生成:使用Blender模拟Intel Realsense D415相机的设置,生成逼真的RGB和IR图像。
(三)领域随机化:应用领域随机化技术,对光照、物体颜色、背景等进行随机化处理,以提高数据集的多样性和模型的泛化能力。
6、损失函数分析
ASGrasp损失函数由两部分组成:几何损失(Lgeo)、抓取损失(Lgrasp)
几何损失(Lgeo)
- 几何损失用于优化场景重建模块中深度预测的准确性。
- 它计算所有预测的第一层和第二层视差与真实视差之间的L1损失。
- 为了更关注透明和镜面物体的深度补全,对这些物体内的损失赋予更高的权重。
其中,γ=0.9,d1∗和d2∗分别代表第一层和第二层的真实视差,d1(i)和d2(i)是第i次迭代预测的视差。
抓取损失(Lgrasp)
抓取损失用于监督抓取检测模块中的点级和视图级可抓取性景观、抓取分数和夹爪宽度。具体包括以下几个部分:
-
对象性分类损失(Lo):用于区分物体和非物体区域。
-
点级可抓取性景观回归损失(Lp):预测每个点的可抓取性。
-
视图级可抓取性景观回归损失(Lv):预测每个视图的可抓取性。
-
抓取分数回归损失(Ls):预测抓取姿势的成功概率。
-
夹爪宽度回归损失(Lw):预测抓取时夹爪的开口宽度。
抓取损失的公式如下:
其中,α、β和λ是平衡不同损失项的权重系数。
7、训练细节
场景重建网络训练
-
优化器:使用AdamW优化器,初始学习率为0.001,并对梯度进行裁剪,范围为[-1, 1]。
-
训练数据:在DREDS-CatKnown数据集上进行第一层深度损失训练,共100k步,批量大小为4。然后在STD-GraspNet训练集上进行微调,再训练100k步。
-
迭代次数:在所有实验中,训练期间使用12次更新迭代。
抓取检测网络训练
-
输入点云处理:输入点云的深度范围裁剪为[0.25m, 1.0m]。可见点云在训练时下采样到15000个点,推理时下采样到25000个点;不可见点云始终采样到10000个点。
-
抓取性阈值:训练和推理时抓取性阈值均为0。
-
训练环境:在四块NVIDIA RTX 3090 GPU上训练,大约需要1天时间完成10个epoch,批量大小为4。
8、实验与效果测试
硬件设置:使用7-DoF Franka Panda机械臂,配备Intel Realsense D415主动立体RGB-D相机。
模拟设置:使用PyBullet进行物理模拟,基于Blender构建主动立体传感器模拟,渲染逼真的RGB和IR图像。
场景重建实验
-
评估指标:使用RMSE(均方根误差)、REL(平均绝对相对差异)、MAE(平均绝对误差)三个指标评估透明物体深度补全性能。
-
结果比较:在STD-GraspNet测试集上与多种先进方法进行比较,ASGrasp在第一层深度预测上表现最佳,第二层深度预测也展现出色性能。
STD-GraspNet示例测试数据,进行点云重建定性比较:
深度重建对比:
抓取实验
评估指标:使用成功率(SR)和清理率(DR)两个指标评估抓取性能。
模拟抓取实验:
-
实验协议:在STD-GraspNet测试集上进行,包含90个场景,分为已见、相似和新场景三类。每个场景包含5到10个物体,组合了漫反射、透明和镜面材质。从256个视角中均匀采样30个视角进行测试。机器人手臂执行抓取和移除物体操作,直到工作区清理完毕或达到15次尝试。
-
结果与分析:GSNet(RealRaw)由于在透明物体上深度错误或缺失,性能较低。SwinDR虽改善了深度,但过度平滑导致抓取性能下降。GSNet(SynVisible)输入可见点云,性能接近Oracle(SynVisible)。GSNet(SynComplete)利用两层完整点云,性能最佳,甚至超越Oracle(SynVisible)。
真实机器人实验:
-
实验协议:包含18个测试物体,其中11个为相似物体,7个为新物体。创建6个测试场景,分为混合、透明和新物体场景。任务是将物体抓取到指定位置,直到工作区清理完毕或达到15次尝试。
-
结果与分析:ASGrasp方法在所有测试场景中均取得最高成功率和清理率。与原始GSNet相比,成功率和清理率显著提高。在透明物体场景中,未进行深度恢复时成功率极低,而ASGrasp方法能实现90%以上的成功率和清理率。
最后看一下复现的效果:
下面是RGB图:
第一层深度图
第二层深度图
输出Top10的抓取位姿
分享完成~