在这里插入图片描述

前言

“相机就是计算机的眼睛。”

—— 哲学砖家阿瓦里斯基 好吧是我说的
这句话其实仅代表的是我的观点,相机之于计算机正如眼睛之于人,人眼就可以看成两台精密的相机。不过,不同于人眼的随时调节,对人造的相机,其各项参数就相对固定,易于调节,这也为 CV 的研究提供了方便。相机的参数是 CV 里一项很重要的基础课,我在这里会尽量讲的浅显易懂。

相机模型 —— 从小孔成像说起

说起来,这是初中物理就开始学的吧

说到我们最早接触的光学成像模型,应当是小孔成像模型了。它原理很好理解,而且实验材料很容易搞到手。只要一张白纸和一个有孔的不透光薄片。将它们并排放置,再在薄片的另一侧放一个光源,就可以在白纸上看到光源的像了。

而相机则是参考了人眼的构造,使用透镜来汇聚光线使成像更加清晰。尽管模型更加复杂,我们还是可以在图中看到小孔成像的影子。
在这里插入图片描述

从物体上射出的很多光线中,有一条始终穿过光心,这很像小孔成像的原理,而这就是相机**针孔模型(Pinhole Model)**存在的基础。尽管现实中的相机远比小孔成像要复杂的多,还会存在或多或少的畸变,但现阶段,我们并不需要考虑这些。

模型概览

不知大家有没有听说过 “傻瓜相机”。这种相机的焦距极短,外面的物体,无论远近,成像都近似在焦距附近。我们只要在焦点哪里竖起胶卷,就可以将外界的影像清晰地记录下来。不需要调焦,所有的操作就是按下快门,所以它就有了这个名号。

我们的模型和这个十分类似,我们的像平面放在焦点上,如果想找到成像点,只要把物体和相机光心连一条线就可以了。
在这里插入图片描述

不过,这里我们玩了一个小 trick:我们知道,小孔成像成的是倒像,倒像研究起来多难受啊,于是我们沿着光线把像平面往前推,推到对称的另一个焦点上。这个时候,成像点的确定依然是目标点和光心连线与像平面的交点,但是我们不再需要延长了,成像也变成了正像。不过要注意的是,这么做只是为了研究方便,实际上放在这里的像平面是无法成像的(准确的说,是成 “虚像”)。

这就是相机的针孔模型,原理上类似于傻瓜相机,理解起来类似于小孔成像,研究起来…… 嘛,知道基本的几何构造就够了。

模型坐标系

为了讨论模型的参数,最重要的是将这个模型量化,这就牵扯到坐标系如何建立。

本问题中,牵扯到的坐标系有 3 个:世界三维坐标系,相机局部三维坐标系和图形二维坐标系。

先从最熟悉的图像坐标说起。在学习图像坐标系的时候,最经典的坐标系是把原点放在图像的左上角,x 轴向右,y 轴向下。下面的 O x y 就是这样一个坐标系。

在这里插入图片描述

注意:图片坐标系是 O x y , F  是光轴和像平面的交点,F x y 不属于我前面说的那三个主要坐标系,只是用于过渡的,不要混淆了。

相机的坐标系一般是以光心为坐标原点,垂直光轴向外为 z zz 轴,x 轴和 y轴和图像坐标系的方向一致。
在这里插入图片描述

世界坐标系就没什么可说的了,根据使用情景随便定义就好。

相机参数

https://download.csdn.net/download/qq_33364956/10714778?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_blog_inner_ad.none-task-download-2%7Edefault%7EAD_ESLANDING%7Edefault-1-10714778-blog-115068678.pc_bloginner_targeting_eslanding_mlkctr&depth_1-utm_source=distribute.pc_blog_inner_ad.none-task-download-2%7Edefault%7EAD_ESLANDING%7Edefault-1-10714778-blog-115068678.pc_bloginner_targeting_eslanding_mlkctr

相机线性模型(针孔成像)

基于针孔模型,我们来看看相机有哪些参数。下面这 6 个参数是著名的 Human3.6m 数据集给出的标注里,描述相机用到的。它们可以全面描述一个相机的成像情况。

参数分为内参和外参。前者由相机自身的特性决定,用于表示成像的情况,后者则表示相机的空间位姿。

A 点在像平面上的坐标就是 :

下图来自这篇博客

在这里插入图片描述

最终的内参矩阵如下:

其实这是一个投影变换矩阵,它的作用就是把相机坐标系内的点投影到像平面。

外参

外参有两个:R和 T ,一个是表示朝向,一个表示位置。

https://download.csdn.net/download/weixin_38626032/15217852?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_blog_inner_ad.none-task-download-2%7Edefault%7EAD_ESLANDING%7Edefault-2-15217852-blog-115068678.pc_bloginner_targeting_eslanding_mlkctr&depth_1-utm_source=distribute.pc_blog_inner_ad.none-task-download-2%7Edefault%7EAD_ESLANDING%7Edefault-2-15217852-blog-115068678.pc_bloginner_targeting_eslanding_mlkctr

光场相机成像模型及参数标定方法综述

但是对于二者具体的含义,标准似乎并不统一。其实我们最常用的是外参矩阵,而不是这两个参数。为了便于理解,下面我挑选一种标准来讲解。

这种标准下,我们的主角变成了相机坐标系,世界坐标系变成了藉由 R  和 T  才能确定的从坐标系,具体来说:

R 表示世界坐标系相对于相机坐标系的旋转;
T  表示世界坐标系的原点在相机坐标系下的坐标。

投影矩阵

我们来简单总结一下两个矩阵的作用:内参矩阵 K可以将相机坐标系里的点投影到像平面,外参矩阵 M  可以将点的坐标从世界坐标系转换到相机坐标系。如下图:

在这里插入图片描述

这个关系写明就是:

总结

CV 要在实际中应用,那么相机是一个很重要的设备。相机的基本模型和参数也是将这一组件量化分析的基础。写这篇文章的时候查了很多资料,希望能有所帮助。

PS:头图小漫画是我自己画的,希望喜欢 XD