Model Globally, Match Locally 个人理解

Model Globally, Match Locally

参考资料

1、论文
Model Globally, Match Locally: Efficient and Robust 3D Object Recognition.

算法原理介绍

1.voxel体素滤波精简

2.所有点循环每个点建立4维度的特征集合(训练与场景一起)
在这里插入图片描述
给定指定距离步长,角度步长建立hashmap 其中hashmap的键由四个数据组成 (组成算法没有在源码看懂)猜测是每一个维度因为取整的因素其总数量都固定,那么总数量就固定了,加入点(2,2,2,2) 键为:2*(后三个总和)+2*(后两个总和)+2*(后一个总和)+2

3.因此场景点云来了以后相同的体素后去hashmap查找相同的值,找到匹配点对以后进入下一步

4.根据匹配模板点计算一个点的法向量与(1,0,0)之间差的角度并求出旋转轴组成旋转矩阵,场景点做同同的处理,并保留两者的角度信息 就会得到(mr,a) mr为找到的模板和算出来的角度。
在这里插入图片描述对于根据上述描述:一个场景参考点sr,他有大量的点对srsi(i∈scene cloud),对所有的srsi求PPF,由此找到哈希表对应的mr’mi’,同时得到一个α’。那么,我们就在建立的二维矩阵上,投一个票。
我们对这一个场景参考点sr的所有点对srsi都进行这个操作,最后就得到了一个投票表。(注意:这个投票表示针对这个特定的参考点sr的 (二维矩阵投票表)),表一定有一个峰值,这个峰值对应的mr’’,α‘’便是这个场景参考点sr的最佳局部坐标系,由mr’’,α‘’算出的来的位姿,视为最理想位姿(假设这个场景参考点sr一开始就在场景目标中,而不是在场景中其他的物体上)
在这里插入图片描述多说一句,投票矩阵怎么建立?
纵坐标是模型点数,因为我们在线下阶段对模型中的所有点对都求取了PPF,所以任何一个模型点都可以是mr;
横坐标是α,其值是(2π/△angle),并上取整。(△angle仍取π/15)

5 因此对于没一个场景点云Sr 都存在一个投票表和一个最高票数的姿态 .我们把相近的位姿放到一起作为一类(这些位姿在旋转和平移上不超过一个既定阈值),这个类有一个分数(分数=类中所有位姿在上一阶段的投票数之和),分数最高的类,我们将类中的pose取平均,认定为最终的pose。
同时,scene中可能有不止一个的目标,我们去分数最高的两个类,作为结果。

原文链接:https://blog.csdn.net/weixin_44494725/article/details/102984750

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值