立体視Stereo Vision (Stereopsis) 視覚の幾何学2 Main problem – recover 3D depth from two (or more) image views 参考書 佐藤 淳: 「コンピュータビジョン -視覚の幾何学-」 コロナ社 ●一台のカメラから得られた一枚の画像のみからでは、 3D物体の奥行き・形状を一意に決定できない ●2つ以上の異なる視点で得られた画像からはこのよう な不定性を取り除き、奥行き・形状を決定できる ●静止シーンの場合、1台のカメラから異なる視点で得られた2枚の画像でもOK ●動く物体の場合、1台のカメラから固定視点で得られた画像系列でOK 立体視の原理 Geometry for a simple stereo system World point 三角計測法 Similar triangles (pl, P, pr) and (Ol, P, Or): Depth of p image point (left) image point (right) Focal length optical center (left) Assume parallel optical axes, known camera parameters (i.e., calibrated cameras). We can triangulate via: T xl xr T Z f Z 物体までの距離: optical center (right) Z f baseline 視差(disparity) Slide credit: Kristen Grauman 平行ステレオ視の3D距離推定 点P(x,y,z)の座標値 x xL T xL xR y yL T y T R xL xR xL x R z f T xL xR T xl x r Slide credit: Kristen Grauman Depth from disparity Left image I(x,y) T Disparity map D(x,y) Right image I´(x´,y´) (x´,y´)=(x+D(x,y), y) 左カメラの光学中心がワールド座標の原点とする (左カメラや、両カメラの真ん中のOK) Slide credit: Kristen Grauman 1 立体視の原理 Algorithm • Rotate both left and right camera so that they share the same X axis : Or-Ol = T ← カメラ中心の平行移動量 • Define a rotation matrix Rrect for the left camera • Rotation Matrix for the right camera is Rrect・RT Xl • Rotation can be implemented by image X’l transformation 立体視の原理 P Pl Yl p Pr p l Zl Yr r Zr Ol t Or 光軸は平行ではない場合 Xl’ = T, 変換前座標系:(X,Y,Z) 変換後座標系:(X’,Y’X’)→平行 R, t Yl’ = Xl’xZl, Xr Z’l = Xl’xYl’ Algorithm • Rotate both left and right camera so that they share the same X axis : Or-Ol = T • Define a rotation matrix Rrect for the left camera • Rotation Matrix for the right camera is Rrect・RT Xl • Rotation can be implemented by image X’l transformation P Pl Yl p l Zl Yr r Zr Ol t 光軸は平行になるように変換 (R,tが既知→カメラ校正済み) Stereo image rectification: example p Pr Or R, t Xl’ = T, Xr Yl’ = Xl’xZl, Z’l = Xl’xYl’ 立体視の原理と問題点1 P カメラキャリブレーション済みなら Pl Pr • R,tが既知 • 光軸は平行になるように変換できる • 2Dシーンから3D復元 光軸は平行になるように変換 Yl p p l Xl X’l 一つの問題: 対応点をどう判定するか? Zl r Yr Zr Ol t Or R, t Xl’ = T, Yl’ = Xl’xZl, Xr Z’l = Xl’xYl’ Source: Alyosha Efros Correlation Approach Correlation Approach 左画像からある点○の周辺領域をテンプレット□とする LEFT IMAGE テンプレットを用いて、右画像のある領域から対応点を探す (xl, yl) RIGHT IMAGE (xl, yl) テンプレット For each point ○(xl, yl) in the left image, define a window centered at the point テンプレット … search its corresponding point within a search region in the right image 2 Correlation Approach 特徴に基づいた立体視 相関評価で最大類似度を取れた点ペアの視差を求める RIGHT IMAGE (xr, yr) dx (xl, yl) 特徴検出 line corner • 特徴:コーナー、線、エッジ • 対応特徴を見つける structure (相関評価による) ⇒視差(disparity)より奥行計算 … the disparity (dx, dy) is the displacement when the correlation is maximum よく用いられる相関評価方法2 よく用いられる相関評価方法1 残りの部分は表面内挿 SSD(Sum of Squared Differences) (二乗誤差) (d) I ( x d) I ( x) 2 xW l (d) r • 最も基本的な誤差評価関数 • 画像をベクトルとみなせば、 ベクトル間のユークリッド距離 • 外れ値の影響を受けやすい • 照明変化の影響を受けやすい Image1 Il SAD(Sum of Absolute Differences) (絶対誤差) • 画素毎の差分の絶対値の和 | I ( x d ) I ( x) | xW r l ベクトル間の市街地距離 • SSDに比べて外れ値の影響を受けにくい • 照明の影響を受けやすい ラスタスキャン 多次元ベクトルと考える 画像領域をベクトルで表現 画素毎に差をとって二乗 Image2 Ir 総和 特徴に基づいた立体視 よく用いられる相関評価方法3 CC(Cross Correlation) 正規化相互相関 (d ) Il I xW r ( x d ) I r I l ( x) I l x1 明るさの正規化 Z | I r (x d) I r || I l (x) I l | I ( x) ,I 1 xW l xW r I xW r (x d) 1 , コントラスト の正規化 corner SSD,SAD x2 fB x1 x2 視差(disparity) xW • 領域内の画素値をベクトル化 • ベクトルの各要素から平均値を引く CC • ベクトル間の内積(角度) ノルムが変化しても • 照明変化に強い 内積CCは変わらない 平行ステレオカメラ: 2枚の画像から 3次元情報を復元 3 最近の方法: Local Features: ボールの3D軌跡の計測 Detectors & Descriptors 平行ステレビデオカメラ Detected Interest Points/Regions Descriptors <0 12 31 0 0 23 …> <5 0 0 11 37 15 …> 左画像 右画像 <14 21 10 0 3 22 …> エピポーラ線 各点の周辺領域から128次元の 特徴量が得られる エピポーラ平面 最近の動向:SIFT or SURF特徴量によって2枚画像間の 対応点を探し出す 最近の方法: Correspondence d (v I 1 , v I 2 ) 128 (v i 1 I1 i 出席チェック1 d viI 2 ) 2 min No1 Th d min No 2 1.対応点同士の相関を判定する方法について、一つの 例を挙げて述べなさい(基本考え、式、利点、欠点を含む) Images from: M. Brown and D. G. Lowe. Recognising Panoramas. In Proceedings of the the International Conference on Computer Vision (ICCV2003 ) パノラマ画像 2眼視の幾何: Two-View Geometry 立体視の原理と問題点2 P カメラキャリブレーション済みなら Pl x3 Pr • R,tが既知 • 光軸は平行になるように変換できる x2 • 2Dシーンから3D復元 Yl p p l Xl Zl X’l Ol t もう一つの問題: 対応点の探索範囲をどう絞るか? Xl’ = T, r Yr Zr Yl’ = Xl’xZl, Xr Z’l = Xl’xYl’ x’1 courtesy of F. Dellaert Or R, t x1 x’2 x’3 画像間の点(xi to x’i )の対応関係は 1)カメラ間の剛体変換(カメラ行列:内部+外部パラメータ) 2)シーンの構造 により決定 エピポーラ幾何は1)だけに関係がある 4 エピポーラ幾何(Epipolar geometry) 複数の視点における相対的なカメラの位置Tや姿勢R の情報をエピポーラ幾何(Epipolar geometry)と呼ば れる画像特有の幾何によって記述できる エピポーラ幾何(Epipolar Geometry) Baseline: カメラ中心Cと C’を繋がる直線 Epipolar plane : baselineとシーンの中の点Xより 決定された平面 もう一方のカメラでは、 エピポーラ平面 画像上のどこに投影されるのか? ? O O baseline Epipolar Pencil エピポーラライン(Epipolar Lines) Epipolar lines l, l’: epipolar plane と画像面との交線 Epipoles e, e’: baselineと画像面との交点;すべての Epipolar linesはこの点●に交わる from Hartley & Zisserman シーンの中の点X の位置↑を変化すると、 epipolar planes はbaselineの周りに“rotate” • このような平面集合を epipolar pencilと呼ぶ Epipolar lines はepipole から“radiate” • これは pencil of epipolar linesと呼ぶ Epipolar line エピポーラ平面 エピポーラライン pencil of epipolar lines Epipole Epipole C epipolar pencil エピポーラペンシール Epipolar line エピポール C’ ベースライン from Hartley & Zisserman from Hartley & Zisserman http://www.ai.sri.com/~luong/research/Meta3DViewer/EpipolarGeo.html Why is Epipolar Constraint useful? エピボラ幾何より、片方の画像内の一点は必ずもう一方 の画像内のエピポーラ直線(1D)上存在 Epipolar constraint This is useful because it reduces the correspondence problem to a 1D search along an epipolar line. 探索は2次元から1次元に絞られる エピポーラ拘束 エピポーラ線 一点 O O エピポール エピポール Image from Andrew Zisserman Slide credit: Kristen Grauman 5 Epipolar geometry example I: parallel cameras Cross-correlation of neighbourhood regions epipolar line translate so that mean is zero Epipolar geometry depends only on the relative pose (position and orientation) and internal parameters of the two cameras, i.e. the position of the camera centres and image planes. It does not depend on the scene structure (3D points external to the camera). target region target region (Good Feature Point) (Bad Feature Point) left image band left image band right image band right image band 1 1 0.5 0.5 0 0 x x 例:Epipolar Lines for Converging Cameras 特例: Translation Parallel to Image Plane Note, epipolar lines are in general not parallel Left view epipolar linesの交線 = Epipole ! 他方のカメラ中心の位置を表す ロボット・カメラの移動軌跡の推定 Right view from Hartley & Zisserman カメラの運動が画像面と平行する場合、 ・epipolar linesは平行(エピポールは無限遠) ・対応点は対応 epipolar line上に存在 (全種類のカメラ運動) 6 特例: Translation along Optical Axis ステレオから3眼視へ カメラの運動が画像平面と垂直: Epipolesはfocus延長線上に一致 一般的に、無限遠点と異なる エピポーラ幾何より、片方の画像内の一点はかなら ずもう一方の画像内のエピポーラライン(1D)上存在 対応付け: 点直線 e’ 左側の画像上の1点 一点 e 曖昧性が残っている x’ C’ C Transfer: epipolar transfer 点直線 右側の画像上の一本の直線 3眼視 点直線 点点 Using more cameras to remove match ambiguity Multi-Camera 41 自由視点画像系列 42 7 透視カメラのエピポーラ幾何 出席チェック2 1.エピポーラ幾何の原理図を描き、その原理に ついて述べなさい Coordinate Transformations 座標変換 If we want to measure something (size of an object, depth of image points, distance between features……), we need to understand the geometry from image to world Coordinate system transformations • Image (i) camera (c) world (w) object (o) yc yi yw zc Oc Oi xc Oo zw Ow xi xw 幾何変換 Geometric transformation c a1 b1 a a2 ; b b2 a3 b3 a2b3 a3b2 0 c a b a3b1 a1b3 a3 a1b2 a2b1 a2 :外積のベクトル b θ a3 0 a1 a a2 a1 b a b 0 aとbは一つの平面をサポー トしているので a (a b) 0 b (a b) 0 基本行列 (Essential matrix) 同次座標系で表現: p' E' p with E' [R | t ] 変換あり ワールド座標を基準に考えなければならない 行列・ベクトルの外積(数学の準備) p' Rp t p Ep with E [I | 0] 変換なし 複数のカメラ間の関係や対象物との関係を考える ために、何か基準となる座標系を考えなければな らない(各カメラの座標系を元に考えるのではない) 全てのカメラや対象物に対して共通に決められた 座標のことをワールド座標(world coordinates)と呼 ぶ(ワールド座標を一つ決める) ⇒ 2カメラ間の姿勢と位置: • R : 3*3 rotation matrix • t : 3*1 translation vector pとp’が対応点同士なら: 前提: pとp’は画像座標から計算さ p ( x, y,1)T れた物理(カメラ)座標である p'[t (Rp)] 0 with T (カメラの内部パラメータ既知) p' ( x' , y ' ,1) 即ち:同一平面内の三つのベクトルから二つのベクトルの外積と残 るもう一つのベクトルの内積は0となる エピポーラ方程式 p' Ep 0 自由度が5: 基本行列(E行列) with E t R 回転3+(並進3-スケール1) 8 基本行列 (Essential matrix) エピポーラ方程式 基本行列(E行列) 出席チェック3 自由度が5: 回転3+並進3-スケール1 E行列の自由度は?理由は? p' Ep 0 with E t R p ( x, y,1)T p'[t (Rp)] 0 with T p' ( x' , y ' ,1) 0 a b a3 自由度が5: ★ Eはランク落ちが発生! a2 a3 0 a1 a2 a1 b a b 0 →rank(E)=2→等値非ゼロの固有値が二つ存在 ★ Eが求まれば、tとRに分解することができる Rはフルランク自由度は3 → tの自由度は2 9
© Copyright 2024 Paperzz