行列と行列式 - MyDNS.JP正規性と対角化 正規性は、対角化可能を調べるのが便利。 行列が正規であるための必要十分条件は、そ れが対角行列とユニタリ行列に対して相似とな
視覚の幾何学3 カメラキャリブレーション -...
Transcript of 視覚の幾何学3 カメラキャリブレーション -...
1
視覚の幾何学3カメラキャリブレーション
呉海元@和歌山大学
Rigid Body Motion – Two viewsX
Xx 11
txRx 1122
Xx 22
babba
ba
0
0
0
;
12
13
23
1221
3113
2332
3
2
1
3
2
1
aa
aa
aa
baba
baba
baba
b
b
b
a
a
a
0
0
b)(ab
b)(aa
ba トしているのでは一つの平面をサポーと
行列・ベクトルの外積(復習)Matrix form of cross product
幾何変換Geometric transformation
変換あり
変換なし
同次座標系で表現:
] with
]0| with
t|[RE'pE'p'
[IEEpp
tRpp'
変換あり
変換なし
同次座標系で表現:
あるいは
] with
]0| with
t|[RP'xP'x'
[IPPxx
tRxx'
2カメラ間の姿勢と位置:
• R : 3*3 rotation matrix
• t : 3*1 translation vector
pとp’が対応点同士なら:
⇒
即ち:同一平面内の三つのベクトルから二つのベクトルの外積と
残るもう一つのベクトルの内積は0となる
基本行列 (Essential matrix)
前提: pとp’は画像座標から計算された物理(カメラ)座標である
(カメラの内部パラメータ既知)
T
T
yx
yx
)1,','('
)1,,( with 0)](['
p
pRptp
From geometry to algebra(証明)
TRpp'
TTRpTpT '
RpT
RpTppTp '''0
Normal to the plane
Slide credit: Kristen Grauman
P
2
2カメラ間の姿勢と位置:
• R : 3*3 rotation matrix
• t : 3*1 translation vector
pとp’が対応点同士なら:
⇒
即ち:同一平面内の三つのベクトルから二つのベクトルの外積と残るもう一つのベクトルの内積は0となる
エピポーラ方程式
基本行列(E行列)
基本行列 (Essential matrix)
前提: pとp’は画像座標から計算された物理(カメラ)座標である
(カメラの内部パラメータ既知)
T
T
yx
yx
)1,','('
)1,,( with 0)](['
p
pRptp
RtE
Epp'Rptp
with
0)](['
E行列の自由度が5:回転3+並進3-スケール1
基本行列 (Essential matrix)エピポーラ方程式 自由度が5:
基本行列(E行列) 回転3+並進3-スケール1
T
T
yx
yx
)1,','('
)1,,( with 0)](['
p
pRptp
RtE
Epp'
with
0
babba
0
0
0
12
13
23
aa
aa
aa
★ 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’ -1 x’)TEK-1x=0 ⇒ x’TK’-TEK-1x=0 ⇒ x’TFx=0
F= K’-TEK-1 基礎行列 (F行列)
●基礎行列Fはカメラの内部パラメータKと外部パラメータEの双方を含んでいる
基礎行列(Fundamental 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’T Fx = (Fx)T l’ = 0の関係も成立
Fは3x3の同次行列, rank 2→det(F) =0→ランク落ち
(逆行列が求められない)
F行列の自由度が7: There are 9 elements, but scaling is not significant (-1) and det(F) =0 (-1)
エピ極(線)の例(I)
3
エピ極(線)の例(II) カメラパラメータ行列P
110000100
000
000
100
0
0
1 333231
232221
131211
world
world
world
z
y
x
yy
xx
image
image
Z
Y
X
trrr
trrr
trrr
f
f
ok
ok
y
x
h
11 34333231
24232221
14131211
world
world
world
image
image
Z
Y
X
cccc
cccc
cccc
y
x
h
透視投影行列Pの自由度は11(3*4-スケール1)
透視投影行列P
基本的なキャリブレーション法
既知の (X,Y,Z) (x,y) の組からPを求める
• カメラパラメータから スケールh を消去
X
Y
Z
x
yf 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 c33Z 1
c31Xx c32Yx c33Zx x c11X c12Y c13Z c14
c31Xy c32Yy c33Zy y c21X c22Y c23Z c24
P行列
3次元空間内の点(X,Y,Z)の位置について制限なし
11 34333231
24232221
14131211
world
world
world
image
image
Z
Y
X
cccc
cccc
cccc
y
x
h 簡略化して Z=0平面
Homography制限あり:3D空間内平面と画像間の投影
(3D)平面→ (画像)平面の対応関係:3x3行列で表現可
未知数(自由度)8(=9-スケール1):4組み以上の対応点(n>=4)が分かれば、Hが唯一に決定できる
X
Y
Z
xy 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
nnnnnn
nnnnnn
y
x
y
x
c
c
c
c
c
c
c
c
yYyXYX
xYxXYX
yYyXYX
xYxXYX
1
1
32
31
24
22
21
14
12
11
111111
111111
1000
0001
1000
0001
xBBBc TT 1)(
2min xBc
ホモグラフィ(Homography)画像1と画像2間の投影
O O
111
122 HxxHHx
ホモグラフィ
3D空間中の対象点が全て同一平面内に存在する場合
1H 2H
X
x1x2
4
出席チェック-1
画像1と画像2間におけるH行列の関係は以下のようになることを証明・導出して下さい。
111
122 HxxHHx
ホモグラフィ(Homography)
O O
Hホモグラフィ
3D空間中の対象点が全て同一平面内に存在する場合
点 to 点
ホモグラフィより鳥瞰画像の生成
H
平面対象の画像間射影が行える
Homographies for Bird’s-eye Views
from Hartley & Zisserman
Homographies for Mosaicing
from Hartley & Zisserman
Homographies for Mosaicing
複数枚の画像より広視野の画像を合成
5
Applying Homographies to Removing projective distortion
333231
131211
3
1
'
''
hyhxh
hyhxh
x
xx
333231
232221
3
2
'
''
hyhxh
hyhxh
x
xy
131211333231' hyhxhhyhxhx 232221333231' hyhxhhyhxhy
select four 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 lengthkx,ky : scale of the pixel
coordinate axiso ,o : image principal point
Extrinsic ParametersIntrinsic Parameters
R : rotation matrixt : 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
安定性
簡便さ
6
Example Calibration Pattern
Calibration Pattern: Object with features of known size/geometry
平面パターン
非平面パターン
Harris or Canny Corner Detector
手動か自動か入力画像からキャリブレーションパターンの特徴点を探し出す
カメラの内部パラメータ
fZ
XO
yx oo ,center image
yx kk , size pixel
flength focal
21, distortion lens kk
Calibration =
Determine the intrinsic parameters of a camera
xx
oZ
X
k
fx
yy
oZ
Y
k
fy
Z
Xfx
Z
Yfy
10100
00
00
10100
000
000
100
0
0
1 c
c
c
yy
xx
c
c
c
yy
xx
image
image
Z
Y
X
ofk
ofk
Z
Y
X
f
f
ok
ok
y
x
キャリブレーション(内部パラメータ1)幾何変換のパラメータ推定
透視投影 内部パラメータ ⇒ K行列
仮定:ピンホールカメラモデル
10100
00
00
10100
000
000
100
0
0
1Z
Y
X
ofk
ofk
Z
Y
X
f
f
ok
ok
y
x
yy
xx
yy
xx
image
image
キャリブレーション(内部パラメータ2)幾何変換のパラメータ推定
透視投影 内部パラメータ ⇒ K行列
仮定:ピンホールカメラモデルワールド座標系とカメラ座標系が一致している場合
求め方法:画像上の点や3次元空間中の点の座標を与えて、パラメータを求める → 最適化問題として定式化される
キャリブレーション(外部パラメータ)
カメラ座標系とワールド座標系が別々して
tx, ty, tz と r1,1…r3,3 はカメラ外部パラメータ
外部パラメータ⇒E行列
7
キャリブレーション(全パラメータ)画像座標系とワールド座標系の下で
1
)43(
1 world
world
world
image
image
Z
Y
X
y
x
P
110000100
00
00
1 3,32,31,3
3,22,21,2
3,12,11,1
world
world
world
z
y
x
yy
xx
image
image
Z
Y
X
trrr
trrr
trrr
ofk
ofk
y
x
10100
00
00
1 camera
camera
camera
yy
xx
image
image
Z
Y
X
ofk
ofk
y
x
全パラメータ⇒P行列
透視投影モデルのキャリブレーション
画像上の点 三次元空間中の点
対応点
行列P自由度11
rank 3
対応点1個拘束式2
6点以上の対応付けから求められる
1
)43(
1 world
world
world
image
image
Z
Y
X
y
x
P
PXx
Pの推定の線形解法(6 points algorithm)
• 6点以上の対応点からPを推定
• 線形最適化
は2n×12行列
n (n≧6)個の対応点から2nの方程式
行列で書くと
を最小にするPを求める
ただしp=0を除く→ とする(11自由度)
最小二乗
固有方程式
通常の最小二乗法で微分=0とすると
明らかな解p=0しか求まらない
ラグランジェの未定乗数法を使う
ラグランジェ乗数
pがWの固有ベクトルのとき成立pはWの最小固有値に
対応する固有ベクトル
8
6 points algorithm の利点、欠点
利点• 計算コストが小さい
• 数値計算的に安定
欠点
• 最小化の目的関数が、幾何学的にな意味を持たない
非線形解法
• 幾何学的に意味を持つ数値を最小化する
非線形解法
• 非線形最適化• ニュートン法、マーカート法など
• 精度は高いが、計算コストが高い、局所解が存在する
• 線形解を初期値にする
T TT
( )T
T
•幾何学的に意味のある誤差を最小化•画像上の観測点と投影点の誤差を最小化
例:キャリブレーションオブジェクト 透視投影行列Pの分解
P= =
M=KR K:上三角行列
Pの3×3の部分をMとするとM=KRK→上三角行列、R→正規直交行列よって、QR分解でKとRに分解できる
また、Kが求まれば、
Pを内部パラメータK、回転R、並進tに分解
100
0
0
yy
xx
ofk
ofk
透視投影行列Pの推定まとめ
3次元座標が既知の点が必要
3次元座標と2次元画像との対応づけが必要
ワールド座標に対するカメラの位置、姿勢が求まる
カメラの台数を増やしても、同じワールド座標に対するPを求めればよい
内部パラメータのキャリブレーションまとめ
• 昔はTsaiのアルゴリズムがよく使われた
• ソースが公開
• 不安定、3次元位置既知の点が必要
• 最近はEasyCalibがよく使われる
• 安定
• 使い勝手がいい
• 平面上の格子点• 平面の位置は未知でいい
• 格子点は自動検出しやすい
• 格子点検出も含めてソースが公開されている(OpenCV)
9
EasyCalib State-of-the-art calibration
Z. Zhang: Flexible Camera Calibration By Viewing 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& Zissermanbaseline
エピボラ平面
基礎行列Fのキャリブレーション
エピポーラ方程式
左カメラの画像点 右カメラの画像点
画像間の対応点集合から基礎行列Fを推定
x x’x’TFx=0
Fの推定:線形解法
ただし P行列と同様に最小固有値に対応する固有ベクトルとして推定
x’TFx=0
10
非線形解法
線形解法の目的関数は幾何学的に無意味
非線形解法
目的関数
• エピポーララインと対応点の距離
• ステレオ復元後の再投影誤差
ニュートン法、マーカート法など
線形解を初期値とする
基礎行列の分解
内部パラメータKが既知の場合
• 基礎行列Fから基本行列Eに変換
エピポールe、e’はどんな点にも対応するので
O O’
エピポールeは並進tと同じ方向(スケールは不定)
の最小値と対応する固有ベクトル
→eは
基礎行列の分解
より
の最小化によってRを求められる
また
エピポールを用いた平行化
from Hartley& Zisserman
epipolar pencilエピポーラペンシール
H
エピポーラ線が平行になる変換
基礎行列から平行ステレオへ変換
corner
視差(disparity)
姿勢や、Bの長さが分からなくても、形状を復元できるエピポールさえ分かれば、形状復元ができる
基礎行列Fの推定まとめ
• 基礎行列は画像間の対応付けだけ(未知の点)
• 基礎行列からカメラ間の相対位置、姿勢の復元や、平行ステレオへの変換が可能
• 未校正の2枚の画像から、カメラの姿勢の復元とシーンの形状復元が可能(ただしスケール不定)
• 自較正、uncalibrated stereo などと呼ばれる
11
内部パラメータのキャリブレーション
Tsaiのアルゴリズム
• 3次元座標既知の点から、レンズ歪みを含む内部パラメータを推定
• 初期からソースコードが公開されていたため、多くの人たちが利用
Tsaiのモデル
ワールド座標カメラ座標 投影面座標焦点距離
回転 並進
歪み係数
歪み座標 画像座標
画像中心
スケール因子(縦横比)
サンプリング間隔(CCDの幅)
Tsaiのモデル回転R•並進T 6パラメータ
焦点距離f 1パラメータ
ひずみ係数k 1パラメータ
画像中心 1パラメータスケール因子 1パラメータサンプリング間隔 2パラメータ
12パラメータの非線形最適化
Tsaiのモデル
例
入力画像キャリブレーション後
歪みを補正
Tsaiの方法まとめ
• 3次元位置既知の点から内部パラメータを推定
• 高次元(12パラメータ)の非線形最適化
• あまり安定ではないが、ソースが公開されていたためよく使われた
• 最近は、ZhangらのEasyCalibがよく使われる
• 平面上の座標既知の格子点(平面の状態は未知)
• 数枚の平面から、歪みを含む内部、外部パラメータを推定
• 安定、精度はTsaiよりはいい
• OpenCVに含まれる
12
格子点が直線になるように歪み補正Homographyの推定
出席チェック
複数カメラの幾何学的キャリブレーションについて、
• 透視投影行列Pを求める場合と基礎行列Fを求める場合の利点、欠点を述べなさい