CVPR2003サーベイ 宮崎大輔 CVLセミナー 2003年7月2日(水) ヘルムホルツステレオ法 CVPR2003サーベイ 宮崎大輔 CVLセミナー 2003年7月2日(水)
本発表の流れ Helmholtzステレオ法とは? P. Tu, P. R. S. Mendonça, “Surface Reconstruction via Helmholtz Reciprocity with a Single Image Pair,” CVPR2003, Oral T. E. Zickler, P. N. Belhumeur, D. J. Kriegman, “Toward a Stratification of Helmholtz Stereopsis,” CVPR2003, Oral
Helmholtzステレオ法とは?
歴史 Helmholtzステレオ法が開発された そしてCVPR2003 1856年: von HelmholtzがHelmholtz reciprocityを発表 1900年: Rayleigh卿がより一般的な実験結果を提示 2002年: Snyderが一般化 2001年: Magda, Kriegman, Zickler, Belhumeur [ICCV] 2002年: Zickler, Belhumeur, Kriegman [ECCV, IJCV] Tu, Mendonça: 一対の画像だけを使う手法 Zickler, Belhumeur, Kriegman: 未校正下で行う手法 Helmholtzステレオ法が開発された そしてCVPR2003
ステレオ法 多数の方向から物体を観測 光源固定 window内での輝度の差などを使って対応点を探す カメラパラメータ(視線方向など)とdisparity(視差)から距離を求める 距離(depth)が求まる 物体
照度差ステレオ法(photometric stereo) 光源を変化させる→ある方向から光を照らした画像、別の方向から光を照らした画像、・・・を撮影する カメラ固定 法線(surface normal)が求まる
Helmholtz Reciprocity
Helmholtzステレオ法 Stereo + Photometric stereo 距離(depth)と 法線(normal) が求まる
計測結果の一例
計測装置の一例
取得画像の一例
計測結果の一例
Peter Tu Paulo R. S. Mendonça GE Global Research Center, USA Surface Reconstruction via Helmholtz Reciprocity with a Single Image Pair Peter Tu Paulo R. S. Mendonça GE Global Research Center, USA
この論文の手法 以前のHelmholtzステレオ法を、一つのペアのreciprocal画像から形状を復元する 動的計画法(dynamic programming)を使ってマッチングを行う Ohta&Kanadeが1985年に動的計画法を使ったステレオマッチング法を提案している
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) 画像2のepipolar線上のpixel 画像1のepipolar線上のpixel グリッド
動的計画法(dynamic programming) コストが最小になる経路を探す →最適なマッチング 動的計画法の実装で有名な物にDijkstra法がある
notation 表面上の点p 単位視線ベクトルv1,v2 単位法線ベクトルn Optical center c1,c2 C1 C2 n
Helmholtz reciprocityと画像の輝度 BRDF Helmholtz reciprocity 輝度1 輝度2 輝度2を輝度1に変換した輝度 η: scale factor
動的計画法のコスト Lambertianの場合 Helmholtz reciprocityの場合 a b 3D空間の点paが対応づけられている 3D空間の点pbが対応づけられている aからbにたどり着いたときのコスト = aのコスト + bでのwindow内の各pixelの輝度差
法線のepipolar平面への投影 法線を2つの垂直ベクトルの和で表す neと視線(or光源)v1,v2はepipolar平面に含まれる noはepipolar平面に垂直である よって n no ne v1 v2 Epipolar平面
法線の近似 α: unknown scale pb pa v1 v2
輝度 以上の事を使い、輝度を表す式に代入すると 右辺は、画像2、カメラパラメータ、近似法線から求まる
飽和(saturation) カメラのdynamic rangeを超えたらspecularとみなす →入射角と反射角が等しい よって、コスト関数として以下を用いる
結果
結果
Toward a Stratification of Helmholtz Stereopsis Todd E. Zickler Yale University Peter N. Belhumeur Columbia University David J. Kriegman University of California
この論文の手法 以前のHelmholtzステレオ法を、キャリブレーションを行わずに形状を復元する 特異値分解(SVD; singular value decomposition)を使う Tomasi&Kanadeが1992年にSVDによる因数分解法を提案している
特異値分解(SVD)とは? SVDについては僕は初心者なので間違っている所があるかもしれないので注意してください SVDは行列Aを分解する Uの列、Wの要素、Vの列(VTの行)を入れ替えてもいいので、wjを大きい順に並べたとして、以下、議論を進める wjを特異値と呼ぶ
特異値分解 N×Nの行列AのrankがN未満のとき、その行列を特異という 行列が特異のとき、Ax=bを解くことを考えよう
特異値分解 Ax=0を満たすxの張る空間を零空間(null space)と呼ぶ 零空間が1次元の場合、零ベクトル(null vector)と呼ぶときもある(普通、零ベクトルとは[0,…,0]のベクトルの事を言う) Axの張る空間を値域(range)と呼ぶ w1 wj≠0 A= U VT wj=0 wN 値域の正規直交基底 零空間の正規直交基底
特異値分解 Ax=bの特殊解はSVDを使って以下で与えられる Ax=bの解は特殊解に零空間の任意のベクトルを加えた形で表される Ax=bの解がない場合(bが値域の外にある場合)、SVDは最小2乗法の意味で最良の妥協解を求める。すなわち、Axがbに最も近くなるような特殊解xをはきだす
特異値分解
Uncalibrated Helmholtz stereopsis カメラと光源を入れ替えてペア画像を取得 合計M(M-1)の画像を取得 つまり、合計M(M-1)/2のreciprocal画像ペアを取得
Helmholtz reciprocity constraint カメラ/光源位置 カメラがoi、光源ojのときの観測輝度 表面上の点 法線 視線(pからoi) 光源の強さ ハットは単位ベクトルを表す
正射影 カメラ/光源が十分遠くにあると仮定(2.5mなど) さきほどの制約: 光源ベクトル: は光源の強さで、 はカメラ/光源方向(単位ベクトル) 光源と法線の内積をwiとおく 制約は次のように書き直せる wiを要素とするベクトルw 最終的に制約は次のように表せる
具体例 M=4の例
ランク M=4の場合rankは3になる EのrankはM-1になる(らしい) M-1未満のケースは考えない 1次元零空間は以下で表せる
Wの定義 N×M行列Wを定義する(Nは点の数、Mはカメラ/光源の数) Wの行をさきほどの1次元零空間とする 図はWの列を表す
Decomposition に分解したい : N×3行列(ckでスケーリングされた法線) SVDで分解 3×3の正則行列Qを使って正しい分解を行う このQを求める必要がある Uncalibrated stereo, Uncalibrated photometric stereoには様々な方法があるが、この論文では以下で示す方法を使った 詳しくは、[Shapiro-Zisserman-Brady1995], [Tomasi-Kanade1992], [Weinshall1993]を参照せよ (rank W = 3) 上位3つの特異値 だけを使って分解
アフィンカメラ 画像i 点k はじめは正射影を仮定 image point projection matrix scene point offset 回転行列の上の2行をスケーリングしたもの (ただし、aspect比を1としピクセル歪みも無いとした場合) 視線/光源方向がPから求まる
Metric reconstruction そこで、以下を満たす3×3正則行列Qを求める 本当の視線/光源方向 が求まる いまいち良く分からないが
実装 4点以上(例えば20点)の対応点を全ての画像で与えてやり、Tomasi-Kanadeの方法で視線/光源方向 を求める
実装 全てのdisparity d∈[0, dmax]で探索し、最適なdを求める まず、点xで、各dにおける行列 を計算する dが最適であるかを評価する特徴としてrankE=M-1という性質を利用する rankを計算する方法は数多く提案されているが、この論文では単純に2つの最小の特異値を使って、以下を評価値とする ←ほとんど0 (rankE=M-1が成り立つ場合)
実装 点xoの周りのウィンドウWr(例えば9×9)でrx(d)を計算し、その和が最大となるときのdをdisparityの推定値とする この解は、E=UΣVTとSVDしたとき、最小の特異値に相当するVの列になる(1次元零空間) 実際は誤差を防ぐためウィンドウWE(例えば3×3)で重み付きEwを計算し、その和が最小となるwを求める この場合でも重み付きEをSVDしたときの1次元零空間としてwを与える事ができる
実装 全てのwxからWを計算できる 視線/光源方向 より、W=BSと分解できる
結果
結果
結果
Daisuke Miyazaki 2003 Creative Commons Attribution 4 Daisuke Miyazaki 2003 Creative Commons Attribution 4.0 International License. http://www.cvl.iis.u-tokyo.ac.jp/