作者:仲夏夜之星
Date:2020-04-08
文章“A Method for 6D Pose Estimation of Free-Form Rigid Objects Using Point Pair Features on Range Data” 2018年发表在《sensors》上,是近年来对PPF方法的进一步继承与改进。
1.本文的思路
本文介绍的方法主要分为两个阶段即线下建模与线上匹配,在建模时,通过计算和保存所有可能的模型对及其相关的PPF来创建全局模型描述符。在匹配阶段,通过使用PPF将场景对与存储的模型对匹配来估计场景中的模型姿态。这一匹配过程由两个不同的部分组成:(1)利用四维特征找到对之间的对应关系;(2)将产生假设姿态的对应关系分组。
模型点对(mr,ms)定义的点对特征
 
2.本文内容
(1)模型的前处理
前处理包括法向估计和对点云的下采样。其中法向估计问题,本文建议使用两个不同的变体来表示每个阶段的输入数据表示。对于离线阶段,使用重构或cad网格数据,通过平均每个顶点周围三角形的法线平面来估计法线。对于在线阶段,利用有组织的点云数据,本文提出了一种基于一阶Taylor展开的方法,包括对表面深度差高于给定阈值的情况下的双边滤波器启发解决方案。而对点云下采样方面,本文是基于一种新的利用表面信息的体素网格下采样方法和一个额外的非识别对的平均步骤。首先计算点云数据的体素网格结构,对于每个体素单元,采用贪婪聚类方法对具有相似正态信息的点进行分组,即法线之间的角度小于阈值。然后,对于每个聚类组,我们平均定向点,有效地合并相似点,同时保持判别数据。与原始方法一样,体素大小设置为,定义相对于模型大小的值,然而,在本文方法中,参数对算法性能的影响显著降低,转向了一种更鲁棒的参数无关方法。
(2)特征提取
在离线阶段,得到模型包围盒,并将模型直径估计为包围盒的对角线长度,对于给定的ppf,使用方程(1)中定义的量化函数来获得四维数组:
(1)
其中量化步骤设置为0.05dm,固定为,这些值被设置为识别率和速度之间的权衡。这样,哈希表的尺寸得定义为,在预处理后,对于每个模型点对,得到量化的ppf索引,并将参考点和计算的保存到哈希表对应的单元格中。
在线阶段,对于每个参考点,将计算所有可能的点对,并使用四维查找表与对象模型进行匹配,其中每五个点中只有一个(按输入顺序)将用作参考点,其余点将用作第二点,为了提高匹配部分的效率并且避免考虑比模型直径更远的点对,对于每个场景参考点,我们建议使用一个有效的kd-tree结构来获得模型直径内的第二个点。
(3)线上匹配
本文提出了一个更有效的解决方案,只检查保持量化步骤大小的16个邻域中最大一个,如图7d所示。考虑到相似点对之间的差异主要是由传感器噪声产生的,可以合理地假设这种噪声遵循一个正态分布,其特征是一个相对较小的标准差,即小于量化步骤,基于这一假设,我们检查量化误差方程
,以确定哪些邻域更有可能受到噪声的影响。这个过程是由方程(2)中表示的分段函数为每个维度定义的:
(2)
其中-1表示左邻域可能受到影响,1表示右邻域可能受到影响,0表示没有邻域可能受到影响。
在实验中,我们将标准差值设置为量化步骤;然而,对于任何特定的噪声模型,都可以使用其他值,该方法可以访问单个哈希表单元格的最佳情况和访问16个单元格的最坏情况。
(4)位姿假设
在假设生成过程中,所有一致的点对应被分组在一起,生成一个候选姿态。详细地说,对于每个获得的场景模型点对,在二维投票表中投票一个LC组合。这样,哈希表的每个位置都表示一个LC,定义了场景中的模型姿态候选,其值表示支持的数量,这表明姿态的可能性有多大。通过一个总大小为
的投票表定义的来量化LCα,在所有投票被投完后,哈希表的最高值表示最可能的LC,为这个场景参考点定义一个候选姿态。该文定义一个阈值,只考虑具有最小支持数的LC,如果哈希表的峰值低于这个数字,则姿态将被丢弃;否则,将生成具有相关分数的候选姿态。
(5)位姿聚类
为了将相似的姿态组合在一起,我们提出了一种分层完全链接聚类方法。这种聚类方法强制要求每个聚类的所有元素组合基于两个主要阈值,即距离和旋转,在实验中,我们根据候选位姿的投票决定对位姿进行排序,并为每个位姿创建一个集群。然后,按顺序检查所有集群,当条件保持其元素的所有组合时,两个集群被连接在一起。这样,最有可能的集群将首先合并,减少相互排斥组合的影响。
(6)后处理
由于摄像机视图自遮挡在场景中的模型点产生的偏差和对象模型相对于场景的可能对齐误差,我们将上述位姿通过ICP算法进一步进行细化匹配,得到最优位姿。
3.实验结果
(1)BOP基准数据集
(2)不同方法之间的性能比较
(3)使用不同的后处理参数进行性能比较
(4)所提出的方法对BOP基准数据集的场景的影响。场景RGB数据以灰色显示, 对象模型以颜色和绿色包围框内显示。
4.参考文献
[1] Drost, B.; Ulrich, M.; Navab, N.; Ilic, S. Model globally, match locally: Efficient and robust 3D object recognition. In Proceedings of the 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, San Francisco, CA, USA, 13–18 June 2010; pp. 998–1005.[2] Vidal, J.; Lin, C.; Martí, R. 6D pose estimation using an improved method based on point pair features.In Proceedings of the 2018 4th International Conference on Control, Automation and Robotics (ICCAR),Auckland, New Zealand, 20–23 April 2018; pp. 405–409.

物体的三维识别与6D位姿估计:PPF系列论文介绍(三)的更多相关文章

  1. 李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪

    6-PACK: Category-level 6D Pose Tracker with Anchor-Based Keypoints 论文地址: 6-PACK: Category-level 6D P ...

  2. 相机位姿估计1_1:OpenCV:solvePnP二次封装与性能测试

    关键词:OpenCV::solvePnP 文章类型:方法封装.测试 @Author:VShawn(singlex@foxmail.com) @Date:2016-11-27 @Lab: CvLab20 ...

  3. 相机位姿估计0:基本原理之如何解PNP问题

    关键词:相机位姿估计 PNP问题求解 用途:各种位姿估计 文章类型:原理 @Author:VShawn(singlex@foxmail.com) @Date:2016-11-18 @Lab: CvLa ...

  4. python+opencv2相机位姿估计

    最近在做基于图像的室内定位方面的研究,于是使用到了百度最新的室内数据库Image-based Localization (IBL) .由于该数据库给出的数据是每幅图像和其对应相机的内外参数和光心投影方 ...

  5. 利用modelarts和物体检测方式识别验证码

    近来有朋友让老山帮忙识别验证码.在github上查看了下,目前开源社区中主要流行以下几种验证码识别方式: tesseract-ocr模块: 这是HP实验室开发由Google 维护的开源 OCR引擎,内 ...

  6. 三维点云去噪无监督学习:ICCV2019论文分析

    三维点云去噪无监督学习:ICCV2019论文分析 Total Denoising: Unsupervised Learning of 3D Point Cloud Cleaning 论文链接: htt ...

  7. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  8. OpenCV学习 物体检测 人脸识别 填充颜色

    介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...

  9. MATLAB:读取txt文件中物体的三维坐标,显示三维模型

    在MATLAB中建立一个脚本show3Dtxt.m文件,编写代码: clear; %%read 3D data fileID= fopen('E:\博士\深度学习与三维重建\代码实现\voxel_gr ...

随机推荐

  1. 使用node打造自己的命令行

    一.实现一个简单的功能 二.环境 1.系统: window 10 2.编辑器: vscode 3.node版本: 8.7.0 三.开始玩 1.打开命令行,新建一个pa'ckage.json npm i ...

  2. IDEA Messages Build总是自动弹出提示错误

    IDEA,总是在代码未完成时,在进行切换页面回来后会跳出Messages Build,我相信大家在写java web项目的时候,经常会遇到这个问题,接下来我就和大家说一下问题所在. 主要原因是因为我们 ...

  3. Vue的模板内换行问题

    在用vue的模板{{}}进行渲染文本时候,字符串换行不起作用,后使用ES6的模板字符串进行换行仍然不起作用,解决方法: <div>{{str}}</div> 可换为用v-htm ...

  4. 数据采集实战:通过Python获取和分析Google趋势中Covid-19的关注程度

    在传染病研究领域,社交媒体数据已被证明可作为预测感冒和流感季节的发作和进展的指标.在本文中,我们将使用Google Trends API来衡量与冠状病毒的状态.我们将使用python谷歌趋势API p ...

  5. nuxt.js如何实现同级目录下建多个动态路由,并将链接设置.html后缀

    nuxt.js中如果在同级目录中建两个_xxxx.vue的动态路由文件,那么页面跳转始终是跳的一个页面,如何解决这个问题呢?下面举个栗子: 第一步:新建两个页面文件 第二步:在nuxt.config. ...

  6. tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运行startup.bat 4.浏览器 localhost:8088/workName 访问即可

    tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运 ...

  7. 面试刷题11:java系统中io的分类有哪些?

    随着分布式技术的普及和海量数据的增长,io的能力越来越重要,java提供的io模块提供了足够的扩展性来适应. 我是李福春,我在准备面试,今天的问题是: java中的io有哪几种? java中的io分3 ...

  8. C# Linq方式生成SAP对接的XML格式内容(一般处理程序 ashx )

    Linq生成XML的方法: string CreateXML(string strkey, string strDATAJSON) { XDeclaration dec = new XDeclarat ...

  9. 全国职业技能大赛信息安全管理与评估-MySQL爆破脚本

    DEMO: #coding=utf-8 import MySQLdb class MSSQL: def __init__(self,host,user,pwd): self.host = host s ...

  10. 题解 P1748 【H数】

    我来讲讲 \(dp\) 的做法 前言 昨天 \(PHY\) 大佬问我,这题怎么做?考虑到他没学过 \(set\) . \(priority_queue\) 和 \(queue\) .之后,我就想到了可 ...