HOG特征-理解篇
網上去找關于HOG的資料,發現理解性的較少,而且較為冗長,為方便大家理解便自己寫了篇,希望能對奮斗在特征提取第一線的同志們有所幫助:
HOG即histogram of oriented gradient, 是用于目標檢測的特征描述子,該技術將圖像局部出現的方向梯度次數進行計數,該方法和邊緣方向直方圖、scale-invariant feature transform類似,不同的是hog的計算基于一致空間的密度矩陣來提高準確率。Navneet Dalal?and?Bill Triggs首先在05年的CVPR中提出HOG,用于靜態圖像or視頻的行人檢測。
HOG特征原理:
HOG的核心思想是所檢測的局部物體外形能夠被光強梯度或邊緣方向的分布所描述。通過將整幅圖像分割成小的連接區域(稱為cells),每個cell生成一個方向梯度直方圖或者cell中pixel的邊緣方向,這些直方圖的組合可表示出(所檢測目標的目標)描述子。為改善準確率,局部直方圖可以通過計算圖像中一個較大區域(稱為block)的光強作為measure被對比標準化,然后用這個值(measure)歸一化這個block中的所有cells.這個歸一化過程完成了更好的照射/陰影不變性。
與其他描述子相比,HOG得到的描述子保持了幾何和光學轉化不變性(除非物體方向改變)。因此HOG描述子尤其適合人的檢測。
通俗的講:
HOG特征提取方法就是將一個image:
1.????????????灰度化(將圖像看做一個x,y,z(灰度)的三維圖像)
2.????????????劃分成小cells(2*2)
3.????????????計算每個cell中每個pixel的gradient(即orientation)
4.????????????統計每個cell的梯度直方圖(不同梯度的個數),即可形成每個cell的descriptor
再小談下Hog、SIFT與PCA-SIFT的應用與區別:
Hog沒有旋轉和尺度不變性,因此計算量小;而SIFT中每個feature需要用128維的向量來描述,因此計算量相對很大。
那么行人檢測中怎么應用HOG呢?
對于解決Scale-invariant?的問題:將圖片進行不同尺度的縮放,就相當于對模板進行不同尺度scale的縮放
對于解決Rotation-invariant?的問題:建立不同方向的模版(一般取15*7的)進行匹配
總的來說,就是在不同尺度上的圖像進行不同方向的模板(15*7)匹配,每個點形成一個8方向的梯度描述。
SIFT由于其龐大計算量不用與行人檢測,而PCA-SIFT的方法過濾掉很多維度的信息,只保留20個主分量,因此只適用于行為變化不大的物體檢測。
| method | Time | Scale | Rotation | Blur | Illumination | Affine |
| Sift | common | best | best | common | common | good |
| PCA-sift | good | good | good | best | good | best |
| Surf? | best | common | common | good | best | good |
關于sift的其他講解:
http://blog.csdn.net/abcjennifer/article/details/7639681
http://blog.csdn.net/abcjennifer/article/details/7372880
http://blog.csdn.net/abcjennifer/article/details/7365882
from: http://blog.csdn.net/abcjennifer/article/details/7365651
總結
- 上一篇: LibSVM 在matlab中的使用
- 下一篇: 无监督特征学习——Unsupervise