圖像特征提取:HOG、LBP、Haar特征


1、圖像特征

       特征是某一類對象區別於其他類對象的相應(本質)特點或特性, 或是這些特點和特性的集合。特征是通過測量或處理能夠抽取的數據。對於圖像而言, 每一幅圖像都具有能夠區別於其他類圖像的自身特征,有些是可以直觀地感受到的自然特征,如亮度、邊緣、紋理和色彩等;有些則是需要通過變換或處理才能得到的, 如矩、直方圖以及主成份等。

2、圖像處理

      圖像處理中最常用到的三種特征:Haar特征、LBP特征及HOG特征分別描述了三種不同的局部信息:

      1) Haar描述的是圖像在局部范圍內像素值明暗變換信息;

      2) LBP描述的是圖像在局部范圍內對應的紋理信息;

      3) HOG描述的則是圖像在局部范圍內對應的形狀邊緣梯度信息。

2.1、Haar特征

      最容易接觸到Haar特征地方應該就是opencv自帶的人臉檢測器,所采用的就是Haar特征結合Adaboost算法來實現的,利用Haar特征表征人臉在局部范圍內像素值的明暗變化信息,結合積分圖技巧加速訓練一個級聯的Adaboost分類器。Haar特征表示如圖1所示:

圖 1 Haar特征

 

 

       計算過程就是黑色矩形區域內像素值之和減去白色矩形區域內像素值之和,計算過程其實很簡單。但是,直接計算的話,針對每一個矩形區域,我們都需要做一次循環,計算區域內像素之和,對每個位置進行滑窗遍歷進行Haar特征提取會使得計算量爆炸,因此,一般Haar特征會配合積分圖技術一起來使用。

       積分圖計算如圖2所示,經過計算后,積分圖中每個點對應值Inter(x,y)為對應藍色矩形區域像素值之和。

 

圖 2 積分圖

      當需要提取Haar特征時,我們需要計算矩形塊中像素值之和時,我們只需要將其四個頂點對應於積分圖中的值拿出來,做一個求和操作即可,計算過程如圖3所示。

 

 

       S1的面積等與I1-I2-I4+I3,一個矩形區域內像素累加求和計算轉變成了幾個值的加減運算,大大的提升了算法執行效率。

2.2、LBP特征

       Local Binary Pattern(局部二進制模式)簡稱,LBP特征對於傳統的人臉識別而言,應該是十分有效的。LBP特征提取的思路就是,圖像中某一個物體應該包含有多個像素,而且像素與像素之間位置關系應該是連續的,也即是說,在空間位置上有關聯的像素信息也是有關聯的,因此,可以考慮利用在空間位置上鄰近的像素來對當前像素進行二進制編碼,這也就是LBP。

        常見的LBP有LBP,CS-LBP,Uniform-LBP,圓形LBP和旋轉不變LBP等。LBP、CS-LBP和Uniform-LBP都是基於當前像素的八鄰域來計算的,八鄰域示意圖如圖4所示:

 

 

 圖 4 8領域示意圖

       傳統LBP計算公式:

      然而原始的LBP存在以下幾個問題:

    1) 固定鄰域內的編碼,對於尺度比較敏感,例如,人臉尺寸發生變化,人臉編碼會出現誤差;

    2) LBP特征的維度為2^{8}=256維,特征維度過高;

    3)對於光照、旋轉等因素敏感。

       針對上述問題,CS-LBP利用中心對稱的思想對局部紋理進行描述,其計算公式為:

 

       CS-LBP特征的維度為維,相較於傳統的LBP,大大地降低了特征維度,大大提升了計算效率。同時,這種對稱計算的方式,能夠在一定程度上應對光照、旋轉等因素。Uniform-LBP翻譯過來可以是等價模式,作者Ojala的靈感來自於,通過大量實驗發現:在實際圖像中,絕大多數LBP模式最多只包含兩次從1到0或從0到1的跳變,因此,在實際應用中,我們只需要統計那些跳變次數在[0,2]之間的二進制模式(這些LBP也稱之為等價模式,即Uniform-LBP),經過統計發現,滿足這樣的LBP總共只有58種,這樣,256維的LBP就變成了58維的Uniform-LBP了。

       圓形LBP采用圓形鄰域取代3方形鄰域,並且可以通過調整半徑,將3x3大小領域擴展到任意大小鄰域。圓形LBP可以在一定程度上緩解尺度因素引起的變化,但是對於旋轉因素較為敏感,因此,在圓形LBP的基礎上,研究者提出了旋轉不變LBP。旋轉不變LBP對應旋轉不變指的是,將圓形領域進行旋轉LBP編碼,將最小的LBP編碼值作為當前像素點的編碼值,這樣,當物體發生旋轉時,能夠提取到的LBP編碼值具備一定的旋轉不變性。

2.3、HOG特征

 

 

 

       Histogram of Gradient(梯度直方圖)縮寫,主要應用於圖像中的邊緣檢測,主要步驟如下:

  1. 轉為灰度圖;
  2. gamma變換:降低局部陰影和光照變化影響;
  3. 梯度計算:利用一階或二階差分近似計算圖像梯度及方向:

      梯度分量計算:

 

 

 

       梯度和方向計算:

 

 

 

       4. 方向划分:將方向對應角度區間離散化及模糊處理

       首先,將方向對應角度無符號化,其實本質上就是將位於一條直線上的兩個方向都視為一個角度,也即是\theta\theta-\pi視為同一個角度,其中\theta>0,這樣方向范圍就變成了[0,\pi];然后,將角度范圍均等划分為9個bins,每一個bin對應一個角度,所有bins對應的角度為:[0,\pi /9,2\pi /9,3\pi /9,...,8\pi /9]

       5. 梯度直方圖統計:

        通過每個像素的梯度值和梯度方向做梯度直方圖統計,如圖5所示

圖 5 梯度直方圖計算示意圖

       如果梯度方向正好位於bins的邊界線上時,將對應梯度值加到bins中,圖5中的梯度值2對應的梯度方向正好在bins 80邊界上,則把2直接加到bins 80中,如果梯度值不是正好位於邊界上,使用插值的方式進行分配,假設梯度grad位於bins[i]和bins[i+1]分界線之間,則加入bins[i]的梯度值為:grad*(grad-bins[i])/20,加入bins[i+1]的梯度值為:grad*(bins[i+1]-grad)/20。

       而單個像素的梯度對於噪聲比較敏感,直接對每一個像素梯度進行統計,得到的特征可能不夠魯棒,因此,將圖像進行分塊統計,HOG原文是將圖像划分為8x8大小的cell,cell的個數為:

 

       6. 重疊方塊歸一化處理 

       為進一步降低HOG特征對於噪聲、光照等因素的影響,將cell進一步組合,將2x2個cell組合成一個block,然后對block進行歸一化處理。

       組合完之后,每個block表示的向量大小為4x9=36,如果圖片大小為128x64,那么cell的個數為:128/8x64/8=16x8,對應block個數為:(16-2+1)*(8-2+1)=15x7=105個,因此,最終得到hog特征的維度為4x9x105=3780維。

 

參考鏈接:

https://blog.csdn.net/xiaowei_cqu/article/details/8216109

https://blog.csdn.net/sinat_31425585/article/details/82735158/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM