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,
SudheendraVijayanarashmhan, JayYagnik (Google)
 CVPR2013 Best Paper
この論文の目的:
カテゴリ数が膨大な場合でも高速に物体検出を行
う。
物体検出の流れ
特徴量ベクトル
モデルフィルター
モデルとの類似度
内積
サンプルから学習
SlidingWindow
クラス数が膨大な場合の物体検出
特徴量ベクトル
内積
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルフィルター
フィルターの内積計算に膨大な時間がかかる。
使用するフィルターを絞り込みたい。
Locality-Sensitive Hashing (LSH)で絞り込み!
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルとの類似度
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
HashTable
フィルター候補フィルター候補
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルフィルター モデルとの類似度モデルとの類似度
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
HashTable
フィルター候補フィルター候補
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルフィルター モデルとの類似度モデルとの類似度
形状の情報を維持
したままバイナリ化
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.50.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.20.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.70.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.70.7, 0.3, 0.5, 0.2
)3,4,1,2(2 
K=3
0.3, 0.5, 0.20.7, 0.3, 0.5
010
K=3
順列(N=2)
入力 X N=2, K=3
i=1i=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.70.7, 0.3, 0.5, 0.2
)3,4,1,2(2 
K=3
0.3, 0.5, 0.20.7, 0.3, 0.5
100 010
K=3
順列(N=2)
入力 X N=2, K=3
i=1i=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.70.7, 0.3, 0.5, 0.2
)3,4,1,2(2 
K=3
0.3, 0.5, 0.20.7, 0.3, 0.5
100010
100 010
K=3
順列(N=2)
入力 X
出力
N=2, K=3
i=1i=2
N*K次元ベクトル
WTA hashは係数の順序を保存
 WTAで、赤点の順序が符号化された場合、以下の3つ
のフィルターの形状は等しいとみなす。
 歪みやゆらぎに強い。
WTA hashは係数の順序を保存
 起伏の近い形状同士の内積は大きくなる。
LSHによるフィルターの絞り込み
特徴量ベクトル
内積
WTA Hash
バイナリベクトル
HashTable
フィルター候補フィルター候補
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルフィルター モデルとの類似度モデルとの類似度
Multi-band LSH-style hash table (作成)
K
N*K
001 010 001 100 010 100・・・WTAVectors
CBA
Filter IDs
モデルフィルターモデルフィルターモデルフィルターモデルフィルターモデルフィルター
WTA Hash
CBA
Filter IDs
Multi-band LSH-style hash table (作成)
001 010 001 100 010 100
K
N*K
・・・WTAVectors
C
Create
W*K
001 010 001 100 010 100・・・SubVectors
BA
Filter IDs
001 010HashTables
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・・・WTAVector
特徴量ベクトル
WTA Hash
Multi-band LSH-style hash table (検索)
001 010 001 100 010 100
K
N*K
・・・
001 010HashTables
001 100 010 100・・・
WTAVector
001 010 001 100 010 100
W*K
・・・SubVectors
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)
 PASCALVOC2007
 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以外のモデルにも適用可能

Fast, Accurate Detection of 100,000 Object Classes on a Single Machine