class: center, middle
谷口昂平
2015/2/19
https://twitter.com/sla/status/565627552082194433
HOG: Histograms of Oriented Gradients (方向つき勾配のヒストグラム)
おおざっぱに言えば、画像をグリッド場のセルに分割し、そのセルごとの方向つき輝度勾配のヒストグラムを連結したもの。けっこう大きい次元になる。
- 人物検出
- 歩行者を含む静止画像から歩行者を検出
- 車の前方衝突防止システムなどに応用
- 参考: Mobileye 社の前方衝突防止システム
- HOG とは書いていないが単眼二次元画像からという点は同じ
- 平行移動
- 照明の変動
- 回転
- 拡大縮小
- 人は服装・光によって輝度は様々だがだいたい垂直に立っている
- 拡大縮小は検出窓の大きさを変えて走査したあと大きさを揃えればよい
- 強み弱みがうまくマッチしている
HOG は「密な SIFT」
]
SIFT: Scale-invariant Feature Transform
- 照明変動に頑健
- 輝度勾配からヒストグラムを作る
- 特徴点の抽出と特徴の記述の両方を行う
- SIFT は特徴点にひもづく局所特徴量だが、 HOG は注目領域全体の特徴量
- 拡大縮小・回転に頑健
輝度を \( 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} \]
で求められる。
セルはピクセルの集まり。たとえば \( 5 \times 5 \)
ピクセルの四角形や、円形でもよい。
セルの中で輝度勾配の向き (\( 0^{\circ} - 180^{\circ} \)
) を \(20^{\circ}\)
ごとの 9つにわけ、同じ角度の範囲になった輝度勾配の大きさを足してヒストグラムを作る。
セルの集まりをブロックと呼ぶ。たとえば 1つのブロックは \( 3 \times 3 \)
のセルからなる。
ブロックごとに 正規化 をする。これが精度をあげる秘訣。
正規化されたブロックごとのヒストグラムを並べて特徴量とするが、正規化を受けられない端のセルは特徴量に含まないことがある。
HOG 特徴量をそのまま SVM に放りこんで学習させてもよい。
画像からの目的領域検出には、複数のスケールの検出窓で左上から右下までスキャンし、目的の物体と識別された領域を答えにする。
AdaBoost とかの弱識別器は自由で、決定木や、SVM を使うという研究もあった。
とりあえず OpenCV にある。
http://docs.opencv.org/modules/gpu/doc/object_detection.html
余談だが、 OpenCV は iPhone アプリに組込めるらしいので、面白いものを思いついたらアプリにもできるんだなあと思った。
- http://news.mynavi.jp/series/computer_vision/022/
- http://www.vision.cs.chubu.ac.jp/joint_hog/pdf/HOG+Boosting_LN.pdf
- http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients
おおもとの論文: http://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf
- 前方衝突防止システムにおける人認識と認識した人の追跡は別の技術
- 動画の毎フレームで人認識をするがフレーム間でどの人が対応するのかはわからない
- 追跡に使われる技術の一つがパーティクルフィルタ
- 隠れマルコフモデルを用いて尤度の高い対応を推定