Slide 1

Slide 1 text

第11回全日本CV勉強会 CVPR2022読み会 Learning to Solve Hard Minimal Problems 2022/08/07 takmin

Slide 2

Slide 2 text

自己紹介 2 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ たくや) 博士(工学) 「コンピュータビジョン勉強会@関東」主催 株式会社フューチャースタンダード 技術顧問 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化) http://visitlab.jp

Slide 3

Slide 3 text

紹介する論文 3  Learning to Solve Hard Minimal Problems  Petr Hruby (ETH Zurich), Timothy Duff (University of Washington), Anton Leykin (Georgia Institude of Technology), Tomas Pajdla (Czech Technical University in Prague)  Best Paper  選んだ理由:

Slide 4

Slide 4 text

概要 4  5点アルゴリズムやScrantonアルゴリズムなどでカメラの 姿勢推定を行うには、複数の偽の解をもつ連立方程式 を解かなければならない。  RANSACの場合、1回のサンプリングごとに問題を解く  本手法では、以下の方法によって偽の解を避けて、高速 に(1つの問題を70μs以下で)解くことが出来る 1. 問題/解のペアを学習 2. 入力となる問題から、近い問題と解のペアを識別問題として 解く 3. 上記の問題/解のペアを始点として、問題/解空間を入力問 題まで追跡

Slide 5

Slide 5 text

カメラパラメータ算出の基礎 5  2台のカメラの相対位置が不明の時、各カメラの焦点と 対応点を結ぶ直線が交わるという条件を利用する カメラ1 カメラ2

Slide 6

Slide 6 text

カメラパラメータ算出の基礎 6  2台のカメラの相対位置が不明の時、各カメラの焦点と 対応点を結ぶ直線が交わるという条件を利用する →エピポーラ拘束 カメラ1 カメラ2 同一平面

Slide 7

Slide 7 text

5点アルゴリズム 7  5個の対応点から、2台のカメラ間の相対位置とそれぞ れの点の三次元座標を算出  カメラの内部パラメータは既知とする 5つのエピポーラ拘束を 満たすパラメータを算出 カメラ1 カメラ2

Slide 8

Slide 8 text

Scrantonアルゴリズム 8  4個の対応点から、3台のカメラ間の相対位置とそれぞ れの点の三次元座標を算出  カメラの内部パラメータは既知とする

Slide 9

Slide 9 text

カメラポーズ推定(=各点の奥行推定) 9 𝑣𝑘,𝑖 = 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 x y z 𝑋𝑘 = 𝜆𝑘,𝑖 𝑣𝑘,𝑖 = 𝜆𝑘,𝑖 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 𝐶𝑖 𝐶𝑖 : 𝑖番目のカメラ 𝑣𝑖,𝑘 : 𝑘番目の点の𝑖番目のカメラ画像上の座標(既知) 𝜆𝑘,𝑖 :𝑘番目の点の𝑖番目のカメラから見た奥行(未知) 𝑋𝑘 : 𝑘番目の点の三次元座標

Slide 10

Slide 10 text

5点アルゴリズム 10  5点中任意の2点𝑘、𝑚を選択  𝜆𝑘,1 𝑣𝑘,1 − 𝜆𝑚,1 𝑣𝑚,1 2 = 𝜆𝑘,2 𝑣𝑘,2 − 𝜆𝑚,2 𝑣𝑚,2 2  5 2 = 10個の連立方程式を解き奥行𝜆𝑘,𝑖 を求める 𝑘、𝑚間のカメラ1から見た距離 𝑘、𝑚間のカメラ2から見た距離 10個程度の幾何学的にも整合性の取れた似の解が現れる

Slide 11

Slide 11 text

Scrantonアルゴリズム 11  4点中任意の2点𝑘、𝑚を選択し、距離を比較  𝜆1,1 = 1の制約をパラメータ𝑙で緩和  𝜆𝑘,1 𝑣𝑘,1 − 𝜆𝑚,1 𝑣𝑚,1 2 = 𝜆𝑘,2 𝑣𝑘,2 − 𝜆𝑚,2 𝑣𝑚,2 2  𝑣1,1 + 𝑙[0; 1; 0] − 𝜆𝑚,1 𝑣𝑚,1 2 = 𝜆1,2 𝑣1,2 − 𝜆𝑚,2 𝑣𝑚,2 2 272個程度の幾何学的にも整合性の取れた似の解が現れる

Slide 12

Slide 12 text

RANSAC 12 対応点をランダムに サンプリング サンプリングされた点 からカメラポーズ推定 推定されたポーズを元に対 応点を他のカメラへ投影 誤差が閾値以内の点 (inlier)の数をカウント 最もinlierが多かった ポーズを採用 5点アルゴリズムなら5組 Scrantonなら4組 本手法の適用範囲 →偽の解を避ける

Slide 13

Slide 13 text

RANSACループ内の処理 13 従来手法 本手法

Slide 14

Slide 14 text

Solve&Pickアプローチ(従来法) 14 従来手法 本手法 画像中の対 応点をサンプ リング カメラポーズ 推定 ベストなポー ズを選択 最も良い解 を更新

Slide 15

Slide 15 text

Pick&Solveアプローチ(本手法) 15 従来手法 本手法 画像中の対 応点をサンプ リング 近い問題aを 識別 aを始点にカメラ ポーズsを追跡 最も良い解 を更新

Slide 16

Slide 16 text

問題-解 多様体𝑀 16 問題𝑝と解sのペア が作る多様体𝑀 問題𝑝が所属する ベクトル空間𝑃 𝑀を𝑃へ投影 𝜋: 𝑀 → 𝑃

Slide 17

Slide 17 text

問題-解 多様体𝑀 17 問題𝑝と解sのペア が作る多様体𝑀 問題𝑝が所属する ベクトル空間𝑃 𝑀を𝑃へ投影 𝜋: 𝑀 → 𝑃 例: 𝑥3 + 𝑎𝑥 + 𝑏 = 0 𝑝 = (𝑎, 𝑏) 𝑠 = 𝑥 問題𝑝によって1-3 個の解sを持つ

Slide 18

Slide 18 text

5点アルゴリズムの問題𝑝と解𝑠の定義 18 𝑣𝑘,𝑖 = 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 x y z 𝑋𝑘 = 𝜆𝑘,𝑖 𝑣𝑘,𝑖 = 𝜆𝑘,𝑖 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 𝐶𝑖 𝐶𝑖 : 𝑖番目のカメラ 𝑣𝑖,𝑘 : 𝑘番目の点の𝑖番目のカメラ画像上の座標(既知) 𝜆𝑘,𝑖 :𝑘番目の点の𝑖番目のカメラから見た奥行(未知) 𝑋𝑘 : 𝑘番目の点の三次元座標 𝑝 = (𝑥1,1 , 𝑥2,1 , 𝑥3,1 , 𝑥4,1 , 𝑥5,1 , 𝑦1,1 , 𝑦2,1 , 𝑦3,1 , 𝑦4,1 , 𝑦5,1 , 𝑥1,2 , 𝑥2,2 , 𝑥3,2 , 𝑥4,2 , 𝑥5,2 , 𝑦1,2 , 𝑦2,2 , 𝑦3,2 , 𝑦4,2 , 𝑦5,2 ) 𝑠 = (𝜆1,1 , 𝜆2,1 , 𝜆3,1 , 𝜆4,1 , 𝜆5,1 , 𝜆1,2 , 𝜆2,2 , 𝜆3,2 , 𝜆4,2 , 𝜆5,2 ) 5点の座標x2カメラ→20パラメータ 5点の奥行x2カメラ –1 →9パラメータ ただし𝝀𝟏,𝟏 = 𝟏

Slide 19

Slide 19 text

Scrantonアルゴリズムの問題𝑝と解𝑠の定義 19 𝑣𝑘,𝑖 = 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 x y z 𝑋𝑘 = 𝜆𝑘,𝑖 𝑣𝑘,𝑖 = 𝜆𝑘,𝑖 𝑥𝑘,𝑖 𝑦𝑘,𝑖 1 𝐶𝑖 𝐶𝑖 : 𝑖番目のカメラ 𝑣𝑖,𝑘 : 𝑘番目の点の𝑖番目のカメラ画像上の座標(既知) 𝜆𝑘,𝑖 :𝑘番目の点の𝑖番目のカメラから見た奥行(未知) 𝑋𝑘 : 𝑘番目の点の三次元座標 𝑝 = (𝑥1,1 , 𝑥2,1 , 𝑥3,1 , 𝑥4,1 , 𝑦1,1 , 𝑦2,1 , 𝑦3,1 , 𝑦4,1 , 𝑥1,2 , 𝑥2,2 , 𝑥3,2 , 𝑥4,2 , 𝑦1,2 , 𝑦2,2 , 𝑦3,2 , 𝑦4,2 , 𝑥1,3 , 𝑥2,3 , 𝑥3,3 , 𝑥4,3 , 𝑦1,3 , 𝑦2,3 , 𝑦3,3 , 𝑦4,3 ) 𝑠 = (𝜆1,1 , 𝜆2,1 , 𝜆3,1 , 𝜆4,1 , 𝜆1,2 , 𝜆2,2 , 𝜆3,2 , 𝜆4,2 , 𝜆1,3 , 𝜆2,3 , 𝜆3,3 , 𝜆4,3 ) 4点の座標x3カメラ→24パラメータ 4点の奥行x3カメラ –1 →11パラメータ ただし 𝝀𝟏,𝟏 = 𝟏

Slide 20

Slide 20 text

ホモトピー継続 (Homotopy Continuation) 20 1. 問題𝑝から、始点となる問題/解のペア(𝑝0 , 𝑠0 ) ∈ 𝑀を選 択 2. 問題空間𝑃上で𝑝0 から𝑝へのパスを算出 3. 多様体𝑀上で上記パスを追跡することで解𝑠を算出 問題のパス 解のパス 𝑠0 𝑝0

Slide 21

Slide 21 text

Solve&Pick VS Pick&Solve 21 問題𝑝を解いて解集合𝑆を計算 解集合𝑆から最適な𝑠を選択 Solve&Pick (従来法)

Slide 22

Slide 22 text

Solve&Pick VS Pick&Solve 22 問題𝑝を解いて解集合𝑆を計算 解集合𝑆から最適な𝑠を選択 問題𝑝からアンカーとなる問 題/解のペア(𝑝0 , 𝑠0 )を選択 (𝑝0 , 𝑠0 )から𝑝の解𝑠をホモト ピー継続を用いて解く Solve&Pick (従来法) Pick&Solve (本手法)

Slide 23

Slide 23 text

Solve&Pick VS Pick&Solve 23 問題𝑝を解いて解集合𝑆を計算 解集合𝑆から最適な𝑠を選択 問題𝑝からアンカーとなる問 題/解のペア(𝑝0 , 𝑠0 )を選択 (𝑝0 , 𝑠0 )から𝑝の解𝑠をホモト ピー継続を用いて解く Solve&Pick (従来法) Pick&Solve (本手法) 識別器𝜎を学習

Slide 24

Slide 24 text

Solverの構築 24 問題𝑝からアンカーとなる問題/解のペア(𝑝0 , 𝑠0 ) を算出する識別器𝜎を学習 1. 3Dモデルからデータセット𝐷をサンプリング 2. データセット𝐷からアンカー𝐴を抽出 3. 問題𝑝を与えたとき、始点𝑝(𝑝0 , 𝑠0 ) ∈ 𝐴を出 力する識別器𝜎を学習

Slide 25

Slide 25 text

Solverの構築 25 問題𝑝からアンカーとなる問題/解のペア(𝑝0 , 𝑠0 ) を算出する識別器𝜎を学習 1. 3Dモデルからデータセット𝐷をサンプリング 2. データセット𝐷からアンカー𝐴を抽出 3. 問題𝑝を与えたとき、始点𝑝(𝑝0 , 𝑠0 ) ∈ 𝐴を出 力する識別器𝜎を学習

Slide 26

Slide 26 text

学習データの作成 26 カメラと3D Model上の点のサン プリング • 5pt Algorithm: • Camera x2, Point x5 • Scranton: • Camera x3, Point x4 ETH 3D Dataset サンプリングした点を各 カメラへ投影し、問題と 解のペア(𝑝, 𝑠)を生成 サンプリングした 𝑝𝑖 ,𝑠𝑖 から他のペア(𝑝𝑗 , 𝑠𝑗 )へ 追跡可能か調査 追跡可能な場合、 𝑝𝑖 , 𝑠𝑖 と(𝑝𝑗 , 𝑠𝑗 )間に エッジを生成 (𝑝, 𝑠)を頂点、追跡 可能性をエッジとし たグラフ生成 グラフ全体をカ バーする頂点 をアンカー𝐴と する

Slide 27

Slide 27 text

アンカーの選択 27  ETH 3D DatasetのOfficeおよびTerrainsから1K, 4K, 10K, 40Kの問題/解をサンプリングして学習データセット𝐷を作 成  何個のアンカーでデータセット𝐷のどれだけの割合をカ バーできるか

Slide 28

Slide 28 text

アンカーの選択 28  アンカー作成をETH 3DデータセットのSourceドメインで 行い、他のドメインをどれだけカバーできるかの調査  Office + Terrainsが最もカバー率が高い

Slide 29

Slide 29 text

アンカーの選択 29  アンカー作成をETHデータセットのSourceドメインで行い、 他のドメインをどれだけカバーできるかの調査  Office + Terrainsが最もカバー率が高い Office Terrains

Slide 30

Slide 30 text

Solverの構築 30 問題𝑝からアンカーとなる問題/解のペア(𝑝0 , 𝑠0 ) を算出する識別器𝜎を学習 1. 3Dモデルからデータセット𝐷をサンプリング 2. データセット𝐷からアンカー𝐴を抽出 3. 問題𝑝を与えたとき、始点𝑝(𝑝0 , 𝑠0 ) ∈ 𝐴を出 力する識別器𝜎を学習

Slide 31

Slide 31 text

始点識別器σ(𝑝)の学習 31 カメラと3D Model上の点のサン プリング • 5pt Algorithm: • Camera x2, Point x5 • Scranton: • Camera x3, Point x4 ETH 3D Dataset サンプリングした点を各 カメラへ投影し、問題と 解のペア(𝑝, 𝑠)を生成 アンカー𝐴の各問題/解 𝑝0 , 𝑠0 から、サンプリ ングした 𝑝𝑖 , 𝑠𝑖 へ追跡 可能か調査 𝑝𝑖 へ追跡可能なすべて のアンカーを𝑝𝑖 のラベ ルとする。追跡可能な アンカーが無い場合 TRASHラベルをつける 入力が𝑝𝑖 、出力が 𝐴 + 1クラスのMLPを学習

Slide 32

Slide 32 text

始点識別器σ(𝑝)の学習 32  識別器の評価  評価データ:  delivery_area  facade  学習データ  上記以外の23シーケンス  始点 𝑝0 , 𝑠0 の選択  B1:すべてのアンカー (𝑚 = 𝐴 )  B2: ユークリッド距離が最 も近いアンカー (𝑚 = 1 )  B3: マハラノビス距離が最 も近いアンカー (𝑚 = 1 )  MLP: MLPの出力上位m個  MLPT: MLPの出力上位1 個 Recall アンカーの学習 データカバー率

Slide 33

Slide 33 text

Solverの実行 33 問題𝑝を解く 1. 問題𝑝に対し正規化や対応点順序入れ 替え等の前処理 2. 識別器𝜎を用い、アンカー𝐴から始点 𝜎 𝑝 = (𝑝0 , 𝑠0 )を選択 3. (𝑝0 , 𝑠0 )を始点としてホモトピー継続で 問題𝑝の解𝑠を算出

Slide 34

Slide 34 text

ホモトピー継続 34  問題のパスが 𝑝 𝑡 = 1 − 𝑡 𝑝0 + 𝑡𝑝 で与えられた ときの解𝑠 𝑡 を𝑠0 からステップΔ𝑡毎に求めていく(追跡) 問題のパス 解のパス 𝑠0 𝑝0 ルンゲ=クッタ法で予測 (predictor) ニュートン法で修正 (corrector) 𝑠 𝑝

Slide 35

Slide 35 text

実験 35  CVPR2020 RANSAC Tutorial Dataset  4950 Camera Pairs  画像間の対応点は与えられている(ノイズおよび誤対応含む)  Rotationの誤差が10度以内の割合

Slide 36

Slide 36 text

まとめ 36  機械学習とホモトピー継続を用いて偽の解を 避けて幾何学的な最適化問題を高速に解く 手法を提案  問題と解のペアの多様体𝑀を生成  問題𝑝を与えたとき、始点となる𝑀上の点(𝑝0 , 𝑠0 ) を出力する識別器𝜎を学習  ホモトピー継続によって(𝑝0 , 𝑠0 )から問題𝑝に対す る解𝑠を算出