基于投票方式的机器人装配姿态估计
点击上方“小白学视觉”,选择“星标”
干货第一时间送达
论文题目:《Voting-Based Pose Estimation for Robotic Assembly Using a 3D Sensor》
这篇文章被发表在2012年的IEEE International Conference on Robotics and Automation上。
摘要:本文提出了一种基于投票的适用于三维传感器的位姿估计算法,能够快速代替机器人行业、计算机视觉和游戏应用程序中二维相应的算法。最近研究表明在投票框架中,一对有方向的三维点,即物体表面上的点有其对应的法线可以实现快速和鲁棒的位姿估计。尽管定向表面点对于有足够曲率变化的对象具有辨别能力,但对于许多工业和现实生活中大部分平面的对象来说,它们不够紧凑和辨别能力强。由于边缘在二维配准中起关键作用,深度不连续性在三维中起关键作用。在本文中,我们研究和发展了一组姿态估计算法,以更好地利用这一边界信息。除了有方向的表面点,我们使用了另外两个基本元素:有方向的边界点和边界线段。实验表明,这些经过精心选择的原语编码的信息更紧凑,从而为广泛的工业零件提供更高的精度,并使得计算速度更快,本文使用提出的算法和一个3D传感器来演示了一个实用的机器人捡货系统。
一、拣货系统概述
图1
如上图左边所示,展示了捡箱系统的设置。本系统使用一个附在六轴工业机器人手臂上的3D传感器来估计随机放置在箱子里的物体的姿态。3D传感器是基于结构光使用红外激光,并提供三维数据作为像素的深度图。3D传感器相对于机器人手臂进行校准,从而允许使用估计的姿态抓取和挑选对象。右图为算法流程图,本系统使用3D传感器扫描对象的箱子,给定目标物体的三维CAD模型,使用基于投票的算来扫描三维点云对目标物体进行检测和姿态估计,这提供了多个粗的位姿假设。该系统选择几个最优位姿假设,并使用ICP算法的变体对其进行单独的优化。该算法利用当前位姿估计对CAD模型进行渲染,并通过对渲染模型表面的采样生成三维点。然后为模型中的每个三维点计算扫描点云中最近的三维点,并利用三维点对应更新姿态估计。改进后的配准误差由对应场景与模型点之间的平均距离给出,当投票算法计算出的粗位姿不正确,或者由于被其他物体遮挡而丢失部分物体时,配准误差会很大。如果配准误差很小,并且机器人手臂能安全地到达估计的姿态,系统就会抓取目标。
二、投票位姿估计
A.点对特征
1)S2S — Surface-to-Surface
2)B2B — Boundary-to-Boundary
3)S2B — Surface-to-Boundary
4)L2L — Line-to-Line
图2
B.物体表示
C.投票机制
在计算点对特征并构造哈希表结构的基础上,通过计算场景对特征与一组对应的模型对特征之间的刚体变换,找到提出假设,为了提高搜索效率,本文采用了投票方案,利用局部坐标将投票空间缩减为2D空间。首先,在哈希表中搜索场景点对,其中是来自场景的基元集,并找到对应的模型点对, 然后将点对的参考点对准中间坐标系,如图3所示。为了完全对齐对,参考点和,应该通过围绕法线旋转物体来对齐。计算平面旋转角度后,局部坐标由参考模型点对与平面旋转角度定义,到的变换为:
图3
D.L2L点对的投票机制
图4
E.位姿聚类
本文采用的是欧式聚类,首先对原始的pose假设按投票数的降序排序,从最高的投票中创建了一个新的集群。如果下一个位姿假设靠近一个已有的簇,则将该假设添加到簇中,簇中心更新为簇内位姿假设的平均值。如果下一个假设不接近任何一个集群,它就会创建一个新的集群。在平移和旋转过程中,采用固定阈值进行近似测试。平移距离计算和均值化在三维欧几里得空间中进行,旋转距离计算和均值化使用四元数表示。聚类后,对聚类按总票数的递减顺序进行排序,总票数决定了估计姿态的置信度。
三、实验结果
1)合成数据
2)真实数据
论文下载方式
在公众号「3D视觉工坊」后台回复「机器人装配姿态估计」,即可获得论文下载链接。
参考文献
[1] C. Choi and H. I. Christensen, “Robust 3D visual tracking using particle filtering on the SE(3) group,” in ICRA, 2011.
[2] R. Raskar, K. Tan, R. Feris, J. Yu, and M. Turk, “Non-photorealistic
camera: Depth edge detection and stylized rendering using multi-flash imaging,” ACM Trans. Graphics, vol. 23, pp. 679–688, 2004.
本文仅做学术分享,如有侵权,请联系删文。
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
基于投票方式的机器人装配姿态估计相关推荐
- mpu9250姿态融合算法_基于投票方式的机器人装配姿态估计
作者:仲夏夜之星 来源:公众号 @3D视觉工坊 链接:基于投票方式的机器人装配姿态估计 论文题目:<Voting-Based Pose Estimation for Robotic Assemb ...
- 基于CNN的2D多人姿态估计论文综述
bottom up系列算法(直接获取全图人体关键点): 1.Openpose(coco2016关键点冠军,利用paf进行group) 2.Lightweight OpenPose(轻量级Openpos ...
- 基于正交投影的实时三维人体姿态估计
王亦洲课题组 ECCV 2022 入选论文解读:基于正交投影的实时三维人体姿态估计 本文是对发表于计算机视觉领域顶级会议 ECCV 2022的论文 Faster VoxelPose: Real-tim ...
- 基于深度学习的三维人体姿态估计
目录 一.技术背景 1.1 人体姿态估计 1.2 三维人体重建 1.4 构建多人场景研究情况 二. 技术方法 2.1 基础架构 2.2 重叠loss 2.3 深度顺序感知loss 四.存在的 ...
- 基于参数化模型(MANO)的手势姿态估计---全面剖析
目前, 主流的手部姿态估计的技术方案是使用马普所于2017年提出的MANO参数化模型, 在此基础上回归3D坐标, 这是因为MANO有很合理的结构以及定义好的前向动力学树.本文的目的在于为大家介绍,基于 ...
- 基于3D深度视觉的人体姿态估计算法
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 人体姿态估计是当前计算机视觉领域的热点研究问 ...
- 基于深度关键点的几何约束摄像机姿态估计
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:Deep Keypoint-Based Camera Pose Estimation with ...
- 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...
- OpenCV进阶(6)基于OpenCV的深度学习人体姿态估计之多人篇
在之前的文章中,我们使用OpenPose模型对一个人进行人体姿势估计.在这篇文章中,我们将讨论如何进行多人姿势估计. 当一张照片中有多个人时,姿态估计会产生多个独立的关键点.我们需要找出哪组关键点属于 ...
最新文章
- git File name too long
- Spring 4 官方文档学习(十一)Web MVC 框架之异常处理
- 【iOS】图片缩放动画
- linux线程同步(5)-屏障
- Netty之实现一个简单的群聊系统
- 人工神经网络算法原理和应用
- 传统新年元旦海报设计,必备高品质吉祥图案背景
- c语言指针的概念和作用,指针:C语言的重要概念和特色.pdf
- ansible操作远程服务器报Error: ansible requires the stdlib json or simplejson module, neither was found!...
- 深入理解JavaScript系列(25):设计模式之单例模式
- python积最大的分解_pyfactor
- python报错: list object has no attribute shape的解决
- Leetcode——237. 删除链表中的节点(Java)
- JS实现环绕地球飞行的3D飞行线动画效果(JS+HTML)
- php投影,投影+直播双模式方案搭建
- 超好看的辅助网站源码
- 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)解决
- 妹子图kotlin版
- Python做接口测试生成测试报告失败
- “开源是一个自我实现的预言”,Shifu创始人陈永立说道
热门文章
- 《周志华机器学习详细公式推导版》发布,Datawhale开源项目pumpkin-book
- 保障高并发:企业必须从传统性能测试转向云压测
- 精选26个Python实用技巧,想秀技能先Get这份技术列表!
- 魔法科技迈吉客未来起飞路径猜想
- 专访云知声黄伟:场景定义芯片,未来所有场景都需要AI | AI名人堂
- NLP公开课 | 竹间智能翁嘉颀:人机交互未来如何改变人类生活
- 开源助力!武汉新型冠状病毒防疫开源信息收集平台
- 投了3遍都被毙的论文,终于中了
- 虚数有物理意义:中科大潘建伟、南科大范靖云团队首次实验排除实数形式的标准量子力学...
- 实操教程|PyTorch AutoGrad C++层实现