文章目录

  • 1 背景
    • 1.1 问题描述
    • 1.2 相似性测度(Similarity Measure)
    • 1.3 随机采样一致性(Random Sample Consensus,RANSAC)
    • 1.4 Randomized Alignment
    • 1.5 4PCS算法概述
  • 2 4点一致性
    • 2.1 概述
    • 2.2 4点集的仿射不变性
    • 2.3 在3D空间中提取一致的4点
  • 3 4PCS算法
    • 3.1 算法描述
    • 3.2 实验结果
  • 参考

1 背景

1.1 问题描述

给定任意初始位置的两个点集PPP和QQQ,找到一个最佳变换(通常是刚性变换),使得PPP、QQQ中距离小于δ\deltaδ的点数最多。

1.2 相似性测度(Similarity Measure)

在点云配准问题中,我们通常会用相似性测度来衡量两组点云之间的匹配程度,常见的相似性测度有均方误差(Root Mean Square Error(RMSE)最大公共点集(Largest Common Pointset,LCP) 等。

4PCS算法中所使用的相似性测度即为LCP测度。由LCP测度的原理我们可以看出,4PCS算法最终并不一定能够得到一个非常精确的变换矩阵,因此它常被用作点云配准问题中粗配准(Coarse Registration)步骤中的方法,配合ICP等精配准(Fine Registration)算法共同实现精确的点云匹配。

1.3 随机采样一致性(Random Sample Consensus,RANSAC)

RANSAC是一种被广泛使用的通用性算法,用于对因噪声和异常值破坏的数据进行模型的鲁棒拟合。

基于RANSAC的点云匹配过程可以归纳为:

  • 从点集PPP和QQQ中分别随机选取3个不同的点(方便起见,下文中我们把这3个不同的点称作“基底/base”)对作为基础的匹配点对;
  • 计算所选取3组对应点对的变换矩阵TiT_iTi​;
  • 计算点集PPP和QQQ的LCP测度kik_iki​,即点集PPP中的点与点集QQQ中的点距离在δ\deltaδ范围内点的个数;
  • 如果kik_iki​足够大,则直接接受TiT_iTi​作为最佳的变换矩阵,否则重复以上步骤;
  • 这个过程将被重复LLL次,并选择kik_iki​最大时的变换矩阵TiT_iTi​作为最终的结果。

1.4 Randomized Alignment

Randomized Alignment是Irani和Raghavan在1996年提出的RANSAC算法的一种变体,用于在相似性变换下解决2D对齐问题。其基本步骤为:

  • 从点集PPP中随机选取一组基底;
  • 计算该基底与QQQ中所有可能的基底得到的变换矩阵;
  • 验证得到的变换矩阵,这也是随机的:首先,仅随机抽取PPP中固定数量的点进行验证,只有当该子集中大部分的点匹配上(即在点集QQQ中存在与其距离在δ\deltaδ内的点)时,才测试其余点;
  • 与RANSAC中一样,为了达到一定的成功率,以上过程将被重复LLL次。

与基本的RANSAC不同的是,4PCS算法从PPP中随机选择基底,然后使用某种配准算法在QQQ中寻找对应的基底,下面将详细介绍4PCS算法。

1.5 4PCS算法概述

我们知道,3个不共线的点对即可计算空间变换矩阵,而作者认为,寻找特殊的4点作为基底会使问题变得更加容易。4PCS算法就是使用一组来自PPP的4个共面点作为基底BBB,并从QQQ中快速找到与BBB大致一致的所有4点基底的子集,即允许刚性变换将两个4点集对齐且距离在δ\deltaδ范围内。

2 4点一致性

2.1 概述

仿射变换遵循以下规则:给定3个共线的点{a,b,c}\{a,b,c\}{a,b,c},它们之间的比例关系r=a−ba−cr=\frac{a-b}{a-c}r=a−ca−b​是不变的。给定一组共面的4点集,在给定的点云数据中查找与其在距离约束(δ\deltaδ)下具有仿射变换关系的4点集的集合。

2.2 4点集的仿射不变性

定义非共线的共面4点X≡{a,b,c,d}X\equiv\{a,b,c,d\}X≡{a,b,c,d},ababab和cdcdcd相交于点eee,则以下2个比率在仿射变换下是不变的:

r1=∣∣a−e∣∣∣∣a−b∣∣r2=∣∣c−e∣∣∣∣c−d∣∣r_1=\frac{||a-e||}{||a-b||} \\ r_2=\frac{||c-e||}{||c-d||} r1​=∣∣a−b∣∣∣∣a−e∣∣​r2​=∣∣c−d∣∣∣∣c−e∣∣​

给定含有nnn个点的点集QQQ,以及两个由点集PPP得到的仿射不变性比率r1r_1r1​和r2r_2r2​,对于QQQ中的每对点q1,q2∈Qq_1,q_2 \in Qq1​,q2​∈Q,可以计算两个中间点:

e1=q1+r1(q2−q1)e2=q1+r2(q2−q1)e_1 = q_1 + r_1 (q_2-q_1) \\ e_2 = q_1 + r_2 (q_2-q_1) \\ e1​=q1​+r1​(q2​−q1​)e2​=q1​+r2​(q2​−q1​)

任意两对中间点e1e2e_1 e_2e1​e2​在允许范围内重合的点,都可以被看作与PPP中基础点对可能的仿射对应点。

2.3 在3D空间中提取一致的4点

给定点集PPP中不共面的4点作为基底BBB,以及另外一个点集Q∈R3Q \in \mathbb{R}^3Q∈R3,我们的目标是从QQQ中找到所有在允许范围(δ\deltaδ)内与BBB一致的4点的集合。基本步骤为:

  • 计算给定BBB的两个放射不变比率,即r1r_1r1​和r2r_2r2​;
  • 利用2.2中描述的方法,从QQQ中查找所有通过放射变换能与BBB相匹配的点集;
  • 通过距离约束(δ\deltaδ),过滤掉不符合要求的匹配(主要针对仿射变换中存在尺度缩放的一部分点集);
  • 利用最小二乘法,计算余下每对点与BBB的最佳变换。

事实上,对于大的点集,上述过程的计算量是相当大的。考虑到我们寻求的是刚性变换的解,对于一个基底B≡{a,b,c,d}B\equiv\{a,b,c,d\}B≡{a,b,c,d},首先计算两点间的距离d1=∣∣a−b∣∣d_1=||a−b||d1​=∣∣a−b∣∣,d2=∣∣c−d∣∣d_2=||c−d||d2​=∣∣c−d∣∣,然后仅考虑点集QQQ中两点距离与d1d_1d1​或d2d_2d2​相差在一定范围内(δ\deltaδ)的点对。

3 4PCS算法

3.1 算法描述

给定两个点集PPP和QQQ,不确定性度量(δ>0\delta > 0δ>0),以及预估的两点集的重叠率fff,我们的目标是找到一个刚性变换,使PPP中的点到QQQ中的点距离小于δ\deltaδ的个数最多。

  • 首先选择由4个共面点组成的基底B⊆PB\subseteq PB⊆P。实际上我们不一定能到找到完全共面的4个点,因此先随机选择3个点,再查找第4个点组成近似共面的基底。理论上来说,点之间的距离越远得到的匹配结果越精确,然而若距离过远,可能导致所选择的点不在两个点集的重叠部分,也就无法计算得到理想的匹配对。因此使用重叠率fff来估计这个最大距离(fff的默认值为1);
  • 得到基底BBB后,我们可以定义仿射不变比。从QQQ中查找所有与BBB在距离约束(δ\deltaδ)下的对应点对集合U≡{U1,U2,...,Us}U\equiv\{ U_1,U_2,...,U_s \}U≡{U1​,U2​,...,Us​}。利用最小二乘法计算BBB与UiU_iUi​的最佳变换TiT_iTi​;
  • 验证所得到的TiT_iTi​的准确性,该过程以随机方式进行。计算PPP经过TiT_iTi​变换后与QQQ的相似性测度(在δ\deltaδ约束下的最大公共点集)。为了提高效率,最近点的查找使用近似最近邻算法(Approximate Nearest Neighbor,ANN)。具体来说,首先从PPP中选择固定数量的点,计算这些点经过TiT_iTi​变换后与QQQ中的点距离在δ\deltaδ内的点的个数,如果足够多的话则对余下的点也做这样的计算。匹配点数最多的变换将被作为本次匹配中最佳的变换矩阵TTT;
  • 对于重复LLL次不同的基底BiB_iBi​,均按照上述步骤找到最佳变换TiT_iTi​,并最终得到总体的最佳变换矩阵ToptT_{opt}Topt​作为最终结果。

3.2 实验结果

几组作者论文中给出的实验结果,所有结果都是经过ICP微调后的效果。

(1)不同重叠率


(2)不同噪声程度

其余的大家直接看论文吧。

参考

[1] https://sci-hub.tw/10.1145/1360612.1360684
[2] http://graphics.stanford.edu/~niloy/research/fpcs/fpcs_sig_08.html

【点云配准-4PCS(2008)】4-Points Congruent Sets for Robust Pairwise Surface Registration相关推荐

  1. 点云配准论文阅读笔记--(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration

    目录 点云配准系列 写在前面 Abstract摘要 1 Introduction引言 2 Background研究背景 RANSAC Randomized Alignment 3 Approximat ...

  2. 4-Points Congruent Sets for Robust Pairwise Surface Registration——4PCS阅读笔记

    4-Points Congruent Sets for Robust Pairwise Surface Registration--4PCS阅读笔记 2018年03月08日 10:18:14 Voda ...

  3. 【论文阅读】4- 4-Points Congruent Sets for Robust Pairwise Surface Registration

    [论文阅读]4- 4-Points Congruent Sets for Robust Pairwise Surface Registration 1.基础知识回顾 2.算法理解 2.1.算法综述: ...

  4. 《4-Points Congruent Sets for Robust Pairwise Surface Registration》论文研读

    最近导师在逼着要出东西,奈何才真正定在点云配准这个方向半学期时间,来膜拜一下大牛的工作. 第一遍看的时候被震惊了,因为最近想做的就是一个低重叠率情况下的配准,发现这个共面四点集的全局配准已经效果不错了 ...

  5. 点云配准--4PCS原理与应用

    文章目录 1预备知识 1.0 wide base 1.1 LCP(largest common pointset) 1.2 RANSAC配准过程 1.3 Randomized Alignment 2 ...

  6. 文章瞎读 4PCS ——4-POINTS CONGRUENT SETS FOR ROBUST SURFACE REGISTRATION 2008

  7. 点云配准5:4pcs算法在pcl上的实现

    目录 配准结果 点云配准系列 准备 完整项目文件 参数设定及说明 数据 参数 代码 结果 Bunny hippo 算法缺点 参考及感谢 完 配准结果 偶尔效果比较好,白色是目标点云0°的Bunny,紫 ...

  8. 点云粗配准4PCS及相应变种+在R稠密三维重建场景中的应用效果

    一.4PCS简介: 4PCS(4 point congruent sets)算法是一种点云粗配准的算法. 适用于重叠区域较小的两帧点云图(深度图)进行粗配准.传统的ICP算法需要两帧点云有较大的重叠区 ...

  9. 3D点云配准算法-4PCS(4点全等集配准算法)

    简介 4PCS算法是一种快速的.鲁棒的三维点云配准方案,该方案使用宽基底,对噪声和异常值具有良好的适应性,该算法允许对有噪声的原始数据进行配准,而无需对数据进行预过滤或去噪.此外,该方法大大减少了在噪 ...

最新文章

  1. XAMPP 配置虚拟域名/localhost重定向
  2. python进阶书籍的推荐 知乎-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
  3. redis.conf 配置档详解
  4. 隐马尔科夫模型HMM自学 (2)
  5. 12_信息熵,信息熵公式,信息增益,决策树、常见决策树使用的算法、决策树的流程、决策树API、决策树案例、随机森林、随机森林的构建过程、随机森林API、随机森林的优缺点、随机森林案例
  6. 八、探索性数据分析——数字化探索
  7. Java黑皮书课后题第5章:5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生
  8. 使用SecureCRT脚本备份网络设备配置的一点感悟
  9. SAP GUI里Screen Painter的工作原理
  10. 利用 Python 写一个颜值测试小工具
  11. 高通msm8916 gpio笔记(基于设备树)
  12. [工作记事] Ubuntu 编译安装PHP以及gd库使得支持jepg
  13. Unity自定义鼠标指针图案
  14. 谣言止于“较真”,腾讯新闻推出微信新闻辟谣小程序
  15. udf,udaf,udtf区别与联系
  16. 根据json字段把一维数组改变成二维数组
  17. access 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  18. python与医学统计_医学统计思维-数据库
  19. Spring cloud系列十八 Spring Cloud 从Dalston.SR5到Greenwich.SR1 的升级记录
  20. Core Audio I/O File Recording

热门文章

  1. 图像搜索引擎搭建:利用VP-Tree实现以图搜图
  2. vmware设置内外网双网卡(均是独立IP)
  3. 【CSDN 2021 年度总结】半年涨粉11万,铁杵磨成针
  4. adminLTE 教程
  5. 一文读懂shell命令
  6. Android 自定义Camera(一)如何预览相机
  7. 新能源汽车充电硬件接口标准
  8. ubuntu 10.04桌面不见了 鼠标右键也失效
  9. 多线程实现HTTP下载器(断点续传)_使用IO和线程知识
  10. 原神2.0宅男福利!爬虫实战,爬取原神真人cos图片并保存,谁的老婆快抱走