underMのブログ

underMのブログ

ブログの説明を入力します。

Amebaでブログを始めよう!
今日はHoGについて少し調べましたので,メモ書き程度に記録しときます.間違いがある可能性が高いので責任は一切取りません.


HoGは,画像の輝度勾配をヒストグラム化することで,物体などの特徴を抽出する手法の1つです.

HoGには以下のような特徴があります.

○幾何学変換に頑健
○証明変動に頑健

上記のような特徴から,よくヒト検出などに用いられてますね.その頑健さは様々な論文で証明されています.


アルゴリズムは意外と単純です.
まず,すべての画素で縦横方向の勾配強度mと勾配方向θを求めます.
式は以下のとおり.



Iが画像,(u,v)は画素の位置です.


次に,5×5[pixel]で画像をグリッド状に分割します.この5×5[pixel]を1セルとします.
1セル内で,先程求めた勾配方向θを0~180[degree]に分割し,各画素の勾配方向に対応するビンに分類します.
ちょうど画素値のヒストグラムを生成するのと同じ感じですね.
ただ,このとき画素の勾配強度mをヒストグラムの重みとして加算します.
これによって,1セルを9次元の特徴ベクトルで表現できます.


次に,3×3の大きさのセルを1ブロックとして考えます.
先程のセルは,互いのセルが重ならないようなグリッドとして考えましたが,ブロックは互いのブロックが重なるものとします.
それぞれのブロックにおいて,先程求めた9次元のベクトルを連結し,81次元の特徴ベクトルを生成します.
ただし,この時特徴ベクトルはL2ノルムで正規化します.


最後に,81次元の特徴ベクトルをすべて連結し,最終的な特徴ベクトルを取得します.



以上がHoGの特徴抽出手法の流れです.
5×5[pixel]とか,3×3セルとかは,多分色んな実験の結果,それが最適な値になったのだと思います.

説明読んでてわかると思いますが,かなり計算コストが高いです.
画像サイズにもよりますが,基本的に実時間処理は難しいと思います.
GPUとか使えば問題ないと思いますが(笑)ゴリ押しですね.

かなり分かりづらい説明だったと思いますが,HoGの説明は以上です.


<参考論文>
映像情報メディア学会 Vol.64, No.3, pp.322~329(2010).