我們有時(shí)候在看一件事物的時(shí)候,無論物體離我們多遠(yuǎn),或者說角度怎么變化,我們好像都可以大概分辨出是什么東西或者人,這是什么原因呢?主要是因?yàn)槭挛锉旧砭植烤哂幸恍┓€(wěn)定的特征,他們具有不變性(亮度,形狀,尺度等)。只要抓住這些特征,就很容易辨認(rèn)出物體,那計(jì)算機(jī)是怎么抓住這些特征的呢。在圖像處理中,使用SIFT(Scale Invariant Feature Transform)算法來獲取這些特征圖像特征。
什么是sift特征此方法由David Lowe于1999年發(fā)表于ICCV(International Conference on Computer Vision),并經(jīng)過5年的整理和完善,在2004年發(fā)表于IJCV(International journal of computer vision)。由于在此之前的目標(biāo)檢測(cè)算法對(duì)圖片的大小、旋轉(zhuǎn)非常敏感,而SIFT算法是一種基于局部興趣點(diǎn)的算法,因此不僅對(duì)圖片大小和旋轉(zhuǎn)不敏感,而且對(duì)光照、噪聲等影響的抗擊能力也非常優(yōu)秀,因此,該算法在性能和適用范圍方面較于之前的算法有著質(zhì)的改變。這使得該算法對(duì)比于之前的算法有著明顯的優(yōu)勢(shì),所以,一直以來它都在目標(biāo)檢測(cè)和特征提取方向占據(jù)著重要的地位。
sift算法的流程Sifts算法主要有個(gè)流程組成:
DOG(高斯差分)尺度空間的極值檢測(cè),
特征點(diǎn)定位
特征方向賦值
特征點(diǎn)描述
先來說一下什么叫尺度空間,我們知道,人的眼睛看一張圖像,會(huì)隨著距離的變化而變化(距離越遠(yuǎn),越模糊),而不管距離遠(yuǎn)景,我們都能抓住事物的不變特征。所以我們需要實(shí)現(xiàn)模擬現(xiàn)實(shí)中圖像在人的眼中隨著距離變化的效果(越遠(yuǎn)圖像越小、模糊,),計(jì)算機(jī)中則用尺度空間來模擬距離的遠(yuǎn)近效果。
模糊程度通常是通過高斯模糊來創(chuàng)建,當(dāng)我們對(duì)原圖像使用高斯模糊創(chuàng)建了一組圖像后,就相當(dāng)于創(chuàng)建了一個(gè)尺度空間,通過圖像的模糊程度來模擬人在距離物體由遠(yuǎn)到近時(shí)物體在視網(wǎng)膜上成像過程,距離物體越近其尺度越大圖像也越模糊,使用不同的參數(shù),模糊圖像(分辨率不變),是尺度空間的另一種表現(xiàn)形式。公式如下:不解釋,不深究,具體去了解高斯模糊的知識(shí)。
不同σ的高斯函數(shù)決定了對(duì)圖像的平滑程度,越大的σ值對(duì)應(yīng)的圖像越模糊。