【论文阅读】GraspNeRF: Multiview-based 6-DoF Grasp Detection

news2024/10/1 12:09:59

文章目录

  • GraspNeRF: Multiview-based 6-DoF Grasp Detection for Transparent and Specular Objects Using Generalizable NeRF
    • 针对痛点和贡献
    • 摘要和结论
    • 引言
    • 模型框架
    • 实验
    • 不足之处

GraspNeRF: Multiview-based 6-DoF Grasp Detection for Transparent and Specular Objects Using Generalizable NeRF

基于多视角的透明和镜面物体6自由度抓取检测

Project page

针对痛点和贡献

痛点:

  • 深度相机在感知透明和镜面物体的几何形状方面失败了。

贡献:

  • 我们的方法将可泛化的 NeRF 扩展到抓取,无需优化即可实现稀疏输入和直接实时推理。即场景表示和抓取的联合学习,以利用它们之间的协同作用。
  • 我们在杂乱的桌面场景中生成了一个大规模的合成多视图抓取数据集,利用域随机化来弥合模拟到真实的差距。

摘要和结论

本文首次提出了一种基于多视图rgb的六自由度抓取检测网络GraspNeRF,该网络利用可推广的神经辐射场(NeRF)在杂波中实现与材料无关的物体抓取
我们的系统可以使用稀疏 RGB 输入执行零样本 NeRF 构造,并实时可靠地检测 6-DoF 抓取。

引言

  • 第二段【其他工作缺陷与挑战,进而引出动机和方法】:ClearGrasp[8]、TransCG[7]、SwinDRNet[9]致力于深度恢复和基于rgb的抓取方法,利用RGBD输入,学习恢复缺失的深度,并在执行抓取之前将错误的深度纠正为一个单独的步骤。DexNeRF [10] 提供了一种有价值的替代方案,只需要 RGB 输入。它首先构建一个 NeRF,完成对物体的三维重构inverse rendering但这种方法有几个重要的局限性。①它的NeRF构造需要耗时的每个场景训练,这需要至少几个小时,这与所需的实时运行相差甚远。②对于多目标顺序抓取,这变得更糟,因为场景在每次抓取后都会发生变化,因此需要重新训练 NeRF。
    EvoNeRF[12] 提出了一个并行工作,EvoNeRF[12]提出使用Instant-NGP[13]来加速NeRF训练,并在每个抓取后进化NeRF。然而,每次更新仍然需要 7 秒,依赖于密集的图像输入,并且只能从自上而下的视图执行 3-DoF 抓取。 使用 vanilla NeRF 的另一个大缺点是从 NeRF 中提取的场景几何通常不完美,并且对于由透明物体和无纹理背景组成的场景,质量非常低,因为 NeRF 只过度拟合它们的 RGB 颜色。 错误的几何图形会严重降低下游预训练抓取算法的性能。
  • 第三段:为了缓解这些问题,我们建议利用可推广的NeRF (generalizable NeRF) ,例如MVSNeRF[14]、NeuRay[15],它在许多不同的场景上进行训练,并学习聚合多视图观察和零镜头构造nerf,用于没有训练的新场景。此外,它只需要稀疏的输入视图,这对于现实世界的应用更实用。我们的框架首先构建了一个类似 3D 网格的工作空间,并通过聚合多视图图像特征来获得网格特征。在这些网格点上,我们建议预测截断符号距离函数 (TSDF,truncated signed distance function) 以获得完整的 3D 几何场景表示,这使我们不必计算深度。 输入这个TSDF,我们的体积抓取检测网络可以预测每个网格点的6自由度抓取。请注意,这个 TSDF 也可以变成密度并用于体绘制。

NeRF,这是一种强大的隐式 3D 表示,它使用 MLP 对场景几何进行编码,通过从不同视点捕获一组RGB 图像,然后使用体积渲染来渲染进一步传递到 3-DoF 抓取模块的俯视图深度图。
truncated signed distance function:TSDF地图算法分析 实时三维重建

模型框架

在这里插入图片描述

  • 问题陈述和方法概述
    我们将6-DoF自由度抓取检测,公式化为一个学习问题。该问题映射来自N个输入视图的一组图像{Ii}i=1…N,到一组6-DoF抓取{gj|gj=(tj,Rj,wj,qj)},其中,对于每个检测到的抓握(grasp)gj,tj∈R3是3D位置,Rj∈SO(3)是3D旋转,wj∈R是开口宽度,qj∈{0,1}是质量。
    框架由场景表示构建模块(scene representation construction module)Fscene和体积抓取检测模块(volumetric grasp detection module)Fgramp组成,如图2所示。
    在Fscene中,我们首先提取并聚合多视点图像,两个目的是:提取的几何特征(geometric feature)形成一个特征网格(feature grid),并将其传递到我们的TSDF预测网络,以构建场景的TSDF,该TSDF对场景几何结构以及底层NeRF的密度进行编码;同时,这些特征被用于预测颜色,这与密度输出一起实现了NeRF渲染。将预测的TSDF作为输入,我们的体积抓取检测模块Fgravity然后学习预测TSDF的每个体素处的6-DoF抓取。

  • 场景表示构建
    我们利用可泛化的NeRF来学习聚合来自多个视图的观察结果并形成体积特征网格。我们的场景表示构建模块中使用的可泛化 NeRF 受到 NeuRay [15] 的启发。(输出密度和颜色)

  • 体积抓取检测
    3D CNN抓取检测器Fgrasp学习从TSDF网格到密集抓取候选体积的映射,灵感来自[2]。我们将体积内每个体素的中心视为抓取位置候选。在给定位置 t∈R3时,检测器从单独的解码器头预测三个输出,包括抓取质量q、旋转R和开口宽度w。
    为了选择合适的抓取执行,我们根据预测的TSDF丢弃远离表面的抓取位置候选。随后,我们使用高斯平滑质量体积,过滤掉低于阈值的抓取,并利用非最大抑制。我们还选择满足夹持器最大开口宽度的抓取。最后,我们从剩余的候选中随机选择抓取进行机器人执行,以防止由于假阳性而重复执行不成功的抓取

  • 基于域随机化的合成数据生成
    提出了一种基于大规模合成多视图RGB的抓取数据集,该数据集包含100K场景,对象范围从漫反射、镜面反射到透明、240万个RGB图像和200万个6自由度抓取姿势。
    为了弥合 sim2real 差距,我们利用域随机化,它随机化对象材料和纹理、背景、照明和相机姿势。在对具有足够变化的合成数据集进行训练后,网络在测试时将真实数据视为训练数据的变化,从而推广到真实数据。

  • Network End-to-End Training
    端到端训练来联合学习场景表示和抓取,鼓励这两个任务相互受益。对于抓取,感知和重建场景几何至关重要;准确的抓取预测,反过来又需要高质量的场景表示。训练目标由三部分组成。
    **抓取损失:**对于抓取学习,我们监督所做的抓取质量、方向和开口宽度,公式为:在这里插入图片描述颜色损失: 学习一个可推广的辐射场,我们随机抽取6个训练视图作为每个训练场景的输入,并随机选择另一个目标视图进行渲染。我们使用 L2 损失监督新颖的视图合成。
    在这里插入图片描述
    几何损失:
    在这里插入图片描述

在这里插入图片描述

实验

在本节中,我们通过仿真和实际机器人实验来评估我们提出的方法抓取任务的性能。我们还对模拟数据进行了消融研究,以分析我们框架中包含的主要设计的影响。

  • Experiment Setup:
    Grasping Environment Setup: Franka Emika Panda机器人手臂,RealSense D415 RGBD 相机(我们的方法没有使用深度)连接到夹具的手腕上。
    Simulation Environment Setup: 我们在 PyBullet 和 Blender 上构建了模拟环境,分别用于物理抓取模拟和多视图逼真图像渲染。

  • 评估指标: 我们通过 1)Success Rate (SR) 来衡量性能:成功抓取次数与尝试次数的比率,以及 2) 整洁率 (DR):所有轮次中移除对象的平均百分比

  • 模拟抓取实验:
    利用广泛的模拟数据来评估所有方法。我们的实验包括:
    1)单个对象检索:一个对象被放置在工作空间的中心。机械臂执行基线预测的抓取,成功的抓取表明对象被抓取在工作空间之外。我们使用 12 个测试对象、4 个每个透明、镜面或漫反射材料进行评估。每个对象经过三次测试,遵循与EvoNeRF[12]相同的协议,并报告抓取成功率。
    2) 顺序去杂:我们在成堆和拥挤的场景中进行了200次圆桌清理实验,每个实验包含5个对象。每一轮都共享相同的对象和对象姿势,具有两种材质组合:A)透明和高光,以及B)所有漫反射、透明和高反射材质的混合。在一轮的每次试验中,机械臂抓取并移除一个物体,直到工作空间被清空或抓取检测失败或达到两个连续的失败。报告了两种材料组合的结果。

在这里插入图片描述

与其他方法相比,我们的方法显著提高了透明和镜面物体抓取的性能。

  • real 机器人实验:
    我们遵循模拟实验的协议。
    1)对于单个对象检索,我们选择6个对象,包括透明、镜面反射和漫反射各2个,并将它们以相同的姿势放置在相同的位置。抓取迭代重复三次。
    2)对于顺序杂波去除,我们对堆积场景和压缩场景进行了15轮迭代,报告了透明和镜面对象场景以及混合材料场景的结果。每个场景包括4-6个随机选择的对象,我们从6个视图中捕获RGB图像,就像在模拟环境中一样。网络接收多视点输入并输出6-DoF抓取候选者,其中机械臂执行顶部抓取。如果将对象从工作空间中移除,我们认为抓取是成功的。当抓取失败两次或所有物体都被清除时,一轮结束。

尽管如此,我们确实注意到了一些失败案例。例如,当抓取填充场景中的直立圆柱形物体时,如硬玻璃瓶,由于摩擦不足,夹持器可能会滑掉瓶子。
在这里插入图片描述

在这里插入图片描述
不同方法的TSDF比较。直接从原始深度观测融合的VGN的几何形状是不完整的。即使SwinDRNet恢复,几何图形仍然过于平滑,难以进行抓取检测。NeRF-VGN 也由于它在无纹理背景下渲染深度不准确而失败。由于对不同数据的学习,我们的方法仅对镜面和透明物体产生良好的 TSDF。

不足之处

一个局限性在于体积网格,其有限的分辨率可能是几何重建和抓取性能的瓶颈。我们将进一步改进留给未来的工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1413249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vulnhub靶场DC-9

攻击机192.168.223.128 靶机192.168.223.138 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -sV -p- -A 192.168.223.138 开启了22 80端口 访问一下web页面 有个查询界面 测试发现存在post型的sql注入 用sqlmap跑一下,因为是post型的,这里…

C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理

介绍 RabbitMQ是一个开源的消息队列系统,实现了高级消息队列协议(AMQP)。 🍀RabbitMQ起源于金融系统,现在广泛应用于各种分布式系统中。它的主要功能是在应用程序之间提供异步消息传递,实现系统间的解耦和…

RabbitMQ问题总结

:::info 使用场景 异步发送(验证码、短信、邮件。。。)MySQL 和 Redis、ES 之间的数据同步分布式事务削峰填谷… ::: 如何保证消息不丢失 上图是消息正常发送的一个过程,那在哪个环节中消息容易丢失?在哪一个环节都可能丢失 生…

Ubuntu20.4 Mono C# gtk 编程习练笔记(四)

连续实时绘图 图看上去不是很清晰,KAZAM录屏AVI尺寸80MB, 转换成gif后10MB, 按CSDN对GIF要求,把它剪裁缩小压缩成了上面的GIF,图像质量大不如原屏AVI,但应该能说明原意:随机数据随时间绘制在 gtk 的 drawin…

使用OpenCV实现一个简单的实时人脸跟踪

简介: 这个项目将通过使用OpenCV库来进行实时人脸跟踪。实时人脸跟踪是一项在实际应用中非常有用的技术,如视频通话、智能监控等。我们将使用OpenCV中的VideoCapture()函数来读取视频流,并使用之前加载的Haar特征级联分类器来进行人脸跟踪。 …

浅谈Python两大爬虫库——urllib库和requests库区别

目录 一、urllib库 1、使用方法 2、功能 3、效率 二、requests库 1、使用方法 2、功能 3、效率 三、总结与建议 在Python中,网络爬虫是一个重要的应用领域。为了实现网络爬虫,Python提供了许多库来发送HTTP请求和处理响应。其中,url…

MySql8的简单使用(1.模糊查询 2.group by 分组 having过滤 3.JSON字段的实践)

MySql8的简单使用(1.模糊查询 2.group by 分组 having过滤 3.JSON字段的实践) 一.like模糊查询、group by 分组 having 过滤 建表语句 create table student(id int PRIMARY KEY,name char(10),age int,sex char(5)); alter table student add height…

【Linux C | 网络编程】入门知识:TCP协议、TCP客户端、TCP服务端

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

MySQL 数据库 JDBC 简化 JDBCTemplate

JDBCTemplate编程 场景:使用JdbcTemplate技术向MySQL中插入一条数据 表结构如下 create table t_person(person_id int primary key auto_increment,person_name varchar(20),age tinyint,sex enum(男,女,奥特曼),height decimal(4,1),birthday datetime ) AP…

勤学苦练“prompts“,如沐春风“CodeArts Snap“

前言 CodeArts Snap 上手一段时间了,对编程很有帮助。但是,感觉代码编写的不尽人意。 我因此也感到困惑,想要一份完整的 CodeArts Snap 手册看看。 就在我感觉仿佛"独自彷徨在这条悠长、悠长又寂寥的雨巷"时,我听了大…

Ubuntu+Apache+MySQL+PHP+phpstorm+xdebug下的debug环境搭建(纯小白笔记)

关键词 一、win10双系统装Ubuntu(Deepin) 参考文章: https://www.cnblogs.com/masbay/p/11627727.html 1.1 首先需要确定自己操作系统的引导方式 1.1.1 查看BIOS模式 “winr"快捷键进入"运行”,输入"msinfo32…

微软 AD |域控制器 | 组件 | 域服务 | 对象解析

介绍 Active Directory(AD),是微软的目录服务,提供强大的功能和管理体系,用于组织管理和安全存储网络上的资源和用户、计算机、服务对象等信息。 AD 功能: 身份验证和访问控制: 提供集中式的身…

2024 高级前端面试题之 CSS 「精选篇」

该内容主要整理关于 CSS 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 CSS模块精选篇 1. 盒模型2. BFC3. 层叠上下文4. 居中布局5. 选择器权重计算方式6. 清除浮动7. link 与 import 的区别8. CSS3的新特性9. CSS动画和过渡10. 有哪些…

Mac中java jdk、android sdk、flutter sdk目录

1、Java JDK 目录 (1)官网下载的 Java JDK Java JDK下载官网 /Library/Java/JavaVirtualMachines(2)Android Studio下载的 Java JDK /Users/用户名/Library/Java/JavaVirtualMachines2、Android SDK 目录 /Users/用户名/Libr…

以梦为码,CodeArts Snap 缩短我与算法的距离

背景 最近一直在体验华为云的 CodeArts Snap,逐渐掌握了使用方法,代码自动生成的准确程度大大提高了。 自从上次跟着 CodeArts Snap 学习用 Python 编程,逐渐喜欢上了 Python。 我还给 CodeArts Snap 起了一个花名: 最佳智能学…

SQL注入实战:二阶注入

一、二阶注入的原理 1、二阶注入也称为SOL二次注入。 2、二次注入漏洞是一种在Web应用程序中广泛存在的安全漏洞形式:相对于一次注入漏洞而言,二次注入漏洞更难以被发现,但是它却具有与一次注入攻击漏洞相同的攻击威力。 3、简单的说,二次…

GitHub国内打不开(解决办法有效)

最近国内访问github.com经常打不开,无法访问。 github网站打不开的解决方法 1.打开网站http://tool.chinaz.com/dns/ ,在A类型的查询中输入 github.com,找出最快的IP地址。 2.修改hosts文件。 在hosts文件中添加: # localhost n…

Leetcode—2807. 在链表中插入最大公约数【中等】

2023每日刷题(九十九) Leetcode—2807. 在链表中插入最大公约数 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val…

Datawhale 组队学习之大模型理论基础 Task7 分布式训练

第8章 分布式训练 8.1 为什么分布式训练越来越流行 近年来,模型规模越来越大,对硬件(算力、内存)的发展提出要求。因为内存墙的存在,单一设持续提高芯片的集成越来越困难,难以跟上模型扩大的需求。 为了…

力扣每日一题 ---- 1039. 多边形三角剖分的最低得分

这题的难点在哪部分呢,其实是怎么思考。这道题如果之前没做过类似的话,还是很难看出一些性质的,这题原本的话是没有图片把用例显示的这么详细的。这题中有个很隐晦的点没有说出来 剖出来的三角形是否有交叉,这题中如果加一个三角…