1. 程式人生 > >Chapter 8:Automating the Featurizer: Image Feature Extraction and Deep Learning

Chapter 8:Automating the Featurizer: Image Feature Extraction and Deep Learning

一、the simplest image features

最簡單的image表徵方法為:pixel matrix。但是,這種表徵方法,沒有將pixel之間的relationship囊括在內,因此,無法capture enough semantic information about the image。因此,對於image task來講,這種表徵方法too bad for analysis。如下圖所示:具有相近pixel matrix的image,很可能表徵的是兩種截然不同的classification:

二、Manual feature extraction:SIFT and HOG

1、基本概念

  • image gradient
    image gradient:The difference in value between neighboring pixels is called an image gradient。
    The simplest way to compute the image gradient is to separately calculate the differences along the horizontal (x) and vertical (y) axes of the image, then compose them into a 2D vector.

  • Gradient orientation histograms
    image gradient只能窺探image中一個十分微小的section,但是,在現實世界,我們看到的section要遠比這個大的多。那麼,怎麼來用image gradient表徵一個image patch呢?學者提出了“gradient orientation histograms”的概念,他不僅考慮了一個image patch上所有pixel的image gradient,而且也考慮了each pixel的magnitude。gradient orientation histogram的具體操作如下:


    2、SIFT and HOG
  • SIFT
    SIFT特徵以其對旋轉、尺度縮放、亮度等保持不變性,是一種非常穩定的區域性特徵,在影象處理和計算機視覺領域有著很重要的作用,其本身也是非常複雜的,下面對其計算過程做一個粗略總結。
    1)DoG尺度空間的極值檢測。 首先是構造DoG尺度空間,在SIFT中使用不同引數的高斯模糊來表示不同的尺度空間。而構造尺度空間是為了檢測在不同尺度下都存在的特徵點,特徵點的檢測比較常用的方法是Δ2GΔ2G(高斯拉普拉斯LoG),但是LoG的運算量是比較大的,Marr和Hidreth曾指出,可以使用DoG(差分高斯)來近似計算LoG,所以在DoG的尺度空間下檢測極值點。
    2)刪除不穩定的極值點。主要刪除兩類:低對比度的極值點以及不穩定的邊緣響應點。
    3)** 確定特徵點的主方向**。以特徵點的為中心、以3×1.5σ3×1.5σ為半徑的領域內計算各個畫素點的梯度的幅角和幅值,然後使用直方圖對梯度的幅角進行統計。直方圖的橫軸是梯度的方向,縱軸為梯度方向對應梯度幅值的累加值,直方圖中最高峰所對應的方向即為特徵點的方向。
    4)生成特徵點的描述子。 首先將座標軸旋轉為特徵點的方向,以特徵點為中心的16×1616×16的視窗的畫素的梯度幅值和方向,將視窗內的畫素分成16塊,每塊是其畫素內8個方向的直方圖統計,共可形成128維的特徵向量。特徵點描述子的生成圖示如下:
  • HOG
    HOG步驟簡述:
    1)將一個image 分割成多個block;
    2)計算每個block的“方向梯度直方圖”;
    3)將各個block的“方向梯度直方圖”進行拼接,形成最後的image特徵。
  • SIFT和HOG,均有很多需要定義的hyperparameter,如:
    1)How many bins should there be? Should they span from 0°–360°
    (signed gradients) or 0°–180° (unsigned gradients)?
    2)What weight functions should be used?
    3)What kind of normalization should be done?
    4)How are neighborhoods defined? How should they cover the
    image?

3、HOG與SIFT區別
HOG和SIFT都屬於描述子,以及由於在具體操作上有很多相似的步驟,所以致使很多人誤認為HOG是SIFT的一種,其實兩者在使用目的和具體處理細節上是有很大的區別的。HOG與SIFT的主要區別如下:
① SIFT是基於關鍵點特徵向量的描述。
② HOG是將影象均勻的分成相鄰的小塊,然後在所有的小塊內統計梯度直方圖。
③ SIFT需要對影象尺度空間下對畫素求極值點,而HOG中不需要。
④ SIFT一般有兩大步驟,第一個步驟是對影象提取特徵點,而HOG不會對影象提取特徵點。