fast, accurate detection of 100,000 object classes on a single machine

Post on 21-Jun-2015

4.908 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

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以外のモデルにも適用可能

top related