发布于 2023-02-07 20:03・IP 属地北京
目录,作者:BUAA火车侠
成文日期:2022/01/05
前言
相机是可以说是现代社会中最重要的一种传感器,可能并没有之一。
在自动驾驶领域,Camera与Lidar同属第一梯队重要的传感器。一些关于“可见光的物理特性”的论述,已经在《自动驾驶传感器(一)传感的本质——电磁波的应用》中写了。本篇笔记对现代的数码相机的组成和原理展开叙述。这一主题实在是大,涉及知识点也太过庞杂。
为了使整篇笔记有一个比较清晰的脉络,我会尽力沿着 光学系统-图像传感器-信号处理-相机总体的脉络去写,如下图所示。

相机的组成:Lens、Sensor、ISP、Display,from Samsung相机的组成、成像模型、标定、光圈、快门、到CMOS、CCD、ISP等等都会谈到,一些特别基础的概念默认读者已经了解。完成施工预计3W字数,闲暇时间当作消遣慢慢写,各章节之间的联系一般不会很紧密。
开始吧~
0.1 从人眼出发人类的很多发明都借鉴了生物的特性(仿生学),而有时候这种设计和生物并不一样——比如人类想要像鸟一样飞翔,却制造出了翅膀不能扇动的飞机。对于Camera而言,其成像原理倒与人类极为相似。
人眼具备了:可以收缩拉伸的晶状体——对应可变焦的镜头;可以放大缩小的瞳孔——对应光圈的大小(阳光下和黑暗里的瞳孔大小调节); 视神经细胞——对应感光芯片,同样存在极限的分辨率;(大约1亿像素); ISP——大脑,可以处理视神经细胞传达的电信号,最终形成图像的感知; 人眼光学的投影过程亦与Camera类似;

人类眼球的解剖结构本文的展开与人眼的结构非常类似,理解人眼的解剖结构与原理应当是十分有益的。
同时,我们也要认识到人眼也具有相机一样的局限性。其作用是收集可见光波段的强度信息,且其感知的最小结构都是一个Pixel。
因此其并非这个世界的Primal Truth,许多信息被忽略了——换言之,广义上人眼也是Digital而非analog的。
1. 相机的成像模型
本节解决一个问题:3D世界如何投影到2D平面?所谓照相机,就是将现实世界的3D模型,映射为2D图像。那么这一过程中,就存在坐标系之间的的转换,即旋转(Rotation)和平移(Translation),以及从3D到2D的投影(Projection)。这一过程涉及到了四种坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。
其中,相机坐标系的Z 轴与光轴重合,且垂直于图像坐标系平面并通过图像坐标系的原点,相机坐标系与图像坐标系之间的距离为焦距f(也即图像坐标系原点与焦点重合)。
像素坐标系平面u-v和图像坐标系平面x-y重合,但像素坐标系原点位于图中左上角(之所以这么定义,目的是从存储信息的首地址开始读写)。规定坐标表示为:坐标系世界坐标系相机坐标系图像坐标系像素坐标系坐标表示Xw、Yw、ZwXc、Yc、Zcx、yu、v

成像-坐标的转换
1.1 基础:坐标转换矩阵*向量的乘法,本质上是对向量进行变换,如下述的向量旋转,由v变换到v’,用矩阵可以表述为。

向量的旋转(左)与平移(右)向量的旋转和平移可表述为:left[begin{matrix}xprime\yprime\end{matrix}right]=left[begin{matrix}cos{theta}&-sintheta\sin{theta}&cos{theta}\end{matrix}right]* left[begin{matrix}x\y\end{matrix}right] (1)
left[begin{matrix}xprime\yprime\end{matrix}right]=left[begin{matrix}x\y\end{matrix}right]+left[begin{matrix}t_x\t_y\end{matrix}right] (2)
合起来后:left[begin{matrix}xprime\yprime\end{matrix}right]=left[begin{matrix}cos{theta}&-sintheta\sin{theta}&cos{theta}\end{matrix}right]* left[begin{matrix}x\y\end{matrix}right]+left[begin{matrix}t_x\t_y\end{matrix}right] (3)
即: v’ =Rv+t 为了统一变换,转化为齐次坐标(备注:齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统,如同用于欧氏几何里的笛卡尔坐标一般)left[begin{matrix}xprime\begin{matrix}yprime\1\end{matrix}\end{matrix}right]=left[begin{matrix}cos{theta}&-sin{theta}&0\sin{theta}&cos{theta}&0\0&0&1\end{matrix}right]*left[begin{matrix}x\begin{matrix}y\1\end{matrix}\end{matrix}right]+left[begin{matrix}t_x\begin{matrix}t_y\0\end{matrix}\end{matrix}right] =left[begin{matrix}cos{theta}&-sin{theta}&t_x\sin{theta}&cos{theta}&t_y\0&0&1\end{matrix}right]*left[begin{matrix}x\begin{matrix}y\1\end{matrix}\end{matrix}right] (4)
即: v=left[begin{matrix}R&t\1&0\end{matrix}right]*v (5)
1.2 从世界坐标系到相机坐标系
上面是坐标系内“旋转”“平移”的变换,而世界坐标系下物体投影到相机坐标系下,本质上是坐标系发生了旋转和平移变换。
相机坐标系->世界坐标系X_{Camera}=left[begin{matrix}x_c\begin{matrix}y_c\z_c\end{matrix}\end{matrix}right], X_{world}=left[begin{matrix}x_w\begin{matrix}y_w\z_w\end{matrix}\end{matrix}right] (6)
left[begin{matrix}X_{Camera}\1\end{matrix}right]=left[begin{matrix}R&t\0&1\end{matrix}right]left[begin{matrix}X_{world}\1\end{matrix}right](7)
而由于旋转矩阵是正交矩阵(自己动手证明),即 A^{-1}= A^T, AA^{T}=E ,则变换可以表示为:left[begin{matrix}X_{world}\1\end{matrix}right]=left[begin{matrix}R^T&-R^T\0&1\end{matrix}right]left[begin{matrix}X_{camera}\1\end{matrix}right] (8)
根据坐标系的转换关系,也可以直接得到相机中心在世界坐标系中的位置:O_{cam}^{world}= R^TO_{cam}^{camera}-R^Tt =R^Tt (9)
1.3 针孔相机的模型
日常生活中的绝大多数相机都是通过针孔相机模型来设计的,即便是那种长枪短炮的镜头组,同样属于针孔相机模型。当然,由于制造工艺的原因,镜头组会给成像带来一些误差,包括:球差、彗差、场区、像散、畸变等等。
在不考虑这些因素的前提下,我们可以用小孔成像来描述被拍摄物体-镜头-感光芯片之间的关系。

小孔成像模型物体在A点,Z为物距,X为水平方向距离,Y为竖直方向距离,上图为水平方向截图。则根据相似:frac{Z}{f} = frac{X}{X’} = frac{Y}{Y’} (10), X’ = f cdot frac{X}{Z} , Y’= fcdotfrac{Y}{Z}(11)
归一化处理:frac{Z}{1} = frac{X}{x} = frac{Y}{y} (12)
即矩阵形式:left[begin{matrix}x\begin{matrix}y\1\end{matrix}\end{matrix}right]=frac{1}{z_c}left[begin{matrix}x_c\begin{matrix}y_c\z_c\end{matrix}\end{matrix}right] (13)
X’, Y’可表示物理像平面上点(X’,Y’),X, Y, Z为相机坐标系下物体的点 (x_c,y_c,z_c) ,那么我们可以表示为left[begin{matrix}X’\Y’\end{matrix}right]=left[begin{matrix}fcdotfrac{x_c}{z_c}\fcdotfrac{y_c}{z_c}\end{matrix}right]=left[begin{matrix}fcdot x\fcdot y\end{matrix}right] (14)
而在像素平面上的点其像素坐标 (u,v),其坐标原点在图像的左上角,而上述的物理像平面是中心为原点,因此我们需要移动坐标的原点:

像素平面坐标系left[begin{matrix}u\v\end{matrix}right]=left[begin{matrix}frac{X’}{dx}{+c}_x\frac{Y’}{dy}+c_y\end{matrix}right] (15)
dx,dy分别为图像上每一个像素点在u轴、v轴上的物理尺寸(单位为米/像素),通常普通相机的dx,dy是相等的,即每一像素的长宽等距。cx,cy 分别为图像物理坐标系原点 O′ 在图像像素坐标系下 u 轴、v 轴的坐标(单位为像素) ,通常为图片像素长宽的的一半。
整理可得:left[begin{matrix}u\v\end{matrix}right]=left[begin{matrix}frac{f}{dx}{frac{X}{Z}+c}_x\frac{f}{dy}frac{Y}{Z}+c_y\end{matrix}right]=left[begin{matrix}f_xfrac{X}{Z}{+c}_x\f_yfrac{Y}{Z}+c_y\end{matrix}right] (16),通常 f_x=f_y

写成齐次的形式:left[begin{matrix}u\begin{matrix}v\1\end{matrix}\end{matrix}right]=frac{1}{z_c}left[begin{matrix}f_x&0&c_x\0&f_y&c_y\0&0&1\end{matrix}right]left[I_{3*3}|0_{3*1}right]left[begin{matrix}X_c\begin{matrix}Y_c\begin{matrix}Z_c\1\end{matrix}\end{matrix}\end{matrix}right]=frac{1}{z_c}left[begin{matrix}f_x&0&c_x\0&f_y&c_y\0&0&1\end{matrix}right]left[I_{3*3}|0_{3*1}right]left[begin{matrix}R&t\0&1\end{matrix}right]left[begin{matrix}X_w\begin{matrix}Y_w\begin{matrix}Z_w\1\end{matrix}\end{matrix}\end{matrix}right]=frac{1}{z_c}Kleft[I_{3*3}|0_{3*1}right]left[begin{matrix}R&t\0&1\end{matrix}right]left[begin{matrix}X_w\begin{matrix}Y_w\begin{matrix}Z_w\1\end{matrix}\end{matrix}\end{matrix}right]
那么,我们可以将 K 视为相机的内参(相机坐标系到成像平面之间的转换关系), Rt矩阵 为相机的外参(它在世界坐标系下的位置)。
通过:世界坐标 -> 相机坐标 ->归一化像平面->物理像平面->像素平面这一过程,我们完成了世界坐标系下3D点投影到了图片像素坐标的2D点。
问题联想:以上是一个3D到2D降维的过程,那么,如何从2D的图像,推断出物体在世界坐标系下的3D坐标呢?REF:视觉里程计
1.4 鱼眼相机成像模型
1.4.1 菲涅尔窗口-鱼眼相机的物理学原理小孔相机的局限

相似成像:小孔相机记录半球场景时候的局限首先来看一张图:当我们用一个小孔相机记录一个半球面场景的时候,其只能记录中间的部分,越靠近边缘,其透视变形越大,其成像点也趋近于无限远。
因此实际上,小孔相机的视角是比较有限的。而且“焦距越短,视角越大”,这不难理解,试着将上图的成像平面向上移动(使焦距变短),能容纳的视角就会变大。相反,焦距越大,视角会收窄,这也就是相机通过光学变焦实现“放大图片”的原理。
当然,大部分手机上主要依靠“数码变焦”(较高端机型也会采用光学变焦),将图片的一部分进行放大,再对像素进行插值运算。也因此,过大的数码变焦会对图像质量产生较大影响,光学变焦则无此问题。相似/非相似成像 从上面的针孔相机模型可以看出,其成像过程是依靠“相似原理”,光线在经过镜头之后,并没有发生折射(实际上,由于镜头的设计和制造误差,折射是存在的,但属于被努力抑制的因素),物体与图像呈现“等比放大/缩小”的关系。
而另一种成像系统,其光线在经过镜头时候会按照一定规律发生折射,我们称之为“非相似成像”。这也就是下面要讲的鱼眼相机的原理:不再要求出射角与入射角相等,而是将大视角范围内光线经过折射后收窄,人为创造畸变,从而记录更大的视角范围,同时视角边缘的物体长度也不会被拉伸的很严重。


光的全反射
鱼眼相机的基本原理是光的全反射原理:光从高折射率进入低折射率介质时,入射角大于某临界角时候。折射光消失,所有光线都会反射,而不会进入折射率低的介质。而光从低折射率介质(空气)进入高折射率介质(Lens-玻璃)的时候,即可将大角度的入射光线收窄。
如下图所示,当一个人潜水时向上望去,光线只能从上方的一个“窗口”内透射进来,但通过这个窗口,却又可以看到水面上所有视角的信息。我们称这个窗口为“菲涅尔窗口”。

菲涅尔窗口:鱼眼相机的物理原理
那么,通过控制鱼眼镜头的形状、折射率,即可实现不同种类的投影模型。

鱼眼相机镜头组与成像
1.4.2 四种常见投影模型
常用的鱼眼镜头模型一共有四个,分别是等距投影、正交投影、等立体角投影、体视投影。其原理、投影公式、以及拍照样例,如下:

Fisheye投影类型,from WIKIPEDIA
上述4个模型都是关于入射角 theta的正切或正弦函数。而正切和正弦的泰勒展开如下:正弦:sin x=sum_{x=0}^{infty}{{(-1)}^nfrac{x^{2n+1}}{(2n+1)!} = x-frac{x^3}{3!}}+frac{x^5}{5!}-frac{x^7}{7!}+frac{x^9}{9!}-… 正切:tan x=sum_{n=0}^{infty}{frac{{(2}^{2n}-1)2^{2n}B_n}{(2n)!}x^{2n-1}= x-frac{x^3}{3!}}+frac{x^5}{5!}-frac{x^7}{7!}+frac{x^9}{9!}-…
其中{Bn}为伯努利数,满足:B_1=frac{1}{6}, B_2=frac{1}{30},B_3=frac{1}{42},B_4=frac{1}{30}
因此,四种投影方式的可用同一种通项公式表达:rleft(thetaright)=sum_{n=1}^{infty}{k_ntheta^{2n+1}=}k_1theta+k_2theta^3+k_3theta^5+k_4theta^7+k_5theta^9+… 对几种投影模式进行对比后,可以看出,体视投影模型在90°时候距离最大,为2f。

不同投影模型的关系(上传后的图片质量太差了)
1.4.3 鱼眼相机的坐标转换模型
鱼眼相机的整个成像模型同样可以由下面的步骤分析:世界坐标系 -> 相机坐标系 -> 归一化平面坐标系 -> 物理像平面 -> 像素坐标系

Fisheye lens的坐标系转换
从相机坐标系 -> 归一化的平面坐标系:left[begin{matrix}x_c\y_c\end{matrix}right]=frac{1}{Z_c}left[begin{matrix}X_c\Y_c\end{matrix}right]
归一化平面坐标系 -> 物理相平面:left[begin{matrix}X’\Y’\end{matrix}right]=left[begin{matrix}r(theta) cdot cos varphi\r(theta) cdot sin varphi\end{matrix}right] ,其中: varphi = arctan(Y’/X’) , r^2 = X’^2+Y’^2
而相平面坐标下 (rleft(thetaright),varphi)与 left(x,yright) 间的关系是:left[begin{matrix}x\y\end{matrix}right]=rleft(thetaright)left[begin{matrix}cos varphi\sin varphi\end{matrix}right]=mathcal{F}left(theta,varphiright)
替换为前5阶的展开形式:left[begin{matrix}x\y\end{matrix}right]=left[begin{matrix}k_1&k_2&k_3\k_1&k_2&k_3\end{matrix} begin{matrix}k_4&k_5\k_4&k_5\end{matrix}right]left[begin{matrix}theta\theta^3\begin{matrix}theta^5\theta^7\theta^9\end{matrix}\end{matrix}right]left[begin{matrix}cos varphi\sin varphi\end{matrix}right]=mathcal{F}left(theta,varphiright) r,f,theta
满足上述之一投影关系 r=t(f,theta)left[begin{matrix}u\v\end{matrix}right]=left[begin{matrix}f_xfrac{theta_d}{r}x_c{ + c}_x\f_yfrac{theta_d}{r}y_c+c_y\end{matrix}right]
写成齐次形式可得:left[begin{matrix}u\begin{matrix}v\1\end{matrix}\end{matrix}right]=frac{1}{Z_c}left[begin{matrix}f_xfrac{theta_d}{r}&0&c_x\0&f_yfrac{theta_d}{r}&c_y\0&0&1\end{matrix}right]left[I_{3ast3}|0_{3ast1}right]left[begin{matrix}X_c\begin{matrix}Y_c\begin{matrix}Z_c\1\end{matrix}\end{matrix}\end{matrix}right]=frac{1}{Z_c}left[begin{matrix}f_xfrac{theta_d}{r}&0&c_x\0&f_yfrac{theta_d}{r}&c_y\0&0&1\end{matrix}right]left[I_{3ast3}|0_{3ast1}right]left[begin{matrix}R&t\0&1\end{matrix}right]left[begin{matrix}X_w\begin{matrix}Y_w\begin{matrix}Z_w\1\end{matrix}\end{matrix}\end{matrix}right]
相机的内参K 与外参Rt 也就知道了。
1.5 全景相机成像模型
当然除了鱼眼相机通过镜头组设计实现全景拍摄之外,还有其他的方式能够实现全景拍摄。很容易想到的例子就是如机械激光雷达那样对相机进行旋转,然后对图像进行拼接(手机的全景拍摄功能也大体如此)。要么就是采用几个摄像头排成一圈,也能实现全景拍摄(比如ladybug),这样做无非成本高一些。

全景相机的实现:扫描、鱼眼
思考:不通过改变镜头模型来获得更大的视场角,可否通过“将成像面由平面改为曲面”的方式来获得大视场角呢?即现实中,制造一块弧形的CMOS芯片。事实上SONY早在2013年左右就制造出了弧形CMOS,但并没有获得更多的关注和应用。

曲面感光芯片示意Ref:Fisheye lens – WikipediaRotation matrix – Wikipedia
各种经典透镜投影模型 – 知乎 (zhihu.com)
鱼眼镜头是怎么「鱼眼」的? – 知乎 (zhihu.com)
一文看透鱼眼相机的畸变矫正,以及目标检测应用 – 知乎 (zhihu.com)fisheye lens field of view (shopsonline5s.ml)
鱼眼相机模型(二) – 知乎 (zhihu.com)
2. 光学系统:像差 Optical Aberration
这一章讨论光学系统成像误差的来源:理想的光学系统是不存在像差的。而由于实际镜头的制造、组装过程中,不可避免的存在加工误差,因此任何光学系统都不可能理想成像。光学相差可以分为波前像差和几何像差。前者是通过波面、光程差的观点计算得到,而几何像差则是通过折射、反射定律计算得到的。

光学像差
2.1 几何像差 Geometric Aberration
2.1.1 球差Spherical Aberration
现象:主轴上某一物点向光学系统发出的单色圆锥形光束,经光学系统折射后,如不能交于主轴上的同一位置,而是形成一弥散光斑,则此光学系统的成像误差称为球差。解决:1. 非球面透镜; 2. 正负透镜组抵消球差。

球差Spherical Aberration
2.1.2 彗差 Coma
现象:主轴外某一物点发出的光,经光学系统折射后,在成像平面上不再相交于一点,在垂轴方向也不与主光线相交,即相对主光线失去对称性。其在理想像平面处不能结成清晰点,而是结成拖着明亮尾巴的慧星形不对称弥散斑,称为慧差。
解决:彗差本质上还是因为透镜不同位置折射能力差异所导致,其校正方法和球差大体类似。

2.1.3 像散 Astigmatism
现象:主轴外某一物点的光,经该光学系统折射后,水平和垂直方向的光线具有不同的焦点,不能结成一个清晰像点,只能形成一个弥散光斑,称为像散。水平垂直的焦距差称为像散距离。
解决:镜头对称度不行的原因,提高对称度。

2.1.4 场曲 Field Curvature
现象:平面物体经光学系统结成的清晰影像,不在正后方的像平面上,而在以主轴对称的弯曲表面上,称为场曲。当调焦至画面中央影像清晰时,四周影像模糊;四周清晰则中央模糊。
解决:对称透镜组解决。

2.1.5 径向畸变 Radial Distortion
现象:平面物体主轴外的直线,经光学系统成像后变为曲线,称为畸变。畸变只影响影像的几何形状,而不影响图像清晰度,这与球差、慧差、像散、场曲有着根本区别。e data-draft-node=”block” data-draft-type=”table” data-size=”normal” data-row-style=”normal”>e data-draft-node=”block” data-draft-type=”table” data-size=”normal” data-row-style=”normal”>
解决:由球面镜头固有特性引起,在广角镜头中常见,投影存在非相似性。可在输出时通过参数标定校正,采用非球面镜头也可以。x_{correct} = x(1+k_1r^2+k_2r^4+k_3r^6…) , y_{correct} = y(1+k_1r^2+k_2r^4+k_3r^6…)

2.1.6 切向畸变 Tangential distortion
现象:“切向畸变”就是矢量端点沿切线方向发生的变化,也就是角度的变化dt。切向畸变是由于摄像机制造上的缺陷使得透镜本身与图像平面不平行而产生的,可定量描述为:x_{correct} = x+(2p_1xy+p_2(r^2+2x^2)) , y_{correct} = y+(p_1(r^2+2y^2)+2p_2xy)
解决:提升安装精度,或者后续通过参数标定校正

2.1.7 轴向色差Axial Chromatic Aberrationa
现象:白色物体向光学系统发出一束白光,经光学系统折射后,各色光不能会聚于一点上,而形成一彩色像斑,称为色差。
其原因是光学玻璃对不同波长的光线的折射率不同,短波光折射率大,长波光折射率小。轴向色差:不同波长的光线沿轴聚焦在不同的焦点上,这就是轴向色差。
解决:双胶合消色差透镜、三胶合复消色差透镜(由折射率不同的透镜胶合而成)。
根据材料色散特性不同,材料分为冕牌玻璃(色散能力较弱的材料)和火石玻璃(色散能力比较强的材料),在光学设计中可以使用这两种玻璃材料的组合对色差进行补偿。(Zemax设计仿真)

2.1.8 倍率色差
现象:在轴外方向上,不同的波长也可能会聚焦在像平面的不同点上。该横向色差导致在图像的高对比度区域中出现色带。倍率色差指的是轴外物点成像放大率随波长(折射率)的变化而变化。
解决:倍率色差是折射率与视场的函数,可通过移动孔径位置或者透镜间距的方式校正。通常使用折射率不同的透镜组成对称结构,将两个波长的光聚焦到同一平面上。
2.2 波差 Wavefront Aberration
若基于波动光学理论,在近轴区内,一个物体点发出的球面波经光学系统后仍是球面波,由于衍射现象的存在,一个物体的理想像是一个复杂的艾里斑(Airy Disk)。由于像差的存在,经过光学系统形成的波面已不是球面,这种实际波面和理想球面的偏差,实际波面和理想波面在出瞳处相切时,两波面间的光程差就是波像差,简称波差。

Wavefront Aberration & Airy DiskRef:Ref:Optical aberration – Wikipedia键盘摄影(九)——光学像差 – 知乎 (zhihu.com)
光学系统像差杂谈(3):理想的尽头 – 知乎 (zhihu.com)
Aberrations – Opto Engineering (opto-e.com)(图片来源)Coma (optics) – Wikipedia
3. 相机的标定
3.1 标定的目的
小孔模型是理论的成像模型,而实际上,镜头总会因为制造安装等原因产生径向和切向畸变(Distortion)。甚至于,鱼眼相机还会主动制造畸变以容纳更宽的视角。
而在重建三维信息过程中,我们需要利用图像平面特征点 + 特征点对应深度值 + 相机内参 + 外参,利用小孔成像模型,来计算该特征点三维坐标。此时的畸变就需要经过矫正,也即是:“相机的标定(Calibration)”。
当然,通过数据的标定只能解决上一章提到的畸变问题,其他的各种光学像差比如什么球差、彗差、场曲,则都需要通过改进透镜组来解决,俗称“钞能力”。3.2 小孔相机标定——张正友标定法关于小孔相机,最常用的还是张正友标定法,可以通过标定消除径向畸变,但忽略了切向畸变。
具体过程。这个就不写了。直接看下面这篇知乎专栏就行,十分详细:张正友标定法-完整学习笔记-从原理到实战 – 知乎 (zhihu.com)
3.2.1 考虑畸变的情况对上面的文章进行一些补充:张正友标定法,只考虑了影响最大的径向畸变,并忽略了4阶以上的畸变量。x_d=x_u[k_1(x_u^2+y_u^2)+k_2(x_u^2+y_u^2)]
y_d=y_u[k_1(x_u^2+y_u^2)+k_2(x_u^2+y_u^2)]
x_u 为理想坐标, x_d 为现实坐标。u,v 的坐标:left[begin{matrix}hat{u}\begin{matrix}hat{v}\1\end{matrix}\end{matrix}right]=left[begin{matrix}f_x&gamma&u_0\0&f_y&v_0\0&0&1\end{matrix}right]left[begin{matrix}x_d\y_d\1\end{matrix}right]
可得:hat{u}=u_0+f_x x_d+gamma y_d hat{v}=v_0+f_yy_d
同理可得:u=u_0+f_x x_u+gamma y_u v=v_0+f_yy_u
联立:hat{u}={u+(u-u}_0)left[k_1left(x_u^2+y_u^2right)+k_2left(x_u^2+y_u^2right)right] 、hat{v}={v+(v-v}_0)left[k_1left(x_u^2+y_u^2right)+k_2left(x_u^2+y_u^2right)right]
其中, u,v是理想坐标, hat{u},hat{v} 为实际像素坐标写成矩阵形式:left[begin{matrix}{(u-u}_0)left(x_u^2+y_u^2right)&{(u-u}_0)left(x_u^2+y_u^2right)\{(v-v}_0)left(x_u^2+y_u^2right)&{(v-v}_0)left(x_u^2+y_u^2right)\end{matrix}right]left[begin{matrix}k_1\k_2\end{matrix}right]=left[begin{matrix}hat{u}-u\hat{v}-v\end{matrix}right]
简写: Dk= d 则: k= D^{-1} d
理论如此,而实际上存在噪声,因此,采用极大似然估计进行优化即可;3.2.2 内参矩阵γ的解释两平面的夹角γ是由于制造误差产生的两个坐标轴偏斜参数,通常很小。
当 u,v 两轴有夹角 theta 的时候:u=frac{x-ycottheta}{d_x}{+u}_0 , v=frac{y}{d_ysintheta}v_0
写成齐次形式:left[begin{matrix}u\begin{matrix}v\1\end{matrix}\end{matrix}right]=left[begin{matrix}frac{1}{d_x}&-frac{1}{d_xtantheta}&u_0\0&frac{1}{d_ysintheta}&v_0\0&0&1\end{matrix}right]left[begin{matrix}x\y\1\end{matrix}right]
因此内参矩阵为:K=left[begin{matrix}frac{1}{d_x}&-frac{1}{d_xtantheta}&u_0\0&frac{1}{d_ysintheta}&v_0\0&0&1\end{matrix}right]left[begin{matrix}f&0&0\0&f&0\0&0&1\end{matrix}right]=left[begin{matrix}k_x&k_s&u_0\0&k_y&v_0\0&0&1\end{matrix}right]
当u,v两个轴之间的夹角是理想的90°的时候,可以看出, gamma = 0 。
REF:A Flexible New Technique for Camera Calibration, Zhengyou Zhang, IEEE TRANS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 22, NO. 11, NOVEMBER 2000.Flexible Camera Calibration By Viewing a Plane From Unknown Orientations, Zhengyou Zhang《视觉SLAM14讲》 高翔[图像]摄像机标定(1) 标定中的四个坐标系_祥的专栏-CSDN博客_坐标系 标定张正友标定法-完整学习笔记-从原理到实战 – 知乎 (zhihu.com)
4. 信号转换:CMOS与CCD图像传感器
本节介绍电子图像传感器的种类与发展,胶片式的不谈,有兴趣的自行查阅。关于PMT以及真空摄像管的内容,今后基本永远用不到,但这些知识实在有趣,所以还是写了下来。其实,关于整篇文章关于器件的内容,人们基本也用不到。但用各种算法处理了半天图像,却连图像本身是如何形成的都不知道,不能不说是一种遗憾。
4.1 图像传感器的发展
之前说过,所谓的图像传感器最根本的原理就是“光电效应”,其最基础的器件就是“光电二极管”。
那么,如何利用光电二极管实现“照相”的功能呢?我们能想到的方式有:用一个光电二极管搭配2D平面扫描机构、或一排光电二极管搭配1D线扫描机构、或使用面阵光电二极管一次性成像。
而扫描机构中,还可以有机械扫描或者电扫描,是不是有点类似于机械式激光雷达和固态激光雷达的区分?比如,打印机里面的扫描仪更多的采用机械扫描的方式,而照相机多采用面阵传感器。
很容易想到这两种方案的特点:扫描式制造相对更容易,但成像速度慢,结构体积大,不具备成为便携相机的可能性。而面阵传感器要求在很小的面积内集成千万个成像单元,其制造难度陡然提升。

图像传感器发展史
4.1.1 PMT+机械扫描
上世纪50年代,光学倍增管(Photo Multiplier Tube,PMT)出现。其工作原理是:光子在PMT入射窗处撞击光电阴极产生电子,然后电子由高压场加速,在二次加工过程中在倍增电极链中倍增发射。PMT结合了高增益、低噪声、高频率响应和大信号接收区等特征,可探测紫外,可见和近红外光谱区,提供与光强度成比例的电流输出。
因此,配合机械扫描结构,被广泛应用于医学成像,雷达干扰和图像扫描仪中。1965年-1970年,IBM、Fairchild等企业开发还了光电以及双极二极管阵列。

光电倍增管PMT
4.1.2 摄像管+电扫描
先来想一个问题:在没有CCD,CMOS的时代,人类发射的卫星是如何回传照片的?毕竟使用胶卷机的话,只能等卫星回到地球后才能取得照片。
答案是:采用真空摄像管。这个东西大家应该并不陌生,它完全就是老式电视机所使用的显像管的逆,是和显像管一起被发明并申请专利的。

摄像管与旅行者号的摄像机显像管电视的原理高中时候都学过,承载信号的电子束被磁场偏转后打在荧光屏上,发出光亮。当其以极高速度实现扫描时候,就可以呈现影像。而摄像管由光电转换和电子束扫描系统组成。
其成像可分为三个步骤:光敏元件接收输入辐照进行光电转换,并将二维光强转变为电量——(光电转化); 摄像管的电荷存储元件在一帧的周期内连续积累光敏元件产生的电量,并保持电荷量在空间的分布,存储电荷的元件称之为靶——(电荷积累与存储); 摄像管的电子枪产生空间二维扫描的电子束,在一帧的周期内完成全靶面的扫描——(转移电荷)。 正是依靠这种体积大、能耗高的摄像系统,旅行者号拍摄了太阳系所有行星的照片,为科学研究提供了宝贵的资料。

旅行者号利用摄像管拍摄的行星照片下面的链接则是70年代用摄像管相机记录的影像,十分有趣:70年代摄像管摄像机的色彩_哔哩哔哩_bilibili
4.1.3 半导体与感光芯片
而在1960年代后,半导体工业开始蓬勃发展,数以亿记的晶体管可以集成在指甲盖大小的硅晶上。而正是利用半导体技术,数百万个成像单元——光电晶体管、以及相应的信号处理电路可以集成在一块芯片上,实现光电信号转换、AD信号转换、图像处理、最终存储为计算机上的图像文件的过程。这是PMT、摄像管此类电子管无论如何也做不到的事情。
正如当年数十吨重的ENIAC和现今的电脑之对比。革命性的成果发生在1969年,贝尔实验室的Willard Boyle和George E. Smith发明了电荷耦合元件(Charge-coupled Device,CCD),这是首个高集成度的成像元件。
依靠此发明,两位发明家获得了2009年的诺贝尔物理学奖,我们应当能看出该发明的分量有多重。1995年2月,Photobit公司成立,开始将CMOS图像传感器技术实现商业化。后来,随着工艺的发展,其以更低的成本、功耗和更高的速度和集成度,逐步取代CCD成为主流的图像传感器。

2009 Nobel Prize
下面我们就分别讨论CCD和CMOS图像传感器。
4.2 CCD 与 CMOS
4.2.1 基础结构:MOSFET
先来直观地看看CCD与CMOS长什么样:如下图所示,两者看起来并无多大差别。这是非常正常的,因为从本质上说,CCD和CMOS都是场效应管(MOS,Metal-Oxide-Semiconductor)阵列。
其差别在于使用的场效应管的不同,以及信息读取方式的不同。互联网上一大堆资料,大谈特谈CMOS与CCD宏观上存在的不同点,却对上述本质原理只字不提,是人们难以形成对CCD和CMOS清晰认识的一大原因。

CMOS(左)CCD(右)下面开始回忆一些大学《数字电路》的内容。MOS的全名是“金属氧化物半导体场效应管 (wikipedia.org)” MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)。FET 场效应晶体管 简而言之,FET场效应晶体管 (Field-Effect Transistor)是一种半导体电子元件,是一种利用电场来控制电流的通断的开关:其可以根据一个输入的值(1 or 0)来决定电流的通断(1 or 0)。
这就相当于有了一个if-else的逻辑判断,故而很多FET组合在一起就可以做出更多、更复杂的逻辑判断。这种本领使得FET构成了芯片的基础。另外,当前新能源汽车的核心部件:功率半导体器件IGBT(Insulated Gate Bipolar Transistor)其实也是一种FET。
控制显示器每个像素的开关的TFT也是由一个个的MOS组成的。MOS核心——金属氧化物半导体 MOSFET是最常见的一种FET。其的特点是,用一层绝缘的材料将输入部分(电压)与输出部分(电流)分开。如果这样不够直观的话,可以参考下图最简单的MOS结构:

最简单 Metal-Oxide-Semiconductor 与 通电后的情况其上部是一金属导电层Metal,中间是SiO2绝缘层Oxide、下部则是P型半导体Semiconductor——所谓的M、O、S。当给其两端通电时,P型半导体的带正电的空穴会向下移动,带负电的电子则会聚集在上方,形成反型区,但由于绝缘层的阻挡,无法形成电流;其间会有呈现电中性的耗尽区。如此最终形成一个电容的结构,而这个结构实际上就是CCD的基础。MOSFET工作原理 MOSFET依照其“通道”(工作载流子)的极性不同,可分为“N型”与“P型” ,又称为NMOSFET和PMOSFET。
以平面增强型N沟道MOSFET为例,其基本结构如下图,从左到右为NPN的掺杂。在扩散作用下,会自然形成图中深红色的耗尽区(depletion region),而耗尽区是不能导电的,因此漏极(Drain)到源极(Source)在未加外加电场的时是断开的。

N沟道MOSFET工作原理而加入外加电压 V_{GS} ,并且该电压大于一定阈值时,即 V_{GS}>V_{TH} 时,会在绝缘层附近形成一个反型层,该层相当于N掺杂的半导体,此时Drain和Source就变为导通状态。P沟道的导通原理与N沟道大体相同。
CMOS = PMOSFET + NMOSFET CMOS本质上是一种集成电路的设计工艺,在硅质晶圆模板上制出NMOS和PMOS,由于NMOS与PMOS在物理特性上为互补性,因此被称为CMOS——互补式金属氧化物半导体(Complementary Metal-Oxide Semiconductor) 。CMOS上共存着带N(带–电) 和 P(带+电)级的半导体,这两个互补效应所产生的电流即可被处理芯片纪录和解读成影像。

CMOS结构CMOS具备了“只有在晶体管需要切换启动与关闭时才需消耗能量”的优点,其能耗低、发热少、工艺简单,早期RAM主要就是以这种电路制作的。包括CPU在内的很多芯片也都是以CMOS为基础的,它通过基本MOS单位的组合实现多种组合逻辑。正因如此,CMOS图像传感器实际上是一个图像系统:除了感光与光电转换区域,在同一块硅片上,还可以集驱动器、控制器、存储器、ISP图像处理模块,从而构成 “单片数字相机及图像处理系统”。
4.2.2 CCD 结构与原理Pixel单元结构:
CCD的全称是 Charge Coupled Device 电荷耦合器件,其Pixel单元结构就是前面提到的MOS核心结构:在P型或N型硅衬底上生长一层很薄(约120nm)的二氧化硅,再在二氧化硅薄层上依次序沉积金属或掺杂多晶硅电极(栅极),形成规则的MOS电容器阵列就构成了CCD芯片(CCD的核心就是这一个个小电容,很重要)。

CCD的单元电容结构其工作过程有四个:信号电荷产生、存储、传输 与 检测输出。信号电荷产生与存储: 通过半导体的光电效应,使得正比于光子的电子逸出,而后,在外部电压 V_{GS} 作用下,电荷被收集到靠近氧化物一侧的特定区域内,这一区域被称为“势阱”。

信号电荷的产生和存储信号电荷传输: 曝光结束之后,CCD将所收集起来的电荷包从一个像元转移到下一个像元,直到全部电荷包输出完成。
如下图,只需要改变相应位置的控制电压,即可在需要的位置形成新的“势阱”吸引电荷过去,完成电荷的转移。

电荷的转移过程我们可以看出,其电荷的转移,也是在外部电压的驱动下实现的。这个过程很像你拿着一块磁铁伸到桌子下面,隔着桌板还可以让桌子上的磁体移动一样。

CCD的电荷转运的方式,来自猫和老鼠,十分形象信号电荷检测与输出: 该步骤是将输出的电荷转化为电流/电压信号,然后最终再经过AD转换,形成数字信息。下面这张图将光电效应比作下雨,很形象的展示了CCD的工作流程。

CCD的读取流程
4.2.3 CMOS 结构与原理
原始Pixel结构:Passive Pixel 如图所示,最简的CMOS Pixel单元结构只包含了一个PN节用于感光,以及一个晶体管作为重置开关。

最小CMOS Pixel结构在光照积分期间,MOS三极管截止,光敏二极管随入射光强弱产生对应的载流子并存储在源极PN结上。而当曝光结束时,扫描脉冲加在MOS三极管栅极上使其导通。光敏二极管复位,电流在负载上流过,强度与光强成正比。当然,以上像素结构是最原始的CMOS像素结构,其读出电路完全位于像素外面,称为Passive Pixel。其受到电路噪声较大,其原因是:相对读出电路上的寄生电容,PN结的电容相对较小。因此信号的电压差相对较小,这导致其对电路噪声很敏感。 PN结信号先经过读出电路再进行放大。注入到读出信号的噪声会随着信号一起放大。
改进的Pixel结构:Active Pixel —> PDD Pixel 针对此问题,业界发明了Active Pixel:其像素内部具备了信号读出电路和放大电路。信号传出Pixel之前,就已经被读出并放大,降低了其噪声敏感性。Active Pixel结构随之成为了CMOS传感器的主流设计。该结构也被称为3T像素结构(每个像素包含3个三极管)。在这种结构中,每个像素包含一个PN结作为感光元件,一个复位三极管RST,一个行选择器RS,以及一个信号放大器SF。

Active Pixel结像素结构 和 PPD像素结构构后来为了解决复位KTC噪声,减小暗电流,引入了基于PPD结构(Pinned Photodiode Pixel)的像素结构。PPD pixel包括一个PPD的感光区,以及4个晶体管,所以也称为4T像素结构。PPD的出现,是CMOS性能的巨大突破,它允许相关双采样(CDS)电路的引入,消除了复位引入的kTC噪声,运放器引入的1/f 噪声和offset 噪声。
具体原理不赘述,可参考下面的文章: CMOS 图像传感器简介(1):像素结构_Struggler的专栏-CSDN博客_cmos图像传感器
CMOS阵列结构
CMOS的阵列结构由水平移位寄存器、垂直移位寄存器和CMOS像敏元阵列组成。

CMOS像敏元阵列结构各MOS晶体管充当扫描开关的作用,在水平/垂直扫描电路的脉冲驱动下开关。水平/垂直位移寄存器则起到寻址作用。CMOS芯片中包含了多种控制电路,比如曝光时间控制、自动增益控制、时序控制。从上面的工作模式我们可以看出,CMOS的每一个Pixel都配备了一套单独的电荷-电压转化电路(ActivePixel)。而且,其工作并不需要外部电压的驱动,这一特性使得其与CCD存在诸多不同点,我们在后面分析。
4.2.4 感光单元结构
前面分别介绍了CMOS、CCD的原理,而实际上的感光芯片的基础结构要更复杂一些。其最小单元由:微透镜、滤光器、光电二极管、金属连线层组成。微透镜为了用于汇聚光线;滤光器则只允许目标波长的光通过,其他波长的光则不会通过;金属连线层是为了传导光电二极管产生的电信号到处理单元。
前照式与背照式 对于金属连线层和光电二极管的相对位置,存在前照式(Front-illuminated structure)与背照式(Back-illuminated structure)两种布置形式。

前照式与背照式在前照式中,入射光线先要经过布线层的窗口,然后摄入光电二极管,牺牲了部分进光量。而背照式中布线层位于二极管下方,显然其成像性能更佳。但从制造工艺角度,在半导体二极管加工完成后再加工金属布线层,其难度要远小于在金属布线层的基础上加工光电二极管。也就是说,背照式的实现难度和成本远大于前照式。
颜色的感知:滤光镜阵列 CFA,Color Filter Array
关于颜色感知的基本原理,在电磁波与传感器那一篇文章已经讲到,不再重复。当前,主流的Camera Sensor几乎都输出的是Bayer mosaic格式的RAW数据,Bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer(1929 –2012)发明。Bayer CFA作为最经典的阵列,它交替的使用一组(R,G),(B,G)滤镜,其中绿色滤镜占总像素的的1/2,而R、B各占总像素的1/4,这是由于人眼对绿色更为敏感,如此设计能分辨更多的细节,同时G占据了光谱中重要且最宽的位置。
微观上单个像素只对一种光进行识别,而后应用ISP进行颜色插值处理(后面会聊到),利用三种颜色重新合成彩色。而假如没有CFA,Sensor也就无法区分光线波长,从而在后续进行颜色的合成。最终生成的图像也就是黑白图像了。颜色滤镜种类也并不局限于RGGB格式,其颜色选择、在芯片上的布置都可以根据需求调整。
比如,华为P30pro就采用了RYYB的滤镜阵列设计,用黄色滤镜代替绿色,使其拥有了较强的夜间拍摄能力。

RGGB & RYYB Bayer Filter
4.2.5 CCD与CMOS宏观差异
说完了CMOS和CCD的原理,最后再来说其宏观差异。由前面可知:CCD所有像素都最后都经过末端同一个电荷放大器,转化为电压信号。而CMOS每一个像素都会单独连接一套处理电路。以信号读取、处理方式的差异为视角,即可解释CCD和CMOS之间绝大部分外在表现差异。

CCD与CMOS的区别
成本:
工程上,CCD是紧耦合的串联系统,而CMOS可以视作是并联系统,显然并联系统失效的可能性会更低。只要CCD电荷传递链条上的一个像素坏掉,其带来的后果是几乎整个链条的失效,因而导致其良品率非常低,制造成本居高不下。而对于CMOS,单点损坏并不会对其他像素产生影响,这大大提升了其良品率。读取速度 CCD的串行读取显然慢于CMOS的并行读取。
噪声、动态范围:
而同时,由于CCD所有电荷通过同一个电荷-电压转换器、放大器、ADC,其转换的一致性很好;但CMOS中各个放大器的增益、带宽很难保持一致,因此就产生了固定模式噪声(Fixed Pattern Noise,FPN)。因此,CCD的噪声比CMOS小,动态范围也要比CMOS高。
开口率:
同时CMOS在每个像素集成的放大器和ADC都要占用一定的芯片表面积,同等面积下,CMOS可以用来感光的面积自然比CCD更小,其开口率 or 灵敏度比CCD要低。
当然,解决方案是,在信号处理电路也放在感光晶体管的底部,其表面可以全都是感光区域,这种方式叫做堆栈式(Stacked Illumination)CMOS,显然这样做会推高成本。

堆栈式CMOS
快门:
CCD 为全队报数,全局快门的成本很低,可很轻易的抑制“果冻效应”。而CMOS 主要是按列报数,大多采用卷帘快门,全局快门的成本较高。关于全局快门和卷帘快门,后面的章节会讲到。
能耗
CCD为为被动式采集,必须外加 12/18V 的电压驱动电荷移动,驱动电压还需要更加精密的电源线路设计和器件耐压设计。而CMOS 为主动式采集,光电二极管产生的电荷会直接经过独立配置的放大器,其能耗大约为CCD的 1/8 ~ 1/10。
汇总
CCDCMOS成本链式传递,良品率低,成本较高CMOS独立,周边电路的成本较低开口率高低(堆栈式CMOS开口率高)动态范围高低快门天然的全局快门,无“果冻效应”CMOS则按列报数,为卷帘快门。噪声所有的电荷经过的是一个电荷转换器,因此转换的一致性比较好,噪声小。 但可能产生电荷溢出(Blooming)Fading(电荷衰减)。抗干扰性比较强,但每一个电路比较难保持一致性。
读取CCD为逐个读取,速度慢CMOS则要快能耗CCD为被动式读取,需要外接12V/18V电源能耗约为CCD的1/10
随着CMOS技术的稳步发展,CMOS技术已经在民用市场占绝对优势,CCD仅仅在一些专业领域有所应用。CCD所具备的噪点少、动态范围高等优点,也慢慢被CMOS追赶了上来。因此CMOS的前景远好于CCD。
Ref:
图像传感器历史:
旅行者一号发射时 CCD 还没有问世,那它是靠什么照相并且回传回地球的? – 知乎 (zhihu.com)
摄像管_百度百科 (baidu.com)
Photomultiplier tube – Wikipedia
数码成像基础知识:
Photoelectric effect – Wikipedia
Photodiode – Wikipedia
电荷耦合器件 – 维基百科,自由的百科全书 (wikipedia.org)
金属氧化物半导体场效应管 – 维基百科,自由的百科全书 (wikipedia.org)
图说MOSFET – 知乎 (zhihu.com)CCD
CMOS原理:
Albert THEUWISSEN. CMOS Image Sensors : State-Of-The-Art and Future Perspectives.
ESSDERC 2007 – 37th European Solid State Device Research Conference
Junichi Nakamura etc. Image Sensors and Signal Processing for Digital Still Cameras. 2006.
Taylor & Francis
CCD CMOS传感器基本工作原理_LuchangLi 的专栏-CSDN博客_ccd传感器工作原理
什么是CMOS与CCD?——节选自《高兴说显示进阶篇之三》 – 知乎 (zhihu.com)
详解CMOS图像传感器的工作原理-电子发烧友网 (elecfans.com)(推荐阅读)
CMOS 图像传感器简介(1):像素结构_Struggler的专栏-CSDN博客_cmos图像传感器
5. 信号处理:相机的ISP(Image Signal Processing) 一堆流水账可以不看
5.1 ISP的作用
由CMOS,CCD直接导出的信号就是最初的原片Raw Image。
如下图所示,Raw Image大部分时候图像质量是非常差的。与我们肉眼看到的真实物体往往在颜色、亮度、对比度等都有较大差别,还可能存在一定的噪声。

CMOS输出的RAW Image
这是因为:镜头组和Sensor本身存在制造安装过程中的物理缺陷,而后拍摄的光线条件又多种多样。因此,一来需要相机对原片缺陷进行后期处理,使得其观感尽量还原我们肉眼看到的物体;二来还要求相机镜头和sensor能够对环境做出实时反应,正如人眼在进入昏暗环境后瞳孔放大,以接受更多进光。相机如能够输出更好的图片质量,对于后续的图像处理,以及深度学习算法都有着不小的提升。
相机中承担上述任务的就是图像处理模块 ISP(Image Signal Processing)。ISP在相机系统中占据较为核心地位,相当于是相机的“大脑”。各家手机厂商在ISP芯片和算法上投入的精力也最多。毕竟CMOS基本是Sony,OV,Samsung供货,镜头组基本是舜宇、欧菲光供货。

ISP的工作模式ISP 其实就是一个专用来处理图像的ASIC,集成了一定的控制逻辑和图像处理算法。其由ISP逻辑及运行在其上的固件Firmware组成,逻辑单元除了完成一部分图像处理外,还可以统计出当前图像的实时信息。Firmware 通过获取ISP 逻辑的图像统计信息,重新计算,反馈控制lens、sensor 和ISP的逻辑,以达到自动调节图像质量的目的。
Firmware 包含三部分:
ISP 控制单元和基础算法库;
AE/AWB/AF 3A算法库; (重要)
Sensor 库。
Firmware 设计的基本思想是单独提供3A 算法库,由ISP 控制单元调度基础算法库和3A 算法库,同时sensor 库分别向ISP 基础算法库和3A 算法库注册函数回调,以实现差异化的sensor 适配。
5.2 ISP的功能
介绍此段略过,可以阅读这篇专栏,写的非常好,学过图像处理,玩过工业相机的人,也大概都知道是怎么回事:
其中3A算法部分可以多关注以下一下
Yvon Shong:键盘摄影(七)——深入理解图像信号处理器 ISP
本章REF:
Image processor – Wikipedia
5分钟理解相机ISP(图像信号处理)_brandon2015的博客-CSDN博客(推荐阅读)
相机系统综述 —— ISP – 魅族内核团队 (meizu.com)
ISP算法介绍——–super Good_zmjames2000 Just record-CSDN博客_相机isphttps://www.dididongdong.com/archives/3722AdvancedISP.pdf (samsung.com)
ISP基本框架及算法介绍-面包板社区 (eet-china.com)
(15条消息) ISP基本框架及算法介绍_大熊-CSDN博客_isp算法
图像校正算法相关:
Defective pixel – Wikipedia
camera sensor crosstalk 详细介绍_Mr-Alins-Zhang1-CSDN博客_摄像头crosstalk测试
6. 现代数码相机原理
前面讲述了相机的成像模型(包括Pinhole和fisheye)、光学像差、标定方法、CMOS与CCD、ISP模块等。除了镜头组之外(神坑,复杂),相机的基本模块都有所涉及。这一部分则将数码相机作为一个整体来分析,叙述一些相机相关的知识。
这部分内容相对会零散一些,后面一些内容其实对工作而言已经没什么帮助了,玩过单反的应该很熟悉这部分内容,可以不看。
6.0 曝光的三要素
玩过单反的都知道,手动M档模式下,我们常调节的基本只有三个影响曝光的参数:光圈,快门,ISO。
其中,光圈和快门可以控制进光量,ISO则是调节Sensor对光的敏感度,这三种参数的调节都是倍增或倍减的关系。摄影师可以通过不同的参数组合达成相同的曝光量。比如,F32光圈下曝光1/30秒和F22光圈下曝光1/60秒得到的进光量是一样的。

曝光三要素的影响,From wikipedia
这三种要素各自又有着鲜明的特点。比如,我们都听过一些手机厂家宣传“大光圈”可以在拍人像时实现背景虚化(尽管有一些纯粹是依靠后处理算法来实现的);在不调节参数的情况下,拍摄运动的物体会出现拖影模糊;夜晚普通的相机拍出来的照片噪点非常严重。
以上所有的事实,都与快门、光圈、ISO这三大要素有关。下面就来依次介绍:
6.1 曝光一要素——快门(Shutter)
快门是相机中控制曝光时间长短的装置,通过调节快门开闭时间来调节曝光量。快门的速度序列一般为:32″、16″…..1/4、1/8、1/15、1/30 、1/60、1/125、……1/4000、1/8000等,它们之间呈现倍数关系,指“几分之一秒”的曝光时间。
快门根据开启方式分为全局快门和卷帘快门。
卷帘快门(Rolling Shutter)
我们使用一些相机时候按下快门,听到咔嚓一声,这就是相机内的机械卷帘快门发出的声响。卷帘快门相机中,感光单元从上至下逐行曝光。通过机械结构,快门的前帘和后帘打开一条缝隙,光线从缝隙穿过,成像元件从而完成曝光。此种工作模式很好的适配了CMOS芯片逐行报数的特性。

卷帘快门的读出模式
逐行曝光的特性引入了一个问题:一张照片中从上到下反映的并不是同一时刻时的景物状态,此种失真被称为果冻效应,在拍摄高速运动的物体时该现象尤其明显。
并且卷帘快门容易受到闪光同步速度的限制。闪光同步速度指相机的快门速度能够保证在闪光灯工作的时间段内,感光元件都接受到曝光。而闪光灯的脉冲时间非常短,在1/200s-1/500s之间,亮度随时间迅速变化的,如果控制不好,则会导致严重的曝光不均。
卷帘快门的“果冻效应”,From wikipedia
全局快门(Global Shutter)
“全局快门”是感光元件上所有的感光小单元同时感光。这符合CCD的感光特性,CCD是自带全局快门的。CMOS也能做成全局快门,,但结果会引入噪声,致使表现下降。
目前,一些工业相机,高端的民用相机(Sony,Canon等)都有CMOS的全局快门产品。全局快门与卷帘式快门 – 知乎 (zhihu.com)
6.2 曝光二要素——光圈(Aperture)
6.2.1 光圈的概念
光圈是相机镜头中控制光线的叶片装置,调整光圈大小可以调节通光量。光圈中心开口的大小代表光圈的数值,通常用f 系数来表示。数值越小,代表孔径的开口愈大,曝光量愈大。
光圈的数值序列通常是 f/1、f/1.4、f/2、f/2.8、f/4、f/5.6、f/8、f/11、f/16、f/22、f/32,代表了光圈的孔径。相邻两个数字是√2倍,于是面积呈2倍关系。注意,对于光圈,数值越小,反而光圈越大。

镜头的光圈,From wikipedia
6.2.2 景深的计算
光圈不仅仅控制通光量,其与“景深”也有着密切的关系。要明白景深,首先需要学习一个概念:
弥散圆 (Circle of Confusion)
成像系统中,在焦点的前后,光线从聚集到扩散,一个点的影象从圆到点,继而再次扩散成圆,这个焦点前面和后面的圆就叫做弥散圆。如果弥散圆的直径小于人眼的鉴别能力,人眼将感觉是清晰的。这个可被接受的最大直径被称为容许弥散圆直径δ (Permissible circle of confusion)。
可以看出:景深是相对的,而不是绝对的。和容许弥散圆直径 δ的取值大小有着直接的关系。弥散圆直径 δ 的取值的大小和镜头生产厂商的技术能力有关。
不同光圈对景深的影响
景深(Depth of Field,DOF)
在对焦时,景物通过镜头在焦平面上清晰成像,而对焦点的前景和后景也会在焦平面成像,只要它们成像的弥散圆小于等于容许弥散圆直径,我们则认为图是清晰的,焦点前后各两个弥散圆之间的距离,我们称呼它叫焦深。而景深则是:在被摄主体(对焦点)前后,其影像具有的一段清晰范围,这范围内的景物在焦平面上成像,都在容许弥散圆的限定范围内。所能清晰成像的最远部分和最近部分之间的距离。
景深的概念
景深会随镜头的焦距、光圈值、对焦距离的不同而变化。在上图中,我们能之间根据高斯成像公式 frac{1}{f}=frac{1}{u}+frac{1}{v} (u-物距,v-像距)计算出光圈和景深之间的关系。
F :光圈值,F=镜头的焦距除以光圈口径;
L :合焦物距(拍摄距离)景深的公式表达如下,具体推导过程省略,并不复杂,主要基于三角相似原理,可以自行推导。
前景深: Delta L_1=frac{Fdelta L^2}{f^2+Fdelta L}
后景深: Delta L_2=frac{Fdelta L^2}{f^2-Fdelta L}
景深: DOF=Delta L=frac{2f^2Fdelta L^2}{f^4-F^2 delta^2 L^2}=frac{2f^2delta L^2}{frac{f^4}{F}-delta^2 L^2 F}=frac{2f^2Fdelta L^2}{f^2- frac{delta^2 L^2 F^2}{f^2}}=frac{2f^2Fdelta}{frac{f^4}{L^2}-F^2 delta^2}
通过公式我们可以看出:
镜头光圈:景深的分母是一个关于F值单调递减的函数,所以光圈越小,F值越大,景深越大。
镜头焦距:镜头焦距f 越大,景深越小;焦距越小,景深越大;
拍摄距离:距离L 越远,景深越大;距离越近,景深越小。
光圈-景深的直观联系
大光圈-小景深取得的背景虚化效果
因此在我们实际拍照过程中,当我们需要拍摄人像、物体的时候,常常选择大光圈,以达到使拍摄主体外其他背景离焦模糊的效果。
6.2.2 超焦距
当镜头对焦在无穷远时,景深前界(离镜头最近清晰点)到镜头的距离称之为超焦距。换句话说当镜头对焦在这个超焦距点时,从这个超焦距点到相机一半的距离开始到无穷远都是清晰的。
具体的推导过程如下:
当对焦到无穷远时,认为物距 L 是无穷远:
景深前界: d=displaystyle lim_{ Lto infty}(L-Delta L_1)=displaystyle lim_{ Lto infty}(L-frac{Fdelta L^2}{f^2+F delta L})=frac{f^2}{F delta}
对焦到该点时计算后景深, d带入L : Delta L_2=frac{Fdelta L^2}{f^2-Fdelta L}=frac{f^2}{Fdelta-Fdelta}
可看到,分母为0,后景深趋于无穷。
而此时景深前界: L-Delta L_1 = d/2
6.3 曝光三要素——ISO
最后一个影响曝光的因素就是感光度。感光度的标准是由【国际标准化组织 (International Organization for Standardization),ISO】制订,所以我们将其简称为ISO。没想到吧,ISO其实并不是相机领域专业名词的缩写。
感光度的数值可以有100,200,400,800….,这些都是胶片时代的产物。数值越高,就说明对光的敏感性增强,对光通量的需求也就越低。好比采用800的ISO,所需的曝光时间就是400 ISO的一半。
胶片时代的 ISO
对于以前所用的胶卷,其改变ISO的方式是使用不同的感光颗粒。也就是说,想要改变ISO就得替换不同的胶卷。
数码相机的 ISO
数码成像本质上是基于光电效应,而其实光子打在sensor上引起电流的最小激活能量,也就是CMOS、CCD自身的感光度。而数码相机所谓的调节ISO,其实就是调节模拟信号的增益。那么,显然噪声信号也会随着一并放大。这就是为什么在夜晚拍摄时候ISO较高,噪点非常明显。
6.4 等效焦距与等效光圈
由前面可知,镜头本身的参数、焦距都会影响拍摄的视野。其实,还有另一个重要的影响视野的参数——Sensor的物理尺寸。就好比画布的大小一样。
所谓的“全画幅”概念是从胶卷继承过来的,我们称传感器面积与 35mm 底片相同的相机为全画幅相机。那么,我们保持光学系统所有参数不变,而将sensor的画幅减小,画布减小,照片的视野也就小了。于是,我们引入剪切系数,来衡量画幅的不同对成像的影响。并引入等效焦距和等效光圈的概念来比较不同画幅下不同焦距和光圈的成像效果。
相机Sensor画幅大小
6.5.1 等效焦距
所谓等效焦距,是指由于画幅的变化,相机视野的变化而导致焦距的变化。如 4/3 画幅,由于其 CMOS 面积几乎为全画幅的 1/4,其可取拍摄面积只是全画幅的1/4。
那么可以理解为:使用焦距 f 的残幅相机所看到的景色 = 使用全画幅相机在2f 焦距下看到的景色。于是,我们称呼此残幅相机的35mm 等效焦距为 2f。等效焦距本质上描述的是视角的等效,它的表达更加简洁直观,解决了计算三角函数的麻烦。
如图所示,相机的视角同焦距之间的关系是: fov = 2* arctan(frac{W}{2f})
相机的视角
6.5.2 等效光圈
同理,等效光圈的意思是:在画幅不同的情况下,可以根据各自的等效光圈值来进行比较景深、弱光性能以及同结构下的分辨率等效果。
景深的等效
理论上来说,只有位于某一特定平面的点光源(点 A)所发散出的光线才可以被镜头在底片上重新还原为一个点(A’)。偏离点A所在平面的点光源(B)将汇聚在另一平面上(B’),导致其在底片上形成一个光斑,也就是所谓的弥散圆(直径为 delta )。
B 点离 A 点越远,则弥散圈越大,大到一定程度后 B 点便被虚化。A 点前后能清晰成像(弥散圆直径小于一定值)的范围被称为景深。根据相似三角形可知
frac{v_a-v_b}{delta} = frac{v_b}{D}
而光圈 F 的定义实质为焦距和孔径的比值(因为成像亮度不是跟光圈孔径有关,而是与焦距/光圈孔径有关) F = frac{f}{D} ,而根据高斯成像公式 frac{1}{u}+frac{1}{v}=frac{1}{f}
可得: delta=frac{(u_b-u_a)f^2}{(u_a-f)u_bF}≈frac{(u_b-u_a)f^2}{u_au_bF} (一般物距远大于焦距)
用有大小不同的两块底,大底的边长是小底的 x 倍,f1 为标式真实焦距,其等效焦距为 f_x = f_1/x (所以 x 是底的幅面系数,1/x 是裁切系数)
而使用了不同的画幅,因为不同幅面感光元件,其容许弥散圆的大小是不一样的,也就是说同样大小的弥散圆,在大底相机上可能清晰成像,但是在小底片上就会非常模糊。所以我们得比较弥散圆直径相比传感器的相对大小为虚化程度:
Deltadelta=frac{delta}{x}=frac{(u_b-u_a)f^2}{u_a u_bFx}=frac{(u_b-u_a)x^2f_x^2}{u_a u_bFx}=frac{(u_b-u_a)f_x^2}{u_a u_bF}x
所以小底相机在使用同样的光圈 F 值的情况下,其实际虚化程度只有大底相机的 1/ x。为了补偿这一差距,达到相同的虚化程度,小底相机需要将光圈孔径开大 x 倍。
所以小底相机此时光圈值为 F 时的虚化效果,等效为大底相机光圈值为 xF 时的虚化效果,这就是等效光圈。
根据公式我们可以看出:
当物距固定,使用相同的底,即底的幅面 x 固定,和同样标示焦距 f_1 的镜头,那么光圈越大,F 数字越小,虚化程度越大。
当使用相同的底,即底的幅面 x 固定,光圈 F 固定,那么物距(对焦距离) u_a 越小,函数关于 u_a 单调,虚化程度越大。
当使用相同的底,即底的幅面 x 固定,光圈 F 固定,物距 u_a 固定,则焦距 f_x 越长,虚化程度越大。
当物距 u_a 固定,等效焦距 f_x 固定,光圈数 F 固定,则底的幅面 x 越大,虚化程度越大。
除了景深的等效,等效光圈还引出了其他的概念,如等效的暗光性能,衍射,但由于内容过于考究枯燥,笔者也未能完全理解和转述清楚,有兴趣可以参考上述链接。
6.5 相机的扫描方式
CMOS相机一般通过行、列选择电路激活像素,读出信号。行列选择逻辑单元可以采用隔行扫描(Interlace Scanning)或者逐行扫描(progressive scanning)。一般工业相机会采用逐行扫描,而民用相机会采用隔行扫描,在有限带宽下取得更高的刷新频率。
隔行扫描
REF:
Shutter (photography) – Wikipedia
Rolling shutter – Wikipedia
Aperture – Wikipedia
用了一堆黑科技,为何手机拍照还是差(快门篇) (360doc.com)
机械快门与电子快门的区别是什么? – 知乎 (zhihu.com)
光学成像原理之景深(Depth of Field)_mingjinliu的博客-CSDN博客_景深公式
景深计算公式的推导_CSDN

发表回复