发布于 2019-06-24 12:36:39
为了了解什么是摄像机校准,让我们从图像形成的方式开始。
相机基本上是一种设备,它将点从3D空间转换成二维空间(图像空间)。在图像形成的分析中,我们经常使用所谓的针孔照相机模型,其中的图像是这样形成的:

更多的图表,我们可以看到这样的图像形成:

其中Y1是图像平面,X3是摄像机到物体的距离(我们称之为z,深度),x1是3D点P的X1轴与摄像机x3光轴之间的位移。O是具有焦距f的摄像机,y1是图像中心之间的距离,像素q对应于点P。
最简单的投影模型被称为orhtography。这个模型简单地降低了三维点的深度坐标(并可能缩放它)。所以,如果我们从3D世界的P点开始

,我们可以将投影写成:

,其中s是实标度因子,π是投影矩阵。
这个模型对于远距镜头(长焦距)和浅物体与相机的距离是近似的。这是准确的,只有远心透镜。对于我们使用的相机,一个更精确的模型是透视投影。为了获得直觉,如果三维物体离摄像机更近,那么图像平面上的物体就会变得更大。从数学上讲,由于三角形的相似性,y1与x1成正比。比例因子为f/x3,或f/z。让f暂时为1,这将导致下列投影函数:

正如你所看到的,投影不能用矩阵乘法来表示,因为它不再是线性变换了。这是不理想的-矩阵乘法有很好的性质。因此,我们引入了一个称为齐次坐标的技巧。对于每个点,我们添加另一个坐标(现在用3个坐标表示2D点,用4个坐标表示3D点),并将第四个坐标标准化为1(考虑最后一个坐标的隐式除法)。
现在,我们的观点是:

我们可以将透视投影矩阵写成:

,因为我们使用齐次坐标,最后一次除法发生在“隐式”,而倾斜则表示齐次坐标中的向量。
就在这里!这就是透视投影矩阵。请注意,这是一个不可逆转的变换。
然而,相机不仅将3D点投射到2D图像平面上。在投影之后,它们执行对离散图像空间的转换。这是由一个称为intrisinc摄像机矩阵K的矩阵表示的:

,如果fx和fy是x和y轴上的独立焦距(通常假定它们相等),则s是不垂直于光轴(在现代相机中接近0)的图像轴的倾斜,而cx,cy则表示图像的原点(通常是图像的中心)。
相机通常会给图像增加一些失真,并且有不同的数学模型。
摄像机标定过程是指确定摄像机的固有矩阵和畸变模型的参数。
这可以通过以下粗略的过程来完成:
要查看实际的封闭形式方程,请看一下W. Burger的一个非常好的纸 (Burger,2016)。
这一领域的“圣经”是计算机视觉中的多视图几何,由A.Zisserman著。
发布于 2019-06-24 11:23:09
参考加里·布拉德斯基和禤浩焯·凯勒的“学习OpenCV”。在摄像机标定方面有一个大的章节,对针孔相机模型有很好的数学背景,有各种各样的畸变,以及如何(通过校准)来降低它们。
使用其二阶导数检测图像上的角点。
https://stackoverflow.com/questions/56732677
复制相似问题