作者:仲夏夜之星
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. frp 内网穿透访问内网Web服务

    ps:最近想要通过域名(公网)访问或者测试在本地搭建的 web 服务(不想在公网IP服务器上再部署个服务,也不想通过teamview等工具远程卡到爆!), 由于本地机器没有公网 IP,无法将域名解析到 ...

  2. ARM WIFI AP 模式 使用 iptables nat 转发 通过 LAN 网线上网

    编译内核,支持 iptables 和 forward 和 nat. 编译内核,使用新内核启动arm 开发板. 编译内核支持 iptables-> Networking support (NET ...

  3. Linux监控系统相关资源和运行状态命令整理

    #前言:Linux系统自带了些实时查看监控系统运行状态的相关命令,接下来我们就来了解一下. #首先我们先来了解一下什么是进程 #进程:是Linux用来表示正在运行的程序的一种抽象概念,Linux系统上 ...

  4. vue+django+webpack搭建

    一.前言 最近接手了一个项目,后端是django,前端是django自带的模板,用的是jinja2,写了一段时间发现用起来特别不顺手,于是想在保持现有的模板基础上,引入vue框架,这样同事可以继续用自 ...

  5. Android平台接入OneNET

    1. OneNET简介 中国移动物联网开放平台是由中国移动打造的PaaS物联网开放平台. 平台能够帮助开发者轻松实现设备接入与设备连接,提供综合性的物联网解决方案,实现物联网设备的数据获取,数据存储, ...

  6. C语言二进制拼接 (整数和byte类型的字符串拼接)

    #include <iostream>#include <cstring>#include <cstdio> using namespace std; typede ...

  7. 今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对

    今天开dev的时候,config update一下别人的,但是忘了自己改过目录了,导致光看ip,想了半天,为什么接口不对 baseUrl: {     //     // dev: 'http://1 ...

  8. [译]ABP框架v2.3.0已经发布!

    在新冠病毒的日子里,我们发布了ABP框架v2.3, 这篇文章将说明本次发布新增内容和过去的两周我们做了什么. 关于新冠病毒和我们的团队 关于冠状病毒的状况我们很难过.在Volosoft的团队,我们有不 ...

  9. JavaScript进阶之高阶函数篇

    JavaScript进阶之高阶函数篇 简介:欢迎大家来到woo爷说前端:今天给你们带来的是JavaScript进阶的知识,接下来的系列都是围绕着JavaScript进阶进行阐述:首先我们第一篇讲的是高 ...

  10. java 获取 list 集合获取指定的 字段 数组

    /** * * AdminEntity 管理员实体类 * getAdminId 获取管理员实体类中的id * */ @Testvoid adminIdList () { List<AdminEn ...