1. 程式人生 > >影象區域性特徵點的理解

影象區域性特徵點的理解

影象特徵提取是影象分析與影象識別的前提,它是將高維的影象資料進行簡化表達最有效的方式,從一幅影象的M×N×3的資料矩陣中,我們看不出任何資訊,所以我們必須根據這些資料提取出影象中的關鍵資訊,一些基本元件以及它們的關係。

區域性特徵點是影象特徵的區域性表達,它只能反正影象上具有的區域性特殊性,所以它只適合於對影象進行匹配,檢索等應用。對於影象理解則不太適合。而後者更關心一些全域性特徵,如顏色分佈,紋理特徵,主要物體的形狀等。全域性特徵容易受到環境的干擾,光照,旋轉,噪聲等不利因素都會影響全域性特徵。相比而言,區域性特徵點,往往對應著影象中的一些線條交叉,明暗變化的結構中,受到的干擾也少。

斑點與角點是兩類區域性特徵點

。斑點通常是指與周圍有著顏色和灰度差別的區域,如草原上的一棵樹或一棟房子。它是一個區域,所以它比角點的噪能力要強,穩定性要好。而角點則是影象中一邊物體的拐角或者線條之間的交叉部分

無論是角點斑點還是邊緣的檢測,說白了其實都是在檢測極值點。如邊緣檢測,尋找的就是一階微分的極值點,當然一階微分的極值點當然是二階微分的過零點,所以邊緣檢測有兩種常用的方法:一是基於一階微分的,尋找極值點,如Roberts,Canny,Prewitt等等;另一類是基於二階微分的,尋找過零點,如LoG等。

  1. 斑點特徵檢測(Bold Detection)
    斑點通常是指與周圍有著顏色和灰度差別的區域。斑點通常和關鍵點(key point),興趣點(intrest point)以及特徵點(feature point)表示同一個概念。在實際的數字影象中存在著大量的斑點,如,從遠處看,一棵樹是一個斑點,一塊草地是一個斑點,一棟房子也可以是一個斑點等等。與單純的角點不同的是,斑點代表的是一個小的區域

    ,因此,它的穩定性更好,抗噪聲能力更強
    對於斑點檢測,其實是找二階微分的極值點,當然不同方法,其二階微分運算元不一樣。常用的斑點檢測演算法有LoG,DoH以及Gilles等。這些演算法中的操作一般都比較耗時,並且斑點檢測一般只是預處理操作,完整的過程還包括斑點特徵描述,特徵匹配搜尋等,所以,人們一直在探索斑點檢測的快速演算法。終於,Lowe在前人研究的基礎上,提出了非常著名的裡程碑式的SIFT演算法,該演算法將斑點檢測,特徵描述以及特徵匹配搜尋結合在一起優化,極大地提高了效率。在斑點檢測中,Lowe提出了LoG的近似演算法DoG,提高了斑點檢測的效率。沿著Lowe的思路,Bay等人提出了SURF演算法
    ,對DoH進行了簡化和近似。
    1.1 一般斑點檢測的步驟為:
    (1)定義運算元,對影象進行卷積運算
    (2)搜尋區域性響應的峰值(極值)

  2. 角點檢測
    角點可以從兩個不同角度定義:角點是兩個邊緣的交點;角點是領域內具有兩個主方向的特徵點。角點所在的領域通常也是影象中穩定的,資訊豐富的區域,這些領域可能具有某些特性,比如旋轉不變性,尺度不變性,仿射不變性和光照亮度不變性。
    角點檢測的方法也是極多的,基於影象灰度的方法通過計算點的曲率以及梯度來檢測角點,是目前研究的重點。角點檢測的方法具有代表性的演算法是Harris演算法與FAST演算法。