人工智能|PPF(Point Pair Features)原理及实战技巧

简介?
基于Point Pair Features(PPF)的6D姿态估计方法PPF,Drost et al., 2010(https://ieeexplore.ieee.org/document/5540108),是在机器视觉领域应用广泛的一种物体位姿提取方法。大名鼎鼎的Halcon,其Surface Matching 模块就是在这种方法的基础上做的优化。(Halcon有一份technique notes 专门讲该模块的使用)。
人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

这种方法具有什么优势呢?
1.在工业场景中,有大量缺少表面纹理或局部曲率变化很小的物体,无法利用局部特征提取匹配点对,因此基于局部特征点匹配的姿态估计方法无法使用
2.该方法的输入,model(物体模型)与scene(场景)均为点云;随着3D传感器技术的发展,市场上出现了很多极具性价比的工业级3D传感器,获取高质量点云的成本越来越低
原理 该法的原理,有篇文章珠玉在前PPF原理(https://zhuanlan.zhihu.com/p/94952276),对原论文讲解很详细,这里不再重复,我想强调几个点:
1.一个高度概括:原论文的标题,"Model Globally, Match Locally"高度概括了该法的优点;所谓Model Globally,是指对model中所有的点对(任取两个点组成一个点对,遍历所有可能的组合)都计算了PPF描述子,以描述子为key,以这两个点为value构建hash table, 该hash table可以看作是对model 的一个global的描述; 在使用scene进行匹配的时候,同样要对scene中所有点对计算PPF描述子,然后在hash table中进行查找;
2.一种思想:广义霍夫变换是一种2D 形状匹配方法,早已于上世纪80年代提出。PPF可以看作该法的3D推广。基于Hough Voting思想,PPF描述子可以看成是一种“去中心化”的特征描述子。什么是“去中心化”?就是说两个点到底匹不匹配,不像传统的局部特征描述子,依赖点的局部信息,而是要靠其他的点来投票。尽管会有噪声影响,但是正确的匹配一定会在投票过程中被“群众”突显出来,取得最高票数。由于PPF采取了Hough Voting的思想,因此继承了其优缺点:
优点:
1) 对于轻微形变、遮挡鲁棒性好
2) 抗噪声能力强
3) 可一次提取出多个目标(对比Ransac与Hough Voting, 两者都是做model fitting的经典方法,但是Hough voting在这一点上胜过Ransac)
缺点:
1)参数空间维度高,空间复杂度和时间复杂度都很高;
人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

优化 2017年的文章:Going Further with Point Pair Features (https://link.springer.com/chapter/10.1007%2F978-3-319-46487-9_51) 对PPF进行了优化, 取得了很好的效果。这篇文章指出Drost提出的原算法(以下称为Drost-PPF)及其变种中的问题:

  1. samplingschemes of pairs of 3D points 被长期忽视,导致方法效率低下
  2. 传感器噪声的影响:影响了quantization过程,而整个算法的加速正是靠quantization
  3. 【人工智能|PPF(Point Pair Features)原理及实战技巧】杂乱背景的影响:影响了算法中投票的过程
针对这几个问题,作者采取的优化措施有以下几条:
1.Pre-processing:点云的降采样的策略。降采样可以加速计算,并且避免一些很接近的点(空间距离近的点往往法向量也很接近)产生的不具有区分性的PPF features。Drost-PPF中的降采样策略比较简单,作者认为会丢失部分有用信息,所以,即使两个点的距离够近,但如果法向量角度偏差超过30度,也会予以保留。
人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片
根据投票结果生成pose。Drost-PPF 使用了一种贪心策略(评价的标准是投票空间的投票数)来做pose cluster。本文作者发现这种策略在有噪声和背景干扰的情况下并不鲁棒,投票数也不是一个可靠的标准。
作者采用了一种自底向上的聚类方法,允许每个pose同时属于不同的cluster。需要保存每个pose相关联的model point。poseA可以为其cluster投票,但是是有条件的,如果存在另一个pose B,pose B关联的model point与pose A相同,且已经为该cluster投过票,则pose A不再参与投票。这避免了repetitive geometric structures (比如平面)引起的bias。
下面几个后处理也是比较重要的:
1)Refine:使用了projective ICP 来做pose refine。只选择了两个voting ball中排名前四的cluster 来做refine。
2)Occulation check: 根据pose将物体虚拟投影到2D图上,检查对应像素的深度值,同虚拟投影相比,原深度图有多少距离相机更近,有多少更远,如果更近的像素比例过大(大于总像素数的10%),这个pose显然是有问题的,拒绝这个pose。
3)Silhouette check: 同样根据pose将物体虚拟投影到2D图上,得到轮廓。同时计算场景点云中深度和法向量变化剧烈的区域, 检查轮廓是否被这些区域cover了。如果有大于10%的轮廓没有被cover,拒绝这个pose
实验结果:
作者在两个数据集上进行了测试,ACCV DataSet,Occlusion DataSet(https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Krull_Learning_Analysis-by-Synthesis_for_ICCV_2015_paper.pdf), 评价标准是Recogniton rate (定义在Learning Analysis-by-Synthesis for 6D Pose Estimation in RGB-D Images(https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Krull_Learning_Analysis-by-Synthesis_for_ICCV_2015_paper.pdf))
计算时间在0.1~0.8s之间(640x 480 depth map)
Tips
  • 背景及其他杂物尽量提前移除, 在工业应用场景这是比较好实现的
  • 在投票过程中, scene上的Sr选取可以进一步降采样,实现提速的目的
参考文献 1、Model globally, match locally: Efficient and robust 3D object recognition
(https://ieeexplore.ieee.org/document/5540108)
2、PPF介绍:(https://zhuanlan.zhihu.com/p/94952276)
3、Going Further with Point Pair Features
(https://link.springer.com/chapter/10.1007%2F978-3-319-46487-9_51)
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
原创征稿
初衷
3D视觉工坊是基于优质原创文章的自媒体平台,创始人和合伙人致力于发布3D视觉领域最干货的文章,然而少数人的力量毕竟有限,知识盲区和领域漏洞依然存在。为了能够更好地展示领域知识,现向全体粉丝以及阅读者征稿,如果您的文章是3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、硬件选型、求职分享等方向,欢迎砸稿过来~文章内容可以为paper reading、资源总结、项目实战总结等形式,公众号将会对每一个投稿者提供相应的稿费,我们支持知识有价!
投稿方式

邮箱:vision3d@yeah.net 或者加下方的小助理微信,另请注明原创投稿。
人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

▲长按加微信联系
人工智能|PPF(Point Pair Features)原理及实战技巧
文章图片

▲长按关注公众号

    推荐阅读