三次元空間と二次元画像

三次元空間と二次元画像
ージオメトリ,キャリブレーションー
大阪大学
日浦慎作
カメラの構造(再)
CCD
CCD駆動回路
信号処理回路
キャプチャ
回路
レンズ系
• レンズ - 集光するためのデバイス
– 画像のぼけを無視した場合,無関係
– 絞りを閉じた系で考える(主光線)
主点間隔と結像
後側主点
前側主点
• 主点へ向かって入射した光は,再び主点から
平行に射出するように見える
ピンホールカメラ
• 実カメラと等価な
ピンホールカメラ
とは:
主点間隔
– 前主点にピン
ホールを配置
– 像面(CCD)を
主点間隔だけ前
進させる
ピンホールカメラ
y
x
f
Z
X
Y
X
f
x
Z
• ピンホール中央
(=前側レンズ主点)
に原点を取る

X
x  f Z

y  f Y

Z
透視変換の同次座標表現

X
x

f

Z

y  f Y

Z
⇔
x f
  
hy 0

1
 
0
0
f
0
X 
0 0 
Y 
0 0
Z 
1 0
 
1 
• 透視変換には除算が含まれる
 – 除算だけを最後まで「延期」して計算
(最後に h 
を消去)
行列計算により透視変換を表現
– 各ベクトルの末尾に要素 “1” を追加する
(同次座標表現)
透視変換に対する座標変換の導入
x f
  
hy 0

1
 
0
0
f
0
X 
0 0 
Y 
0 0
Z 
1 0
 
1 
x
y
f
Z
Y
X
• 上記の透視変換表現は様々な制限を有する
– 世界座標の原点=投影中心(レンズ主点)
– 光軸=Z軸に平行
– 画像の中心=投影中心から下ろした垂線の足
– アスペクト比=1.0
座標変換を導入する必要あり
同次座標を用いた平行移動の表現
x 2  r11
  
y 2  r21
•
r12 x tx 
    
r22 y ty 
x 2  r11
  
y 2  r21

1 
 
0
r12
r22
0
t x x
 
t y y
1 

1

同次座標では積により平行移動が表現可能
– r11 ~r22  一次変換
– tx ~ ty  平行移動
世界座標系の導入
x f
  
hy 0

1
 
0
Y
x
y
f
回転+平行移動
Z
0
f
0
0 0

0 0
1 0

X 
 
Y 
Z 
 
1 
X
挿入

• 透視変換行列と世界座標の間
に,同次座標変換を挿入
– 外部パラメータ(6パラメータ)
回転:3自由度
平行移動:3自由度
r11

r21
r31

0
r12
r13
r22
r32
r23
r33
0
0
t x 

t y 
t z 

1 
外部パラメータ

内部パラメータの表現
f
x
y
アスペクト比
平行移動
• 内部パラメータ
–
–
–
–
焦点距離 f (1自由度)
画像中心(2自由度)
アスペクト比(1自由度)
スキュー歪み(1自由度)
スキュー
内部パラメータの導入
• 内部パラメータは,透視変
換行列の前に同次座標変
換を掛ける
– a : アスペクト比
– s : スキュー比
– tx, ty : 画像中心
x f
  
hy 0

1
 
0
0
f
0
0 0

0 0
1 0

挿入

1 0 t x 


s
a
t
y 


0 0 1 

内部パラメータ

X 
 
Y 
Z 
 
1 
カメラパラメータ行列
x 1 0 tx f
  

hy s a ty 0

1
 
0 0 1 

0
0
f
0
r11 r12
0 0
r21 r22
0 0
r31 r32
1 0

0 0
x c11 c12
  
hy c 21 c 22

1
 
c 31 c 32

c13
c 23
c 33
r13
r23
r33
0
X 
c14  
Y 
c 24 
Z 
c 34 
 
1 
t x X 
 
t y Y 
t z Z 
 
1 1 
• 行列の積をあらか
じめ計算
– 3行4列の行列
カメラパラメータ
– パラメータ数
(自由度)は11
カメラパラメータ
行列は定数倍して
も意味が不変
キャリブレーション
• 機器の構造からのキャリブレーションは困難
– 実焦点距離(フォーカシング距離により可変)
– 投影中心(レンズの中,計測困難)
• 大きさ,位置が既知の物体を計測してキャリ
ブレーション
– cf. 温度計の較正(氷水,沸騰水)
熱膨張係数の二次成分が0と仮定
– 画像の場合も同様,レンズ歪みなどをモデリング
するか?(モデルを複雑にするほど較正は困難)
基本的なキャリブレーション法
Y
y
x
x c11 c12
  
hy c 21 c 22

1
 
c 31 c 32
f
Z
X
c13
c 23
c 33
X 

c14  
Y 
c 24 
Z 
1 
 
1 
• 既知の (X,Y,Z)  (x,y) の組から較正

– カメラパラメータから h を消去
hx  c11 X  c12Y  c13 Z  c14

hy  c 21 X  c 22Y  c 23 Z  c 24
 h  c X  c Y  c Z  1

31
32
33

c 31 Xx  c 32Yx  c 33 Zx  x  c11 X  c12Y  c13 Z  c14

c 31 Xy  c 32Yy  c 33 Zy  y  c 21 X  c 22Y  c 23 Z  c 24

c11 
 
c12 
c13 
 
Z1 x1 c14  x1 

 
Z1 y1 c 21  y1 
c 22   
   
Z n x n c 23  x n 
  y 
Z n y n 
c 24  
 n 
c 31 
c 
 32 

c 33 

パラメータの計算
X1 Y1

 0 0


X n Yn

 0 0
Z1
1
0
0
0
0
X1 x1
Y1 x1
0
0
X1
Y1
Z1
1
X1 y1
Y1 y1
Zn
0
1
0
0
Xn
0
Yn
0
Zn
0 X n x n
1 X n y n
Yn x n
Yn y n
• 未知数 11,式 2n(n:特徴点数)
– 最小二乗法で解く.
上式を Ax=y の形とすると
1
x  (A A) A y
T
T
応用:レンジファインダ
xp
プロジェクタ
カメラ
x
y
• スリット光投影法
– プロジェクタはカメラ同様にモデル化可能
プロジェクタのモデル化
• スリット光プロジェクタは1次元表示デバイス
– y は任意の値をとるため,y 成分を省く
x p  p11
h  
1  p21
p12
p22
p13
p23
X 
 
p14 Y 

1 Z 
 
1 
– カメラと同様にキャリブレーション可能
どの位置のスリット光が,どの座標に到達するか

三次元座標の算出
• 情報:スリット番号 xp, 画素位置 x,y
– カメラパラメータ,プロジェクタパラメータを使用
 x  c 34  c14 
 c11  x  c 31



F   y  c 34  c 24  Q  c 21  y  c 31


x p  p24  p14 

p11  x p  p21
c12  x  c 32
c 22  y  c 32
p12  x p  p22
c13  x  c 33 

c 23  y  c 33 
p13  x p  p23 

– より
X 
  1
Y  Q  F

Z 



で座標が求められる
その他のカメラモデル
• 並行射影 x = X, y = Y
Z
x
X
y
Y
X 
x 1 0 0 0 
  
Y 
hy 0 1 0 0
Z 




1 0 0 0 1 
1 
弱中心射影
• 距離に応じて並行射影を拡大・縮小
– 距離は代表点(重心など)で計算
X 
x 1 0 0 0  
  
Y 
hy 0 1 0 0 
Z 

1
 
0 0 0 Z c 
 
1 

擬似中心射影
• 物体の光軸からの距離も勘案

Xc
1 0  Z
x 
c
Y
 
hy 0 1  c
Zc



1 0 0
0




X c X 
Y 
Yc  
Z 

Z c 
1 



エピポーラ幾何
P :対 象 物 体 上 の 点
画像平面
エピポーラ線
M2
M1
ベー ス ライン
L2
θ
C 1 :投 影 中 心
L1
θ
1
2
C2
L
P:対 象 物 体 上 の 点
F行列
x1
 
m1  y1

1 

画像平面
エピポーラ線
x 2 
 
m 2  y 2 

1 

x1
y1
T
ベ ー ス ライン
L2
L1
θ1
θ2
C2
C1:投 影 中 心
x 2 
 
1  F  y 2  0

1 

m1 F m2  0
M2
M1
L
(x2,y2) を決めると ax1  by1  c  0
(x1,y1) を決めると ax 2  by 2  c  0

F はカメラパラメータから算出可能

弱較正
• 世界座標系中の既知座標点は用いない
– 2台のカメラ間の点対応のみから較正
– F行列が求められる(F行列の自由度は7)
– 8点の対応がとれれば,F行列が容易に算出可
(最小二乗法)
x1
y1
f11

1 f 21

f 31
f12
f 22
f 32
f13  x 2 
  
f 23  y 2  0
1 
 
1 

展開
x1( f11 x 2  f12 y 2  f13 )  y1 ( f 21 x 2  f 22 y 2  f 23 )  f 31 x 2  f 32 y 2  1  0
f の要素に関する線形和
Homography
Z=0平面
Y
x
y
f
回転+平行移動
x c11 c12
  
hy c 21 c 22

1
 
c 31 c 32
c13
c 23
c 33
X 
c14  
Y 
c 24 
Z 
c 34 
 
1 
Z
x c11 c12
  
hy c 21 c 22

1
 
c 31 c 32
X
c14 X 
 
c 24 Y 
c 34 

1 

• 平面→平面の対応関係:3x3行列で表現可

• 未知数8:4点の対応関係で較正可
Homography の応用
絵画修復シミュレーション
装着型プロジェクタ
QuickTimeý Dz
TIFFÅiLZWÅj êLí£ÉvÉçÉOÉâÉÄ
ǙDZÇÃÉsÉNÉ`ÉÉǾå©ÇÈÇ žÇ½Ç…ÇÕïKóvÇ­Ç•
ÅB
QuickTimeý Dz
êLí£ÉvÉçÉOÉâÉÄ
ǙDZÇÃÉsÉNÉ`ÉÉǾå©ÇÈÇ žÇ½Ç …ÇÕïKóvÇ­Ç•
ÅB
侵入検知
ロボットを用いた遠隔指示