赞
踩
从一个或多个光源开始,在世界中一个或多个表面反射并通过相机镜头后,光最终到达成像传感器。到达传感器的光子是如何转换为我们在数字图像上看到的数字(R,G,B)值的呢?在这一节,我们构建了一个简单的模型来解释大多数重要的现象,如曝光(增益和快门速度),非线性映射,采样和混叠以及噪声。图2.23基于Healey等人提出的相机模型,展示了现代数码相机中处理过程的一个简单版本。
Chakrabarti等提出了一个复杂的24参数模型,能够更好地匹配数码相机中的处理过程,而Kim等提供了更多近期相机内处理流程的模型。最近,Brooks等提出了详细的相机内图像处理的流程模型来将(未处理)有噪声的JPEG图像转换为他们的RAW原图,以至于他们能够更好地去噪,而Tseng等提出了一个相机处理流程的可调模型,能够用于图像质量优化。
落在成像传感器上的光通常被一个主动传感区域接收,该区域在曝光期间(通常表示为一秒内的快门速度,如1/125,1/60,1/30)集成,然后光被传送到一组传感放大器。今天数字相机和摄像机中使用的两种主要传感器类型是电荷耦合器件(CCD)和金属氧化物半导体(CMOS)。
在CCD中,光子在曝光期间在每一个active well中累积。然后,在转移阶段,电子以一种“bucket brigade”的方式在well和well之间转移,直到他们被存放到传感放大器中,放大信号并将信号传输到一个模数转换器(ADC)中。当一个过度曝光像素的电荷溢出到相邻像素时,旧的CCD传感器容易高光溢出,但大多数较新的CCD都有防高光溢出技术(多余电荷会溢出的“槽”)。
在CMOS中,直接撞击到传感器上的光子会影响光电传感器的传导率(或增益),可以选择性地门控以控制曝光时间,并在读出之前使用多路复用方案进行局部放大。传统上,CCD传感器在质量敏感的应用中优于CMOS,如数字单反,而CMOS对低功耗应用更好,但今天CMOS用于大多数数码相机。
影响数码成像传感器性能的最主要的因素是快门速度、采样间距、填充因子、芯片尺寸、模拟增益、传感器噪声以及模拟-数字转换器的分辨率(和质量)。这些参数的许多实际值都可以从嵌入数字图像的EXIF标签中读取,其他信息可以从相机制造商的规格表或相机评测或校准网站获得。
快门速度(曝光时间)直接控制了到达传感器的光量,因此决定了图像是否欠曝或过曝。(对于明亮的场景,摄影师有时使用中性密度滤镜,以获得浅景深或运动模糊效果,此时需要大光圈或慢快门速度。)对于动态场景,快门速度也决定了得到的照片中运动模糊量。通常,更高的相机速度(更少运动模糊)可以使后续分析更简单(见10.3节了解移除模糊的技术)。然而,当拍摄视频时,一些运动模糊可能是可取的,以避免频闪效果。
采样间距是成像芯片上相邻传感器单元之间的物理间距(图2.24)。
拥有更小采样间距的传感器有更高的采样密度,因此对于给定的有源芯片区域提供了更高的分辨率(就像素而言)。然而,更小的间距也意味着每一个传感器有更小的面积,不能够积累许多光子;这使得其不够光敏感,更容易受到噪声影响。
填充系数是实际感光区域大小与理论上可用感光区域(水平采样间距和垂直采样间距的乘积)之间的比率。较高的填充系数通常更受欢迎,因为它们可以捕获更多的光线并减少混叠(参见第2.3.1节)。虽然填充系数最初受到需要在活动感光区域之间放置额外电子设备的限制,但现代背面照度(或背光)传感器,结合高效的微透镜设计,已经大大消除了这一限制。相机的填充系数可以通过光度相机校准过程(见10.1.4节)进行经验测定。
传统的摄像机和傻瓜相机芯片面积较小(1/4英寸到1/2英寸),而数码单反相机则试图更接近传统的35毫米胶片相框。当整体的设备尺寸不重要时,拥有更大的芯片尺寸更受欢迎,因为每一个传感器单元能够更加光敏。(对于紧凑型相机来说,较小的芯片意味着所有的光学器件都可以按比例缩小)。然而,更大的芯片制造的价格更贵,这不仅仅是因为每个晶圆片中可以包装的芯片更少,也因为芯片缺陷的概率随芯片面积呈指数级增长。
在模数转换之前,传感信号通常用一个传感放大器增强。在摄像机中,这些放大器的增益传统上由自动增益控制(AGC)逻辑控制,能够调整这些值来获得一个较好的全局曝光。在更新的数码相机中,用户能够通过ISO设置来对这种增益进行额外的控制,这通常用ISO标准单位表示,例如100,200或400。因为大多数相机中的自动曝光控制也能够调整光圈和快门速度,手动设置ISO移除了相机控制中的一个自由度,就像手动指定光圈和快门速度一样。在理论上,更高的增益使得相机能够在暗光环境下性能更好(当光圈已经最大时,由于长曝光时间获得更少的运动模糊)。然而实际上,更高的ISO值通常会放大传感器噪声。
在整个传感过程中,,各种来源的噪声被添加进来,其中可能包括固定模式噪声、暗电流噪声、散粒噪声、放大器噪声和量化噪声。采样图像中存在的噪声量取决于所有这些量,以及入射光(由场景辐射和光圈控制)、曝光时间和传感器增益。此外,对于噪声是由低光子数量引起的低光条件下,噪声的泊松模型可能比高斯模型更合适。
正如10.1.1节中详细讨论的,Liu等人使用了这个模型以及以及由Grossberg和Nayar获得的相机响应函数(CRFs)的经验数据库,来估计给定图像的噪声级别函数(NLF),其预测给定像素的总噪声方差作为其亮度的函数(一个稀疏的NLF对每一个颜色通道进行估计)。另一种替代方法是,当你在拍照前使用相机时,通过重复拍摄一个包含各种颜色和亮度的场景来预先校准NLF,如图10.3b所示的Macbeth颜色图。
(在估计方差时,一定要丢弃具有大梯度的像素或降低其权重,因为曝光之间的小变化会影响这些像素的感知值。)不幸的是,由于传感系统中复杂的相互作用,可能需要为不同的曝光时间和增益设置重复预校准过程。
在实践中,大多数计算机视觉算法,如图像去噪、边缘检测和立体匹配,都受益于至少对噪声水平的初步估计。除了能够预先校准相机或对同一场景进行重复拍摄之外,最简单的方法是寻找接近似恒定值的区域,并估计这些区域中的噪声方差。
成像传感器中模拟处理链的最后一步是模数转换(ADC)。虽然能够使用不同的技术来进行这个步骤,但我们感兴趣的两个量是这个步骤的分辨率(它能够产生多少位)以及其噪声水平(在实践中这些位中多少是有用的)。对大多数相机来说,标注的位数(压缩JPEG图像是8位,一些单反提供的RAW格式的名义上是16位)超过了实际可用的位数。最好的判断方法是简单地校准给定传感器的噪声,例如,通过对同一场景的重复拍摄,并绘制出估计的噪声关于亮度的函数(练习2.6)。
一旦到达传感器的辐照度值被转换为数字比特,大多数相机在压缩和存储像素值之前会执行各种数字信号处理(DSP)操作,以增强图像。包括彩色滤波器阵列(CFA)去马赛克,白点设置,以及通过伽马函数映射亮度值,以增加信号的感知动态范围。我们将在2.3.2节中介绍这些,但在此之前,我们将回到混叠,这与传感器阵列填充系数有关。
成像传感器和深度传感器等相关技术的能力继续快速发展。跟踪这些发展的会议包括由成像科学和技术学会主办的电子成像科学和技术研讨会和图像传感器世界博客。
当一个撞击图像传感器的光场落到成像芯片中的主动感知区域时会发生什么?对于到达每一个主动单元的光子会融合在一起,然后进行数字化,如图2.24所示。然而,如果芯片上的填充系数很小,并且信号没有带限,就会产生视觉上令人不愉快的混叠。
为了探索混叠现象,让我们首先观察一维信号(图2.25),其中我们有两条sine波,一条频率f=3/4,另一条频率为f=5/4。如果我们以频率f=2对两个信号进行采样,我们可以看到他们产生了相同的样本(用黑色表示),所以我们可以说他们混叠了。为什么会产生这个糟糕的影响?本质上,我们无法重建原始信号,因为我们不知道两个原始频率中哪一个存在。
事实上,香农采样定理表明,从瞬时样本重建一个信号所需的最小采样频率必须至少是最高频率的两倍,
信号中的最大频率称之为奈奎斯特频率,最小采样频率的倒数称之为奈奎斯特速率。
然而,你也许会问,由于成像芯片实际上是平均了有限区域内的光场,所以点采样的结果是否仍然适用?对传感区域进行平均确实往往会衰减一些较高的频率。然而,即使填充系数为100%,如图2.25右图所示,高于奈奎斯特极限的频率(采样频率的一半)仍然会产生混叠信号,尽管其幅度小于相应的带限信号。
关于为什么混叠是不好的,一个更有说服力的论证可以通过使用质量差的滤波器,如盒(方)滤波器对信号进行下采样。图2.26展示了一个高频的chirp图像(这样称呼是因为频率会随着时间增加),以及用25%填充系数,100%填充系数以及高质量9-tap滤波器采样的结果。下采样(抽取)滤波器的更多例子能够在3.5.2和图3.29中找到。
预测一个成像系统(或甚至一个图像处理算法)产生的混叠量的最好的方法是估计点扩散函数(PSF),其表示了一个特定的像素传感器对理想点光源的响应。PSF是由光学系统(透镜)和芯片传感器有限积分区域产生的模糊的组合(卷积)。
如果我们知道了透镜的模糊函数和成像芯片的填充系数(传感器区域形状和间距)(另外可选地,抗混叠滤波器的响应),我们能够将这些数据卷积(如3.2节描述的)来获得PSF。图2.27a展示了一个透镜的PSF一维横截面,其模糊函数假设为一个半径等于像素间距s的盘,再加上一个水平填充系数为80%的传感芯片。
对这个PSF进行傅里叶变换(3.4节),我们能够获得调制传输函数(MTF),由此我们可以估计混叠量为f≤fs奈奎斯特频率之外的傅里叶幅度的面积。如果我们对透镜散焦使得模糊函数的直径为2s(图2.27c),我们可以发现混叠量大大减少了,但是图像细节(频率接近f=fs)也减少了。
在实验室条件下,可以通过观察一个点光源,如观察从一个后方点亮的黑色纸板上的针孔来估计(像素精度)PSF。然而这个PSF(针孔的实际图像)只精确到一个像素分辨率,虽然它可以建模较大的模糊(如离焦引起的模糊),但它不能建模PSF的亚像素形状并预测混叠量。一种替代的技术在10.1.4节中描述,是观察一个标定图案(例如由倾斜的台阶边缘组成的图案),其理想表面能够重新合成到亚像素精度。
除了会在图像获取的过程中出现,混叠也会由各种图像处理操作导致,例如重采样,上采样和下采样。3.4节和3.5.2节讨论了这些问题并展示了怎样仔细地选择滤波器能够减少混叠量。
在2.2节当中,我们知道了光和表面反射是波长的函数。当入射光撞击到成像传感器时,来自光谱不同部分的光以某种方式整合到我们在数字图像中看到的离散的红、绿、蓝(RGB)颜色值中。这个过程是怎样工作的并且我们如何分析并操作颜色值呢?
你也许会回想起在你孩童时代,混合颜料来获得一种新颜色的过程像魔术一样。你也许能回想起蓝色+黄色得到绿色,红色+蓝色得到紫色,红色+绿色得到棕色。如果你长大后再次讨论这个问题,您可能已经知道,正确的减色原色实际上是青色(浅蓝绿色)、品红色(粉红色)和黄色(图2.28b),尽管黑色在四颜色印刷(CMYK)仍然常用。
如果你曾经上过任何绘画课程,你会学到颜色甚至由许多奇特的名字,如紫红色,天蓝色,和黄绿色。减法色被称为减法,因为颜料吸收光谱中的某些波长。
再后来,你也许会了解到加色法三原色(红绿蓝)以及他们如何相加(用投影设备或在电脑屏幕上)能够得到青色,品红色,黄色,白色以及其他我们常在电视设置和显示器上看到的颜色。(图2.28a)。
通过怎样的过程,两种不同的颜色,如红色和绿色,可以相互作用产生第三种颜色,如黄色?是波长以某种形式混合产生了一个新的波长吗?
你也许知道正确的答案和物理上波长的混合没有任何关系。相反,三原色的存在是人视觉系统三刺激(或三色)性质的结果,因为我们有三种不同的视锥细胞,每一种会选择性地对色谱地不同部分产生响应。注意到对于机器视觉应用(如遥感和地形分类)来说,更偏向使用更多的波长。相同的,监测应用通常受益于近红外(NIR)范围内的传感。
为了测试和量化感知三色理论,我们可以尝试将所有的单色(单一波长)颜色作为三种适当选择的原色的混合。(纯波长光可以使用棱镜或特殊制造的滤光片获得。)在二十世纪三十年代,国际照明委员会(CIE)通过使用三原色红色(700.0nm波长),绿色(546.1nm)以及蓝色(435.8nm)进行颜色匹配实验,从而对RGB的表示进行了标准化。
图2.29显示了使用标准观察器进行这些实验的结果,即对大量受试者的感知结果进行平均。
你会注意到,对于某些蓝绿色范围内的纯光谱,必须添加负量的红光,即必须对匹配的颜色添加一定量的红光才能得到颜色匹配。这些结果也为条件等色(不同光谱的颜色在感知上无法区分)的存在提供了简单的解释。请注意,在一种光线下的感知相同的两种织物或油漆颜色在不同的光线下可能不再如此。
由于混合负光的问题,CIE提出了一个新的色彩空间,称之为XYZ,它包含了其正八分体中所有的纯光谱颜色。(它也将Y轴映射到亮度,即感知到的相对亮度,并将纯白色映射到对角(等值)向量。)RGB到XYZ的转换由下式给出
CIE XYZ标准的官方定义进行了矩阵规范化,使得Y值为1对应于纯红色,更常用的形式是省略前置的分数,这样第二行加起来为1,也就是说,RGB(1,1,1)映射的Y值为1。根据上式对图2.29a中的曲线进行线性混合,我们可以得到图2.29b中的曲线。注意到,现在所有三个光谱(色匹配函数)都只有正值,并且曲线与人类感知的亮度相匹配。
如果我们用X+Y+Z除XYZ值,我们能够获得色度坐标
其相加和为1。色度坐标抛弃了给定的颜色样本的绝对强度而仅仅表示其纯颜色。如果我们对图2.29b中的单色λ参数从380nm到800nm进行扫描,我们能够获得图2.30a中熟悉的色度图。
这个图展示了大多数人能够感知的每一个颜色值的(x,y)值。(当然,这本书中的CMYK复制过程实际上并没有涵盖所有可感知的颜色范围。)外部弯曲的边缘代表所有纯单色颜色值在(x,y)空间中映射的位置,而下部连接两个端点的直线被称为紫色线。插入的三角形涵盖了原始颜色匹配实验中使用的红、绿、蓝单波长原色,而E表示白点。
当我们想要梳理出亮度和色度时,表示颜色值的一种方面的表示是Yxy(亮度加上两个最独特的色度分量)。
虽然XYZ色彩空间有许多方便的特性,包括将亮度和色度分离的能力,但它实际上并不能预测人类对颜色或亮度差异的感知程度。
由于人类视觉系统的响应大致呈对数关系(我们可以感知相对亮度差异约为1%),所以CIE定义了一个XYZ空间的非线性映射成为L*a*b(有时也成为CIELAB),对亮度或色度的不同感知上更为平均,如图2.30b所示。
亮度L*分量定义为
其中Yn是白色的亮度值且
是对立方根的有限斜率近似,δ=6/29。结果0...100大致衡量了等量亮度的感知能力。
以类似的方式a*和b*分量定义为
其中(Xn,Yn,Zn)是测得的白点。图2.33i-k展示了简单彩色图像的L*a*b*表示。
尽管前面的讨论告诉我们如何独特地描述任何颜色(光谱分布)的感知三刺激描述,但并没有告诉我们RGB静态和摄像机实际上是如何工作的。他们仅仅是测量了标称波长红色(700nm),绿色(546.1nm),蓝色(435.8nm)的光量吗?彩色显示器是否只发出这些波长?如果是,它们如何发出负红光来重现青色范围内的颜色?
事实上,RGB摄像机的设计历来都是基于可以在电视机上安装的彩色荧光粉。当标准清晰度彩色电视(NTSC)被发明时,人们定义了一种映射关系,将驱动阴极射线管(CRT)中三个颜色枪的RGB值与明确定义感知颜色的XYZ值相关联(这个标准被称为ITU-R BT.601)。随着高清电视和更新的显示器的出现,创建了一个新的标准称为ITU-R BT.709,它制定了每个色彩原色的XYZ值
在实践中,每一个彩色相机根据其红绿蓝传感器的光谱响应函数将光聚合起来,
其中L(λ)是给定像素的入射光谱,是相应红绿蓝传感器的光谱灵敏度。
我们能知道相机实际的光谱灵敏度吗?除非相机厂家给我们提供了这些数据,或者我们观察到了相机对整个光谱上单色光的响应,这些灵敏度是不能够用一个标准(如BT.709)指定的。相反,更重要的是,给定颜色的三刺激值产生指定的RGB值。制造商可以自由使用灵敏度与标准XYZ定义不匹配的传感器,只要它们以后可以(通过线性变换)转换为标准颜色。
相同的,虽然电视和电脑显示器是通过式2.109来指定RGB值的,但是他们仍然能够使用数字逻辑来讲输入的RGB值转换为不同的信号来驱动每一个色彩通道。适当校准的监视器使这些信息可用于执行颜色管理的软件应用程序,以便在现实生活中、屏幕上和打印机上的颜色都尽可能地匹配。
虽然早期的彩色电视摄像机使用三个视像(管)来进行传感,后来的摄像机使用三个独立的RGB传感芯片,现在大多数的数码静态相机和摄影机使用彩色滤波数组,交替的传感器被不同的色彩滤波器覆盖。(图2.24)
现在彩色相机中最常用的模式是拜尔模式,将绿色滤波器放置在半个传感器上(以棋盘的模式),红色和蓝色的滤波器放在剩余的传感器上。(图2.31)在这里,绿色滤波器是红色和蓝色的两倍的原因是,亮度信号绝大多数是由绿色值决定的,视觉系统相较于色度中的细节来说,对亮度中的高频细节更加敏感(这是一个在彩色图像压缩中被利用的事实——2.3.3节)。插值消失的彩色值,使得我们能够获得所有像素合理的RGB值的过程称之为去马赛克,在10.3.1节中有详细介绍。
相同的,彩色液晶显示器通常使用放置在每个液晶活动区域前面的交替条纹的红色、绿色和蓝色滤波器,以模拟全彩显示的体验。与之前一样,由于视觉系统的亮度比色度具有更高的分辨率(灵敏度),因此可以对RGB(和单色)图像进行数字预滤波来增强清晰的感觉。
在对感知到的RGB值进行编码之前,大多数相机会执行某种色彩平衡操作,试图移动给定图像的白点更接近纯白(相等的RGB值)。如果色彩系统和照明度相同(BT.709系统使用日光光源D65作为其参考白色),变化可能是最小的。然而,如果光源是强烈的颜色,如室内白炽灯(通常导致黄色或橙色),补偿是相当显著的。
执行颜色校正的一种简单方法是将每个RGB值乘以一个不同的因子(即对RGB颜色空间应用对角线矩阵变换)。更复杂的变换,有时是映射到XYZ空间或反映射的结果,实际上是执行了一个颜色扭曲,也就是说,它们使用一般的3×3颜色变换矩阵。练习2.8探讨了其中的一些问题。
在早期的黑白电视中,CRT中用于显示电视信号的荧光粉对其输入电压的响应是非线性的。电压和由此产生的亮度之间的关系是用一个叫做伽马(γ)的数字来表征,公式大致是
其中γ大约为2.2。为了补偿这种影响,电视摄像机中的电子设备用逆伽马对感知到的亮度Y进行预映射,
1/γ的一个典型值为0.45。
在传输前通过这种非线性映射信号有一个有益的副作用:在传输过程中增加的噪声会(对接收器施加伽马后)在信号较暗的区域减少(图2.32)。(记住,我们的视觉系统对亮度的相对差异敏感)。
当彩电被发明时,人们决定将红、绿、蓝信号分别通过相同的伽马非线性传递,然后将它们组合起来进行编码。今天,即使我们的传输系统中不再有模拟噪声,但在压缩过程中信号仍然被量化(见第2.3.3节),所以对感知值应用逆伽马值仍然是有用的。
不幸的是,对于计算机视觉和计算机图形学来说,图像中伽马的存在往往是有问题的。例如,适当的模拟辐射现象,如阴影(见第2.2节和公式(2.88))发生在一个线性辐射空间。一旦完成了所有的计算,在显示之前应该应用适当的伽马。不幸的是,许多计算机图形系统(如阴影模型)直接在RGB值上进行操作并且直接显示这些值。(幸运的是,更新的彩色成像标准,如16位scRGB使用了一个线性空间,这使得这个问题影响变小。)
在计算机视觉中,情况可能更令人畏惧。使用光度立体(第13.1.1节)等技术或甚至更简单的操作(如精确图像去模糊)来精确确定表面法线,要求在强度的线性空间中进行测量。因此,在执行诸如此类的详细的定量计算时,必须首先撤销伽马和在感知颜色值中每幅图像的颜色重新平衡。Chakrabarti等提出了一个复杂的24参数模型,与当今数码相机的处理过程匹配;它们还提供了一个彩色图像数据集,你可以用于自己的测试。
然而,对于其他视觉应用,如特征检测或立体匹配和运动估计中的信号匹配,这种线性化步骤通常是不必要的。事实上,决定是否有必要消除伽马可以进一步考虑,例如,在补偿图像拼接中的曝光变化的情况下(见练习2.7)。
如果所有这些处理步骤听起来令人困惑,那么它们确实是。练习2.9让你尝试使用经验调查来梳理这些现象,即拍摄颜色图表,并比较RAW和JPEG的压缩颜色值。
RGB和XYZ是最初用来描述色彩信号谱成分(因此是三刺激响应)的色彩空间,后来在视频及静态图像编码和计算机图形学中也提出了各种不同的表示方法。
用于视频传输最早的色彩表示是YIQ标准,用于北美的NTSC视频,与欧洲的用于PAL的YUV有着密切的联系。在这两种情况下,它都希望有一个luma通道Y(之所以这么称呼是因为它只能大致模拟真实的亮度),它可以与常规的黑-白电视信号以及两个较低频率的色度通道相当。
在两个系统中,Y信号(或近似地,Y‘ luma 信号,因为它是通过伽马压缩的)可以从下式获得
其中R'G'B'是伽马压缩的颜色分量。当用BT.709标准中HDTV的更新的颜色定义时,公式为
UV分量是从(B'-Y')和(R'-Y')的缩放版本导出的,即
而IQ分量是通过33°的角度旋转的UV分量。在合成(NTSC和PAL)视频中,色度信号然后进行水平低通滤波,再进行调制并叠加在Y’ luma信号之上。向后兼容性是通过让较旧的黑白电视机有效地忽略高频色度信号(由于电子设备速度较慢)或,在最坏的情况下,将其叠加在主信号上作为高频图案来实现的。
虽然这些转换在计算机视觉的早期很重要,但当帧捕获器直接将复合电视信号数字化时,今天所有的数字视频和静态图像压缩标准都是基于较新的YCbCr转换。YCbCr与YUV密切相关(Cb和Cr信号携带蓝色和红色色差信号,有比UV更有用的记忆符),但使用不同的比例因子来适应数字信号可用的8位范围。
对于视频来说,Y‘信号重新缩放来适应[16...235]范围中的值,而Cb和Cr通道缩放到[16...240]。对于静态图像来说,JPEG标准使用了全八比特范围,没有储存值,
其中R'G'B'值时八比特伽马压缩颜色分量(即当我们打开或显示JPEG图像时的真实RGB值)。对于大多数应用,这个公式不是很重要,因为你的图像读取软件会直接提供给你八比特伽马压缩的R'G'B'值。然而,如果你试图进行仔细的图像去块(练习4.3),这个信息也许会有用。
你可能会遇到的另一个颜色空间是色调、饱和度、值(HSV),它是将RGB颜色立方体投影到一个非线性色度角、径向饱和度百分比和一个受亮度启发的值上。更详细的,值定义为平均值或最大颜色值,饱和度定义为距离对角线的缩放距离,色调定义为色轮周围的方向(确切的公式由Hall等人和Brown描述)。这种分解在图形应用程序中是相当自然的,比如颜色选择(它近似于颜色描述的芒塞尔图)。图2.33l-n展示了彩色图像的HSV表示,其中饱和度使用灰度编码(饱和=更暗),色调被描绘为一种颜色。
如果你想要你的计算机视觉算法值影响图像的值(亮度),而不影响色调或饱和度,一种简单的解决办法是(2.105)中定义的Yxy(亮度+色度)坐标或更简单的色彩比率,
(图2.33e-h)。在对luma(2.113)进行操作(例如,通过直方图均衡(第3.1.4节)后,你可以将每个颜色比率乘以新颜色与旧颜色的比率,以获得调整后的RGB值。
虽然所有这些颜色系统听起来可能令人困惑,但最终你使用哪一个可能并不重要。Poynton在他的Color FAQ(https://www.poynton.com/ColorFAQ.html)中指出,感知驱动的L*a*b*系统与我们主要使用的gamma压缩的R’G‘B’系统在定性上相似,因为这两种系统在实际的强度值和操作的数字之间都存在分数幂缩放的关系(近似对数响应)。在所有情况下,在决定使用哪种技术之前,请仔细考虑您想要实现的目标。
相机处理流程的最后一个阶段通常是图像压缩的某种形式(除非你使用的是无损压缩机制,如RAW或PNG)。
所有的彩色视频和图像压缩算法都是从将信号转换到YCbCr空间(或近似的变体)开始的,这样它们就可以以比色度信号更高的保真度来压缩亮度信号。(回想人类的视觉系统相较于亮度变化,对颜色的频率响应更差。)在视频中,通常会用参数2对Cb和Cr进行水平二次采样;而对于静态图像(JPEG),二次采样(平均)在水平和垂直方向都进行。
一旦亮度和色度图像被适当地采样并区分为单独的图像,然后就可以将它们传送到一个块变换阶段。在这里使用的最常见的技术是离散余弦变换(DCT),它是离散傅里叶变换(DFT)(见3.4.1节)的一个变体。DCT是自然图像块的K-L变换或特征值分解的合理近似,即分解同时将最多的能量打包到第一个系数中,并使像素之间的联合协方差矩阵对角化(使变换系数在统计上独立)。尽管更新的变体,包括新AV1 开放标准,使用了更小的4×4或甚至2×2块,MPEG和JPEG都使用8×8的DCT变换。替代的技术(如小波变换和重叠变换)在压缩标准(如JPEG2000和JPEG XR)中使用。
在变换编码之后,系数值被量化为一组小整数值,这些值可以使用可变比特长方案进行编码,如霍夫曼编码或算术编码。(DC(最低频率)系数也可以自适应地从前一个块的DC值中进行预测。术语“DC”来自于“直流电”,即信号的非正弦部分或非交替部分。)量化中的步长是由JPEG文件上的质量设置控制的主要变量(图2.34)。
对于视频,通常采样基于块的运动补偿,即对每个块与从前一帧中偏移块获得的预测像素值集之间的差值进行编码。(例外的是在老式DV摄像机中使用的motion-JPEG方案,它只不过是一系列单独的JPEG压缩图像帧。)基本的MPEG使用16×16具有整数运动值的运动补偿块,而较新的标准使用自适应大小的块,亚像素运动,以及从旧帧中引用块的能力。为了更好地从故障中恢复,并允许对视频流的随机访问,预测的P帧是在独立编码的I帧之间交错的。(有时也会使用双向B帧。
压缩算法的质量通常使用其峰值信噪比(PSNR)来表明,这是由平均均方误差得出的,
其中I(x)是原始的未压缩的图像,是其压缩后的的图像,或相同的,可以使用均方根误差(RMS error),定义为
PSNR定义为
其中Imax是最大信号范围,例如8bit图像的范围是255。
虽然这只是关于图像压缩如何工作的一个高级概述,但理解它是有用的,以便由这些技术引入的伪影可以在各种计算机视觉应用程序中得到补偿。还需要注意的是,研究人员目前正在开发基于深度神经网络的新型图像和视频压缩算法,看看这些技术会产生什么样的不同的伪影将是很有趣的。
【持续更新,仅供学习参考。部分专业术语可能翻译有误,欢迎大家批评指正】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。