日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

HOG特征分析

發(fā)布時(shí)間:2025/7/25 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HOG特征分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

from: http://blog.csdn.net/songzitea/article/details/17025149

背景引言

方向梯度直方圖(Histogram of Oriented Gradient,HOG)是用于在計(jì)算機(jī)視覺和圖像處理領(lǐng)域,目標(biāo)檢測(cè)的特征描述子。該項(xiàng)技術(shù)是用來計(jì)算圖像局部出現(xiàn)的方向梯度次數(shù)或信息進(jìn)行計(jì)數(shù)。此種方法跟邊緣方向直方圖、尺度不變特征變換以及形狀上下文方法有很多相似。但與它們的不同點(diǎn)是:HOG的計(jì)算基于一致空間的密度矩陣來提高準(zhǔn)確率。即:在一個(gè)網(wǎng)格密集的大小統(tǒng)一的細(xì)胞單元上計(jì)算,而且為了提高性能,還采用了重疊的局部對(duì)比度歸一化技術(shù)。HoG特征與SVM分類器結(jié)合,已經(jīng)被廣泛應(yīng)用于圖像識(shí)別中,尤其在行人檢測(cè)。本節(jié)內(nèi)容根據(jù)論文[1]理解,介紹HOG相關(guān)知識(shí)。

基本介紹

提出HOG是由Navneet Dalal & Bill Triggs在2005年發(fā)表在CVPR中論文[1]。作者給了特征提取的流程圖,如下圖1所示:

HOG的核心思想是所檢測(cè)的局部物體外形能夠被光強(qiáng)梯度或邊緣方向的分布所描述。通過將整幅圖像分割成小的連接區(qū)域稱為cells,每個(gè)cell生成一個(gè)方向梯度直方圖或者cell中pixel的邊緣方向,這些直方圖的組合可表示出所檢測(cè)目標(biāo)的目標(biāo))描述子。為改善準(zhǔn)確率,局部直方圖可以通過計(jì)算圖像中一個(gè)較大區(qū)域稱為block的光強(qiáng)作為measure被對(duì)比標(biāo)準(zhǔn)化,然后用這個(gè)measure歸一化這個(gè)block中的所有cells.這個(gè)歸一化過程完成了更好的照射/陰影不變性。與其他描述子相比,HOG得到的描述子保持了幾何和光學(xué)轉(zhuǎn)化不變性除非物體方向改變而Block與Cells關(guān)系如下圖所示:


而現(xiàn)在,我們給出作者做的行人檢測(cè)試驗(yàn),如下圖6所示:


其中,圖中(a)表示所有訓(xùn)練圖像集的平均梯度;(b)和(c)分別表示:圖像中每一個(gè)區(qū)間上的最大最大正、負(fù)SVM權(quán)值;(d)表示一副測(cè)試圖像;(e)計(jì)算完R-HOG后的測(cè)試圖像;(f)和(g)分別表示被正、負(fù)SVM權(quán)值加權(quán)后的R-HOG圖像

算法描述

HOG特征提取方法:首先將圖像分成小的連通區(qū)域,我們把它叫細(xì)胞單元。然后采集細(xì)胞單元中各像素點(diǎn)的梯度的或邊緣的方向直方圖。最后把這些直方圖組合起來就可以構(gòu)成特征描述器。如下圖所示。


即:將一個(gè)圖像:第一步,灰度化即:將圖像看做一個(gè)x,y,z(灰度)的三維圖像;第二步:劃分成小cells(2*2);第三步,計(jì)算每個(gè)cell中每個(gè)pixel的gradient(即orientation);最后, 統(tǒng)計(jì)每個(gè)cell的梯度直方圖(不同梯度的個(gè)數(shù)),即可形成每個(gè)cell的descriptor。整個(gè)算法具體過程由以下幾個(gè)部分組成:

色彩和伽馬歸一化(Gamma/Color normalization)

在實(shí)際在實(shí)際應(yīng)用中,這一步可以省略,因?yàn)?span style="font-family:Comic Sans MS">作者分別在灰度空間、RGB色彩空間和LAB色彩空間上對(duì)圖像進(jìn)行色彩和伽馬歸一化。實(shí)驗(yàn)結(jié)果顯示,這個(gè)歸一化的預(yù)處理工作對(duì)最后的結(jié)果沒有影響,在后續(xù)步驟中也有歸一化的過程,那些過程可以取代這個(gè)預(yù)處理的歸 一化。詳細(xì)請(qǐng)見參考資料[1].

梯度的計(jì)算(Gradient computation)

簡(jiǎn)單地使用一個(gè)一維的離散微分模板在一個(gè)方向上或者同時(shí)在水平和垂直兩個(gè)方向上對(duì)圖像進(jìn)行處理,更確切地說,這個(gè)方法需要使用下面的濾波器核濾除圖像中的色彩或變化劇烈的數(shù)據(jù)作者也嘗試了其他一些更復(fù)雜的模板,如3×3 Sobel 模板,或diagonal masks,但是在這個(gè)行人檢測(cè)的實(shí)驗(yàn)中,這些復(fù)雜模板的表現(xiàn)都較差,所以作者的結(jié)論是:模板越簡(jiǎn)單,效果反而越好。作者也嘗試了在使用微分模板前加入 一個(gè)高斯平滑濾波,但是這個(gè)高斯平滑濾波的加入使得檢測(cè)效果更差,原因是:許多有用的圖像信息是來自變化劇烈的邊緣,而在計(jì)算梯度之前加入高斯濾波會(huì)把這 些邊緣濾除掉。

構(gòu)建方向的直方圖(creating the orientation histograms)

此步就是為圖像的每個(gè)細(xì)胞單元構(gòu)建梯度方向直方圖。細(xì)胞單元中的每一個(gè)像素點(diǎn)都為某個(gè)基于方向的直方圖通道投票。投票是采取加權(quán)投票(weighted voting)的方式,即每一票都是帶權(quán)值的,這個(gè)權(quán)值是根據(jù)該像素點(diǎn)的梯度幅度計(jì)算出來。可以采用幅值本身或者它的函數(shù)來表示這個(gè)權(quán)值,實(shí)際測(cè)試表明: 使用幅值來表示權(quán)值能獲得最佳的效果,當(dāng)然,也可以選擇幅值的函數(shù)來表示,比如幅值的平方根、幅值的平方、幅值的截?cái)嘈问降取?/span>細(xì)胞單元可以是矩形的,也可以是星形的。直方圖通道是平均分布在無向(0~180度)或有向(0~360度)范圍內(nèi)。

作者發(fā)現(xiàn),采用無向的梯度和9個(gè)直方圖通道,能在行人檢測(cè)試驗(yàn)中取得最佳的效果。把細(xì)胞單元組合成大的區(qū)間由于局部光照的變化以及前景-背景對(duì)比度的變化,使得梯度強(qiáng)度的變化范圍非常大。這就需要對(duì)梯度強(qiáng)度做歸一化,作者采取的辦法是:把各個(gè)細(xì)胞單元組合成大的、空間上連通的區(qū)間(blocks)。 這樣以來,HOG描述器就變成了由各區(qū)間所有細(xì)胞單元的直方圖成分所組成的一個(gè)向量。這些區(qū)間是互有重疊的,這就意味著:每一個(gè)細(xì)胞單元的輸出都多次作用 于最終的描述器。區(qū)間有兩個(gè)主要的幾何形狀:矩形區(qū)間(R-HOG)和環(huán)形區(qū)間(C-HOG)。


R-HOG: R-HOG區(qū)間大體上是一些方形的格子,它可以有三個(gè)參數(shù)來表征:每個(gè)區(qū)間中細(xì)胞單元的數(shù)目、每個(gè)細(xì)胞單元中像素點(diǎn)的數(shù)目、每個(gè)細(xì)胞的直方圖通道數(shù)目。作者通過實(shí)驗(yàn)表明,行人檢測(cè)的最佳參數(shù)設(shè)置是:3×3細(xì)胞 /區(qū)間、6×6像素/細(xì)胞、9個(gè)直方圖通道。作者還發(fā)現(xiàn),在對(duì)直方圖做處理之前,給每個(gè)block加一個(gè)高斯空域窗口(Gaussian spatial window)是非常必要的,因?yàn)檫@樣可以降低邊緣的周圍像素點(diǎn)的權(quán)重。R- HOG跟SIFT描述器看起來很相似,但他們的不同之處是:R-HOG是在單一尺度下、密集的網(wǎng)格內(nèi)、沒有對(duì)方向排序的情況下被計(jì)算出來;而SIFT描述器是在多尺度下、稀疏的圖像關(guān)鍵點(diǎn)上、對(duì)方向排序的情況下被計(jì)算出來。補(bǔ)充一點(diǎn),R-HOG是各區(qū)間被組合起來用于對(duì)空域信息進(jìn)行編碼,而SIFT的各描述器是單獨(dú)使用的。

C-HOG: C- HOG區(qū)間有兩種不同的形式,它們的區(qū)別在于:一個(gè)的中心細(xì)胞是完整的,一個(gè)的中心細(xì)胞是被分割的。如上圖所示:作者發(fā)現(xiàn) C-HOG的這兩種形式都能取得相同的效果。C-HOG區(qū)間可以用四個(gè)參數(shù)來表征:角度盒子的個(gè)數(shù)、半徑盒子個(gè)數(shù)、中心盒子的半徑、半徑的伸展因子。通過實(shí)驗(yàn),對(duì)于行人檢測(cè),最佳的參數(shù)設(shè)置為:4個(gè)角度盒子、2個(gè)半徑盒子、中心盒子半徑為4個(gè)像素、伸展因子為2。前面提到過,對(duì)于R- HOG,中間加一個(gè)高斯空域窗口是非常有必要的,但對(duì)于C-HOG,這顯得沒有必要。C-HOG看起來很像基于形狀Shape Contexts的方法,但不同之處是:C-HOG的區(qū)間中包含的細(xì)胞單元有多個(gè)orientation channels,而基于形狀上下文的方法僅僅只用到了一個(gè)單一的edge presence count。


區(qū)間歸一化(Block normalization Schemes)作者采用了四中不同的方法對(duì)區(qū)間進(jìn)行歸一化,并對(duì)結(jié)果進(jìn)行了比較。引入v表示一個(gè)還沒有被歸一 化的向量它包含了給定區(qū)間(block)的所有直方圖信息。| | vk | |表示v的k階范數(shù),這里的k去1、2。用e表示一個(gè)很小的常數(shù)。這時(shí),歸一化因子可以表示如下:


L2-norm:L1-norm:L1-sqrt:還 有第四種歸一化方式:L2-Hys,它可以通過先進(jìn)行L2-norm,對(duì)結(jié)果進(jìn)行clipping,然后再重新歸一化得到。作者發(fā)現(xiàn):采用L2- Hys L2-norm 和 L1-sqrt方式所取得的效果是一樣的,L1-norm稍微表現(xiàn)出一點(diǎn)點(diǎn)不可靠性。但是對(duì)于沒有被歸一化的數(shù)據(jù)來說,這四種方法都表現(xiàn)出來顯著的改進(jìn)。SVM 分類器(SVM classifier)最后一步就是把提取的HOG特征輸入到SVM分類器中,尋找一個(gè)最優(yōu)超平面作為決策函數(shù)。作者采用 的方法是:使用免費(fèi)的SVMLight軟件包加上HOG分類器來尋找測(cè)試圖像中的行人。

綜上所述,HoG沒有旋轉(zhuǎn)和尺度不變性,因此計(jì)算量小;而SIFT中每個(gè)特征需要用128維的向量來描述,因此計(jì)算量相對(duì)很大。而行人檢測(cè)中,對(duì)于解決Scale-invariant 的問題:將圖片進(jìn)行不同尺度的縮放,就相當(dāng)于對(duì)模板進(jìn)行不同尺度scale的縮放.對(duì)于解決Rotation-invariant 的問題:建立不同方向的模版(一般取15*7的)進(jìn)行匹配.總的來說,就是在不同尺度上的圖像進(jìn)行不同方向的模板(15*7)匹配,每個(gè)點(diǎn)形成一個(gè)8方向的梯度描述。SIFT由于其龐大計(jì)算量不用與行人檢測(cè),而PCA-SIFT的方法過濾掉很多維度的信息,只保留20個(gè)主分量,因此只適用于行為變化不大的物體檢測(cè)

與其它的特征描述方法(如:SIFT, PCA-SIFT, SURF)相比,HOG有優(yōu)點(diǎn)是:首先,由于HOG是在圖像的局部方格單元上操作,所以它對(duì)圖像幾何的和光學(xué)的形變都能保持很好的不變性,這兩種形變只會(huì)出現(xiàn)在更大的空間領(lǐng)域上。其次,在粗的空域抽樣、精細(xì)的方向抽樣以及較強(qiáng)的局部光學(xué)歸一化等條件下,只要行人大體上能夠保持直立的姿勢(shì),可以容許行人有一些細(xì)微的肢體動(dòng)作,這些細(xì)微的動(dòng)作可以被忽略而不影響檢測(cè)效果。因此HOG特征是特別適合于做圖像中的人體檢測(cè)。

而關(guān)于HOG如何實(shí)現(xiàn),請(qǐng)參考[5]和[6]。

參考資料

[1] Dalal, N. and B. Triggs. "Histograms of Oriented Gradients for Human Detection", IEEE Computer Society Conference on Computer Vision and Pattern Recognition,Vol. 1 (June 2005), pp. 886–893.

[2] Histogram of Oriented Gradients(HOG),From Wikipedia, the free encyclopedia.

[3] INRIA Human Image Dataset,collected as part of research work on detection of upright people in images and video.

[4] GitHub TrainHoG Tutorial https://github.com/DaHoC/trainHOG/wiki/trainHOG-Tutorial.

[5] Example program showing how to train your custom HOG detector using OpenCV.

[6] OpneCV Example Samples HoG.cpp Source Codehttps://code.ros.org/trac/opencv/browser/trunk/opencv/samples/gpu/hog.cpp?rev=4307.

總結(jié)

以上是生活随笔為你收集整理的HOG特征分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。