Upload
tranxuyen
View
231
Download
4
Embed Size (px)
Citation preview
HOG特徴量と Boostingを用いた人検出
中部大学 工学部 情報工学科 藤吉研究室
http://www.vision.cs.chubu.ac.jp/JointHOG/
はじめに
• AdaBoost ‒ 基礎知識と特徴 ‒ アルゴリズムの解説
• HOG特徴量 ‒ 算出手順の解説
• Real AdaBoost ‒ AdaBoostとの違い ‒ アルゴリズムの解説
• 人検出 ‒ 識別実験と検出例
AdaBoost
AdaBoostとは
• 統計的学習手法 Boostingの1つ ‒ 1997年にY.Freund等が提案[Freund ‘97]
• 学習サンプルの重みを適応的(adaptive)に更新 ‒ 計算量の爆発と汎化性能の低下を抑制 ‒ 誤識別したサンプルに対し重みαを増加
• 最終識別器は弱識別器の重み付き多数決
AdaBoostの特徴
• 識別精度が高い ‒ 汎化性能に対する理論的な裏付け ‒ 学習後期では識別の困難なデータに特化
• 解析が容易 ‒ 特徴選択の傾向などを後から調査
学習アルゴリズム
1,2 前処理
1 前処理 – N個の学習サンプル を用意 • : 画像 • : クラスラベル
‒ 人には+1, 非人には-1
2 学習サンプルの重みの初期化 ‒ 各サンプルの重み を均等にする
学習アルゴリズム
3.1 弱識別器候補
• 基本的に設計は自由 ‒ 1か-1を出力する関数 ‒ エラー率が0.5以下
• Viola&Jonesの顔検出では閾値関数を使用 ‒ ある1つの特徴量に対する分布を観測
!vp
ht:tラウンド目の弱識別器 :特徴量 :閾値 :不等号の向きを決定する 変数(1or-1)
ht(x) =!
1 p · v(x) > p · !!1 otherwise
学習アルゴリズム
3.2 エラー率の算出
• 弱識別器に対するエラー率 を算出 ‒ 弱識別器hの応答値とクラスラベルが異なった場合サンプルの重みを足し合わせる
‒ エラー率が0.5を超えたら、弱識別器のパリティpを反転
et,m =N!
i:ht(xi) !=yi
Dt(i)
Neg← →Pos
出現確率
!
p = -1
Pos← →Neg
出現確率
!
et,m
Pos Neg Pos Neg
et,m = 0.65 et,m = 1! (0.65)= 0.35
学習アルゴリズム
4,5 弱識別器の選択と重みの算出
4 エラー率 が最小となるhを現在のラウンドの弱識別器として採用
5 採用した弱識別器に対する重み を算出 ‒ 重み = 信頼度
ht = arg min et,m
!t =12
ln!
1! et
et
"
!t
(ln = loge)※
et = 0.067
! =12
ln(0.9330.067
)
=12
ln 13.925
= 1.316
・優秀な弱識別器 et = 0.241
! =12
ln(0.7590.241
)
=12
ln 3.149
= 0.574
・標準的な弱識別器 et = 0.5
! =12
ln(0.50.5
)
=12
ln 1
= 0
・半分しか正解できない弱識別器
et
学習アルゴリズム
6 学習サンプルの重みの更新
7 学習サンプルの重みの更新
6,7 サンプルの重みの更新と正規化
Dt+1(i) = Dt(i) exp(!!tytht(xi))
Dt+1(i) =Dt+1(i)
N!
i=1
Dt(i) exp(!!tytht(xi))
h =1(人) h =-1(非人)
y = 1ラベル y = 1ラベル
ytht(xi) = 1 ytht(xi) = !1
となり、 重みは低くくなる Dt+1(i) = Dt(i) exp(!!t) となり、
重みは高くなる Dt+1(i) = Dt(i) exp(!t)
学習アルゴリズム
8 最終識別器の構築
• すべての弱識別器に信頼度で重みをつけて多数決をとる形になる – Hが閾値 より高ければ人、低ければ非人と判定
H(x) = sign
!T"
t=1
!tht(x)! "
#!
実装時のポイント
• 学習回数(ラウンド) ‒ 任意(100~2000回)
• 学習サンプル ‒ 多ければ多い方がよい • 統計的信頼性の確保 • 多様なパターンに対応
‒ 人検出では2,000~5,000枚、顔検出では約10,000枚
HOG特徴量
HOGとは
• Histograms of Oriented Gradients ‒ N. Dalal等により2005年のCVPRで発表[Dalal ‘05] ‒ 局所領域(セル)の輝度の勾配方向をヒストグラム化 • 幾何学的変換に強い • 照明の変動に頑健
HOG特徴量の算出アルゴリズム
1. 輝度の勾配方向と勾配強度の算出 2. ヒストグラムの作成 3. ブロック領域による正規化
HOGの算出法1
1 輝度の勾配方向と強度の算出
2 ヒストグラムの作成 ‒ 0°から180°までを、20°ずつ9方向に分割
!fx(x, y) = L(x + 1, y)! L(x! 1, y)fy(x, y) = L(x, y + 1)! L(x, y ! 1)
m(x, y) =!
fx(x, y)2 + fy(x, y)2
!(x, y) = tan!1 fy(x, y)fx(x, y)
勾配強度:
勾配方向:
HOGの算出法2
3 ブロック領域での正規化 ‒ あるn番目のHOG特徴量について正規化 ‒ 分母は1ブロック(q×qセル)含まれるHOG特徴量の総和 ‒ 1つのセルに対し複数回の正規化
‒ 例:30×60の入力画像の場合 • 1セル:5×5ピクセル、1ブロック:3×3セル
v(n) =v(n)!""#
$q!q!N%
k=1
v(k)2&
+ !
(! = 1)
N:勾配方向数
(4×10)×(3×3)×9 = 3,240個(次元)のHOG特徴量
正規化回数 1ブロックのセル数 勾配方向数
HOG特徴量の可視化
• 勾配方向と勾配強度を可視化 ‒ 輝度が高いほど強度高
0° 40°
80°
120° 160°
HOG特徴量と AdaBoostを用いた人検出
AdaBoostの学習 学習サンプル
HOG算出
3240次元
エラー率
MIN
弱識別器h e
弱識別器h e
弱識別器h e
弱識別器h e
選択された弱識別器
h1 ( ) , α1
弱識別器 重み
AdaBoostの学習 学習サンプル
HOG算出
3240次元
エラー率
MIN 弱識別器h e
弱識別器h e
弱識別器h e
弱識別器h e
選択された弱識別器
h1 ( ) , α1
弱識別器 重み
h2 ( ) , α2
AdaBoostの学習 学習サンプル
HOG算出
3240次元
エラー率
MIN
弱識別器h e
弱識別器h e
弱識別器h e
弱識別器h e
選択された弱識別器
h1 ( ) , α1
弱識別器 重み
h2 ( ) , α2
hT ( ) , αT
人: 非人:otherwise
AdaBoostによる識別
未知入力パターン HOG特徴量算出
選択された弱識別器
h1 ( ) × α1
弱識別器 重み
h2 ( ) × α2
hT ( ) × αT
+
+
+
H(x) > !
H(x) =T!
t=1
!tht(x)強識別器:
!※閾値:
Real AdaBoost
AdaBoostとReal AdaBoost
• AdaBoost(Discrete AdaBoost) ‒ 弱識別器の出力(1,-1)にαで重み付けて結合することで最終識別器を構築
• Real AdaBoost[Schapire ‘99] ‒ AdaBoostからの派生 ‒ 弱識別器の出力が特徴量の分布に応じて実数値化(real) ‒ サンプルに対しどの程度の識別が可能であるかが分かる
‒ 少ない弱識別器で高精度な検出 • 学習の収束が早い
効果的な重みの更新が可能
学習アルゴリズム
1,2 前処理
1 前処理 – N個の学習サンプル • : 画像 • : クラスラベル
‒ 人には+1, 非人には-1
2 学習サンプルの重みの初期化 ‒ 各サンプルの重み を均等にする
学習アルゴリズム
ネガティブサンプル( )
3.1 確率密度関数
• 特徴量をBINに変換しサンプルの重みを 足し合わせ、分布(ヒストグラム)を作成
0 1 2 … 62 63
出現確率
特徴量 j (BIN) 0 1 2 … 62 63
出現確率
特徴量 j (BIN)
ポジティブサンプル( )
学習アルゴリズム
3.2 弱識別器の評価値算出
• 2つの分布のBhattacharyya距離で類似度を算出 • 類似度が低い→分離し易い
出現確率
特徴量 j (BIN)
小 = 分布が分離しずらい →識別に有効ではない
大 = 分布が分離しやすい →識別に有効
評価値 :
出現確率
特徴量 j (BIN)
識別に有効な特徴量
z = 1!!
j
"W j
+W j!
学習アルゴリズム
= 0.15, = 0.15
= 0.0
4 最もz が高い弱識別器を選択
• z が高い = 識別に有効な弱識別器
‒ 弱識別器の出力
: 学習ラウンド : 弱識別器の番号
( )
= 0.1, = 0.2
= -1.39
= 0.26, = 0.12
= 1.54
出現確率
特徴量 j (BIN)
出現確率
特徴量 j (BIN)
出現確率
特徴量 j (BIN)
学習アルゴリズム5
• 学習サンプルの重みの更新
• 学習サンプルの重みの正規化
学習アルゴリズム5
= 0.15, = 0.15 = 0.0
= 0.1, = 0.2 = -1.39
= 0.26, = 0.12 = 1.54
出現確率
特徴量 j (BIN)
出現確率
特徴量 j (BIN)
出現確率
特徴量 j (BIN)
ポジティブ サンプル
ネガティブ サンプル
重みを高く 重みを低く
ポジティブ サンプル
ネガティブ サンプル
重みを低く 重みを高く
ポジティブ サンプル
ネガティブ サンプル
重みはそのまま
学習アルゴリズム6
学習アルゴリズム6
• 強識別器の生成 ‒ 弱識別器の線形和 • AdaBoostのように重みαは必要ない
– Hが閾値 より高ければ人、低ければ非人と判定
H(x) = sign
!T"
t=1
ht(x)! !
#
!
識別実験
• 予め切り出された画像を用いて評価
• 比較手法 ‒ HOG+AdaBoost ‒ HOG+Real AdaBoost
• データベース(CUデータセット) ‒ 評価用は位置ずれを含む ・学習用 ・評価用
ポジティブサンプル : 2,054枚 ポジティブサンプル : 1,000枚 ネガティブサンプル : 6,258枚 ネガティブサンプル : 1,234枚
評価方法
• DET (Detection Error Tradeoff)カーブ ‒ 横軸に誤検出率、縦軸に未検出率 ‒ 閾値を変化させながらプロット ‒ 誤検出率に対する未検出率を比較が可能 左下に向かうほど、精度が良い
• DETカーブによる識別精度の比較
識別結果
人検出の実装
• 画像中のどこに人が存在するかを探索 検出ウィンドウをラスタスキャン
• 人と判定された複数の領域の統合 MeanShiftクラスタリング
検出ウィンドウのラスタスキャン
• 画像中に検出ウィンドウを網羅的に走査 • スケールを徐々に変化させながら探索
:検出ウィンドウ :検出された領域 :検出された領域の中心点
MeanShiftによるクラスタリング
• 一人に対して複数のウィンドウが人として検出 – MeanShiftクラスタリングにより点の密度が
極値となる点へ移動 – 極値へ移動後,Nearest Neighborにより近隣の
検出ウィンドウと統合
統合前 統合後
• x方向、y方向、scaleの3次元でのクラスタリング ‒ 人として判定された検出ウィンドウの中心座標 からMeanShift Vectorを算出
‒ 調整するパラメータは 探索ウィンドウの半径hのみ
MeanShiftクラスタリング[Comaniciu ‘02]
MeanShift Vector:
カーネル関数:
m(x) =
n!
i=1
xik"###
###x! xi
h
######2$
n!
i=1
k"###
###x! xi
h
######2$ ! x
Nearest Neighbor(最近傍決定則)
• 各サンプル点の座標上の距離を観測し 最も近いサンプル点を探索 ‒ クラスタリングされた検出ウィンドウの中心座標を 1つの点に統合
• 距離dが閾値thを下回ればサンプル点を統合
d =!
(x! xi)2 + (y ! yi)2ユークリッド距離:
検出ウィンドウの統合
検出ウィンドウの統合
検出ウィンドウの統合
検出ウィンドウの統合
人検出例
• HOG+Real AdaBoostの検出結果
まとめ1
• AdaBoost ‒ サンプルの重みを逐次更新する適応的な学習法 ‒ 最終識別器は、信頼度で重み付けられた弱識別器による多数決
• HOG特徴量 ‒ 局所領域における輝度勾配ヒストグラム ‒ 照明変化、幾何学的変化に頑健
• Real AdaBoost ‒ 2値だった出力を実数値化 ‒ 信頼度αが不要 ‒ 少ない弱識別器で高精度な検出
まとめ2
• HOGとBoostingを用いた人検出 ‒ 人の局所的な形状特徴を学習 ‒ ラスタスキャンにより人領域を探索 ‒ MeanShiftにより検出ウィンドウを統合 ‒ 精度の良い人検出が可能
参考文献 • [Freund ‘97] Y, Freund and R, E. Schapire, “A decisiontheoretic generalization of on-line learning and an application to boosting”, Journal of Computer and System Sciences, No. 1, Vol. 55, pp. 119-139,(1997).
• [Dalal ‘05] Dalal. N, Triggs. B, “Histograms of Oriented Gradients for Human Detection”, IEEE CVPR, pp. 886-893 (2005).
• [Schapire ‘99] R. E. Schapire, Y. Singer,“Improved Boosting Algorithms Using Confidence-rated Predictions”, Machine Learning, No. 37, pp. 297-336, (1999).
• [Comaniciu ‘02] D. Comaniciu, P. Meer, “Mean Shift: A Robust Approach toward Feature Space Analysis”, IEEE PAMI, vol. 24, No. 5, pp. 603-619, (2002).