training object class detectors with click supervision
TRANSCRIPT
Training object class detectors with click supervision
ハワイ輪読会 2017 @conta_
緒方 貴紀 (@conta_) CRO@ABEJA, Inc.
Computer VisionやMachine Learningの研究開発やっています
が最近は何をやっているのかわかりません
Self Introduction
簡単なアノテーションを作成するだけで、特定の物体検出がそこそこうまくいくようになる手法の提案
物体検出の教師データを、物体の中心点(center-click annotation)のみにし、Multiple Instance Learning(MIL)を適応することで、
教師データをBounding Boxを利用した時と同等の精度で、
アノテーターの作業時間を9〜18倍改善した
What's this?
Deep Leanring ✕ 一般物体検出は、大抵Bounding Boxを教師データとして与える
=> 大量のデータが必要なので、クラウドソーシングを活用
一般物体検出を学習させるときの課題
Deep Leanring ✕ 一般物体検出は、大抵Bounding Boxを教師データとして与える
=> 大量のデータが必要なので、クラウドソーシングを活用
でも、、、
WorkerがBounding Boxをannotationするの結構時間かかる(25.5s/box)
チェックに時間かかる
作業結果のクオリティー担保むずい
一般物体検出を学習させるときの課題
物体にBounding Boxをつけるのではなく、物体中心をクリックするだけ
=> アノテータの作業大幅削減!
検出器は、Weakly Supervised Learning(MIL)を活用することでいい感じにできそう!
簡単なアノテーションで解決!
データの集め方
アノテーションをする際のWorkflow
アノテーションをする際のWorkflow
Instructions
物体を長方形で囲った時に中心となる位置にクリックしてね!
とアノテーターへ伝える
アノテーションをする際のWorkflow
アノテーターに、図のような多角形の画像に対して、中心をアノテーションしてもらい、アノテーション後に実際の中心とどれくらいずれているかのフィードバックを与える。
=> 真値との誤差が20px以下になるまでくり返す
このテストをクリアすると
実際の作業へ移ることができる
Annotator training
アノテーションをする際のWorkflow
特定の枚数(ここでは20枚)を単位として、アノテーターに実際の作業(物体中心のクリック)をしてもらう。
Qualityを担保するために、もともとGround Truthを持っているデータをバッチごとにランダムに混ぜて(Golden questions)精度計測をする。
=> 一定のQualityに満たない人のデータは受け付けない
Annotating images
Amazon Mechanical Turk (AMT) で実験
PASCAL VOC 2007でデータを作成(14,612 clicks in total for the 5,011 trainval images)
Annotation time: 平均1.87s/click、3.8時間でアノテーションを完了
Data collection
物体検出器の作り方
Multiple Instance Learning (MIL)[Dietterich et al., 1997]
positive bags(正解を1つ以上含む)と、negative bags(正解を含まない)を用いた機械学習手法の一つ
MILによる物体検出器作成
B. Babenko, M.-H. Yang, and S. Belongie. Visual Tracking with Online Multiple Instance Learning. In CVPR, 2009
Pre-trainされたAlexNet CNNとSVMを使って下記の2ステップを交互に回す
(I) re-localization
識別器Aをつかって、一番スコアの高くなる物体候補の位置を探す(Multi-folding/Objectness等で物体候補を探す)
(II) re-training
(I)で探した位置をPositiveとして、識別器AをSVMにて学習させる
一定回数イテレーションを回した後、(II)のフェーズで、識別器AをFast RCNNにして再学習
MILによる物体検出器作成
物体候補pのスコアは、識別器Aと物体候補らしさO*を使って、下記のように計算する
*What is an object? In CVPR, 2010
■Box center score
アノテーションは必ずしも正確でないので、下記の式によって物体候補の尤度をスコアリング
p: proposal covering the object
c_p: center point
c: the click
One-click supervision
中心点のアノテーション活用方法
■Use in re-localization
MILで物体検出を学習させるステップ時のre-localization step時に、Appearance(S_ap)だけでなく、この中心尤度(S_bc)の項も使う
■Use in initialization
サンプルする物体検出候補は、画像全体からでなく、画像の境界をはみ出ない大きさでサンプリングすることで良い精度になる。特に、クリックが画像の境界に近い場合、より良いMILの初期値を得ることができる
One-click supervision
1人にアノテーションしてもらうより、2人にアノテーションしてもらったほうが精度良さそうだよね!
=> 2人のアノテーションした物体中心位置の差をモデリング
■Box center score
前述の式を c => c1 and c2に置き換えるだけ
ただし、右写真のように2つのクリックが離れてた場合は、
しきい値d_maxを設けて、別々の物体として扱う
Two-click supervision
■Box area score
物体の大きさとアノテーションの誤差は相関がある(Fig. 4)
=> 2つのアノテーションの距離から物体候補を推定する(Fig. 6)
μ: 物体エリアの対数を推定するfunction(後術)、a_p: 物体候補エリア
(a_p - μ)は2つのエリアの対数比を表す
■Use in re-localization
前述と同じような形でトータルスコアに組み合わせる
Two-click supervision
クリックデータを活用するために必要なパラメータは下記の4つ
σ_bc:
d_max:
σ_ba:
μ(x):
Learning score parameters
クリックデータを活用するために必要なパラメータは下記の4つ
σ_bc:
d_max:
σ_ba:
μ(x):
Learning score parameters
Qualification Testから計算
70px(Max error distanceが70pxぐらいだったので)
2クリックの距離と 物体エリアの対数比を 多項式回帰でfitting
μ(x)のaverage errorを使う
■PASCAL VOC 2007
20 classes / 5,011 training images / 4,952 test images.
■Evaluation
- Correct Localization (CorLoc)
物体候補が正しい位置にあるか?(Bounding Boxの重なり度合い(i.e. IoU ≧ 0.5) )を測る
*Training Imageに対して計測
- mAP
学習器が正しく動くか、Test Imageに対してmAPを計測
Experimental results
Experimental results
■MS COCO dataset
80 classes / 82,783 training images / 40,504 val images
VOC 2007と同じ条件て計測
- Click supervision
COCOのデータセットに対してはクリックアノテーションをシミュレーションで行った
Experimental results
物体中心位置を与えるだけで物体検出ができるようになるアルゴリズムの提案
- MILを活用することで弱教師あり学習で識別器を学習する
- アノテーターのクリック位置から、統計値によって物体候補枠を推定
Weakly Supervisedなメソッドより精度が大幅に向上
アノテーションを9-18倍高速にできた
Conclusion
(余談) vs SOTA Object detection algorithm
J. Redmon and A. Farhadi. Yolo9000: Better, faster, stronger