31
CV勉強会@関東 発表資料 P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints 2015/05/30 takmin

Pn learning takmin

Embed Size (px)

Citation preview

CV勉強会@関東 発表資料P-N Learning: Bootstrapping Binary

Classifiers by Structural Constraints

2015/05/30 takmin

自己紹介テクニカル・ソリューション・アーキテクト

皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)

テクニカル・ソリューション・アーキテクト

皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)

略歴:1999-2003年日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリセールス、プロジェクトマネジメント、サポート等の業務に従事

2004-2009年コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事

2007-2010年慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻単位取得退学後、博士号取得(2014年)

2009年-現在フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事

2http://visitlab.jp

紹介する論文

3

P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints

Z. Kalal, J. Matas, K. Mikolajczyk

CVPR 2010

P-N Learningという二値分類を行う識別器をラベルなしサンプルから学習させるパラダイムの定式化

やってることはトラッキングだけど、論文自体はもっと上段に構えてる

デモ動画

https://www.youtube.com/watch?v=1GhNXHCQGsM

OpenCV3.0に実装される予定

P-N Learningを用いたトラッキング

4

1つのサンプル(黄色)から物体検出器を学習し、赤のような違う姿勢の物体も検出

P-N Learning

5

ラベルつきサンプルとラベルなしサンプルを使用して二値分類の識別器を学習

サンプル間の依存関係(構造)を利用して、サンプルにラベルを付与する

Positive Constraints

Positiveラベルをつける構造パターン

Negative Constraints

Negativeラベルをつける構造パターン

トラッキングの例

6

軌跡に近いパッチをPositiveサンプル、遠いパッチをNegativeサンプルとする

ラベルなしサンプルの活用例

7

半教師有学習

EMアルゴリズム

self-learning

co-training

P-N Learningの流れ

8

ラベル有サンプルから最初の識別器を学習

P-N Learningの流れ

9

ラベル無しサンプルを識別

ラベル無しサンプル

P-N Learningの流れ

10

ラベル有りサンプル

制約を用いてラベルを付け直し

ラベル有りサンプルを拡張

P-N Learningの流れ

11

識別器を再トレーニング

P-N Learningの流れ

12

ラベル無しサンプルを識別

以下、繰り返し

動画からの物体検出器の学習

13

第1フレームの追跡対象から生成

Randomized fern

追跡対象近くが正例遠くが負例

入力フレームからSliding Windowで生成

fern

14

各ノードは2bitパターン

𝑃𝑟(𝑦 = 1|𝒙)

𝒙 =211

特徴ベクトル

識別結果

Randomized fern

15

様々なサイズのウィンドウで画像内を探索

複数のfernの識別結果の平均が50%以上なら追跡対象(正例)

Structural Constraints

16

Lucas-Kanade Trackerで追跡

Structural Constraints

17

識別器で物体と判定された近くのパッチを正例サンプルに追加

Structural Constraints

18

識別器で背景と判定された軌跡周辺のパッチを負例サンプルに追加

動画から学習の流れ

19

最初の識別器は第1フレームにラベルづけされた対象領域をランダムにアフィン変換した300枚の正例を用いて学習。

第1フレームにラベルづけされた対象領域をLKトラッカーで追跡。

LKトラッカーが追跡に失敗したり、軌跡よりも遠い位置に識別器が物体を検出した場合

学習サンプルを全て破棄

学習済み識別器を用いてLKトラッカーを再初期化

最後のフレームまで学習された識別器=Final Detector

収束条件

20

識別器でラベル無しデータにラベルをつけたら、当然間違えるものも出てくるよね?発散しない?

どのようなケースでP-N Learningが収束するのかを理論的に検証

収束条件

21

False Positive数

False Negative数

𝛼 𝑘 + 1 = 𝛼 𝑘 − 𝑛𝑐− 𝑘 + 𝑛𝑓

+ 𝑘

𝑘: 学習回数

𝛽 𝑘 + 1 = 𝛽 𝑘 − 𝑛𝑐+ 𝑘 + 𝑛𝑓

− 𝑘

False Positiveを正しく負例と変換した数

True Negativeを誤って正例と変換した数

False Negativeを正しく正例と変換した数

True Positiveを誤って負例と変換した数

(1a)

(1b)

収束条件

22

P-Precision

𝑃+ =𝑛𝑐+

𝑛𝑐+ + 𝑛𝑓

+

𝑃− =𝑛𝑐−

𝑛𝑐− + 𝑛𝑓

𝑅+ =𝑛𝑐+

𝛽 𝑘

𝑅− =𝑛𝑐−

𝛼 𝑘

P-Recall

N-Precision N-Recall

False Positiveを正しく負例と変換した数

True Negativeを誤って正例と変換した数

False Negativeを正しく正例と変換した数

True Positiveを誤って負例と変換した数

False Negative数

False Positive数

これらを前の式(1a),(1b)へ代入

収束条件

23

𝛼 𝑘 + 1𝛽 𝑘 + 1

=1 − 𝑅−

1 − 𝑃+

𝑃+𝑅+

1 − 𝑃−

𝑃−𝑅− 1 − 𝑅+

𝛼 𝑘𝛽 𝑘

(2)

固有値が1より小さいとき収束する

𝛼 𝑘 + 1 = 𝛼 𝑘 − 𝑛𝑐− 𝑘 + 𝑛𝑓

+ 𝑘

𝛽 𝑘 + 1 = 𝛽 𝑘 − 𝑛𝑐+ 𝑘 + 𝑛𝑓

− 𝑘

(1a)

(1b)

収束条件

24

固有値ごとのエラー収束の様子

(1a)

(1b)

実験

25

P-N Learningの学習に使用するサンプルのラベルを操作して、𝑃+, 𝑅+, 𝑃−, 𝑅−を任意変化させることで、性能評価を行った

𝑃+ = 𝑅+ = 𝑃− = 𝑅− = 1 − 𝜖

0から0.9の間で変化させる(0.5より小さいと収束)

実験で使用した動画

実験

26

𝜖を変化させたときのF値

実験

27

𝜖 = 0の時

実験

28

以下の10個の動画に対して実験

カメラの動きやモーションブラーあり

実験

29

1-6の動画に対して既存手法との比較

27フレームでLKトラッカーが追跡失敗し、識別器も学習サンプルが不十分

実験

30

10個の動画の評価結果

結論

31

P-N Learningというラベル有り及びラベル無しの学習サンプルを用いて識別器を学習させる新しいフレームワークを提案

ラベル無しサンプルが構造的な場合に適用可能

収束条件を明確にした

動画に対して適用し、最初の1フレームのラベルからオンラインで物体検出器を学習

時空間の制約を使用

20fpsで学習

state-of-the-artの追跡性能