[cvpr読み会]bing:binarized normed gradients for objectness estimation at 300fps

Post on 05-Dec-2014

2.686 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

2014/07/26 CV勉強会@関東CVPR2014読み会(前編) 発表資料

takmin

自己紹介

2

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

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

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

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

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

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

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

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

紹介する研究

“BING: Binarized Normed Gradients for Objectness Estimation at 300fps”

Ming-Ming Cheng

Ziming Zhang

Wen-Yan Lin

Philip Torr

Objectness検出

4

画像から「物体っぽい」ものを検出する。(それがどんな物体かまでは判別しない。)

一般物体検出の前処理として使われる。

Objectness検出

要件:

高い検出率 一度検出できなかったものは、後処理で取り返せない。

Objectnessの候補数は少ないほうが望ましい 計算時間に影響

計算が早い 応用範囲を広げるため

汎用的に使える 学習していないカテゴリにも対応

Objectness検出

従来法: 顕著性とかセグメンテーションとか識別器とかカスケード使って処理速度を改善しつつ検出率を高めようとしてきた

本手法:

従来法よりもアルゴリズムがシンプルで高速で検出率が高い

Objectの特徴

輪郭が閉じた形状を持っている。

それぞれの画像勾配を計算し、8x8にリサイズ

Normed Gradient (NG) Feature

NG特徴を用いたObjectness検出

勾配画像を様々なサイズにリサイズし、フィルターを畳み込むだけ!

フィルター

NG特徴を用いたObjectness検出

勾配画像を様々なサイズにリサイズし、フィルターを畳み込むだけ!

NG特徴

フィルター

𝑠𝑙 = 𝒘,𝒈𝑙 (1)

SVMで学習

NG特徴を用いたObjectness検出

サイズごとにスコアを補正

𝑜𝑙 = 𝑣𝑖 ∙ 𝑠𝑙 + 𝑡𝑖 (3)

𝑠𝑙 = 𝒘,𝒈𝑙 (1)

最終スコア サイズごとの補正値

𝑖

SVMで学習

BING: Binarized normed gradients

NG特徴をバイナリ化することで検出を高速化

𝑠𝑙 = 𝒘,𝒈𝑙 (1)

バイナリ化

𝒘 ≈ 𝑗=1

𝑁𝑤𝛽𝒋𝒂𝑗 𝒈𝑙 ≈

𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒂𝑗 ∈ −1,+18×8 𝒃𝑘,𝑙 ∈ 0,1

8×8

フィルターのバイナリ化

NG特徴をバイナリ化することで検出を高速化

𝑠𝑙 = 𝒘,𝒈𝑙 (1)

バイナリ化

𝒘 ≈ 𝑗=1

𝑁𝑤𝛽𝒋𝒂𝑗 𝒈𝑙 ≈

𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒂𝑗 ∈ −1,+18×8 𝒃𝑘,𝑙 ∈ 0,1

8×8

フィルターのバイナリ化

𝒘 ≈ 𝑗=1

𝑁𝑤𝛽𝒋𝒂𝑗 𝒂𝑗 ∈ −1,+1

8×8

フィルターのバイナリ化

𝒘,𝒈𝑙 ≈ 𝑗=1

𝑁𝑤𝛽𝑗 2 𝒂𝑗

+, 𝒈𝑙 − 𝒈𝑙

𝒘 ≈ 𝑗=1

𝑁𝑤𝛽𝒋𝒂𝑗 𝒂𝑗 ∈ −1,+1

8×8

𝒂𝑗+ = 0,+1 8×8

𝒂𝑗 = 2𝒂𝑗+ − 𝟏

(4)

NG特徴のバイナリ化

NG特徴をバイナリ化することで検出を高速化

𝑠𝑙 = 𝒘,𝒈𝑙 (1)

バイナリ化

𝒘 ≈ 𝑗=1

𝑁𝑤𝛽𝒋𝒂𝑗 𝒈𝑙 ≈

𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒂𝑗 ∈ −1,+18×8 𝒃𝑘,𝑙 ∈ 0,1

8×8

NG特徴のバイナリ化

𝒈𝑙 ≈ 𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒃𝑘,𝑙 ∈ 0,18×8𝒈𝑙 ∈ 0,⋯ , 255

8×8

グレースケール バイナリ

210

𝑁𝑔 = 4 の時

11010010 1101

画素値

bit列 頭4bit

NG特徴のバイナリ化

𝒈𝑙 ≈ 𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒃𝑘,𝑙 ∈ 0,18×8𝒈𝑙 ∈ 0,⋯ , 255

8×8

グレースケール バイナリ

210 ≈ 𝑘=1𝑁𝑔28−𝑘𝒃𝑘,𝑙 = 1 ∗ 2

8−1 + 1 ∗ 28−2+0 ∗ 28−3+1 ∗ 28−4

210

𝑁𝑔 = 4 の時

11010010 1101bit列 頭4bit

NG特徴のバイナリ化

𝒃𝑘,𝑙 ∈ 0,18×8𝒈𝑙 ∈ 0,⋯ , 255

8×8

グレースケール バイナリ

210

𝑁𝑔 = 4 の時

11010010 1101bit列 頭4bit

0 0 1 0 1 0 0 0

0 0 1 0 0 1 1 0

1 1 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 1 1

1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0

0 0 0 1 1 0 0 0

0 1 1 1 0 1 0 0

0 0 1 0 0 1 1 0

1 1 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 1 1

1 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0

0 0 0 1 1 0 0 0

0 0 1 0 1 0 0 0

0 0 1 0 0 1 1 0

1 1 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 0 1

0 0 0 0 0 0 1 1

0 0 0 1 1 0 0 1

0 0 1 0 1 1 0 0

0 0 1 0 0 1 1 0

1 1 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 1 0

1 0 0 0 0 0 0 1

0 0 0 0 0 0 1 1

0 0 0 1 1 0 0 1

𝑁𝑔

バイナリフィルタとBING特徴の統合

𝒘,𝒈𝑙 ≈ 𝑗=1

𝑁𝑤𝛽𝑗 2 𝒂𝑗

+, 𝒈𝑙 − 𝒈𝑙

𝒈𝑙 ≈ 𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒘,𝒈𝑙

≈ 𝑗=1

𝑁𝑤𝛽𝑗

𝑘=1

𝑁𝑔28−𝑘 2 𝒂𝑗

+, 𝒃𝑘,𝑙 − 𝒃𝑘,𝑙

(4)

(6)

バイナリフィルタの畳み込み

BING特徴

バイナリフィルタとBING特徴の統合

𝒘,𝒈𝑙 ≈ 𝑗=1

𝑁𝑤𝛽𝑗 2 𝒂𝑗

+, 𝒈𝑙 − 𝒈𝑙

𝒈𝑙 ≈ 𝑘=1

𝑁𝑔28−𝑘𝒃𝑘,𝑙 (5)

𝒘,𝒈𝑙

≈ 𝑗=1

𝑁𝑤𝛽𝑗

𝑘=1

𝑁𝑔28−𝑘 2 𝒂𝑗

+, 𝒃𝑘,𝑙 − 𝒃𝑘,𝑙

(4)

(6)

バイナリフィルタの畳み込み

BING特徴

POPCNTANDBIT SHIFTADD

高速なBING特徴の取得

𝒘,𝒈𝑙

≈ 𝑗=1

𝑁𝑤𝛽𝑗

𝑘=1

𝑁𝑔28−𝑘 2 𝒂𝑗

+, 𝒃𝑘,𝑙 − 𝒃𝑘,𝑙 (6)

000010000111……00000…

000010000111……00000…000010000111……

00000…000010000111……00000……

リサイズされた勾配画像 バイナリ化された画像

BING特徴(8x8)

各場所で取得

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 : 64 bit

を高速に求める

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 : 64 bit

を高速に求める

𝒓𝑥,𝑦 : 8 bit

𝑏𝑥,𝑦 : 1 bit

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 : 64 bit

を高速に求める

𝒓𝑥,𝑦 : 8 bit

𝑏𝑥,𝑦 : 1 bit

𝒓𝑥−1,𝑦

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 : 64 bit

を高速に求める

𝒓𝑥,𝑦 =

(𝒓𝑥−1,𝑦 ≪ 1)|𝑏𝑥,𝑦

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 : 64 bit

𝒓𝑥,𝑦 =

(𝒓𝑥−1,𝑦 ≪ 1)|𝑏𝑥,𝑦

𝒃𝑥,𝑦−1

高速なBING特徴の取得

0 0 1 0 1 1 0 0 1 0 0

0 0 1 0 0 1 1 0 0 0 0

1 1 0 0 0 0 1 0 0 0 1

0 1 1 0 0 0 0 1 1 1 0

1 0 0 0 0 0 1 1 0 0 0

1 0 0 0 0 0 1 0 0 0 1

1 0 0 0 0 0 0 0 0 1 0

0 0 0 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 1

0 0 0 1 1 0 0 0 0 1 1

0 0 1 1 0 0 0 0 0 0 1

ラスタスキャンでBING特徴を取得

𝒃𝑥,𝑦 =

(𝒃𝑥,𝑦−1 ≪ 8)|𝒓𝑥,𝑦

𝒓𝑥,𝑦 =

(𝒓𝑥−1,𝑦 ≪ 1)|𝑏𝑥,𝑦

実験

PASCAL VOC 2007での成功例

他の手法との比較(PASCAL VOC2007)

計算時間

処理時間:300fps

トレーニング:2501枚の訓練データで20秒

ラップトップ Intel i7-3940XM CPU

オペレーションの平均回数

まとめ

閉じた輪郭を持つものを物体と仮定して、勾配画像よりNG特徴を学習

NG特徴を用いたObjectness検出を高速に行うために、バイナリ化(=BING特徴)

従来法と比べて性能が良いだけでなく、処理速度も3桁近く早い

プロジェクトページ

http://mmcheng.net/bing/

ソースコードあり

top related