文章目录
同系列链接
1. pinhole camera model【cs231a课程笔记】
2. Single View Metrology【cs231a课程笔记】
3. epipolar geometry【cs231a课程笔记】
4. tereo Systems and Structure from Motion【cs231a课程笔记】
5. Active and Volumetric Stereo【cs231a课程笔记】
1.1. pinhole camera model
数码相机的镜头相当于一个凸透镜 + 小孔成像
理想化的相机模型是线性模型(实际是非线性模型):
retinal plane 视网膜平面
camera coordinate system(camera reference system)摄像机坐标系
camera calibration 相机标定
将三维摄像机坐标系中的P点映射到二维image plane中的P’
pinhole(center of the camera): O O O
focal length: f f f
O C ′ OC' OC′称作optical axis 光轴
P [ x , y , z ] T P[x, y, z]^T P[x,y,z]T转化到 P ′ [ x ′ , y ′ ] T P'[x', y']^T P′[x′,y′]T
相似三角形 P ′ C ′ O P'C'O P′C′O和 P O ( 0 , 0 , z ) PO(0,0,z) PO(0,0,z)
P ′ = [ x ′ , y ′ ] T = [ f ∗ x / z , f ∗ y / z ] T P'=[x', y']^T=[f*x/z, f*y/z]^T P′=[x′,y′]T=[f∗x/z,f∗y/z]T
aperture size越大,成像越模糊,越亮
所以 小aperture + lenses(透镜)
1.2. lens-based model (paraxial refraction model)
(凸)透镜相机模型(轴旁折射模型)
只有 P P P点所在的平面(焦平面)是清晰的(in focus),有了焦距(景深)的概念
P ′ = [ x ′ , y ′ ] T = [ z ′ ∗ x / z , z ′ ∗ y / z ] T P'=[x', y']^T=[z'*x/z, z'*y/z]^T P′=[x′,y′]T=[z′∗x/z,z′∗y/z]T
上式依据:对于焦平面上的点, P P ′ PP' PP′过透镜中心 O O O点
distortion
radial distortion(径向畸变):
pincushion distortion(枕形畸变) and barrel distortion(桶形畸变)
1.3. digital image space
加上image plane(film)(原点在k轴和平面交点处,一般是图片中心点)和image(原点在图片左下角)之间的关系C
P ′ = [ x ′ , y ′ ] T = [ z ′ ∗ x / z + c x , z ′ ∗ y / z + c y ] T P'=[x', y']^T=[z'*x/z + c_x, z'*y/z + c_y]^T P′=[x′,y′]T=[z′∗x/z+cx,z′∗y/z+cy]T
加上现实距离和像素距离之间的关系 k , l = p i x e k s / c m k,l=pixeks/cm k,l=pixeks/cm,若 k = l k=l k=l,则相机有正方形像素。
P ′ = [ x ′ , y ′ ] T = [ z ′ ∗ k ∗ x / z + c x , z ′ ∗ l ∗ y / z + c y ] T = [ α ∗ x / z + c x , β ∗ y / z + c y ] T P'=[x', y']^T=[z'*k*x/z + c_x, z'*l*y/z + c_y]^T=[\alpha*x/z + c_x, \beta*y/z + c_y]^T P′=[x′,y′]T=[z′∗k∗x/z+cx,z′∗l∗y/z+cy]T=[α∗x/z+cx,β∗y/z+cy]T
homogeneous coordinate system 齐次坐标系
我们认为欧式空间中的(x,y,z)等价于齐次坐标系中的(x,y,z,1),所以我们认为齐次坐标系
(
v
1
,
.
.
.
,
v
n
,
w
)
(v_1,...,v_n,w)
(v1,...,vn,w)等价于欧式空间
(
v
1
/
w
,
.
.
.
,
v
n
/
w
)
(v_1/w,...,v_n/w)
(v1/w,...,vn/w)
I I I 是 3×3
K K K 是camera matrix
上式中不包含skewness(倾斜)和dissortion(畸变)
下图中加入skewness,其中
θ
\theta
θ是坐标系夹角与90度的差
大多数本课程讲述的方法忽略了distortion,故最终final camera matrix有5个自由度:
2个关于focal length:
α
,
β
\alpha, \beta
α,β
2个关于offset:
c
x
,
c
y
c_x, c_y
cx,cy
1个关于skewness:
θ
\theta
θ
1.4. an arbitrary world reference system to image plane
before:将三维摄像机坐标系映射到二维image plane
加入选择矩阵 rotation matirx R和平移向量 tranlation vector T
与之前结合化简
M中包含了intrinsic和extrinsic参数,K是内参,[R, T]是外参。
M有11个自由度,5个内参自由度,3个外参(旋转),3个外参(平移)
1.5. Camera Calibration
用images推断内参
deduce 推断
calibration rig 标定台
p
i
p_i
pi是照片中的i点,
P
i
P_i
Pi是3D空间中的点,m1,m2,m3是M的三行(欧式空间和齐次坐标系变换)
对于n个图片,写成矩阵形式:
trivial solution平凡解
overdetermined过定的(含有线性相关的两列)
scalar标量
用SVD(分解奇异值):
P
=
U
D
V
T
P=UDV^T
P=UDVT,
V
T
V^T
VT与m合并为某常数乘M,约束条件变为
∣
M
∣
=
∣
V
T
m
∣
=
∣
V
T
∣
∣
m
∣
=
1
|M|=|V^Tm|=|V^T||m|=1
∣M∣=∣VTm∣=∣VT∣∣m∣=1(单位正交阵的行列式为1或-1)
进一步有
解得
退化形态(degeneration configuration):
不是所有情况都能有解,比如图片都在一个平面上(线性无关的方程数量小于未知数数量(11))
1.6. Handling Distortion in Camera Calibration
通常畸变是对称的,以为透镜是对称的,所以用一个isotropic transformation(各向同性变换)表示
变换一下:
但这不是线性的,我们可以寻找其他办法(比如利用比值(不变的))
可以使用SVD求解(类似上面)
求出m1,m2,再用 λ \lambda λ可以求m3,仍然是非线性优化问题,但简单很多
1.7. Rigid Transformations
rotation,translation,sacling