CMOS图像传感器芯片的自动白平衡算法
- 格式:pdf
- 大小:1.83 MB
- 文档页数:5
自动白平衡算法自动白平衡是数码相机中一种重要的图像处理技术,通过调整图像的色温来使得图像在不同的光照条件下呈现出真实、自然的颜色。
本文将从算法原理、应用领域和调优技巧三个方面来介绍自动白平衡算法。
一、算法原理自动白平衡算法基于摄像机的感光元件输出的图像数据,通过分析图像中的白色参考物体,计算出当前场景下的光源色温,然后调整图像的色彩来达到真实的色彩再现。
常用的自动白平衡算法有灰度世界算法、白色点算法和直方图拉伸算法。
灰度世界算法假设整个图像的色彩分布是均匀的,通过计算图像中所有像素点的RGB分量的平均值,然后将该平均值作为缩放系数应用于各个通道,从而达到白平衡的目的。
白色点算法则通过选取图像中灰度值最大的像素点作为参考点,根据参考点的三个通道值,并通过一定的数学计算,将其调整至一个预设的白色参考值,进而实现图像的白平衡。
直方图拉伸算法则是通过对图像的直方图进行拉伸,使得图像的灰度值分布更加均匀,从而达到白平衡的效果。
二、应用领域自动白平衡算法在众多领域中都有广泛的应用。
在摄影领域,自动白平衡可以使摄影师在不同光照条件下更加方便地拍摄出真实的颜色。
在监控领域,自动白平衡可以提高监控摄像头的图像质量,使得监控系统更加准确地监测场景。
在医学领域,自动白平衡算法可以改善医学图像的质量,从而提高医生的诊断准确性。
三、调优技巧在实际应用中,为了获得更好的自动白平衡效果,可以采用以下一些调优技巧。
首先,可以使用较高的色温作为预设值,以保留更多的暖色调,使得图像更加真实。
其次,可以通过人工干预来修正算法产生的不准确结果,比如提供一张纯白色参考图像来校正算法误差。
此外,还可以根据不同场景下的具体要求,通过调整算法参数来达到更好的白平衡效果。
总结起来,自动白平衡算法是数码相机中一项重要的图像处理技术。
它通过分析图像中的白色参考物体,计算出光源色温,并调整图像色彩,以实现真实、自然的颜色再现。
应用领域广泛,包括摄影、监控和医学等领域。
CMOS图像传感器调试问题汇总1摄像头问题及解决办法汇总⼀、名词解释1.⽩平衡⽩平衡指的是传感器对在光线不断变化环境下的⾊彩准确重现的能⼒表⽰。
⼤多数拍照系统具有⾃动⽩平衡的功能,从⽽能在光线条件变化下⾃动改变⽩平衡值。
设计⼯程师寻找的图像传感器应该配备了⼀个很好的⾃动⽩平衡(AWB)控制,从⽽提供正确的⾊彩重现。
2.动态范围动态范围测量了图像传感器在同⼀张照⽚中同时捕获光明和⿊暗物体的能⼒,通常定义为最亮信号与最暗信号(噪声门槛级别)⽐值的对数,通常⽤54dB来作为商业图像传感器的通⽤指标。
具有较宽动态范围的图像传感器可以在明光环境下提供更好的性能(例如,使⽤较窄动态范围传感器在明光环境下拍出的照⽚会出现“⽔洗”或模糊的现象。
)3.⼯频⼲扰(Banding)Sensor在⽇光灯作为光源下获取图像数据时会产⽣flicker,其根本原因是照在不同pixel上光能量不同产⽣的,所接受的光能量的不同也就是图像的亮度的不同。
由于CMOS sensor的曝光⽅式是⼀⾏⼀⾏的⽅式进⾏的,任何⼀个pixel的曝光时间是⼀样的,也就是同⼀⾏上的每个pixel的曝光开始点和曝光的时间都是⼀模⼀样的,所以同⼀⾏的所有点所接收到的能量是⼀样的,⽽在不同⾏之间虽然曝光时间都是⼀样的,但是曝光的开始点是不同的,所以不同⾏之间所接受到的能量是不⼀定相同的。
为了使不同⾏之间所接受的能量相同,就必须找⼀个特定的条件,使得每⼀⾏即使曝光开始点不同,但是所接受的光能量是相同的,这样就避开了flicker,这个特定的条件就是曝光时间必须是光能量周期的整数倍时间。
Banding由⼯频⼲扰引起,交流电光源都有光强的波动,在中国交流电频率是50Hz,光强的波动就是100Hz,周期10ms。
如果camera曝光时间不是10ms的整数倍,那么在不同的感光⾯接收到的光能量⼀定不⼀样,体现在图像上就是有明暗条纹。
消除banding就得想办让曝光时间是10ms的整数倍!60Hz的交流电需要控制曝光时间为8.33ms的整数倍。
自动白平衡(AWB)算法色温曲线本文大体讲解了白平衡的算法流程,适用于想了解和学习白平衡原理的筒子们.一般情况下要实现AWB算法需要专业的图像和算法基础,本文力图通过多图的方式,深入浅出,降低初学者理解上的门槛,让大家都理解到白平衡算法流程.看到这里还在继续往下瞄的同学,一定知道了色温的概念,并且知道sensor原始图像中的白色如果不经AWB处理,在高色温(如阴天)下偏蓝,低色温下偏黄,如宾馆里的床头灯(WHY!OTZ) (如下图).下面这个T恤的图片非常经典,怎么个经典后续再说,不过大体可以看出有偏黄和偏蓝的情况.虽然如此,却已经是AWB矫正以后的效果.所以,为了眼前的女神白富美在镜头里不变成阿凡达和黄脸婆,这时就需要白平衡来工作了.流程原理很简单:1,在各个色温下(2500~7500)拍几张白纸照片,假设拍6张(2500,3500…7500),可以称作色温照.2,把色温照进行矫正,具体是对R/G/B通道进行轿正,让偏色的白纸照变成白色,并记录各个通道的矫正参数.实际上只矫正R和B通道就可以,这样就得到了6组矫正参数(Rgain,Bgain).3,上面是做前期工作,爱思考的小明发现,只要知道当前场景是什么色温,再轿正一下就可以了.事实上也就是如此.所以,AWB算法的核心就是判断图像的色温,是在白天,晚上,室内,室外,是烈日还是夕阳,还是在阳光下的沙滩上.或者是在卧室里”暖味”的床头灯下.之前拍了6张色温照以及6组矫正参数.可是6够么,当然不够, 插值一下可以得到无数个值,我们把点连成线, 得到了一个神奇的曲线------色温曲线.大概是下面这个样子.上面提到了三个值(RG,BG,色温),这应该是个三维的.没关系,我们再来一条RG跟色温的曲线,这样只要知道色温,就知道RG,知道RG,就知道BG,知道RG,BG就能轿正了,yes!至此,我们的前期工作已经全部做完了, 并得到了AWB的色温曲线,下一步只要计算得到当前色温,顺藤摸瓜就能得到当前的矫正参数(Rgain,Bgain),那白平衡的工作就作完了.(放心,当然没这么简单)第一部分先到这里,下一部分将讲解AWB算法的核心------计算图像色温.涉及到的知识点大致有图像分块, 判断白区, 根据色温曲线划分不同光源, 对不同光源加权平均得到实际色温.色温计算首先简单说一下流程:1, 取一帧图像数据,并分成MxN块,假设是25x25,并统计每一块的基本信息(,白色像素的数量及R/G/B通道的分量的均值).2, 根据第1步中的统计值, 找出图像中所有的白色块,并根据色温曲线判断色温.3, 至此,我们得出来了图像中所有的可能色温,如果是单一光源的话,可以取色温最多的,当作当前色温.比如25x25=625 个块中,一共找出了100个有效白色块, 里面又有80个白色块代表了色温4500左右, 那当前色温基本就是4500.根据4500色温得出的Rgain,Bgain来调整当前图像,就不会差(很多!).下面我们再详细讲解一下,每一步中需要做的工作:第1步, 计算每一块的基本信息.关于白色像素统计,大家知道sensor原始图像是偏色的,怎么统计块中的白色点呢,那只有设置一个颜色范围,只要在范围中,就可以认为是白色像素,范围见下图:统计白色像素个数的用处是,1,如果块中的白色像素太少,可以抛弃掉. 2,如果白色像素太多,多到每一个像素点都是,那也要抛弃掉,因为很可能在该区域过曝了接着把统计到的白色像素点R/G/B取均值, 并得到该block 的R/G, B/G值至此,我们得到了每一块的白点数目及R/G,B/G的值. (请自动对应第1部分中色温曲线).第二步计算当前色温这个比较复杂, 大自然绚丽多彩,景色万千. 上一步中统计的”白色点”难免会有失误的地方,比较常见的如黄色皮肤容易被误判为低色温下的白点,淡蓝色的窗帘,容易被误判为高色温下的白点,一张图中既有白色,也有黄色,也有蓝色的时候,是不是感觉情况有点复杂,其它的大家可继续脑补.这时我们需要一定的策略来正确的判断出到哪个才是真的白.通常我们会把取到的白色块,计算一下到曲线的距离,再设置相应的权重.话不多说,上个图大家就都明白了.假设有上面这样一幅图,该图是在没有开AWB的前提下截取的,可以看到左边白色地方略有偏绿,当前色温是室内白炽灯,大概4000~5000k左右.(请忽略颜色不正的问题,我们在讨论白平衡)下面我们就根据之前的统计信息和测量好的色温曲线进行白平衡矫正.首先要找出白区,如下图:上面这个图中的数字标示出了检测到的白色区域,数字相同的表示一个白区,根据统计信息(白点数,rg/bg值)来区分的.可以看到有误判的地方,比如色卡左上第二块的肤色块.还有最右边从上面数第二块也是容易被判断成低色温白块的情况.针对这种误判的情况,对不同块根据统计信息进行权重设置,以求让误判的区域对最终结果影响小一些.上面这个图标注了权重,基本是根据统计信息中白点数来确定的.可以看到图中一片白色被标识了高权重.其它情况被标识了低权重. 权重高低一是看块中白色点数量,二是看rg/bg到色温曲线的距离.通过上面两个图,大家就可以明显的找到白色区,并根据曲线来矫正,即使不通过曲线矫正,把白色区的r/g,b/g值向1趋近,让r=g=b,也会得到非常好的白平衡效果.如下图所示:至此,白平衡的基本流程就讲完了,有图有真相,大家一定看着也方便.总结一下:第一次做白平衡,感觉理论很简单,不用什么基础也能看懂.实际算法调试时,可谓差之毫厘,失之千里.总是感觉不由自主就走上歪路.中间参考了大量资料,比如网上有许多基于色温/灰度世界/白点检测的白平衡算法,实际个人感觉应该把它们都结合起来,让算法强壮,健康才是我们想要的.还记得第一章中开始的那两张白色T恤的图么,算了,我再贴一下:这张图可以理解为在多光源下的白平衡调整.阴影色温比阳光下色温要高一些,如果阳光下是5000k,阴影可能是7000k.有光就有影,它们经常出现在一个镜头里,对着其中一个色温调,另一边就会偏色.为了整体效果好,要把翘翘板平衡起来,可以加一些策略在里面.。
自动白平衡方法
自动白平衡是一种图像处理的技术,用于自动调整图像中的白色色彩,以确保图像中白色物体的颜色看起来真实和准确。
目前常用的自动白平衡方法包括以下几种:
1. 灰度世界法(Gray World Algorithm):假设整个图像中的
灰色像素的平均值应该是中性灰色,根据这个假设调整图像的颜色。
通过计算图像中红、绿、蓝三个通道的平均值,将这个平均值视为中性灰色,然后根据这个中性灰色对图像的颜色进行调整。
2. 最大值法(Max-RGB Algorithm):假设在一张图像中,红、绿、蓝三个通道中,最大值所对应的像素应该是白色,根据这个假设调整图像的颜色。
通过找到图像中红、绿、蓝三个通道中的最大值,并将这个最大值设为白色的亮度值,然后根据这个亮度值对图像的颜色进行调整。
3. 白色补偿法(White Patch Algorithm):假设图像中存在一
个物体是白色的,通过使用这个白色物体来调整整个图像的颜色。
通过在图像中寻找最亮的像素点,并将该像素点的颜色设为白色,然后根据这个白色值对图像的颜色进行调整。
4. 边缘法(Edge-Based Algorithm):通过检测图像中边缘的
梯度信息来调整图像的颜色。
根据边缘的灰度变化情况来判断图像中的颜色偏差,然后根据颜色偏差对图像进行补偿。
以上只是几种常见的自动白平衡方法,实际应用中可以根据具体情况选择合适的方法或者结合多种方法进行处理。
自动白平衡的原理及应用理解自动白平衡有人认为,自定义白平衡最准,其实这要看所用光源了。
你若在马路钠光灯下用白纸自定义那就会失误,因为橙黄色的钠光灯被你自定义变成了白色,其它物体的颜色肯定会变成鬼蓝魔绿色!相机的自动白平衡是以“点测白光”工作的,而且具有取白点中RGB三色参数最接近的那个白点为平衡依据的智能色温表,即使环境中混合色光成份很复杂,但多点区域内“点检测”捕捉白点的功能是传统价格昂贵的专业“泛色温”(平均模糊法)测量表所根本做不到的。
需要说明的是,传统色温表或者用白平衡滤镜,以及白纸灰板的自定义测量,它们只对单一相对固定的光源色温起作用,比如阴天、阳光天的某一时段,影室固定灯光、闪光灯等,在混合光下用白板定义肯定完败!极端色温反差与自动白平衡的智能纠偏及出错。
可能有人会提出,上面那些片例中荧光灯色温并不是纯白色,为什么照片上白色比较准,整体颜色还原也基本准确?我们把这个问题展开如下。
先请看下:各种光源的基本色温值(来源:尼康数码相机说明书):白炽灯:3000°K荧光灯:1、纳气灯:2700°K暖白荧光灯:3000°K白色荧光灯:3700°K冷白荧光灯:4200°K日光白荧光灯:5000°K日光色荧光灯:6500°K高压汞气灯:7200°K闪光灯:5400°K直射阳光:5200°K阴天:6000°K阴影:8000°K(近紫外线边缘)下面的片例大环境主光是马路钠灯,外围有其它光源,树下是公交站的荧光灯广告灯箱,远处漫射的是高压汞灯照明光,色温非常复杂。
但是照片显示的颜色却基本符合大环境的主色调,虽然产生了极端色温的反差,但近白色依旧存在,我们从树后隐约可见的楼房和电线杆上的广告条幅上找到了近似于白色的颜色,而且也找到了更白色的颜色。
OK,现在让我们把问题回到各种灯的色温上来分析。
新型CCD相机自动白平衡矫正算法的研究随着科技的不断发展,各种新技术在我们的生活中得到了广泛的应用。
其中相机是一个不可避免的话题。
近年来,CCD相机已经成为了相机行业的主流产品。
然而,CCD相机有一个致命的缺点就是不能像人类一样自动进行白平衡矫正,导致了图像中的颜色失真或偏色。
为了解决这个问题,研究人员开发出了新型CCD 相机自动白平衡矫正算法。
一、CCD相机的工作原理在讲述自动白平衡矫正算法之前,先来了解一下CCD相机的基本工作原理。
CCD相机通过感光元件将物体的光线转化为数字信号,进而生成图像。
CCD感光元件本身并没有颜色,它只能通过改变的RGB信号值来实现颜色变化。
因此,如果物体光线的颜色比较暖色调或带有色偏,就会导致生成的图像中颜色偏向蓝色或者偏红色,造成白平衡不准确的情况产生。
二、传统的白平衡矫正算法传统的白平衡算法主要有两种:基于灰度的白平衡算法和基于色块的白平衡算法。
基于灰度的算法主要用于灰度图像,它通过计算图像中最亮的像素点作为参考点,从而使整个图像的白平衡比较准确。
而基于色块的算法则比较适用于彩色图像中。
它会根据图像中色彩较为纯净的一块区域来进行白平衡矫正,从而使整个图像的颜色更加真实。
然而,传统算法都有其局限性。
基于灰度的算法需要在图像中寻找最亮的像素点,而这个像素点在不同的图像中可能存在的位置不同,因此算法的稳定性很差。
而基于色块的算法其稳定性较好,但需要人工提供比较纯净的一块区域,因此不能完全自动化。
三、自动白平衡矫正算法的研究为了解决传统算法不够完美的问题,研究人员开发了一种新型的自动白平衡矫正算法。
这种算法通过寻找图像中的参考区域来进行白平衡矫正。
具体来说,算法首先检测图像中暴光度最高的区域,然后通过该区域的RGB 值计算出一组权重系数。
将这组权重系数应用在整个图像的RGB值中,即可实现整个图像的白平衡矫正。
相比于传统算法,新型算法有以下优势:1. 稳定性更高:新型算法通过计算权重系数来实现白平衡矫正,而这个权重系数在整个图像中是不变的,因此算法的稳定性更高。
自动白平衡的原理及应用1. 引言自动白平衡是一种用于摄影和摄像的技术,用于消除图像中的色偏问题。
在摄影和摄像过程中,由于光源的不同和环境的变化,图像的色调可能会偏离真实的颜色。
自动白平衡技术通过对图像进行分析和处理,自动调整图像的白色参考点,使图像的颜色还原至真实的状态。
本文将介绍自动白平衡的原理及其应用。
2. 自动白平衡原理自动白平衡的原理是基于不同光源下物体的反射光谱特性不同。
不同光源的颜色频谱分布不同,从而使得物体的颜色在不同光源下表现出不同的外貌。
自动白平衡技术通过分析图像中的颜色信息,找到图像中的中性色,在不同光源下将中性色调整为白色,从而使得整个图像的颜色都能够保持真实的状态。
自动白平衡的算法通常包括以下几个步骤:1.拍摄图像并提取颜色信息。
2.分析提取到的颜色信息,计算出整个图像的色彩分布。
3.通过比较不同颜色的亮度和饱和度,找到图像中的中性色。
4.将中性色调整为白色,同时调整其他颜色以保持整个图像的色彩平衡。
3. 自动白平衡的应用自动白平衡技术在摄影和摄像领域有着广泛的应用。
以下是自动白平衡技术的主要应用领域:3.1 摄影领域在摄影领域,自动白平衡技术可以帮助摄影师快速调整相机的白平衡设置,以适应不同的光源环境。
这样可以减少后期调色的工作量,并确保摄影作品呈现出真实的色彩。
3.2 摄像领域在摄像领域,自动白平衡技术可以自动调整摄像机的白平衡参数,以适应不同的光源环境。
这样可以保证拍摄到的视频素材具有准确的颜色信息,使得观众能够获得更加真实的观感。
3.3 电视领域在电视领域,自动白平衡技术被广泛应用于电视机的显示系统中。
电视机的自动白平衡功能可以根据环境光线的变化自动调整显示屏的白平衡参数,从而保证观众在不同的观看环境下都能够获得良好的观看体验。
3.4 安防监控领域在安防监控领域,自动白平衡技术可以帮助监控摄像头自动调整图像的白平衡参数,以适应不同的光源环境。
这样可以保证监控图像的色彩准确性,使得监控系统能够更好地发现和识别目标物体。
自动白平衡算法介绍自动白平衡算法是数字图像处理中的一项重要技术。
在数字相机中,相机传感器记录的图像数据往往会受到光照条件的影响,导致图像的颜色偏差。
自动白平衡算法的目标就是校正这些颜色偏差,使图像呈现出真实、自然的色彩。
问题在光源的颜色温度发生变化时,相机传感器记录的图像数据的颜色也会发生变化。
这就需要自动白平衡算法来对图像进行校正,将其恢复到真实世界中的颜色。
基本原理自动白平衡算法的基本原理是根据图像中的参考物体来估计光源的颜色温度,然后根据这个估计值来进行颜色校正。
一般来说,我们使用图像中的灰色或白色区域作为参考物体,因为这些区域的颜色应该是真实的灰色或白色,不受光源的影响。
常见的自动白平衡算法1.灰度世界算法灰度世界算法假设整个图像的平均亮度是相同的。
根据这个假设,它将图像中的所有像素的亮度值取平均,然后将各个通道的亮度进行调整,使其平均亮度达到相同的值。
步骤:1.计算图像的平均亮度。
2.计算每个通道的增益,使其平均亮度与整个图像的平均亮度相同。
3.对图像的每个像素进行颜色校正。
2.白色世界算法白色世界算法假设整个图像中的任何一个区域都应该是真实的白色。
根据这个假设,它将图像中的某个区域的颜色调整为真实的白色,然后通过调整各个通道的增益来进行校正。
步骤:1.选择图像中的一个白色区域作为参考。
2.计算参考区域的平均RGB值,将其调整为真实的白色RGB值。
3.计算各个通道的增益,使参考区域的RGB值与真实的白色RGB值相同。
4.对图像的每个像素进行颜色校正。
3.辐射度算法辐射度算法根据光源的颜色温度和图像中的参考物体的光谱来进行校正。
它对于不同的光源和不同的参考物体具有更好的适应性。
步骤:1.估计光源的颜色温度。
2.根据光源的颜色温度和参考物体的光谱,计算各个通道的增益。
3.对图像的每个像素进行颜色校正。
总结自动白平衡算法是数字图像处理中的重要技术,能够校正图像因光照条件不同而导致的颜色偏差。
第26卷 第2期2011年4月液 晶 与 显 示Chinese Journal of Liquid Crystals and DisplaysVol.26,No.2Apr.,2011文章编号:1007-2780(2011)02-0224-05CMOS图像传感器芯片的自动白平衡算法甘 波,魏廷存,郑 然(西北工业大学计算机学院,陕西西安 710072,E-mail:shadow524@163.com)摘 要:针对CMOS图像传感器芯片中的自动白平衡图像处理电路,提出了一种便于硬件实现的增益计算方法,并在此基础上实现了一个用于CMOS图像传感器芯片的自动白平衡算法。
该算法将增益计算的计算法与迭代法结合使用,并用比较器和移位寄存器来取代复杂的组合逻辑单元,在不增加硬件开销的基础上提高了计算精度与处理速度。
关 键 词:CMOS图像传感器;白平衡;色温;增益计算中图分类号:TN492;TN911.73 文献标识码:A DOI:10.3788/YJYXS20112602.0224Auto White Balance Algorithm for CMOS Image Sensor ChipGAN Bo,WEI Ting-cun,ZHENG Ran(College of Computer,Northwestern Polytechnical University,Xi an 710072,China,E-mail:shadow524@163.com)Abstract:A method of gain calculation for auto white balance is proposed which is suitablefor hardware implement in CMOS image sensors chip.Based on the method,an auto whitebalance algorithm used in CMOS image sensors chip is completed.Iterative method and cal-culation method are combined in this algorithm,and comparator and shift registers are usedinstead of complex combination logic cells.The computation accuracy and processing speedare improved without hardware expenses.Key words:CMOS image sensor;white balance;color temperature;gain calculation 收稿日期:2010-07-16;修订日期:2010-08-26 基金项目:国家自然科学基金项目(No.60972157)作者简介:甘波(1986-),男,陕西西安人,硕士研究生,主要研究方向为混合信号集成电路设计。
1 引 言CMOS图像传感器(CMOS Image Sensors,CIS)可采用标准的CMOS工艺制造,具有集成度高、成本低、动态范围宽和功耗小等优点[1],目前已广泛应用于手机摄像头、安保监控、数码相机、医疗检查以及可视门铃等领域,其高端产品已达到数千万像素级别。
随着CMOS工艺的发展,CMOS图像传感器芯片的集成度不断提高,单片相机已成为目前的主流产品。
所谓单片相机就是单片集成了图像传感器阵列、放大器(Program-mable Gain Amplifier,PGA)、模数转换器(Analogto Digital Converter,ADC)、数字图像处理器(Digital Signal Processor,DSP)和相应的时序控制电路等的CMOS图像传感器芯片。
它与传统图像传感器的区别是在模数转换器后增加了数字图像处理器,并通过调整PGA增益、ADC偏移以及数字部分的通道增益来对图像数据进行处理、优化。
数字图像处理一般包括色彩插补、黑平衡、白平衡、曝光控制、Gamma校正等。
白平衡处理的作用是对人眼看到的白色物体进行色彩还原,去除光源色温对图像的影响,使其在照片上也显示为白色。
应用在单片相机中的实时图像处理算第2期甘 波,等:CMOS图像传感器芯片的自动白平衡算法225法,由于是采用硬件电路实现的,因此需要在图像处理效果(图像质量)、运算时间(处理速度)与计算复杂度(硬件电路开销)等方面进行综合考虑。
在较小硬件开销的前提下,如何提高图像处理速度和图像质量是图像处理算法的关键所在。
针对算法的软件实现(对图像进行后台软件处理),目前已提出了多种白平衡算法,如灰度世界算法[2]、全反射理论算法[3]、标准差加权的灰度世界算法、亮度加权的灰度世界算法[4]、标准差亮度加权灰度世界算法等。
这些算法虽然各有优缺点,但有一个共同的特点,即图像处理效果越好的算法运算量就越大,运算复杂度也就越高。
因此这些算法在用硬件实现时,硬件电路开销大,且需要占用大量的存储空间。
本文针对自主研发的一款CMOS图像传感器芯片,提出了一种适应于硬件实现的自动白平衡算法。
通过对现有白平衡算法进行优化,在不增加硬件开销的基础上,使得计算精度提高,运算收敛时间减小。
2 自动白平衡算法假设场景色彩的平均值应落在一个特定的范围内,如果检测到结果偏离该范围,则调整相应参数,并校正色彩数据直到其均值落入指定的范围内,这就是自动白平衡。
该处理过程可以基于YCbCr空间,也可以基于RGB空间来进行。
通常的处理方式是通过校正R、B通道的增益,使得Cr、Cb值落在一个指定的范围内,从而实现自动白平衡。
自动白平衡算法有很多种,但基本操作过程都可分为3个部分:(1)色温估计。
通过算法统计或者手动调节(用一个“标准白”的物体作为参考)的方法,估计出表达色温的特征量,即平均色差;(2)增益计算。
通过平均色差的比较,用计算、查表或者迭代等方法,算出红色和蓝色通道的增益值,即R、B两个通道的校正因子。
(3)偏色校正。
给红色和蓝色通道乘以相应的校正因子,调整通道增益,以达到校正色温影响、还原物体颜色的效果。
2.1 色温估计一幅图像的色温一般表现为平均色差。
当R、G、B 3种颜色的灰度相等时,该像素点的色差为0,表现为灰色或白色。
而在图像处理中,与亮度、色差有关的处理和计算,一般采用YCbCr色彩模型,这一模型与色差密切相关。
其中Y表示图像的亮度;Cb与Cr则分别是当前像素点的蓝色和红色分量,代表图像的色差。
YCbCr色彩模型与传统RGB色彩模型的转换如下所示:YCbC熿燀燄燅r= 0.299 0.587 0.114-0.168 7-0.331 3 0.5 0.5 熿燀燄燅0.418 7-0.081 3熿燀燄燅RGB目前的色温估计算法一般是基于灰度世界理论或者全反射理论。
灰度世界理论认为,任何一幅图像,当有足够的色彩变化时,它的R、G、B分量均值会趋于平衡,这个理论在全局白平衡中得到广泛应用。
全反射理论认为,一幅图像中亮度最大的点就是白点,即假设在YCbCr空间中Y值最大的点为白色,以此来校正整幅图像。
现在广泛应用的色温估计算法一般是将两个条件相结合,选出亮度较大的一些类白色点,算出均值作为白色,以此来调整通道增益。
而选取类白色点的约束条件一般分为两类:一种是基于YCbCr模型,在考虑了Y、Cb、Cr三者之间的相关性之后给出的约束条件为[5]:Y-Cb-Cr>Φ用这个条件做出的色温估计比较准确,但计算略显复杂,而且如果白平衡算法在后续计算中主要是对R、G、B进行采样、运算,没有涉及Y、Cb、Cr运算的话,只为了色温估计而进行色彩模型转换并不利于算法优化。
而另一种方法是基于传统RGB色彩模型,选择R、G、B3分量都大于α的点作为类白色,这种方法操作方便、计算简单、易于实现,但控制起来不够灵活,针对不同光源,不能做到相应的调整。
本文提出的解决办法如下:用G分量近似地表示像素点亮度Y,用R、B与G的差作为Cr、Cb的近似值,用与YCbCr模型相同的方法进行调整,使得约束条件变为G>α、R>β、B>γ,将原来R、G、B3个分量的约束条件从统一的条件变为3个略有差别的条件,而α、β、γ的值则是由前一帧中红、蓝通道增益的变化量来确定。
这样,就可以针对不同光源,调整约束条件,做到更准确地使更多的类白色点参与计算,从而提高精度。
另外,这种色温估计的方法可以减少电路开销,并且色温估计可以实时完成,适合实时处理系统,不用另外设置存储器存储图像数据。
226 液 晶 与 显 示第26卷2.2 增益计算增益计算是在对图像进行色温估计的基础上,通过一些方法来得到通道增益,一般是对图像的红色和蓝色通道进行调节。
其中蓝色通道的通道增益为μ,红色为ν。
常用的增益计算方法有3种,分别是计算法、查表法和迭代法[5]。
计算法是根据所统计的Y、Cb、Cr或者R、G、B的值来计算出μ、ν的值,其优点是计算结果较为精确,几乎只计算一次就能得到正确的μ、ν值。
但计算需要用到乘除法,用硬件实现时开销很大。
查表法是事先统计出一张表,记录不同色温所对应的通道增益,具有速度快的优点:但由于表的容量有限,不能实现各种色温情况的连续调节。
迭代法则是根据Cb和Cr的关系,或者R、B与G的关系,通过不断地调整μ、ν实现。
优点是增益调整的计算简单、易于实现。
但迭代步长λ的选择需要有取舍,如果λ取较大值会影响计算精度,μ、ν的值可能发生抖动;而λ取值越小,则会使迭代次数越多,而因为在增益计算中,每一帧图像只能进行一次迭代,因此迭代收敛速度会降低。
本文提出的增益计算法是将计算法与迭代法相结合,迭代步长通过计算求得,这样既可以减少迭代次数又可以提高计算精度。
其中蓝色通道的增益计算流程如图1所示,图中所示的B与G分别表示类白色点蓝色和绿色分量各自的总和;ρ代表计算精度,即为最大重复次数,ρ的值越大,计算精度就越高;X=2 X表示将X增大为原来的2倍,即是指X用二进制表示的数向左移动了一位,n则表示X的二进制数向左移动了多少位,而在电路上X=2 X以及求2-n的运算都可以用二进制数的移位很简单地实现,相对于计算法X =B -G ,n =0X =2X ,n++X >Gor n=籽NNY YB >G滋=滋-2-n滋=滋+2-n图1 蓝色通道增益计算流程Fig.1 Flow chart of blue channel gain calculation来说硬件开销小得多。
以图1所示的蓝色通道的增益为例对增益计算加以说明。
在最后的增益计算中,如果用μ=(1±2-n)μ来计算通道增益,那么最终计算收敛时的迭代次数一定不会大于ρ,但这种方法需要多加一次乘法计算,增加了电路复杂度。