Upload
hokuto-kagaya
View
947
Download
3
Embed Size (px)
DESCRIPTION
Preferred Infrastructureインターン2014の発表会での発表資料です。
Citation preview
PFI INTERNSHIP 2014 WHERE DO YOU LOOK?HOKUTO KAGAYA / 加賀谷 北斗
自己紹介加賀谷 北斗 / Hokuto Kagaya
@hokkun_cv秋田県出身 / 22歳東京大学大学院 学際情報学府 修士1年相澤・山崎研究室研究室の専門:食事画像・漫画画像処理・旅行推薦等自分は食事班 (宣伝 : http://foo-log.co.jp )!
メンター阿部さん丸山さん
目次
1. 問題設定2. デモ3. Deformable Part Modelとその仲間たち+デモ
4. CNNによるHead Orientation Estimation
5. (デモ)
6. Future Work + まとめ
http://www.marthejocelyn.com/images/Where_Do_You_Look-330-exp.jpg
問題設定
問題設定
人検出
問題設定
人検出
頭部検出
問題設定
人検出
頭部検出
方向推定
問題設定
人検出
頭部検出
方向推定
問題設定
人検出
頭部検出
方向推定
問題設定監視カメラ映像等、荒い映像からの頭部検出と方向推定応用は広告・デジタルサイネージ・異常者検出等
http://ivl.calit2.net/wiki/images/6/61/Final_Detection.jpg
PETS2009, 我々の手法による結果より
問題設定監視カメラ映像等、荒い映像からの頭部検出と方向推定応用は広告・デジタルサイネージ・異常者検出等
http://ivl.calit2.net/wiki/images/6/61/Final_Detection.jpg
PETS2009, 我々の手法による結果より✕ ◯
DEMO 1
頭部検出の難しさ顔だけ探すのはうまくいかない・・画像が荒い (20*20ピクセルとか)後ろ向きの判別は大変難しい (髪の色・肌の色)
http://hatanabe.blog.so-net.ne.jp/_images/blog/_009/hatanabe/20090210-3.jpg
BMVC Benfold’s Datasetより
about: 検出について
頭部検出の難しさ顔だけ探すのはうまくいかない・・画像が荒い (20*20ピクセルとか)後ろ向きの判別は大変難しい (髪の色・肌の色)
http://hatanabe.blog.so-net.ne.jp/_images/blog/_009/hatanabe/20090210-3.jpg
BMVC Benfold’s Datasetより280°
about: 検出について
頭部検出の難しさ顔だけ探すのはうまくいかない・・画像が荒い (20*20ピクセルとか)後ろ向きの判別は大変難しい (髪の色・肌の色)
http://hatanabe.blog.so-net.ne.jp/_images/blog/_009/hatanabe/20090210-3.jpg
149°BMVC Benfold’s Datasetより280°
about: 検出について
顔検出顔そのものだけではダメなら..その他の部分も顔検出に使えばいいのではないか?
おや、どこかで見たことがある図だ・・?
about: 検出について
顔検出顔そのものだけではダメなら..その他の部分も顔検出に使えばいいのではないか?
おや、どこかで見たことがある図だ・・?
about: 検出について
Deformable Part ModelDeformable Part Model [1]検出対象全体のフィルタ(ルートフィルタ)と各パーツのフィルタ(パーツフィルタ)のスコア+パーツの位置関係を利用して物体検出
[1] P. Felzenszwalb et al, A Discriminatively Trained, Multiscale, Deformable Part Model, CVPR 2008.
about: 検出について
Deformable Part Model以下のスコアを最大化する
http://www.slideshare.net/MPRG_Chubu_University/ss-32258845
人らしさ 部品らしさ 全体と部品の位置関係
あらゆるパーツの位置で、スコアが高くなる位置を探す
about: 検出について
2
Deformable Part Modelアルゴリズムの詳細特徴量にはHoG (Histogram of Oriented Gradients)学習にはLatent SVM各パーツの学習はSVMで行うのだが、「パーツの位置」が隠れ変数として存在するので、EMアルゴリズムで交互に推定する
現在のフィルタで最もそれらしいパーツの位置を(学習画像毎に)決定!!!
その位置で画像からフィルタの重みを学習するこれがLatentSVM
about: 検出について
Deformable Part Modelabout: 検出について
Deformable Part Model
学習の流れ
about: 検出について
Deformable Part Model
学習の流れ画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
学習の流れ画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
学習の流れ画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
学習の流れ画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
学習の流れ画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
学習の流れ
「人体の検出によさそう」なパーツを自動的にチョイス
画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
学習の流れ
「人体の検出によさそう」なパーツを自動的にチョイス
画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
ルート・パーツ位置の推定
フィルタの学習
学習の流れ
「人体の検出によさそう」なパーツを自動的にチョイス
画像と検出対象物体のバウンディングボックスを入力
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
ルート・パーツ位置の推定
フィルタの学習
学習の流れ
「人体の検出によさそう」なパーツを自動的にチョイス
画像と検出対象物体のバウンディングボックスを入力
与えたバウンディングボックスから離れすぎず、スコアが高い位置を探す
about: 検出について
Deformable Part Model
ルートフィルタの初期化
パーツフィルタの初期化
ルート・パーツ位置の推定
フィルタの学習
学習の流れ
「人体の検出によさそう」なパーツを自動的にチョイス
画像と検出対象物体のバウンディングボックスを入力
与えたバウンディングボックスから離れすぎず、スコアが高い位置を探す
あくまで、「検出対象全体」の検出精度を上げるための過程だが…
about: 検出について
Deformable Part Model各パーツの位置も学習によって最適化されていくこれを使えば、先ほどの「頭以外も使って頭を見つける」のアイデアが実現できそうな気がする!!!!!
!!!ただし、そのパーツの位置は自動的に決められた位置
about: 検出について
Deformable Part Modelルート(検出対象全体)以外にもアノテーションがほしい!パーツにもアノテーションを与えることで、自分が欲しいパーツの位置の検出器が、ある意味副次的に得られるのではないか
about: 検出について
Deformable Part Modelルート(検出対象全体)以外にもアノテーションがほしい!パーツにもアノテーションを与えることで、自分が欲しいパーツの位置の検出器が、ある意味副次的に得られるのではないか
バウンディングボックスを パーツにも用意する
about: 検出について
Deformable Part Model
[2] H. Azizpour et al, Object Detection Using Strongly-Supervised Deformable Part Models, ECCV 2012.
DPM : パーツの初期化は自動的に行われる 入力として与えるのは人のバウンディングボックスだけ
SSDPM : パーツにもアノテーション →Strongly-Supervised DPMs [2]
about: 検出について
Deformable Part ModelDPM SSDPM
ルートフィルタ(全体)の初期化
HoG+SVM HoG+SVM
パーツフィルタの初期化 「人体の検出によさそう」なパーツを自動的にチョイス HoG+SVM
位置の更新* スコア+ルートフィルタの正解とのオーバラップ
スコア+ルートのオーパラップ+パーツのオーバラップ
学習 SGD SGD
オーバラップ:DPMが提示するフィルタの領域と与えているバウンディングボックスがどれだけ重なっているかということ。
about: 検出について
Deformable Part Modelabout: 検出について
Deformable Part Modelabout: 検出について
Deformable Part Model
全部つけるのはつらい
about: 検出について
SSS-DPM: Semi-strongly-supervised DPM正確に知りたい部位だけをアノテーションしよう!!!!!!!!!!
→他のパーツはオリジナルのDPMと同様
about: 検出について
実験
学習データ:INRIA Person dataset (training)パーツ数:supervised:1, unsupervised:5Latent SVMのイテレーション:10回 (位置決め→フィルタ学習を10回)Negative Data-mining : 10回
DPMではfalse positiveとなってしまったnegative sampleをhard-negativeとして積極的に用いる
about: 検出について
DEMO 2
8方向への分類問題として解く
顔の向き推定
Image from B.Benfold’s Ph.D thesis.
about: 方向推定について
Convolutional Neural NetあのDeep Learningの先駆け的存在画像認識界では現状state-of-the-artといってよい1989年Yann LeCunにより発表2012年の”Krizhevskyの変”により莫大なインパクト
about: 方向推定について
Convolutional Neural Net
より詳しくは拙著「Convolutional Neural Network」などを参照ください http://www.slideshare.net/hokutokagaya/convolutional-neural-network-cv-35089848
http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf
• Convolution• Pooling
!☆二種の層を多段に組み合わせる☆普通のニューラルネットワークと異なり、層同士の接続がスパースになるのが特徴☆これにより微小位置移動などに対してロバストに
about: 方向推定について
ひとくふうQ. 角度ほしいんだったら回帰じゃね?A. 実数単位でのアノテーションはほぼ不可能。泣く泣く分類→でもコストセンシティブだよね!!Q. コストセンシティブ?A. →CNNの誤差関数を工夫してみました!Q. 8分類だったらアノテーションできんの(笑)A. →Amazon Mechanical Turkぞい!
about: 方向推定について
ニューラルネットの学習確率的勾配降下法+バックプロパゲーション最終層の出力と理想の出力との誤差を計算(誤差関数)それを元にNN全体に誤差を伝播させて学習数データごとにまとめて学習典型的には分類問題では出力にソフトマックス関数を入れて確率化し、クロスエントロピー誤差関数を用いて評価する
データ 次元
正解 出力 {0, 0, 0, 1, 0}
{0.15, 0.15, 0.1, 0.5, 0.1}→tlny = -ln(0.5)
(1-of-K表現)
about: 方向推定について
正解はこれ
とある学習中…about: 方向推定について
正解はこれ
間違い①
予測結果①
とある学習中…about: 方向推定について
正解はこれ
間違い①
予測結果①
間違い②
予測結果②
とある学習中…about: 方向推定について
正解はこれ
この間違いは等価じゃない!
間違い①
予測結果①
間違い②
予測結果②
とある学習中…about: 方向推定について
正解はこれ
この間違いは等価じゃない!
間違い①
予測結果①
間違い②
予測結果②
コストセンシティブ
とある学習中…about: 方向推定について
データ 次元
正解 出力 t = {0, 0, 0, 1, 0}
y = {0.15, 0.15, 0.1, 0.5, 0.1}→tlny = -ln(0.5)
データ 次元
正解 出力 t = {0, 0, 0.2, 0.6, 0.2}
y = {0.15, 0.15, 0.1, 0.5, 0.1}→tlny = -0.6*ln(0.5)-0.2*ln(0.1)-0.2*ln(0.1)
角度なので「間違い」の価値に差があるので、「正解」をなだらかにする →右向きの画像は右後ろ向き、右前向きに対しても20%分正解にしてよいのでは? ☆学習データのアノテーションエラーに対して頑健 ☆求めているのはaccuracyよりも平均角度誤差なので、これにより90°以上のミスが減る
about: 方向推定について
トレーニングデータQMUL Head Pose Dataset [3]もともと4方向のアノテーションあり
約16000枚
50x50Amazon Mechanical Turk
“Artificial artificial intelligence”タスクをHTML, JS, (+CSV) 等でRequestすると世界中の誰かが解いてくれるクラウドソーシングサービス
[3] J. Orozco et al., Head pose classification in Crowded Scenes, BMVC 2009.
about: 方向推定について
余談:AMT結構つらいabout: 方向推定について
余談:AMT結構つらい
_人人人人人_ > 逆です < ‾Y^Y^Y^Y‾
about: 方向推定について
実験テストデータ
TownCentre データセット[4]より顔が40x40サイズ以上で写っている401枚の顔画像同一人物に偏り過ぎないようサンプリング
[4] B.Benfold et al., Guiding Visual Surveillance by Tracking Human Attention, BMVC 2009.
about: 方向推定について
実験正解角度とそれに隣接する角度の「正解具合」の比 平均角度誤差 角度正解率
10 : 0 (デフォルト) 35.24° 55.61%
0.9 : 0.05 33.33° 51.87%
0.8 : 0.1 37.14° 50.37%
0.7 : 0.15 40.73° 49.63%
0.6 : 0.02 40.40° 46.63%
about: 方向推定について
DEMO 3
FUTURE WORK
再掲DPM改善できそうな点グラフ構造をスターモデル以外にする?
DPMは一種のグラフモデル!!!!
一つのオブジェクトに対していくつかのモデルを用意?オリジナルの著者たちはバウンディングボックスのアスペクト比でクラスタリング [Felzenszwalb 2010]
学習の高速化ルート以外にもアノテーションがあったほうがいいのでは?
VS
再掲DPM改善できそうな点グラフ構造をスターモデル以外にする?
DPMは一種のグラフモデル!!!!
一つのオブジェクトに対していくつかのモデルを用意?オリジナルの著者たちはバウンディングボックスのアスペクト比でクラスタリング [Felzenszwalb 2010]
学習の高速化ルート以外にもアノテーションがあったほうがいいのでは?
VS
人体構造をモデル化して姿勢認識をする研究は過去に多数ある→参考にできないか?
Another philosophy: Tracking今回の実装は完全に1フレームの情報によるもの(実はパーティクルフィルタなんかも試したのは内緒)!本来、時間的な情報を使うこともできる追跡・データアソシエーション
DetectionとTrackingは相補的D→T:そもそも対象がどこにいるかいないと追跡を始められないT→D:単一物体の検出に、時間的情報を用いることができる (cf. オプティカルフロー) 完全オクルージョンにも対応できる
Another philosophy: Tracking検出だけでなく、頭部方向も時間的情報を用いることができる「さっきはあっち向いてて、人の首はそんな急には動かないから・・」
!画像情報+時間情報+全身の向きを用いた頭部方向推定の研究もある [5]この著者のグループは頭部検出も取り組んでいる
[5] B. Benfold et al., Unsupervised Learning of a Scene-Specific Coarse Gaze Estimator, ICCV 2011.
その他DPMは非常に遅いアルゴリズム最近は高速化された研究もある [6]スライディングウィンドウ的手法の一段階前に候補を出す [7]
DPM以降の物体検出アルゴリズムOverFeat [8], R-CNN [9] に代表されるCNN系検出器の台頭
[6] M. Pedersori et al., A Coarse-to-fine approach for fast deformable object detection, CVPR 2011. [7] J. Uijlings et al., Selective Search for Object Recognition, IJCV 2013. [8] P. Sermanet et al., OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks, ICLR 2014 [9] R. Girshick et al., Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation, CVPR 2014
まとめ
まとめSSS-DPMによって荒い画像からの頭部検出を実現
frame by frameながら高精度の検出に成功!CNNを用いて頭部方向推定を実装こちらもframe by frameだが、一定の成果を得た!
時間情報を使ってもっと正確にできそう!Amazon Mechanical Turkは用法用量を守って適切に利用する
インターンの感想実験記述ツールmafが便利今すぐhttps://github.com/pfi/mafへ!!!
!アルゴリズムを書く訓練になった。今後も続けたい開発の流れ、みたいなものをつかみかけた!レッドブルはうまいロンアールは辛い
THANK YOU!ご指導いただいたメンターのお二人はじめ、大変お世話になりました!
2014/8 星の王子さまミュージアムにて