【图像】尺度不变特征变换算法(SIFT)
SIFT(Scale-Invariant Feature Transform),中文含義就是尺度不變特征變換。自1999年由David Lowe提出以后被廣泛的應用于CV的各種領域:圖像識別,圖像檢索,3D重建等等,可謂無人不知無人不曉。
由于在此之前的目標檢測算法對圖片的大小、旋轉非常敏感,而SIFT算法是一種基于局部興趣點的算法,因此不僅對圖片大小和旋轉不敏感,而且對光照、噪聲等影響的抗擊能力也非常優秀,因此,該算法在性能和適用范圍方面較于之前的算法有著質的改變。這使得該算法對比于之前的算法有著明顯的優勢,所以,一直以來它都在目標檢測和特征提取方向占據著重要的地位。
它的步驟可以主要分兩步:1)特征點檢出 keypoint localisation,2)特征點描述 feature description。
特征點檢出
主要是用了高斯差分函數(DoG),就是把圖像做不同程度的高斯模糊blur,平滑的區域或點肯定變化不大,而紋理復雜的比如邊緣,點,角之類區域肯定變化很大,這樣變化很大的點就是特征點。當然為了找到足夠的點,還需要把圖像放大縮小幾倍(Image Pyramids)來重復這個步驟找特征點。其實DoG并不是Lowe提出的,很久以前就有了,讀過SIFT專利的人都知道,SIFT的專利里面也不包括這部分。可代替特征點檢出還有很多其他方法如MSER等。
特征點描述
就是一個簡單版的HOG,即以檢出的特征點為中心選16x16的區域作為local patch,這個區域又可以均分為4x4個子區域,每個子區域中各個像素的梯度都可以分到8個bin里面,這樣就得到了4x4x8=128維的特征向量。特征點檢出以后還需要一個很重要的步驟就是歸一化,計算這個patch的主方向,然后根據這個主方向把patch旋轉到特定方向,這樣計算的特征就有了方向不變性,也需要根據patch各像素梯度大小把patch縮放到一定的尺度,這樣特征就有了尺度不變性。
方向分配
根據圖像的圖像,可以為每個關鍵定指定一個基準方向,可以相對于這個指定方向表示關鍵點的描述符,從而實現了圖像的旋轉不變性。 關鍵點的尺度用于選擇尺度最接近的高斯平滑圖像,使得計算是以尺度不變的方式執行,對每個圖像?,分別計算它的梯度幅值和梯度方向, ? ? 然后,使用方向直方圖統計關鍵點鄰域內的梯度幅值和梯度方向。將0~360度劃分成36個區間,每個區間為10度,統計得出的直方圖峰值代表關鍵點的主方向。
猜你喜歡:👇🏻
?【圖像】Dog(高斯差分)檢測角點
?【總結】一文了解所有的機器學習評價指標
?基于小波變換的圖像邊緣檢測(matlab祖傳代碼注釋)
總結
以上是生活随笔為你收集整理的【图像】尺度不变特征变换算法(SIFT)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.6.28安装_mysql5
- 下一篇: win7屏保时间设置_论如何优雅的设置手