不多說,直接上干貨!
PCA-SIFT算法在描述子構建上作了創新,主要是 將統計學中的主成分分析(PCA)應用於對描述子向量的降維,以提高匹配效率 。
PCA 的原理是:一般有效信號的方差大,噪聲的方差小;通過PCA可以降維濾除噪聲,保留信號。
1、算法分析
PCA-SIFT與標准SIFT有相同的亞像素位置(sub-pixel),尺度(scale)和主方向(dominant orientations),但在第4步計算描述子的時候,它用特征點周圍的41×41的像斑計算它的主元,並用PCA-SIFT將原來的2×39×39維的向量降成20維,以達到更精確的表示方式。
算法步驟如下:
(1)構建描述子的區域選定為以特征點為中心的41X41矩形(已與特征點主方向對齊);
(2)計算39x9矩形內每個像素對水平、垂直兩個方向的偏導數(最外層像素不計算偏導數)。得到一個39x39x2=3042維的向量,對其歸一化;
(3)假設有N個特征點,那么所有特征點描述子向量構成一個Nx3042的矩陣。對這N個向量計算NxN協方差矩陣;
(4)計算協方差矩陣的前k個最大特征值所對應的特征向量,這k個向量組成一個3042xk的投影矩陣;
(5)將Nx3042的描述子矩陣與3042xk的投影矩陣相乘,得到Nxk的矩陣,即降維描述子向量組成的矩陣。此時N個特征點的描述子向量均為k維。文中作者經過實驗,取k=36。
算法步驟還有另一種描述,見這里。
該算法的創新之處 在於降低描述子維度的同時濾除了部分描述子向量中的干擾信息,有較好的魯棒性 。同時該算法為后人研究描述子打開了一個方向,例如GLOH算法在描述特征點時也是用PCA將16*17維的向量降為40維,但GLOH算法構建描述子的方法不同,它是基於對數極坐標來構建的。
2、比較
(1)結果比較:PCA-SIFT所得的描述子在旋轉、尺度變換,透視變換,添加噪聲匹配的情形下,匹配均大幅領先於SIFT;在亮度變換時,與傳統SIFT不相上下。在匹配時所得的正確點對也多於傳統SIFT。可見PCA-SIFT生成的描述子質量很高。SIFT和PCA-SIFT的比較 。在運行時間方面,PCA-SIFT在特征點提取、描述子計算中略快於SIFT;但在后續的描述子匹配過程中,PCA-SIFT的速度大大超過SIFT的速度。
(2)優缺點比較:
△ SIFT:
維數:128
缺點:維數高、不完全的仿射不變
優點:需要較少的經驗主義知識,易於開發
△ PCA-SIFT:
維數:可變,推薦20或者更少
缺點:不完全的仿射不變;投影矩陣需要一系列有代表性的圖像;這個矩陣只對這類圖像起作用
優點:保留不變性的同時低維,大大減少了計算時間。
參考資料:
【特征匹配】PCA-SIFT原理及源碼解析
PCA-SIFT特征分析(提升篇)
PCA-SIFT
PCA-SIFT:一個更鮮明地局部圖像描述符
特征提取方法 SIFT,PCA-SIFT,GLOH,SURF
SURF PCA-SIFT and SIFT 開源代碼 總結
談談SIFT、PCA-SIFT、SURF及我的一點思考
SIFT算法詳解