視覚の幾何学3 カメラキャリブレーション -...

12
1 視覚の幾何学3 カメラキャリブレーション 呉海元@和歌山大学 Rigid Body Motion – Two views X x 1 1 t x R x 1 1 2 2 X x 2 2 b a 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 a 0 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 pp’が対応点同士なら: 即ち:同一平面内の三つのベクトルから二つのベクトルの外積と 残るもう一つのベクトルの内積は0となる 基本行列 (Essential matrix) 前提pp’画像座標から計算さ れた物理(カメラ)座標である カメラの内部パラメータ既知 T T y x y x ) 1 , ' , ' ( ' ) 1 , , ( with 0 )] ( [ ' p p Rp t p From geometry to algebra(証明) T Rp p' p T ' Rp T Rp T p p T p ' ' ' 0 Normal to the plane Slide credit: Kristen Grauman P

Upload: others

Post on 03-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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

Page 2: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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)

Page 3: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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

x1x2

Page 4: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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

複数枚の画像より広視野の画像を合成

Page 5: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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

安定性

簡便さ

Page 6: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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行列

Page 7: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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の最小固有値に

対応する固有ベクトル

Page 8: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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)

Page 9: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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

Page 10: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =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 などと呼ばれる

Page 11: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

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に含まれる

Page 12: 視覚の幾何学3 カメラキャリブレーション - …web.wakayama-u.ac.jp/~wuhy/CV11.pdfFは3x3の同次行列, rank 2→det(F) =0 →ランク落ち (逆行列が求められない)

12

格子点が直線になるように歪み補正Homographyの推定

出席チェック

複数カメラの幾何学的キャリブレーションについて、

• 透視投影行列Pを求める場合と基礎行列Fを求める場合の利点、欠点を述べなさい