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

Matrix-Free Shared Intrinsics Bundle Adjustment...

Matrix-Free Shared Intrinsics Bundle Adjustment (CVPR 2025)

- 従来の Bundle Adjustment (BA) は,各カメラの内部パラメータを個別に最適化するため Hessian が肥大化し,計算・メモリ両面でボトルネックとなる
- 本研究は,全カメラで内部パラメータを共有する(shared intrinsics)という実用的前提を導入し, 巨大なHessian行列 (特にランドマークとカメラパラメータの混合項)を事前に構築せず、必要なときに逐次的に演算を行うMatrix-Free方式を採用し、高速な反復解を維持しながらメモリ消費を大幅に削減している。

Avatar for Spatial AI Network

Spatial AI Network

July 09, 2025
Tweet

More Decks by Spatial AI Network

Other Decks in Technology

Transcript

  1. hybrid method (MPM) FEM(quasi-static model) Ayano Kaneda - ExaWizards Inc.

    機械学習エンジニア - 202403 : 博⼠後期課程(⼯学) 早稲⽥⼤学 - 研究分野 - CGにおける物理シミュレーション, 数値最適化, 微分幾何, 機械学習 - 最近は3d reconstruction における数値最適化問題 - MIRU 2025 にてNR-ICPについてポスター発表します 機械学習を⽤いたPCGの⾼速化
  2. Shared vs Non-Shared Non-shared 𝑐!"# 𝑐!$# Shared Intrinsic 共通 c

    𝑐! 最適化する変数の数 ランドマーク カメラの外部パラメタ カメラの内部パラメタ Not Shared 3M 6N kN Shared 3M 6N k ランドマーク数 : M 視点数 : N 各内部パラメタ数: k
  3. Bundle Adjustmentが何を最適化しているかについて(定量的) General Bundle Adjustment 𝐹 𝒄!, … , 𝒄",

    𝑝, 𝑙 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗%; 𝒑#, 𝒄#) ( ( 𝐼 = 1, … , 𝑁 𝐽 = 1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒑 = [𝒑𝟏 ; … ; 𝒑𝑵 ] 全てのカメラ外部パラメタ 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒍 = [𝐗𝟏 ; … ; 𝐗) ] 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( ランドマーク 全てのランドマーク Shared Intrinsic Bundle Adjustment
  4. Bundle Adjustmentが何を最適化しているかについて(定量的) 𝐼 = 1, … , 𝑁 𝐽 =

    1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒙 = 𝒄 𝒑 𝒍 ∈ ℝ*+,-),.+ ランドマーク 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( Shared Intrinsic Bundle Adjustment
  5. Bundle Adjustmentが何を最適化しているかについて(定量的) 𝐼 = 1, … , 𝑁 𝐽 =

    1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒆!" (𝒙) 𝒙 = 𝒄 𝒑 𝒍 ∈ ℝ*+,-),.+ 𝒆!" 𝒙 + ∆ ≈ 𝒆!" 𝒙 + 𝐽#$ ∆ ランドマーク 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( Shared Intrinsic Bundle Adjustment テイラー展開 𝐹 𝒙 + ∆ ≈ 1 2 7 !," ∈' 𝒆!" − 𝐽#$ ∆ ( ( = 1 2 7 !," ∈' 𝒆!" ( ( + 2∆)𝐽#$ )𝒆!" + ∆)𝐽#$ )𝐽!" ∆
  6. Bundle Adjustmentが何を最適化しているかについて(定量的) 𝐼 = 1, … , 𝑁 𝐽 =

    1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒆!" (𝒙) 𝒙 = 𝒄 𝒑 𝒍 ∈ ℝ*+,-),.+ 𝒆!" 𝒙 + ∆ ≈ 𝒆!" 𝒙 + 𝐽#$ ∆ ランドマーク 𝐹 𝒙 + ∆ ≈ 1 2 7 !," ∈' 𝒆!" − 𝐽#$ ∆ ( ( = 1 2 7 !," ∈' 𝒆!" ( ( + 2∆)𝐽#$ )𝒆!" + ∆)𝐽#$ )𝐽!" ∆ ∆によって微分 𝜕 𝜕∆ 1 2 𝒆/0 𝒆/0 1 = 0 𝜕 𝜕∆ ∆1𝐽23 1𝒆/0 = 𝐽23 1𝒆/0 𝜕 𝜕∆ 1 2 ∆1𝐽23 1𝐽/0 ∆ = 𝐽23 1𝐽/0 ∆ 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( Shared Intrinsic Bundle Adjustment テイラー展開 @ /,0 ∈6 𝐽23 1𝐽/0 ∆ = − @ /,0 ∈6 𝐽23 1𝑒/0
  7. Bundle Adjustmentが何を最適化しているかについて(定量的) 𝐼 = 1, … , 𝑁 𝐽 =

    1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒆!" (𝒙) 𝒙 = 𝒄 𝒑 𝒍 ∈ ℝ*+,-),.+ 𝒆!" 𝒙 + ∆ ≈ 𝒆!" 𝒙 + 𝐽#$ ∆ ( 𝐽C𝐽 + 𝜆 𝐷) ランドマーク 𝐹 𝒙 + ∆ ≈ 1 2 7 !," ∈' 𝒆!" − 𝐽#$ ∆ ( ( = 1 2 7 !," ∈' 𝒆!" ( ( + 2∆)𝐽#$ )𝒆!" + ∆)𝐽#$ )𝐽!" ∆ ∆によって微分 𝜕 𝜕∆ 1 2 𝒆/0 𝒆/0 1 = 0 𝜕 𝜕∆ ∆1𝐽23 1𝒆/0 = 𝐽23 1𝒆/0 𝜕 𝜕∆ 1 2 ∆1𝐽23 1𝐽/0 ∆ = 𝐽23 1𝐽/0 ∆ @ /,0 ∈6 𝐽23 1𝐽/0 ∆ = − @ /,0 ∈6 𝐽23 1𝑒/0 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( Shared Intrinsic Bundle Adjustment テイラー展開 安定性のためダンピング項の追加 𝐷 = 𝑑𝑖𝑎𝑔( 𝐽)𝐽) ∆ = − 𝐽C𝑒
  8. Bundle Adjustmentが何を最適化しているかについて(定量的) 𝐼 = 1, … , 𝑁 𝐽 =

    1, … , 𝑀 Ω ⊆ 𝐼 × 𝐽 𝒑# = 𝐑# , 𝒕# ∈ SE(3) 𝐗% ∈ ℝ* 𝒄𝒊 = 𝑓$ , 𝑓% , 𝑐$ , 𝑐% , 𝑘& ' ∈ ℝ( 観測 𝒆!" (𝒙) 𝒙 = 𝒄 𝒑 𝒍 ∈ ℝ*+,-),.+ 𝒆!" 𝒙 + ∆ ≈ 𝒆!" 𝒙 + 𝐽#$ ∆ ランドマーク 𝐹 𝒙 + ∆ ≈ 1 2 7 !," ∈' 𝒆!" − 𝐽#$ ∆ ( ( = 1 2 7 !," ∈' 𝒆!" ( ( + 2∆)𝐽#$ )𝒆!" + ∆)𝐽#$ )𝐽!" ∆ ∆によって微分 𝜕 𝜕∆ 1 2 𝒆/0 𝒆/0 1 = 0 𝜕 𝜕∆ ∆1𝐽23 1𝒆/0 = 𝐽23 1𝒆/0 𝜕 𝜕∆ 1 2 ∆1𝐽23 1𝐽/0 ∆ = 𝐽23 1𝐽/0 ∆ @ /,0 ∈6 𝐽23 1𝐽/0 ∆ = − @ /,0 ∈6 𝐽23 1𝑒/0 これを解く問題に帰着 𝐹 𝒄, 𝒑, 𝒍 = 1 2 * #,% ∈' 𝒖#% − 𝜋(𝐗% ; 𝒑# , 𝒄) ( ( Shared Intrinsic Bundle Adjustment テイラー展開 安定性のためダンピング項の追加 𝐷 = 𝑑𝑖𝑎𝑔( 𝐽)𝐽) 𝐻 ∆ = − 𝐽C𝑒
  9. 解いている問題は︖ 𝑘 6𝑁 3𝑀 𝐻∆ = − 𝐽>𝑒 この⼤きな⾏列計算を効率化したい 1)Schur

    complementを⽤いたReduced Camera Systemの形成 2)Matrix Freeを⽤いてメモリの軽量化と⾼速化 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯LM 𝑯MM ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M
  10. Schur complement 𝑨𝒙 = 𝑨## 𝑨#? 𝑨?# 𝑨?? ∆𝒙# ∆𝒙?

    = 𝑨## ∆𝒙# + 𝑨#? ∆𝒙? 𝑨?# ∆𝒙# + 𝑨?? ∆𝒙? = − 𝒃# 𝒃? 𝑨 ∈ ℝ @$A × @$A 𝑨𝟏𝟏 ∈ ℝ"×" 𝑨𝟐𝟐 ∈ ℝG×G 𝑁 𝑁 𝑨 = 𝑨## 𝑨#? 𝑨?# 𝑨?? 𝑀 𝑀 正則 (1) (2)
  11. Schur complement 𝑨𝒙 = 𝑨## 𝑨#? 𝑨?# 𝑨?? ∆𝒙# ∆𝒙?

    = 𝑨## ∆𝒙# + 𝑨#? ∆𝒙? 𝑨?# ∆𝒙# + 𝑨?? ∆𝒙? = − 𝒃# 𝒃? 𝑨 ∈ ℝ @$A × @$A ∆𝒙( = −𝑨(( J!(𝒃( + 𝑨(!∆𝒙!) 𝑨𝟏𝟏 ∈ ℝ"×" 𝑨𝟐𝟐 ∈ ℝG×G 𝑁 𝑁 𝑨 = 𝑨## 𝑨#? 𝑨?# 𝑨?? 𝑀 𝑀 (1) (2) (2)より を(1)に代⼊
  12. Schur complement 𝑨𝒙 = 𝑨## 𝑨#? 𝑨?# 𝑨?? ∆𝒙# ∆𝒙?

    = 𝑨## ∆𝒙# + 𝑨#? ∆𝒙? 𝑨?# ∆𝒙# + 𝑨?? ∆𝒙? = − 𝒃# 𝒃? 𝑨 ∈ ℝ @$A × @$A ∆𝒙( = −𝑨(( J!(𝒃( + 𝑨(!∆𝒙!) 𝑨𝟏𝟏 ∈ ℝ"×" 𝑨𝟐𝟐 ∈ ℝG×G 𝑁 𝑁 𝑨 = 𝑨## 𝑨#? 𝑨?# 𝑨?? 𝑀 𝑀 (1) (2) (2)より を(1)に代⼊ (𝑨!!−𝑨!(𝑨(( J!𝑨(!) ∆𝒙! = − (𝒃!−𝑨!(𝑨(( J!𝒃() (𝑁×𝑁) (𝑁×1)
  13. Schur complement 𝑨𝒙 = 𝑨## 𝑨#? 𝑨?# 𝑨?? ∆𝒙# ∆𝒙?

    = 𝑨## ∆𝒙# + 𝑨#? ∆𝒙? 𝑨?# ∆𝒙# + 𝑨?? ∆𝒙? = − 𝒃# 𝒃? 𝑨 ∈ ℝ @$A × @$A ∆𝒙( = −𝑨(( J!(𝒃( + 𝑨(!∆𝒙!) 𝑨𝟏𝟏 ∈ ℝ"×" 𝑨𝟐𝟐 ∈ ℝG×G 𝑁 𝑁 𝑨 = 𝑨## 𝑨#? 𝑨?# 𝑨?? 𝑀 𝑀 (1) (2) (2)より を(1)に代⼊ 𝑺 ∆𝒙! = − R 𝒃 (𝑁×𝑁) (𝑁×1)
  14. Schur complement 𝑨𝒙 = 𝑨## 𝑨#? 𝑨?# 𝑨?? ∆𝒙# ∆𝒙?

    = 𝑨## ∆𝒙# + 𝑨#? ∆𝒙? 𝑨?# ∆𝒙# + 𝑨?? ∆𝒙? = − 𝒃# 𝒃? 𝑨 ∈ ℝ @$A × @$A ∆𝒙( = −𝑨(( J!(𝒃( + 𝑨(!∆𝒙!) 𝑨𝟏𝟏 ∈ ℝ"×" 𝑨𝟐𝟐 ∈ ℝG×G 𝑁 𝑁 𝑨 = 𝑨## 𝑨#? 𝑨?# 𝑨?? 𝑀 𝑀 (1) (2) (2)より を(1)に代⼊ 𝑺 ∆𝒙! = − R 𝒃 よりも⼩さい⾏列 𝑨 ∈ ℝ *+, × *+, 𝑺 ∈ ℝ*×* を⽤いて∆𝒙& について解く ∆𝒙( = −𝑨(( J!(𝒃( + 𝑨(!∆𝒙!) ∆𝒙. = 𝑆𝑜𝑙𝑣𝑒(𝑺, −L 𝒃)
  15. ランドマーク消去 Reduced Camera System 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM

    𝑯MK 𝑯ML 𝑯MM ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M 𝑘 6𝑁 3𝑀
  16. ランドマーク消去 Reduced Camera System 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM

    𝑯MK 𝑯ML 𝑯MM ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M 𝑘 6𝑁 3𝑀 𝑯𝒍𝒍 が正則⾏列である
  17. 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄

    ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM 𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO 𝑯𝒍𝒍 が正則⾏列である 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃?
  18. ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM

    𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO (𝑨!! − 𝑨!(𝑨(( J!𝑨(!) 𝒃! − 𝑨!(𝑨(( J!𝒃( ∆𝒄 ∆𝒑 = Schur complement 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃? 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M
  19. 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄

    ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM 𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO ∆𝒄 ∆𝒑 = Schur complement 𝑯MM 𝑯MN 𝑯NM 𝑯NN − 𝑯MO 𝑯NO 𝑯OO J! 𝑯OM 𝑯ON 𝒃M 𝒃N − 𝑯MO 𝑯NO 𝑯OO J!𝒃O 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃?
  20. 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄

    ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM 𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO ∆𝒄 ∆𝒑 = Schur complement 𝑯P 𝒃P 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃?
  21. 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄

    ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM 𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO ∆𝒄 ∆𝒑 = Schur complement 𝑯P 𝒃P 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃? ∆𝒄 ∆𝒑 = 𝑆𝑜𝑙𝑣𝑒(𝑯Q, −𝒃P) ∆𝒍 = −𝑯OO "#(𝒃O + 𝑯OP ∆𝒄 + 𝑯OQ ∆𝒑)
  22. 𝑯KK 𝑯KL 𝑯KM 𝑯LK 𝑯LL 𝑯LM 𝑯MK 𝑯ML 𝑯MM ∆𝒄

    ∆𝒑 ∆𝒍 = − 𝒃K 𝒃L 𝒃M ランドマーク消去 Reduced Camera System 𝑘 6𝑁 3𝑀 𝑨!! = 𝑯MM 𝑯MN 𝑯NM 𝑯NN 𝑨!( = 𝑯MO 𝑯NO 𝑨!( = 𝑨(! C 𝑨(( = 𝑯OO ∆𝒄 ∆𝒑 = Schur complement 𝑯P 𝒃P 𝑨## 𝑨#? 𝑨?# 𝒃# 𝒃? ∆𝒍 = −𝑯OO "#(𝒃O + 𝑯OP ∆𝒄 + 𝑯OQ ∆𝒑) PCG ∆𝒄 ∆𝒑 について解く
  23. 𝑯W ∆𝒄 ∆𝒑 = −𝒃W 𝑯R = 𝑯PP 𝑯PQ 𝑯QP

    𝑯QQ − 𝑯PO 𝑯QO 𝑯OO "# 𝑯OP 𝑯OQ ランドマーク消去 Reduced System
  24. ランドマーク消去 Reduced System 𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯MN 𝑯NM

    𝑯NN ∆𝒄 ∆𝒑 + 𝑯MO 𝑯NO 𝑯OO J! 𝑯OM 𝑯ON ∆𝒄 ∆𝒑 𝑯W ∆𝒄 ∆𝒑 = −𝒃W 𝑯R = 𝑯PP 𝑯PQ 𝑯QP 𝑯QQ − 𝑯PO 𝑯QO 𝑯OO "# 𝑯OP 𝑯OQ
  25. ランドマーク消去 Reduced System 𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯MN 𝑯NM

    𝑯NN ∆𝒄 ∆𝒑 + 𝑯MO 𝑯NO 𝑯OO J! 𝑯OM 𝑯ON ∆𝒄 ∆𝒑 𝑯W ∆𝒄 ∆𝒑 = −𝒃W 𝑯R = 𝑯PP 𝑯PQ 𝑯QP 𝑯QQ − 𝑯PO 𝑯QO 𝑯OO "# 𝑯OP 𝑯OQ 𝒚O ∗= 𝑯OO J! 𝑯OM ∆𝒄 + 𝑯ON ∆𝒑
  26. ランドマーク消去 Reduced System 𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯MN 𝑯NM

    𝑯NN ∆𝒄 ∆𝒑 + 𝑯MO 𝑯NO 𝑯OO J! 𝑯OM 𝑯ON ∆𝒄 ∆𝒑 𝑯W ∆𝒄 ∆𝒑 = −𝒃W 𝑯R = 𝑯PP 𝑯PQ 𝑯QP 𝑯QQ − 𝑯PO 𝑯QO 𝑯OO "# 𝑯OP 𝑯OQ 𝒚O ∗= 𝑯OO J! 𝑯OM ∆𝒄 + 𝑯ON ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ のコスト: 点ごとのblack dia Mat ⇒ 18 FLOP/点かつ完全並列 𝑯OO "#
  27. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗
  28. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合)
  29. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合) 90%を占める
  30. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合) 90%を占める
  31. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合) 論⽂中 Table 3 NOP:構築済みの 𝑯01 を使った演算なしのデータロードのみ SpMV:構築済みの 𝑯01 を使った計算ありの乗算 速度の⽐較 90%を占める
  32. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合) 論⽂中 Table 3 NOP:構築済みの 𝑯01 を使った演算なしのデータロードのみ SpMV:構築済みの 𝑯01 を使った計算ありの乗算 速度の⽐較 NOP / SpMV でそこまで変わらず 90%を占める →SpMV(⾏列×ベクトル積)の演算コスト よりもメモリアクセスがボトルネック
  33. ランドマーク消去 Reduced System 𝒚O ∗= 𝑯OO J! 𝑯OM∆𝒄 + 𝑯ON∆𝒑

    𝑯P ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 論⽂中 Table 2 各Hessian matrix成分の⾏列ベクトル積(matrix- vector product)に要する計算負荷(時間割合) 論⽂中 Table 3 NOP:構築済みの 𝑯01 を使った演算なしのデータロードのみ SpMV:構築済みの 𝑯01 を使った計算ありの乗算 速度の⽐較 NOP / SpMV でそこまで変わらず →SpMV(⾏列×ベクトル積)の演算コスト よりもメモリアクセスがボトルネック 90%を占める 𝑯!" , 𝑯"!に対して ⾏列を構築せずに“必要なときにその場で⽣成” (Matrix-Free)が最適解
  34. ⼀旦の流れ 𝑯R ∆𝒄 ∆𝒑 = −𝒃R Schur complement にてランドマークを消去 𝐻P

    ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 𝒚O ∗= 𝑯OO J! 𝑯OM ∆𝒄 + 𝑯ON ∆𝒑 𝐻7 を格納せず展開 計算量がボトルネック の計算をMatrix Freeにて計算したい 𝑯PP 𝑯PQ 𝑯PO 𝑯QP 𝑯QQ 𝑯QO 𝑯OP 𝑯OQ 𝑯OO ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃P 𝒃Q 𝒃O
  35. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% = 𝜕𝒆#% 𝜕𝑿% ランドマークヤコビアン
  36. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% = 𝜕𝒆#% 𝜕𝑿% ランドマークヤコビアン 𝒆!" = 𝒖!" − 𝜋 𝐗" , with 𝑿2 = 𝑹! ) 𝑿" − 𝒕! = 𝜕𝒆#% 𝜕𝑿T 𝜕𝑿T 𝜕𝑿% 三次元点𝑿" はワールド座標 𝑿3 はカメラ座標系の三次元点の座標
  37. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% = 𝜕𝒆#% 𝜕𝑿% ランドマークヤコビアン = 𝜕𝒆#% 𝜕𝑿T 𝜕𝑿T 𝜕𝑿% 𝑱045" ,!" = 𝜕𝒆!" 𝜕𝑿2 ∈ ℝ(×7 𝜕𝑿2 𝜕𝑿" = 𝑹! ) = 𝑱NUV% ,#% 𝑹# C 三次元点𝑿" はワールド座標 𝑿3 はカメラ座標系の三次元点の座標 𝒆!" = 𝒖!" − 𝜋 𝐗" , with 𝑿2 = 𝑹! ) 𝑿" − 𝒕! 𝑱045" ,!" はカメラ座標上の点 𝑿3 を微⼩に 動かしたときに画像上でどれくらい動くか
  38. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) カメラポーズ(外部パラメタ)ヤコビアン 𝑱N,#% = 𝜕𝒆#% 𝜕𝝃# ∆𝝃 = (𝝎, 𝒗) 回転3 並進3
  39. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) カメラポーズ(外部パラメタ)ヤコビアン 𝑱N,#% = 𝜕𝒆#% 𝜕𝝃# ∆𝝃 = (𝝎, 𝒗) 回転3 並進3 = 𝜕𝒆#% 𝜕𝑿M 𝜕𝑿M 𝜕𝝃# 𝒆!" = 𝒖!" − 𝜋 𝐗" , 𝛿𝑿T = − 𝝎 ×𝑿T − 𝒗 𝑿2 = 𝑹! ) 𝑿" − 𝒕!
  40. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) カメラポーズ(外部パラメタ)ヤコビアン 𝑱N,#% = 𝜕𝒆#% 𝜕𝝃# ∆𝝃 = (𝝎, 𝒗) 回転3 並進3 = 𝜕𝒆#% 𝜕𝑿M 𝜕𝑿M 𝜕𝝃# = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝒆!" = 𝒖!" − 𝜋 𝐗" , 𝛿𝑿T = − 𝝎 ×𝑿T − 𝒗 𝑿2 = 𝑹! ) 𝑿" − 𝒕! 𝑱045" ,!" = 𝜕𝒆!" 𝜕𝑿2 ∈ ℝ(×7 𝜕𝑿3 𝜕𝝃! = − 𝑿3 × − 𝑰7
  41. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S
  42. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S = 𝑱NUV% ,#% − 𝑿M × − 𝑰* C 𝑤X 𝑱NUV% ,#% 𝑹# C
  43. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S = 𝑱NUV% ,#% − 𝑿M × − 𝑰* C 𝑤X 𝑱NUV% ,#% 𝑹# C = −𝑤X 𝑰𝟑 𝑿M × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C
  44. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S = 𝑱NUV% ,#% − 𝑿M × − 𝑰* C 𝑤X 𝑱NUV% ,#% 𝑹# C = −𝑤X 𝑰𝟑 𝑿M × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C ワールド座標系への変換 𝑿3 × = 𝑹! ) 𝑿" − 𝒕 × 𝑹! 𝑿3 × 𝑹! ) = 𝑹𝒊 𝑻 𝑿" − 𝒕 ×
  45. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S = 𝑱NUV% ,#% − 𝑿M × − 𝑰* C 𝑤X 𝑱NUV% ,#% 𝑹# C = −𝑤X 𝑰𝟑 𝑿M × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C ワールド座標系への変換 𝑿3 × = 𝑹! ) 𝑿" − 𝒕 × 𝑹! 𝑿3 × 𝑹! ) = 𝑹𝒊 𝑻 𝑿" − 𝒕 × −𝑤X 𝑠#𝑰* 𝑿% − 𝒕 × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C
  46. 𝐻!" の構成︓観測ごとのヤコビアン展開 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S

    𝑘 ↔ (𝑖, 𝑗) 𝑱O,#% 𝑱NUV% ,#% = 𝜕𝒆#% 𝜕𝑿T ∈ ℝ(×* = 𝑱NUV% ,#% 𝑹# C ランドマークヤコビアン = 𝑱NUV% ,#% − 𝑿M × − 𝑰* *×W 𝑱N,#% カメラポーズ(外部パラメタ)ヤコビアン 射影ヤコビアン ℎ!SU = 𝑱Q,!S > 𝑤U 𝑱O,!S = 𝑱NUV% ,#% − 𝑿M × − 𝑰* C 𝑤X 𝑱NUV% ,#% 𝑹# C = −𝑤X 𝑰𝟑 𝑿M × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C ワールド座標系への変換 𝑿3 × = 𝑹! ) 𝑿" − 𝒕 × 𝑹! 𝑿3 × 𝑹! ) = 𝑹𝒊 𝑻 𝑿" − 𝒕 × −𝑤X 𝑠#𝑰* 𝑿% − 𝒕 × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C カメラのPoseパラメタ, 回転と並進のス ケールの違いを吸収するために⼊れてる
  47. Matrix Free Computation ℎ#%X = −𝑤X 𝑠# 𝑰* 𝑿% −

    𝒕# × 𝑱NUV% ,#% C 𝑱NUV% ,#%𝑹# C ∈ ℝW×* 𝑯QO = 6 (!,S)∈T 𝑱Q,!S > 𝑤U 𝑱O,!S = 6 ℎ!SU 𝑯NO 𝒚 # = * XZQ: ; Q:<= ; J! ℎ#%X 𝒚𝒋 1観測 (i,j)に対応する 𝑯01 の6×3成分のたしあわせで表現可能 𝑘 ↔ (𝑖, 𝑗) 𝑯LM を 明⽰的にメモリ上に構築せずに計算できる(Matrix free) カメラ i に対応する 6次元ベクトル 各 ℎ!"> は観測 (𝑖, 𝑗)ごとに計算可能 各 𝒚𝒋 はランドマーク変数に対するベクトル成分 ℎ!"> 𝒚𝒋 は 他のカメラ・観測と独⽴に計算可能 各スレッドにカメラ i の全観測 kを割り当てて並列化可能 同様に𝑯ON𝒙も⾏列を作らずに計算可能
  48. ⼀旦の流れ 𝑯R ∆𝒄 ∆𝒑 = −𝒃R Schur complement にてランドマークを消去 𝑯P

    ∆𝒄 ∆𝒑 = 𝑯MM 𝑯NM ∆𝒄 + 𝑯MN 𝑯NN ∆𝒑 + 𝑯MO 𝑯NO 𝒚O ∗ 𝒚O ∗= 𝑯OO J! 𝑯OM ∆𝒄 + 𝑯ON ∆𝒑 𝐻7 を格納せず展開 計算量がボトルネック の計算をMatrix Freeにて計算したい 𝑯PP 𝑯PQ 𝑯PO 𝑯QP 𝑯QQ 𝑯QO 𝑯OP 𝑯OQ 𝑯OO ∆𝒄 ∆𝒑 ∆𝒍 = − 𝒃P 𝒃Q 𝒃O 𝑯01 𝒚 ! = 7 >@A! " A!#$ " B. ℎ!"> 𝒚𝒋 Matrix free + 並列化で計算可能
  49. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい
  50. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい Wrap divergenceが上がる
  51. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい Wrap divergenceが上がる 重いランドマーク(観測が多い)順に並べる(Count) 画像インデックス(camera ID)順に観測をソート(Idx)
  52. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい Wrap divergenceが上がる 重いランドマーク(観測が多い)順に並べる(Count) 画像インデックス(camera ID)順に観測をソート(Idx) 論⽂中 Table 4 ⾏列を作って かける場合
  53. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい Wrap divergenceが上がる 重いランドマーク(観測が多い)順に並べる(Count) 画像インデックス(camera ID)順に観測をソート(Idx) 論⽂中 Table 4 ⾏列を作って かける場合
  54. Reordering Optimization︓メモリのアクセスの⼯夫 並列の処理 特徴 𝑯NO 𝒚 カメラごと 特徴点の検出数ある程度⼀定なのでが画像ごとの観測数は⽐較的均⼀ 𝑯ON𝒙 ランドマークごと

    ランドマークの観測期間に⼤きな偏りがある(例︓遠⽅の点はずっと⾒えてる etc..) 𝑯10 𝒙(ランドマークごと) LM1 LM2 LM3 LM4 𝑯01 𝒚(カメラごと) Cam1 Cam2 Cam3 Cam4 分散が⼤きい 分散が⼩さい Wrap divergenceが上がる 重いランドマーク(観測が多い)順に並べる(Count) 画像インデックス(camera ID)順に観測をソート(Idx) 論⽂中 Table 4 ⾏列を作って かける場合
  55. 数値安定化と単精度対応 単精度(32bit float)での実装は メモリが半減 FLOPSが2倍 論⽂中 Figure 5 1. 視差の⼩さいランドマーク(low-parallax)

    すべての座標(カメラ位置・ランドマーク)を「カメラ群の重⼼」に平⾏移動 𝑋T = 𝑅# C(𝑋% − 𝑡#) ⼤きな座標の引き算による有効桁の消失 2. 視差が⼩さすぎる投影でのゼロ除算や不安定性 3. low-parallaxランドマークによる𝑯𝒍𝒍 の条件数劣化 視差が⼩さいほどカメラ位置が似たような⽅向から⾒ているため → 3Dの奥⾏⽅向に情報が⼊らない 条件数が⾼すぎる 𝑯𝒍𝒍 に対しては SVD(特異値分解)で疑似逆⾏列を使う 視差⾓が⼩さい点は条件数が悪い(⼤きい) 視差⾓ ←分散が⼤きく不確実性が⼤きい 𝜋-9 (𝑋: )と𝜋*; (𝑋: )の誤差差分を事前に測り危険な観測は除く, 0.005 pix 𝜋(𝑋!) = ( 𝑓"𝑋 𝑍 , 𝑓# 𝑌 𝑍 ) 条件数
  56. 実験のデータセットについて カメラ数 画像数 ランドマーク数 2D画像上で の対応点の数 Intrinsicは共有していると仮定 視点バラつきが⼤きく, 点も多い ランドマーク数が⾮常に少ないのに対し,

    観測数が多い → ⾼密度SLAM型 視点数は多くないが、構造が⽐較的密 視差が⼩さい ⼤規模AR向けデータ/20カメラ Dynamic :intrinsicsも最適化 Intrinsicsは Sharedな前提 6N + 3M Fixed : intrinsics 既知, 固定 6N + 3M + 5
  57. 実験︓速度の⽐較 𝜏:再投影誤差の許容値 CPU-f32 GPU-f32 CPU-f64 Ceres D I 再投影誤差の許容値𝜏を達成する速度(s) 𝝉

    = 𝟏𝟎B𝟒 𝝉 = 𝟏𝟎B𝟒 Precisionの違いによる差: CPU-f32もCPU-f64も𝜏 = 10BLを達成 論⽂中 Figure 6 計算速度: GPU-f32 > CPU-f32 > CPU-f64 ≫ Ceres
  58. 実験︓速度の⽐較 𝜏:再投影誤差の許容値 CPU-f32 GPU-f32 CPU-f64 Ceres D I 再投影誤差の許容値𝜏を達成する速度(s) KITTIは他のデータセットに⽐べて、視差が⼩さくワールド座標が⼤きいため、float32実装では誤差

    の蓄積や桁落ちが顕著になり、GPU-f32では収束不全を起こしやすい「最も数値的不利な構造」を 持ったデータセットで T&T ⾼密度 ⾼視差 Aachen 視点がバラバラ EuRoC SLAM型で⽐較的密な視差 KITTI 低視差 直進 ⼤座標 LaMAR 巨⼤だけど多数視点 視差あり
  59. メモリ効率 ピークメモリ使⽤量(単位︓MB) へシアンを作るため 圧倒的にメモリ使⽤量が⼤きい 90%も削減 LaMAR では多数カメラ(20台) による intrinsics 推定

    𝐻NN , 𝐻NO, 𝐻OO, 𝐻ON はmatrix freeだが𝐻MO, 𝐻OM, 𝐻MM はそのまま保持 shared intrinsics の場合、全観測と結合し dense になる
  60. まとめ 𝐻PP 𝐻PQ 𝐻PO 𝐻QP 𝐻QQ 𝐻QO 𝐻OP 𝐻QO 𝐻OO

    ∆𝒄 ∆𝒑 ∆𝒍 = − 𝑏P 𝑏Q 𝑏O 𝐻R ∆𝑐 ∆𝑝 = −𝑏R Schur complement にてランドマークを消去 𝐻P ∆𝑐 ∆𝑝 = 𝐻MM 𝐻NM ∆𝑐 + 𝐻MN 𝐻NN ∆𝑝 + 𝐻MO 𝐻NO 𝑦O ∗ 𝑦O ∗= 𝐻OO J! 𝐻OM ∆𝑐 + 𝐻ON ∆𝑝 𝐻7 を格納せず展開 計算量がボトルネック の計算をMatrix Freeにて計算 𝑯<= 𝒚 / = @ .>?$ % ?$&' % @& ℎ/0. 𝒚0 画像 i に対応する pose ブロックへの寄与を、観測ごとに順に加算
  61. Matrix-Free Shared Intrinsics BAのまとめ Shared Intrinsics(全カメラ共通の内部パラメータ)を仮定したBAの新しい構成 問題設定 Matrix-Free によりHessian の構築を省略しなが⾼速かつメモリ効率の良い最適化を実現

    アプローチ 観測ごとの⼩⾏列(6×3) を逐次合成して Hessian を構成・乗算 Reordering による並列性・メモリアクセス最適化 結果 Matrix-Free × Shared Intrinsics はSLAM/ARシステムにおける BAの⾼速・省メモリ最適化に有効