Slide 1

Slide 1 text

AI GO株式会社 宮澤 一之 GeoCalib: Learning Single-image Calibration with Geometric Optimization CV輪講

Slide 2

Slide 2 text

AI 2 自己紹介 宮澤 一之 GO 株式会社 AI 技術開発部 グループマネージャー @kzykmyzw 経歴 April 2019 - March 2020 AI研究開発エンジニア@DeNA April 2010 - March 2019 主任研究員@三菱電機 March 2010 博士@東北大学 Data-Centric AI コミュニティを 運営し定期的に勉強会を開催中

Slide 3

Slide 3 text

AI 3 項目 01|透視投影モデル 02|カメラキャリブレーション 03|GeoCalib 01, 02の参考資料 • ディジタル画像処理編集委員会, ディジタル画像処理[改訂第二版](図を引用) • 徐, 辻, 3次元ビジョン • 延原, 高橋, SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~ • R. Hartley, A. Zisserman, Multiple View Geometry in Computer Vision

Slide 4

Slide 4 text

AI 4 透視投影モデル X Z x O 1 𝑥 = 𝑋 𝑍 Y Z y O 1 𝑦 = 𝑌 𝑍 ' 𝒙~ 𝑰|𝟎 - 𝑿 𝑠 𝑥 𝑦 1 = 1 1 0 0 0 1 0 0 0 1 3 0 0 0 𝑋 𝑌 𝑍 1 画像平面 1

Slide 5

Slide 5 text

AI 5 透視投影モデルの一般化 f

Slide 6

Slide 6 text

AI 6 ワールド座標 → カメラ座標 𝑋 𝑌 𝑍 = 𝑹 𝑋! 𝑌! 𝑍! + 𝒕 - 𝑿~ 𝑹 𝒕 𝟎" 1 - 𝑿# f

Slide 7

Slide 7 text

AI 7 カメラ座標 → 正規化画像座標 ' 𝒙~ 𝑰|𝟎 - 𝑿 f

Slide 8

Slide 8 text

AI 8 正規化画像座標 → 画像座標 (単位 mm*) (単位 pixel) * cmやmでも構わない u v x y cu cv θ (cu , cv ):光軸と画像面の交点(画像中心) θ:u 軸と v 軸のなす角度 δu :横方向の画素の物理的な間隔 δv :縦方向の画素の物理的な間隔 θ = 90°(撮像素子に歪みはない) δu = δv (画素は正方形) とみなす f

Slide 9

Slide 9 text

AI 9 正規化画像座標 → 画像座標 (単位 mm*) (単位 pixel) * cmやmでも構わない 𝑥 = 𝛿 𝑢 − 𝑐$ 𝑓 𝑦 = 𝛿 𝑣 − 𝑐% 𝑓 𝑢 = 𝑓 𝛿 𝑥 + 𝑐$ 𝑣 = 𝑓 𝛿 𝑦 + 𝑐% 𝑢 𝑣 1 = ⁄ 𝑓 𝛿 0 𝑐$ 0 ⁄ 𝑓 𝛿 𝑐% 0 0 1 𝑥 𝑦 1 ' 𝒎~𝑨' 𝒙 f / δ を改めて f(単位は pixel)と表記することも多い f

Slide 10

Slide 10 text

AI 10 ワールド座標 → 画像座標 (単位 mm*) (単位 pixel) * cmやmでも構わない ' 𝒎~𝑨' 𝒙 - 𝑿~ 𝑹 𝒕 𝟎" 1 - 𝑿# ' 𝒙~ 𝑰|𝟎 - 𝑿 ' 𝒎~𝑨 𝑰|𝟎 𝑹 𝒕 𝟎" 1 - 𝑿# ~𝑨 𝑹|𝒕 - 𝑿# 𝑷 透視投影行列 (3 x 4 の行列) ワールド座標 カメラ座標 正規化画像座標 画像座標 f

Slide 11

Slide 11 text

AI 11 (幾何学的)カメラキャリブレーション (単位 mm*) (単位 pixel) * cmやmでも構わない ' 𝒎~𝑨 𝑰|𝟎 𝑹 𝒕 𝟎" 1 - 𝑿# ~𝑨 𝑹|𝒕 - 𝑿# 内部キャリブレーション:内部パラメータ A の推定 外部キャリブレーション:外部パラメータ R, t の推定 ' 𝒎~𝑨' 𝒙 - 𝑿~ 𝑹 𝒕 𝟎" 1 - 𝑿# ' 𝒙~ 𝑰|𝟎 - 𝑿 ワールド座標 カメラ座標 正規化画像座標 画像座標 f

Slide 12

Slide 12 text

AI 12 レンズ歪み(OpenCV で利用されているモデル) 樽型歪み (barrel distortion) 糸巻き型歪み (pincushion distortion) 𝑥!"#$%&$'! = 𝑥 1 + 𝑘( 𝑟) + 𝑘) 𝑟* + 𝑘+ 𝑟, + 2𝑝( 𝑥𝑦 + 𝑝) 𝑟) + 2𝑥) 𝑦!"#$%&$'! = 𝑦 1 + 𝑘( 𝑟) + 𝑘) 𝑟* + 𝑘+ 𝑟, + 𝑝( 𝑟) + 2𝑦) + 2𝑝) 𝑥𝑦 𝑢 𝑣 1 = ⁄ 𝑓 𝛿 0 𝑐$ 0 ⁄ 𝑓 𝛿 𝑐% 0 0 1 𝑥&'()*+),& 𝑦&'()*+),& 1 半径方向の歪み (radial distortion) 円周方向の歪み (tangential distortion) レンズ 撮像素子 𝑟) = 𝑥) + 𝑦) 歪み係数:k1 , k2 , k3 , p1 , p2 (内部パラメータに含まれる) 参考:OpenCVのカメラ歪みシミュレータを作ってみた

Slide 13

Slide 13 text

AI 13 カメラキャリブレーション手法 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 14

Slide 14 text

AI 14 カメラキャリブレーション手法 Zhang の手法 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 15

Slide 15 text

AI 15 Zhang の手法 http://vigir.missouri.edu/Images/Caltech-Toolbox/htmls/example.html • 2000 年に Zhengyou Zhang が提案した 最も有名なキャリブレーション手法 • 既知の平面パターン(格子間隔が既知の チェッカーボードなど)を複数の方向か ら撮影した画像を用いる • 平面パターン上に座標系を定義し、撮影 画像において格子のコーナーを検出する ことでコーナーについて 3D-2D 対応が 得られる • 得られた対応関係からホモグラフィ行列 を求め、これを分解することで内部・外 部パラメータを求める • 最低限必要な画像は 3 枚だが、実際には 数十枚の画像を用いることが多い Z. Zhang, "A flexible new technique for camera calibration," PAMI, 2000.

Slide 16

Slide 16 text

AI 16 カメラキャリブレーション手法 複数の平面パターンを 一度に撮影して Zhang の手法を使う 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 17

Slide 17 text

AI 17 カメラキャリブレーション手法 8 点法 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 18

Slide 18 text

AI 18 8 点法 𝒎 𝒎! • ある点 P を2つの視点からカメラで観測したとき、それぞ れのカメラの中心 C、C’ と P を通る平面をエピポーラ平面、 エピポーラ平面が画像と交わる線をエピポーラ線と呼ぶ • 点 P を2つのカメラに投影した点 m と m’ との関係は基礎 行列 F を使ったエピポーラ方程式で表される • 基礎行列 F にはカメラの内部パラメータ、外部パラメータ の情報が含まれており、特異値分解などによってそれらを 取り出すことができる* • 基礎行列 F は m と m’ のペアが最低 8 組あれば求めること ができ、画像間で 8 点(以上)の対応点を見つけて F を推 定するアルゴリズムは 8 点法と呼ばれる ' 𝒎-"𝑭 ' 𝒎 = 0 H. C. Longuet-Higgins, "A computer algorithm for reconstructing a scene from two projections," Nature, 1981. * F の自由度の都合により全てのパラメータを求めることはできず、また、 視点間の動きによってはパラメータを推定できないことがある(臨界運動)

Slide 19

Slide 19 text

AI 19 カメラキャリブレーション手法 消失点に基づく手法 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 20

Slide 20 text

AI 20 消失点に基づく手法 • 互いに直交する 3 つの消失点がわかれば、カ メラの内部パラメータを推定することができる • 画像から抽出した線分を 3 つの支配的な方向 に分類し、それらの交点として消失点を求めて カメラキャリブレーションを行う • 人工物を構成する平面は、1 つの直交座標系の いずれかの平面に並行であるというマンハッタ ンワールド仮説に基づくため、仮説から大きく 外れるシーンでは使えない マンハッタンの航空写真 B. Caprile and V. Torre, “Using vanishing points for camera calibration,” IJCV, 1990. J. Kosecka and W. Zhang, “Video compass,” ECCV, 2002.

Slide 21

Slide 21 text

AI 21 カメラキャリブレーション手法 Perspective Fields 既知パターン 使う 使わない 撮影数 複数 1枚

Slide 22

Slide 22 text

AI 22 Perspective Fields Up-vector up Latitude φp P p p = Π(P) n 重力方向 • カメラの視点に関する情報を画像の画素ごとに表現するカメラのパラメータ化手法 • 各画素に対応する 3 次元点における上向きベクトル(重力方向の逆)と、その点への視線 が水平面となす角度(緯度)を保持 • 透視投影以外のカメラモデルにも対応し、クロップなどの画像編集にもロバスト L. Jin et al., “Perspective fields for single image camera calibration,” CVPR, 2023. https://www.youtube.com/watch?v=uOmTwvKreM4 -tg

Slide 23

Slide 23 text

AI 23 Perspective Fields • SegFormer ベースのモデルで画像から Perspective Fields を予測 • 真値は 360° パノラマ画像から生成 • 回帰ではなく、上向きベクトルと緯度を離散 化してクロスエントロピーロスで学習 • Perspective Fields から一般的なカメ ラパラメータへの変換は CNN で行う • 推定した Perspective Fields を CNN に入力し、ロール、ピッチ、FoV、画 像中心の座標を予測 • パラメータごとの L1 ロスの合計で学習 L. Jin et al., “Perspective fields for single image camera calibration,” CVPR, 2023.

Slide 24

Slide 24 text

24 ECCV 2024 Paper | Code | Demo | Colab | Video

Slide 25

Slide 25 text

AI 25 アーキテクチャ • カメラキャリブレーションのための視覚的な手がかりとして Perspective Fields を予測し、 その結果から最適化問題を解くことでカメラパラメータを推定 • 全体を black-box 化して DNN に全てを学習させるのではなく、すでに十分に理解されて いるカメラ幾何に関する知識を最適化プロセスとして導入 • カメラパラメータの一部が既知である場合は、それを最適化プロセスにおける事前情報と して使うことで残りの未知パラメータの推定精度を改善

Slide 26

Slide 26 text

AI 26 Perspective Field と信頼度の予測 • SegNeXt を使って画像から Perspective Fields(上向きベクトルと緯度)を予測 • 加えて、予測した Perspective Fields がどれだけ信頼できるかを画素ごとに出力 ! 𝐮 # 𝜑 𝜎𝐮 𝜎"

Slide 27

Slide 27 text

AI 27 Perspective Field からのカメラパラメータの推定 • 予測した Perspective Fields になるべく近いものを生成するカメラパラメータ θ を求める • カメラパラメータ θ はカメラ座標系における重力方向ベクトル g と焦点距離 f、歪み係数 k • 非線形最小二乗法(Levenberg–Marquardt 法)により次式の目的関数を最小化する ! 𝐮 # 𝜑 𝜎𝐮 𝜎" θ が生成する Perspective Fields と DNN が予測した Perspective Fields の二乗誤差に信頼度をかけたもの

Slide 28

Slide 28 text

AI と をスタック 28 LM 法による最適化 目的関数 上向きベクトルは、上方向に沿った投影関数の方向微分と同じ向きを持つ ( ) LM 法による最適化では、各ステップでの更新 δ を次式を解くことで求める 半径方向歪みモデル σu と σφ を対角方向にスタック

Slide 29

Slide 29 text

AI 29 学習 ! 𝐮 # 𝜑 𝜎𝐮 𝜎" 𝜎𝐮 ! 𝐮 − 𝐮 ' 𝜽 # 𝜎" # 𝜑 − 𝜑 ' 𝜽 # ) 𝜽 − ' 𝜽 # • カメラパラメータと Perspective Fields の誤差の重み付き和をロスとして DNN を学習 • LM 法は最適化の反復プロセスを unroll するか、陰函数微分を使うことで backprop 可能 • 信頼度は LM 法による最適化が正しい解に収束するのを促すよう陰に学習される

Slide 30

Slide 30 text

AI 30 実用上の利点 任意の歪みモデルが利用可能 推論時の最適化に使う歪みモデルは、学習時のモデルと同一である必要はない 部分的なキャリブレーションが可能 既知のカメラパラメータがあるならば、最適化時にそれをハードな制約あるいはソフトな事 前情報として使うことで残りの未知パラメータの推定精度を改善できる 複数の画像にまたがる最適化が可能 同じカメラで異なるシーンを撮影した場合、画像ごとに重力方向を推定しつつ、内部パラメ ータは共通として最適化ができる(異なるカメラで同じシーンを撮影した場合は逆が可) カメラパラメータごとに不確実性の評価が可能 LM法で得られる共分散行列から、推定したカメラパラメータごとに不確実性を評価できる

Slide 31

Slide 31 text

AI 31 学習データセット HDRMAPS Poly Haven Laval Indoor HDR Dataset OpenPano パノラマ画像 2,900 枚 Train 37,015 枚 Val 2,100 枚 Test 2,128 枚 • 既存の公開されているパノラマ画像から選定した 2.9k 枚のパノラマ画像で新たなデータ セット OpenPano を構築 • パノラマ画像から様々なカメラパラメータで投影することで 42k の学習/評価画像を生成 水平線(緯度 0°)

Slide 32

Slide 32 text

AI 32 性能比較結果 ~レンズ歪みなし~ 学習ベース手法 直線/消失点ベース手法 * OpenPano で学習 • 学習したデータセット (OpenPano) とは異なるデータセットで他手法との性能を比較 • 重力方向は Roll と Pitch、内部パラメータは FoV の誤差で評価 • 一般的に古典的手法は高精度だがロバスト性が低く、学習ベース手法はその逆という特性 を持つが、GeoCalib は双方の長所を取り入れることができている

Slide 33

Slide 33 text

AI 33 性能比較結果 ~レンズ歪みあり~ GeoCalibで推定した歪み係数による歪み補正の結果 • レンズ歪みを含むデータセットで FoV および歪み係数の推定精度を他手法と比較 • GeoCalib は歪みのないピンホールカメラモデルのみで学習した場合でも他手法を上回り、 さらに歪みを含む画像で学習することで性能が向上

Slide 34

Slide 34 text

AI 34 Ablation Study • Perspective Fields の提案論文で使われた PerspectiveNet+ParamNet に対し、本論文 での改善を 1 つずつ加えながら性能の変化を調査 • 特に不確実性の学習によるゲインが大きく、画像中でカメラ視点に関する情報を多く持つ 領域にフォーカスし、それ以外の領域(テクスチャのない領域など)を無視することが効 果的であることを示唆

Slide 35

Slide 35 text

AI 35 部分的なキャリブレーション • カメラパラメータの一部が既知である場合、最適化においてそれらを固定し、残りの未知 パラメータだけを推定することで精度が改善

Slide 36

Slide 36 text

AI 36 複数の画像にまたがる最適化 • 内部パラメータが共通のカメラで撮影された複数の画像から得た Perspective Fields をま とめて最適化することでキャリブレーション精度が改善 • それぞれの画像で個別に推定したパラメータを単純に平均化しても改善は見られない

Slide 37

Slide 37 text

AI 37 まとめと所感 • Perspective Fields は、画素ごとに 3 次元空間における上向きベクトル(重力方向の逆) と、視線が水平面となす角度(緯度)を保持するカメラのパラメータ化手法 • 従来は DNN で black-box 化されていた Perspective Fields からのカメラパラメータ推定 にカメラ幾何の知識に基づく最適化を導入することで性能を改善 • DNN を使いつつ、すでにモデルベースで十分であることがわかっている箇所に適切にモデ ルを組み入れることで DNN のキャパシティの無駄遣いを防いで性能を上げるというアプ ローチは納得性もあり面白い • 学習ベースとモデルベースの組み合わせという観点で見れば特にカメラ幾何に関連した分 野では成功例が数多くある (e.g., MVSNet, DROID-SLAM)