一种基于FPGA的透雾增强图像处理方法及系统与流程

文档序号:15925050发布日期:2018-11-14 01:03阅读:363来源:国知局

本发明属于图像处理技术领域,特别涉及一种基于fpga的透雾增强图像处理方法及系统。

背景技术

视频监控技术经过长期发展,现在已经进入比较成熟的应用阶段。但是,在某些领域,依然不能满足特定的观测需求。比如,在烟、雾、霾、水气、雨、雪、灰尘、黑暗、水下等环境下,传统监测设备很难发挥作用,甚至束手无策。在视频监控市场粗放式增长的时代,这一问题可以暂时忽略。但是,随着厂商和用户对科技设备效能的认识越来越深,要求也就相应的水涨船高。

在一般情况下,现有的视频监控系统经过图像的传送和转换,如成像、幅值、扫描、传输和显示灯,经常会造成图像质量的下降。在摄影时由于光照条件不足或过度,会使图像过暗或过亮;光学系统的失真、相对运动、大气湍流等都会使图像模糊,传输过程中也会引入各种类型的噪声。总之,输入的图像在视觉效果和识别方便性等方面可能存在诸多问题。为了解决上述问题,提出了公开号为“cn105023256a”,名称为“一种图像去雾方法及系统”的中国专利,该专利的图像去雾方法需要获取图像的每一个通道的全局大气光和透射率,根据每一个通道的全局大气光和透射率恢复出每一个通道的无雾图像,从而获取无雾的图像。但是该专利的方法比较复杂、对图像无雾处理的效果也不够好,得到的图像质量不高。



技术实现要素:

本发明的目的在于提供一种基于fpga的透雾增强图像处理方法及系统,用于解决现有技术中图像去雾处理效果不好的问题。

为了实现上述目的,本发明提供了一种基于fpga的透雾增强图像处理系统,包括fpga芯片和arm芯片,所述fpga芯片与所述arm芯片连接,所述fpga芯片上设置有图像数据采集接口,并对采集的图像数据进行色偏校正处理、透雾增强处理、低对比度增强处理和/或细节增强处理;所述fpga芯片上还设置用于将处理后的图像数据输出的输出接口。

为了解决不能对fpga灵活控制的问题,所述arm芯片上设置有用于与上位机通信连接的网口,所述arm芯片用于根据上位机下发的指令控制fpga对采集的图像数据进行处理。

进一步地,还包括梯度统计模块,所述梯度统计模块用于对采集的图像数据进行梯度统计处理,并将经过梯度统计后的图像数据经过所述arm芯片发送给上位机。

所述fpga芯片上设置有第一驱动接口及第一调试接口。

所述arm芯片上设置有第二驱动接口及第二调试接口。

为了方便对图像进行监控和观察,还包括电子变倍模块及字符叠加模块,采集的图像数据在细节增强处理后,经过电子变倍模块的变倍处理及字符叠加模块的叠加处理输出。

本发明还提供了一种基于fpga的透雾增强图像处理方法,包括如下步骤:

采集图像数据,对所述图像数据进行色偏校正处理、透雾增强处理、低对比度增强处理和/或细节增强处理,并将处理后的图像数据输出。

进一步地,对采集的图像数据进行了梯度统计处理。

进一步地,所述色偏校正处理的过程为:获取采集的图像的r、g、b三个通道的数据,建立表征图像偏绿强度图,选取图像中含绿色成分最小的像素点作为图像整体偏色程度的度量,在所述强度图中按照设定的比例指对应的强度图值作为图像偏色的量化表示。

为了方便对图像进行监控和观察,采集的图像数据在细节增强处理后,经过电子变倍及字符叠加处理输出。

本发明的有益效果是:

本发明包括fpga芯片和arm芯片,所述fpga芯片与所述arm芯片连接,所述fpga芯片上设置有图像数据采集接口,并对采集的图像数据进行色偏校正处理、透雾增强处理、低对比度增强处理和/或细节增强处理;所述fpga芯片上还设置用于将处理后的图像数据输出的输出接口。本发明对采集的图像进行了多次处理,使图像质量得到了很大的提高,在天气恶劣的情况下采集的图像数据不受影响,最终得到的无雾图像效果比较好,对现有技术中的各种监控设备可以起到增强、补充的效果。

附图说明

图1为本发明的基于fpga的电子透雾增强图像处理系统的结构示意图;

图2为本发明的图像优化算法流程示意图;

图3-1为透雾算法三段线性变换示意图;

图3-2为透雾算法的采用直方图统计方法计算亮度动态范围的示意图;

图4-1为低对比度增强算法中核最右侧的列直方图更新的示意图;

图4-2为低对比度增强算法中和直方图更新的示意图;

图5为细节增强算法原理图;

图6为电子变倍算法的双线性差值处理的示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明:

透雾技术从实际应用来讲,包括对灰尘、水气、细小障碍物(比如透明罩的轻微脏污和雨水等)的穿透。在这些恶劣的环境下,图像质量会大幅下降甚至无法采集监控目标的影像,因此需要采用透雾技术对图像进行后期处理和优化。图像优化处理,主要是采用各种算法对模糊的图像进行重新校正,再现现场图像。随着芯片技术的发展,把电脑上的图像优化系统做成单一的运行程序,固化到fpga上,这就是所谓的数字透雾技术,由于单纯的数字透雾不会改变色彩,因此,也叫彩色透雾。

本实施例的基于fpga的电子透雾增强图像处理系统包括包括fpga芯片和arm芯片,fpga芯片与arm芯片连接,fpga芯片上设置有图像数据采集接口,并对采集的图像数据进行色偏校正处理、透雾增强处理、低对比度增强处理和/或细节增强处理;fpga芯片上还设置用于将处理后的图像数据输出的输出接口。

arm芯片上设置有用于与上位机通信连接的网口,arm芯片用于根据上位机下发的指令控制fpga对采集的图像数据进行处理。上述fpga芯片上设置有第一驱动接口及第一调试接口,arm芯片上设置有第二驱动接口及第二调试接口。

本实施例的基于fpga的透雾增强图像处理系统,还包括梯度统计模块,所述梯度统计模块用于对采集的图像数据进行梯度统计处理,并将经过梯度统计后的图像数据经过所述arm芯片发送给上位机;为了展示本实施例的图像处理系统的多样性功能,还包括电子变倍模块及字符叠加模块,采集的图像数据在细节增强处理后,经过电子变倍模块的变倍处理及字符叠加模块的叠加处理输出。

采用上述基于fpga的电子透雾增强图像处理系统对图像处理的方法,如图2所示,主要对采集的图像数据进行色偏校正处理、透雾增强处理、低对比度增强处理和/或细节增强处理等多次处理,使得到的图像质量很高,不影响在恶劣天气下对采集的图像的分析。

具体来说,如图1所示,图像处理系统包括硬件部分和软件部分,硬件部分主要包括接口、处理核心、外设、电源模块。其中,接口包括1路hd-sdi输入、2路hd-sdi输出、2路pal输出、1路rs422通讯、电源及第一调试接口,第一调试接口包括rs422调试接口及jtag调试接口,arm芯片与fpga芯片共用jtag调试接口,所以,arm芯片的第二调试接口为jtag调试接口。处理核心使用内嵌arm的fpga芯片内,考虑资源与功耗,选用altera公司的cycionevsx系列fpga。外设主要包括arm外接的第二驱动接口即ddr3驱动接口、1路tf卡、1路norflash,fpga外接的第一驱动接口,即ddr3驱动接口,以及几个接口的转换芯片。电源模块接收5v输入,转换为板上各芯片所需电压,如3.3v、2.5v、1.8v、1.1v等。

软件部分包括arm软件和fpga逻辑,arm加载linux操作系统,并实现串口、ddr3驱动接口、flashboot等基本驱动,应用层主要负责通讯命令解析、综合控制和字符掩膜图的绘制。

fpga逻辑实现主要的图像处理功能,包括梯度统计、色偏校正、透雾增强、低对比度增强、细节增强、电子变倍、字符叠加、图像缩放,另外还包括接口驱动、工作模式配置等接口框架相关内容。

图像处理系统通过hd-sdi接口外接1080p25/30高清相机,输入1080p彩色图像数据,进入到fpga,数据进入fpga后通过色偏校正、透雾增强、低对比度增强、细节增强处理,实现主要的处理算法,完成图像质量的改善,提高可观察性;后续通过电子变倍和字符叠加后经hd-sdi接口输出(2路sdi输出相同内容);同时为符合pal制式,在电子变倍后通过图像缩放将1920*1080图像缩小为720*576,再叠加字符从pal接口输出。在这里,经过细节增强处理后的图像数据经过电子变倍再经过图像缩放处理,是因为电子变倍处理能够保持在输出分辨率不变的情况下放大图像,相应的视场会变小,如果将细节增强处理后的数据直接进行图像缩放处理,其视场没有变化。

为实现图像的清晰度评估,输入fpga的图像数据同时进行区域梯度统计处理,并将统计值反馈给arm部分,通过串口传给上位机。

arm一方面通过串口接收上位机传输的数据和命令,包括叠加字符的相关数据和工作模式控制命令,并反馈自检状态、清晰度统计值等信息给上位机;另一方面根据上位机命令实现工作模式综合控制,并根据得到的系统信息更新字符掩膜图绘制,将字符掩膜图提供给fpga的字符叠加模块。

图像处理系统以内嵌arm的fpga为处理核心,配置相关外设和接口电路,实现图像的实时处理。arm软件主要负责3部分的内容:

(1)串口通讯综合控制:通过422串口接收上位机发来的模式控制及系统参数,根据模式控制命令内容对fpga部分发出指令,控制fpga工作模式的开关;同时将系统参数提供给字符掩膜图绘制模块,作为绘制输入信息;另外完成系统自检、综合任务调度等功能。

(2)字符掩膜图绘制:基于skia或其他字符绘制库,进行字符掩膜图的绘制,并缓存至arm外接的ddr3,供fpga部分后续叠加使用。

(3)接口驱动及系统boot:完成系统上电配置,包括arm部分和fpga部分,完成arm部分的接口驱动,包括ddr3、串口、axi总线等。

fpga逻辑主要包括3部分内容:

(1)接口驱动部分:1)完成hd-sdi解码和hd-sdi编码,该部分通过调用altera提供的ip完成;2)ddr3缓存控制,主要完成输入输出图像缓存,在官方提供ip基础上,进行多通道读写控制封装;3)saf7129驱动,涉及saf7129i2c配置、pal制数据协议转换;

(2)工作模式控制部分:1)完成与arm的axi总线通讯,接收arm传来的控制命令,返回梯度统计信息和其他工作状态信息;2)基于arm的控制命令,配置算法功能模块中各算法模块的工作模式。

(3)算法功能模块:完成包括梯度统计、色偏校正、透雾增强、低对比度增强、细节增强、电子变倍、图像缩放、字符叠加在内所有算法功能模块的处理,各模块间接口统一使用dval、datargb[23:0]、clk_pixel,实现全流水化处理,每个像素时钟输出1个像素处理结果。

下面分别对各图像优化算法进行详细说明:

1)色偏校正算法

输入:原始图像视频序列,视频图像分辨率为1920×1080像素,位深为24bit。

输出:白平衡后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

实现流程设计:

有雾图像由于自然光中不同波段光线的穿透能力不同,往往成像时存在色偏问题,在图像透雾增强之后,偏色也会被放大增强而变得异常明显,因此本算法针对样例视频出现的色调偏绿的问题,在透雾增强之前,提出一种色偏校正处理的方法。

已知输入图像i(x,y)的r、g、b三通道像素值分别为r(x,y)、g(x,y)和b(x,y),则表征图像偏绿强度图g(x,y),可以通过以下公式计算:

g(x,y)=max(0,g(x,y)-max(r(x,y),b(x,y)))

其中,max()运算符表示计算两个数的最大值,g(x,y)的取值范围是[0,255];g(x,y)的物理意义表征的是图像各个像素点所含绿色的多少。考虑到偏色图像的特性是绝大部分图像都包含有绿色成分,在图像处理中,可以计算全图中包含绿色成分最小的像素点作为图像整体偏色程度的度量,考虑到单点选取的误差,实际过程中选取强度图g(x,y)中从小到大选取一定比例的点所对应的强图值g40(x,y)作为图像偏色的量化表示。色偏校正后的g通道像素值g'(x,y)可以通过以下公式计算:

g′(x,y)=max(0,g(x,y)-g40(x,y))

本实施例的色偏校正算法相对于传统的白平衡算法,具有计算量小、适应性强等特点,且算法对比例值rthres的选取并不敏感,实现过程中rthres取值范围选取[0.3,0.4]为佳。

2)透雾算法

输入:色偏校正后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

输出:透雾后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

实现流程设计:

透雾算法采用全局直方图拉伸的算法实现透雾增强功能。首先计算有雾图像的直方图分布,考虑到有雾图像整体由于在低亮度部分的直方图分布数量很少,因此造成视觉上对比度低的问题。本算法考虑图像像素直方图的统计分布特性,计算图像像素拉伸的高低亮度门限,然后通过r、g、b三通道直方图拉伸的方法增大对比度,实现透雾效果。

已知输入图像i(x,y)的r、g、b三通道像素值分别为r(x,y)、g(x,y)和b(x,y),则灰度图像y(x,y)采用灰度计算的心理学公式计算:

y(x,y)=0.30*r(x,y)+0.59*g(x,y)+0.11*b(x,y)

图像增强处理时,为了突出感兴趣的目标或灰度区间,可以采用分段线性变换,把整个灰度区间划分为几个灰度区间,拉伸要增强目标对应的灰度区间,相对抑制不感兴趣的灰度级,从而达到增强的目的。常用的分段线性变换为三段线性变换,如图3-1所示,其数学表达式为:

式中m为图像最大亮度,通过调节折线拐点的位置及分段直线的斜率,即控制参数a、b、c,d的取值,可实现对任一灰度区间的扩展或压缩。

透雾算法采用统计灰度图像y(x,y)的直方图,通过设定图像中低亮度比例门限rlow和高亮度比例门限rhigh来计算图像亮度的动态范围[lowthres,highthres],最终确定三段线性变换的参数,原理如图3-2所示。在实际过程中,rlow取0.005,rhigh取0.01,a取lowthres,b取highthres,c取lowthres/3,d取(highthres+255)/2。

3)低对比度增强算法

输入:透雾后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

输出:低对比度增强后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

实现流程设计:图像去雾算法往往会使得图像整体亮度降低,而原有亮度比较低的区域由于亮度的进一步降低而使得原有的图像细节产生了一定程度上的缺失,这就需要采用低对比度增强的模块进行亮度补偿。

低对比度算法设计的核心是对低对比度区域的估计,该算法针对灰度图像采用一定尺度的中值滤波的方式,忽略图像细节的同时提取像素所在区域的平均亮度作为该像素增强的参考权值,即亮度导引图;然后选择一个非线性变换函数(实际程序中选取指数函数),利用亮度导引图分别对图像r、g、b三通道进行亮度拉伸的方式实现对比度增强。已知输入图像i(x,y)的rgb三通道像素值分别为r(x,y)、g(x,y)和b(x,y),本模块的灰度图像y(x,y)通过以下公式计算:

y(x,y)=max(r(x,y),g(x,y),b(x,y))

灰度图像中值滤波采用快速中值滤波算法,首先,对于每一列图像,都为其维护一个直方图(对于8位图像,该直方图有256个元素),在整个的处理过程中,这些直方图数据都必须得到维护。每列直方图累积了2r+1个垂直方向上相邻像素的信息(其中r为中值滤波半径),初始的时候,这2r+1个像素是分别以第一行的每个像素为中心的。核的直方图通过累积2r+1个相邻的列直方图数据获取。在整个滤波的过程中,这些直方图数据在两个步骤内用恒定的时间保持最新。如图4-1和4-2所示,考虑从某个像素向右移动一个像素的情况。对于当前行,核最右侧的列直方图首先需要更新,而此时该列的列直方图中的数据还是以上一行对应位置那个像素为中心计算的。因此需要减去最上一个像素对应的直方图然后加上其下面一像素的直方图信息。这样做的效果就是将列直方图数据降低一行。这一步很明显是个0(1)操作,只有一次加法和一次减法,而于半径r无关。第二步更新核直方图,其是2r+1个列直方图之和。这是通过减去最左侧的列直方图数据,然后再加上第一步所处理的那一列的列直方图数据获得的。如前所述,加法、减法以及计算直方图的中值的耗时都是一些依赖于图像位深的计算,而与滤波半径无关。

利用亮度导引图,设图像r、g、b三通道灰度值为yr/g/b(x,y),灰度拉伸之后的三通道灰度值为y'r/g/b(x,y),灰度拉伸采用的非线性函数为:

其中,meduim(x,y)为灰度点,yr/g/b(x,y)对应的中值滤波图像的像素值,ymin为灰度图像像素最小值,yavg为灰度图像像素平均值。

4)细节增强算法

输入:低对比度增强后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

输出:细节增强后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

实现流程设计:细节增强算法在实施例中是一个可选模块,其目标在于增强图像细节信息。算法重要流程采用经典的unsharpmask(usm)锐化算法,具体原理如图5所示,用具体的公式表达即为:

y(n,m)=x(n,m)+λz(n,m)

其中,x(n,m)为输入图像,y(n,m)为输出图像,λ是用于控制增强效果的一个缩放因子,而z(n,m)为校正信号,一般是通过输入图像对x进行高通滤波获取,在本算法中:

z(n,m)=x(n,m)-g(n,m)

其中,g(n,m)为对x(n,m)的高斯滤波结果。

采用细节增强算法对图像处理的过程中,首先对原始图像的r、g、b三个通道进行低通滤波,然后利用原始图像与低通滤波后图像的差分提取图像中的高频部分,最后将高频图像加权叠加,实现图像细节增强。

5)电子变倍算法

输入:细节增强后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

输出:2x或4x电子变倍后的视频图像序列,视频图像分辨率为1920×1080像素,位深为24bit。

实现流程设计:电子变倍的目的是将图像中心区域进行放大显示,以满足监控和观察的需要,分为2×电子变倍和4×电子变倍两种功能需求。

该算法设计综合考虑效率和效果两方面因素,采用双线性插值算法实现电子变倍功能。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值,如图6所示。

若想得到未知函数f在点p=(x,y)的值,并且已知函数f在q11=(x1,y1),q12=(x1,y2),q21=(x2,y1)及q22=(x2,y2)四个点的值,其计算求解过程为:

首先在x方向进行线性插值,得到:

然后在y方向进行线性插值,得到:

这样就得到f(x,y的表达式:

如果选择一个坐标系统使得f的四个已知点坐标分别为(0,0)、(0,1)、(1,0)和(1,1),那么插值公式就可以化简为:

f(x,y)≈f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy.

或者用矩阵运算表示为:

与这种插值方法不同的是,这种插值方法的结果通常不是线性的,表示为:

b1+b2x+b3y+b4xy.

其中,常数的数目都对应于给定的f的数据点数目:

b1=f(0,0)

b2=f(1,0)-f(0,0)

b3=f(0,1)-f(0,0)

b4=f(1,1)-f(1,0)-f(0,1)+f(0,0)

线性插值的结果与插值的顺序无关。首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。

6)梯度统计算法

输入:原始视频图像序列,视频图像分辨率为192×108像素,位深为24bit。

输出:梯度参考值。

实现流程设计:梯度统计算法主要是运用对比度对焦的原理,通过检测图像的轮廓边缘实现自动对焦的。图像的轮廓边缘越清晰,则它的亮度梯度就越大,或者说边缘处景物和背景之间的对比度就越大。反之,失焦的图像,轮廓边缘模糊不清,亮度梯度或对比度下降;失焦越远,对比度越低。利用这个原理,输出的对比度相差的绝对值最小时,说明对焦完成。

本算法采用sobel梯度算子作为方差量的度量方式,计算图像中心区域(192×108像素)的梯度值,梯度值达到最大时,即为对焦完成。sobel算子主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量。sobel卷积因子为:

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以a代表原始图像,gx及gy分别代表经横向及纵向边缘检测的图像灰度值。

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

梯度统计算法为了提高效率使用不开平方的近似值为梯度值:

|g|=|gx|+|gy|

7)局部清晰度统计模块

该模块是针对图像数据中关于各个像素点的清晰度进行统计,用于评判透雾增强效果,由armcpu完成记录。

以上给出了具体的实施方式,但本发明不局限于以上所描述的实施方式。本发明的基本思路在于上述基本方案,对本领域普通技术人员而言,根据本发明的教导,设计出各种变形的模型、公式、参数并不需要花费创造性劳动。在不脱离本发明的原理和精神的情况下对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1