为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于FPGA实现的自动白平衡算法

2019-02-08 50页 doc 106KB 86阅读

用户头像

is_482581

暂无简介

举报
基于FPGA实现的自动白平衡算法基于FPGA实现的自动白平衡算法 Realization of Auto White Balance Algorithm Based on FPGA 摘要 自动白平衡技术广泛应用于图像采集和图像处理领域,满足了人们对图像信息的需求。现有的自动白平衡算法很多,它们在计算复杂度、白平衡处理效果以及硬件适应性等方面存在着很大的差异。尽管这些算法都能得到较好的色彩还原效果,但是他们大多数是基于特定的假设条件,实际应用起来限制条件太多,因此实用性较差,尤其是对大块单一颜色的图像白平衡的处理是一个难点。本文通过对现有自动白平衡算法...
基于FPGA实现的自动白平衡算法
基于FPGA实现的自动白平衡算法 Realization of Auto White Balance Algorithm Based on FPGA 摘要 自动白平衡技术广泛应用于图像采集和图像处理领域,满足了人们对图像信息的需求。现有的自动白平衡算法很多,它们在计算复杂度、白平衡处理效果以及硬件适应性等方面存在着很大的差异。尽管这些算法都能得到较好的色彩还原效果,但是他们大多数是基于特定的假设条件,实际应用起来限制条件太多,因此实用性较差,尤其是对大块单一颜色的图像白平衡的处理是一个难点。本文通过对现有自动白平衡算法的研究,结合FPGA高性能、低功耗、速度快、灵活、可扩充、可升级的特点,在不影响画面质量的前提下,改进了基于色温估计的自动白平衡算法,并在DE2开发板上验证算法的有效性。 首先,本文介绍了色彩图像学的相关基础知识,包括:颜色基础知识、色温、颜色空间、颜色恒常及图像的一般处理流程。接下来对FPGA技术的相关基础知识和编程语言进行了详细的介绍。 其次,研究现有灰度世界白平衡算法并对基于色温估计的自动白平衡算法进行了改进。灰度世界白平衡算法是基于特定的假设前提,当假设条件不成立(特别是当图像中有大面积色块),算法几乎失效。为了解决这个问题,本文通过对灰度世界算法计算过程的研究,改进了基于色温估计的自动白平衡算法。 最后,基于色温估计的自动白平衡算法的FPGA设计与效果验证。利用Quartus II 10.1软件将该算法设计成Verilog HDL硬件描述语言,并经过时序分析、仿真、综合,最后下载到DE2开发板上的FPGA芯片。 经过实验对比,表明在较低计算复杂度和不影响图像质量的前提下,在处理色彩单一的图像时,改进后的色温估计白平衡算法较灰度世界算法具有更好的色彩还原效果。 关键词:自动白平衡,灰度世界算法,色温估计算法,FPGA,Verilog HDL ABSTRACT Automatic white balance technology is widely used in the field of image acquisition and image processing to meet the people's demand for information.There are many existing auto white balance algorithms,and they are different in computational complexity,the white balance processing effect and hardware adaptation and so on.Although these algorithms can get satisfactory color restoration, most of them are based on certain assumptions.In practice, because of so many restrictions,its practicality is very poor.Especially processing the image with large blocks of a single color is difficult.After studying the existing automatic white balance algorithm,the author makes full use of the FPGA’s advantages,such as:high performance, low power consumption,high speed,a flexible and extensible design features,and puts not damaging the picture quality as a precondition,has improved auto white balance algorithms based on color temperature estimation,and verified the validity of the algorithm on a DE2 development boards. First,the paper introduces the basic knowledge of color images,including:color temperature, color space,color constancy,and image processing.Then describe the basics of FPGA technology and programming language in detail. Second,both researching the existing gray world white balance algorithms and improving the algorithm that based on color temperature estimation.Since the gray world white balance algorithm is based on certain assumptions,when the assumption is not true (especially when there are large blocks of color in the image),the algorithm almost failure.In order to solve the problem,through the research of the calculation process of the algorithm,the author improved auto white balance algorithms based on color temperature estimation. Finally,use the FPGA to design the auto white balance algorithm based on color temperature estimation.Use the Quartus II 10.1 software and Verilog hardware description language to design the algorithm.After the process of time analysis,simulation and comprehensive,the design will be downloading to the FPGA chips on DE2 development boards at last. Through comparation experiments,it has been proved that,in the same computational complexity and not destroying the picture quality,the improved white balance algorithm which bases on color temperature estimation has gained a better performance over the gray world algorithm in dealing with colorful images,with better color balance as a result. Key words:Automatic white balance,Gray world algorithm,Color temperature estimation algorithm,FPGA,Verilog HDL 目录 第1章绪论 2 1.1 课题研究的背景 2 1.2 课题研究的现状及意义 3 1.3 所做的研究 5 1.4 论文章节安排 5 第2章色彩学与FPGA相关技术研究 6 2.1 色彩学基础知识 6 2.2 图像处理流程10 2.2.1 色彩插值11 2.2.2 自动聚焦12 2.2.3 自动曝光13 2.2.4 伽马校正13 2.2.5 图像增强14 2.2.6 白平衡15 2.3 FPGA技术介绍15 2.4 Verilog HDL编程语言介绍16 2.5 本章小结20 第3章灰度世界白平衡算法研究与色温估计白平衡算法改进21 3.1 灰度世界白平衡算法研究21 3.1.1 算法简介21 3.1.2 算法评价23 3.2 基于色温估计自动白平衡改进算法24 3.2.1 提出背景24 3.2.2 算法过程25 3.3 本章小结30 第4章基于色温估计自动白平衡算法FPGA设计与实现31 4.1 设计流程31 4.2 模块功能描述32 4.3 模块接口设计33 4.4 实验结果分析46 4.5 本章小结47 第5章总结与展望48 5.1 全文总结48 5.2 展望48 参考文献50 致谢53 第1章绪论 1.1 课题研究的背景 2014年2月28日晚上21:20分昆明火车站发生暴力恐怖事件,2014年3月8日凌晨02: 30分从马来西亚飞往北京的MH370航班突然失踪。这两起事件牵动着全世界人民的心,事件发生后人们通过新闻记者的镜头了解最新的动态。记者的相机直接决定着我们对事件场景的真实还原,这里面存在着一个“彩色还原”的问题,即白平衡问题。 什么是白平衡?在解释白平衡原理之前,我们先了解物体的颜色特征。从物理学的意义上说,我们看到的物体颜色是因为光线照射物体时,物体反射的光在人眼视觉系统中表现出这种颜色。也就是说,人们看到的物体的颜色不仅取决于物体的反射特性,也与射向该物体的光线颜色有关。因此,同一个物体在不同的光照下会显现出完全不同的颜色。这是由于不同的光源的色温不相同,从而导致被照射物体的反射光偏离“真实”的颜色。色温越高,光源就越偏蓝色;色温越低,光源越偏红色。例如,在蔚蓝色天空下的白色物体会偏蓝,因为这样的环境色温比较高;而在室内钨丝灯光下会略显橘黄色,因为环境色温低。由于人的视觉系统对物体颜色的感知具有自主适应性——在外界光照条件发生变化的时候,能消除光照对物体颜色的影响,得到物体表面的真实颜色(一般是指白光下物体表面的颜色)。但是像照相机、摄像机等其他成像设备在获取图像时就不行,这是由于感光元件本身没有这种适应功能。为了避免光照条件对图像颜色的影响,数码相机就必须和人类大脑一样能根据光线的变化作出调整,得到与光照无关的物体表面颜色特性,从而使拍摄的图像更加贴近人的视觉标准。通过自动或手动调整白平衡让拍摄出来的相片达到令人满意的色彩,这就是数码相机中的白平 衡功能[1]。 目前所有的白平衡算法都是从不同的角度实现对白色物体的还原,即去除光源因素对物体颜色的影响。实际上,我们无法离开光源单独获得物体的反射特性。通常,我们把图像拍摄时的光源称为未知光源,把想要获得物体颜色的某一特殊光源称为经典光源。换句话说,图像白平衡算法就是将在未知光源下拍摄的物体颜色,转换成在经典光源下的物体颜色,从而实现图像白平衡。 图像白平衡处理对于相机及其他各种成像设备具有非常重要的理论和实际意义。它是一个多学科交叉性很强的研究方向,结合了计算机视觉、信号处理、人工智能和认知科学等学科的相关知识。图像白平衡处理多用于现代摄像、照相、监控系统中,这个功能尤其给现代摄影技术带来了极大的便利,通过它可以解决色彩复 原和色调处理等一系列问题。我们可以在低色温条件下设置白平衡,而在高色温环境下拍摄,能产生特别的艺术效果。同样,也可在较高色温条件下设定白平衡,在较低色温环境下拍摄,可以使画面带上暖色调[2]。这样,即使在白炽灯下仍然可以拍出真实的色彩,而不必为日光灯带来的青色烦恼。在分档设定白平衡时,可故意将光源档与现场光设为不一致,能产生特殊的艺术效果。 1.2 课题研究的现状及意义 白平衡算法的研究历史已经有了30多年,目前业内图像白平衡的计算研究主要有两类问题:单光照环境图像白平衡的计算;多光照环境图像白平衡的计算。图像白平衡计算研究的结构框图如图1.1所示。 图1.1 图像白平衡计算研究的体系结构 由于多光照条件下的图像白平衡计算比单一光照条件更加困难、复杂,所以目前对于单一光照下的图像白平衡计算问题的研究最多。单光照下的白平衡计算前提条件是:当图像成像时,假设场景中只有一种光源,即便存在多个光源也将其平均地等效为一种光源。本文中图像白平衡计算研究部分都是以场景中只存在单一光照为假设前提,对于多光照下的图像白平衡计算本文不予过多的讨论。 单一光照下图像白平衡的计算又分为两个主要的研究方向:无监督的图像白平衡计算和有监督的图像白平衡计算。 1)无监督的图像白平衡计算: 无监督的图像白平衡计算算法是指利用图像底层的颜色特征进行图像光源估计,而不依赖于其他的先验知识。目前,白平衡调整领域的一个难点是对环境的光源估计,而现有的图像白平衡算法都是基于各种各样的假设和前提,最经典的就是White Patch假设和Gray World(灰度世界)假设[3]。为了将Gray World假设更为一般化,J.v.weijer通过观察对立颜色空间上(Opponent Color Space)图像颜色导数的分布规律,提出了一种新的Gray Edge(灰度边沿)假设,并在Gray Edge假设理论的基础上提出了一个统一的图像白平衡计算的框架(该框架包含了maxRGB、Grey world以及Shade of Gray算法),并且将图像白平衡推广到图像的高阶导数空间来计算。除了上述的这些算法外,无监督的图像白平衡算法还有:基于区域的白平衡计算、基于边缘分类的白平衡计算、基于局部均值的白平衡计算、基于有效区域的白平衡计算等等。 2)有监督的图像白平衡计算: 有监督的图像白平衡计算利用统计学习的,统计各种光照下出现的颜色,从而推测未知光源的图像颜色。Forsyth提出的色域映射(Gamut Mapping)算法,是一种典型的有监督的白平衡算法,之后Finlayson对该算法进行了扩展,Gijsenij又在Finlayson的基础之上将该算法提升到图像的高阶导数空间。基于贝叶斯推理(Bayesian Color Constancy)的图像白平衡计算也属于有监督的白平衡算法,为了减小基于贝叶斯推理的图像白平衡算法的计算复杂度, Finlayson提出了一种基于相关性(Color by Correlation)的更为实用化的白平衡算法。但是,基于相关性的图像白平衡算法的最大问题是需要大量的先验知识,且输出结果不连续[4]。Cardei引入了基于BP神经网络的白平衡算法,它能给出任意输入光源连续的输出结果。W.Xiong提出的基于向量回归SVR(Support Vector Regression)的白平衡算法,也是一种有监督的算法,并且是一种基于全局最优的回归算法。 方法1和方法2在理论上都能得到较准确的白平衡效果,但是其限制条件过多,要基于特定的假设条件。这些假设在现实生活中不易满足,而且计算复杂,对于硬件资源的消耗非常大,不具有实用性。 因此本文的研究工作是找出一种原理简单,易于实现,通用性好,对硬件适应性好的算法,来解决白平衡算法的普适性问题和算法效率问题。 1.3 论文所做的研究 本论文研究了图像色彩学的基本原理和灰度世界白平衡算法的计算方法,并在此基础上改进了基于色温估计的自动白平衡算法,利用FPGA实现了该算法的硬件模块设计。在DE2开发板上进行了大量与灰度世界算法对比的实验,实验结果表明在保证图像质量和较低计算复杂度的前提下,改进后的算法比灰度世界算法在处理色彩单一的图像时具有更好的白平衡效果。 1.4 论文章节安排 本章首先介绍了课题研究的背景,主要从白平衡的概念,白平衡算法的发展现状等方面来进行介绍,并指出了课题研究的目的。 本论文后续的章节安排如下: 第二章,介绍图像色彩学的基础知识,主要包括颜色基础知识、色温、颜色空间、颜色恒常及图像的一般处理流程。接下来对FPGA技术的相关基础知识和编程语言进行了详细的介绍。第三章,在分析灰度世界算法优缺点的基础上,改进了基于色温估计的自动白平衡算法。 第四章,详细介绍了算法的硬件设计,包括功能模块的划分,每个功能模块的端口介绍等,并进行了RTL代码的仿真,并对其时序和功能进行了仿真。 第五章,总结与展望。总结本文的工作并展望未来的发展方向。 第2章色彩学与FPGA相关技术研究 2.1 色彩学基础知识 不同的物体之所以呈现出不同的颜色,不仅与物体本身的物理特性有关,还与物体所处的环境光照有关,也与观察者有关。对于相同条件下的同一物体,不同的人会得到大致相同的结果,但是仍然会存在微小的差异。如果观察者为不同的光学设备,假如观察者是不同的品牌照相机,由于它们对图像白平衡的处理方法不同,得到的结果很不相同。假如每种光学装置都能正确地进行白平衡调整,在理论上得到结果应该是相同的。 世界上的物体五彩缤纷,颜色种类不可胜数,从物理学的角度解释,这些不同的颜色是不同频率的光波作用在人眼睛的结果。在色彩科学中,可以用三种最基本的颜色得到几乎所有不同的颜色,我们称这三种颜色为三原色。经过实验研究发现,自然界中的绝大部分颜色都可以通过三原色按不同比例混合来获得,而白色光又可以分解为三原色。三原色可以任意选定,但是三原色中的任意一种原色不能由其余两种原色混合得到。常用的三原色是红(R)、绿(G)、蓝(B),红绿蓝三原色对应的波长分别为700nm、546.1nm、435.8nm。当红绿蓝三原色的亮度比例是:1.0000:4.5907:0.0601时,它们合成的光就是白色光,也就是与白光的颜色相匹配。颜色匹配是指把两种颜色调节到视觉感受上相同,就称这两种颜色相互匹配[5]。 在颜色匹配实验中,选取的三原色(它们相加混合能产生任意一种颜色),称为参照色。在实验中,与待测色达到颜色匹配时R、G、B的值,称为三刺激值。任意一种颜色都可以找 到一组R、G、B数值相对应,这样抽象的颜色感觉就可以通过三刺激值定量的表示。任意两种颜色只要其R、G、B数值对应相等,就认为它们的颜色感觉相同。 计算某待测光的三刺激值的方法[6]如公式(2-1)所示: (2-1) 为光谱分布函数,、、表示对应波长单色光的三刺激值。 颜色方程就是描述颜色匹配的代数表达式。如果用(c)代表被匹配颜色的单位,(r)、(g)、(b)分别代表混合色中的红、绿、蓝三原色的单位,R、G、B、C分别表示红、绿、蓝三原色和被匹配颜色的数目,颜色匹配方程如公式(2-2)所示: (2-2) 公式(2-2)中的等号只表示视觉上相等,即颜色匹配;方程中R、G、B为代数值,可为负值。 数码相照机就是根据三原色的基本原理和颜色匹配知识来形成彩色图像的,首先数码相机的光电传感器接收到被摄物体的反射光,并且将光信号转换为电信号,再经过模数转换器将模拟图像数据转换为数字图像数据供后续设备处理。其中,光电传感器有三种,分别对三种色光(红、绿、蓝)信号进行采样。每种颜色传感器组成一个颜色通道,在该颜色通道内只对该种色光进行采样,根据该种色光的强度产生相应大小的电信号。物体的每一个采样点都与数码相机中的一个像素点对应,每一个像素点又包含三个数值,分别代表红色、绿色、蓝色三种颜色成分的强度。 色彩还原是指在成像设备中画面的色彩与原景物的色彩一致,这种真实、自然的效果会给人一种舒适感。色彩有三种属性:色相、亮度和饱和度。色相是色彩的首要特征,是区别各种不同色彩的最准确的标准。事实上任何黑白灰以外的颜色都有色相的属性,而色相也就是由原色、间色和复色来构成的。色相,是色彩可呈现出来的质的面貌,是各类色彩的相貌称谓[7]。饱和度是指色彩的鲜艳程度,也称色彩的纯度。饱和度反映了一种颜色中有色成分与消色成分(灰色)的比例。有色成分越大,饱和度越大;消色成分越大,饱和度越小。亮度是颜色的一种性质,反应了画面的明亮程度,是色彩空间的一个维度。在Lab 色彩空间中,亮度被定义来反映人类的主观明亮感觉[8]。格拉斯曼定律认为,人类的视觉只能分辨出颜色的明度、色度和饱和度三种变化。 (1)色温的概念 色温是利用绝对黑体辐射光的颜色与温度的对应关系来表述光源光色的一种尺度,是表示光源光谱质量最通用的指标,单位为K(开尔文)。开尔文认为,假设存在某一纯黑物体,能够将落在其表面的热量全部吸收,同时又能将热量全部以“光”的形式释放出去,并且在这一过程没有能量损失,那么它辐射出的光的颜色就会随它的温度变化而变化[9]。例如,碳块在一个完全封闭的黑暗空间,没有任何外在光源的作用,给它持续加热,使碳块温度不断上升。观察发现随着温度的升高,碳块辐射出光的颜色也相应发生变化,就像一个铁块在不断的加热过程中慢慢地由暗红变亮红、变黄、变白、变青一样。当现实生活中的日光灯、白炽灯等光源发出的光的颜色和黑体发出的光的颜色一致时,用黑体在发出这种颜色光时的温度表示该种颜色光的色温,用绝对温度K表示,也称为开氏温标。不同颜色的光其色温不同,从光谱学的角度来解释,是因为不同颜色的光含有不同频率的电磁波成分,而不同频率电磁波的光子能量不同。如果光线的光子能量大,光线就呈冷色调(偏蓝),其色温就高;如果光子的能量小,光线就呈现暖色调(偏红),其色温低。 (2)颜色空间 为了让每种颜色都能按照一定的次序排列在同一个空间内,可将颜色的三个独立参数与空间三维坐标轴对应起来,使每一种颜色在该空间都有一个对应的位置,相反,在空间中的任何一点也代表了一种特定的颜色,这个空间被称作颜色空间。颜色空间是三维的,作为该空间 三维坐标轴的三个独立参数既可以是色彩的三属性:色相、亮度和饱和度,也可以是色彩其它相互独立的三个参数(例如三原色RGB,YCbCr,Lab等等)。不同坐标参数的颜色空间是可以相互转换的。 通常,我们采用RGB颜色空间对从光电传感器获得的像素值进行研究,一个像素点投影到RGB三个坐标轴的值分别为(R,G,B),RGB值的大小反映该像素在某一通道的光强度,即某一种光谱对应的强度[10]。例如,一幅8位图像的数据,白点的像素值(R,G,B)=(255, 255,255),这是8位传感器在三个通道能感应到的最大光强度。在对图像白平衡处理中,一般应用较多的是RGB、YCbCr颜色空间。如果图像处理所用空间与传感器采集的数据所用空间不一致,就必需将传感器采集的图像数据转换到对应的颜色空间,假如我们要在YCbCr 颜色空间对图像进行处理,要先将RGB颜色空间的图像转换到YCbCr颜色空间。在对图像处理的结果进行评估时,我们通常选用的颜色空间是CIE 1976 Lab均匀颜色空间,CIE 1976 Lab均匀颜色空间是由CIE 1931标准色度学系统非线性变换得来,它将颜色空间的XYZ直角坐标转换为柱面极坐标,将XYZ三刺激值转换为与人类视觉相一致的明度L和色度a、b,其中L、a、b与色彩学中的亮度、色调、饱和度等效。CIE l976 Lab均匀颜色空间是一种表示颜色的方式,用来模拟人眼对颜色的感觉特征。用纵坐标轴L表示颜色的明度感觉,黑色最暗,位于坐标轴的最下端,对应明度L=0,白色最亮,位于坐标轴最上端,对应明度L=100。a轴与b轴共同表示图像的彩色特性,a轴正方向表示红色的变化,a轴负方向表示绿色的变化,b轴正方向表示黄色的变化,b轴负方向表示蓝色的变化,这4个变化方向共同组成了一个互补对抗的颜色模型[11]。 根据这个互补对抗的颜色模型,可以得到以下结论: 1)红色与绿色是互补的,黄色与蓝色是互补的。 2)任何一种颜色都可以用这4种原色中的1个或2个按一定的明度值混合得到,其中,混合色的色调取决于原色的混合比例。 3)如果一个颜色中含有红色成分,就一定不会有绿色,因为这两种原色互补。同理,如果颜色中含有蓝色成分,就不会再有黄色。这就是所谓的对抗色原理。a与b的值代表颜色中彩色成分的含量,当a与b的值都为0时,像素点的颜色饱和度就为0,即像素点为非彩色,其坐标投影在纵坐标轴上。因此,所有非彩色的坐标点都位于纵坐标轴上,从上到下依次为白色、浅灰色、灰色、深灰色和黑色。颜色的坐标点与纵坐标轴的距离越远,颜色就越鲜艳。根据颜色的这个性质,可以利用a和b的值进一步计算图像的色调和饱和度,使其跟真实的颜色感觉更加接近。 (3)颜色恒常 物体的颜色是物体表面的本质属性,我们观察到的物体的颜色受很多因素的影响,如:物体自身的光谱反射率、环境的光照条件及观察视角方向。人类的视觉认知系统能够在变化的环境光照和成像条件下获取物体表面颜色的不变性质,这就是所谓的颜色恒常。它是指外界环境变化时人对客观物体颜色知觉保持不变的心理倾向,颜色恒常是人类颜色视觉的重要特征之一。神经生理学研究发现,视网膜上存在着红、绿、蓝三种光感受细胞,它们有选择地接受不同波长的光谱刺激。视觉感受器的输入与随后的神经传导过程中的颉颃机制共同决定了特定的颜色知觉[12]。 建立非标准光照到标准光照的颜色映射方式,以此校准整幅图像,实现颜色校正,自动白平衡选择参考白点的算法都是基于这一思想。现有的颜色恒常理论(或模型)大致可以分为映射类与非映射类两大类。映射类理论主要包括:Von Kries三基色系数定律、色域映射理论和谱锐化理论;非映射理论则以Land的视网膜皮层理论、D’zmura的双线性模型和神经网络模型为代表。 ①三基色系数定律 Von Kries通过对颜色适应现象的研究提出了三基色系数理论,该理论认为视网膜上的三种视锥细胞的光感受性随着光刺激强度的不同发生线性变化,即光刺激强度增大,感受性下降,光刺激强度下降,感受性提高。三类视锥细胞因具有不同的光谱选择性,对应的感受性变化系数也各不相同,但是这种感受性的变化并没有改变其光谱选择性函数的形式[13]。假设X、Y、Z为一种照明下的颜色刺激,X’、Y’、Z’为照明变化产生的适应色刺激,则两者之间的关系如公式2-3所示: (2-3) 式中Xl、Yl、Zl为常数,A为适应系数矩阵。利用适应系数矩阵A可以推导出视觉感受器灵敏度的改变程度。计算A的特征根、、,引入常数R0、G0、B0,则公式(2-4)成立。公式(2-4)中,R、G、B为原来的三刺激值,R’、G’、B’为适应环境变化后产生的三刺激值,、、表示经过归一化以后灵敏度的改变程度,称为Von Kries系数。公式(2-4)称为Von Kries三基色系数定律: (2-4) ②视网膜皮层理论 Land和McCann提出了视网膜皮层理论(retinex theory)。这个理论认为人们感觉到的物体颜色与物体表面的反射因数有着密切的关系。照明引起的颜色变化一般是平缓的,通常表现为平滑的照明梯度,而表面变化引发的颜色变化效应往往表现为突变形式。通过分辨这两种变化形式,人们就能区分图像的光源变化和表面变化,从而感知由光源变化引发的表色变化并做出调整,使人们对表色的知觉保持恒常。该理论认为颜色恒常程度不受照明环境变化的影响,只与视觉系统对物体表面反射性质的知觉有关。在视网膜皮层系统中,存在一个对比机制,可以知觉Mondrian色块边界。在边界知觉过程中,视网膜皮层系统借助相邻颜色表面反射系数的关系,部分抵消了由照明条件不同所引起的变化。视网膜皮层理论能应用于三基色系统和对立颜色系统,这两个系统输出结果的差别只是坐标系发生了旋转[14]。 2.2 图像处理流程 由于从A/D转换器读出的数据,只是简单的一些R、G、B的量,并不符合人眼观察的要求。因此必须要经过一定的处理才能得到符合要求的图像。CMOS图像传感器结构如图2.1所示: 图2.1 CMOS图像传感器结构图 2.2.1 色彩插值 在CMOS图像传感器的设计中,厂家出于对成本和体积的考虑,采用单片CMOS彩色传感器。在单片传感器表面覆盖一层彩色滤波阵列(CFA),这样所采集的图像就是每个像素只有红绿蓝其中一种颜色分量的马赛克图。为了获得全彩色图,必须用插值算法复原丢失的色彩信息。表2-1为常用的Bayer RGGB格式图像阵列。 表2.1 Bayer图像阵列 R11 G12 R13 G14 R15 G16 G21 B22 G23 B24 G25 B26 R31 G32 R33 G34 R35 G36 G41 B42 G43 B44 G45 B46 R51 G52 R53 G54 R55 G56 G61 B62 G63 B64 G65 B66 在表2.1中所示的图像阵列中,每个像素点只有一个颜色值,另外两个颜色值的确定可利用相邻像素之间的相关性计算得到。基于Bayer图像阵列,常用的插值算法有相邻像素插值、 双线性插值、双三次多项式插值等。本文采用的是双线性差值算法,如公式(2-5),(2-6), (2-7)所示。 红色像素点R33处处理:(2-5) 绿色像素点G52处处理:(2-6) 蓝色像素点B44处处理:(2-7) 2.2.2 自动聚焦 自动聚焦是为了获得清晰度更高的图像。常用的聚焦方法有两类:一类是传统的聚焦方法,一类是基于数字图像处理的自动聚焦。传统的自动聚焦通过红外线或者超声波测距的方式实现,这种方式需要安装发射机和接收机,增加了摄像机的成本,而且超声波对玻璃后面的被摄物体不能很好的自动聚焦,因此这一类聚焦方式在某些场合受到了限制。在CMOS图像传感器日趋集成化、微型化、低成本的应用中,基于数字图像处理的自动聚焦方法更具有优势。根据镜头成像分析,镜头的光学传递函数可以近似为高斯函数,它的作用等效为一个低通滤波器。离焦量越大,光学传递函数的截止频率越低[15]。从频域上看,离焦量增大,对图像高频能量造成损失,使得图像的细节逐渐模糊。从空域上看,离焦量增大,点光源成像的光强分布函数越分散,可分辨的成像间距越大,图像相邻像素互相重叠,图像细节损失严重。因此图像清晰度评价函数是建立在图像边缘高频能量上的。数字处理方法中,自动聚焦的关键在于构造图像的清晰度评价函数。已经提出的图像清晰度评价函数包括:灰度方差、梯度能量、熵函数和一些频域函数法。图像清晰度评价函数必须具有良好的单峰性和尖锐性,而且要计算量适度,从而可以快速的实现精准对焦。 CMOS图像传感器采集到的是模糊的图像,自动对焦处理模块根据图像信息计算评价函数值,然后根据爬山算法确定移动方向和距离,控制镜头的移动,然后重新计算新位置的评价函数,依据爬山算法确定进一步的移动方向和距离,反复调整直到精准对焦。 2.2.3 自动曝光 曝光是用来计算从景物到达相机光通量大小的物理量。CMOS图像传感器只有获得正确的曝光,才能得到高质量的照片。曝光过度,图像看起来太亮;曝光不足,图像看起来太暗。到达传感器的光通量的大小主要由两方面因素决定:曝光时间的长短以及光圈的大小。 利用光圈进行自动曝光,主要根据所拍摄的场景来控制光圈大小,使得进光量维持在一定范围内。通过光圈进行曝光控制的成本比较高,现在市场上所见的中低端摄像头采用的主流技术都是通过调整曝光时间来实现自动曝光[16]。 目前自动曝光控制算法有两种,一种是使用参照亮度值,将图像均匀分成许多的子图像,每一块子图像的亮度被用来设置参照亮度值,这个亮度值可以通过设置快门的速度来获得。另外一种方法是,通过研究不同光照条件下的亮度与曝光值之间的关系来进行曝光控制。这两种方法都是通过研究大量的图像例子和许多不同的光照条件,而且需要在不同的光照条件下采集的图像数据库。 在实际应用中,自动曝光研究需要解决好以下几个问题:首先是判定图像是否需要自动曝光,其次是自动曝光时,如何调整光电转换后的数字信号找出自动曝光补偿函数,最后就是调整到什么程度最为合适。 2.2.4 伽马校正 在视频采集显示系统中,光电转换(CMOS,CCD)和电光转换(CRT,LCD)器件的转换特性都是非线性的。这些非线性器件都存在一个能反映各自特性的幂函数,它的一般形式是: (2-8a) 式(2-8a)中,(Gamma)是幂函数的指数,用它来衡量非线性器件的转换特性(这种特性我们称为伽马特性),V∈[0,l],表示图像的像素亮度信息。在视频中由于伽马特性的存在,会导致图像信号的亮度失真,降低通信质量,影响用户体验。因此要对这个失真进行补偿, 即伽马校正[17]。 光电转换特性的非线性会引起图像非线性失真,图像的非线性失真主要表现在灰度的失真,即图像亮度层的压缩与扩张,图像看起来被漂白或者太暗。摄像机摄像头的伽马值一般为0.4-0.7,显示器的伽马值一般在1.3-2.5之间。伽马校正的具体实现方法多种多样,较简单的实现方式是查表法。伽马校正分两步:首先建立适合所用器件的伽马校正表,然后根据输入的像素值查表获得伽马校正后的数据。 伽马(Gamma)矫正实质上就是亮度矫正,在灰度图中就是灰度矫正。这个过程非常简单,不需要实时处理,因此可以通过查表来实现。 伽马矫正时的计算单位用(通常为大于1的值)表示。矫正前后的灰度值与的关系可由式(2-8b)表示: (2-8b) 公式中Iin为输入图像的原始灰度值,Iout为矫正后的灰度值,maxgray为输入最大灰度值。这样在0-255的灰度范围内,共有256个灰度级经过伽马矫正后得到对应的灰度值,这些值可事先用Matlab或其他软件计算出来,供程序直接查找。 2.2.5 图像增强 图像传感器输出的图像数据经过上述处理并不是完美的,图像质量获得的改进也是有限的。影响系统图像清晰程度的因素很多,例如室外光照不够均匀就会造成图像灰度过于集中, CMOS光电转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻则表现为图像不干净,难于看清细节;重则表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。 图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可读性。图像增强的方法分为空域法和频域法两类。空域法主要是对图像中的各个像素点进行操作,而频域法是在图像的某个变换域内对图像进行操作,修改变换后的系数,如付立叶变换、DCT变换,然后再进行反变换得到处理后的图像。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立“降质模型”,再利用该模型恢复原始图像[18]。 2.2.6 白平衡 白平衡,字面上的理解是白色的平衡。用色彩学的知识解释,白色是指反射到人眼中的光线由于红、绿、蓝三种色光比例相同且具有一定的亮度所形成的视觉反应。我们都知道白色光是由赤、橙、黄、绿、青、蓝、紫七种色光组成的,而这七种色光又是由红、绿、蓝三原色按不同比例混合形成。当一种光线中的三原色成分比例相同的时候,习惯上人们称之为消色,黑、白、灰、金和银所反射的光都是消色的。通俗的理解,白色是不含有色彩成份的亮度。人眼所见到的白色或其他颜色跟物体本身的固有色,光源的色温,物体的反射或透射特性,人眼的视觉感应等诸多因素有关。举个简单的例子,当有色光照射到消色物体时,物体反射光颜色与入射光颜色相同,即红光照射下的白色物体呈红色。两种以上有色光同时照射到消色物体上时,物体颜色呈加色法效应,如红光和绿光同时照射白色物体,该物体就呈黄色。当有色光照射到有色物体上时,物体的颜色呈减色法效应,如黄色物体在品红光照射下呈现红色,在青色光照射下呈现绿色,在蓝色光照射下呈现灰色或黑色[19]。 由于人眼具有独特的适应性,使我们有的时候不能发现色温的变化。比如在钨丝灯下呆久了,并不会觉得钨丝灯下的白纸偏红,如果突然把日光灯改为钨丝灯照明,就会觉察到白纸的颜色偏红了,但这种感觉也只能持续一会儿。CMOS摄像头并不能像人眼那样具有适应性,如果摄像机的色彩调整同景物照明的色温不一致就会发生偏色。白平衡就是针对不同色温条件调整摄像头内部的色彩电路使拍摄出来的影像抵消偏色,更接近人眼的视觉习惯。白平衡也 可以简单地理解为在任意色温条件下,摄像头所拍摄的标准白色经过电路的调整,使之成像后仍然为白色。 调整白平衡的过程叫做白平衡调整,白平衡调整在前期设备上一般有三种方式:预置白平衡、手动白平衡调整和自动白平衡调整。通常按照白平衡调整的程序,推动白平衡的调整开关,白平衡调整电路开始工作,自动完成调校工作,并记录调校结果。本文采用自动白平衡的工作方式,针对不同的环境色温,对摄像头采集到的画面自动选择合适的调整参数,实现对图像白平衡的调整。 2.3 FPGA技术介绍 FPGA是一种高性能的可编程逻辑器件,集成度高,其器件密度最高可达数百万门级,可以完成极其复杂的时序与组合逻辑电路功能。它的出现不仅克服了定制电路的缺点,还克服了原有可编程器件门电路数量有限的缺点,同时提高了系统的灵活性和适应性[20]。 (1)FPGA的特点 FPGA内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。随着FPGA的不断发展,目前FPGA主要由以下几个部分组成:与外界电路接口进行通信的可编程输入输出逻辑单元、基本可编程逻辑单元、提供数字时钟管理模块、嵌入RAM、丰富的布线资源、DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核内嵌的专用硬件IP核和底层功能单元。 由于FPGA内部有丰富的触发器和I/O引脚、电路设计周期短、开发费用低、功耗低、可与CMOS/TTL电平兼容等优点,FPGA已经逐步侵占ASIC和ASSP的传统市场,并处于快速增长阶段。目前FPGA正朝着高密度、高集成度、高频带、IP软/硬核复用、动态可重构等多元化方向发展。 (2)FPGA的工作原理 FPGA内部的组合逻辑是通过小型查找表(LUT)实现的,每个查找表通过连线连接到一个D触发器的输入端,其他逻辑电路和I/O口通过查找表连接的触发器进行驱动,由此构成的基本逻辑单元模块不仅可实现组合逻辑功能,而且可以实现时序逻辑功能,各个模块之间及各个模块与I/O口之间通过模块金属线互相连接。 FPGA允许进行多次编程,且编程次数是无限的,FPGA的最终功能由最后一次编程确定。通过对FPGA内部静态存储单元加载数据实现FPGA内部逻辑,且各模块之间的连接、各模块内部的连接、各模块与I/O口之间的连接方式都是由存储在存储器单元中的数值决定[21]。FPGA的工作状态是由存放在片内RAM中的程序来设置的,因此工作时需要对片内的RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。Altera公司FPGA主要有主动和被动两种配置模式,本设计采用主动配置模式即由FPGA器件引导配置操作过程。加电时,FPGA芯片的配置是通过将EPROM中数据读入片内编程RAM中完成;配置结束后, FPGA进入工作状态;一旦掉电,FPGA的内部逻辑关系全部消失,变为空白状态可再次使用。FPGA通过利用EPROM、PROM编程器即可进行编程,不需要专用的FPGA编程器。当需要修改FPGA功能或者FPGA由于编程器件损坏等原因需要替换时,不需要更换整个FPGA,只需换一片EPROM即可,不仅节约成本,而且对同一片FPGA进行不同的编程就可以产生不同的电路功能,使FPGA的使用更加灵活、方便。 2.4 Verilog HDL编程语言介绍 Verilog 是Verilog HDL 的简称。Verilog 语言最初于1983年由Gateway Design Automation 公司开发,于1995 年被认证为IEEE标准。Verilog 语言不仅定义了语法,而且还对每个语法结构都清晰定义了仿真语义,从而便于仿真调试。Verilog 语言继承了C语言的很多操作符和语法结构,对初学者而言易学易用。另外Verilog 语言具有很强的扩展性,最新的Verilog 2001标准大大扩展了Verilog的应用灵活性。 HDL和原理图是两种最常用的数字硬件电路描述方法。原理图设计输入法在早期应用的比较广泛,它会根据设计要求,选用器件,绘制原理图,完成输入过程。这种方法的优点是直观,便于理解,元件库资源丰富;但是在大型设计中,这种方法的可维护性较差,不利于模块建设与重用,更主要的缺点是当所选用的芯片升级换代后,所有的原理图都要作相应的改动[22]。 目前进行大型工程设计时,最常用的设计方法是HDL设计输入法,其中影响最为广泛的HDL 语言是Verilog HDL和VHDL。它们的共同特点是利于自顶向下的层次化设计,利于模块的划分与重用,可移植性好,通用性好,设计不会因芯片工艺和结构的变化而变化,更利于向ASIC移植。 Verilog 作为硬件描述语言,它的本质作用在于描述硬件。Verilog 虽然采用了C语言的形式,但是它的最终描述结果是芯片内部的实际电路。HDL的基本功能就是有效地描述并仿真硬件系统。典型的HDL设计与验证流程如图2.2所示,其中虚线箭头的步骤可以依据项目的复杂程度省略,实线箭头的步骤为必须执行的步骤。 图2.2 HDL的设计与仿真流程 1)系统与功能模块定义(系统级描述) 在大型系统的设计与实现中,首先要进行详细的系统规划和描述。此时HDL描述侧重于对整体系统的规划和实现。系统级仿真的主要目标是对系统的整体功能和性能指标进行衡量。系统级设计与仿真多采用高级描述语言,如C/C++、System C和System Verilog等。系统级描述完成后,应该进一步将系统功能划分为可实现的具体功能模块,大致确定模块间的接口,如时钟、读写信号、数据流和控制信号等,并根据系统要求描述出每个模块或进程的时序约束,这个细化的过程被称为功能模块级设计。功能模块级仿真主要是考察每个子模块或进程的功能与基本时序。在系统级与功能模块级设计层次,必须整体权衡多种实现之间的优劣,根据系统性能指标要求,从整体上优化实现方案,从而更有效地满足设计需求[23]。2)行为级描述测试激励(Behavior Level) 行为级模块描述的最大特点是必须明确每个模块间的所有接口和边界。此时模块内部的功能已经明确,模块间的所有接口、顶层的输入和输出信号等在行为级已经被清晰地描述出来。在PLD和ASIC设计流程中,常用行为级描述方式编写测试激励。延时描述、监视描述等命令都是在编写测试激励的过程中常用的行为级语法。行为级描述常使用HDL语言,如Verilog 和VHDL等。 3)寄存器传输级(RTL,Register Transfer Level) 寄存器传输级指不关注寄存器和组合逻辑的细节(如使用了多少逻辑门,逻辑门之间的连接拓扑结构等),通过描述寄存器到寄存器之间的逻辑功能描述电路的HDL层次。RTL级是比门级更高的抽象层次,使用RTL级语言描述硬件电路一般比门级要简单、高效得多。寄存器传输级描述的最大特点是可以直接用综合工具将其综合为门级网表。RTL设计直接决定着设计的功能和效率。好的RTL设计能在满足逻辑功能的前提下,使设计的速度和面积达到一种平衡。RTL级描述最常用的HDL语言是Verilog和VHDL语言。 4)对RTL级描述进行功能仿真 一般来说需要对RTL级设计进行功能仿真,仿真的目的是验证RTL级描述是否与设计意图一致。为了提高效率,功能仿真的测试激励一般使用行为级的HDL语言描述。 5)逻辑综合(使用RTL级EDA工具) RTL级综合指将RTL级HDL语言翻译成由与、或、非门等基本逻辑单元组成的门级连接(网表),并根据设计目标与要求(约束条件)优化所生成的逻辑连接,输出门级网表文件。随着综合工具的不断智能化,使用RTL 级语言描述硬件电路越来越方便,特别是在可编程逻辑器件(PLD,主要指FPGA和CPLD)设计领域,最重要的代码设计层次就是RTL级[24]。 6)门级(Gate Level) 目前大多数的FPGA设计都依靠专业综合工具完成从RTL级代码向门级代码的转换,设计者直接用HDL语言描述门级模型的情况越来越少,高效的综合工具将设计者从复杂烦琐的门级描述中彻底解放出来。目前要直接使用门级描述的情况一般是ASIC和FPGA设计中有面积或时序要求较高的模块。门级描述的特点是整个设计用逻辑门实现,通过逻辑门的组合显化描述设计的引脚、功能和时钟周期等信息。 7)综合后门级仿真 综合完成后如果需要检查综合结果是否与原设计一致,就需要进行综合后仿真。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时所带来的影响。综合后仿真虽然比功能仿真精确一些,但是只能估算门延时,不能估算线延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合结果是否与原设计一致。目前主流综合工具日益成熟,对于一般性设计而言,如果设计者确信自己的表述准确,不会产生歧义,则可以省略综合后仿真这一步骤。一般情况下,综合后仿真与功能仿真的仿真激励相同。 8)布局规划与布局布线 综合的门级结果最终要映射到目标库(如ASIC 设计)或目标器件(如PLD设计)中。由于本文的重点为HDL设计,因此这里不再深究ASIC 与PLD设计的相关流程。 9)布局布线后的时序仿真与验证 将最终布局规划或布局布线的延时信息反标注到设计网表中所进行的仿真就叫时序仿真或布局规划与布局布线后仿真,简称后仿真。布局规划与布局布线之后生成的仿真延时文件包含的延时信息最全,不仅包含门延时,而且还包含实际的布线延时,所以时序仿真最准确。它能较好地反映芯片的实际工作情况,建议进行时序仿真,通过时序仿真可以检查设计时序与芯片的实际运行情况是否一致,确保设计的可靠性和稳定性。时序仿真的主要目的在于发现时序违规(Timing Violation),即不满足时序约束条件或者器件固有时序规则(建立时间、保持时间等)的情况[25]。 2.5 本章小结 本章首先介绍了色彩学的基础知识,对色温、色空间、颜色恒常等概念做了详细的介绍。接下来对图像处理的基本原理以及处理流程做了阐述。然后,对FPGA技术做了简要介绍。最后,介绍了FPGA的编程语言Verilog HDL的特点和用法。在接下来的几个章节里,将对白平衡算法进行研究和改进,并做出相应的实验对比和分析。 第3章灰度世界与色温估计白平衡算法研究 3.1 灰度世界白平衡算法研究 3.1.1 算法简介 目前绝大多数的白平衡算法都是在Von Kries假设的基础上改进得到的。根据Von Kries假设,图像的色彩调整是一个独立的增益调整过程,这种增益调整对三种颜色信号分别采用三个不同的增益系数,并且每一个图像传感器通道都是独立传输的。增益调整模型如式(3-1)所示: (3-1) 其中L、M、S代表三元色的原始初值,Kl、Km、Ks 表示将原始信号增大到三元色调整值La、Ma、Sa 的增益系数。调整模型因部分系数获得的方法而不同。在这些模型中RGB通道通常 被认为是L、M、S视网膜波段(RetinaI Wave Band)的一种近似,所以公式(3-1)变为: (3-2) 灰度世界算法的基本思想是:在已知标准光源下的一幅色彩变化很大的图像的R、G、B通道的平均值合成是一种普通的灰色,即R、G、B通道的平均值应该等于一个灰色的常数Gray,如式(3-3)所示。 (3-3) 这样我们就可以应用灰度世界假设来去掉在特殊光源下数码相机拍摄的图片中因光源而带来的模糊层面。一旦选择了一种普通灰度值,每一种色彩元素都可以应用Von Kries系数进行调整,如式(3-4)所示。 (3-4) 式(3-4)中Raver、Gaver、Baver表示RGB三通道的平均值,GrayR、GrayG、GrayB表示选择的灰度值。 现在有很多种白平衡算法,他们的基本思想都是让白点或者白色区域表现得如同真实场景中的一样,这样其他颜色也被认为同真实场景一致,由此达到图像的白平衡调整。这些白平衡算法的技巧在于从获得的图像中识别这些白点或者白色区域。目前主要有两种方法[26]:全局白平衡法和局部白平衡法。 全局白平衡算法 该算法认为,图像中R、G、B三色分量的统计平均值应该相等,对拍摄整个图像进行统计平均,以R、B分量的均值作为白平衡校准的依据。 局部白平衡算法 该算法搜寻所拍摄图像中最亮的区域作为白色区域,认为该区域的R、G、B三色分量的统计平均值应该相等,以该区域R、B分量的统计平均值作为白平衡校准的依据。 灰度世界全局白平衡算法具体的算法步骤如下: l)根据即将拍摄的图像选择白平衡的统计搜集区域。白平衡模块在获得的图像统计数据的基础上进行整个图像的白平衡。但是依据摄入图像的类型和摄取时的环境,搜集统计数据的图像区域可以改变: 全图像区—在整个图像获取统计数据。这对于室内图片或者在整个图片光线大约相等的地方是非常理想的。 南水平线区—统计数据在图片的下半部获取。这种选择适用于那些需要消除地面-天空边界问题的室外图片。 中心区—统计数据在图像的中间l/4范围内获取。对于那些主要关心中间部分曝光的肖像图片来说是很理想的。 2)在此区域内获取图像的统计数据,然后根据式(3-5)计算所有像素各颜色的平均值。 (3-5) M表示一帧图像的行数,N表示一帧图像的列数,Rij、Gij、Bij分别表示一帧图像中第i行、j列的像素点的三原色通道的颜色值。M×N表示一帧图像中的像素总数。 3)计算灰度常数。 (3-6) 4)计算出每种颜色通道的增益系数。 (3-7) 5)将得到的乘法系数应用到相应的颜色像素中,得到修正的颜色,完成白平衡调整。 (3-8) Rin、Gin、Bin分别表示下一帧图像的原始三原色通道输入值,Rout、Gout、Bout分别表示 下一帧图像的经过白平衡调整过后的三原色输出值。 3.1.2 算法评价 灰度世界全局白平衡算法原理比较简单,实现起来比较方便,能够适应一般场景的应用。但是由于该算法是建立在灰度世界假设的基础之上,因此有一定的局限性。当灰度世界假设不成立,比如图像中存在大面积色块等明显的偏色时,该算法的处理结果就会出现明显的偏差,不能达到白平衡调整的效果。目前用于专用集成电路(ASIC)实现的白平衡算法主要是基于传统算法的改进算法[27]。本文为了解决灰度世界算法在图像颜色信息不够丰富时算法失效的问题,采用了基于色温估计的自动白平衡算法。 3.2 基于色温估计自动白平衡改进算法 3.2.1 提出背景 完美反射算法是基于影像中最亮的像素,假设在一物体的光滑面或镜面下,以影像中最亮的像素作为参考白点,其缺点在于整个影像中的亮度常会改变,因此参考白点不易决定。Nakano提出了一种基于YCbCr色彩空间的约束条件,在YCbCr空间定义了一个三维结构,认为落在这个区域内的像素是白色的,而外面的像素认为是非白色的。进行色温估计时,只需计算白色像素的平均色差,以代表整个图像的色差。如果这个区域选择合适,能提高色温估计的准确度[28]。 Nakano提出的色温估计算法的约束条件如式(3-9)所示: (3-9) 式(3-9)的物理含义是:在Y足够大,Cr和Cb足够小的空间里定义了一个区域,并将该区域中的所有像素看作是白色的,可以参与色差的计算。 上述的白色区域类似于一个立方体,在每个Y平面上,白色像素都位于一个CbCr矩形当中,并且所有Y平面上的CbCr矩形大小是一致的。 公式(3-9)未考虑Cb、Cr之间的相关性,Lee在式(3-9)的基础上加入了Cb、Cr之和的控制阈值,如公式(3-10)所示,进一步提高了色温估计的精确度。该算法还通过限制R, B的变化范围来适应镜头缩放时图像的剧烈变化。 (3-10) Y和Cb,Cr之间也具有一定的相关性。Y较小时,Cb、Cr较小的像素表现为接近白色的灰度值;而在Y较大时,Cb、Cr较大时的像素可以认为是白色物体受到光源污染得到的。对上面两个式子的约束条件改进后得到公式(3-11),如下所示。 (3-11) 图3.1 算法约束条件改进后的控制区域 图3.1所示为该改进后约束条件的控制区域,这个区域是上粗下细的柱状体,每个CbCr平面是个菱形,当Y较小的时候,CbCr控制的紧,从而只有少量的像素参与计算,而Y增大的时候,CbCr范围相应放大,有更多的像素参与计算。 Nakano提出的色温估计算法在白平衡调整的过程中没有对图像中参考白点的色温信息是否有效进行评估,当图像出现浅色区域较多或者较少等现象时,则选取的参考白点的数目可能会出现过多或者过少等情况,此时根据参考白点计算的色温是不准确的。另外在选取参考白点的过程中没有对噪声点进行过滤和防范,从而影响白平衡调整的效率和准确度。 3.2.2 算法过程 本算法属于局部白平衡算法,采用白点检测的方式来估计场景的色温并进行色温校正。首先通过色彩空间转换,将RGB格式的图像转换为YCbCr格式的图像数据。接着在YCbCr色彩空间对图像中的参考白点的色温信息进行评估,判断参考白点色温信息的有效性,输出有效的色温信息。根据有效的色温信息计算R、G、B通道的增益,并利用该增益调整图像中的R、 G、B值。流程图如图3.2所示。 图3.2 白点检测算法实现流程图 1)色彩空间转换单元 由于白点检测需要利用亮度和色度信息,故需要在YCbCr空间进行。RGB色彩空间转换到YCbCr空间的公式如式(3-12)所示: (3-12) 2)色温评估单元 色温评估单元用于检测图像中的参考白点并统计参考白点的色温信息,判断参考白点的色温信息的有效性,输出有效的色温信息。有效的色温信息包括参考白点的R、G、B三个通道的累加值SUM(R)、SUM(G)、SUM(B),以及参考白点的数量counter。该部分的框图单元结构如图3.3所示。 图3.3 色温估计单元结构图 参考白点的选取根据式(3-13)判断: (3-13) 式(3-13)中Y、Cb、Cr分别为像素的亮度分量、蓝色色度分量和红色色度分量,thr_dyn 为参考白点的判断阈值。 在实验中我们发现,图像中经常会出现过曝的像素点,将这些点纳入色温统计是不准确的。因此我们增加了对图像中的噪声点的过滤,避免曝光过度造成的不良影响,过滤条件如式(3-14)。 (3-14) R通道阈值、G通道阈值、B通道阈值取值范围可以为210至255,亮度阈值的取值范围为200至240。 接下来是判断参考白点的色温信息是否有效。 实际场景中图像的亮度不一致,有时图像亮度较高,有时图像又比较暗。利用公式(3-13)进行白点检测时,容易出现各种极端情形,或将本来其他颜色的点误检测为白点,或检测出的白点数量极少甚至没有。这两者都对白平衡处理不利,所以在进行后续的增益计算前,有必要判断之前的色温信息是否有效。我们利用检测出的白点数量与图像中总的像素数量进行色温信息的有效判断。将参考白点数量counter与第一阈值N_max以及第二阈值N_min进行比较,当满足N_min=N_max 或者counter<=N_min时,判定参考白点的色温信息无效[29]; 如果满足条件,则进行后续的处理。当判断参考白点的色温信息无效时,则需要进行相应的阈值调整。阈值的取值范围比较广,为了能比较快的调整阈值,我们设了3个档次用于调整阈值,分别是5、20、40。具体的调节方式如图3.4所示。调节后的阈值在下一帧中起作用。图3.4 调整参考白点判断阈值的流程图 3)增益调整单元 根据有效的色温信息计算R、G、B通道的增益,并利用增益调整图像中的R、G、B值。该部分的框图单元结构图如图3.5所示。 图3.5 增益调整单元结构图 首先进行白点的RGB平均值的计算。如式(3-15)所示。 (3-15) 接着根据式(3-16)计算所有参考白点的亮度平均值Y_avg。 (3-16) 有了上面两个计算结果之后,就可以通过式(3-17)计算R、G、B通道的增益R_gain、G_gain、 B_gain了。 (3-17) 求得R、G、B通道的增益后,根据式(3-18)调整图像中像素的R、G、B值R_new、G_new、B_new。 (3-18) 3.3 本章小结 本章首先分析了灰度世界算法的计算过程,并对其优缺点进行了评价。最后详细介绍了基于色温估计自动白平衡算法的基本原理和实现过程。 第4章基于色温估计自动白平衡算法FPGA设计与实现 4.1 设计流程 图4.1 设计流程图 本文的算法模块按照图4.1所示的流程进行设计,每一个阶段完成后,经过验证达到设计目标后才继续向下进行。自顶向下的设计方法是从系统级开始,把系统按功能分为若干个独立的基本单元,再将每个基本单元划分为下一层的基本单元,并依次细分下去。这样做的好处是如果在一个团队开发的话,可以并行设计每个模块,所设计的模块也可以被重复的利用,提高了设计的效率,在对模块算法改进时也很方便做局部的功能验证。总体功能定义后,将算法按计算顺序分解为下层的子算法模块,每个模块独立完成算法中的某项特殊的运算机能。在设计的同时为各个模块编写了测试代码,当算法改进的时候可以用相同的测试文件进行验证和仿真。EDA工具提供了有效的手段来管理错综复杂的层次,可以方便的查看某一层次某模块的源代码或电路,以改正仿真时出现的错误[30]。 4.2 模块功能描述 本设计采用基于色温估计的自动白平衡算法,顶层模块描述的功能可以简单描述为:按照选择的白平衡工作模式对输入的RGB信号进行处理,输出为处理后的RGB信号,以及行有效和帧有效信号。顶层模块中包含了四个子模块分别为:工作模式选择模块、图像统计模块、增益计算模块、数据处理模块。每个模块的功能定义如下:工作模式选择模块:根据输入的工作模式选择信号确定白平衡处理的工作方式为自动白平衡还是用内部的对己知环境色温查询表的调整模式。在自动白平衡方式中,需要启动图像统计模块和增益计算模块,并加入隔帧统计计算增益功能。其他的模式中直接向数据处理模块传递已有的增益值便可[31]。 图像统计模块:在一帧图像的时间内,统计出这一帧图像RGB三个色彩分量的均值和最值。增益计算模块:利用统计模块统计结果,按照算法进行求增益计算,输出增益值到工作模式选择模块。 数据处理模块:从工作模式选择模块得到调整增益值,对数据进行增益处理输出处理后的数据。处理过程需要几个时钟周期的时延,所以最后需要调整行同步和场同步有效信号使其保证和输出的数据同步。 图4.2 模块间数据传递 图4.2表示了模块间主要的控制信号和数据的传递情况。工作模式选择模块可以启动图像统计模块。在设计自动白平衡模式时,由于一般的应用场合短时间内可以假设色温的变化不明显,我们如果对每一帧图像都进行统计增益计算,会大大增加功耗的开销,所以在自动白平衡时我们采用隔帧统计的方法来计算白平衡增益。这样在人眼不能察觉的帧数范围内我们可以设定一个帧计数值,这样既不会影响视频的观赏又能定时的去检测色温环境的变化。工作模式模块负责增益数据的收集和发送工作。在自动白平衡模式下它能自动的从增益计算模块获得白平衡增益计算值,并将其传递给数据计算模块。数据计算模块主要是用增益值对输入的像素数据进行乘法处理,要求是处理后的像素仍然要一个时钟周期输出一个,这就限定了我们的处理时间,即在一个时钟周期内处理完一个像素。 4.3 模块接口设计 本设计中所有的模块都是用Verilog HDL语言在Quartus II 10.1软件上设计开发的,Quartus II 10.1设计软件是ALTERA公司提供给用户的一个最成熟可靠且高效能的自动化电子设计工具 (EDA),从编辑(Edit)、仿真(Simulator)、综合(Synthesis)、布局与布线(Place and Route)、烧录至FPGA,可以完成设计流程的所有阶段,是个全面且广为设计者所使用的工具。图4.3为Quartus II 10.1软件的操作界面。 图4.3 Quartus II 10.1软件的操作界面 1)工程设计文件列表 本设计建立了一个名为DE2_D5M.qpf的工程,工程下面包含一系列工程设计文件,每一个设计文件都完成特定的功能。DE2_D5M.v为工程顶层实体文件,它主要定义了整个工程所有的输入输出端口信息,及各模块端口互连的情况。CCD_Capture.v为CMOS摄像头图像采集模块设计文件,它主要完成原始图像的获取,实现光信号向电信号的转换。I2C_CCD_Config.v 为串行总线CCD接口控制设计文件,它主要是完成对CCD采集模块的控制,如曝光时间调整,采集模式选择以及镜头聚焦。I2C_Controller.v为串行总线控制器设计文件,主要对串行通信的时序和数据传输进行定义。Line_buffer.v为数据缓冲器,主要是为了适应不同模块间时钟频率数据位宽不一致的情况,本设计中实现了CCD采集的串行图像数据向并行RGB数据的转换。RAW2RGB.v为原始图像数据向显示器支持的RGB格式转换模块。SEG7_LUT.v和SEG7_LUT_8.v为数码管驱动控制模块和显示查找表,它在本设计中主要是用来显示曝光的时间参数。Reset_Delay.v为复位时序控制单元,它控制着整个工程的复位信号。Sdram_Control_4port为SDRAM动态随机存储器的设计文件,包括SDRAM的芯片参数,控制指令,接口信息,数据传输,堆栈队列等功能模块。本设计中使用SDRAM存储器主要是用作帧缓存,方便对图像数据进行处理,自动白平衡模块就是使用缓存后的图像数据进行处理的。VGA_Controller.v是VGA图像控制器,它主要是用来显示处理过后的图像数据。AWB.v 是自动白平衡处理模块,它包含了基于色温估计的自动白平衡算法。工程中的所有文件列表如图4.4所示。 图4.4 工程中的设计文件列表 2)CCD图像采集模块 该模块处理从TRDB_D5M摄像头采集的图像数据,主要功能是产生横向、纵向和框架计数器并将摄像头的数据传到FPGA的GPIO1接口。该模块同时对图像数据进行了简单的预处理,包括曝光控制、颜色插补、伽马校正、自动白平衡等,使传给后面模块的图像数据基本符合要求。但是这种预处理功能很有限,尤其是在白平衡这一块有很大的局限性,偏色现象十分严重。为了防止这个预置白平衡功能对后面所设计的基于色温估计的自动白平衡处理模块所带来的干扰,我们先将此预置白平衡功能屏蔽。CCD图像采集模块如图4.5所示。 图4.5 CCD图像采集模块 3)RAW数据向RGB格式转换模块 CMOS传感器采集的图像数据为Bayer RGGB格式,而显示器支持的一般格式为RGB,所以我们要将图像数据转换为RGB格式。此模块调用了一次Line_Buffer数据缓冲器模块,方便I2C串行数据向并行数据的转换。RAW数据向RGB格式转换模块如图4.6所示。 图4.6 RAW数据向RGB格式转换模块 4)自动白平衡功能模块 基于色温估计的自动白平衡算法Verilog HDL部分代码: assign AWB_oR =(r_R>255)?255: r_R; assign AWB_oG =(r_G>255)?255: r_G; assign AWB_oB = (r_B>255)?255: r_B; always@(posedge iCLK or negedge iRST) begin if(!iRST) begin Rsum_3000K <= 0; Gsum_3000K <= 0; Bsum_3000K <= 0; Cnt_3000K <= 0; end else begin if( ((AWB_iR/AWB_iG)*10)>=r2g_low_3000K&&((AWB_iR/AWB_iG)*10)=b2g_low_3000K&& ((AWB_iB/AWB_iG)*10)=r2g_low_5000K && ((AWB_iR/AWB_iG)*10)=b2g_low_5000K && ((AWB_iB/AWB_iG)*10)=r2g_low_7000K && ((AWB_iR/AWB_iG)*10)=b2g_low_7000K && ((AWB_iB/AWB_iG)*10)=255) begin mr_R <= 255; end else if(r_G>=255) begin mr_G <= 255; end else if(r_B>=255) begin mr_B <= 255; end else begin mr_R = r_R[9:0]; mr_G = r_G[9:0]; mr_B = r_B[9:0]; end end endmodule 将以上Verilog HDL代码编译成功后即可生成图4.7所示的AWB自动白平衡模块,该模块能根据输入的AWB_iR、AWB_iG、AWB_iB数据统计出各色温像素点的分布情况,然后比较出像素点分布最多的色温,由此估计出整个图像的色温,计算各颜色通道的增益,对下一帧图像利用此增益进行调节。最后输出经过白平衡调整过后的AWB_oR、AWB_oG、AWB_oB三原色颜色值给VGA显示模块。 图4.7 AWB自动白平衡模块 5)SDRAM模块 本设计使用两块32MB的SDRAM存储器作为帧缓存来存储每个像素的所有RGB值,RGB总共30位,三种颜色各10位。为了满足实时传输和实时处理的要求,SDRAM采用四缓冲的帧缓存访问机制,以达到采集、处理和传输能并行工作的目的。SDRAM模块如图4.8所示。 图4.8 SDRAM模块 6)VGA显示模块 VGA显示模块负责从AWB自动白平衡模块接收RGB数据,并且将每个像素的RGB数据发送到VGA数模转换器。VGA液晶显示器将处理后的画面显示出来,本设计所使用的图像分辨率为640×480。VGA显示模块如图4.9所示。 图4.9 VGA显示模块 7)编译结果 编译结果如图4.10所示,从图中可以看出整个工程的资源利用情况,由于本设计所使用的基于色温估计的自动白平衡算法计算复杂度不高,所以整个工程占用的资源很少。从另一方面也说明了FPGA的逻辑资源十分丰富,对于复杂的算法、复杂功能的庞大系统实现毫无压力。整个工程FPGA逻辑单元使用了5%,逻辑寄存器只使用了3%,存储器单元使用了13%,锁相环利用率25%,总引脚使用了89%(实际上没有用到这么多,因为在引脚锁定时用的自动分配引脚方式。这种方式直接将DE2开发板的引脚文件导入工程,将开发板上所有用到没有用到的引脚都锁定了。这也解释了为什么工程编译时会出现358个警告,因为有358个没有用到的引脚被锁定了,但是这并不妨碍程序的运行)。 图4.10 编译结果 8)SignalTap II 逻辑分析仪 调试FPGA是一个比较艰巨的任务,设计越是复杂,则在验证设计上所花的时间和精力就越多。为了能让产品尽快占领市场,必须尽可能的减少验证的时间。此时,验证工具的优势就体现出来了。Altera公司的SignalTap II逻辑分析仪是Altera StratixII、Stratix、StratixGX、Cyclone、Cyclone II、APEX II、APEX 20KE、APEX 20KC、APEX 20K、Excalibur、Mercury等系列FPGA的在线、片内信号分析工具。与硬件逻辑分析仪相比,SignalTap具有成本低廉、使用方便、灵活性大等优点,对于FPGA设计开发人员来说,无疑是一个好的帮手。本设计使用SignalTap II 逻辑分析仪将信号数据通过JTAG 端口送往SignalTap II 逻辑分析仪采样和捕获信号波形,以验证FPGA的逻辑功能是否正确。SignalTap II 逻辑分析仪界面如图4.11所示。 图4.11 SignalTap II 逻辑分析仪界面 9)信号截图 对各模块接口进波形仿真,各模块都能正常工作,无逻辑错误。波形截图如图4.12所示。 图4.12 各模块接口波形仿真 10)时序约束 Quartus II软件提供的TimeQuest Timing Analyzer是使用工业标准并支持SDC(Synopsys Design Constrain)文档的静态时序分析工具,最主要的功能是依据设计者所提出的特定时序约束,要求系统在综合、布局和布线上能满足设计者所提出的要求,从而提供映射后的时序分析报 告,对设计的性能作出评估。经过TimeQuest Timing Analyzer时序分析,本设计的时序基本达到要求,时序分析结果如图4.13所示。 图4.13 时序分析截图 11)RTL电路图 系统的RTL电路如图4.14所示。 图4.14a 系统的RTL电路图部分截图 图4.14b 系统的RTL电路图部分截图 12)下载 工程的最后环节,将编译通过,逻辑仿真正确,时序约束完成,综合、自动布局布线后生成的DE2_D5M.sof文件下载到DE2开发板上的FPGA芯片。下载界面如图4.15所示。 图4.15 下载界面 4.4 实验结果分析 为了科学地进行比较,本文采用了控制变量的对比方法,即只让单一变量改变,其它因素如距离、光线、摄像头清晰度全部相同。本实验设置了3个对照组: 1.一般图像的白平衡 图4.16a 预置白平衡图4.16b 灰度算法白平衡图4.16c 改进算法白平衡2.图像中色彩丰富 图4.17a 预置白平衡图4.17b 灰度算法白平衡图4.17c 改进算法白平衡 3.图像中有色块 图4.18a 预置白平衡图4.18b 灰度算法白平衡图4.18c 改进算法白平衡 实验观察发现,在处理一般图像时,基于色温估计的自动白平衡改进算法与灰度世界算法的白平衡处理效果基本相同;在处理色彩丰富的图像时,色温估计算法较灰度世界算法效果略好一些;在处理有色块的图像时,色温估计算法明显优于灰度世界算法。 分析原因:因为灰度世界算法的原理是找出图像中最亮的点,并把它作为参考白点对整个图像进行白平衡调整。这种方法是具有局限性的,当那个最亮的点落在色块中时,白平衡调整是失败的。而基于色温估计的白平衡改进算法是根据统计图像中的像素分布来估计整个图像的色温,以此来对图像进行白平衡调整。所以本文的设计是合理的,方案可行。 4.5 本章小结 本章主要介绍了基于色温估计的自动白平衡算法的FPGA设计与实现,并对实验结果进行了分析。实验结果表明在不改变图像质量,相同计算复杂度的前提下,在处理色彩单一的图像时基于色温估计的自动白平衡改进算法具有更好的白平衡效果。 第5章总结与展望 5.1 全文总结 随着图像白平衡计算技术的研究和发展,目前已经提出了各种各样有效的图像白平衡计算算法。虽然现有算法都能够得到合理的图像白平衡效果,但是都要基于特定的成像假设,尤其对有大块单一色块图像的处理是一个难点。本论文在研究了现有灰度世界算法的基础上,改进了基于色温估计的自动白平衡算法,并在DE2开发板上FPGA芯片实现该算法,该算法计算复杂度适中,硬件适应性好。针对上述研究内容,论文完成了如下研究工作: 1、算法研究与开发。在大量阅读了相关文献、专利、论文基础上,对现有的常见自动白平衡算法进行了研究和分析,总结了各算法的优势和劣势。针对现有算法存在的缺陷,兼顾算法复杂度和白平衡效果两方面,改进了基于色温估计的自动白平衡算法。实验结果表明该算法取得了较理想的效果,并且这种算法不需要存储图像帧便能完成白平衡的计算,算法的性能也有了一定的提高。 2、系统设计实现。制定了自动白平衡控制系统的实现方案,对算法进行合理的划分,具体分析了硬件功能模块各自完成的功能。自行设计了自动白平衡统计模块的电路结构,使用Verilog HDL硬件描述语言对硬件部分进行设计,综合后与项目中的其他功能模块一起下载到FPGA芯片中实现。 3、实验结果分析。与灰度世界算法进行了大量对比实验,验证改进过后的算法具有较好的白平衡效果,确实能够弥补灰度世界算法的不足,因此方案是可行的。 5.2 展望 类似于绝大多数现有的图像白平衡算法一样,本文在研究图像白平衡计算问题时,都是基于单一光照假设进行的,即整个场景中只存在一种光照,或者虽然存在多种光照但是都平均地看成一种光照,并且基本都是采用图像底层特征来作为研究对象。针对这些问题,作者今后将从以下几个方面作进一步研究: (1)多光照条件下的图像白平衡计算。多光照下的图像白平衡计算是白平衡计算中的一个重要问题,同时也是一个比较困难的问题。目前,越来越多的学者和研究机构开始关注这个问题。因此,解决多光照下的图像白平衡问题是未来的一个重要研究方向。借用现有机器学习理论的研究成果,使用有监督的方法进行多光照下的图像白平衡计算的研究将是作者进一步研究的主要思路[32]。 (2)基于高层语义特征的图像白平衡计算。本文提出的算法思路无一例外的采用了图像的底层特征,即通过图像中所有或部分像素点的颜色或者纹理等特征来推断估计成像时场景所处的光照条件。虽然这种研究方法取得了一定的成果,但是它忽略了场景中一些高层语义概念对图像白平衡的指导意义。实际上,人对图像的描述和理解主要是在语义层次上进行的,无法直接从图像的视觉特征即底层特征获得。不仅如此,图像内容具有模糊特性,也无法用简单的特征向量来描述。例如,在一般情况下天是蓝的、云是白的、草是绿的等等,这些信息都将给图像白平衡计算带来很大的帮助。因此,作者下一步研究的重要内容之一就是关注高层语义指导下的图像白平衡计算。 参考文献 [1]周荣政,何捷,洪志良等.自适应的数码相机自动白平衡算法[J].计算机辅助设计与图形学学报,2005,17(3):529-533.DOI:10.3321/j.issn:1003-9775.2005.03.025. [2]王建,庞彦伟,俞浩等.基于灰轴调整的彩色图像自动白平衡[J].天津大学学报,2010,43(6):479-484.DOI:10.3969/j.issn.0493-2137.2010.06.002. [3]张钰,姚素英,胡燕翔等.一种基于边沿检测的图像自动白平衡方法[J].光电子?激光,2008,19(6):804-807.DOI:10.3321/j.issn:1005-0086.2008.06.021. [4]一种基于灰度世界模型自动白平衡方法[J].计算机仿真,2005,22(9):185-188. [5]徐渊,周清海,张智等.基于FPGA的实时CMOS视频图像预处理系统[J].深圳大学学报(理工版),2013,30(4):416-422.DOI:10.3724/SP.J.1249.2013.04416. [6]赵全友,潘保昌.改进的LoG边缘自动白平衡算法[J].计算机应用研究,2009,26(2):775-777,780.DOI:10.3969/j.issn.1001-3695.2009.02.114. [7]田立坤,刘晓宏,李洁等.自适应自动白平衡算法的改进与实现[J].电光与控制,2013,(12):37-41.DOI:10.3969/j.issn.1671-637X.2013.12.009. [8]印蔚蔚.数字图像自适应白平衡算法的研究与改进[D].江苏大学,2011.DOI:10.7666/d.y1895365. [9]金黄斌.自动白平衡算法研究及软硬件实现[D].杭州电子科技大学,2011.DOI:10.7666/d.y1909217. [10]李阳.自动白平衡算法的改进与实现[D].西安电子科技大学,2010.DOI:10.7666/d.y1865977. [11]王敏.基于色温估计自动白平衡算法研究与实现[D].天津大学,2011. [12]胡昌友.基于硬件实现的数码相机自动白平衡算法[D].复旦大学,2007.DOI:10.7666/d.y1170474. [13]闫格.CMOS图像传感器白平衡数字处理电路设计[D].天津大学,2007.DOI:10.7666/d.y1361828. [14]严世珺.数字图像白平衡处理算法研究与改进[D].上海交通大学,2007. [15]高建领.数码相机系统功能设计与实现[D].华中科技大学,2010.DOI:10.7666/d.d190347. [16]胡波,林青,陈光梦等.基于先验知识的自动白平衡[J].电路与系统学报,2001,6(2):25-28.DOI:10.3969/j.issn.1007-0249.2001.02.006. [17]李峰,印蔚蔚.基于Raw格式图像的自动白平衡方法[J].计算机工程,2011,37(17):211-213.DOI:10.3969/j.issn.1000-3428.2011.17.071. [18]张钰,姚素英,张娜等.改进的Gray World-Retinex图像自动白平衡方法[J].数据采集与处理,2008,23(6):673-677.DOI:10.3969/j.issn.1004-9037.2008.06.008. [19]严世珺,胡剑凌.基于ACE改进的白平衡算法[C].//第九届全国消费电子技术年会暨数字电视研讨会论文集.2007:268-272. [20]株式会社东芝.自动白平衡调整系统、自动白平衡调整方法及照相机模块:中国,CN201210320233.0[P].2013-6-19. [21]Bilcu, R.C..Multiframe Auto White Balance[J].IEEE signal processing letters,2011,18(3):165-168. [22]Barr, A. G.,van der Kamp, G.,Black, T. A. et al.Energy balance closure at the BERMS flux towers in relation to the water balance of the White Gull Creek watershed 1999-2009[J].Agricultural and Forest Meteorology,2012,153:3-13. [23]Hsu, E,Mertens, T,Paris, S et al.Light mixture estimation for spatially varying whit-e balance[J].ACM Transactions on Graphics,2008,27(3):70-1-70-7-0. [24]Jun-yan Huo,Yi-lin Chang,Jing Wang et al.Robust automatic white balance algorithm using gray color points in images[J].IEEE Transactions on Consumer Electronics,2006,52(2):541-546.DOI:10.1109/TCE.2006.1649677. [25]Yoon Kim,June-Sok Lee,Morales, A.W. et al.A video camera system with enhanced zoom tracking and auto white balance[J].IEEE Transactions on Consumer Electronics,2002,48(3):428-434.DOI:10.1109/TCE.2002.1037024. [26]Cheng-Lun Chen,Shao-Hua Lin.Intelligent color temperature estimation using fuzzy neural network with application to automatic white balance[J].Expert Systems with Ap-plication,2011,38(6):7718-7728. [27]Liang Liang,Bob Hung,Ying Noyes et al.Real Time Scene Change Detection Assist-ed With Camera 3A (Auto Exposure, Auto White Balance and Auto Focus)[C].//Real-ti-me image and video processing 2011.2011:78710F:1-78710F:10. [28]Jie Li,Xuexiang Wang,Hao Liu et al.Auto White Balance Algorithm in Digital Ca-mera[C].//Applied Mechanics and Mechatronics Automation.2012:2063-2067. [29]Jiang, Tao,Nguyen, Duong,Kuhnert, Klaus-Dieter et al.Auto White Balance Using t-he Coincidence of Chromaticity Histograms[C].//2012 Eighth international conference on signal image technology and internet based systems.2012:201-208. [30]Lei Zhang,Peng Liu,Yuling Liu et al.Digital camera auto white balance based on c-olor temperature estimation clustering[C].//Optoelectronic imaging and multimedia techn-ology.2010:78502J.1-78502J.7. [31]Hamid R. Zarandi,Seyed Ghassem Miremadi.Dependability evaluation of Altera FP-GA-based embedded systems subjected to SEUs[J].Microelectronics & Reliabil-ity,2007,47(2/3):461-470.DOI:10.1016/j.microrel.2006.05.005. [32]Gort, M.,Anderson, J.H..Combined Architecture/Algorithm Approach to Fast FPGA Routing[J].IEEE transactions on very large scale integration (VLSI) systems,2013,21(6):1067-1079. !
/
本文档为【基于FPGA实现的自动白平衡算法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索