其余重要参考文献:
随机抽样一致性算法(RANSAC)
作者:王先荣
(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;
(2)“局外点”是不能适应该模型的数据;
(3)除此之外的数据属于噪声。
本文内容
1 示例
2 概述
3 算法
4 参数
5 优点与缺点
6 应用
7 参考文献
8 外部链接
一、示例
左图:包含很多局外点的数据集
二、概述
三、算法
输入:
data —— 一组观测数据
model —— 适应于数据的模型
n —— 适用于模型的最少数据个数
k —— 算法的迭代次数
t —— 用于决定数据是否适应于模型的阀值
d —— 判定模型是否适用于数据集的数据数目
输出:
best_model —— 跟数据最匹配的模型参数(如果没有找到好的模型,返回null)
best_consensus_set —— 估计出模型的数据点
best_error —— 跟数据相关的估计出的模型错误
iterations = 0
best_model = null
best_consensus_set = null
best_error = 无穷大
while ( iterations < k )
返回 best_model, best_consensus_set, best_error
四、参数
五、优点与缺点
六、应用
七、参考文献
- Martin A. Fischler and Robert C. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography".Comm. of the ACM
24: 381–395. doi:10.1145/358669.358692. - David A. Forsyth and Jean Ponce (2003).
Computer Vision, a modern approach. Prentice Hall. ISBN 0-13-085198-1. - Richard Hartley and
Andrew Zisserman (2003). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press. - P.H.S. Torr and D.W. Murray (1997). "The Development and Comparison of Robust Methods for Estimating the Fundamental Matrix".
International Journal of Computer Vision 24: 271–300.doi:10.1023/A:1007927408552. - Ondrej Chum (2005).
"Two-View Geometry Estimation by Random Sample and Consensus". PhD Thesis.http://cmp.felk.cvut.cz/~chum/Teze/Chum-PhD.pdf - Sunglok Choi, Taemin Kim, and Wonpil Yu (2009)."Performance Evaluation of RANSAC Family".
In Proceedings of the British Machine Vision Conference (BMVC).http://www.bmva.org/bmvc/2009/Papers/Paper355/Paper355.pdf.
八、外部链接
- RANSAC Toolbox for MATLAB. A research (and didactic) oriented toolbox to explore the RANSAC algorithm in
MATLAB. It is highly configurable and contains the routines to solve a few relevant estimation problems. - Implementation in C++
as a generic template. - RANSAC for Dummies
A simple tutorial with many examples that uses the RANSAC Toolbox for MATLAB. - 25 Years of RANSAC Workshop
九、后话
不过,如果时间允许的话,我打算自己动手用C#去实现RANSAC算法,原因有两个: