Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learning to Solve Hard Minimal Problems

Learning to Solve Hard Minimal Problems

2022/08/07に開催された第11回全日本コンピュータビジョン勉強会「CVPR2022読み会」(前編)で発表した資料です。

https://kantocv.connpass.com/event/253622/

Takuya MINAGAWA

August 07, 2022
Tweet

More Decks by Takuya MINAGAWA

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 紹介する論文
    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
     選んだ理由:

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. 5点アルゴリズム
    10
     5点中任意の2点𝑘、𝑚を選択
     𝜆𝑘,1
    𝑣𝑘,1
    − 𝜆𝑚,1
    𝑣𝑚,1
    2
    = 𝜆𝑘,2
    𝑣𝑘,2
    − 𝜆𝑚,2
    𝑣𝑚,2
    2

    5
    2
    = 10個の連立方程式を解き奥行𝜆𝑘,𝑖
    を求める
    𝑘、𝑚間のカメラ1から見た距離 𝑘、𝑚間のカメラ2から見た距離
    10個程度の幾何学的にも整合性の取れた似の解が現れる

    View Slide

  11. 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個程度の幾何学的にも整合性の取れた似の解が現れる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 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パラメータ
    ただし𝝀𝟏,𝟏
    = 𝟏

    View Slide

  19. 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パラメータ
    ただし 𝝀𝟏,𝟏
    = 𝟏

    View Slide

  20. ホモトピー継続 (Homotopy Continuation)
    20
    1. 問題𝑝から、始点となる問題/解のペア(𝑝0
    , 𝑠0
    ) ∈ 𝑀を選

    2. 問題空間𝑃上で𝑝0
    から𝑝へのパスを算出
    3. 多様体𝑀上で上記パスを追跡することで解𝑠を算出
    問題のパス
    解のパス
    𝑠0
    𝑝0

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. アンカーの選択
    27
     ETH 3D DatasetのOfficeおよびTerrainsから1K, 4K, 10K,
    40Kの問題/解をサンプリングして学習データセット𝐷を作

     何個のアンカーでデータセット𝐷のどれだけの割合をカ
    バーできるか

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    Recall
    アンカーの学習
    データカバー率

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide