36
41CV勉強会「CVPR2017読み会(前編)」 Discriminative Optimization: Theory and Application to Point Cloud Registration 2017/08/06 皆川卓也(takmin)

20170806 Discriminative Optimization

Embed Size (px)

Citation preview

Page 1: 20170806 Discriminative Optimization

第41回 CV勉強会「CVPR2017読み会(前編)」

Discriminative Optimization:

Theory and Application to Point Cloud Registration

2017/08/06 皆川卓也(takmin)

Page 2: 20170806 Discriminative Optimization

自己紹介

2

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

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

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

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

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

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

http://visitlab.jp

Page 3: 20170806 Discriminative Optimization

紹介論文

Discriminative Optimization: Theory and

Application to Point Cloud Registration

Jayakorn Vongkulbhisal, Fernando De la Torre, Joao P.

Costeira

点群同士の位置合わせをコスト関数の最小化という形をとらず、特徴量から直接移動方向を算出する手法を提案

高速かつロバスト

ポスターで話聞いて面白いと思ったので紹介

Page 4: 20170806 Discriminative Optimization

点群のレジストレーション

2つの点群の位置合わせ

http://pointclouds.org/documentation/tutorials/interactive_icp.php

より

Page 5: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

model

scene

Page 6: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

model

scene

Page 7: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

3. 対応点同士の距離の二乗和が最小となるようにmodel

点群の回転𝐑と平行移動量𝐭を算出

model

scene

Page 8: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

3. 対応点同士の距離の二乗和が最小となるようにmodel

点群の回転𝐑と平行移動量𝐭を算出

model

scene 𝐑, 𝐭

Page 9: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

3. 対応点同士の距離の二乗和が最小となるようにmodel

点群の回転𝐑と平行移動量𝐭を算出

4. 2と3を収束する、または指定回数繰り返す。

model

scene

Page 10: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

3. 対応点同士の距離の二乗和が最小となるようにmodel

点群の回転𝐑と平行移動量𝐭を算出

4. 2と3を収束する、または指定回数繰り返す。

model

scene

Page 11: 20170806 Discriminative Optimization

ICPアルゴリズム

1. model点群とscene点群を用意

2. model点群の各点に対して最も近いscene点群中の点を割り当て

3. 対応点同士の距離の二乗和が最小となるようにmodel

点群の回転𝐑と平行移動量𝐭を算出

4. 2と3を収束する、または指定回数繰り返す。

𝐹 𝐑, 𝐭 =1

𝑁

𝑖=1

𝑁

𝐑𝒑𝑖 + 𝐭 − 𝒒𝑖2

誤差関数の最小化

Page 12: 20170806 Discriminative Optimization

Supervised Sequential Update (SSU)

顔器官検出/追跡などで近年使われる手法

Explicit Shape RegressionやSDMなど

ランドマーク周辺の特徴量から直接フィッティングのための移動量を算出

Cao, X., Wei, Y., Wen, F., & Sun, J. (2012). Face Alignment by Explicit Shape

Regression. In IEEE Conference on Computer Vision and Pattern Recognition.

Page 13: 20170806 Discriminative Optimization

Discriminative Optimization (DO)

SSUの手法を点群のレジストレーションへ適用

誤差関数の最小化ではなく、直接パラメータの更新分を計算

𝐱𝑘+1 = 𝐱𝑘 − 𝐃𝑘+1 𝐡 𝐱𝑘パラメータ

(移動+回転)特徴量抽出

特徴量からパラメータ更新量を直接算出(学習により求める)

Page 14: 20170806 Discriminative Optimization

Discriminative Optimization (DO)

SSUの手法を点群のレジストレーションへ適用

誤差関数の最小化ではなく、直接パラメータの更新分を計算

𝐱𝑘+1 = 𝐱𝑘 − 𝐃𝑘+1 𝐡 𝐱𝑘

𝑝 × 1

−=

𝑝 × 1 𝑝 × 𝑓

𝑓 × 1

Page 15: 20170806 Discriminative Optimization

Discriminative Optimization (DO)

SSUの手法を点群のレジストレーションへ適用

誤差関数の最小化ではなく、直接パラメータの更新分を計算

𝐱𝑘+1 = 𝐱𝑘 − 𝐃𝑘+1 𝐡 𝐱𝑘

𝐱0 𝐱1 𝐱2

𝐱𝐾−𝐃1 𝐡 𝐱0−𝐃2 𝐡 𝐱1

Page 16: 20170806 Discriminative Optimization

ICPとDO

2次元点群レジストレーションの例

Level Set

Page 17: 20170806 Discriminative Optimization

ICPとDO

2次元点群レジストレーションの例

Level Set

Page 18: 20170806 Discriminative Optimization

学習データセット

学習データセット 𝐱0(𝑖), 𝐱∗

(𝑖), 𝐡(𝑖)

𝑖=1

𝑁を用意

・・・

𝐱0(1)

𝐱∗(1) 𝐱0

(2)

𝐱∗(2)

𝐱∗(𝑁)

𝐱0(𝑁)

初期パラメータ Ground

Truthサンプルごとの(事前計算した)特徴量

Page 19: 20170806 Discriminative Optimization

𝐃𝑘+1の学習

𝐃𝑘+1 =

argmin෩𝐃

1

𝑁σ𝑖=1𝑁 𝐱∗

(𝑖)− 𝐱𝑘

(𝑖)+ ෩𝐃𝐡(𝑖) 𝐱𝑘

(𝑖) 2+

𝜆

2෩𝐃

𝐹

2

正則化項

リッジ回帰

・・・

𝐱𝑘(1)

𝐱∗(1) 𝐱𝑘

(2)

𝐱∗(2)

𝐱∗(𝑁)

𝐱𝑘(𝑁)

𝐱∗(𝑖)と𝐱𝑘+1

(𝑖)の二乗誤差の総和が最小となるように𝐃𝑘+1を算出

Page 20: 20170806 Discriminative Optimization

学習アルゴリズム

Page 21: 20170806 Discriminative Optimization

理論的な分析

定義1(単調性):

関数𝑓:ℝ𝑝 → ℝ𝑝が全ての𝐱 ∈ ℝ𝑝において 𝐱 − 𝐱∗T 𝑓 𝐱 ≥ 0

を満たすならば、𝑓 𝐱 は𝐱∗ ∈ ℝ𝑝

において単調(増加/減少)である

定理1:

訓練セット 𝐱0(𝑖), 𝐱∗

(𝑖), 𝐡(𝑖)

𝑖=1

𝑁において෩𝐃𝐡(𝑖) 𝐱∗

(𝑖)が単調

ならば、Algorithm 1は各イテレーションで必ず以下を満たす

𝑖=1

𝑁

𝐱∗(𝑖)− 𝐱𝑘+1

(𝑖) 2<

𝑖=1

𝑁

𝐱∗(𝑖)− 𝐱𝑘

(𝑖) 2

Page 22: 20170806 Discriminative Optimization

検出

Page 23: 20170806 Discriminative Optimization

検出

まだ更新量が大きい場合はもう少し𝐃𝐾で更新を続ける

K回パラメータを更新

Page 24: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘 モデル点群の有る点𝑚1の法線方向を算出

モデル

シーン

Page 25: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘 モデル点群の有る点𝑚1の法線方向を算出

法線方向側にある点群をFrontとする。

モデル

シーン

Page 26: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘 モデル点群の有る点𝑚1の法線方向を算出

法線方向側にある点群をFrontとする。

法線方向と反対側の点群をBackとする。

モデル

シーン

Page 27: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘 𝑚1からFront各点までの距離のガウス関数の和を算出

Page 28: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘 𝑚1からBack各点までの距離のガウス関数の和を算出

Page 29: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘

モデル上の全ての点について同様に計算し、モデルの点数x2次元の特徴量を得る。

Page 30: 20170806 Discriminative Optimization

特徴量𝐡 𝐱𝑘

モデル上の全ての点について同様に計算し、モデルの点数x2次元の特徴量を得る。

Page 31: 20170806 Discriminative Optimization

高速化の工夫

毎回特徴量を計算すると遅い

モデルとその周辺の空間をグリッド上に分割し、各グリッドにおける𝐡を事前に計算しておく

実行時はシーン点群中の点と最も近いグリッドの𝐡を使用

10−6以下の値は0とすることでメモリ削減

精度を保ったまま6-20倍の高速化

Page 32: 20170806 Discriminative Optimization

実験

ICP、IRLS、CPD、GMMRegの4つのベースラインと比較

処理時間を評価

Intel i7-4790 3.60GHz + 16GB RAM

DOの実装はMatlab

トレーニング

モデルに対して400-700点ほどサンプリング

ランダムに回転/移動

ノイズおよびOutlierを付与

いくつか欠損のあるシーンを作成

30000学習データを生成

K=30

Page 33: 20170806 Discriminative Optimization

合成3Dデータでの比較

Page 34: 20170806 Discriminative Optimization

レンジスキャンデータ

UWAデータセット

Page 35: 20170806 Discriminative Optimization

3D Object Tracking

Page 36: 20170806 Discriminative Optimization

まとめ

Discriminative Optimization (DO)の提案

訓練データからパラメータ空間におけるアップデートの方向を直接算出

効率的かつロバスト

2Dおよび3Dの点群レジストレーションにおいてstate-of-the-

artの手法を大幅に上回る

Future Work

モデルごとのトレーニングが不要な特徴量の設計

点群レジストレーション以外の分野への応用(non-rigid

registration, camera calibration, fitting shape models to videos)