局所特徴量と統計学習手法による物体検出

25,375 views

Published on

Published in: Technology

局所特徴量と統計学習手法による物体検出

  1. 1. 1 局所特徴量と統計学習手法による物体検出 http://mprg.jp/tutorials 機械知覚&ロボティクス研究グループ(中部大学) 中部 工学 助手 中部大学 工学部 情報工学科 講師 大学 部 ロボット理工学科 中部大学 工学部 ロボット理工学科 助手 山内 悠嗣 機械知覚&ロボティクスグル 487-8501 愛知県春日井市松本町120 Tel 0568-51-8249 Fax 0568-51-9409 yuu@vision.cs.chubu.ac.jp http://vision.cs.chubu.ac.jp MACHINE PERCEPTION AND 中部大学 工学部 情報工学科 講師 山下 隆義 機械知覚&ロボティクスグループ 487-8501 愛知県春日井市松本町1200 Tel 0568-51-9670 Fax 0568-51-1540 yamashita@cs.chubu.ac.jp http://vision.cs.chubu.ac.jp 博士(工学) MACHINE PERCEPTION AND ROBOTICS GROUP 中部大学 工学部 ロボット理工学科 教授 藤吉 弘亘 機械知覚&ロボティクスグループ 487-8501 愛知県春日井市松本町1200 Tel 0568-51-9096 Fax 0568-51-9409 hf@cs.chubu.ac.jp http://vision.cs.chubu.ac.jp 博士(工学) MACHINE PERCEPTION AND ROBOTICS GROUP
  2. 2. はじめに 1. Haar-like特徴量と顔検出 2. AdaBoost - 基礎知識と特徴 - アルゴリズムの解説 3. HOG特徴量 - 算出手順の解説 4. Real AdaBoost - AdaBoostとの違い - アルゴリズムの解説 5. 人検出 - 識別実験と検出例 6. 第3世代の特徴量 2
  3. 3. デジカメの認識技術 4 3 3
  4. 4. • 顔検出 ‒ 画像中から顔の位置を検出する技術 • 顔認識 ‒ データベースの中から特定の人物の顔を認識する技術 デジカメの顔認識?顔検出? ココに顔があります! 真希 李 ダニエル トム この顔は真希ちゃんです! 4
  5. 5. 顔検出 OMRON OKAOVISION • 画像の中から「位置」,「大きさ」,「顔の傾き」,「画像 の回転」,「顔向き」,「照明変化」,「隠れ」に関わらず 人の顔の位置と大きさを特定すること 5
  6. 6. 1. Haar-like特徴量と顔検出 6
  7. 7. 人間の視覚に学ぶ ※ヒューマン・フロンティア・サイエンス・プログラム(HFSP)広報誌「乳児の視覚学習の研究」より • 人間は生まれた直後でも,目と口を表す3つの黒い点に
 注目することが知られている 7
  8. 8. 8 特徴的なところだけ着目 大まかな明暗差 顔を見つける着眼点 • 全体を見なくても,特徴点な部分を見れば顔とわかる • 細かな特徴を見なくても,大まかな明暗差で顔とわかる
  9. 9. Haar-like特徴:局所的な明暗差 • Haar-like特徴 [Viola & Jones, CVPR 01] 9 大人 暗 明 暗明 暗 明
  10. 10. Haar-like特徴:局所的な明暗差 • Haar-like特徴 [Viola & Jones, CVPR 01] 10 表情 暗 明 暗明 暗 明
  11. 11. Haar-like特徴:局所的な明暗差 • Haar-like特徴 [Viola & Jones, CVPR 01] 11 子供 暗 明 暗明 暗 明
  12. 12. Haar-like特徴:局所的な明暗差 • Haar-like特徴 [Viola & Jones, CVPR 01] 12 人種 暗 明 暗明 暗 明
  13. 13. Haar-like特徴:局所的な明暗差 人種 暗明暗 明 暗 明 子供 表情大人 Haar-like特徴 →大人、子供、表情、人種に関係なく共通な特徴 • Haar-like特徴 [Viola & Jones, CVPR 01] 13
  14. 14. Haar-like特徴:顔は局所的な明暗差の集合 暗明暗 明 暗 明 →大量のサンプルから局所領域の集合を学習 3個では少ないので. . . • 複数の明暗差を捉えることで顔であるか否かを判定可能 14
  15. 15. Haar-like特徴の算出 • 特徴量H(r1,r2) = AとBの平均輝度の差を算出 領域Aの平均輝度 領域Bの平均輝度 • 2つの領域の輝度差に着目し,局所的なエッジ成分• 線成分をとらえる € H(r1,r2) = S(r1) − S(r2)A B Haar-likeパターン 顔の特徴を捉えることが可能 15
  16. 16. 学習サンプルの作成 画像(数千枚) ポジティブサンプル(顔画像) ネガティブサンプル(非顔画像) 一定サイズに正規化 一定サイズに正規化 • 大量の画像からポジティブサンプル(顔)とネガティブサン プル(非顔)を用意 ・・・ ・・・ 16
  17. 17. Haar-like特徴量の評価 • 学習サンプルからHaar-like特徴を評価 ポジティブサンプル ネガティブサンプル 明暗差小 大 ・・・ ・・・ 評価値:Z=0.5 ポジティブ サンプル ネガティブ サンプル 顔非顔 17
  18. 18. ・・・ Haar-like特徴量の評価 • 学習サンプルからHaar-like特徴を評価 ポジティブサンプル ネガティブサンプル 18 小 大 ポジティブ サンプル ネガティブ サンプル 評価値:Z=0.8 明暗差 顔非顔 ・・・
  19. 19. 19 Haar-like特徴量の評価 • 学習サンプルを用いて、Haar-likeパターン、位置、
 大きさを変化させて数十万通りを評価 Haar-likeパターン 明暗差小 大 評価値:Z=0.5 顔非顔 小 大明暗 顔非顔 評価値:Z=0.8 ・・・ →顔と非顔と判別するのに有効 学習サンプル ・ ・
  20. 20. 20 機械学習 • 人間が用意した大量の顔と非顔画像データで学習させて、 コンピュータに判別基準(識別器)を作らせる ‒ 人がコンピュータに教えるのではなく、コンピュータ自身に良 い特徴パターンを見つけさせる • 識別器 ‒ 入力特徴(Haar-like特徴による明暗差)から顔/非顔に判別 ‒ 一つでは足りないので複数の識別器の多数決で最終判定 (AdaBoost) 機械学習 識別器 AdaBoost SVM 学習サンプル ・・・ ・・・
  21. 21. 統計的学習手法AdaBoostの学習 AdaBoost h1(   ), α1 弱識別器h 重みα 学習により弱識別器と重みを決定 学習サンプル ・ ・ ・ 評価値 Haar-like特徴 位置・サイズ・形状を変えて 約18万個のHaar-like特徴を評価 評価 Z=0.8 評価 Z=0.3 評価 Z=0.5 評価 Z=0.6 MAX サンプルの更新 21
  22. 22. 統計的学習手法AdaBoostの学習 AdaBoost h1(   ), α1 弱識別器h 重みα 学習により弱識別器と重みを決定 学習サンプル 評価値 Haar-like特徴 位置・サイズ・形状を変えて 約18万個のHaar-like特徴を評価 22 h2(   ), α2 ・ ・ ・ 評価 Z=0.5 評価 Z=0.2 評価 Z=0.7 評価 Z=0.3 MAX サンプルの更新
  23. 23. 統計的学習手法AdaBoostの学習 AdaBoost h1(   ), α1 弱識別器h 重みα 学習により弱識別器と重みを決定 学習サンプル 評価値 Haar-like特徴 位置・サイズ・形状を変えて 約18万個のHaar-like特徴を評価 23 h2(   ), α2 hT(   ), αT ・ ・ ・ 評価 Z=0.4 評価 Z=0.9 評価 Z=0.3 評価 Z=0.7 サンプルの更新 MAX ・ ・ ・
  24. 24. 顔検出:検出ウィンドウのラスタスキャン h1(    ) α1 h2(    ) α2 入力画像 識別器:AdaBoost hT(    ) αT 弱識別器h 重みα 出力 ・ ・ -0.5 識別結果: 非顔 ・ ・ + + + -0.9 -0.3 -0.1  出力値: 検出ウィンドウ 24
  25. 25. 顔検出:検出ウィンドウのラスタスキャン -0.0 -0.1 h1(    ) α1 h2(    ) α2 入力画像 識別器:AdaBoost hT(    ) αT 弱識別器hh 重みα 出力 ・ ・ -0.2 識別結果: 非顔 ・ ・ + + + -0.3 出力値: 検出ウィンドウ 25
  26. 26. 顔検出:検出ウィンドウのラスタスキャン 0.1 0.3 0.5h1(    ) α1 h2(    ) α2 入力画像 識別器:AdaBoost hT(    ) αT 弱識別器h 重みα 出力 ・ ・ 識別結果: 顔 ・ ・ + + + 2.3 出力値: 検出ウィンドウ 26
  27. 27. 顔検出:識別器のラスタスキャン Haar-like 特徴 AdaBoost h1(    ) α1 → 0.5 h2(    ) α2 → 0.3 hT(    ) αT → 0.1 弱識別器h 重みα 出力 ・ ・ + + + ・ ・ 顔/非顔を判定 http://vimeo.com/12774628 = 2.3 27
  28. 28. CV Dazzle(dazzle=迷彩を施す) http://ahprojects.com/work/cv-dazzle 28
  29. 29. 統計的学習手法と画像局所特徴量 特徴量を汎化のあるモデルへ 多様な変化が生じても 共通な情報に選択 Neural Network, SVM, AdaBoost 統計的学習手法(識別器) 認識する物体の情報を抽出 多様な変化が生じても 共通な情報に変換 エッジ, カラー, Haar-like, HOG 画像局所特徴量 →学習手法の進化とともに特徴量も進化 29
  30. 30. 2. AdaBoost - 基礎知識と特徴 - アルゴリズムの解説 30
  31. 31. AdaBoostとは • 統計的学習手法 Boostingの1つ ‒ 1997年にY.Freund等が提案[Freund 97] • 学習サンプルの重みを適応的(adaptive)に更新 ‒ 計算量の爆発と汎化性能の低下を抑制 ‒ 誤識別したサンプルに対し重みαを増加 • 最終識別器は弱識別器の重み付き多数決 31
  32. 32. AdaBoostの特徴 • 識別精度が高い ‒ 汎化性能に対する理論的な裏付け ‒ 学習後期では識別の困難なデータに特化 • 解析が容易 ‒ 特徴選択の傾向などを後から調査 32
  33. 33. 学習アルゴリズム 33
  34. 34. 1,2 前処理 1. 前処理 – N 個の学習サンプル  を用意 • : 画像 • : クラスラベル ‒ 顔には+1, 非顔には-1 2. 学習サンプルの重みの初期化 ‒ 各サンプルの重み  を均等にする 34
  35. 35. 学習アルゴリズム 35
  36. 36. 3.1 弱識別器候補 • 基本的に設計は自由 ‒ 1か-1を出力する関数 ‒ エラー率が0.5以下 • Viola&Jonesの顔検出では閾値関数を使用 ‒ ある1つの特徴量に対する分布を観測 v p ht:tラウンド目の弱識別器 :特徴量 :閾値 :不等号の向きを決定する  変数(1or-1) ht(x) = 1 p · v(x) > p · 1 otherwise 36
  37. 37. 学習アルゴリズム 37
  38. 38. • 弱識別器に対するエラー率 を算出 ‒ 弱識別器hの応答値とクラスラベルが異なった場合サンプルの 重みを足し合わせる ‒ エラー率が0.5を超えたら、弱識別器のパリティpを反転 3.2 エラー率の算出 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 38
  39. 39. 学習サンプル Negative Positive AdaBoostの学習 エラー率 MIN e弱識別器候補h e弱識別器候補h e弱識別器候補h 39
  40. 40. 学習アルゴリズム 40
  41. 41. • 4. エラー率 が最小となるhを現在のラウンドの
 弱識別器として採用 • 5. 採用した弱識別器に対する重み を算出 重み = 信頼度 4,5 弱識別器の選択と重みの算出 ht = arg min et,m t = 1 2 ln 1 et et ⇥ t (ln = loge) ※ et = 0.067 = 1 2 ln( 0.933 0.067 ) = 1 2 ln 13.925 = 1.316 ・優秀な弱識別器 et = 0.241 = 1 2 ln( 0.759 0.241 ) = 1 2 ln 3.149 = 0.574 ・標準的な弱識別器 et = 0.5 = 1 2 ln( 0.5 0.5 ) = 1 2 ln 1 = 0 ・半分しか正解できない弱識別器 et 41
  42. 42. 学習アルゴリズム 42
  43. 43. 6. 学習サンプルの重みの更新 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) 43 7. 学習サンプルの重みの更新
  44. 44. • サンプルの重みの更新シミュレーション ‒ 弱識別器:座標軸と平行な境界を持つ閾値関数 重みの更新の過程(1/4) 1 : 0.1432 : 0.143 3 : 0.143 4 : 0.143 5 : 0.143 6 : 0.143 7 : 0.143 特徴量 1v 特徴量2v ・学習サンプル数 N : 7 : positive : negative ・弱識別器候補数 m : 2 ( = 特徴次元数) ・重みの初期値 : 0.143 ( D1(i) = 1/N) 44
  45. 45. 重みの更新の過程(2/4) • 1st Round 1 : 0.1432 : 0.143 3 : 0.143 4 : 0.143 5 : 0.143 6 : 0.143 7 : 0.143 et,m = N i:ht(xi)=yi Dt(i)エラー率 : = 0.143 t = 1 2 ln 1 et et ⇥ 弱識別器の重み : (信頼度) = 0.895 特徴量 1v 特徴量2v 1 : 0.0842 : 0.084 3 : 0.084 4 : 0.084 5 : 0.500 6 : 0.084 7 : 0.084 特徴量 1v 特徴量2v Dt+1(i) = Dt(i) exp( tytht(xi)) サンプル1 : 0.143*exp(-0.895*(1)*(1)) = 0.0572 サンプル2 : 0.143*exp(-0.895*(1)*(1)) = 0.0572 サンプル3 : 0.143*exp(-0.895*(1)*(1)) = 0.0572 サンプル4 : 0.143*exp(-0.895*(1)*(1)) = 0.0572 サンプル5 : 0.143*exp(-0.895*(-1)*(1)) = 0.338 サンプル6 : 0.143*exp(-0.895*(-1)*(-1)) = 0.0572 サンプル7 : 0.143*exp(-0.895*(-1)*(-1)) = 0.0572 = 0.681 +) → 0.0572/0.681 = 0.084 → 0.0572/0.681 = 0.084 → 0.0572/0.681 = 0.084 → 0.0572/0.681 = 0.084 → 0.338/0.681 = 0.500 → 0.0572/0.681 = 0.084 → 0.0572/0.681 = 0.084 重み更新 : 重み更新              正規化 45
  46. 46. et,m = N i:ht(xi)=yi Dt(i)エラー率 : = 0.084+0.084 = 0.168 t = 1 2 ln 1 et et ⇥ 弱識別器の重み : (信頼度) = 0.800 1 : 0.0842 : 0.084 3 : 0.084 4 : 0.084 5 : 0.500 6 : 0.084 7 : 0.084 特徴量 1v 特徴量2v 特徴量 1v 1 : 0.0502 : 0.050 3 : 0.250 4 : 0.250 5 : 0.300 6 : 0.050 7 : 0.050 特徴量2v サンプル1 : 0.084*exp(-0.800*(1)*(1)) = 0.0377 サンプル2 : 0.084*exp(-0.800*(1)*(1)) = 0.0377 サンプル3 : 0.084*exp(-0.800*(1)*(-1)) = 0.187 サンプル4 : 0.084*exp(-0.800*(1)*(-1)) = 0.187 サンプル5 : 0.500*exp(-0.800*(-1)*(-1)) = 0.225 サンプル6 : 0.084*exp(-0.800*(-1)*(-1)) = 0.0377 サンプル7 : 0.084*exp(-0.800*(-1)*(-1)) = 0.0377 = 0.750 +) → 0.0377/0.750 = 0.050 → 0.0377/0.750 = 0.050 → 0.187/0.750 = 0.250 → 0.187/0.750 = 0.250 → 0.225/0.750 = 0.300 → 0.0377/0.750 = 0.050 → 0.0377/0.750 = 0.050 重み更新              正規化 重みの更新の過程(3/4) 46 • 2nd Round Dt+1(i) = Dt(i) exp( tytht(xi))重み更新 :
  47. 47. et,m = N i:ht(xi)=yi Dt(i)エラー率 : = 0.050 t = 1 2 ln 1 et et ⇥ 弱識別器の重み : (信頼度) = 1.47 1 : 0.0502 : 0.050 3 : 0.250 4 : 0.250 5 : 0.300 6 : 0.050 7 : 0.050 特徴量 1v 特徴量2v 特徴量 1v 特徴量2v 1 : 0.498 2 : 0.0246 3 : 0.132 4 : 0.132 5 : 0.158 6 : 0.0246 7 : 0.0246 サンプル1 : 0.050*exp(-1.47*(1)*(-1)) = 0.217 サンプル2 : 0.050*exp(-1.47*(1)*(1)) = 0.0115 サンプル3 : 0.250*exp(-1.47*(1)*(1)) = 0.0575 サンプル4 : 0.250*exp(-1.47*(1)*(1)) = 0.0575 サンプル5 : 0.300*exp(-1.47*(-1)*(-1)) = 0.0690 サンプル6 : 0.050*exp(-1.47*(-1)*(-1)) = 0.0115 サンプル7 : 0.050*exp(-1.47*(-1)*(-1)) = 0.0115 = 0.436 +) → 0.217/0.436 = 0.498 → 0.0115/0.436 = 0.0264 → 0.0575/0.436 = 0.132 → 0.0575/0.436 = 0.132 → 0.0690/0.436 = 0.158 → 0.0115/0.436 = 0.0264 → 0.0115/0.436 = 0.0264 重み更新              正規化 重みの更新の過程(4/4) 47 • 3rd Round Dt+1(i) = Dt(i) exp( tytht(xi))重み更新 :
  48. 48. 学習アルゴリズム 48
  49. 49. 8 最終識別器の構築 • すべての弱識別器に信頼度で重みをつけて 多数決をと る形になる – Hが閾値 より高ければ人、低ければ非人と判定 H(x) = sign T⇤ t=1 tht(x) ⇥ ⇥ 1st round : 0.895 2nd round : 0.800 3rd round : 1.47 1:0.2252 : 3.165 3 : 1.565 4 : 1.565 5 : -1.375 6 : -3.165 7 : -3.165 弱識別器 強識別器 + + = 49
  50. 50. 実装時のポイント • 学習回数(ラウンド) ‒ 任意(100∼2000回) • 学習サンプル ‒ 多ければ多い方がよい • 統計的信頼性の確保 • 多様なパターンに対応 ‒ 顔検出では約10,000枚、人検出では2,000∼5,000枚 50
  51. 51. 顔検出のリアルタイムデモ processing+OpenCV 51
  52. 52. まとめ • Haar-like特徴量 ‒ 2つの領域の輝度差による特徴量 ‒ 複数のパターンの集合により物体を捉える • AdaBoost ‒ サンプルの重みを逐次更新する適応的な学習法 ‒ 最終識別器は、信頼度で重み付けられた弱識別器による多数決 52
  53. 53. 3. HOG特徴量 - 算出手順の解説 53
  54. 54. 人検出の難しさ:見え(アピアランス)の多様性 • 人検出における課題 ‒ 照明変動 ‒ 姿勢の変化 ‒ 視点に違いによるシルエットの見えの違い ‒ 画像上の人同士の重なりによるオクルージョン  54
  55. 55. 人らしさとは? • カラー? 55
  56. 56. 人らしさとは? • カラー? → 明暗差? 56
  57. 57. 人らしさとは? • カラー? → 明暗差? → エッジ 57
  58. 58. 人らしさとは? • 全サンプルのエッジ画像の平均をとってみると 58 平均勾配画像人画像(約3,000枚)
  59. 59. 人らしさを捉える特徴量:HOG • Histograms of Oriented Gradients[Dalal, CVPR 05] ‒ 局所領域におけるエッジ(勾配)の方向を
 ヒストグラム化した特徴量  59 エッジ方向の方向ヒストグラム
  60. 60. HOG特徴量の算出アルゴリズム 1. 輝度の勾配方向と勾配強度の算出 2. ヒストグラムの作成 3. ブロック領域による正規化 60 入力画像 セル( 5 5ピクセル ) ブロック( 3 3セル ) 勾配方向ヒストグラム
  61. 61. 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) 勾配強度: 勾配方向: 61
  62. 62. 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ブロックのセル数 勾配方向数 62
  63. 63. HOG特徴量の可視化 • 勾配方向と勾配強度を可視化 ‒ 輝度が高いほど勾配強度が高い 0 40 80 120 160 63
  64. 64. Support Vector Machine (SVM) • 識別面と2クラスのサンプルの距離(マージン)を最大とす る識別境界を決定する統計的学習手法 ‒ マージン最大化を行うことで汎化性能の高い識別器を学習 ‒ カーネル関数を利用することで非線形識別境界も得られる 64 クラス1 クラス2 クラス1 クラス2 マージン サポート ベクター
  65. 65. HOG特徴量とSVMによる人検出 65 サンプル画像 HOG特徴量x • SVMから得られる重みベクトルwによる重み付け ‒ ポジティブ : 人の形状を表わすHOGに反応 ‒ ネガティブ : 人の形状とは反対の勾配方向に反応 w > 0の重みwに よる重み付け w < 0の重みwに よる重み付け
  66. 66. 4. Real AdaBoost - AdaBoostとの違い - アルゴリズムの解説 66
  67. 67. AdaBoostの学習 学習サンプル HOG算出 3240次元 エラー率 MIN 弱識別器h e 弱識別器h e 弱識別器h e 弱識別器h e 選択された弱識別器 h1 ( ) , α1 弱識別器 重み 67
  68. 68. AdaBoostの学習 学習サンプル HOG算出 3240次元 エラー率 MIN弱識別器h e 弱識別器h e 弱識別器h e 弱識別器h e 選択された弱識別器 h1 ( ) , α1 弱識別器 重み h2 ( ) , α2 68
  69. 69. AdaBoostの学習 学習サンプル HOG算出 3240次元 エラー率 MIN 弱識別器h e 弱識別器h e 弱識別器h e 弱識別器h e 選択された弱識別器 h1 ( ) , α1 弱識別器 重み h2 ( ) , α2 hT ( ) , αT 69
  70. 70. 人: 非人:otherwise AdaBoostによる識別 未知入力パターン HOG特徴量算出 選択された弱識別器 h1 ( ) × α1 弱識別器 重み h2 ( ) × α2 hT ( ) × αT + + + H(x) > H(x) = T t=1 tht(x)強識別器: ※閾値: 70
  71. 71. AdaBoostとReal AdaBoost • AdaBoost(Discrete AdaBoost) ‒ 弱識別器の出力(1,-1)にαで重み付けて結合することで最終 識別器を構築 • Real AdaBoost [Schapire 99] ‒ AdaBoostからの派生 ‒ 弱識別器の出力が特徴量の分布に応じて実数値化(real) ‒ サンプルに対しどの程度の識別が可能であるかが分かる ‒ 少ない弱識別器で高精度な検出 • 学習の収束が早い 効果的な重みの更新が可能 71
  72. 72. 学習アルゴリズム 72
  73. 73. 1,2 前処理 1. 前処理 – N個の学習サンプル • : 画像 • : クラスラベル ‒ 人には+1, 非人には-1 2. 学習サンプルの重みの初期化 ‒ 各サンプルの重み  を均等にする 73
  74. 74. 学習アルゴリズム 74
  75. 75. • 特徴量をBINに変換しサンプルの重みを足し合わせ、分布(ヒ ストグラム)を作成 ネガティブサンプル( ) 3.1 確率密度関数 0 1 2 … 62 63 出現確率 特徴量 j (BIN) 0 1 2 … 62 63 出現確率 特徴量 j (BIN) ポジティブサンプル( ) … … 75
  76. 76. 学習アルゴリズム 76
  77. 77. 3.2 弱識別器の評価値算出 • 2つの分布のBhattacharyya距離で類似度を算出 • 類似度が低い→分離し易い 出現確率 特徴量 j (BIN) 小 = 分布が分離しずらい →識別に有効ではない 大 = 分布が分離しやすい →識別に有効 評価値 : 出現確率 特徴量 j (BIN) 識別に有効な特徴量 z = 1 j ⇥ Wj +Wj 77
  78. 78. 学習アルゴリズム 78
  79. 79. = 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) 79
  80. 80. 学習アルゴリズム5 80
  81. 81. • 学習サンプルの重みの更新 • 学習サンプルの重みの正規化 学習アルゴリズム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) ポジティブ サンプル ネガティブ サンプル 重みを高く 重みを低く ポジティブ サンプル ネガティブ サンプル 重みを低く 重みを高く ポジティブ サンプル ネガティブ サンプル 重みはそのまま 81
  82. 82. 学習アルゴリズム6 82
  83. 83. • 強識別器の生成 ‒ 弱識別器の線形和 • 弱識別器の出力値が実数であるため、AdaBoostのように 重みαは必要ない – Hが閾値 より高ければ人、低ければ非人と判定 学習アルゴリズム6 H(x) = sign T⇤ t=1 ht(x) ⇥ 83
  84. 84. 識別実験 • 予め切り出された画像を用いて評価 • 比較手法 ‒ HOG+AdaBoost ‒ HOG+Real AdaBoost • データベース(CUデータセット) ‒ 評価用は位置ずれを含む ・学習用 ・評価用 ポジティブサンプル : 2,054枚 ポジティブサンプル : 1,000枚 ネガティブサンプル : 6,258枚 ネガティブサンプル : 1,234枚 84
  85. 85. 評価方法 • DET (Detection Error Tradeoff)カーブ ‒ 横軸に誤検出率、縦軸に未検出率 ‒ 閾値を変化させながらプロット ‒ 誤検出率に対する未検出率を比較が可能 左下に向かうほど、精度が良い 85
  86. 86. • DETカーブによる識別精度の比較 識別結果 86
  87. 87. 5. 人検出 - 識別実験と検出例 87
  88. 88. • 画像中のどこに人が存在するかを探索   →検出ウィンドウをラスタスキャン • 人と判定された複数の領域の統合   →MeanShiftクラスタリング 人検出の実装 88
  89. 89. 識別器のラスタスキャンによる人検出 人以外 人 検出ウィンドウのラスタスキャン 人 識 別 器 (c) 識別結果の統合前 識別器による人画像の識別 (d) 識別結果の統合結果 識 別 結 果 の 統 合 処 理 検出器 89
  90. 90. 検出ウィンドウのラスタスキャン • 画像中に検出ウィンドウを網羅的に走査 • スケールを徐々に変化させながら探索 :検出ウィンドウ :検出された領域 ■:検出された領域の中心点 90
  91. 91. MeanShiftによるクラスタリング • 一人に対して複数のウィンドウが人として検出 – MeanShiftクラスタリングにより点の密度が 極値となる点へ移動 – 極値へ移動後,Nearest Neighborにより近隣の 検出ウィンドウと統合 統合前 統合後 91
  92. 92. • 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 92
  93. 93. Nearest Neighbor(最近傍決定則) • 各サンプル点の座標上の距離を観測し 最も近いサンプル点を探索 ‒ クラスタリングされた検出ウィンドウの中心座標を 1つの点に統合 • 距離dが閾値thを下回ればサンプル点を統合 d = (x xi)2 + (y yi)2ユークリッド距離: 93
  94. 94. 検出ウィンドウの統合 94
  95. 95. 検出ウィンドウの統合 95
  96. 96. 検出ウィンドウの統合 96
  97. 97. 検出ウィンドウの統合 97
  98. 98. 人検出例 • HOG+Real AdaBoostの検出結果 98
  99. 99. Real AdaBoostのソースコード • Real AdaBoost + HOG ‒ URL : http://www.vision.cs.chubu.ac.jp/CVTutorial/ • 入力画像からHOG特徴量を算出し,2クラス識別器を構築 ‒ Dataset : CU-Dataset ‒ 作成環境 : Visual Studio ver. 2005 ‒ ライブラリ : OpenCV 99
  100. 100. データベースの作成 • 統計的学習手法による高精度な物体検出を実現するには ‒ 大量の学習サンプル:10,000枚以上(人の場合) ‒ 安定したポジティブサンプルの切り出し(位置ずれなし) 100
  101. 101. CGによる画像の自動生成 • CGから自動的に切り出すことにより手間を省く 101J. Marín et al. , "Learning Appearance in Virtual Scenarios for Pedestrian Detection", CVPR, 2010.
  102. 102. まとめ • HOG特徴量 ‒ 局所領域における輝度勾配ヒストグラム ‒ 照明変化、幾何学的変化に頑健 • Real AdaBoost ‒ 2値だった出力を実数値化 ‒ 信頼度αが不要 ‒ 少ない弱識別器で高精度な検出 • HOGとBoostingを用いた人検出 ‒ 人の局所的な形状特徴を学習 ‒ ラスタスキャンにより人領域を探索 ‒ MeanShiftにより検出ウィンドウを統合 102
  103. 103. 6. 第3世代の特徴量 103
  104. 104. 物体検出に用いられる識別器と特徴量の変遷 第1世代(1970年∼) 第2世代(2000年∼) 第3世代(2005年∼) 画像全体 意味のある特徴量 画像の局所領域 特徴量の高次元化 特徴の関連性 特徴量の最適な組み合わせ 輝度分布 wavelet (1997) Harr-like (2004) HOG (2005) Joint Harr-like (2007) Joint HOG (2008) Shapelet (2007) globalな特徴量 low-levelな特徴量 mid-levelな特徴量 線形判別関数 (1936) ニューラルネットワーク (1969) サポートベクタマシン (1992) ブースティング AdaBoost (1999) Real AdaBoost 104
  105. 105. 第一世代の特徴量 Rowley, Baluja, and Kanade: Neural Network-Based Face Detection (PAMI, January 1998) →研究者・開発者の事前知識が必要 • 対象物全体を特徴量として捉える – 輝度情報 [Rowley, PAMI 98], Wavelet等 – 形状の複雑度 (VSAM)    低次元数の特徴量 → NNのサイズをできるだけ小さくしたい 105
  106. 106. 第二世代の特徴量 • 局所領域を特徴量として捉える:low level特徴 – 輝度に着目した特徴量 – Haar-like,ピクセル差分等     → 顔検出に利用 – 勾配に着目した特徴量 – EOH,HOG,Edgelet等     → 顔,人,車両検出に利用 Haar-like特徴量 直線 円弧 対称性 入力画像 エッジ画像 テンプレートのエッジ Edgelet特徴量 106
  107. 107. 第一,第二世代の特徴量の問題点 →単一のHOG特徴量だけでは人の形状を捉えきれない 第2世代のアプローチ 第3世代のアプローチ • 頭部から肩にかけてのΩ形状や下半身の連続的なエッジ形状 • 頭, 肩, 胴体, 足などの左右対称性 107
  108. 108. 第三世代の特徴量 0.4 0.3 0.2 0.1 0 (000)2 (001)2 (010)2 (011)2 (100)2 (101)2 (110)2 (111)2 同時確率 Joint Haar-like特徴 ポジティブクラス ネガティブクラス j =(111)= 7 しきい値処理 • Joint Haar-like特徴による共起表現 [Mita et al., PAMI 08] – 2値に識別した結果を組み合わせる – 同時確率に基づく識別 108
  109. 109. Joint-HOG特徴による人検出 [三井, 山内, 藤吉 SSII 08] AdaBoost h1(   ,   ) α1 h2(   ,   ) α2 hT(   ,   ) αT 弱識別器h 重みα 未知入力パターン H (x) = Σ ht(x)・αt HOG特徴量 x + ・ ・ ・ + + 人 : H (x) > λ 非人: otherwise 判定結果 • 異なる二つの領域のHOG特徴量をAdaBoostにより組み合わせる 109
  110. 110. 2段階AdaBoostによるJoint-HOG特徴の自動生成 セルの 全組み合わせ Low-level: HOG特徴POOL 1段階目のAdaBoostで 生成した特徴量 Mid-level: Joint HOG特徴POOL AdaBoost h1(   ,   ) 最終識別器 h2(   ,   ) hT(   ,   ) 弱識別器h ・ ・ ・ AdaBoost C1とC2のHOG C1[v1, v2, ...v9] C2[v1, v2, ...v9] H1,2(C1, C2) C1: C2: ・・・ AdaBoost C7とC11のHOG C7[v1, v2, ...v9] C11[v1, v2, ...v9] H7,11(C7, C11) C7: C11: ・・・ AdaBoost CiとCjのHOG Cj[v1, v2, ...v9] Cj[v1, v2, ...v9] Hi,j(Ci, Cj) Ci: Cj: ・・・ → 局所領域間での勾配方向の対称性、連続性を自動的に捉える ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 110
  111. 111. 評価用データベース • 人検出用画像データベース - 学習用画像データ Positive : 2,053枚 Negative : 6,253枚 - 評価用画像データ Positive : 1,023枚 Negative : 1,233枚 • 車両検出用画像データベース - 学習用画像データ Positive : 2,053枚 Negative : 6,253枚 - 評価用画像データ Positive : 1,023枚 Negative : 1,233枚 111
  112. 112. Joint-HOG特徴による検出性能 DET(Detection Error Tradeoff)による評価 (a) 人検出 (b) 車両検出 • 人検出と車両検出におけるJoint-HOGの効果 112
  113. 113. ラスタスキャンによるJoint-HOGによる検出例 (a) 人検出 (b) 車両検出 113
  114. 114. 自動生成されたJoint HOG特徴(車両検出) 1ラウンド 2ラウンド 3ラウンド 15ラウンド 平均勾配画像 1段目で選択されたHOG特徴 2段目で選択されたHOG特徴 →物体形状の対称性,連続性,異なる領域間の関係性を自動生成 114
  115. 115. 誤検出の解析 • 検出失敗例における各弱識別器の応答 115 弱識別器 1 1 2 3 4 5 0 1. 2. -2.0 弱識別器の応答 ネガティブサンプルの分布 ポジティブサンプルの分布 ポジティブサンプルの頻度が高い 特徴量の限界 ネガティブサンプルの分布が不自然 学習サンプルの分布を再構築 弱識別器の応答: 入力画像
  116. 116. State-of-the-art : Deformable Part Model [Felzenszwalb,PAMI 10] • 人全体を捉えるルートフィルタとパーツフィルタの     位置関係を自動獲得 116 ルートフィルタ パーツフィルタ パーツフィルタの 位置関係
  117. 117. DPMによる誤検出例 117 Fig. 6. Qualitative detection results on the Ca row shows typical false positives. laborative Research Lab. REFERENCES [1] A. Bar-Hillel, D. Levi, E. Krupka, and C. G synthesis for human detection. In ECCV, [2] H. Cho, P. Rybski, and W. Zhang. Vision- tracking using a deformable part model an 2010. on the Caltech testset. The first and second row shows correct pedestrian detections in various scenarios. The third ENCES a, and C. Goldberg. Part-based feature In ECCV, 2010. g. Vision-based bicycle detection and model and an ekf algorithm. In ITSC, [13] P. F. Felzenszwalb, R. B. Girshick, and D. McAllester. Discriminatively trained deformable part models, release 4. http://people.cs.uchicago.edu/⇠pff/latent-release4/. [14] D. M. Gavrila and S. Munder. Multi-cue pedestrian detection and tracking from a moving vehicle. International Journal of Computer Vision, 73:41–59, 2007. [15] D. Gero´nimo, A. Lo´pez, and T. G. A. Sappa. Survey of pedestrian detection for advanced driver assistance systems. IEEE Transaction on Pattern Analysis and Machine Intelligence, 32, 2010. an detections in various scenarios. The third R. B. Girshick, and D. McAllester. d deformable part models, release 4. edu/⇠pff/latent-release4/. Munder. Multi-cue pedestrian detection and vehicle. International Journal of Computer and T. G. A. Sappa. Survey of pedestrian river assistance systems. IEEE Transaction Machine Intelligence, 32, 2010. HOG(特徴抽出過程)の限界 (Real-time Pedestrian Detection with Deformable Part Models, IV2012)
  118. 118. 機械学習による物体検出 118 従来の機械学習による画像認識 Deep Learningによる画像認識 ポジティブサンプル ネガティブサンプル 線形 SVM 手動で設計 特徴抽出 識別 HOG SVM ポジティブサンプル ネガティブサンプル 線形 SVM 特徴抽出 識別+ 識別結果 識別結果 機械学習 Deep Learning
  119. 119. 近年の物体検出2 : Deep Learning 119 ポイント  ­ 特徴そのもの(フィルタ)を学習することで性能向上  ­ フィルタの畳み込みとプーリングにより幾何学的変化に対する不変性の獲得 畳み込みニューラルネットワークの構造 →学習により特徴抽出過程を自動獲得 特徴抽出部 識別部
  120. 120. DCNNを用いた歩行者検出の高精度化 [福井,ViEW 14] 120 Dropoutにランダム性を導入し,汎化性能を向上 Random Dropout Dropout =ユニットの出力を一定の割合で0にする手法 教師信号 ユニットの削減率    Dropout 50% 50% Random Dropout 60% 75% 一定の割合 ランダムで割合を決定
  121. 121. DCNNを用いた歩行者検出の高精度化 [福井,ViEW 14] 121 認識時にネットワーク構成の一部をランダムに変更 複数のネットワークの出力の中央値を最終出力とする アウトライアな応答値を出すネットワークを除外 0.23 0.77 0.42 0.58 0.15 0.85 Positive Negative ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ STEP1:全結合層の構成が異なる     ネットワークを複数作成 STEP2:応答値を統合 ・ ・ ・
  122. 122. DCNNを用いた歩行者検出の高精度化 [福井,ViEW 14] 122 Caltech Pedestrian Dataset:サンプル数 4021枚
  123. 123. DCNNを用いた歩行者検出の高精度化 [福井,ViEW 14] 123 DPM Proposed MethodHOG+SVM HO
  124. 124. 線形SVMによる識別器 124 • 線形SVMによる識別演算 ‒ 実数ベクトルと実数ベクトルの内積 → 計算コスト大 • 計算コストを削減するためには ‒ ビット演算に置き換えることで高速な識別計算したい! 重みベクトル (実数のN次元ベクトル) 特徴ベクトル (HOG特徴量:実数N次元 ) 識別関数 : 実数ベクトル 実数ベクトル バイナリコード バイナリコード →実数の演算と比較して高速な処理が可能 内積演算
  125. 125. バイナリ型HOG特徴量:B-HOG [松島, IEICE 11] 125 • HOG特徴量を 0 と 1 のバイナリコードで表現 ‒ 勾配方向ヒストグラムを2値化 ‒ ドミナントな方向を 1 ,そうでない方向を 0 で表現 ‒ 3,360 bit のバイナリコード (=HOG特徴量の次元数) 勾配方向ヒストグラム ( HOG特徴量 ) B-HOG 特徴量の可視化入力画像 1 8セル!(8 8ピクセル) 勾配強度 th 0 1 1 1 1 1 0 0 バイナリコード ( B-HOG特徴量 ) HOG 特徴量の可視化 勾配方向ヒストグラム ( HOG特徴量 ) B-HOG 特徴量の可視化入力画像 1 8セル!(8 8ピクセル) 勾配強度 th 0 1 1 1 1 1 0 0 バイナリコード ( B-HOG特徴量 ) HOG 特徴量の可視化 勾配方向ヒストグラム ( HOG特徴量 ) B-HOG 特徴量の可視化入力画像 1 8セル!(8 8ピクセル) 勾配強度 th 0 1 1 1 1 1 0 0 バイナリコード ( B-HOG特徴量 ) HOG 特徴量の可視化 勾配方向ヒストグラム ( HOG特徴量 ) B-HOG 特徴量の可視化入力画像 1 8セル!(8 8ピクセル) 勾配強度 th 0 1 1 1 1 1 0 0 バイナリコード ( B-HOG特徴量 ) 演算を近似し,さらに早期に識別を判定するアルゴリ ズムを導入した人検出法 [16] について述べる. 4.1 B-HOG 特徴量と SVM による人検出 Histograms of Oriented Gradients(HOG) 特徴量 [14] は,検出ウィンドウからセルと呼ばれる局所領域毎に 作成した勾配方向ヒストグラムを特徴量とする.HOG 特徴量は,複数のセルで構成されるブロック領域で正 規化されるため,局所的な照明変化の影響を受けにく い特長がある.B-HOG 特徴量 [15] は,図 11 に示す ように HOG 特徴量を 2 値化したバイナリコードで表 わした特徴量である.セルと呼ばれる局所領域毎に作 成した勾配方向ヒストグラムである HOG 特徴量を 2 値化して D ビットのバイナリコードを得る.式 (8) に よりセル c における正規化後の勾配方向ヒストグラム vc = {vc(1), vc(2), ..., vc(N)} をバイナリコード bc = {bc(1), bc(2), ..., bc(N)} に変換する.ここで,N は勾配 方向ヒストグラムの量子化数である. bc(n) = 1 if vc(n) > thc(n) 0 otherwise (8) ここで,thc(n) は閾値を表わし,事前に計算した学習 サンプルの HOG 特徴量の各次元毎の平均値を使用す る.B-HOG 特徴量 b = {b1, b2, · · · , bc} は 64 × 128 ピクセルの検出ウィンドウに対して,セルの大きさを 8 F ここで,w は特徴量 物体を検出する際に ンし,検出ウィンド 対する識別器のスコ 理することで人もし このような識別器 画像に対して検出ウ ンする場合,数万個 になる.これら全て 識別器 F(b) のスコア 物体検出実現するた がある. 4.2 分解法に基づく 識別器の高速 計算量の問題を解 として分解法を利用 判定を導入する.ま う性能低下を解決す を表現することで識
  126. 126. バイナリ型HOG特徴量:B-HOG [松島, IEICE 11] 126 • HOG特徴量を 0 と 1 のバイナリコードで表現 ‒ 勾配方向ヒストグラムを2値化 ‒ ドミナントな方向を 1 ,そうでない方向を 0 で表現 ‒ 3,360 bit のバイナリコード (=HOG特徴量の次元数) 勾配方向ヒストグラム ( HOG特徴量 ) B-HOG 特徴量の可視化入力画像 1 8セル!(8 8ピクセル) 勾配強度 th 0 1 1 1 1 1 0 0 バイナリコード ( B-HOG特徴量 ) 演算を近似し,さらに早期に識別を判定するアルゴリ ズムを導入した人検出法 [16] について述べる. 4.1 B-HOG 特徴量と SVM による人検出 Histograms of Oriented Gradients(HOG) 特徴量 [14] は,検出ウィンドウからセルと呼ばれる局所領域毎に 作成した勾配方向ヒストグラムを特徴量とする.HOG 特徴量は,複数のセルで構成されるブロック領域で正 規化されるため,局所的な照明変化の影響を受けにく い特長がある.B-HOG 特徴量 [15] は,図 11 に示す ように HOG 特徴量を 2 値化したバイナリコードで表 わした特徴量である.セルと呼ばれる局所領域毎に作 成した勾配方向ヒストグラムである HOG 特徴量を 2 値化して D ビットのバイナリコードを得る.式 (8) に よりセル c における正規化後の勾配方向ヒストグラム vc = {vc(1), vc(2), ..., vc(N)} をバイナリコード bc = {bc(1), bc(2), ..., bc(N)} に変換する.ここで,N は勾配 方向ヒストグラムの量子化数である. bc(n) = 1 if vc(n) > thc(n) 0 otherwise (8) ここで,thc(n) は閾値を表わし,事前に計算した学習 サンプルの HOG 特徴量の各次元毎の平均値を使用す る.B-HOG 特徴量 b = {b1, b2, · · · , bc} は 64 × 128 ピクセルの検出ウィンドウに対して,セルの大きさを 8 F ここで,w は特徴量 物体を検出する際に ンし,検出ウィンド 対する識別器のスコ 理することで人もし このような識別器 画像に対して検出ウ ンする場合,数万個 になる.これら全て 識別器 F(b) のスコア 物体検出実現するた がある. 4.2 分解法に基づく 識別器の高速 計算量の問題を解 として分解法を利用 判定を導入する.ま う性能低下を解決す を表現することで識
  127. 127. B-HOGを用いた線形SVMの近似計算 [後藤, IEICE 14] 127 • 重みベクトルwを分解して近似 ‒ wを基底係数cとバイナリ基底ベクトルmに分解 重みベクトル B-HOG 線形SVM : 得られた B-HOG 特徴量 b と統計的学習手法である Support Vector Machine(SVM) により線形識別器 F(·) を学習する.線形 SVM による識別関数は式 (9) のよう に表わされる. F(b) = wT b (9) ここで,w は特徴量に対する重みを表す.画像中から 物体を検出する際には,検出ウィンドウをラスタスキャ ンし,検出ウィンドウから抽出した B-HOG 特徴量に 対する識別器のスコア F(b) を計算し,この値を閾値処 理することで人もしくは背景に判定する. このような識別器による人検出では VGA サイズの 基底係数ベクトル: 識別器 F(b) は,SVM の重みベクトル w を分解し 得られる重み係数 c とバイナリ基底ベクトル m を用 ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似でき ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D ¯m+ ∈ {0, 1}D に分解 (m = m+ − ¯m+ ) することで, (10) に示すように線形 SVM の内積の近似値を計算 きる. f(b) = Nb i=1 cimib = Nb i=1 ci(< m+ i , b > − < ¯m+ i , b >) = Nb ci(2 < m+ i , b > −|b|) 4.2.1 分解法を用いた線形識別器の近似計算 式 (9) の線形 SVM により学習した識別器 F(b) は, バイナリ型特徴量 b と重み w の内積計算で成り立つ. 人検出の問題では,膨大な数の検出ウィンドウを処理 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似できる. ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と 4.2.1 分解法を用いた線形識別器の近似計算 式 (9) の線形 SVM により学習した識別器 F(b) は, バイナリ型特徴量 b と重み w の内積計算で成り立つ. 人検出の問題では,膨大な数の検出ウィンドウを処理 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い バイナリ基底ベクトル: 近似計算 : 基底数 : 人検出の問題では,膨大な数の検出ウィンドウを処理 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似できる. ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と ¯m+ ∈ {0, 1}D に分解 (m = m+ − ¯m+ ) することで,式 (10) に示すように線形 SVM の内積の近似値を計算で きる. f(b) = Nb i=1 cimib 数 す サ の 線 と
  128. 128. B-HOGを用いた線形SVMの近似計算 [後藤, IEICE 14] 128 :実数 :バイナリ{1,-1} 基底数 B-HOG特徴量の次元数 線形SVM : 近似計算 : B-HOG特徴量の次元数 特徴量bが高次元数(D=3000)の とき、内積   に時間を要する ここで,バイナリ基底ベクトル m を m+ ∈ {0, ¯m+ ∈ {0, 1}D に分解 (m = m+ − ¯m+ ) すること (10) に示すように線形 SVM の内積の近似値を きる. f(b) = Nb i=1 cimib = Nb i=1 ci(< m+ i , b > − < ¯m+ i , b > = Nb i=1 ci(2 < m+ i , b > −|b|) 式 (10) に含まれるバイナリコードの内積 < m は論理積とビットカウントで計算できる.3 章 たように論理演算やビットカウントは実数ベク 積算より遥かに高速に計算できる.また,SSE4 CPU に実装されている POPCNT 関数を利用す で非常に高速に処理できる. 線形 SVM の近似計算結果の過程を図 12 に示 底数が少ない段階では,おおまかな識別器のス 得られた B-HOG 特徴量 b と統計的学習手法である port Vector Machine(SVM) により線形識別器 F(·) 学習する.線形 SVM による識別関数は式 (9) のよう 表わされる. F(b) = wT b (9) こで,w は特徴量に対する重みを表す.画像中から 体を検出する際には,検出ウィンドウをラスタスキャ し,検出ウィンドウから抽出した B-HOG 特徴量に する識別器のスコア F(b) を計算し,この値を閾値処 することで人もしくは背景に判定する. このような識別器による人検出では VGA サイズの 像に対して検出ウィンドウを網羅的にラスタスキャ する場合,数万個の検出ウィンドウを処理すること なる.これら全てのウィンドウから特徴量を抽出し, 別器 F(b) のスコアを求める必要があるため,高速な 体検出実現するためには識別処理を高速化する必要 ある. 図 11: B-HOG 特徴量の計算. 得られた B-HOG 特徴量 b と統計的学習手法である Support Vector Machine(SVM) により線形識別器 F(·) を学習する.線形 SVM による識別関数は式 (9) のよう に表わされる. F(b) = wT b (9) ここで,w は特徴量に対する重みを表す.画像中から 物体を検出する際には,検出ウィンドウをラスタスキャ ンし,検出ウィンドウから抽出した B-HOG 特徴量に 対する識別器のスコア F(b) を計算し,この値を閾値処 理することで人もしくは背景に判定する. このような識別器による人検出では VGA サイズの 画像に対して検出ウィンドウを網羅的にラスタスキャ 図 11: B-HOG 特徴量の計算. られた B-HOG 特徴量 b と統計的学習手法である ort Vector Machine(SVM) により線形識別器 F(·) 習する.線形 SVM による識別関数は式 (9) のよう わされる. F(b) = wT b (9) で,w は特徴量に対する重みを表す.画像中から を検出する際には,検出ウィンドウをラスタスキャ ,検出ウィンドウから抽出した B-HOG 特徴量に る識別器のスコア F(b) を計算し,この値を閾値処 を Field-Programmable Gate Array(FPGA) スペックの組み込み系ハードウェアで動作 がある.そのため,低計算量かつ低メモリ使 アルゴリズムが望まれており,我々は HOG 値化することで計算コストとメモリ使用量 手法 [15] を提案した.しかしながら,識別 については未だに解決されていない.そこ は識別器の計算量を削減するために,識別 し,さらに早期に識別を判定するアルゴリ した人検出法 [16] について述べる. OG 特徴量と SVM による人検出 ms of Oriented Gradients(HOG) 特徴量 [14] ィンドウからセルと呼ばれる局所領域毎に 配方向ヒストグラムを特徴量とする.HOG 複数のセルで構成されるブロック領域で正 ため,局所的な照明変化の影響を受けにく る.B-HOG 特徴量 [15] は,図 11 に示す G 特徴量を 2 値化したバイナリコードで表 量である.セルと呼ばれる局所領域毎に作 方向ヒストグラムである HOG 特徴量を 2 図 11: B-HOG 特徴量の計算. 得られた B-HOG 特徴量 b と統計的学習手法 Support Vector Machine(SVM) により線形識別 を学習する.線形 SVM による識別関数は式 (9 に表わされる. F(b) = wT b ここで,w は特徴量に対する重みを表す.画像 物体を検出する際には,検出ウィンドウをラス ンし,検出ウィンドウから抽出した B-HOG 特 対する識別器のスコア F(b) を計算し,この値を 理することで人もしくは背景に判定する. このような識別器による人検出では VGA サ 画像に対して検出ウィンドウを網羅的にラスタ ンする場合,数万個の検出ウィンドウを処理す になる.これら全てのウィンドウから特徴量を 4.2.1 分解法を用いた線形識別器の近似計算 式 (9) の線形 SVM により学習した識別器 F(b) は, バイナリ型特徴量 b と重み w の内積計算で成り立つ. 人検出の問題では,膨大な数の検出ウィンドウを処理 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似できる. 図 12: 線形 SV クセル,ブロックの大きさを 2 セルとした場合,1 つ 検出ウィンドウから 3, 360 ビットのバイナリコード 得られる.符号なし 8 ビット整数型でバイナリコー を表現した場合,HOG 特徴量と比較してメモリ使用 を 1/8 に削減できる. 図 11: B-HOG 特徴量の計算. 得られた B-HOG 特徴量 b と統計的学習手法である pport Vector Machine(SVM) により線形識別器 F(·) 学習する.線形 SVM による識別関数は式 (9) のよう 表わされる. F(b) = wT b (9) こで,w は特徴量に対する重みを表す.画像中から 4.2.1 分解法を用いた線形識別器の近似計算 式 (9) の線形 SVM により学習した識別器 F(b) は, バイナリ型特徴量 b と重み w の内積計算で成り立つ. 人検出の問題では,膨大な数の検出ウィンドウを処理 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似できる. ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と ¯m+ ∈ {0, 1}D に分解 (m = m+ − ¯m+ ) することで,式 (10) に示すように線形 SVM の内積の近似値を計算で きる. f(b) = Nb i=1 cimib = Nb ci(< m+ i , b > − < ¯m+ i , b >) 図 数マージン内 する.関数マ サンプルは, の誤差の少な 線形 SVM の とで高速な識 図 13 に提案 ンプルの割合 内積   は,きわめて高速に算出可能 することになるため,多大な計算量を要する.そこで, Hare らによって提案された実数ベクトルの分解法 [13] を利用してバイナリ型特徴量 b と重み w の内積計算を 近似する. まず,SVM の重みベクトル w を重み c とバイナリ 基底ベクトル m ∈ {−1, 1}D に分解する.線形 SVM の 識別器 F(b) は,SVM の重みベクトル w を分解して 得られる重み係数 c とバイナリ基底ベクトル m を用い ることで,F(b) ≈ f(b) = Nb i=1 cimib と近似できる. ここで,バイナリ基底ベクトル m を m+ ∈ {0, 1}D と ¯m+ ∈ {0, 1}D に分解 (m = m+ − ¯m+ ) することで,式 (10) に示すように線形 SVM の内積の近似値を計算で きる. f(b) = Nb i=1 cimib = Nb i=1 ci(< m+ i , b > − < ¯m+ i , b >) = Nb i=1 ci(2 < m+ i , b > −|b|) (10)
  129. 129. 基底数による識別器の近似計算結果 129 •人検出の学習サンプルによる計算結果 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界
  130. 130. 基底数による識別器の近似計算結果 130 •人検出の学習サンプルによる計算結果 -6.0 6.0 0.0 0 2 4 6 8 10 基底数 識別器の出力値 ネガティブサンプル 識別境界 関数マージンから離れている → 近似計算の打ち切りが可能 関数マージン から離れている
  131. 131. 基底数による識別器の近似計算結果 131 • 近似計算の打ち切りによる早期判定を実現 基底数 0 5 10 0 ­ + 入力画像 ポジティブサンプル ネガティブサンプル 2.19 2.05 0.21 -0.18 -2.25 -2.07 識別が困難なサンプル 近似計算を打ち切る出力値 =2 =4 =1 =3 入力画像 検出ウィンドウ
  132. 132. ラスタスキャンにおける識別処理速度の比較 132 線形SVM 提案手法 早期判定された領域人検出結果 ポジティブクラス ネガティブクラス 早期判定を導入することで識別処理を約17倍高速化
  133. 133. まとめ • 物体検出に用いられる特徴量 ‒ 第1世代:画像全体から捉える特徴 ‒ 第2世代:画像の局所領域から捉える特徴 ‒ 第3世代:特徴の関連性,特徴の組み合わせによる特徴 • 事前知識なくLow-level → Middle Levelへ • 少ない弱識別器で高い検出率 • 人検出のサーベイ ‒ 人検出を難しくする要因とその解決方法についてサーベイ ‒ http://www.slideshare.net/hironobufujiyoshi/ss-15205040 133
  134. 134. 参考文献1 •1. Haar-like特徴量と顔検出 - [Viola & Jones, CVPR 01] Viola, P and Jones, M, Rapid object detection using a boosted cascade of simple features , CVPR,vol.1,pp.511-518, (2001). • 2. AdaBoost - [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). • 3. HOG特徴量 - [Dalal 05] Dalal. N, Triggs. B, Histograms of Oriented Gradients for Human Detection , IEEE CVPR, pp. 886-893 (2005). •4. Real AdaBoost - [Schapire 99] R. E. Schapire, Y. Singer, Improved Boosting Algorithms Using Confidence-rated Predictions , Machine Learning, No. 37, pp. 297-336, (1999). 134
  135. 135. •5. 人検出 - [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). •6. 第3世代の特徴量 - [Rowley, PAMI 98] H.A. Rowley, S. Baluja, and T. Kanade, Neural network- based face detection ,IEEE Transactions on PAMI,vol.20,pp.23-28,(1998). - [Mita et al., PAMI 08] T. Mita, T. Kaneko, B. Stenger, and O. Hori:``Discriminative Feature Co-occurrence Selection for Object Detection,'' Pattern Analysis and Machine Intelligence, Vol.30, no.7, pp. 1257-1269(2008) - [三井, 山内, 藤吉 SSII 08] 三井 相和,山内 悠嗣,藤吉 弘亘, アピアランスと時空 間特徴を用いたJoint特徴による人検出 ,電気関係学会東海支部連合大会,pp.O- 135,(2008). - E.Hinton, G.,Osindero,S.and Teh, Y.-W.:A fast learning algorithm for deep belief nets, Neural Computation, Vol.18, pp.1527-1544(2006). 135 参考文献2
  136. 136. - E.Hinton, G.,Osindero,S.and Teh, Y.-W.:A fast learning algorithm for deep belief nets, Neural Computation, Vol.18, pp.1527-1544(2006). - [Felzenszwalb,PAMI 10] P. Felzenszwalb, R. Girshick, D. McAllester and D. Ramanan, Object Detection with Discriminatively Trained Part Based Models ,IEEE Transactions on PAMI,vol.32,no.9,pp.1627-1645,(2010). - [Felzenszwalb,CVPR 10] P. Felzenszwalb, R. Girshick and D. McAllester, Cascade Object Detection with Deformable Part Models, IEEE CVPR, pp. 2241‒2248, 2010. - [Ott,CVPR 10] P. Ott and M. Everingham, Shared Parts for Deformable Part-Based Models, IEEE CVPR, 2010. - [Girshick,NIPS 11] R. Girshick, P. Felzenszwalb and D. McAllester, Object Detection with Grammar Models , NIPS, 2011 136 参考文献3
  137. 137. - [福井,ViEW 14] 福井宏, 山下隆義, 綿末太郎, 山内悠嗣, 藤吉弘亘, 村瀬洋, Drop and Median Inferenceによる歩行者検出の高精度化 , ビジョン技術の実利用ワー クショップ, 2014. - [松島,IEICE 11] 松島千佳, 山内悠嗣, 山下隆義, 藤吉弘亘, 物体検出のための Relational HOG特徴量とワイルドカードを用いたバイナリーのマスキング , 電子 情報通信学会論文誌, vol. J94-D, no. 8, pp. 1172‒1182, 2011. - [後藤,IEICE 14] 後藤雄飛, 土屋成光, 山内悠嗣, 藤吉弘亘, "近似計算を導入した線形 識別器の早期判定による高速な識別", 電子情報通信学会論文誌, Vol.J97-D, No.2, pp.294-302, 2014. 137 参考文献4

×