本次任務將學習一種在深度學習之前非常流行的影象特徵提取技術——方向梯度直方圖(histogram of oriented gradients),簡稱hog特徵。hog特徵是在2023年cvpr的會議發表,在影象手工特徵提取方面具有里程碑式的意義,當時在行人檢測領域獲得了極大成功。
學習hog特徵的思想也有助於我們很好地了解傳統影象特徵描述和影象識別方法,本次任務我們將學習到hog背後的設計原理,和opencv的實現。
理解hog特徵的原理和思想
使用opencv的hog演算法實現行人檢測
hog特徵簡介
hog特徵的原理
影象預處理
計算影象梯度
計算梯度直方圖
block歸一化
獲得hog描述子
基於opencv實現
hog特徵簡介
hog特徵是一種影象區域性特徵,其基本思路是對影象區域性的梯度幅值和方向進行投票統計,形成基於梯度特性的直方圖,然後將區域性特徵拼接起來作為總特徵。區域性特徵在這裡指的是將影象劃分為多個子塊(block), 每個block內的特徵進行聯合以形成最終的特徵。
hog特徵的原理
預處理包括灰度化和gamma變換。
灰度處理是可選操作,因為灰度影象和彩色影象都可以用於計算梯度圖。對於彩色影象,先對三通道顏色值分別計算梯度,然後取梯度值最大的那個作為該畫素的梯度。
然後進行伽馬矯正,調節影象對比度,減少光照對影象的影響(包括光照不均和區域性陰影),使過曝或者欠曝的影象恢復正常,更接近人眼看到的影象。
伽馬矯正公式:
f (i
)=iγ
f(i)=i^\gamma
f(i)=iγii
i表示影象,γ
\gamma
γ表示冪指數。
如圖,當γ
\gamma
γ取不同的值時對應的輸入輸出曲線( γ=1
\gamma=1
γ=1時輸入輸出保持一致) :
1) 當γ
<
1\gamma<1
γ<
1時,輸入影象的低灰度值區域動態範圍變大,進而影象低灰度值區域對比度得以增強;在高灰度值區域,動態範圍變小,進而影象高灰度值區域對比度得以降低。 最終,影象整體的灰度變亮。
2) 當γ
>
1\gamma>1
γ>
1時,輸入影象的高灰度值區域動態範圍變小,進而影象低灰度值區域對比度得以降低;在高灰度值區域,動態範圍變大,進而影象高灰度值區域對比度得以增強。 最終,影象整體的灰度變暗。
hog演算法具有以下優點:
hog描述的是邊緣結構特徵,可以描述物體的結構資訊
對光照影響不敏感
分塊的處理可以使特徵得到更為緊湊的表示
hog演算法具有以下缺點:
特徵描述子獲取過程複雜,維數較高,導致實時性差
遮擋問題很難處理
對雜訊比較敏感
詳解HOG特徵描述運算元中的難點
3.block中的拼接 梯度是在一副影象中尋找邊緣強度和方向的工具。梯度是用一階微分來實現的。先看下圖,梯度的表示。梯度的大小是用如下公式表示的。由於該公式下的計算會導致巨大的計算開銷,在多數情況下,是使用絕對值來近似平方和平方根的計算。該操作如下所示 梯度的方向由以下公式表示 需要注意的是,任意一...
CV Haar特徵描述運算元
1.3 案列 計算haar特徵值 1.4 特徵值歸一化 1.5 adaboost級聯分類器 2 python 實現 學習目標 haar特徵分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵,組合成特徵模板。特徵模板內有白色和黑色兩種矩形,並定義該模板的特徵值為白色矩形畫素和減去黑色矩形畫素和。haa...
Task03 Haar特徵描述運算元 人臉檢測
3.1簡介 haar like特徵最早是由papageorgiou等應用於人臉表示,在2001年,viola和jones兩位大牛發表了經典的 rapid object detection using a boosted cascade of features 和 robust real time f...