当前位置:网站首页 > 技术博客 > 正文

特征选择pca



 转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/

勿在浮沙筑高台

  随机抽样一致性(RANSAC)算法,可以在一组包含“外点”的数据集中,采用不断迭代的方法,寻找最优参数模型,不符合最优模型的点,被定义为“外点”。在图像配准以及拼接上得到广泛的应用,本文将对RANSAC算法在OpenCV中角点误匹配对的检测中进行解析。



1.RANSAC原理  

  OpenCV中滤除误匹配对采用RANSAC算法寻找一个最佳单应性矩阵H,矩阵大小为3×3。RANSAC目的是找到最优的参数矩阵使得满足该矩阵的数据点个数最多,通常令h33=1来归一化矩阵。由于单应性矩阵有8个未知参数,至少需要8个线性方程求解,对应到点位置信息上,一组点对可以列出两个方程,则至少包含4组匹配点对。


                                                                      其中(x,y)表示目标图像角点位置,(x',y')为场景图像角点位置,s为尺度参数

  RANSAC算法从匹配数据集中随机抽出4个样本并保证这4个样本之间不共线,计算出单应性矩阵,然后利用这个模型测试所有数据,并计算满足这个模型数据点的个数与投影误差(即代价函数),若此模型为最优模型,则对应的代价函数最小。


-----------------------------------------------------------------------------------------------------------------

RANSAC算法步骤: 

          1. 随机从数据集中随机抽出4个样本数据 (此4个样本之间不能共线),计算出变换矩阵H,记为模型M;

          2. 计算数据集中所有数据与模型M的投影误差,若误差小于阈值,加入内点集 I ;

          3. 如果当前内点集 I 元素个数大于最优内点集 I_best , 则更新 I_best = I,同时更新迭代次数k ;

          4. 如果迭代次数大于k,则退出 ; 否则迭代次数加1,并重复上述步骤;

  注:迭代次数k在不大于最大迭代次数的情况下,是在不断更新而不是固定的;

                                       其中,p为置信度,一般取0.995;w为"内点"的比例 ; m为计算模型所需要的最少样本数=4;

-----------------------------------------------------------------------------------------------------------------


2.例程

OpenCV中此功能通过调用findHomography函数调用,下面是个例程:

 

3. RANSAC源码解析

(1)findHomography内部调用cvFindHomography函数

srcPoints:目标图像点集

dstPoints:场景图像点集

method: 最小中值法、RANSAC方法、最小二乘法

ransacReprojTheshold:投影误差阈值

mask:掩码

 

(2) runRANSAC
maxIters:最大迭代次数

m1,m2 :数据样本

model:变换矩阵

reprojThreshold:投影误差阈值

confidence:置信度  0.995

 

(3)getSubset

ms1,ms2:保存随机找到的4个样本

maxAttempts:最大迭代次数,300

 

(4) findInliers & computerReprojError

 
(5)cvRANSACUpdateNumIters 

对应上述k的计算公式

p:置信度

ep:外点比例

 

版权声明


相关文章:

  • unittest框架介绍2025-03-12 20:01:05
  • mvvm react2025-03-12 20:01:05
  • c语言中指针p++到底什么意思2025-03-12 20:01:05
  • 电脑阅读器推荐2025-03-12 20:01:05
  • c++中sprintf2025-03-12 20:01:05
  • mysql日期时间函数大全2025-03-12 20:01:05
  • asx文件怎么打开2025-03-12 20:01:05
  • java怎么调用jframe窗口2025-03-12 20:01:05
  • windows测试路由命令2025-03-12 20:01:05
  • 数据库事务怎么理解2025-03-12 20:01:05