一种改进的RANSAC算法提取多模型圆弧特征点云
一种改进RANSAC算法的单应性矩阵估计方法

一种改进RANSAC算法的单应性矩阵估计方法摘要在计算机视觉中,单应性矩阵估计是一种常见的问题,它通常用于图像拼接、目标跟踪和视觉导航等领域。
传统的单应性矩阵估计方法基于RANSAC算法,但该算法存在易于受到噪声和误匹配的影响、计算复杂度较高等问题。
本文针对这些问题,提出了一种改进的RANSAC算法,通过引入加权函数和局部搜索策略,提高了单应性矩阵估计的效率和精度。
实验表明,该方法相较于传统算法具有更好的稳健性和计算效率。
关键词:单应性矩阵估计;RANSAC;加权函数;局部搜索1. 研究背景和意义2. 相关工作传统的单应性矩阵估计方法通常基于RANSAC算法。
RANSAC算法是一种基于随机采样的估计方法,它将所有样本分为内点和外点两类,通过随机采样一定数量的样本,建立模型,并用该模型对所有点进行判别,最后将内点用于重构模型。
但RANSAC算法存在以下问题:(1)受到噪声和误匹配的影响,表现不够稳健;(2)计算复杂度较高,无法有效处理大量数据。
3. 方法改进(1)加权函数在传统RANSAC算法中,所有内点都被视为等权重,但实际上,不同的点对应的内点质量是不一样的,因此需要引入加权函数。
加权函数是一种将内点分配不同权重的方法,可以通过距离函数或其它方法进行计算并赋值。
(2)局部搜索在传统RANSAC算法中,样本集是由随机采样生成的,因此可能存在采样不够均匀的情况。
而局部搜索策略可以通过在采样点周围进行采样来避免这种情况。
在本文中,我们采用了幅面均匀分割法和局部区域搜索法进行局部搜索。
4. 实验结果本文在UCMerced数据集上对改进方法进行了实验,结果表明,改进方法相较于传统算法具有更好的稳健性和计算效率。
对于受干扰的数据,改进方法的准确率和召回率都提高了约10%。
5. 结论与展望本文提出的改进RANSAC算法在单应性矩阵估计问题上取得了较好的效果,但仍有可以改进和优化的地方。
例如,可以通过引入局部点对齐方法和深度学习等方法来进一步提高估计精度和鲁棒性。
RANSAC算法讲解

RANSAC算法讲解RANSAC是“Random Sample Consensus(随机抽样一致)”的缩写。
它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。
它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。
RANSAC的基本假设是:(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;(2)“局外点”是不能适应该模型的数据;(3)除此之外的数据属于噪声。
局外点产生的原因有:噪声的极值;错误的测量方法;对数据的错误假设。
RANSAC也做了以下假设:给定一组(通常很小的)局内点,存在一个可以估计模型参数的过程;而该模型能够解释或者适用于局内点。
一、示例一个简单的例子是从一组观测数据中找出合适的2维直线。
假设观测数据中包含局内点和局外点,其中局内点近似的被直线所通过,而局外点远离于直线。
简单的最小二乘法不能找到适应于局内点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。
相反,RANSAC能得出一个仅仅用局内点计算出模型,并且概率还足够高。
但是,RANSAC并不能保证结果一定正确,为了保证算法有足够高的合理概率,我们必须小心的选择算法的参数。
二、概述RANSAC算法的输入是一组观测数据,一个可以解释或者适应于观测数据的参数化模型,一些可信的参数。
RANSAC通过反复选择数据中的一组随机子集来达成目标。
被选取的子集被假设为局内点,并用下述方法进行验证:1.有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
4.然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
5.最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。
基于RANSAC算法的稳健点云平面拟合方法

基于RANSAC算法的稳健点云平面拟合方法杨军建吴良才【摘要】[摘要]针对氛云平面拟合中存在粗差及异常值等问题,对结合特征值法的随机抽样一致性(random sample consensus,RANSAC)平面拟合算法进行了改进。
该方法以RANSAC算法为基础,结合特征值法,利用氛到平面模型距离的标准偏差来自动选取阈值t,通过阈值t检测并剔除异常数据氛,达到获得理想平面拟合参数的目的。
用改进的算法和传统的特征值法分别对氛云数据进行处理,结果表明,改进的算法适用于存在误差和异常值的氛云数据拟合,能稳定地获得较好的平面参数估值,具有较强的鲁棒性。
【期刊名称】北京测绘【年(卷),期】2016(000)002【总页数】4【关键词】[关键词]氛云数据随机抽样一致性(RANSAC)特征值法平面拟合标准偏差1 引言与传统测量方法相比,三维激光扫描技术获取点云具有快速性、高效性和高精度特性,在测绘领域中扮演着越来越重要的角色。
三维激光扫描能快速获取反映目标物实时、动态变化、真实形态特性的信息,是获取空间数据的有效技术手段。
对点云数据进行拟合就是根据扫描点集中的点云匹配出特定的曲面模型,求取出最佳模型参数,使点云子集合与模型参数之间达到高度吻合的目的。
三维点云数据集合中包含大量的平面特征,这些平面特征可以被用于匹配计算中配准点云、目标建模中简化数据等,因此,三维点云精确的平面拟合具有非常重要的意义[1-2]。
由于仪器本身或外部因素等原因,三维激光扫描得到的点云数据存在各种误差。
文献[3-7]主要介绍了提取点云平面特征的方法,如最小二乘法、特征值法,可根据某种给定的目标方程,求出最佳模型参数。
但这些方法都不能剔除异常值,特别是存在较大较多的异常值时拟合平面不稳定,算法不具有稳健性。
针对含有较大误差或异常值的点云数据,一般采用结合特征值法的随机抽样一致性(random sample consensus,RANSAC)算法拟合点云平面,在异常值存在的情况下可以得到比较理想的拟合效果,但是该方法对阈值t的选取比较敏感,本文对此算法进行了改进,通过自动选取阈值t来检测并剔除异常值,得到最佳参数估值。
完整版RANSAC算法详解

给定两个点p1与p2的坐标,确定这两点所构成的直线,要求对于输入的任意点p3,都可以判断它是否在该直线上。
初中解析几何知识告诉我们,判断一个点在直线上,只需其与直线上任意两点点斜率都相同即可。
实际操作当中,往往会先根据已知的两点算出直线的表达式(点斜式、截距式等等),然后通过向量计算即可方便地判断p3是否在该直线上。
生产实践中的数据往往会有一定的偏差。
例如我们知道两个变量X与Y之间呈线性关系,Y=aX+b,我们想确定参数a与b的具体值。
通过实验,可以得到一组X与Y 的测试值。
虽然理论上两个未知数的方程只需要两组值即可确认,但由于系统误差的原因,任意取两点算出的a与b的值都不尽相同。
我们希望的是,最后计算得出的理论模型与测试值的误差最小。
大学的高等数学课程中,详细阐述了最小二乘法的思想。
通过计算最小均方差关于参数a、b的偏导数为零时的值。
事实上,在很多情况下,最小二乘法都是线性回归的代名词。
遗憾的是,最小二乘法只适合与误差较小的情况。
试想一下这种情况,假使需要从一个噪音较大的数据集中提取模型(比方说只有20%的数据时符合模型的)时,最小二乘法就显得力不从心了。
例如下图,肉眼可以很轻易地看出一条直线(模式),但算法却找错了。
的输入是一组观测数据(往往含有较大的噪声或无效点),算法 RANSAC通过反复选一个用于解释观测数据的参数化模型以及一些可信的参数。
RANSAC择数据中的一组随机子集来达成目标。
被选取的子集被假设为局内点,并用下述方法进行验证:有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得?出。
用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它?也是局内点。
如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
?然后,用所有假设的局内点去重新估计模型(譬如使用最小二乘法),因为它仅仅?被初始的假设局内点估计过。
最后,通过估计局内点与模型的错误率来评估模型。
一种改进RANSAC算法的单应性矩阵估计方法

一种改进RANSAC算法的单应性矩阵估计方法摘要随着计算机视觉技术的迅速发展,单应性矩阵估计在图像对齐、物体跟踪、场景重建等应用中得到了广泛地应用。
然而,单应性矩阵估计受到噪声和误差的影响,传统的RANSAC算法虽然取得了不错的效果,但是计算时间长且存在收敛不稳定甚至失效的问题。
本文提出一种改进的RANSAC算法,通过引入预筛选机制和剪枝策略,降低了计算时间,并提高了矩阵估计的鲁棒性和准确率。
实验结果表明,本方法能够有效提高单应性矩阵估计的速度和精度。
关键词:计算机视觉,单应性矩阵估计,RANSAC,预筛选机制,剪枝策略AbstractKeywords: computer vision, homography estimation, RANSAC, pre-selection mechanism, pruning strategy1. 引言对于计算机视觉领域中的许多应用,如图像对齐、物体跟踪和场景重建等,单应性矩阵估计都是一个重要的问题。
单应性矩阵是一种描述两幅图像之间的映射关系的矩阵,它能够在一定程度上处理由于摄像机视角变化、物体平面上的形变等因素引起的图像变形。
单应性矩阵估计的目标是在给定的匹配点对的情况下,从中推出两个平面的单应性矩阵,使其在一定程度上实现对应点的重映射。
然而,单应性矩阵估计受到噪声和误差的影响,预处理步骤可能无法完全去除局部背景的干扰,从而导致对应点对的错误匹配。
传统的RANSAC算法采用随机采样和验证机制,可以从错误的匹配集合中去除异常值,得到更准确的单应性矩阵估计结果。
然而,由于需要进行大量的计算和随机抽样,算法的速度较慢,计算量较大。
在实际应用中,RANSAC算法往往不能满足速度和鲁棒性的要求。
2. 相关工作单应性矩阵估计的传统方法是通过两种形式的2D点进行估计:点到点和点到直线。
点到点法的主要优点是简单,但是由于点之间可能存在异常值,使得该方法的鲁棒性较差。
点到直线法采用了直线段来约束匹配点,因此更加鲁棒。
MATLAB点云处理(十六):多项式曲线拟合(RANSACMSAC)

MATLAB 点云处理(⼗六):多项式曲线拟合(RANSACMSAC )⽂章⽬录1 多项式拟合函数 fitPolynomialRANSACfitPolynomialRANSAC — 使⽤RANSAC算法从点云中进⾏多项式拟合该函数使⽤M-估计量样本⼀致性(MSAC)算法,即随机样本⼀致性(RANSAC)算法的改进算法来拟合数据。
主要有 2 种重载⽅式NO.1 给定数据点xyPoints 、拟合阶数N 、内点到模型的最⼤距离maxDistance ,返回多项式系数P P = fitPolynomialRANSAC (xyPoints ,N ,maxDistance )通过对xyPoints 中给定的 个⼆维平⾯点进⾏多项式拟合,找到多项式系数P(按将幂排列)。
对于多项式 ,对应的多项式系数为 其中,xyPoints :即[x y], 为⼆维平⾯坐标点,为m×2阶矩阵N :多项式拟合阶数,为⼤于 0 的整数maxDistance :内点到模型的最⼤距离,为正数P :多项式系数,作为数值向量返回。
每个元素对应于N次多项式⽅程中的⼀个系数数。
例如,对于⼆次多项式, 对应 NO.2 给定数据点xyPoints 、拟合阶数N 、内点到模型的最⼤距离maxDistance ,返回多项式系数P 和内点的线性索引inlierIdx[P ,inlierIdx ] = fitPolynomialRANSAC (xyPoints ,N ,maxDistance )2 代码实现⽰例1: 对空间种⼀组曲线点,投影到xoy平⾯进⾏RANSAC多项式拟合(直线拟合)代码:m p (x )=p x +1n p x +2n −1...+p x +n p n +1P =[p ,p ,...,p ,p ]12n n +1Ax +2Bx +C =0P [A ,B ,C ]clc;clear;%加载点云ptCloud =pcread('line.pcd');figure;pcshow(ptCloud);title('原始点云');xlabel('X(m)');ylabel('Y(m)');zlabel('Z(m)');%提取xoy平⾯坐标点x = ptCloud.Location(:,1);y = ptCloud.Location(:,2);figure;plot(x,y,'.');title('xoy平⾯投影点云');xlabel('X(m)');ylabel('Y(m)');zlabel('Z(m)');%设置多项式拟合阶数 NN =1;%设置内点到模型的最⼤距离maxDistance =0.1;%执⾏MSAC多项式拟合[P, inlierIdx]=fitPolynomialRANSAC([x,y],N,maxDistance);%输出多项式系数P%使⽤polyval计算多项式,⽤红⾊圆圈标记异常值x1 =linspace(min(x),max(x));%在区间[min.x,max.x]内⽣成100个等间距的x,⽤与计算多项式的值yRecoveredCurve =polyval(p,x1);figure;plot(x1,yRecoveredCurve,'-g','LineWidth',2);hold on;plot(x(inlierIdx),y(inlierIdx),'.',x(~inlierIdx),y(~inlierIdx),'ro');legend('多项式拟合曲线','内点','外点','Location','SouthEast');title('拟合结果展⽰')xlabel('X(m)');ylabel('Y(m)');zlabel('Z(m)');hold off;结果展⽰:P =1×2 single ⾏向量0.6178 1.0817⽰例2: 对空间种⼀组曲线点,投影到xoy平⾯进⾏RANSAC多项式拟合(⼆次曲线拟合)代码:clc;clear;%加载点云ptCloud =pcread('test2.pcd');%提取xoy平⾯坐标点x = ptCloud.Location(:,1);y = ptCloud.Location(:,2);figure;plot(x,y,'.');title('xoy平⾯投影点云');xlabel('X(m)');ylabel('Y(m)');zlabel('Z(m)');%设置多项式拟合阶数 NN =2;%设置内点到模型的最⼤距离maxDistance =0.1;%执⾏MSAC多项式拟合[P, inlierIdx]=fitPolynomialRANSAC([x,y],N,maxDistance);%输出多项式系数P%使⽤polyval计算多项式,⽤红⾊圆圈标记异常值。
rransac算法

rransac算法RANSAC算法是一种常用的参数估计算法,它可以在含有噪声和异常值的数据集中,准确地估计出最优的模型参数。
RANSAC算法的全称是Random Sample Consensus,它的基本思想是通过随机采样的方式,选择数据集中的一部分样本来进行模型估计,然后通过计算内点的数量来评估模型的拟合程度,从而得到最优的模型参数。
RANSAC算法的核心步骤包括:随机采样、模型拟合、内点筛选和参数估计。
首先,在数据集中随机选择一定数量的样本,然后利用这些样本来拟合一个模型。
模型的具体形式可以根据问题的不同而定,比如直线、平面、圆等。
拟合模型之后,遍历整个数据集,计算每个样本到模型的距离,如果距离小于一定的阈值,则认为该样本是内点,否则为外点。
根据内点的数量,评估模型的拟合程度。
如果内点数量超过阈值,则认为当前模型是好的模型,否则重新进行随机采样,重复上述步骤,直到找到满足条件的模型。
RANSAC算法的优点在于它能够有效地处理数据集中存在的异常值。
传统的拟合算法(如最小二乘法)对于存在异常值的数据集容易产生较大偏差,导致模型参数估计不准确。
而RANSAC算法通过随机采样和内点筛选的方式,可以忽略掉异常值的干扰,从而得到更准确的模型参数。
然而,RANSAC算法也存在一些问题和局限性。
首先,算法的性能依赖于样本数量和内点数量的选择。
如果样本数量较少或内点数量较少,可能会导致模型估计的不准确性。
其次,算法的鲁棒性较差,对于噪声较大的数据集容易产生较大误差。
此外,RANSAC算法只能估计全局最优的模型参数,对于存在多个局部最优解的情况,无法得到完全准确的结果。
为了改进RANSAC算法的性能,研究者们提出了一些改进的方法。
例如,采用自适应的采样策略可以提高算法的鲁棒性和效率。
另外,结合其他的优化算法(如梯度下降算法)可以进一步提高模型参数的估计精度。
总结起来,RANSAC算法是一种常用的参数估计算法,它通过随机采样和模型拟合的方式,能够在含有噪声和异常值的数据集中,准确地估计出最优的模型参数。
一种改进的RANSAC图像拼接算法

一种改进的RANSAC图像拼接算法张志纯;况立群;韩燮;杨晓文【摘要】针对RANSAC算法迭代次数过多导致的图像拼接效率不高的问题,提出一种改进的RANSAC图像拼接算法;首先采用SIFT算法提取尺度不变特征点,利用双向互匹配策略对特征点进行匹配,在使用RANSAC算法计算单应性矩阵之前,利用相邻特征点之间的关系对初始特征点对进行筛选,最后使用加权平滑法完成图像的融合;实验结果表明该方法有效地减少了特征点对数,提高了RANSAC的运行时间,图像拼接效率有了很大的提高.【期刊名称】《计算机测量与控制》【年(卷),期】2014(022)006【总页数】3页(P1856-1858)【关键词】图像拼接;RANSAC;单应性矩阵;双向互匹配;加权平滑【作者】张志纯;况立群;韩燮;杨晓文【作者单位】中北大学计算机与控制工程学院,太原030051;中北大学计算机与控制工程学院,太原030051;中北大学计算机与控制工程学院,太原030051;中北大学计算机与控制工程学院,太原030051【正文语种】中文【中图分类】TP3910 引言图像拼接[1]是计算机视觉和图像处理领域的研究热点,它是将多幅相互间存在重叠部分的图像序列进行空间匹配对准,经重采样融合后形成一幅包含各图像序列信息的、宽视角场景的、高清晰的新图像。
图像配准是图像拼接的关键技术之一,其实质就是求解平面单应性矩阵的过程,这个矩阵可以表示两幅重叠图像之间的投影变换关系。
目前主要的图像配准方法可分为基于灰度信息的图像配准方法[2],基于特征的图像配准方法[3]和基于变换域的图像配准方法[4]。
基于特征的图像配准方法比较其它两种方法匹配结果更加稳定,速度也更优。
目前基于特征点的图像配准方法应用最广。
在特征点的提取方面,运用SIFT 算法提取的特征点性能稳定,对于旋转、缩放、平移具有不变性,对于光照变化和噪声也有很好的鲁棒性。
在图像的精确匹配方面,最常用的是RANSAC(Random Sample Consensus)算法[5]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第24卷第1期 2015年1月 测绘工程
Engineering of Surveying and Mapping V0I.24,No.1
Jan.,2015
一种改进的RANSAC算法提取多模型圆弧特征点云 许烨璋 ,王鑫森 ,郑德华 ,谢波 ,王春林 (1.河海大学地球科学与工程学院,江苏南京210098;2.天津市勘察院,天津300191)
摘要:针对传统RANSAC算法迭代次数无上限及只能识别单个模型的局限,提出一种适用于扫描线式点云数据 改进的RANSAC算法。对三维激光点云数据进行二维化处理,在RANSAC算法的基础上对局外点进行预剔除,计 算过程中对迭代次数进行自适应调整,采用分次识别法实现多模型圆弧点云的提取。实例证明,文中算法能够有效 地提取同一场景中的多模型圆弧点云,较传统算法具有明显优势。 关键词:点云二维化;改进的RANSAC算法;多模型圆弧;特征提取 中图分类号:TP391.4 文献标志码:A 文章编号:1006—7949(2015)01—0028—04
An improved algorithm of RANSAC to extract feature point cloud of multi--model arc
XU Ye-zhang ,WANG Xin-sen。,ZHENG De-hua ,XIE I3o ,WANG Chun-lin (1.School of Earth Sciences and Engineering,Hohai University,Nanjing 210098,China;2.Tianjin Exploration Institute,Tianjin 300191,China)
Abstract:Against the limit of traditiona1 RANSAC algorithm which has no caps of iterations and can j ust identify one model。it proposes an improved algorithm of RANSAC for scan-wire point cloud of 3-D laser scanning.Firstly 3D point cloud is tranformed into 2D point cloud.Based on the algorithm of RANSAC,the outliers are excluded previously.In the process of calculating,the iterations are adj usted adaptively.At last the idenitification of multiple arcs is gone through graded recognition method.Experiment shows that this algorithm can extract multiple arcs of point cloud better than the traditional algorithm of RANSAC. Key words:two dimensional point cloud;improved algorithm of RANSAC;multi—model arc;automatically extract
目前点云数据的特征提取大多是直接在三维 空间中进行的_1]。特征提取算法基本可分为基于边 界的算法和基于面域的算法两大类,另外还有综合 使用两种方法的混合算法_2]。前者主要是提取点云 数据表面形态变化剧烈的点,通常利用法矢、曲率 等微分几何变量的突变来提取特征。这种方法对 噪声比较敏感,故抗差性较弱。后者主要在于寻找 点云数据中具有相同属性的点集,构造出可靠的生 长区域进行生长,最终实现分割和特征提取。这类 方法主要有RANSAC(随机抽样一致算法)、M估 计、最小中值算法、遗传算法和霍夫变换等[3]。这些 方法本身具有良好的抗差估计性能,因此在提取特
收稿日期:2013—11一Ol;修回日期:2014—10—09 作者简介:许烨璋(1989一),男,硕士研究生.
征时能有效抵御噪声。 RANSAC(Random Sample Consensus)算法是 1981年由Fischler和BollesE ]最先提出。该方法能 够在含有大量粗差点的情况下估计出正确的模型, 较经典的最小二乘法具有明显优势。但随着局外 点的增多,算法的迭代次数会呈现指数式增长,算 法耗时急剧增加。另外RANSAC算法只能实现单 个模型的识别。本文提出一种改进的RANSAC算 法,能够有效地克服传统RANSAC的不足。
1扫描线点云特点及其二维化 1.1扫描线点云特点 扫描线式点云由一组扫描线组成,每条扫描线 点云数据是按照扫描仪与激光脚点的仰角大小依 第1期 许烨璋,等:一种改进的RANSAC算法提取多模型圆弧特征点云 ・29・ 次存储的r5]。本文采用的数据为Trimble GX200 三维激光扫描仪采集的扫描线式点云数据,每条扫 描线都是扫描光刀平面与目标物体的交线。由于 本文所扫描的对象为球体目标,因此所要提取的圆 弧特征点云都位于每条扫描线上。同一条扫描线 中的扫描点基本共面,对于单独一条扫描线数据, 完全可以在二维平面内进行特征点的提取,这样就 可以把复杂的三维点云的问题简化到二维平面内 处理[6],故本文以扫描线为单位进行圆弧点云的 提取。 1.2扫描线点云二维化 由于各项误差的存在,每条扫描线上的点云不 可能都严格位于各自的光刀平面内,而是以微小的 距离分布在光刀平面的两侧。因此将扫描线点云 二维化至其对应的光刀平面,首先须根据扫描线点 D y 图1投影点的三维表达 2 R LC算法的改进 2.1 RANSAC算法原理及其不足 RANSAC算法是通过不断地选择数据集中的 一组随机子集来估计待定模型。选取的点集假设 为局内点即符合模型的数据点,不符合模型的点称 为局外点。每次用选定的随机子集去估计一个待 估模型,然后用该模型去测试数据集中其他的点, 符合该模型的点归为局内点,当局内点数量达到设 定要求时就认为该模型合理,并且将局内点归纳进 来重新估算模型。如果局内点数量不够,则认为该 模型估算的不正确,此时舍弃原模型,重新在数据 集中随机抽取一个子集来估算模型。每次估算的 模型要么因为局内点数量充足而重新生长,要么由 于局内点数量不足而遭到舍弃[7]。最终以局内点和 模型的错误率来评价模型估算的精度。 虽然传统RANSAC算法能从含有大量局外点 的数据集中估算出高精度的模型参数,但其迭代次 数没有上限。如果设置了迭代上限,可能会导致抽 样不充分从而计算出错误的模型,如果不控制迭代 次数,便会造成算法效率低下,难以收敛。 云拟合计算出对应的光刀平面方程式。本文采用 特征值法求取平面方程式,具体解求过程不再详 述。拟合平面求出后将对应的三维点云投影上去, 完成点云的投影。 经过投影后点空间三维点虽已全部位于平面 上,但其坐标仍为(Ind,X,Y,Z)(其中Ind为索引 值)的三维形式,须将这些点转化为(Ind,X,y)的二 维形式,图1所示为某拟合平面0t 内的投影点集 (P0,P 一,P )在三维直角坐标系中;图2所示为 所要得到的二维坐标。其转换过程为:①以P 点为 原点,P 连线的方向矢量为X轴,以过点P 并 垂直于X轴成右手系的向量作为y轴。②计算其 他点P 到P 点的距离d,以及向量P。Pf与P 之间的夹角y。③根据d和7,将二维极坐标向二 维直角坐标转换,求取 点的直角坐标(X,y)。
图2投影点的二维表达 RANSAC算法的另一个不足是它只能在特定的数 据集中估计出一个模型,对于数据集中存在两个或 者两个以上的模型,RANSAC不能识别。 RANSAC算法输入参数见表1。
表1 RANSAC算法输入参数 参数名 含义 一组观测数据 适应于数据的模型 最少必要模型点个数 算法的迭代次数(抽样次数) 决定数据是否适用于模型的阈值 判定模型是否适用于数据集的数据数目
设 个点全部为局内点的概率为P,点集的总 点数为N,所有局外点数为№,则随机选取一个点 为局外点的概率为w,且W—Nt/N。n个点全部 为局内点的概率又可以表示为(1一W) ,1一(1一 W)”表示1"1个点中至少有一个为局外点的概率,则 (1一(1一w) ) 表示永远都取不到,z个点全部都为
m・30・ 测绘工程 第24卷 局内点的概率,它应该和1一P相等,即l—P一 (1一(1一W) ) ,对两边取对数即可得出 走一 若 . ㈩ 迭代时取略大于k的值即可。 由式(1)可以看出,在7z和P固定的情况下,局 外点率W越大,迭代次数k也就越大,算法效率越 低下。因此为了减少迭代次数,提高算法效率,就 必须降低局外点所占的比例并且根据每次数据的 调整对k值进行自适应调整。 2.2局外点的预剔除 本文提取的圆弧点云为球面圆弧点云,为扫描 光刀平面在球面上截取的圆,其直径必然小于或等 于球直径(球面被光刀面所截的圆截面中,通过球 直径的截面最大),因此那些直径大于球直径的数 据点即可认为局外点。利用这一特性本文以相邻 的3个点为一组遍历整条扫描线,计算每组数据对 应圆的直径,将直径大于设定阈值的数据剔除,从 而达到降低外点率的目的。图3为局外点剔除示 意图。
图3局外点剔除示意图 2.3 k值的自适应调整 随着迭代次数的增加,内点被不断地增加到估 算模型的点集中来,即在迭代过程中内点率不断增 加,相应的外点率在不断减小,则根据式(1)迭代次 数k值也在随之减小。本文算法在开始计算时将k 值设置为一个较大的值,然后在每次迭代时根据外 点率重新计算k的值使其趋于一个合理的值完成迭 代。为了验证k值自适应调整的效果,事先针对迭 代次数k值做了一组测试。将k的初始值设为 14 000,开始计算后每隔10 S记录一次k值,从图4 可以看出k值在前40 S中数值下降显著,最终在第 90 S处自适应停止,稳定到55 S左右,表明本文的 自适应处理能够取到良好的效果。 l4 000 . 12 000 。■--\ 一 10 000 8000 6000 4000 2000 O l 2 3 4 5 6 7 8 9 _.一 14000 8320 7l78 3姗 3O06 1018 800 l0o 55 -.埘I' ̄qjs 1O 20 30 40 5o 60 70 80 90 图4 k值自适应变化过程 2.4多模型识别的改进 上文提到RANSAC算法的另一大不足就是只 能对待估点集中的一个模型进行识别,对包含两个 及其以上的模型就无法适用。为解决这一问题,本 文采用分次识别的方法,即将第一次识别出的模型 所对应的点集剔除出二维点集后再进行下一个模 型的识别,按照这种流程直到满足某种条件为止。 综合以上3点改进,本文改进的RANSAC算 法提取圆弧点的算法步骤如下: 1)选定一组已经二维化后的扫描线点集{P , P ,…,P ),将相邻的3个{P ,P斗 ,P斗2 l i∈E1, 一2]}计算构成圆的半径值r,按顺序无重复地遍 历点集。 2)将半径值r∈ ,R ]对应的点保留,将超 过r阈值范围的对应点集剔除,构成新的点集{Q , Q ,…,Q )。 3)将迭代次数k设置为一个足够大的数值,随 机抽取一个包含3个点的样本,计算其模型参数 Model ,即圆心坐标及半径(z。,Y。,r) 。 4)再次检验样本点计算的r值是否符合r∈ ER ,R ],若是,则进入下一步,否则退出本次循环, 转回到3)。 5)遍历点集{Q ,Q,…,Q },判断每加入一个