視覚の幾何学2

立体視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
xW
l
 (d) 
r
• 最も基本的な誤差評価関数
• 画像をベクトルとみなせば、
ベクトル間のユークリッド距離
• 外れ値の影響を受けやすい
• 照明変化の影響を受けやすい
Image1 Il
SAD(Sum of Absolute Differences) (絶対誤差)
• 画素毎の差分の絶対値の和
 | I ( x  d )  I ( x) |
xW
r
l
ベクトル間の市街地距離
• SSDに比べて外れ値の影響を受けにくい
• 照明の影響を受けやすい
ラスタスキャン
多次元ベクトルと考える
画像領域をベクトルで表現
画素毎に差をとって二乗
Image2 Ir
総和
特徴に基づいた立体視
よく用いられる相関評価方法3

CC(Cross Correlation) 正規化相互相関
 (d ) 
Il 
 I
xW
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
xW
l
xW
r

I
xW
r
(x  d)
1
,
コントラスト
の正規化
corner
SSD,SAD
x2
fB
x1  x2
視差(disparity)
xW
• 領域内の画素値をベクトル化
• ベクトルの各要素から平均値を引く
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