fast, accurate detection of 100,000 object classes on a single machine
DESCRIPTION
2013/07/28 JapanCV Day2での発表資料です。TRANSCRIPT
CVPR論文紹介@Japan CV Day2
Fast, Accurate Detection of 100,000
Object Classes on a Single Machine
takmin
紹介する論文
Fast, Accurate Detection of 100,000 Object Classes on a Single Machine
Thomas Dean, Mark A. Ruzon, Mar Segal, Jonathon Shlens, Sudheendra Vijayanarashmhan, Jay Yagnik (Google)
CVPR2013 Best Paper
この論文の目的:
カテゴリ数が膨大な場合でも高速に物体検出を行う。
物体検出の流れ
特徴量ベクトル
モデルフィルター
モデルとの類似度
内積
サンプルから学習
Sliding Window
クラス数が膨大な場合の物体検出
特徴量ベクトル
内積 モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルフィルター
フィルターの内積計算に膨大な時間がかかる。
使用するフィルターを絞り込みたい。
Locality-Sensitive Hashing (LSH)で絞り込み!
モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルとの類似度
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
Hash Table
フィルター候補 フィルター候補
モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルとの類似度 モデルとの類似度
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
Hash Table
フィルター候補 フィルター候補
モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルとの類似度 モデルとの類似度
形状の情報を維持したままバイナリ化
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
)3,4,1,2(2
順列(N=2)
入力 X N=2, K=3
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
)3,4,1,2(2
順列(N=2)
入力 X N=2, K=3
i=1
0.3
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
)3,4,1,2(2
順列(N=2)
入力 X N=2, K=3
i=1
0.5 0.3,
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
)3,4,1,2(2
順列(N=2)
入力 X N=2, K=3
i=1
0.2 0.3, 0.5,
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
)3,4,1,2(2
順列(N=2)
入力 X N=2, K=3
i=1
0.7 0.3, 0.5, 0.2,
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
0.3, 0.5, 0.2, 0.7
)3,4,1,2(2
0.3, 0.5, 0.2
K=3
順列(N=2)
入力 X N=2, K=3
i=1
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
0.3, 0.5, 0.2, 0.7
)3,4,1,2(2
0.3, 0.5, 0.2
010
K=3
順列(N=2)
入力 X N=2, K=3
i=1
最大値
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
0.3, 0.5, 0.2, 0.7 0.7, 0.3, 0.5, 0.2
)3,4,1,2(2
K=3
0.3, 0.5, 0.2 0.7, 0.3, 0.5
010
K=3
順列(N=2)
入力 X N=2, K=3
i=1 i=2
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
0.3, 0.5, 0.2, 0.7 0.7, 0.3, 0.5, 0.2
)3,4,1,2(2
K=3
0.3, 0.5, 0.2 0.7, 0.3, 0.5
100 010
K=3
順列(N=2)
入力 X N=2, K=3
i=1 i=2
最大値
Winner-take-all(WTA) Hash
)2,3,4,1(1
0.3, 0.7, 0.2, 0.5
0.3, 0.5, 0.2, 0.7 0.7, 0.3, 0.5, 0.2
)3,4,1,2(2
K=3
0.3, 0.5, 0.2 0.7, 0.3, 0.5
100010
100 010
K=3
順列(N=2)
入力 X
出力
N=2, K=3
i=1 i=2
N*K次元ベクトル
WTA hashは係数の順序を保存
WTAで、赤点の順序が符号化された場合、以下の3つのフィルターの形状は等しいとみなす。
歪みやゆらぎに強い。
WTA hashは係数の順序を保存
起伏の近い形状同士の内積は大きくなる。
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
Hash Table
フィルター候補 フィルター候補
モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルとの類似度 モデルとの類似度
Multi-band LSH-style hash table (作成)
K
N*K
001 010 001 100 010 100 ・・・ WTA Vectors C B A
Filter IDs
モデルフィルター モデルフィルター モデルフィルター モデルフィルター モデルフィルター
WTA Hash
C B A
Filter IDs
Multi-band LSH-style hash table (作成)
001 010 001 100 010 100
K
N*K
・・・ WTA Vectors C
Create
W*K
001 010 001 100 010 100 ・・・ Sub Vectors
B A
Filter IDs
001 010 Hash Tables 001 100 010 100 ・・・
(A, D,...,M)
(C, D,…,K) (A, C,…,M)
Multi-band LSH-style hash table (検索)
K
N*K
001 010 001 100 010 100 ・・・ WTA Vector
特徴量ベクトル
WTA Hash
Multi-band LSH-style hash table (検索)
001 010 001 100 010 100
K
N*K
・・・
001 010 Hash Tables 001 100 010 100 ・・・
WTA Vector
001 010 001 100 010 100
W*K
・・・ Sub Vectors
A B C D E F G H I J K L M
Threshold
Histogram
A, C, D, M
Filter IDs A D M ・・・ C D K ・・・ A C M ・・・ ・・・
Deformable Part Modelsへの適用
Deformable Part Models P. Felzenswalb et al, “Object Detection with Discriminatively Trained
Part Based Models”, PAMI, 32(9), 2010
物体を「パーツの類似度+パーツ位置の歪み」で認識
各パーツはHOG特徴量で記述しLatent SVMで学習
学習後の各パーツのHOGフィルターにWTAを適用
実験(PASCAL VOC2007)
PASCAL VOC2007
20カテゴリ
訓練画像5000枚+試験画像最大5000枚
パラメータ
パーツサイズ:6x6 cells
rootフィルタなし
K=4, W=4, 3000 hash tables
Average Precision
Base = Deformable Part Model
Accuracy Versus Speed and Memory
Hash Table数と精度の関係
Hash keysが16または18bitになるようWを調整
Accuracy Versus Speed and Memory
メモリ使用率と精度の関係
メモリ量はハッシュテーブル数の関数
Accuracy Versus Speed and Memory
速度と精度の関係
20クラス検出の速度
100,000カテゴリでの実験
ImageSearch-100kというデータセットを新たに作成
“Freebase”*からカテゴリをリスト化して、Google Image Searchで画像を取得
Bounding Boxはない
1クエリーあたり最大500枚。平均300枚。
80%を学習に、20%を評価に使用。
*K. Bollacker et al. , “Freebase: a collaboratively created graph database for structuring
human knowledge”, In ACM SIGMOD International Conference on Management of Data,
pp.1247-1250. 2008
100,000カテゴリでの実験
学習
1回目の学習では画像全体をBounding Boxとみます。
2回目以降、もしBounding Boxのスコアが前回より高くなったら、それを新たなBounding Boxとして使用する。
5000台のマシンで10回学習を行った。(24時間)
検出
K=16, W=4, N=2400
RAM 20GBのマシン1台で実験
100,000カテゴリでの実験
処理時間とmean Average Precisionの関係
100,000カテゴリでの実験
カテゴリ数とmean Average Precisionの関係
Top 6 detection results
t = 8 sec
Hand-labeled Ground Truth
ラベル付けされた545個のオブジェクトに対するmean average precisionのヒストグラム
Revisiting VOC 2007 with 10,000 Detectors
学習カテゴリ数を変化させて、VOCの20クラスを認識
処理速度が一定となるようにパラメータを調整。
結論
線形の畳み込み演算をLSHによって序数の演
算に置き換えることで、スケーラブルな物体検出手法を提案
Deformable Part Models (DPM)に適用したところ
オリジナルのDPMと同等の性能
性能はクラス数の増加によって低下
100,000個のカテゴリを1枚あたり、1台のPCLで20秒以内に検出
DPM以外のモデルにも適用可能