作者:仲夏夜之星
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. Web 认证配置流程

    AC配置 Radius配置 Portal配置

  2. echarts 图点击事件

    有三种方式,介绍一下,大家学习哈 1.利用tooltip记录信息,使用zr 监听事件,进行事件处理. 这种方法是利用showTip方法或者tooltip的formatter函数记录选中的数据信息,并在 ...

  3. webpack压缩图片之项目资源优化

    webpack打包时,会根据webpack.config.js 中url-loader中设置的limit大小来对图片进行处理,小于limit的图片转化成base64格式,其余的不做操作.对于比较大的图 ...

  4. 【GTS-Fail】GtsSecurityHostTestCases#testNoExemptionsForSocketsBetweenCoreAndVendorBan

    [GTS-Fail]GtsSecurityHostTestCases#testNoExemptionsForSocketsBetweenCoreAndVendorBan [问题描述] Gts-7.0- ...

  5. 你知道吗,Flutter内置了10多种Button控件

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我 ...

  6. HTML实体符号代码

    1. 特色的 © © © 版权标志 |   | 竖线,常用作菜单或导航中的分隔符 · · · 圆点,有时被用来作为菜单分隔符 ↑ ↑ ↑ 上箭头,常用作网页“返回页面顶部”标识 € € € 欧元标识 ...

  7. JVM笔记-垃圾收集算法与垃圾收集器

    1. 一些概念 1.1 垃圾&垃圾收集 垃圾:在 JVM 语境下,"垃圾"指的是死亡的对象所占据的堆空间. 垃圾收集:所谓"垃圾收集",就是将已分配出去 ...

  8. 在vue中实现锚点定位功能

    场景如下: 今天早上看到需求方新提的一个需求,这是一份网上答卷,点击题数要实现滚动到对应题目的位置: 注意点:每题题目的高度是不受控制的,你可以取到想跳转的index:(我再循环题目时做了index+ ...

  9. python基础学习day4

    列表的初识 why:int bool str str: 存储少量的数据. str:切片还是对其进行任何操作,获取的内容全都是str类型.存储的数据单一. what:list list = [66, ' ...

  10. Python基础篇_实例练习(二)

    问题1:假设有同学A,A每周在工作日进步,周末退步,问一年(365天)后A同学是一年前的几倍? 工作日进步由用户输入,周末下降0.01即1% deyup = eval(input()) deyfact ...