視覚の幾何学3
カメラキャリブレーション
呉海元@和歌山大学
Rigid Body Motion – Two views
X
X
x
1
1
t
x
R
x
2
1 1
2
X
x
2
2
a b b b a b a 0 0 0 ; 1 2 1 3 2 3 1 2 2 1 3 1 1 3 2 3 3 2 3 2 1 3 2 1 a a a a a a b a b a b a b a b a b a b b b a a a0
0
b)
(a
b
b)
(a
a
b
a
と
は一つの平面をサポー
トしているので
行列・ベクトルの外積(復習)
Matrix form of cross product
Geometric transformation
幾何変換
変換あり 変換なし 同次座標系で表現: ] with ] 0 | with t | [R E' p E' p' [I E Ep p t Rp p' 変換あり 変換なし 同次座標系で表現: あるいは ] with ] 0 | with t | [R P' x P' x' [I P Px x t Rx x' 2カメラ間の姿勢と位置: • R : 3*3 rotation matrix • t : 3*1 translation vector pとp’が対応点同士なら: ⇒ 即ち:同一平面内の三つのベクトルから二つのベクトルの外積と 残るもう一つのベクトルの内積は0となる
基本行列
(
E
ssential matrix)
前提:pとp’は画像座標から計算さ れた物理(カメラ)座標である (カメラの内部パラメータ既知) TT y x y x ) 1 ,' ,' ( ' ) 1 , , ( with 0 )] ( [ ' p p Rp t pFrom geometry to algebra(証明)
T Rp p'
T
T
Rp
T
p
T
'
Rp T
T
p
p
T
Rp
p
'
'
'
0
Normal to the plane
2カメラ間の姿勢と位置: • R : 3*3 rotation matrix • t : 3*1 translation vector pとp’が対応点同士なら: ⇒ 即ち:同一平面内の三つのベクトルから二つのベクトルの外積と 残るもう一つのベクトルの内積は0となる エピポーラ方程式 基本行列(E行列)
基本行列
(
E
ssential matrix)
前提:pとp’は画像座標から計算さ れた物理(カメラ)座標である (カメラの内部パラメータ既知) TT y x y x ) 1 ,' ,' ( ' ) 1 , , ( with 0 )] ( [ ' p p Rp t p
t R E Ep p' Rp t p with 0 )] ( [ ' E行列の自由度が5:回転3+並進3-スケール1基本行列
(
E
ssential matrix)
エピポーラ方程式 自由度が5: 基本行列(E行列) 回転3+並進3-スケール1 TT y x y x ) 1 ,' ,' ( ' ) 1 , , ( with 0 )] ( [ ' p p Rp t p
t R E Ep p' with 0
a b b b a 0 0 0 1 2 1 3 2 3 a a a a a a ★ Eはランク落ちが発生! →rank(E)=2 → 等値非ゼロの固有値が二つ存在 ★ Eが求まれば、tとRに分解することができる Rはフルランク自由度は3 → tの自由度は2自由度が5:
内部パラメータが未知
、画像座標xしか分からない • 画像座標xと物理(カメラ)座標pの関係: x=Kp , x’=K’p’ ⇒ p=K-1x, p’=K’-1x’(K,K’ are the camera calibration matrix:内部パラメータ行列)
基本行列から: p’TEp=0 ⇒(K’-1x’)TEK-1x=0 ⇒ x’TK’-TEK-1x=0 ⇒x’TFx=0
F= K’
-TEK
-1 基礎行列 (F行列) ●基礎行列Fはカメラの内部パラメータKと外部パラメータ Eの双方を含んでいる基礎行列(
F
undamental matrix)
基礎行列
Fの性質1
x’
TFx=0
x=eの場合 (e is epipole) : x’TFe=0,∀x’
(∵全てのepipolar linesはepipoleの所に交叉)
⇒Fe = 0
x’=e’の場合(e’ is epipole) : e’TFx =0,∀x ⇒e’TF = 0 ⇒ FTe’ = 0 ●F行列が与えられれば、eとe’はそれぞれFTFとFFT の最も小さい固有値に対応する固有ベクトルとして 求められる from Hartley & Zisserman epipolar pencil エピポーラペンシール 左画像内の点
x
が右画像内l’
上に 対応付けることは:l’ = Fx
基礎行列
Fの性質2
line point このpoint-on-lineの関係はl’TFx = 0より決定、 l’TFx = (Fx)T l’ = 0の関係も成立 F
は3x3の同次行列,rank 2
→det(F) =0→ランク落ち (逆行列が求められない)F行列の自由度が7:There are 9elements, but scaling is not significant(-1) and det(F) =0 (-1)
エピ極(線)の例(II)
カメラパラメータ行列P
1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 31 32 33 23 22 21 13 12 11 world world world z y x y y x x image image Z Y X t r r r t r r r t r r r f f o k o k y x h
1
1
31 32 33 34 24 23 22 21 14 13 12 11 world world world image imageZ
Y
X
c
c
c
c
c
c
c
c
c
c
c
c
y
x
h
透視投影行列Pの自由度は11
(3*4-スケール1)
透視投影行列P基本的なキャリブレーション法
既知の
(X,Y,Z) (x,y) の組から
P
を求める
• カメラパラメータから スケールh を消去 X Y Z x y f h x y 1 c11 c12 c13 c14 c21 c22 c23 c24 c31 c32 c33 1 X Y Z 1 hx c11X c12Y c13Z c14 hy c21X c22Y c23Z c24 h c31X c32Y c33Z1 c31Xx c32Yx c33Zx x c11X c12Y c13Z c14 c31Xy c32Yy c33Zy y c21X c22Y c23Z c24 P
行列
3次元空間内の点(X,Y,Z)の位置について制限なし 1 1 31 32 33 34 24 23 22 21 14 13 12 11 world world world image image Z Y X c c c c c c c c c c c c y x h 簡略化して Z=0平面Homography
制限あり
:3D空間内平面と画像間の投影 (3D)平面→ (画像)平面の対応関係:3x3行列で表現可 未知数(自由度)8(=9-スケール1):4組み以上の対応 点(n>=4)が分かれば、Hが唯一に決定できる X Y Z x y f 回転+平行移動 h x y 1 c11 c12 c13 c14 c21 c22 c23 c24 c31 c32 c33 c34 X Y Z 1 h x y 1 c11 c12 c14 c21 c22 c24 c31 c32 c34 X Y 1 H行列 カメラ座標系 ワールド座標系パラメータの計算
式
2n個(n:特徴点数)
• 4点の場合、上式をBc=x → • 4点以上の場合、最小二乗法で解く n n n n n n n n n n n n n n y x y x c c c c c c c c y Y y X Y X x Y x X Y X y Y y X Y X x Y x X Y X 1 1 32 31 24 22 21 14 12 11 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 x B B B c( T )1 T 2min
Bc
x
ホモグラフィ(
Homography)
画像1と画像2間の投影 O O 1 1 1 1 2 2H
H
x
Hx
x
ホモグラフィ
3D空間中の対象点が全て同一平面内に存在する場合 1H
H
2X
x
1x
2出席チェック-1
画像1と画像2間におけるH行列の関係は以
下のようになることを証明・導出して下さい。
1 1 1 1 2 2H
H
x
Hx
x
ホモグラフィ(
Homography)
O OH
ホモグラフィ
3D空間中の対象点が全て同一平面内に存在する場合点
to
点
ホモグラフィより鳥瞰画像の生成
H
平面対象の画像間射影が行えるHomographies for Bird’s-eye Views
from Hartley & Zisserman
Homographies for Mosaicing
from Hartley & Zisserman
Homographies for Mosaicing
Applying Homographies to Removing
projective distortion
33 32 31 13 12 11 3 1 ' ' ' h y h x h h y h x h x x x 33 32 31 23 22 21 3 2 ' ' ' h y h x h h y h x h x x y 31 32 33 11 12 13 'h x h y h hx hy h x 31 32 33 21 22 23 'hx h y h hx h y h y selectfour points in a plane with know coordinates
(linear in hij)
出席チェック-2
E行列とF行列、P行列、H行列の自由度はそ
れぞれいくつ?理由は?
Single Camera Calibration
単眼カメラのキャリブレーション
World Coordinate System
Camera Coordinate System
Image Coordinate System
f : focal length
kx,ky : scale of the pixel coordinate axis
o ,o : image principal point
Extrinsic Parameters Intrinsic Parameters
R : rotation matrix
t : translation vector
x y
Tsai’s Method
Projective Camera Matrix: P行列
K 行列 E 行列
3D-2D Projective mapping
Projection
Matrix (3x4)
29カメラキャリブレーション手順
1.幾何学的・光学的特性が既知の対象物を撮影
2.対象物固有の特徴
(特徴点の世界座標など)と
その
画像特徴
(その特徴点の画像座標)を対応
付け
~ エピポーラ幾何、知識、ヒューリスティクス 3.カメラモデルに基づき、モデルパラメータを推定
~ 射影幾何、線形代数、数値解析、統計キャリブレーションデータと安定性
ワールド座標と画像座標の対応点
• 3次元位置既知の特徴点 • 透視投影行列P 既知の形状の特徴
• 平面上の特徴点、円、矩形など • ホモグラフィH、レンズ歪みk, 画像座標同士の対応付け
• 3次元位置未知の特徴点、軌跡など • 基礎行列F,E 安定性 簡便さExample Calibration Pattern
Calibration Pattern:
Object with features of known size/geometry
平面パターン
非平面パターン
Harris or Canny Corner Detector
手動か自動か入力画像からキャリブレーションパターン の特徴点を探し出す
カメラの内部パラメータ
f Z X O imagecenter o ,xoy y xk k , size pixel f length focal 2 1, distortion lens kk Calibration =
Determine the intrinsic parameters of a camera
x x o Z X k f x y y o Z Y k f y Z X f x
Z Y f y
1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 c c c y y x x c c c y y x x image image Z Y X o fk o fk Z Y X f f o k o k y xキャリブレーション(内部パラメータ1)
幾何変換のパラメータ推定
透視投影 内部パラメータ ⇒ K行列 仮定: ピンホールカメラモデル 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 Z Y X o fk o fk Z Y X f f o k o k y x y y x x y y x x image imageキャリブレーション(内部パラメータ2)
幾何変換のパラメータ推定
透視投影 内部パラメータ ⇒ K行列 仮定: ピンホールカメラモデル ワールド座標系とカメラ座標系が一致している場合 求め方法: 画像上の点や3次元空間中の点の座標を与えて、 パラメータを求める → 最適化問題として定式化されるキャリブレーション(外部パラメータ)
カメラ座標系とワールド座標系が別々して tx, ty, tzと r1,1…r3,3はカメラ外部パラメータ 外部パラメータ⇒E行列キャリブレーション(全パラメータ)
画像
座標系と
ワールド
座標系の下で
1 ) 4 3 ( 1 world world world image image Z Y X y x P 1 1 0 0 0 0 1 0 0 0 0 0 0 1 3,1 3,2 3,3 3 , 2 2 , 2 1 , 2 3 , 1 2 , 1 1 , 1 world world world z y x y y x x image image Z Y X t r r r t r r r t r r r o fk o fk y x 1 0 1 0 0 0 0 0 0 1 camera camera camera y y x x image image Z Y X o fk o fk y x 全パラメータ⇒P行列透視投影モデルのキャリブレーション
画像上の点 三次元空間中の点 対応点 行列P 自由度11 rank 3 対応点1個 拘束式2 6点以上の対応付け から求められる
1 ) 4 3 ( 1 world world world image image Z Y X y x PPX
x
Pの推定の線形解法
(
6 points algorithm)
• 6点以上の対応点からPを推定 • 線形最適化 は2n×12行列 n (n≧6)個の対応点から2nの方程式 行列で書くと を最小にするPを求める ただしp=0を除く→ とする(11自由度) 最小二乗 固有方程式 通常の最小二乗法で微分=0とすると 明らかな解p=0しか求まらないラグランジェの未定乗数法を使う
ラグランジェ乗数 pがWの固有ベクトル のとき成立 pはWの最小固有値に 対応する固有ベクトル6 points algorithm の利点、欠点
利点
• 計算コストが小さい • 数値計算的に安定 欠点
• 最小化の目的関数が、幾何学的にな意味を持たない 非線形解法
• 幾何学的に意味を持つ数値を最小化する非線形解法
•非線形最適化 •ニュートン法、マーカート法など •精度は高いが、計算コストが 高い、局所解が存在する •線形解を初期値にする T T T ( )T T •幾何学的に意味のある誤差を最小化 •画像上の観測点と投影点の誤差を最小化例:キャリブレーションオブジェクト
透視投影行列Pの分解
P= = M=KR K:上三角行列 Pの3×3の部分をMとするとM=KR K→上三角行列、R→正規直交行列 よって、QR分解でKとRに分解できる また、Kが求まれば、 Pを内部パラメータK、回転R、並進tに分解 1 0 0 0 0 y y x x o f k o f k透視投影行列
Pの推定まとめ
3次元座標が既知の点が必要
3次元座標と2次元画像との対応づけが必要
ワールド座標に対するカメラの位置、姿勢が
求まる
カメラの台数を増やしても、同じワールド座標
に対する
Pを求めればよい
内部パラメータのキャリブレーションまとめ
• 昔はTsaiのアルゴリズムがよく使われた •ソースが公開 •不安定、3次元位置既知の点が必要 • 最近はEasyCalibがよく使われる •安定 •使い勝手がいい •平面上の格子点 •平面の位置は未知でいい •格子点は自動検出しやすい •格子点検出も含めてソースが公開されている(OpenCV)EasyCalib
State-of-the-art calibration
Z. Zhang: Flexible Camera Calibration ByViewing a Plane From Unknown Orientations (1999)
• Solves correspondence problem
• Works with planar calibration pad
• Works well in practice
Calibration Software: OpenCV
Calibration Software: Matlab
出席チェック
単眼カメラの幾何学的キャリブレーションにつ
いて、
•紹介した透視投影行列Pのランク?Pを求めるた め最低何点が必要?理由? •P行列を求める方法(線形、非線形)の利点、欠 点をそれぞれ述べなさい from Hartley & Zisserman baseline エピボラ平面基礎行列Fのキャリブレーション
エピポーラ方程式 左カメラの画像点 右カメラの画像点 画像間の対応点集合から基礎行列Fを推定x
x
’
x’
TFx=0
Fの推定:線形解法
ただし P行列と同様に最小固有値に対応 する固有ベクトルとして推定x’
TFx=0
非線形解法
線形解法の目的関数は幾何学的に無意味
非線形解法
目的関数
• エピポーララインと対応点の距離 • ステレオ復元後の再投影誤差 ニュートン法、マーカート法など
線形解を初期値とする
基礎行列の分解
内部パラメータ
Kが既知の場合
• 基礎行列Fから基本行列Eに変換 エピポールe、e’はどんな 点にも対応するので O O ’ エピポールeは並進tと同じ方向(スケールは不定) の最小値と対応する固有ベクトル →eは基礎行列の分解
より の最小化によってRを求められる またエピポールを用いた平行化
from Hartley & Zisserman epipolar pencil エピポーラペンシール H エピポーラ線が平行になる変換基礎行列から平行ステレオへ変換
corner 視差(disparity) 姿勢や、Bの長さが分からなくても、形状を復元できる エピポールさえ分かれば、形状復元ができる基礎行列
Fの推定まとめ
• 基礎行列は画像間の対応付けだけ(未知の点) • 基礎行列からカメラ間の相対位置、姿勢の復元 や、平行ステレオへの変換が可能 • 未校正の2枚の画像から、カメラの姿勢の復元 とシーンの形状復元が可能(ただしスケール不 定) • 自較正、uncalibrated stereo などと呼ばれる内部パラメータのキャリブレーション
Tsaiのアルゴリズム
• 3次元座標既知の点から、レンズ歪みを含む内 部パラメータを推定 • 初期からソースコードが公開されていたため、多 くの人たちが利用Tsaiのモデル
ワールド座標 カメラ座標 投影面座標 焦点距離 回転 並進 歪み係数 歪み座標 画像座標 画像中心 スケール因子(縦横比) サンプリング間隔 (CCDの幅)Tsaiのモデル
回転R•並進T 6パラメータ 焦点距離f 1パラメータ ひずみ係数k 1パラメータ 画像中心 1パラメータ スケール因子 1パラメータ サンプリング間隔 2パラメータ 12パラメータの非線形最適化Tsaiのモデル
例
入力画像 キャリブレーション後 歪みを補正Tsaiの方法まとめ
• 3次元位置既知の点から内部パラメータを推定 • 高次元(12パラメータ)の非線形最適化 • あまり安定ではないが、ソースが公開されていたた めよく使われた • 最近は、ZhangらのEasyCalibがよく使われる •平面上の座標既知の格子点(平面の状態は未知) •数枚の平面から、歪みを含む内部、外部パラメータを推定 •安定、精度はTsaiよりはいい •OpenCVに含まれる格子点が直線になるように歪み補正 Homographyの推定