Skip to content

Instantly share code, notes, and snippets.

@cohei
Last active December 5, 2018 03:53
Show Gist options
  • Save cohei/681bbf22b4687bc7f6ab to your computer and use it in GitHub Desktop.
Save cohei/681bbf22b4687bc7f6ab to your computer and use it in GitHub Desktop.

class: center, middle

HOG 特徴量について

谷口昂平

2015/2/19


Kaggle が!

https://twitter.com/sla/status/565627552082194433


HOG とは

HOG: Histograms of Oriented Gradients (方向つき勾配のヒストグラム)

おおざっぱに言えば、画像をグリッド場のセルに分割し、そのセルごとの方向つき輝度勾配のヒストグラムを連結したもの。けっこう大きい次元になる。

代表的な用例

  • 人物検出
    • 歩行者を含む静止画像から歩行者を検出
    • 車の前方衝突防止システムなどに応用
  • 参考: Mobileye 社の前方衝突防止システム
    • HOG とは書いていないが単眼二次元画像からという点は同じ

特徴

強い

  • 平行移動
  • 照明の変動

弱い

  • 回転
  • 拡大縮小

特徴

人物検出において

  • 人は服装・光によって輝度は様々だがだいたい垂直に立っている
  • 拡大縮小は検出窓の大きさを変えて走査したあと大きさを揃えればよい
  • 強み弱みがうまくマッチしている

HOG 特徴量と SIFT 特徴量の比較

.center[ 実践コンピュータビジョン

HOG は「密な SIFT」

]


HOG 特徴量と SIFT 特徴量の比較

SIFT: Scale-invariant Feature Transform

同じ

  • 照明変動に頑健
  • 輝度勾配からヒストグラムを作る

異なる

  • 特徴点の抽出と特徴の記述の両方を行う
  • SIFT は特徴点にひもづく局所特徴量だが、 HOG は注目領域全体の特徴量
  • 拡大縮小・回転に頑健

HOG 特徴量の計算 (1)

輝度を \( I(x,y) \) とする。輝度勾配の大きさと方向は \( \def\dIx{\Delta I_x(x,y)} \def\dIy{\Delta I_y(x,y)} \) \[ \dIx = I(x+1,y) - I(x-1,y) \] \[ \dIy = I(x,y+1) - I(x,y-1) \] \[ \Delta I(x,y) = \sqrt{\dIx^2 + \dIy^2} \] \[ \theta(x,y) = \tan^{-1} \frac{\dIy}{\dIx} \]

で求められる。

.center[cell]


HOG 特徴量の計算 (2)

セル

セルはピクセルの集まり。たとえば \( 5 \times 5 \) ピクセルの四角形や、円形でもよい。

セルの中で輝度勾配の向き (\( 0^{\circ} - 180^{\circ} \)) を \(20^{\circ}\)ごとの 9つにわけ、同じ角度の範囲になった輝度勾配の大きさを足してヒストグラムを作る。


HOG 特徴量の計算 (3)

ブロック

セルの集まりをブロックと呼ぶ。たとえば 1つのブロックは \( 3 \times 3 \) のセルからなる。

ブロックごとに 正規化 をする。これが精度をあげる秘訣。

正規化されたブロックごとのヒストグラムを並べて特徴量とするが、正規化を受けられない端のセルは特徴量に含まないことがある。

.center[block]


HOG 特徴量の計算 (4)

識別器

HOG 特徴量をそのまま SVM に放りこんで学習させてもよい。

画像からの目的領域検出には、複数のスケールの検出窓で左上から右下までスキャンし、目的の物体と識別された領域を答えにする。

AdaBoost とかの弱識別器は自由で、決定木や、SVM を使うという研究もあった。


使い方

とりあえず OpenCV にある。

http://docs.opencv.org/modules/gpu/doc/object_detection.html

余談だが、 OpenCV は iPhone アプリに組込めるらしいので、面白いものを思いついたらアプリにもできるんだなあと思った。


参考文献

おおもとの論文: http://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf


おまけ

パーティクルフィルタの紹介

  • 前方衝突防止システムにおける人認識と認識した人の追跡は別の技術
  • 動画の毎フレームで人認識をするがフレーム間でどの人が対応するのかはわからない
  • 追跡に使われる技術の一つがパーティクルフィルタ
  • 隠れマルコフモデルを用いて尤度の高い対応を推定
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment