一种基于cuda的低照度图像增强并行优化方法

文档序号:8905657阅读:872来源:国知局
一种基于cuda的低照度图像增强并行优化方法
【技术领域】
[0001] 本发明设及并行计算领域,W及图像处理算法技术领域,具体是一种基于CUDA的 低照度图像增强并行优化方法。
【背景技术】
[0002] 为了提高社会的公共安全,很多公共场所都安装了视频监控系统,来通过监控图 像了解情况。但在夜间光线太弱,能见度很低的情况下,人眼不易观察到周围环境,使用图 像采集设备在夜晚采集到的图像往往偏黑,使得周围景物的可辨识度下降,不能满足一些 实际用途。因此,使用低照度图像增强算法处理图像,把夜晚的图像转换为白天可W看到场 景细节的图像,在生活中的方方面面都是很有意义的。然而由于图像增强算法计算量大,运 行时间很长,不能满足实际应用中的实时处理要求,很难将算法应用到实际需求中。对算法 层面进行优化和将算法进行并行处理来有效降低处理时间是非常有必要的。
[0003] 由于图像数据的特点,并行计算也逐渐应用到图像处理领域中。为了加快计算速 度,并行技术从多核处理器逐渐发展到GPU,GPU不再局限于对3D图形图形处理,在浮点运 算和并行计算等方面都有优于CPU的性能。在CPU/GPU异构系统中,多核CPU可W提供通 用的计算能力,GPU在数字图像处理并行化计算方面有明显的优势,并被广泛应用于图像处 理领域中。
[0004] 申请号为CN201410713588的中国发明专利公开了一种图像增强方法及装置,在 获取图像后,根据预设的灰尘标记位置确定图像需要增强的位置;统计图像的直方图,W确 定图像需要增强的位置上的像素值在整个图像的像素值分布比例;根据图像需要增强的位 置上的像素值在整个图像的像素值的分布比例,对图像需要增强的位置上的像素值进行处 理;输出处理后的图像,来提高拍摄图像的清晰度。
[0005] 申请号为CN201420766172的中国发明专利公开了一种具有图像增强功能的计算 机图像处理系统,主要由图像增强电路W及同图像增强电路连接的光电禪合器组成;还包 括摄像头、视频编码器、FPGA处理器、禪合电路、图像显示电路、时钟电路,视频编码器连接 图像增强电路,图像增强电路连接光电禪合器,FPGA处理器连接光电禪合器,FPGA处理器 连接禪合电路,视频编码器连接FPGA处理器;TV监视器连接视频解码电路,时钟电路分别 连接视频编码器、图像增强电路、FPGA处理器、视频解码电路;加载视频编码电路,用于进 行视频再次编码,并采用成熟的图像增强技术对图像需要增强的部位进行增强,W保障后 台显示图像的真实质感效果更佳。

【发明内容】

[0006] 本发明的目的在于提供一种基于CUDA的低照度图像增强并行优化方法,是指在 GPU上使用CUDA编程模型对基于暗原色去雾技术的低照度增强算法进行并行优化,在提高 夜间图像可视化效果的同时达到实时处理效果。
[0007] 为实现上述目的,本发明提供如下技术方案: 一种基于CUDA的低照度图像增强并行优化方法,所述低照度图像增强算法为基于暗 原色去雾技术的增强算法,采用CPU/GPU异构模式,在GPU上使用CUDA编程模型对低照度 增强算法进行并行优化,W达到实时处理效果;包括W下步骤: 步骤1、在CPU上将图像数据读取到内存中,然后分别将图像数据的=个颜色通道值拷 贝到GPU上的显存中; 步骤2、使用一个kernel用于计算图像反转和暗原色图; 步骤3、使用一个kernel用于计算共享寄存器中的最大值,使用偏移循环调用该个kernel,最终计算出全局大气光值; 步骤4、使用一个kernel用于计算透射率和使用去雾模型进行恢复并再次进行反转; 步骤5、将复原得到的图像从GPU的显存中拷贝到CPU的内存中,CPU将复原后的图像 进行保存。
[0008] 作为本发明进一步的方案;所述低照度图像增强算法全部在GPU上运行,输入数 据和输出数据在CPU和GPU之间进行拷贝。
[0009] 作为本发明进一步的方案;在GPU上,每个kernel都开辟与图像像素点数目相同 的线程,每个线程对一个像素点进行处理。
[0010] 作为本发明进一步的方案;所述步骤2中,为每个颜色通道开辟像素点总数/512 个block,每个block中的线程对单个像素点进行反转操作,具体的反转算法如下: 厂(4=255 -£'屯-) 式中;C表示RGB颜色通道,L表示输入的原始图像,I表示反转后的输出图像。
[0011] 作为本发明进一步的方案;所述步骤2中,计算暗原色图方法,包括W下步骤: 将所述反转图像的RGBS通道值拷贝到GPU共享存储器中,在Block中每个线程W单 个像素点为单位,对7*7窗口内像素点的各个通道做最小值滤波,再对其每个颜色通道求 最小值作为该像素点的暗原色值。
[0012] 作为本发明进一步的方案;所述步骤3中,使用图像的亮度和暗原色图共同作用 来估算大气光值A,包括W下步骤: 在GPU上开辟图像像素点数目的线程,每个线程分别计算单个像素点的大气光综合 评估值F,并保存于全局存储器中;然后对每个block中所有线程求得的像素点F值进行 log(n)次归约,得到此block中F的最大值,并将其存于共享存储器中;再对共享存储器中 的像素点进行归约,进行循环规约后,最终得共享存储器中的最大值,即为估算所得全局大 气光A,具体求得大气光综合评估值F的算法如下:
式中:巧J亮度图像Y与暗原色图像/)fg'ws的比值,亮度图像Y的计算公式为;
式中;R、G、B分别代表图像RGBS通道分量值。
[0013] 作为本发明进一步的方案;所述步骤4中,采用有雾图像的亮度图Y估算透射率 t,将亮度值进行归一化,并使用一个常量C削弱归一化的亮度值,得到图像透射率图t,并 用一个局部变量保存每个像素点的透射率值,计算透射率t的公式为: 式中;C为用于削弱亮度图像Y的参数,C取值范围为[1. 06,1. 0引。
[0014] 作为本发明进一步的方案;所述步骤4中,在一个kernel中,每个线程先后完成计 算当前像素点的透射率,计算该点的复原图,并将复原后的图像再次反转,其中,计算复原 图的具体算法如下:
式中;I(x)为反转后的图像,A为全局大气光,t(x)为透射率图像。
[0015] 与现有技术相比,本发明的有益效果是: (1)本发明提出了一种基于CUDA的低照度图像增强并行优化方法,将低照度图像增强 算法全部在GPU上运行,并在GPU上为每个kernel都开辟与图像数目相同的线程,每个线 程对一个像素点进行处理,提高了算法的并行性,W满足高分辨率图像的实时处理效果。
[0016] (2)本发明针对基于暗原色去雾技术的低照度图像增强算法中,不适合在GPU上 运行的计算全局大气光的部分进行改进,使用暗原色和图像的亮度值来评估大气光值,减 少了数据间的相关性。使用该种新的改进方法使得整个算法更容易W及更快地在GPU上运 行,避免了不断进行CPU和GPU进行数据拷贝的过程。
[0017] (3)本发明在进行CUDA编程时,充分使用全局存储器和共享存储器,从而减少CPU 和GPU之间的数据传递,减少算法耗时。
【附图说明】
[0018] 图1是本发明算法在GPU上的执行流程图; 图2是图1中kernel1的执行流程图; 图3是规约思想示意图; 图4是图1中kernels的执行流程图; 图5是本发明数据在CPU和GPU上的传递图; 图6是本发明在GPU上算法各中间过程的加速比图。
【具体实施方式】
[0019] 下面将结合本发明实施例及附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。
[0020] 请参阅图1-图5, 一种基于CUDA的低照度图像增强并行优化方法,在GPU上使用3 个kernel,kernell主要负责计算图像反转W及暗原色的估算,kernels主要负责对全局大 气光的估算,kernels主要负责透射率、去雾模型的计算W及图像的反转操作。每个kernel都开辟与图像像素点数目相同的线程,每个线程对一个像素点进行处理。具体按照W下步 骤实施: 步骤1、在CPU上将图像数据读取到内存中,然后分别将图像数据的=个颜色通道值拷 贝到GPU上的显存中,为了运算提高速度,此处将数据拷贝到GPU的全局存储器中。
[0021] 步骤2、如图2所示,使用一个kernel用于计算图像反转和暗原色图。
[002引步骤2. 1、对于一张m*n大小的图像,每个颜色通道开辟m*n/512个block,每个block中的线程从全局存储器中读取数据对单个像素点进行反转操作。<
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1