1 最小二乘法
最小二乘使所有點到曲線的方差最小.利用最小二乘對掃描線上的所有數據點進行擬合,得到一條樣條曲線,然后逐點計算每一個點Pi到樣條曲線的歐拉距離ei(即點到曲線的最短距離),ε是距離的閾值,事先給定,如果ei≥ε,則將該點判斷為噪點.
該方法最重要的事先擬合樣條曲線。
確定曲線類型的方法:根據已知數據點類型初步確定曲線類型,經驗觀察初步嘗試擬合函數類型.
曲線類型選擇:直線,二次曲線,三次曲線,對數函數擬合,冪函數擬合,直至方差最小。
直線:f(X1) = aX1 + b;
二次曲線:f(X1) = aX12 + bX1 + c;
對數函數:f(X1) = a + b log(X1);
冪函數: f(X1) = aX1b
曲線方程參數求解方法:
已知數據點(Xi , Yi)(i = 0,1,2,3…n);Ø為所有次數不超過n的多項式函數;
求${f_k}\left( {{X_i}} \right) = \mathop \sum \limits_{k = 0}^n {a_k}X_i^k$(當k=1,為線性擬合,當k>1為多項式擬合)
注:特殊的多項式擬合-非線性擬合方程需先轉換為線性方程,
eg:對數函數:f(X1) = a + b log(X1),令log(X1) = t ,則 f(X1) = a + b*t,被轉化為線性函數,根據t反解X1;
冪函數: f(X1) = aX1b ,(假設a為正)等式兩邊同時轉變為對數函數,lg(f(X1)) = lg(a)+b(lg(X1)),
令lg(f(X1))為q, (lg(X1))為p,則q = lg(a) + b*p,轉換為線性關系,解出p,q。
以求解${f_k}\left( {{X_i}} \right) = \mathop \sum \limits_{k = 0}^n {a_k}X_i^k \in \emptyset $為例
方差公式:${\rm{min}}\left( {\mathop \sum \limits_{i = 0}^m {{\left( {f\left( {{X_i}} \right) - {Y_i}} \right)}^2}} \right)$,
令
${\rm{I}} = {\rm{\;}}\mathop \sum \limits_{i = 0}^m {\left[ {{f_k}\left( {{X_i}} \right) - {Y_i}} \right]^2} = \;\mathop \sum \limits_{i = 0}^m {\left[ {\mathop \sum \limits_{k = 0}^n ({a_k}X_i^k) - {y_i}} \right]^2} = $min, (公式1)
公式1存在極小值的必要條件是方程在點Xi處的偏導為零,由此可得,
$\frac{{\partial I}}{{\partial {a_j}}} = 2\mathop \sum \limits_{i = 0}^m \left( {\mathop \sum \limits_{k = 0}^n {a_k}X_i^k - {Y_i}} \right)X_i^j = 0\;\;\;\;\;\;\left( {j = 0,1 \ldots n} \right)$ (公式2)
即:
$\mathop \sum \limits_{k = 0}^n \left( {\mathop \sum \limits_{i = 0}^m X_i^{j + k}} \right){a_k} = \mathop \sum \limits_{i = 0}^m X_i^j{Y_{i\;}}\;\;\;\;\;\;\;\left( {j = 0,1 \ldots n} \right)$ (公式3)
將Xi近似為Yi,由公式3可以求出方程的唯一系數解ak(k = 0,1,2…n),從而確定擬合函數,對於多個點需要對系數ak進行優化,求得滿足平均距離最低的系數。
2 最小二乘法的優化方法
最小二乘法擬合直線時容易受到個別噪聲點的影響,對於個別點需要進行預處理。
優化方法:Hough變換直線檢測精度分析
標准直線Hough變換(Hough Transform, HT)
標准直線Hough變換采用如下參數化直線方程:
${\rm{xcos\theta }} + {\rm{ysin\theta }} = {\rm{\rho }}$ (公式2.1)
式中,表示直線的法線方向,0≤180,表示原點至直線的距離,其中的單位為像素,的單位為度。通常在圖像的直線檢測中不使用圖像坐標系,而使用原點在圖像中心處,y軸方向與圖像的y方向相反的正交坐標系。
HT計算過程:
2.1 參數空間投票
為了對直線進行Hough變換,首先需要按一定的量化間隔將可能的與取值范圍離散化為若干區間,其中的取值范圍規定在[0,180)的區間內,而的取值范圍則是由圖像矩形的頂點至原點即圖像中心的距離確定,整個可能的參數空間被離散化一個二維網格,對每一個可能的離散化參數對()即每個單元網格設置一個計數器。然后對圖像中的每個特征點P0(x0,y0)遍歷所有的離散值,如圖2所示,對P0點而言共有(P0,P1),(P0,P2)兩組值。根據公式2.1計算出,對計算出的參數對()計數器+1,這個過程被稱為參數空間投票。
2.2統計HT找到的直線
當所有的點都完成空間投票后,尋找出參數空間中計數器值大於某一給定閾值T的局部極大點,這些局部極大點對應的直線參數對()即代表了HT檢測到的圖像中的直線。
HT直線檢測分析
由上述計算過程可知,對於給定大小的圖像,Hough參數空間的大小主要由的量化間隔或叫分辨率決定。當存在n(特征點個數)個間隔,參數空間()大小將變為n2.所以直線檢測的精度會受到點的個數影響,時間也增加到n2。如果設置間隔過大,導致分辨率過低可能存在某些噪點無法被檢測到從而影響直線的選擇。
3 最小二乘法擬合直線的矩陣實現
直線方程可以表示為
yi = axi+b (i = 1,2,3…m)
設ae,be為他們的近似值,令a = ae+aɛ,b = be+ bɛ,當y作為因變量,x作為自變量時,誤差方程為:
\[{{\rm{V}}_{{\rm{yi}}}} = {\rm{\;}}\left[ {\begin{array}{*{20}{c}}
{{x_i}}&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{{\rm{a}}_\varepsilon }}\\
{{b_\varepsilon }}
\end{array}} \right] + \left( {{{\rm{a}}_{\rm{e}}}{{\rm{x}}_{\rm{i}}} + {b_e} - {{\rm{y}}_{\rm{i}}}} \right)\]
最小二乘法計算誤差:VTV = min
即 $\mathop \sum \limits_{i = 1}^m {\rm{a}}{{\rm{x}}_{\rm{i}}} + {\rm{b}} - {{\rm{y}}_{\rm{i}}}^2 = min$