三维向量变化为角度_物体的三维识别与6D位姿估计:PPF系列论文介绍(四)

作者:仲夏夜之星

Date:2020-04-14

来源:物体的三维识别与6D位姿估计:PPF系列论文介绍(四)

文章“3D Pose Estimation of Daily ObjectsUsing an RGB-D Camera”2012发表在IEEE/RSJInternational Conference on Intelligent Robots and Systems上,这篇文章对原始点对特征(PPF)作了一个很大的改进。

本文创新点

本文提出了一种利用深度和颜色信息的物体姿态估计算法。虽然许多方法假设目标区域是从背景中分割的,但我们的方法不依赖于这个假设,因此它可以估计目标物体在重杂波中的姿态。最近,引入了一个定向点对特征作为对象表面的低维描述,该特征已被应用于投票方案中,在对象模型和测试场景特征之间找到一组可能的三维刚性转换。虽然使用点对特征的几种方法需要一个精确的三维cad模型作为训练数据,但我们的方法只依赖于目标对象的几个扫描视图,因此学习新对象是很简单的。此外,我们认为,利用颜色信息可以显著提高投票过程的时间和准确性。为了利用颜色信息,我们定义了一个颜色点对特征,该特征用于投票方案中,以获得更有效的姿态估计。

本文主要内容

1.原始点对特征及改进的颜色点对特征

我们将一组点对的特征定义为下式,也就是四维特征。

249969d7a9fe774d2aa345865cd12dfb.png

其中d=||pi−pj||,∠(v1,v2)∈[0;π)表示两个向量之间的角度。第一个分量,d2=||pi−pj||2,表示两个表面点之间的欧几里德距离。 第二和第三分量分别是矢量d与表面法向量ni和nj之间的角度。最后一个分量是两个法向量之间的角度。原始PPF适用于表面法线变化丰富的物体,但它通常不足以描述平面或自对称物体。 因此,需要增加点对特征,以便该特征对这些类型的对象更加有效。 本文提出颜色点对特征Fcppf,它是通过连接点的两个三维颜色向量来定义的:

5c6584a0dc2c30ca49d032896ac73893.png

其中ci和cj∈R3是颜色向量,通常来说,每个颜色通道被归一化为c∈[0;1]。 如下图所示描述了CPPF特征。

fedf4a643f3367fded53c2157f1a4109.png

2.对象学习

要使用CPPF作为哈希表的密钥,我们需要量化特征描述符:

2c4a454ff6b41037c27bc920d3df6f47.png

其中

f0f5600f7b5829cf2802f42a292fbd35.png

分别表示距离、角度和颜色向量的量化级别。符号

c1ee94ed4693fed0de2618ce42bf279e.png

表示按分量划分。利用特征CPPF的这个索引I,将姿态估计所需的信息保存在哈希表H中,通过将特征存储在H中,将相似的CPPFs分组在同一个时隙中,并可以在平均恒定时间内与场景CPPFs进行匹配。

在算法1中给出了对象学习过程,给定对象模型点云M,该算法返回学习的哈希表H,Nm表示M中的点数,是将在下文介绍的中间角。量化参数δ,θ,

6e2017f61a94890b6aa5081fba95215a.png

是重要的参数设置。根据我们的经验,在实验中δ=2mm、

feba1d7ad1f96c8d21fe625480a26e24.png

ad0141e474c1626d295fc75ccdf0b240.png

,并不能得到很好地效果。对于的颜色量化级别,我们使用HSV颜色空间。 v通道通常不受光照变化的影响,因此使用了更大的水平即0.4。

81c06644a4d96b94547ddffb1997801d.png

3.投票方案

如下图所示,

6c5b5e5fe4a9dfd04260dfe28b89bbf0.png

是将

cf2a675cb40c4a8dcb66b986aee579d6.png

转化为原点,并将其法线

24b10e98f9deb38a6d619f228d7e58a3.png

旋转到X轴上,对于场景点对,

7fac9782706334f3cbc26a3ddd9c6e57.png

也是如此。

e846bd64b8f2daf3625198e3b1a6d85b.png
1f5c16f332a10f0956c8a19842129d27.png

算法2详细地描述了投票过程,以哈希表H、对象模型点云M和测试场景点云N的点数Ns作为输入,然后以返回Np姿态假设P作为输出。场景点的采样比率

9dfe990cad921882a7684ad6a70a5b33.png

和投票阈值都

664814e7865c5bbfbd0fee4c8d4ec11e.png

来控制速度和精度之间的权衡。实验中,我们考虑NP=10作为姿态假设,并检查

9dfe990cad921882a7684ad6a70a5b33.png

=1.0的所有场景点。我们通常设置,但根据对象的大小稍微调整。随机样本RandomSample(N)在不重复的情况下返回1到N之间的随机数,Intertransform (p,n)使用给定的点P和法向N计算来对齐变换。最后,PoseClustering(P,NP) 在一组NP分组姿态中将原始姿态假设P聚在一起,将在下一节中解释。

49e3d91924ec2ff15429b99bdce68896.png

4.位姿聚类

我们采用了一种有效的聚集聚类方法,函数PoseClustering(P,Np)以未聚类的姿态假设P作为输入,并按投票数的递减顺序对它们进行排序,从创建一个具有最高票数的姿态假设的新集群开始,类似的姿态被分组在一起,如果一个姿态远离现有的集群,则创建一个新的集群,姿态之间的距离测试是基于平移和旋转中的固定阈值,当聚类完成后,再次对聚类进行排序,并返回顶部NP姿态聚类。

实验结果

1.测试对象

e72f85c91fb7c089f4a62dc66e9a7516.png

2.添加高斯噪声的结果

af5bffa05ff4a783c35df20ecfcdec91.png

3.聚类场景分析

71e989811aa2466da16512c24a263631.png

参考文献

[1] B. Drost, M. Ulrich, N. Navab, and S. Ilic, “Model globally,match locally: Efficient and robust 3D object recognition,” in Proceedings ofIEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2010.

[2] A. S. Mian, M. Bennamoun, and R.Owens, “Three-dimensional model-based object recognition and segmentation incluttered scenes,” IEEE Transactions on Pattern Analysis and MachineIntelligence, pp.1584–1601, 2006.

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

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

相关文章

前端学习(2224):react之函数式组件

import React from react; import ReactDOM from react-dom;function Childcom() {let title < h2 > 我是副标题 < /h2>let weather "下雨"let isGo weather 下雨 ? "不出门" : "出门"return ( <div ><h1 > 函数式…

hive sqoop导出 postgresql精度丢失_Mysql 与 hadoop 数据同步(迁移),你需要知道 Sqoop...

上篇文章 Mysql 到 Hbase 数据如何实时同步&#xff0c;强大的 Streamsets 告诉你 我们说到了如何使用 Streamsets 来进行 mysql 到 hbase 的数据实时同步(迁移)。使用 Streamsets 的优点是部署简单&#xff0c;配置灵活&#xff0c;无需编写代码。认真阅读上篇文章的朋友会发现…

Less配置环境

一、安装Sublime 插件 1.安装Less插件&#xff1a; ctrlshiftp>install Package>输入less按Enter 2.安装Less2CSS插件&#xff1a;ctrlshiftp>install Package>输入less2css按Enter 作用&#xff1a;当保存less文件的时候自动生成同名的css文件&#xff1b;当保存…

前端学习(2225):react之类定义组件

import React from react; import ReactDOM from react-dom;function Childcom() {let title < h2 > 我是副标题 < /h2>let weather "下雨"let isGo weather 下雨 ? "不出门" : "出门"return ( <div ><h1 > 函数式…

clion 查看内容窗口_苹果电脑(macOS)查看 WiFi 密码的两种方法

WiFi 密码通常是第一次连接的时候输入一遍&#xff0c;之后当再次进入 WiFi 信号范围就会自动连接&#xff1b;在苹果的生态下&#xff0c;若果多个你有多个设备共用一个苹果 ID ,甚至只需要在其中一台设备上连接一次 WiFi &#xff0c;其他设备就可以自动连接此 WiFi。方便的同…

前端学习(2226):react之组件

index.js import React from react; import ReactDOM from react-dom;function Childcom(props) {console.log(props)let title < h2 > 我是副标题 < /h2>let weather "下雨"let isGo weather 下雨 ? "不出门" : "出门"return…

ad证书服务器在ADgroup,ACS 5.x :根据AD组成员配置示例和Authorization命令的TACACS+认证...

本文提供配置根据用户的AD组成员和Authorization命令示例的TACACS认证思科安全访问控制系统(ACS) 5.x和以后。ACS使用Microsoft Active Directory (AD)&#xff0c;外部标识存储存储资源例如用户、机器、组和属性。尝试进行此配置之前&#xff0c;请确保满足以下要求&#xff1…

一年中最后一个月的最后一天说说_一年的最后一天说说

今天是2021的最后一天&#xff0c;让我们跟它说一声再见吧&#xff01;小编整理了一年的最后一天说说&#xff0c;希望你们喜欢&#xff01;1、2021年就要过去了!在这一年中、有期待、有开心、有悲伤&#xff0c;然而这一切的情绪都将随着元旦的到来化作记忆。让我们在2021年最…

xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解

对Xpath 获取子标签下所有文本的方法详解在爬虫中遇见这种怎么办想提取名称&#xff0c; 但是 名称不在一个标签里使用xpath string()方法例如data.xpath("string(path)")path -- 你xpath提取的路径 这里提取到父标签string() 方法会提取子标签多有的文本内容。以上这…

前端学习(2226):react之状态

index.js import React from react; import ReactDOM from react-dom;class Clock extends React.Component {constructor(props) {super(props)//状态 时间this.state {time: new Date().toLocaleTimeString()}console.log(this.state.time)}render() {return ( <div >…

前端学习(2227):react之状态二

import React from react; import ReactDOM from react-dom;class Clock extends React.Component {constructor(props) {super(props)//状态 时间this.state {time: new Date().toLocaleTimeString()}console.log(this.state.time)}render() {return ( <div ><h1 &g…

前端学习(2229):react条件渲染实现登录

index.js import React from react; import ReactDOM from react-dom;function UserGree(props) {return ( < h1 > 欢迎登陆 < /h1>)}function UserLogin(props) {return ( < h1 > 请先登陆 < /h1>)}class ParentCom extends React.Component {constr…

前端学习(2230):react条件渲染实现登录二

import React from react; import ReactDOM from react-dom;function UserGree(props) {return ( < h1 > 欢迎登陆 < /h1>)}function UserLogin(props) {return ( < h1 > 请先登陆 < /h1>)}class ParentCom extends React.Component {constructor(prop…

前端学习(2231):react条件渲染之列表渲染

import React from react; import ReactDOM from react-dom; let arr [小明, 小红, 小花] let arrHtml [ < li > 小明 < /li>,<li>小红</li > ] class Welcome extends React.Component {constructor(props) {super(props)this.state {isLogin: tru…

SurvivalShooter学习笔记(八.敌人管理器)

敌人管理器&#xff1a;管理敌人的随机出生点创建 在场景中建立几个空物体&#xff0c;作为敌人的出生点 public class EnemyManager : MonoBehaviour{public PlayerHealth playerHealth; // 玩家生命脚本public GameObject enemy; // 敌人物体预制&#…

前端学习(2233):react的子传父数据传递

import React from react; import ReactDOM from react-dom;import ./App.css class ParentCom extends React.Component {constructor(props) {super(props)this.state {childData: null}}render() {return ( <div ><h1 > 子元素传递给父级 { this.state.childDa…

idea maven web工程明明添加了maven lib的依赖,但启动web容器时始终报No Class Found?...

idea maven web工程明明添加了maven lib的依赖&#xff0c;但启动web容器时始终报No Class Found? 很久没用idea搭新工程&#xff0c;最近自己想做个东西&#xff0c;冲心搭个web工程&#xff0c;jar包都用maven刷好了&#xff0c;而且也将jar包添加至web module的Dependences…

mysql identity sql_SQL Server中identity(自增)的用法详解

一、identity的基本用法1.含义identity表示该字段的值会自动更新&#xff0c;不需要我们维护&#xff0c;通常情况下我们不可以直接给identity修饰的字符赋值&#xff0c;否则编译时会报错2.语法列名 数据类型 约束 identity(m,n)m表示的是初始值&#xff0c;n表示的是每次自动…

上传文件至数据库并下载

在FineReport中&#xff0c;会出现希望直接将txt、excel等文件整个保存在数据库中进行备份&#xff0c;并且希望通过FineReport制作报表将这些文件下载下来的情况。 上传&#xff1a;使用文件控件上传文件&#xff0c;以二进制流保存至数据库字段中&#xff08;字段类型必须是用…