関東cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

34
関東CV勉強会 2015720CVPR2015論文紹介 Approximate Nearest Neighbor Fields in Video

Upload: kera-hiroshi

Post on 16-Aug-2015

615 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

関東CV勉強会 2015年7月20日 CVPR2015論文紹介

Approximate Nearest Neighbor Fields in Video

Page 2: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

紹介論文

❖ “Approximate Nearest Neighbor Fields in Video”!

❖ Nir Ben-Zrihem, Lihi Zelnik-Manor!

❖ CVPR 2015

Page 3: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

論文概要

画像

大量の画像 大量の画像パッチ群

学習

Reference set

Page 4: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

論文概要利用例 (denoising)

Page 5: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

論文概要

❖ Ring Intersection Approximate Nearest Neighbor search; RIANN!

❖ とっても速い!

★ state-of-the-art より2桁速い.!

★ 30fps 動画をReal-time 処理できる.!

❖ Reference set は(基本的に) global (入力画像によらない).

Page 6: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Nearest neighbor

❖ Reference points (青, 赤) に対し, query point

(緑) が最も近い点はどれか?!

❖ 近似的に求める場合はApproximate nearest

neighbor (ANN).

Page 7: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

ANN-Field❖ 入力画像の各パッチを, reference set にあるパッチに紐づける. !

❖ 対応は (Approximate) nearest neighbor で決定される. !

❖ この対応表 の1枚1枚をANN-Fieldと呼ぶ.

Page 8: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

問題

❖ Reference set はすでに持っているとして, 入力パッチに対応する reference を高速に見つけたい.

Page 9: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

: に対応するreference

: に対応するreference

よくでてくる記号

qx,y,t

: 時刻 t, 座標 (x, y), の画像パッチ

Frame

時系列

x

y

Reference set

ri

qx,y,t

Video

qx,y,t�1

rj

Page 10: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Temporal coherency時間的に連続するフレーム間の対応するパッチは似てる

対応する reference も似ている.

❖ Hollywood2 dataset の20のvideoで確認. !

❖ Reference setはターゲットのビデオ自身から学習. queryとreferenceの対応は (exact) NN.!

❖ パッチサイズは8*8. !

❖ の場合の~85%が距離1以下になった. ri �= rj

Page 11: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

❖ の reference がわかったとする. の reference

を見つけるには, 多くの場合, の周辺を探せばいい. !

❖ ただ, temporal coherency が成り立たない場合は探索範囲を広げなくてはいけない.

ri qx,y,t rjqx,y,t�1

ri

それぞれのqueryに対し, どうやって探索範囲を定めるか?

Temporal coherency

Page 12: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Query と reference の距離❖ もし reference set が適切なら, とその reference はよく似ているはず.

dist(ri, rj) � dist(ri, qx,y,t)

qx,y,t

rj

先ほどと同様の条件で!実験的に確認

Page 13: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Find a ring

❖ 図のような円環上を探せば良い.

� = � · dist(ri, qx,y,t)

dist(ri, rj) � dist(ri, qx,y,t)

それぞれのqueryに対し, どうやって探索範囲を定めるか?

❖ 円環の厚みは円の直径に比例させる.

Page 14: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Find a ring

❖ 図のような円環上を探せば良い.

� = � · dist(ri, qx,y,t)

dist(ri, rj) � dist(ri, qx,y,t)

それぞれのqueryに対し, どうやって探索範囲を定めるか?

❖ 円環の厚みは円の直径に比例させる.

でもまだここらへん余分じゃない?

Page 15: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Adaptive hashing

❖ もし reference set が適切なら, とその reference は似てる( ).!

❖ だけでなく他の reference についても成り立つでしょ.

dist(rk, rj) � dist(rk, qx,y,t)

qx,y,t rj

dist(ri, rj) � dist(ri, qx,y,t)

dist(rk, rj) � dist(rk, qx,y,t)

複数の円環の積集合部分を探索する

rj

Page 16: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

❖ 実験では, !

★ 次の円環中心の reference は探索領域内の reference からランダムに選ぶ. !

★ 探索領域にある reference 数が20をきるまで円環を重ねて絞っていく. !

★ 絞りきった後に残った reference から nearest neighbor で query の

reference を見つける.

Ring Intersection Approximate Nearest Neighbor search (RIANN) アルゴリズム名

Page 17: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

円環領域にある点を探すために❖ 円環領域にある点を探すために, reference set の任意の 2 reference に対して距離を計算してソートしておく. !

❖ これによって二分探索で, 円環部分の reference を高速に得られる.

ri からの距離の小さい順に並んだリスト

{ri, r2, ..., r9, r1, ...}

< d + �d � � <

これで円環部分の reference を速く見つけられる.

Page 18: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Reference set のはなし

❖ 動画群から global reference set をつくる. !

❖ 応用例によっては, 入力動画の1フレームだけからつくった local

reference set をつくる.

Page 19: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Reference set をつくる

Frame

大量の画像 大量の画像パッチ

High dimensional tree !でクラスタリング

類似のパッチがいっぱい

各クラスタのmedianを採用

Reference set

local reference set !の場合は1 Frameだけ.

Page 20: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

実験

❖ Hollywood2 dataset から 20の動画をターゲットとして使う. !

❖ 各動画は200 frame, 解像度は480*640, 600*800, 768*1024.!

❖ 各動画についてANNFを作って, 重複部分は平均化して, フレームを再構成. ターゲットフレームとの誤差で評価. !

❖ パッチサイズは8*8.

Page 21: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 22: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

応用例

❖ Realtime Video Denoising!

❖ Realtime Video Colorization!

❖ Realtime Styling Effects

どれも local reference set を使う.

Page 23: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Denoising❖ 7% Gaussian ノイズ.!

❖ 1 frame だけ BM3D で denoise して local reference をつくる.

Page 24: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 25: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 26: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 27: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 28: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Colorization❖ Grayscale 動画 に色を付ける. !

❖ Grayscale 動画の1 frameは手動で色を付ける or color 動画の1 frameは既知として, これから local reference set を作る. !

❖ 残りのフレーム部分はANNFで色づけ.

Page 29: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 30: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 31: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

Styling effect❖ Photoshopで1frameだけ加工して, reference setを作る. !

❖ 残りのフレームはANNFから再生.

Page 32: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 33: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video
Page 34: 関東Cv勉強会@20150720 approximate nearest_neighbor_fields_in_video

おしまい