使用图形处理单元加速图像去雾的方法

文档序号:6355763阅读:521来源:国知局
专利名称:使用图形处理单元加速图像去雾的方法
技术领域
本发明涉及图形处理领域,更具体地涉及ー种使用图形处理单元加速图像去雾(image defogging)的刀法。
背景技术
在天气情况较差的情况下,图像的清晰度和色彩常常会被大气中的雾气劣化。在这种天气中捕捉到的图像和视频的质量一般需要通过去雾处理进行改善。去除图像中的雾气效果的过程被称为图像去雾。图像去雾对于在天气情况较差的情况下进行的导航和监视非常有用。 当前存在很多图像去雾方法,其中基于暗原色先验(dark channel prior)的图像去雾方法是效果最好的ー种。暗原色先验是通过对户外无雾图像数据库进行统计得出的,即,绝大多数的户外无雾图像的每个局部区域中都存在这样的像素,该像素的至少ー个颜色通道的灰度值很低。利用暗原色先验建立的去雾模型可直接估算雾气的浓度并且可将有雾图像复原为高质量的去除雾气干扰后的图像(简称为去雾图像)。在基于暗原色先验的图像去雾方法中,通过利用输入的有雾图像的灰度值I、大气光值A、和透射图t,根据有雾图像模型I = Jt+A(l-t)来求解出去雾图像的灰度值J。基于暗原色先验的图像去雾方法的过程相对简单,但是在中央处理单元(CPU)上的运行速度非常慢。例如,在具有3. OGHz的英特尔奔腾4处理器的个人计算机上,处理600X400像素的图像大约需要花费10至20秒的时间。所以,在实时应用中不太可能使用这种图像去雾方法。

发明内容
鉴于以上所述的问题,本发明提出了一种新颖的利用图形处理单元加速图像去雾的方法。根据本发明的一个实施例的图像去雾方法包括获取以有雾图像中的每个像素为中心的局部像素块的最小灰度值,即暗原色,并利用对应于有雾图像中的每个像素的暗原色构建暗原色图像;计算暗原色图像中预定大小的最亮区域在有雾图像中所覆盖区域的所有像素的R通道的灰度值的平均值、G通道的灰度值的平均值、以及B通道的灰度值的平均值,并将所述平均值中的最大值作为有雾图像的大气光值;利用大气光值对最小灰度值进行归ー化,并利用归ー化结果获取粗略的透射图;根据有雾图像中的像素的R通道、G通道、以及B通道的灰度值构造拉普拉斯矩阵,并利用拉普拉斯矩阵对粗略的透射图进行优化;利用优化的透射图、大气光值、以及有雾图像中的每个像素的R通道、G通道、以及B通道的灰度值,获取去雾图像中的每个像素的R通道、G通道、以及B通道的灰度值。在提出的方法中,以上所有过程都由图形处理单元GPU实现。本发明g在将串行的CPU执行流程转换为并行的GPU执行流程,从而大大提高运行速度。


从下面结合附图对本发明的具体实施方式
的描述中可以更好地理解本发明,其中图I示出了 GPU的处理流水线的示意图;图2示出了根据本发明实施例的基于暗原色先验的图像去雾方法的整个处理过程。
具体实施例方式下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅 是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。图形处理单元(GPU)具有強大的并行计算能力,其除了可以用于传统的图形应用以外,还可以用于进行通用目的的计算(即,实现为GPUPU)。本发明试图将基于暗原色先验的图像去雾方法映射到基于OpenGL ES2. 0标准的GPU的计算环境中,以实时地实现基于暗原色先验的图像去雾方法。传统的基于暗原色先验的图像去雾方法包括5个步骤步骤1,根据等式Idart =Hiins2 (minc(Ie)),从有雾图像的灰度值I获取粗略的暗原色,其中Q是以当前像素为中心的局部像素块(例如,15X15的像素块),C是颜色通道(例如,R通道、G通道、或者B通道)的表示(即,找出当前像素及以其为中心的像素(它们组成了局部像素块⑴的R、G、B通道中灰度值最小的一个颜色通道的灰度值,即局部像素块Q的最小灰度值);步骤2,找出暗原色图像中0. I %的最亮区域,然后找出该最亮区域在有雾图像中所覆盖区域的所有像素的R、G、B通道中灰度值最高的一个颜色通道的灰度值,即最亮区域的最高灰度值,并将该最高灰度值设置为有雾图像中的每个像素的每个颜色通道的大气光值A ;步骤3,计算归
一化的暗原色/= minn(minc(/c/a)),然后根据7 = I计算粗略的透射图f,其中
是加权因子(通常为0.95);步骤4,使用软图像抠图(image soft matting)获取优化的透射图t (具体地,使用软图像抠图来求解稀疏线性系统(Z + 2ひ)r = ;lF ),其中L是从有雾图像构建的拉普拉斯矩阵,入是小值參数(例如,IO-4),U是单位矩阵;步骤5,根据I =Jt+A(l-t)恢复出去雾图像(即,得出去雾图像中的每个像素的每个颜色通道的灰度值),其中,J表示去雾图像中的像素的R、G或B通道的灰度值,J = (I-AVmaxadJ+Ad。是阈值參数(通常为0.1)。在以上步骤中,步骤4最为复杂且需要进行迭代。对于包括例如MXN(M行XM列)个像素的有雾图像,通过步骤I可以得出以该有雾图像中的每个像素为中心的局部像素块的最小灰度值(即,可以得出MXN个最小灰度值),通过步骤2可以得出该有雾图像中0. I %的最亮区域的最大灰度值,通过步骤3和步骤4分别可以得出大小为MXN的粗略的透射图和大小为MXN的优化的透射图,然后可以利用步骤I至4中得出的最小灰度值、最大灰度值、粗略的透射图、以及优化的透射图通过步骤5得出MXN个像素的经过去雾处理后的各个颜色通道的灰度值。
标准OpenGL ES2. 0是ー种面向嵌入式系统上的全功能ニ维与三维图形的免许可、跨平台的图形应用程序接ロ(API)。CPU上的应用可以通过调用API来控制GPU。图I示出了 GPU的处理流水线。在GPU的处理流水线中,顶点着色器和片断着色器是两个可编程的阶段,而包括图元装配、光栅扫描、以及每片断操作在内的其他阶段是固定的阶段。顶点着色器实现用于对顶点进行运算的通用可编程方法。其中,顶点是线段、三角形、或者多边形上的端点,对顶点的运算包括位置变换、顔色计算、以及纹理坐标生成等。图元是诸如线段、三角形、以及多边形等的几何对象。在图元装配阶段,顶点将被装配到各个图元,并且GPU将在可能的情况下进行裁剪和剔除。在光栅扫描阶段,图元将被转换为片断。片断代表显示器上描画的像素。片断着色器实现用于对片断进行运算的通用可编程方法。在每片断操作阶段,GPU将进行像素归属测试、截取测试、模版测试、深度测试、混色、以及抖动显示等。遵循OpenGL ES2. 0标准的GPU由于包括可编程阶段而被称为可编程GPU。一个完整的GPU处理流水线被称为ー个渲染过程。由于片断着色器具有对于纹理存储器的更为复杂的访问并且具有更多的计算资源,所以基于暗原色先验的图像去雾方法将主要由 片断着色器来实现。 在本发明的一个实施例中,GPU将通过多个渲染过程来实现基于暗原色先验的图像去雾方法。其中,在所有的渲染过程中,顶点着色器用于获取有雾图像(或者经过ー个或多个渲染过程得出的图像)的各个顶点的内部位置坐标和内部纹理坐标。具体地,顶点着色器具有以下形式
权利要求
1.ー种使用图形处理单元加速图像去雾的方法,包括以下过程 获取以有雾图像中的每个像素为中心的局部像素块的最小灰度值,即暗原色,并利用对应于所述有雾图像中的每个像素的暗原色构建暗原色图像; 计算所述暗原色图像中预定大小的最亮区域在所述有雾图像中所覆盖区域的所有像素的R通道的灰度值的平均值、G通道的灰度值的平均值、以及B通道的灰度值的平均值,并将所述平均值中的最大值作为所述有雾图像的大气光值; 利用所述大气光值对所述最小灰度值进行归ー化,并利用归ー化结果获取粗略的透射图; 根据所述有雾图像中的像素的R通道、G通道、以及B通道的灰度值构造拉普拉斯矩阵, 并利用所述拉普拉斯矩阵对所述粗略的透射图进行优化;以及 利用优化的透射图、所述大气光值、以及所述有雾图像中的每个像素的R通道、G通道、以及B通道的灰度值,获取去雾图像中的每个像素的R通道、G通道、以及B通道的灰度值。
2.根据权利要求I所述的使用图形处理单元加速图像去雾的方法,其特征在于,所述方法由图形处理单元与中央处理单元协同完成,其中所述中央处理单元作为主控単元,所述图形处理单元作为加速运算单元。
3.根据权利要求2所述的使用图形处理单元加速图像去雾的方法,其特征在干,所述图形处理单元中的片断着色器计算所述最亮区域在所述有雾图像中所覆盖区域的所有像素的R通道的灰度值的平均值、G通道的灰度值的平均值、以及B通道的灰度值的平均值,所述中央处理单元找出所述平均值中的最大值传送给所述图形处理单元作为所述有雾图像的大气光值。
4.根据权利要求2所述的图像去雾方法,其特征在于,所述图形处理单元中的片断着色器根据等式Idart = minfi Oninc(Ie)),获取以所述有雾图像中的每个像素为中心的局部像素块的最小灰度值,其中Q表示以所述有雾图像中的任意一个像素像素j为中心的局部像素块,Idart表示所述局部像素块Q的最小灰度值,Ie表示所述像素j的R通道、G通道、或者B通道的灰度值,min ()是求最小值函数,j为大于I的整数。
5.根据权利要求2所述的使用图形处理单元加速图像去雾的方法,其特征在于,所述图形处理单元中的片断着色器根据等式べ==minn(minc(广/」))对所述最小灰度值进行归ー化,并根据等式f =获取所述粗略的透射图,其中Q表示以所述有雾图像中的任意一个像素j为中心的局部像素块,表示所述局部像素块Q的最小灰度值的归一化結果,Ie表示所述像素j的R通道、G通道、或者B通道的灰度值,f表示对应于所述像素j的粗略的透射图,A表示所述大气光值,《是由所述中央处理单元传送给所述图形处理单元的第一预定值,min ()是求最小值函数,j为大于I的整数。
6.根据权利要求2所述的使用图形处理单元加速图像去雾的方法,其特征在干,所述图形处理单元中的片断着色器根据以下等式构造拉普拉斯矩阵,1U = 5U _去(1 + (7, _ A,(c* +aひ3)(ん-^k)) L{Uj)= I Iu 其中,L(i,j)表示所述拉普拉斯矩阵中的第i行、第j列的元素,S u是克罗内克函数,y k和Ck是在所述有雾图像上滑动的3X3窗ロ Wk中的像素的R、G、B通道的灰度值的平均值矩阵和协方差矩阵,U3是由所述中央处理单元传送给所述图形处理单元的3 X 3単位矩阵,a是由所述中央处理单元传送给所述图形处理单元的值为10_4/9的參数,Ii和L是所述窗ロ Wk所覆盖的3X3块中的堆叠地址为i和j的像素的R、G、B通道的灰度值组成的矩阵,i,j,k是所述有雾图像中的像素的按列的堆叠地址。
7.根据权利要求5所述的使用图形处理单元加速图像去雾的方法,其特征在于,所述片断着色器根据以下等式利 用所述拉普拉斯矩阵和由所述中央处理单元传送给所述图形处理单元的第二预定值b来迭代得出所述优化后的透射图t d-Q -^q- _ Lt^ j(Xj — rI Vj / dj Ld^ , ti+i —も+ ct ,ri+1 = a M,,Pm = r,T+lrM Ir1l rt,di+1 = ri+1+ 3 ^di 其中,所述片断着色器在A满足预定阈值要求的情况下终止迭代。
全文摘要
公开了一种使用图形处理单元加速图像去雾的方法,包括获取以有雾图像中的每个像素为中心的局部像素块的最小灰度值;计算暗原色图像中预定大小的最亮区域在有雾图像中所覆盖区域的所有像素的R、G、B通道的灰度值的平均值,并将所述平均值中的最大值作为有雾图像的大气光值;利用大气光值对最小灰度值进行归一化,并利用归一化结果获取粗略的透射图;根据有雾图像中的像素的R通道、G通道、B通道的灰度值构造拉普拉斯矩阵,并利用拉普拉斯矩阵对粗略的透射图进行优化;利用优化的透射图、大气光值、有雾图像中的每个像素的R通道、G通道、B通道的灰度值,获取去雾图像中的每个像素的R通道、G通道、B通道的灰度值。
文档编号G06T1/00GK102654914SQ201110057150
公开日2012年9月5日 申请日期2011年3月4日 优先权日2011年3月4日
发明者谭志明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1