最小二乘法和隨機抽樣一致性
阿新 • • 發佈:2019-02-07
1. 原理
- 最小二乘法(leastSquares)的原理1
leastSquares通過最小化測量資料與模型資料的平方和, 求出模型引數。
- 隨機抽樣一致性(ransac)的原理2
ransac的線性擬合算法步驟大致如下:
while 最大嘗試次數
從觀測點集中隨機取兩點, 計算出直線的引數k, t(或者k用向量表示), 得出一個候選的直線模型.
計算候選直線與整個點集的匹配程度,可以採用統計在直線上(或到直線的距離小於一個閾值)的點的個數.
保留匹配程度最好的直線的引數.
如果本次嘗試匹配點的個數佔整個點集大部分, 超出預期(閾值), 提前結束嘗試.
endwhile
匹配程度也可以用其他指標來衡量, 替換上面的匹配計算.
兩者的共同點都是要首先確定模型, 模型分為線性模型與非線性模型. 一般常見的應用是線性模型, 如
2. 誤差/效能分析
leastSquares的誤差為
e , 但一般用相關係數r 來表示,r 越接近1, 模型越好;r 等於0, 擬合無意義, 模型不實際情況不符合.ransac的誤差一般用在擬合直線的一個範圍內, 在此範圍內點的個數佔整個點集比例來衡量.
3. 差別
在應用上, 二者的差別是:
- leastSquares對噪聲比較敏感, 演算法簡單;
- ransac能去除一些噪聲的干擾, 如果假定模型與實際的情形一致, 那麼一般由觀測資料計算的ransac模型, 更能接近實際情況, 去除觀測或過程噪聲干擾, 演算法稍微複雜些.
最小二乘法也可以先進行去除離群點的資料預處理, 應用ransac或窮舉的方法, 利用任意兩點計算一條直線, 將距離直線太遠的點設定為離群點, 距離直線較近的點為符合條件的點. 迴圈處理, 比較群內點的個數, 記錄下群內點數最多的集合. 這些點就是 去除離群點的點集合, 利用這些點再進行最小二乘法擬合.
4. 應用
在影象處理及圖形學中, 這兩種演算法經常被用到, 特別是ransac.
在OpenCV的三維重建和標定模組中有很多應用, 如solvePnPRansac, findHomography, estimateAffine3D3等。