Skip to content

LV030-数字图像传感器简介

一、传感器分类

我们通过光学部分将光汇聚在传感器上成像之后,就需要利用传感器获取图像信息。目前,相机传感器可以分为单个传感器、条带传感器(包括环形条带传感器)和阵列传感器。下面简单了解一下。

这部分网上看的教程都看的不是很懂,这个时候可以看《数字图像处理(第三版)冈萨雷斯

1. 单个传感器

也许最熟悉的这类传感器是光二极管,由硅材料构成,并且其输出电压波形与入射光成正比。在传感器前面用一个滤光器改善选择性。例如,光传感器前面 的绿色(通过)滤光器有利于彩色谱的绿波段光通过。因此,传感器输出的绿光比可见光谱中的其他分量要强。

为使用单一传感器产生二维图像,在传感器和成像区域之间必须有 x 方向和 y 方向的相对位移。如下图:

在这里插入图片描述

图 1 单个传感器通过运动来生成二维图像

这是一个用于高精度扫描的配置,其中底片安装在一个鼓上,鼓的机械转动提供了一个维度的位移。单个传感器安装引导螺杆上,它提供与转动相垂直的方向上的移动。因为机械运动可高精度地控制,所以这一方法是得到高分辨率图像的一种廉价方法(但速度较慢)。

另一种类似的机械配置使用一个平面床,传感器则在两个方向线性移动。这些类型的机械数字化仪有时称为微密度计。

使用单个传感器成像的另一个例子是将一个激光源和传感器放在一起。使用镜子来控制扫描模式的发射光束,并将反射的激光信号引导到传感器。这种配置也可使用条形或矩形传感器获取图像。

2. 条带传感器

条带传感器的单元阵列分布如下:

image-20251105191122015

比单个传感器更常用的几何结构是由内嵌传感器形式组成的传感器带,如下图:

image-20251105190334318

图 2 线性条带传感器获取图像

该传感器带在一个方向上提供成像单元。垂直于传感器带的运动在另一方向上成像。这是大多数平板扫描仪中使用的排列方式。感知设备可能内嵌有 4000 个或更多的传感器。内嵌传感器常用于航空成像应用中, 在这种应用中, 成像系统安装在一架飞行器上, 飞行器以恒定的高度和速度飞过被成像的地区。可响应各种电磁波谱波段的一维传感器带按垂直于飞行方向来安装。成像传感器带一次给出一幅图像的一行, 传感器带的运动完成二维图像的另一个维度。透镜和其他聚焦方法用于把扫描区域投影到传感器上。

以圆环形方式安装的传感器带用于医学和工业成像, 以得到三维物体的剖面("切片")图像, 如下图:

image-20251107191812912

图 3 环形条带传感器获取图像

一个旋转的 X 射线源提供照射, 射线源对面的传感器则收集穿过物体的 X 射线能量(很明显, 这些传感器必须对 X 射线敏感)。这就是医学和工业计算机轴向断层(CAT)成像的基础。注意, 传感器的输出必须由重建算法处理, 重建算法的目的是把感知数据转换为有意义的剖面图像。换句话说, 图像不可能单靠传感器的运动直接得到; 它们需要进一步的处理。由图像堆叠组成的三维数字物体是由物体与传感器环在相垂直方向的运动产生的。基于 CAT 原理的其他成像模式包括核磁共振成像(MRI)和正电子发射断层(PET)成像。照射源、传感器和图像的类型是不同的, 但概念上它们与上图所示的环形条带传感器基本成像方法非常相似。

3. 阵列传感器

阵列传感器的单元阵列分布:

阵列传感器是数字相机中采用的主要传感器,例如 CCD 阵列传感器,CMOS 阵列传感器。它具有较宽范围的传感特性,并能封装成具有大量单元的稳定阵列,其主要优点是将能量聚焦到阵列表面即可获取到一张完整的图像。

二、怎么记录画面

1. 怎么把光转化成电信号?

光电二极管原理: 爱因斯坦发现在高于某特定频率的电磁波照射下,某些物质内部的电子吸收能量后逸出而形成电流,这被称为“光电效应”(下图)。

在这里插入图片描述

然后我们要是把一个光电二极管和电容并联:

image-20251107192944476

光照到光电二极管上面,光强就转换成了二极管的电流。通过并行的电容存储起来,就转换成了对应的电压。光照越强,照射时间越久,那么电容的电压就越大。某个时候我们把电容两端的电压通过 AD 转换成数字信号,就可以得到一个电信号的数字化的值了。这里可能不是很准确,但是大概的原理是这样子的。

2. 黑白图像

如果把上面的光电二极管排列成一个矩形,那么就可以得到一个光电二极管的矩形阵列,这样我们就可以得到一个区域的电信号数字化值了。如下图所示:

image-20251107201425139

景物通过小孔成像,投射到一个阵列的 sensor 上面,通过每个点的光电二极管的感光值,然后经过 AD 转换就可以得到一个矩形的数字化值了。把这些数字化的值按照某种规定,比如最大 255 表示白色,最小 0 表示黑色,0~255 之间的值就表示某种强度的灰色值,那么在屏幕或者纸面上显示出来,就是一副黑白图像了。这就是黑白图像的成像原理。

3. 彩色图像?

怎么表现色彩了,很简单,牛顿已经告诉我们了,用棱镜可以把白光分成多个颜色,而且光的三原色就是红绿蓝,我们只需要记录这三种颜色就可以了。那么彩色摄像机 1.0 的结构就出来了。

img

光通过镜头进来,我们先通过棱镜把它分成三种颜色,红,绿,蓝。每种颜色用一颗光电二极管阵列记录下来,合起来就是一幅图了。但是,这会有两个问题:

(1)如果三个色彩要拼成一副图像,那么棱镜分解后的光到每个感光阵列的角度和距离要是一模一样的。这个工程实现十分困难,在 sensor 发明的那个年代肯定是做不到的。

(2)为了得到一幅彩色图像,需要三个感光阵列,成本太高。

4. Bayer Pattern

参考:01-图像/01-图像基础/LV001-图片的起源.md

怎么办呢?有没有更好的办法呢?当然有,我们的主角 Bayer 出现了,提出了 Bayer pattern。那就是在每个光电二极管前面加一个 滤光单元,只允许红绿蓝其中一种颜色透过。如下图所示:

img

光源经过 Bayer Filter 后,只有特定颜色的光可以穿过相应颜色的滤波器。然后我们的数据采集过程就变成了下图这样:

img

Bayer pattern 又叫 RGGB pattern,如下所示:

image-20251107202657553

对于二极管的感光阵列(又叫 image array), 每 4 个点作为一个整体。其中一个点只能通过红色光,一个点只能通过蓝色光,两个点能通过绿色光。这就是 Bayer patten。Image array 可以看作 Bayer pattern 的不断复制:

img

这样,我们只要知道第一个点是通过什么光:红,绿,还是蓝,就能知道 image array 每个点的滤光情况了。然后,根据 Image array + sensor patten 我们就可以得到每个点的红,绿,蓝的值了。怎么得到了,这就是 ISP 需要做到,插值 或者叫 去马赛克。比如,第一个点是蓝色,那么我们可以通过它周围的绿色点预测出第一个点的绿色的值大概是多少,同样红色值也是如此(具体怎么实现的,后面有机会学 ISP 的时候在学习吧,这里了解一下)。

为什么 Bayer patten 绿色点是两个,而红色蓝色点是是一个呢?那是因为人眼对绿色的敏感程度恰好是红色或者蓝色的两倍,这样把两个点分给绿色最符合人眼的习惯,也就能得到最符合人眼的视觉的图像了。

最近几年,随着手机,车载等各个方面的创新,各种其他的 Pattern 层出不穷,比如:RGGB/RCCB/RCCG/RGBIR Pattern:

img

三、传感器的构造

1. 基本结构

阵列传感器的基本结构如下:

在这里插入图片描述

微透镜可以帮助光电二极管收集更多的光,颜色滤镜可以吸取固定颜色的光线,光电二极管负责将光子转换为电子,势阱负责存储电子。

2. 颜色滤镜原理

这里再详细的来看一下

2.1 什么是颜色

光是一种电磁波,光的颜色并不是客观属性,客观属性是光的波长。下图展示了几乎完整的电磁波谱,而我们人眼所能看到的只是其中 400nm—700nm 的一小段,而颜色则是我们对这一小段电磁波的主观感觉而已。

在这里插入图片描述

在如上电磁波谱图中,从左到右,光波(Wavelength)长度逐渐变长,频率(Frequency)逐渐变小。注意: 波长越短,频率越大,则热量越高;波长越长,则频率越小,相应的热量越低。这也为什么紫外线和一系列射线会危害人体生命安全的原因。

人眼对颜色的主观感受与入射光的 功率谱分布(SPD) 和人眼对不同光源的 光谱敏感度(spectral sensitivity) 都有关。我们接下来分别探讨这两个概念。

2.2 光源的功率谱分布(SPD)

在日常生活中,我们常常会发现不同光源所发出的颜色有所不同,正如下图所示:

在这里插入图片描述

那么如何形容不同光源所发出的光?

通常光源是由多个波长的光所组成,而每种波长的光的功率一般都不一样。例如画出每种波长的功率与它波长之间的关系,我们就可以得到光源的 功率谱分布(SPD)。如下图(不同光源的功率谱分布)所示:

在这里插入图片描述

2.3 光谱敏感度函数(SSF)

我们提出颜色只是人眼对光的主观感觉,那么人眼对不同波长的敏感度将会决定最终人眼所看到的颜色。实际上 人眼包含三种对不同光波敏感的视锥细胞,对光波的敏感度可以用光谱敏感度函数(SSF) 来表示。最终的感觉由这三种细胞的响应共同构成:

"short": S=λΦ(λ)S(λ)dλ"medium": M=λΦ(λ)M(λ)dλ"long": L=λΦ(λ)L(λ)dλ

这里用 Φ(λ) 表示入射光线的 SPD,f(λ) 表示人眼的 SSF,传感器为了模拟人眼成像的原理,同样对不同波长的入射光线会有不同的敏感度,可以用 光谱敏感度函数 (SSF) 来衡量。 传感器对入射光的响应是一个累加了对所有光波响应的值,表示为:

(1)R=λΦ(λ)f(λ)dλ

如公式(1)所示,传感器对光波的响应是入射光 SPD 与传感器本身的 SSF 乘积的积分。

2.4 颜色滤光阵列(Color Filter Array)

从上面的讨论中我们知道了人眼对不同的光波有着不同的 光谱敏感度函数,那么传感器如何模拟人眼的 SSF?这里涉及到两个问题:

(1)如何设计滤光静对不同光线的敏感度;

(2)如何设计不同颜色滤光镜的最佳空间排列。

在传感器中,颜色滤镜以预先设定好的形式来排列,构成颜色滤光阵列(Color Filter Array)。那什么是颜色滤镜?

数码相机中使用数百万个微小的感光元来记录图像:

在这里插入图片描述

感光元捕获图像信息

当按下相机的快门并曝光时,每个感光元都会收集光子并转换为电子进行存储。当曝光结束、快门关闭时,相机将尝试测量电信号的强度来评估每个感光元中的电子数量,然后将电信号量化为数字信号,其数字精度由图像位深确定。例如 JPEG 照片的图像深度为 32 位,有 RGB 三种颜色,将用 8 位二进制存储每一种颜色的数值,那么对于一种颜色的像素值就有 2^8 = 256 种情况,可以发现:位数越高,则颜色越精细。

但是存在一个问题:感光元无法区分每种颜色电子的数量,因此通过上述方法只能捕获灰度图像。为了捕获彩色图像,我们必须为每一个感光元上方设置一个滤镜,该滤镜仅允许特定颜色的光子通过:

在这里插入图片描述

颜色滤镜过滤颜色

从上图可以得知:每一个感光元只会捕获三种原色之一,会丢弃 23 的入射光。因此为了尽可能多地捕获图像的色彩,我们就需要设置合理的颜色滤镜阵列。如何设置颜色滤光阵列是一个很热门的研究领域,不同的颜色滤光阵列:

在这里插入图片描述

各种类型的颜色滤光阵列

到目前为止,我们常用是 Bayer 颜色滤光阵列。以 2 × 2 的小区域来看,Bayer 阵列包含的绿色传感器是红色或蓝色传感器的两倍。这样设计的原因有两个方面:① 人眼对绿色更为敏感,所以使用了更多的绿色滤光片采集绿色;② 与每种颜色均等相比,带有绿色像素的冗余所产生的图像看起来噪声更少,并且具有更好的细节。

设置颜色滤光阵列的过程,其实就是模拟人眼的 SSF,不同的颜色滤光阵列会很大程度上影响最终图像的色彩。下图是 Canon 40D 和 50D 的光谱敏感函数图的比较。每个相机厂商,甚至是同一厂商的不同型号的相机传感器的 SSF 都可能存在不同。

在这里插入图片描述

3. 小结

  • 感光单元(像素)的核心:光电二极管

无论是 CCD 还是 CMOS 传感器,其感光元件单元(Pixel)本质上是半导体构成的 光电二极管。当光子射入像素区域并被半导体材料(通常为硅)吸收后,会在像素的势阱中产生电子-空穴对。电子受势阱吸引积累形成电荷信号。积累的电子数与入射光子量基本呈线性关系,从而实现光强信号的转换。

  • 传感器与光学滤镜阵列

在传感器表面通常有微透镜阵列(Microlens Array)聚焦更多光线进入各像素,从而提高光电转换效率。此外,绝大部分彩色数码相机传感器还覆有拜尔滤色阵列(Bayer Filter),由红、绿、蓝(RGB)三色滤色片分布在各像素上,使每个像素对特定色彩波段敏感。最终通过后续插值处理(Demosaicing)重建完整的彩色图像。

参考资料:

相机(Camera)成像原理详解_相机成像原理-CSDN 博客

PBR 来龙去脉篇一:光和人眼感知颜色_人眼亮度敏感曲线-CSDN 博客

图像传感器原理介绍 (史上最详细的 CCD 和 CMOS 介绍)_微视界

全面详细解析 CMOS 和 CCD 图像传感器 - 吴建明 wujianming - 博客园

CMOS 图像传感器的参数和评价标准_cmos 弱光-CSDN 博客

工业相机与镜头靶面尺寸的关系:从原理到选型的避坑指南 - 教程 - ljbguanli - 博客园

(3 封私信) 工业相机的靶面是什么?它影响了哪些因素? - 知乎

(3 封私信) 键盘摄影(五)——相机成像元件:CMOS/CCD - 知乎

Camera 和 Image sensor 技术基础笔记(1) -- 光和 CCD/CMOS sensor 基础知识_sensor blooming-CSDN 博客