スライド 1 - 和歌山大学

視覚の幾何学2
呉海元@和歌山大学
参考書
佐藤 淳:
「コンピュータビジョン -視覚の幾何学-」
コロナ社
Single view geometry
Camera model
Single view geom.
透視投影モデル
y’
y
(x’, y’, z’)
(x, y, z)
(x,y,z)から(x’,y’,z’)へ投影:
(相似三角関係より)
z
z’
z
x’
O
x
x’
仮定:
原点をレンズの中心に
Z軸と光軸と同じ
x
z
y
y  z
z
z  z
x  z 
(f = Z’)
●透視投影はZに関し非線形である
★幾何関係だけ考える理論系の人はよくf=1とする
x
正射影 (orthographic projection)
●正射影画像面に垂直な軸に沿って投影するもの
●Z軸方向の情報が失われ, X軸とY軸方向の座標は
そのまま保存される
●正射影はZに関し線形であり数学
的にははるかに扱いやすい
●正射影は実際のカメラによる投影
とは掛け離れたものであり,この投影
モデルがCGの分野に良く使われて
いるが、CVの分野に応用できる場
合は稀である
正射影モデル
y
(x’, y’, z’)
(x, y, z)
z
O
x
Projection from (x,y,z) to (x’,y’,z’):
x  x
y  y
or
z   z  const
x  kx
y   ky
z   const
弱透視投影(weak perspective projection)
●透視投影は現実のカメラによる投影にきわめて近いが、非線形
であり数学的には扱いにくい
●正射影は線形であるが、実際のカメラによる投影とは程遠い
●弱透視投影はこれら二の投影の中間的なものであり、正射影と
透視投影を組み合わせた投影である
弱透視投影
Step 1) 対象物を画像面pに平行な平面Pに正射影
この投影は正射影 ⇒ 線形
Step 2) その投影像をさらに画像面pへ透視投影
この投影は平面Pから平行な平面pへの投影
⇒ 均一に拡大或は縮小を行っている
⇒ 線形
★弱透視投影は線形
弱透視投影の式(Step 1)
●対象物を画像面pに平行な平面Pに正射影すること
は、対象物上の各点のX座標とY座標を保存したままZ
座標のみ一定の値
即ち、平面PのZ座標であるZ°に変更することに等しい
●この投影は次のように表せる :
X’=X
Y’=Y
Z' =Z°
弱透視投影の式(Step 2)
●正射影されたものをさらに透視投影される
⇒ 弱透視投影は次のように表せる
x = X’/Z’ = X/Z°
y = Y’/Z’ = Y/Z°
Z°は定数
●これらの式はXとYに関して線形である
⇒ 投影が線形化された
弱透視投影が成り立つ条件
●弱透視投影は透視投影の近似である
●この近似の有効範囲は限られている
●弱透視投影では対象物上の各点までの距離Zが
一定値Z°で近似できることを前提としている
●対象物のZ軸方向の厚みDがカメラから対象物ま
での距離Zと比較して十分小さければよい
●D:Zが1:10以上であればこの近似が有効である
と考えてよい
平行透視投影(paraperspective projection)
●弱透視投影では透視投影の前に画像面pに平行な
平面Pへの正射影を行った
●透視投影を線形近似するもう一つの一般化した方
法:透視投影の前に平面Pへ平行投影を行う
⇒正射影のように各点をある直線Lに平行に投影す
るが、この直線Lが必ずしも平面Pに垂直ではない
L
L
弱透視投影
平行透視投影
平行透視投影
●平行投影の方向 = 対象物の平均的な方向
●平行投影は線形な投影であり、平行な平面間の透
視投影も線形な投影であるから、これらを組み合わせ
た平行透視投影も線形な投影となる
平行透視投影の式
Step 1: 対象物の平均的な方向を(△X, △Y, 1)とし
この方向に平行投影する:
X’ = X + ( Z°- Z)△X
Y’ = Y + ( Z°- Z)△Y
Z’ = Z°
Step 2: 透視投影する
平行透視投影は以下のように表せる:
x = X’/Z’ = 1/Z°・X - △X/Z°・ Z + △X
y = Y’/Z’ = 1/Z°・Y - △Y/ Z°・Z + △Y
平行透視投影
●前式のX, Y, Zにかかる1/ Z°, △X/ Z°, △Y/ Z°,
△X, △Yなどはいずれも定数 => X, Y, Zに関して線形
●平行透視投影も透視投影の線形近似
●対象物の平均方向が光軸に一致する場合には平行
透視投影は弱透視投影となる
弱透視投影と平行透視投影
●弱透視投影も平行透視投影も画像面pに平行な平
面Pに平行投影した後、透視投影する
●弱透視投影は平面Pに垂直に平行投影する
●平行透視投影は対象物の平均的な方向に向けて
平行投影する
●平行透視投影の方がより透視投影に近い
E.g., Shape Reconstruction
Left
Right
★射影モデルが異なる→同じ画像から復元された3D情報が異なる
Affine cameras
焦点距離f を増加
物体とカメラの距離を増加
実際のカメラ
●実際に使用するテレビカメラは対象物からの光を受ける受光部
(撮像素子)と、受光により発生する微弱な電気信号を処理する信
号処理部からなっている
★イメージセンサに受光部と信号処理部を含まれる
●受光部の前にはレンズが置かれ、光はこのレンズによって集光
され、絞りを通して撮像素子(イメージセンサ)に至る
●レンズ系と撮像素子によって、3D空間から2D画像への投影
実際のカメラ
●実際のカメラではレンズ収差や歪みが生じるため、複
数のレンズを組み合わせて、レンズ収差や歪みなどを
取り除く
ズームレンズの
内部構造
・レンズの配置を変わると
焦点距離を変わる
2次元平行移動
2次元拡大・縮小
2次元回転(原点中心)
2次元アフィン変換
 x'   x   a 
      
 y'   y   b 
平行移動 

 x'   a
拡大・縮小    
 y'  0
  
 x'   cos
回転    
 y '   sin 
 x'  1
 y '   sh
   y
 x'   a b  x   e 
0  x 
   
    
 
b  y 一般化!  y'  c d  y   f 
 sin   x 
 
cos  y 
shx   x 
せん断



1  y
アフィン変換
アフィン変換をもっと簡単な形に~
同次座標
(homogeneous coordinates)
 x'   a b
  
 x'   a b  x   e 
 y'   c d
   
    
 y'   c d  y   f  1つ次元を  1   0 0
上げると・・・
積


和
e  x 
 
f  y 
1  1 
積のみ!
図形の変換を全て行列の乗算1回で処理可能
複雑な座標変換がすべて行列の形で処理できる
同次座標の基本2D変換

Basic 2D transformations as 3x3 matrices
 x '  1 0 t x   x 
 y '  0 1 t   y 
y  
  
 1  0 0 1   1 
 x '  s x
 y '   0
  
 1   0
平行移動Translate
 x' cos 
 y '   sin 
  
 1   0
 sin 
cos
0
回転Rotate
0
sy
0
0  x 
0  y 
1   1 
拡大・縮小Scale
0  x 
0  y 
1  1 
 x '  1 shx 0  x 
 y '   sh
 y
1
0
   y
 
 1   0
0 1  1 
せん断Shear
行列の合成

複雑な座標変換の行列は各処理の行列の掛け算
から合成
 x'   1 0 tx  cos  sin  0  sx 0 0   x 
 y '    0 1 ty   sin  cos 0  0 sy 0   y 
  
 w'  0 0 1   0



0
1
  0 0 1    w

p’ =
T(tx,ty)
R()
S(sx,sy)
p
同次座標 (3次元)

3次元座標値を,一つ次元を上げて4次元空間の
中で処理
( x, y, z )


( x, y, z, f )
(x/f, y/f, z/f) が三次元座標値となる
f=1のときはそのまま(x, y, z)が座標値
2次元アフィン変換と同じく、
座標変換をまとめて表記できる!
3次元アフィン変換
 x'   a
  
 y'   c
 1  0
  
b
d
0
 x'   a11
  
 y '   a21
 z'    a
   31
1  0
  
e  x 
 
f  y 
1  1 
2次元
a12
a22
a32
0
a13
a23
a33
0
3次元
bx  x 
 
by  y 
bz  z 
 
1  1 
P(x, y, z) からP(x’, y’, z’) へのアフィン変換(同次座標による表現)
P  AP
'
(A: アフィン変換行列)
同次座標導入の利点

同次座標を使わない場合
• 一回目のアフィン変換 P'  M1P  b1
• 二回目のアフィン変換 P''  M2P'  b2
P''  M 2 (M1P  b1 )  b 2
P''  M 2M1P  M 2b1  b 2

同次座標を導入した場合
P'  H1P
P ''  H 2 H 1 P
H1,H2: 2D ⇒ 3 x 3 のアフィン変換行列
H1,H2: 3D ⇒ 4 x 4 のアフィン変換行列
同次座標系導入の利点
f=w=1
直線上の点はすべて同じ座標を持つものとする
(点と線が同一視される)
無限遠点は?
無限遠要素
無限遠点
無限遠直線
無限遠平面
Two-view geometry
3D reconstruction
Epipolar geometry
E-matrix comp.
F-matrix comp.
H-matrix comp.
Structure comp.
立体視Stereo Vision (Stereopsis)

Main problem – recover 3D depth from two
(or more) image views
●一台のカメラから得られた画像のみからでは、3D
物体の形状を一意に決定することができない
●2つ以上の異なる視点で得られた画像からはこの
ような不定性を取り除き、形状を決定することができる
●静止シーンの場合、一台のカメラから異なる視点で
得られた2枚の画像でもOK
立体視の原理
三角計測法に基づいて、
視線の交点が注視点の空間位置
x1
Z
x2
平行ステレオ
fB
x1  x2
差(disparity)
距離Zは焦点距離f、ベースB、差△xの関数
立体視の原理

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 RrectRT
Xl
• Rotation can be
implemented by image
X’l
transformation
P
Pl
p
Yl
Pr
p
l
Zl
Or
R, t
Xl’ = T,
Yr
Zr
Ol t
光軸は平行ではない場合
r
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 RrectRT
Xl
• Rotation can be
implemented by image
X’l
transformation
光軸は平行になるように
変換(R,tが既知)
P
Pl
p
Yl
Pr
p
l
Zl
Yr
Zr
Ol t
Or
R, t
Xl’ = T,
r
Yl’ = Xl’xZl,
Xr
Z’l = Xl’xYl’
Correlation Approach
LEFT IMAGE

(xl, yl)
For each point (xl, yl) in the left image, define
a window centered at the point
Correlation Approach
RIGHT IMAGE

(xl, yl)
… search its corresponding point within a
search region in the right image
Correlation Approach
RIGHT IMAGE

(xr, yr)
dx
(xl, yl)
… the disparity (dx, dy) is the displacement
when the correlation is maximum
特徴に基づいた立体視

特徴検出
• 特徴コーナー、点、エッジ
• 対応を見つける
(相関評価による)
⇒奥行き計算

残りの部分は表面内挿
corner
line
structure
相関評価のアルゴリズム
距離マップは特徴間の相関評価によって構成
伝統的な方法


SSD   I t 1  I t 
2
AD  | I t 1  I t  |
CC   I t 1I t

 I .I 

NC 
 I .I
MC 
t 1
t
t
t
1
64 t 1 t
 I
t 1
 t 1 I t  t 
更に距離マップの連続性を考慮すると
1
1
E    I left ( x  i, y  j )  I right ( x  i  Dx ( x, y), y  j  Dx ( x, y))   D( x, y)
i  1 j  1
1
1
D( x, y)    D( x  i, y  j )  D( x, y)
i  1 j  1
Examples
Left Image
Right Image
Depth Map
出席チェック
1.弱透視投影の原理図を描き、その原理と成り
立つ条件について述べなさい