目录
弱透视模型的坐标变换和相机参数
我们按照和上一节类似的思路来推导弱透视模型的坐标变换公示,并给出这种情况下的相机参数。
1 从世界坐标系到相机坐标系
这一步和之前一样,得到:
2 从相机坐标系到投影坐标系
在这一步中,我们忽略了物体的厚度。通常的做法是在物体上取一个参考点,过这个参考点作光轴的垂面,然后将其他点都投影到这个平面上。即认为所有点的Z坐标都与参考点的相等。不妨设这一坐标值为Zr,于是得到投影坐标:
p = (f/Zr X, f/Zr Y, 1) = f/Zr = f/Zr P
3 从投影坐标系到屏幕坐标系
这一步和上一节的一般情况下的做法相同,使用K来完成转换(注意系数f包含在K中),最终的表达式为:
= = MPw。
注意到的秩为2,也就是说,我们可以将表达式化简。记:
,其中,;
R2 = ,t2 = 。
于是:
M =
=
=
=
=
=。
由于我们实际上并不需要齐次坐标系中的最后一个坐标,所以可以丢掉第三行,取:
,
得到的表达式 = MPw。
4 变量的耦合问题
在上面的推导中,我们注意到一个现象:令t2 = t2 + a,p0 = p0 - 1/Zr K2a,M并不会改变。我们将这种现象称为变量的耦合,本质上其实是一种信息的丢失。具体来说,如果我们换一个相机,它的t变量的前两维是t2 + a,主点在像素坐标系上的坐标是p0 - 1/Zr K2a,我们得到的坐标转换的矩阵和之前的相机是相同的,也就是对同一个场景会得到相同的照片,这样我们就无法区别这两个相机,也就是无法唯一确定其中的一些参数。
此外,Zr和K2中的参数之间也存在这种变量耦合的问题:
1/Zr K = ,
其中和总是分别作为整体出现,因而实际上也只能确定两个自由度。从实际意义来看就是如果物点的距离更远,同时CCD上的单位长度像素数量或者焦距按相同比例放大,则我们得到的数字图像同样不会改变。
事实上,我们在上一节即一般情形下,也遇到了一组变量耦合,即k、l和f的耦合。由于kf、lf总是以单项式的形式出现,我们将它们分别记作α和β,也就是只能确定两个自由度。
根据这种情况,我们可以进一步简化M的参数:
M =
= (根据之前的结论,p0可以任意选取,此时的t2也被更新了)
= (按照分块矩阵乘法计算即可)
=
=
=
这时再来清点我们的变量,一共有八个:Zr是结构(structure)参数,k、s是与CCD的畸变程度和像素密度相关的参数,t2中包含了两个参数,R2虽然只有两行,但是写出R的实际形式可以看出R2中仍然存在三个角度参数。