很多数字相机采用电荷耦合器件(CCD)作为其感光元器件。CCD 的原理很简单:我们可以把它想象成一个没有盖子的芯片,上面整齐地排列着很多小的感光单元,光线中的光子撞击每个单元后,在这些单元中会产生电子(光电效应),而且光子的数目与电子的数目互成比例。但在这一过程中,光子的波长并没有被转换为任何形式的电信号,换言之,CCD 裸芯片实际上都没有把色彩信息转换为任何形式的电信号。那么采用 CCD 作为感光元件的彩色数字相机是如何生产彩色图像的?其图像存在哪些优缺点?本文将回答这个问题。
1. 相机的芯片类型
一般情况下,工业相机按照芯片类型可以分为CCD相机和CMOS相机,当然也有一些其他的芯片,比如富士公司生产的Super CCD芯片。这里我们只讨论市场主流的CCD相机和CMOS相机的工作原理。数码相机的CCD和CMOS都深藏于相机内部,就算您有机会看到它们的样子,也很难进行区分。
CCD芯片工作原理,如图所示:
在感光像点接受光照之后,感光元件产生对应的电流,电流大小与光强对应,因此感光元件直接输出的电信号是模拟的。在CCD传感器中,每一个感光元件都不对此作进一步的处理,而是将它直接输出到垂直寄存器,传到水平寄存器中,最后才能形成统一的输出。由于感光元件生成的电信号实在太微弱了加上在此过程中会产生大量电压损耗,无法直接进行模数转换工作,因此这些输出数据必须做统一的放大处理—这项任务是由CCD传感器中的放大器专门负责,经放大器处理之后,每个像点的电信号强度都获得同样幅度的增大;因信号只通过一个放大器进行放大,所以产生的噪点较少。但由于CCD本身无法将模拟信号直接转换为数字信号,因此还需要一个专门的模数转换芯片进行处理,最终以二进制数字图像矩阵的形式输出给专门的DSP处理芯片。
而对于CMOS传感器,上述工作流程就完全不适用了。CMOS传感器中每一个感光元件都直接整合了放大器和模数转换逻辑,当感光二极管接受光照、产生模拟的电信号之后,电信号首先被该感光元件中的放大器放大,然后直接转换成对应的数字信号。换句话说,在CMOS传感器中,每一个感光元件都可产生最终的数字输出,所得数字信号合并之后被直接送交DSP芯片处理,问题恰恰是发生在这里,CMOS感光元件中的放大器属于模拟器件,无法保证每个像点的放大率都保持严格一致,致使放大后的图像数据无法代表拍摄物体的原貌—体现在最终的输出结果上,就是图像中出现大量的噪声,品质明显低于CCD传感器,不过目前这方面的技术已大幅改善。
2. 单色相机成像原理
我们首先从相对简单的黑白数字相机入手。
如图所示,物体在有光线照射到它时将会产生反射,这些反射光线进入镜头光圈照射在 CCD 芯片上,在各个单元中生成电子。
曝光结束后,这些电子被从 CCD 芯片中读出,并由相机内部的微处理器进行初步处理。此时由该微处理器输出的就是一幅数字图像了。
3. 彩色相机的成像方案
3.1. 三棱镜
CCD 芯片按比例将一定数量的光子转换为一定数量的电子,但光子的波长,也就是光线的颜色,却没有在这一过程中被转换为任何形式的电信号,因此 CCD 实际上是无法区分颜色的。
在这种情况下,如果我们希望使用 CCD 作为相机感光芯片,并输出红、绿、蓝三色分量,就可以采用一个分光棱镜和三个 CCD,如图所示。棱镜将光线中的红、绿、蓝三个基本色分开,使其分别投射在一个 CCD 上。这样以来,每个 CCD 就只对一种基本色分量感光。
这种解决方案在实际应用中的效果非常好,但它的最大缺点就在于,采用 3 个 CCD + 棱镜的搭配必然导致价格昂贵。因此科研人员在很多年前就开始研发只使用一个 CCD 芯片也能输出各种彩色分量的相机。
3.2. 滤光片
如果在 CCD 表面覆盖一个只含红绿蓝三色的马赛克滤镜,再加上对其输出信号的处理算法,就可以实现一个 CCD 输出彩色图像数字信号。由于这个设计理念最初由拜尔(Bayer)先生提出,所以这种滤镜也被称作拜尔滤镜。
如图所示,该滤镜的色彩搭配形式为:一行使用蓝绿元素,下一行使用红绿元素,如此交替;换言之,CCD 中每 4 个像素中有 2 个对绿色分量感光,另外两个像素中,一个对蓝色感光、一个对绿色感光。从而使得每个像素只含有红、绿、蓝三色中一种的信息,但我们希望的是每个像素都含有这三种颜色的信息。
拜耳滤镜的实现方式,不同的传感器厂商有不同的解决方案,最常用的做法是覆盖RGB红绿蓝三色滤光片,以1:2:1的构成由四个像点构成一个彩色像素(即红蓝滤光片分别覆盖一个像点,剩下的两个像点都覆盖绿色滤光片),采取这种比例的原因是人眼对绿色较为敏感。而索尼的四色CCD技术则将其中的一个绿色滤光片换为翡翠绿色(英文Emerald,有些媒体称为E通道),由此组成新的R、G、B、E四色方案。不管是哪一种技术方案,都要四个像点才能够构成一个彩色像素。
所以接下来要对这些像素的值使用 “色彩空间插值法” 进行处理。
以上图中左下角的红色区域为例,我们需要的是丢失了的绿色与蓝色的值。而插值法可以通过分析与这个红色像素相邻的像素计算出这两个值。在这个例子中,算法发现该区域像素绿色像素均含有大量电荷,但蓝色像素电荷数为零,所以可以计算出,这个红色像素实际上是黄色的。
如果以上图为例对 3 CCD 的成像结果与单 CCD + 色彩插值处理后的结果进行比较,我们将发现所得图片完全一致。但该结论仅对这幅图像成立!因为这副图片色彩对比简单、边界规则。而在实际应用中,即使最成熟的色彩插值算法也会在图片中产生低通效应。所以,单 CCD 彩色相机生成的图片比 3 CCD 彩色相机生成的图片更加模糊,这点在图像中有超薄或纤维形物体的情况下尤为明显。但是,单 CCD 彩色相机使得 CCD 数字相机的价格大大降低,而且随着电子技术的发展,今天 CCD 的质量都有了惊人的进步,因此大部分彩色数码相机都采用了这种技术。
这里介绍两种简单的插值方式:
3.2.1. 临近像素复制法
填补缺失的色彩值的最简单方法就是从临近像素中获取色彩值。以拜尔滤镜中第二行第一个绿色像素为例,在源图像中该点实际是红色的,但经拜尔滤镜中绿色镜片过滤后,该点色值为零。我们只需要把临近红蓝像素中的红色与蓝色值复制到该像素中,就能获得其 RGB 值(255,0,0)。
就此例而言,这种插值法计算出了正确的 RGB 值。但在实际应用当中,对于静止图像,这种简单的插值法所生成的结果是不可接受的。但由于它算法简单且不耗费多少时间,我们可以将其用于对图像质量要求不高的视频数据流中(例如视频预览)。
3.2.2. 临近像素均值法(双线性插值)
我们可以对 “复制插值法” 作出的最直接改进就是使用若干临近像素的均值。如下图所示,这种方法对于上例中的象素点,同样可以计算出正确的 RGB 值(255,0,0)。
但针对图中第二个示例像素点的计算指出了均值法的一个重大缺陷:均值法有低通特性,并由此将清晰的边界钝化。如该点 RGB 值本应是(255,0,0),但计算后变成了(255,128,64),即由红色变成了棕橙色。
今天相机中所使用的插值法的性能要大大高于前面介绍的这两种基本方法。A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras一文 对这些算法做了很好的介绍和比较。
4. 相机接口类型
4.1. GIGE千兆网接口
千兆网协议稳定,该接口的工业相机是近几年市场应用的重点。使用方便,连接到千兆网卡上,即能正常工作。
在千兆网卡的属性中,也有与1394中的Packet Size类似的巨帧。设置好此参数,可以达到更理想的效果。
传输距离远,可传输100米。可多台同时使用,CPU占用率小。
4.2. USB2.0接口
所有电脑都配置有USB2.0接口,方便连接,不需要采集卡。
USB2.0接口的相机,是最早应用的数字接口之一,开发周期短,成本低廉,是目前最为普通的类型,缺点是其传输速率较慢,理论速度只有480Mb(60MB)。
在传输过程中CPU参与管理,占用及消耗资源较大。USB2.0接口不稳定,相机通常没有坚固螺丝,因此在经常运动的设备上,可能会有松动的危险。传输距离近,信号容易衰减。
4.3. USB3.0接口
USB 3.0的设计在USB 2.0的基础上新增了两组数据总线,为了保证向下兼容,USB 3.0保留了USB 2.0的一组传输总线。
在传输协议方面,USB 3.0除了支持传统的BOT协议,新增了USB Attached SCSI Protocol (USAP),可以完全发挥出5Gbps的高速带宽优势。
由于总线标准是近几年才发布,所以协议的稳定性同样让人担心。传输距离问题,依然没有得到解决。
4.4. Camera Link接口
需要单独的Camera Link接口,不便携,导致成本过高。传输速度是目前的工业相机中最快的一种总线类型。
一般用于高分辨率高速面阵相机,或者是线阵相机上。
传输距离近,可传输距离为10米。
4.5. 1394(火线)
1394接口,在工业领域中,应用还是非常广泛的。协议、编码方式都非常不错,传输速度也比较稳定,只不过由于早期苹果的垄断,造成其没有被广泛应用。
1394接口,特别是1394B口,都有坚固的螺丝。1394接口不太方便的地方是其未能普及,因此电脑上通常不包含其接口,因此需要额外的采集卡,传输距离仅为4.5米。
占用CPU资源少,可多台同时使用,但由于接口的普及率不高,已慢慢被市场淘汰。
5. 线阵和面阵相机
5.1. 面阵
上面我们所说的相机均属于面阵相机,相机像素是指这个相机总共有多少个感光晶片,通常用万个为单位表示,以矩阵排列,例如3百万像素、2百万像素、百万像素、40万像素。百万像素相机的像素矩阵为WH=10001000。相机分辨率,指一个像素表示实际物体的大小,用um*um表示。数值越小,分辨率越高。
5.2. 线阵
线阵相机是一类特殊的视觉机器。与面阵相机相比,它的传感器只有一行感光元素,因此使高扫描频率和高分辨率成为可能。线阵相机的典型应用领域是检测连续的材料,例如金属、塑料、纸和纤维等。被检测的物体通常匀速运动 , 利用一台或多台相机对其逐行连续扫描 , 以达到对其整个表面均匀检测。可以对其图象一行一行进行处理 , 或者对由多行组成的面阵图象进行处理。另外线阵相机非常适合测量场合,这要归功于传感器的高分辨率 。
6. 相机常见参数介绍
-
分辨率(Resolution)
相机每次采集图像的像素点数(Pixels),对于工业数字相机一般是直接与光电传感器的像元数对应的,对于工业数字模拟相机则是取决于视频制式,PAL制为768576,NTSC制为640480。
-
像素深度(Pixel Depth)
即每像素数据的位数,一般常用的是8Bit,对于工业数字数字相机一般还会有10Bit、12Bit等。
-
最大帧率(Frame Rate)/行频(Line Rate)
相机采集传输图像的速率,对于面阵相机一般为每秒采集的帧数(Frames/Sec.),对于线阵相机机为每秒采集的行数(Hz)。
-
曝光方式(Exposure)和快门速度(Shutter)
对于工业线阵相机都是逐行曝光的方式,可以选择固定行频和外触发同步的采集方式,曝光时间可以与行周期一致,也可以设定一个固定的时间;面阵相机有帧曝光、场曝光和滚动行曝光等几种常见方式,工业数字相机一般都提供外触发采图的功能。快门速度一般可到10微秒,高速相机还可以更快。
-
像元尺寸(Pixel Size)
像元大小和像元数(分辨率)共同决定了相机靶面的大小。目前工业数字相机像元尺寸一般为3μm-10μm,一般像元尺寸越小,制造难度越大,图像质量也越不容易提高。
-
光谱响应特性(Spectral Range)
是指该像元传感器对不同光波的敏感特性,一般响应范围是350nm-1000nm,一些相机在靶面前加了一个滤镜,滤除红外光线,如果系统需要对红外感光时可去掉该滤镜。