一种基于cuda的图像实时去雾方法

文档序号:6398005阅读:672来源:国知局
专利名称:一种基于cuda的图像实时去雾方法
技术领域
本发明涉及计算机应用技术和计算机视觉领域,具体涉及一种基于CUDA的图像实时去雾方法。
背景技术
图像去雾是计算机视觉领域中的一个重要课题,对雾天图像进行清晰化可以增加图像的视觉效果。在雾、霾等天气条件下,场景辐射照度被大气中的悬浮微粒散射,户外场景能见度降低,图像中目标对比度和颜色等特征被衰减,景物的可辨识度大大降低。同时,随着社会经济的发展,诸如智能视频监控、目标识别与检测以及遥感应用等领域对视频图像的依赖越来越大,消除图像中雾气对场景目标的影响显得十分必要。图像去雾算法主要分为两大类基于非模型的图像增强方法和基于物理模型的雾天图像复原方法。基于图像增强的方法,在算法处理时并不需要图像退化的原因和模型,其本质上可归为图像对比度增强的问题。典型方法如直方图均衡、小波方法以及Retinex算法等。由于基于非模型的去雾方法只是简单的增强图像对比度,没有从雾天图像模糊机理和退化原因上入手,只在一定程度上改善了图像的视觉效果,并非实质上的去雾处理。于是,基于大气散射模型的图像去雾方法得到了不断发展和创新。早期基于模型的方法需要借助不同天气下的多张图片或需要额外的深度信息进行处理。这些方法虽然能达到较好的效果,但对图像采集有苛刻的要求,并且需要用户交互,无法实现自动去雾。近来,一些强先验或假设应用于单幅图像自动去雾中,使图像去雾技术站上了一个新的台阶。其中,具有里程碑意义的是基于暗原色先验的单幅图像去雾技术。该技术简单有效,但需要计算复杂的矩阵及求解大型线性方程组,导致去雾算法耗费了大量的运算时间和空间,制约了其应用的实时性。综观国内外现有的图像去雾算法,虽已取得较大进展,但在效率与质量上难以两全。传统的基于CPU的架构在图形计算上显得捉襟见肘,只有利用图形处理器(GPU)才能满足实际应用的需求。

发明内容
本发明的目的在于提供一种基于CUDA的图像实时去雾方法,解决现有技术对图像的去雾方法对设备要求高,计算耗时而且图像不够清晰的问题。为解决上述的技术问题,本发明采用以下技术方案一种基于CUDA的图像实时去雾方法,包括以下步骤利用CUDA构建CPU与GPU协同工作环境;输入原始有雾图像,获取该图像的暗原色图像及其大气光值;根据暗原色先验获取原始有雾图像的透射率初始值,并利用引导滤波算法得到优化后的透射率;根据大气散射模型中的原始有雾图像、透射率分布和大气光确定去雾后的复原图像。根据权利要求1所述的一种基于CUDA的图像实时去雾方法,其特征在于所述暗原色先验是通过对户外无雾图像的观察并通以下方法得出设定Γ代表J的某一个颜色通道,而Ω(χ)是以X为中心的一块方形区域,严=得出,其中,大气光估计方法为先取Jdalrk中O. 1%亮度最大的像素,然后取这些像素对应在原图中的最大值作为大气光值。根据权利要求1所述的一种基于CUDA的图像实时去雾方法,其特征在于所述大气散射模型描述了雾化图像的退化方法是设定I是观测图像的亮度,J是景物光线的强度,A是无穷远处的大气光,t为透射率。去雾的目标就是从I中复原J,通过公式I (X) =J (X) t (X) +A (l_t (X))完成。CUDA (Compute Unified Device Architecture),显卡厂商 NVidia 推出的运算平台。CUDAt是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了 CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA 架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA 的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。Kernel,运行在GPU上的CUDA并行计算函数称为kernel (内核函数)。一个kernel函数并不是一个完整的 程序,而是整个CUDA程序中的一个可以被并行执行的步骤。与现有技术相比,本发明的有益效果是该方法充分结合CPU和GPU各自的优点,构建两者协同工作的编程模型,并利用暗原色先验知识与大气散射模型估计出大气光值、透射率分布,最终实现又好又快的实时雾天图像复原效果。


图1为本发明一种基于CUDA的图像实时去雾方法一个实施例的流程示意图。图2为未使用本发明一种基于CUDA的图像实时去雾方法的原始图像。图3为使用了本发明一种基于CUDA的图像实时去雾方法后的图像。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。图1不出了本发明一种基于CUDA的图像实时去雾方法的一个实施例一种基于CUDA的图像实时去雾方法,包括以下步骤利用CUDA构建CPU与GPU协同工作环境;输入原始有雾图像,获取该图像的暗原色图像及其大气光值;根据暗原色先验获取原始有雾图像的透射率初始值,并利用引导滤波算法得到优化后的透射率;根据大气散射模型中的原始有雾图像、透射率分布和大气光确定去雾后的复原图像。这里值得说明的是,CUDA的编程模型是CPU与GPU协同工作。传统的GPU架构受其硬件架构的影响不能有效利用资源进行通用计算,而利用CUDA可以使GPU不仅能执行传统的图形计算,还能高效地执行通用计算。由于透射率在一个局部区域内并不总是恒定的,所以初始的透射率估测图包含一些块效应,这里应用引导滤波算法来完善透射率分布函数,优化透射率估计。根据本发明一种基于CUDA的图像实时去雾方法的另一个实施例,利用CUDA构建CPU与GPU协同工作环境,是将CPU作为负责进行逻辑性强的事务处理和串行计算的主机,GPU作为负责执行高度线程化并行处理的协处理器,CPU、GPU各自拥有相互独立的存储器地址空间主机端的内存和协处理器的显存,同时,确定程序中的并行部分,并将该部分的计算工作交给GPU中的kernel进行处理。根据本发明一种基于CUDA的图像实时去雾方法的另一个实施例,暗原色先验是通过对户外无雾图像的观察并通以下方法得出设定Γ代表J的某一个颜色通道,而Ω (X)是以X为中心的一块方形区域,
权利要求
1.一种基于CUDA的图像实时去雾方法,其特征在于包括以下步骤利用CUDA构建CPU与GPU协同工作环境;输入原始有雾图像,获取该图像的暗原色图像及其大气光值;根据暗原色先验获取原始有雾图像的透射率初始值,并利用引导滤波算法得到优化后的透射率;根据大气散射模型中的原始有雾图像、透射率分布和大气光确定去雾后的复原图像。
2.根据权利要求1所述的一种基于CUDA的图像实时去雾方法,其特征在于利用CUDA 构建CPU与GPU协同工作环境,是将CPU作为负责进行逻辑性强的事务处理和串行计算的主机,GPU作为负责执行高度线程化并行处理的协处理器,确定程序中的并行部分,并将该部分的计算工作交给GPU中的kernel进行处理。
3.根据权利要求1所述的一种基于CUDA的图像实时去雾方法,其特征在于所述暗原色先验是通过对户外无雾图像的观察并通以下方法得出设定Γ代表J的某一个颜色通道,而Ω(χ)是以X为中心的一块方形区域,Jdark (x) = min ( min (./' (>·)))cE.\r,g,b\ _veO(x)得出,其中,大气光估计方法为先取Jdart中O. 1%亮度最大的像素,然后取这些像素对应在原图中的最大值作为大气光值。
4.根据权利要求1或3所述的一种基于CUDA的图像实时去雾方法,其特征在于所述根据暗原色先验获取原始有雾图像的透射率初始值,并利用引导滤波算法得到优化后的透射率,是加入引导滤波器,在引导图像的引导下对输入图像进行滤波完成的。
5.根据权利要求1所述的一种基于CUDA的图像实时去雾方法,其特征在于所述大气散射模型描述了雾化图像的退化方法是设定I是观测图像的亮度,J是景物光线的强度, A是无穷远处的大气光,t为透射率,去雾的目标就是从I中复原J,通过公式I(x) = J(x)t(x)+A(l-t(x))完成。
全文摘要
本发明涉及计算机应用技术和计算机视觉领域,具体涉及一种基于CUDA的图像实时去雾方法,包括以下步骤利用CUDA构建CPU与GPU协同工作环境;输入原始有雾图像,获取该图像的暗原色图像及其大气光值;根据暗原色先验获取原始有雾图像的透射率初始值,并利用引导滤波算法得到优化后的透射率;根据大气散射模型中的原始有雾图像、透射率分布和大气光确定去雾后的复原图像。该方法充分结合CPU和GPU各自的优点,构建两者协同工作的编程模型,并利用暗原色先验知识与大气散射模型估计出大气光值、透射率分布,最终实现又好又快的实时雾天图像复原效果。
文档编号G06T5/00GK103049890SQ20131001701
公开日2013年4月17日 申请日期2013年1月17日 优先权日2013年1月17日
发明者兰时勇, 程鹏, 刘东辉, 李新胜 申请人:四川川大智胜软件股份有限公司, 四川大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1