前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >29. 小孔相机

29. 小孔相机

作者头像
HawkWang
发布2020-04-17 15:28:48
7820
发布2020-04-17 15:28:48
举报
文章被收录于专栏:计算摄影学

在计算摄影学及本专栏介绍中,我提到一个相机由以下三部分组成:

  1. 光学部分
  2. 传感器部分
  3. 内部图像处理部分

你有没有想过,假如没有光学部分,光学直接射到传感器上,最后成像是什么样子?

请大家闭目思考5秒钟,再往下读?

我们来看看物体上的光线的传播情况,物体上每个点发出的光线会发射到传感器的每个像素上

因而每个物理点发出的光线会达到传感器上的每一个点,这时就会产生明显的模糊现象,你最终将看到这样一幅图像:

很明显,这不是你想要的。现在,让我们尝试在真实物体和传感器之间加入一个隔板,上面有一个小孔:

这时候,光线传播的情况又是如何呢?

这时候,传感器上每个像素上的光子只会由场景中的一个点所贡献,因此就会在传感器上呈现清晰的倒像。

通过上面的例子,我相信你已经感受到了光学系统的重要性。我们例子里面的光学系统是一个开有小孔的隔板,这个系统就是所谓的小孔相机。今天这篇文章我会为你细致的分析小孔相机模型,以及这个系统的各个参数的影响,并介绍一些有趣的应用。

一、小孔相机

世界上第一个小孔成像的实验,记载于大约两千四五百年前的《墨经》之中,其中是这样描述墨子和他的学生所做的实验的(下面信息引自百度百科-小孔成像)

“景到,在午有端,与景长。说在端。”

“景。光之人,煦若射,下者之人也高;高者之人也下。足蔽下光,故成景于上;首蔽上光,故成景于下。在远近有端,与于光,故景库内也。”

这里的“到”古文通“倒”,即倒立的意思。“午”指两束光线正中交叉的意思。“端”在古汉语中有“终极”,“微点”的意思。“在午有端”指光线的交叉点,即针孔。物体的投影之所以会出现倒像,是因为光线为直线传播,在针孔的地方,不同方向射来的光束互相交叉而形成倒影。“与”指针孔的位置与投影大小的关系而言。“光之人,煦若射”是一句很形象的比喻。“煦”即照射,照射在人身上的光线,就像射箭一样。“下者之人也高;高者之人也下”是说照射在人上部的光线,则成像于下部;而照射在人下部的光线,则成像于上部。于是,直立的人通过针孔成像,投影便成为倒立的。“库”指暗盒内部而言。“远近有端,与于光”,指出物体反射的光与影像的大小同针孔距离的关系。物距越远,像越小;物距越近,像越大。

墨子(公元前470年-390年)

几十年后,希腊哲学家亚里士多德(公元前384年-322年)也描述了第一个相机暗箱:

可见人类对小孔相机的认识是非常久远的。这个系统非常简洁,由下图中几大部分组成:

这里面,小孔就是相机的中心,我们也称为投影中心,而传感器所在的平面就是像平面。在这个系统中,有一些两个关键的参数影响着最终所成像的样子,接下来我为你一一介绍。

参数1:焦距

小孔所在的隔板和传感器平面之间的距离称为焦距

当我们保持物体和隔板的距离,并移动传感器改变焦距时,会有什么影响呢?

当焦距缩短一半,成像的尺寸就会缩小一半。相应的,如果焦距扩大一倍,那么成像的尺寸也会扩大一倍,如下图所示

参数2: 孔径

小孔的直径称为孔径,对应到真实相机也就是光圈直径。理想的小孔的直径是无穷小的,这当然是不可能的,那么如果孔径扩大,会有什么现象呢?

你肯定已经猜到了,孔径扩大,就会导致传感器上的一个像素由多个场景点发出的光所贡献,因此会使得成像模糊。孔径越大,就会越模糊。

你可能会想,那如果这样,是不是我们把小孔做的越小越好呢?这样画面是不是会变得更加清晰锐利呢?

按照几何光学的理论,这是对的,因为几何光学认为光是直线传播的,光是粒子。

然而,我们别忘了光的波粒二象性——光是粒子,也是波。一束波通过一个小孔后,会发生散射现象,而且小孔越小,散射现象越严重:

事实上,从傅里叶光学的角度讲,散射的模式实际上对应着小孔的傅里叶变换。越小的孔,其散射模式越宽,光的波动性更加显现,而越大的孔,其散射模式越窄,光的粒子性更加显现。

下面展示了两个模式的图示:

所以,并不是孔越小,画面就越锐利。

我们还可以再看看焦距和孔径对传感器上接受的光能大小的影响,这里直接给出结论:

  • 孔径变为两倍大,光能变大4倍
  • 焦距变为两倍大,光能变为1/4

由于孔径和焦距都会影响光能,即影响成像的亮度,因此人们还用f-number来描述两者共同的影响, f-number = 焦距/孔径

摄影领域还经常用"stop"来描述相机的曝光参数变化,1个stop的变化,会使得传感器接收到的光能变为原来的2倍或1/2

二、小孔相机的数学模型

相机实际上是把三维物体映射为二维影像,我们可以认为这个过程是3D到2D, 2D到2D的一系列映射的组合

正如我在28. 图像扭曲中所描述的,这个过程可以用如下的公式来描述,注意这里都是采用的齐次坐标

展开相机矩阵P,则有:

我们之前讲过,小孔相机成的像是一个倒像,有时候这不太方便数学计算,根据相似三角形原理,我们可以认为在小孔的前方有一个虚拟的正像:

从数学上看,相机的投影模型如下:

如果从x轴方向看过去,模型如下:

上图使得我们很容易推导出X的投影点的坐标

上面提到,一般性的投影公式如下

那么,很容易通过上面的坐标映射推导出,小孔相机的P矩阵的内容如下:

上面的投影点的坐标是位于相机坐标系下的,跟我们平常所说的图像上的坐标还有区别。相机坐标系的原点映射到图像平面时位于图像的中心,而通常来说,图像坐标系的原点则不在图像的中心,而是呈现类似下图的样子:

因此,当我们用矩阵P直接把三维点X映射到图像坐标系上的点时,还需要考虑到上述的偏移量。此时,P的内容就变为:

我们可以把P分解为下面内参数矩阵(intrinsic)和外参数矩阵(extrinsic)的乘积

也被写作:

其中,K就是所谓的内参数矩阵,有时也叫做标定矩阵,因为其中的内容都是可以通过相机标定得到的。

上面的式子中,我们还有一个前提假设,就是坐标X是用相机坐标系来刻画的,但通常来说我们更关心的是某个一般性的世界坐标系中的点如何进行映射。而世界坐标系通常来说和相机坐标系不是重合的,它们之间存在3D的旋转和平移。

于是,我们可以把世界坐标系中的点和相机坐标系中的点的关系描述如下,其中C是相机中心的世界坐标。

把这个式子带入上面的投影矩阵分解式,则有:

这样,我们可把P表示为先平移,再旋转:

有时候,为了不显式的表现出相机中心的坐标C,我们也表示为(先旋转,再平移)

最后总结一下各个矩阵的尺寸:

我们还可以继续深入探讨小孔相机的投影矩阵,但鉴于这是一门基础入门介绍课,所以就暂时不深入了。感兴趣的读者可以先参看《Multiple View Geometry for Computer Vision》的第六章,我之后还会撰文对相机模型做深入讨论。

三、透视投影

四川省科技馆里面有一个神奇的小屋,让你的两个朋友进去站在屋子的两个角落,如果你从外面的观察孔去观察,你会看到下图这样的景象(实在没有拍照,所以只能用老外的图了),很神奇吧。

这是怎么拍出来的呢?

我们看看这个神奇的小屋子的结构图:原来这两个人一个是在远处红色的地方,一个是在近处绿色的地方,而且近处比远处的地势更高。从视觉上,远处的人被映射到了粉红色块所在的位置,但尺寸变得更小了。这样一对比,两人的身高尺寸就差的更远了。

这里利用的,就是近大远小的透视投影原理,这里物体所成的像的尺寸与其物距高度相关:

通过上图,我们知道,物体成像的放大倍率与物距Z成反比,与焦距f成正比

现在问题来了,如果我们把焦距f缩短一半,把物距Z也缩短一半,我们所成的像是不是和变换之前的一样呢?

请你还是闭目思考几秒钟,再往下读?

如果物体是平面的,那么此时看到的像确实不会有什么变化。但现实中,通常是具有长宽高的立体的物体。这时候,就会有一种叫做“透视畸变”的现象会产生,它实际上反映了物体本身的近处和远处所成像的不同,依然遵循近大远小的原则。

我们可以看看同一个姑娘通过不同焦距的相机成像的结果(为了维持成像尺寸一致,物距也因此相应的变化)

可以看到,焦距缩短、物距缩短时,姑娘的鼻子由于离镜头很近,因此比头部的后面区域显得大很多,而长焦拍摄时则不存在此现象——这就是所谓的透视畸变。注意这里的畸变只和拍摄距离有关系,与我们常说的镜头本身因为制作工艺产生的畸变(径向畸变、切向畸变等)没有关系。

再用一张图给大家看看各种焦距的镜头拍摄的画面中不同的透视畸变现象:

在电影艺术中,也经常利用透视原理。有一种效果叫做DollyZoom,经常在希区柯克的电影中被采用:

这是采用在移动镜头的同时不断改变焦距得到的,由于物距和焦距同时变化,所以对焦主体的尺寸基本保持不变,而背景则会改变尺寸,这会给人一种强烈的紧张感。

我所在的团队也研究并实现了手机上的DollyZoom系统,给大家看看我们拍的视频:

四、正交投影

我们继续前面的实验,如果增大f和Z,使得f趋于无穷大,并且f/Z是一个常量,那会如何?

可以看见,如果f/Z是一个常量,那么此时投影点的坐标和原始三维点坐标仅仅相差一个固定的比例,成像缩放比例不再随着距离的变化而变化。如果f特别大,光线会接近平行于光轴传输。这时候的投影关系会变成正交投影,投影点的坐标是[X, Y,f]。此时像的大小和物体的大小接近一致:

事实上,随着f的变大,透视效应会越来越弱,投影关系会从透视投影逐渐变换为弱透视投影

透视投影时,相机矩阵P的最后一行是[0 0 1 0],而当f趋于无穷大时,相机矩阵的最后一行会变为[0 0 0 1]。这里我们不再细致展开,大家可以参考《Multiple View Geometry for Computer Vision》的第六章,获取更多详细的信息。以后在这个专栏其他的相关文章中,我还可能深入讨论。

五、总结

今天我们看到去掉光学部分的相机只能得到一个模糊的像,从而知道了相机的光学部分的重要性。因而我们认识了小孔相机模型,并看到了焦距、孔径对成像的影响。我们还看到了小孔相机的透视模型,并进一步认知了相机的投影矩阵。然后对相机的透视畸变有了直观的感觉,还看到了相应的应用DollyZoom。最后还简单的认识了正交投影。

相机的知识很多很多,本文还只是基本的入门介绍。我看过的最清晰完整的介绍还是在《Multiple View Geometry for Computer Vision》中,你也可以参考它获取更完整系统的知识。

六、参考文献

  1. CMU 2017 Fall Computational Photography Course 15-463, Lecture 14
  2. Hartley and Zisserman, “Multiple View Geometry in Computer Vision,” Cambridge University Press 2004.
  3. 百度百科-小孔成像
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算摄影学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在计算摄影学及本专栏介绍中,我提到一个相机由以下三部分组成:
  • 一、小孔相机
  • 二、小孔相机的数学模型
  • 三、透视投影
  • 四、正交投影
  • 五、总结
  • 六、参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档