在这篇文章里我们继续上一话题,对得到的转换矩阵进行求解。
1.前文
在上篇文章里,我们最终得到如下公式:
s⎛⎝⎜uv1⎞⎠⎟=⎛⎝⎜α00−αcotθβ0u0v01⎞⎠⎟(R0TT1)⎛⎝⎜⎜⎜xwywzw1⎞⎠⎟⎟⎟
(1)
上述式子只是为了行文方便,如果要求解,我们得写成下面的样子:
s⎛⎝⎜uv1⎞⎠⎟=⎛⎝⎜α00−αcotθβ0u0v01⎞⎠⎟(r1r2r3t)⎛⎝⎜⎜⎜xwywzw1⎞⎠⎟⎟⎟
(2)
2. (u,v)与(xw,yw,zw) 的求解
在张正友标定法当中,我们一般用棋盘格作为标定模板,通过图像处理上的方法我们可以得到棋盘格上的角点坐标,这样我们就得到了
(u,v)
.
那么,我们如何得到对应的空间点坐标呢。
我们假设标定模板位于
zw=0
上,结合棋盘格的边长我们就可以得到相应的角点的空间位置。譬如,假设每一个小格子的大小为300*300,那么,红点1的坐标为(0,0,0),则红点2的坐标为(0,300,0),依次类推,这样我们就得到对应点的空间坐标。
3.单应性矩阵的求解
当
zw=0
时,公式(2)可变为:
s⎛⎝⎜uv1⎞⎠⎟=⎛⎝⎜α00−αcotθβ0u0v01⎞⎠⎟(r1r2t)⎛⎝⎜xwyw1⎞⎠⎟
(3)
用单应性矩阵的形式可表示成:
s⎛⎝⎜uv1⎞⎠⎟=⎛⎝⎜h11h21h31h12h22h32h13h23h33⎞⎠⎟⎛⎝⎜xwyw1⎞⎠⎟
(4)
作为一个单应性矩阵, H 并没有看上去的那样风光,哦,我是说,尽管看起来
s⎛⎝⎜uv1⎞⎠⎟=⎛⎝⎜h11h21h31h12h22h32h13h231⎞⎠⎟⎛⎝⎜xwyw1⎞⎠⎟
(4)
显然可得,
⎧⎩⎨⎪⎪⎪⎪⎪⎪u=sus=h11xw+h12yw+h13h31xw+h32yw+h33v=svs=h21xw+h22yw+h23h31xw+h32yw+h33
(5)
简单地变个形,我们就可以得到:
{0=h31xwu+h32ywu+h33u−(h11xw+h12yw+h13)0=h31xwv+h32ywv+h33v−(h21xw+h22yw+h23)
(6)
但是作为一个大学生,如果只会列公式,那么我们和咸鱼,,,嗯,我是说我们和小学生有什么区别。我们要列,矩,阵。唯有如此,才能体现出我们曾上过矩阵这门课,或者说,被它上过。
[−xw0−yw0−100−xw0−yw0−1xwuxwvywuywvuv]h=0
(7)
其中,
h=[h11,h12,h13,h21,h22,h23,h31,h32]T
(8)
我们共有8个未知参数,需要四个像公式(7)这样的式子才能求解,棋盘格里的一个小格子刚好能提供四个角点,看来选棋盘格是有原因的。
我们用下角标来区别四个角点的坐标,那么我们可以用下面的式子来唯一求解:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢−xw10−xw20−xw30−xw40−yw10−yw20−yw30−yw40−10−10−10−100−xw10−xw20−xw30−xw40−yw10−yw20−yw30−yw40−10−10−10−1xw1uxw1vxw2uxw2vxw3uxw3vxw4uxw4vyw1uyw1vyw2uyw2vyw3uyw3vyw4uyw4vuvuvuvuv⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢h11h12h13h21h22h23h31h32⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=0
(9)。
对应 Ah=0 这样的矩阵求解,我们目前的技术手段已经非常成熟了,譬如,熟读矩阵论的我们一定知道:我们可以采用 SVD分解 的方法来求。当然,要想结果准确,排除噪声、检测误差等因素带来的影响,还是要采取一些手段的,譬如采用最大似然的思想,采用随机抽样一致的方法等。
4下文
尽管已经可以求出单应性矩阵了,但我们的任务还没有结束。单应性矩阵里既包含相机内参也包括相机外参。相机标定的目的在于求出内参。毕竟不同张的图片都对应着不同的外参,而相机不变,则内参不变。所以,内参才是我们要追求的唯一。
关于如何求出相机内参,我们下篇再讲。
ps:单应性矩阵不仅应用在相机标定的过程中,同时也用在图像拼接的过程中。更多关于单应性矩阵求解的内容,请戳这里。