1. 程式人生 > >影象金字塔(pyramid)與 SIFT 影象特徵提取(feature extractor)

影象金字塔(pyramid)與 SIFT 影象特徵提取(feature extractor)

0. 影象金字塔變換(matlab)

matlab 對影象金字塔變換介面的支援(impyramid),十分簡單好用。

其支援在reduceexpand兩種方式的變換,分別是成比例的縮小和放大。

% 載入影象資料到記憶體
I = imread('cameraman.tif'); size(I)

% reduce ==> {2, 4, 8}
I1 = impyramid(I, 'reduce'); size(I1)
I2 = impyramid(I1, 'reduce'); size(I2)
I3 = impyramid(I2, 'reduce'); size(I3)

figure
a1 = subplot(1
, 4, 1); imshow(I), xs = get(a1, 'xlim'); ys = get(a1, 'ylim'); a2 = subplot(1, 4, 2); imshow(I1), set(a2, 'xlim', xs, 'ylim', ys); a3 = subplot(1, 4, 3); imshow(I2), set(a3, 'xlim', xs, 'ylim', ys); a4 = subplot(1, 4, 4); imshow(I3) set(a4, 'xlim', xs, 'ylim', ys); I1 = impyramid(I, 'expand'); size(I1) I2 = impyramid(I1, 'expand'
); size(I2) I3 = impyramid(I2, 'expand'); size(I3) figure a1 = subplot(1, 4, 1); imshow(I3), xs = get(a1, 'xlim'); ys = get(a1, 'ylim'); a2 = subplot(1, 4, 2); imshow(I2), set(a2, 'xlim', xs, 'ylim', ys); a3 = subplot(1, 4, 3); imshow(I1), set(a3, 'xlim', xs, 'ylim', ys); a4 = subplot(1, 4, 4); imshow(I) set
(a4, 'xlim', xs, 'ylim', ys);

1. SIFT

SIFT(Scale-invariant feature transform)是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點(interest points,or corner points)及其有關 scale 和 orientation 的描述子(descriptor)得到特徵並進行影象特徵點匹配,獲得了良好效果。

整個演算法分為以下幾個部分:

  • 1、構建尺度空間

    這是一個初始化操作,尺度空間理論目的是模擬影象資料的多尺度特徵

    高斯卷積核是實現尺度變換的唯一線性核,於是一副二維影象的尺度空間多尺度特徵自然在尺度空間中定義)定義為:

    L(x,y,σ)=G(x,y,σ)I(x,y)

    二維的高斯卷積核的形式為:G(x,y,σ)=12πσ2e(x2+y2)/2σ2

    σ 大小決定影象的平滑程度,大尺度對應影象的概貌特徵,小尺度對應影象的細節特徵。大的 σ 值對應粗糙尺度(低解析度),反之,對應精細尺度(高解析度)。為了有效的在尺度空間檢測到穩定的關鍵點,提出了高斯差分尺度空間(DOG scale-space)。利用不同尺度的高斯差分核與影象卷積生成。

    D(x,y,σ)==(G(x,y,kσ)G(x,y,σ))I(x,y)L(x,y,kσ)L(x,y,σ)

    這裡寫圖片描述

    影象金字塔的建立:對於一幅影象I,建立其在不同尺度(scale)的影象,也成為子八度(octave),這是為了scale-invariant,也就是在任何尺度都能夠有對應的特徵點,第一個子八度的scale為原圖大小,後面每個octave為上一個octave降取樣的結果,即原圖的1/4(長寬分別減半),構成下一個子八度(高一層金字塔)。

  • 2、LoG 近似 DoG 找到關鍵點<檢測DOG尺度空間極值點>

    為了尋找尺度空間的極值點,每一個取樣點要和它所有的相鄰點比較,看其是否比它的影象域和尺度域的相鄰點大或者小。如圖所示,中間的檢測點和它同尺度的8個相鄰點和上下相鄰尺度對應的9×2個點共26個點比較,以確保在尺度空間和二維影象空間都檢測到極值點。 一個點如果在DOG尺度空間本層以及上下兩層的26個領域中是最大或最小值時,就認為該點是影象在該尺度下的一個特徵點,如圖所示。


    這裡寫圖片描述
  • 3、除去不好的特徵點