【点云配准-4PCS(2008)】4-Points Congruent Sets for Robust Pairwise Surface Registration
文章目录
- 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_2e1e2在允许范围内重合的点,都可以被看作与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相关推荐
- 点云配准论文阅读笔记--(4PCS)4-Points Congruent Sets for Robust Pairwise Surface Registration
目录 点云配准系列 写在前面 Abstract摘要 1 Introduction引言 2 Background研究背景 RANSAC Randomized Alignment 3 Approximat ...
- 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 ...
- 【论文阅读】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-Points Congruent Sets for Robust Pairwise Surface Registration》论文研读
最近导师在逼着要出东西,奈何才真正定在点云配准这个方向半学期时间,来膜拜一下大牛的工作. 第一遍看的时候被震惊了,因为最近想做的就是一个低重叠率情况下的配准,发现这个共面四点集的全局配准已经效果不错了 ...
- 点云配准--4PCS原理与应用
文章目录 1预备知识 1.0 wide base 1.1 LCP(largest common pointset) 1.2 RANSAC配准过程 1.3 Randomized Alignment 2 ...
- 文章瞎读 4PCS ——4-POINTS CONGRUENT SETS FOR ROBUST SURFACE REGISTRATION 2008
- 点云配准5:4pcs算法在pcl上的实现
目录 配准结果 点云配准系列 准备 完整项目文件 参数设定及说明 数据 参数 代码 结果 Bunny hippo 算法缺点 参考及感谢 完 配准结果 偶尔效果比较好,白色是目标点云0°的Bunny,紫 ...
- 点云粗配准4PCS及相应变种+在R稠密三维重建场景中的应用效果
一.4PCS简介: 4PCS(4 point congruent sets)算法是一种点云粗配准的算法. 适用于重叠区域较小的两帧点云图(深度图)进行粗配准.传统的ICP算法需要两帧点云有较大的重叠区 ...
- 3D点云配准算法-4PCS(4点全等集配准算法)
简介 4PCS算法是一种快速的.鲁棒的三维点云配准方案,该方案使用宽基底,对噪声和异常值具有良好的适应性,该算法允许对有噪声的原始数据进行配准,而无需对数据进行预过滤或去噪.此外,该方法大大减少了在噪 ...
最新文章
- XAMPP 配置虚拟域名/localhost重定向
- python进阶书籍的推荐 知乎-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
- redis.conf 配置档详解
- 隐马尔科夫模型HMM自学 (2)
- 12_信息熵,信息熵公式,信息增益,决策树、常见决策树使用的算法、决策树的流程、决策树API、决策树案例、随机森林、随机森林的构建过程、随机森林API、随机森林的优缺点、随机森林案例
- 八、探索性数据分析——数字化探索
- Java黑皮书课后题第5章:5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生
- 使用SecureCRT脚本备份网络设备配置的一点感悟
- SAP GUI里Screen Painter的工作原理
- 利用 Python 写一个颜值测试小工具
- 高通msm8916 gpio笔记(基于设备树)
- [工作记事] Ubuntu 编译安装PHP以及gd库使得支持jepg
- Unity自定义鼠标指针图案
- 谣言止于“较真”,腾讯新闻推出微信新闻辟谣小程序
- udf,udaf,udtf区别与联系
- 根据json字段把一维数组改变成二维数组
- access 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
- python与医学统计_医学统计思维-数据库
- Spring cloud系列十八 Spring Cloud 从Dalston.SR5到Greenwich.SR1 的升级记录
- Core Audio I/O File Recording