<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你了解HOG特征嗎?

          共 1941字,需瀏覽 4分鐘

           ·

          2021-10-13 11:46

          ? ?作者:晟 沚? ? ? ? ??

          ? ? ? ??


          前 ?言


          ? ?

          HOG特征在很多任務(wù)中都有應用,如行人檢測,首先對輸入的圖片進行預處理,然后計算像素點的梯度值,然后形成梯度直方圖,然后對blocks進行normalize,最后收集到HOG feature(其實是一行高維的vector)放到SVM里進行監(jiān)督學習,從而實現(xiàn)行人的檢測,對于行人檢測來說,圖像梯度是一個很重要的信息。利用圖像梯度,就可以只關(guān)注邊角信息,以此勾勒出的人的模樣還是可以分辨出來。另外如目標跟蹤也有采用,下一篇具體介紹。

          HOG全稱histogramof oriented gradients.如果翻譯成中文就是方向梯度直方圖。它可以用來表示圖像的物體特征,因此能夠檢測出這類物體。

          ?


          01

          實例講解

          • 圖像預處理

          包括伽馬校正和灰度化。這是可選的步驟,因為實驗證明做不做影響不大。伽馬校正是減少光度對實驗的影響。灰度化是將彩色圖片變成灰度圖。其實彩色圖片也可以直接處理。不過是分別對三通道的顏色值進行梯度計算,最后選擇梯度最大的那個。為簡單起見,假設(shè)輸入為灰度圖,同時大小是64*128。

          • 計算每一個像素點的梯度值,得到梯度圖(規(guī)模和原圖大小一樣)

          對于像素點A,要計算水平梯度和豎直梯度,如上圖,水平梯度?gx?=30-20=10,豎直梯度?gy?=64-32=32.

          那么總的梯度強度值g和梯度方向??將按照以下公式計算:


          梯度方向?qū)〗^對值,因此梯度方向的范圍是0-180度。取絕對值的原因是這樣效果更好。

          • 計算梯度直方圖

          按照第二步的計算,每一個像素點都會有兩個值:梯度強度/梯度方向。

          現(xiàn)在就計算梯度直方圖,這是一個關(guān)鍵步驟也是HOG能夠work的原因。

          梯度直方圖是在一個8*8的cell里面計算的。那么在8*8的cell里面就會有8*8*2=128個值,2是包括了梯度強度和梯度方向。通過統(tǒng)計形成梯度直方圖,128個值將會變成9個值,大大降低了計算量,同時又對光照等環(huán)境變化更加地robust。

          首先,將0-180度分成9個bins,分別是0,20,40...160。然后統(tǒng)計每一個像素點所在的bin。請看下圖:

          左上圖是8*8的梯度方向值,右上圖是8*8的梯度強度值,下圖是9個bins。

          先看兩個藍色圈圈。因為藍圈的方向是80度,大小是2,所以該點就投給80這個bin;

          再看兩個紅色圈圈。因為紅色圈圈的方向是10,大小是4,因為10距離0點為10,距離20點為也為10,那么有一半的大小是投給0這個bin,還有一半的大小(即是2)投給20這個bin。

          那么統(tǒng)計完64個點的投票數(shù)以后,每個bin就會得到一個數(shù)值,可以得到一個直方圖,在計算機里面就是一個大小為9的數(shù)組。

          從上圖可以看到,更多的點的梯度方向是傾向于0度和160度,也就是說這些點的梯度方向是向上或者向下,表明圖像這個位置存在比較明顯的橫向邊緣。因此HOG是對邊角敏感的,由于這樣的統(tǒng)計方法,也是對部分像素值變化不敏感的,所以能夠適應不同的環(huán)境。

          • 對16*16大小的block歸一化

          歸一化的目的是降低光照的影響。

          歸一化的方法是向量的每一個值除以向量的模長。

          比如對于一個(128,64,32)的三維向量來說,模長是?

          那么歸一化后的向量變成了(0.87,0.43,0.22)


          16*16大小的block由上圖藍框得到,綠色方塊是8*8大小的cell,藍色方塊就是由4個cell組成的block。作者提出要對block進行normalize。那么由于一個cell就會有大小為9的vector,四個cell就有36大小的vector。對block進行normalize就是對這大小為36的vector進行歸一化。

          而每一個block將按照上圖籃框移動的方式進行迭代截取。

          • 得到HOG特征向量

          每一個16*16大小的block將會得到36大小的vector。那么對于一個64*128大小的圖像,按照上圖的方式提取block,將會有7個水平位置和15個豎直位可以取得,所以一共有7*15=105個block,所以我們整合所有block的vector,形成一個大的一維vector的大小將會是36*105=3780。

          得到HOG特征向量,就可以用來可視化和分類了。對于這么大的HOG特征,SVM就排上用場了。




          ?

          END








          機器學習算法工程師


          ? ??? ? ? ? ? ? ? ? ? ? ? ??????????????????一個用心的公眾號


          ?







          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青娱乐换妻偷拍 | 综合娱乐久久网 | 欧美性精品 | 黄色网址av | 亚洲AV激情无码专区在线播放 |