CN117726547A - 基于改进暗通道算法的去雾实现方法、系统 - Google Patents
基于改进暗通道算法的去雾实现方法、系统 Download PDFInfo
- Publication number
- CN117726547A CN117726547A CN202311843875.3A CN202311843875A CN117726547A CN 117726547 A CN117726547 A CN 117726547A CN 202311843875 A CN202311843875 A CN 202311843875A CN 117726547 A CN117726547 A CN 117726547A
- Authority
- CN
- China
- Prior art keywords
- image data
- pixel
- image
- dark channel
- defogging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims abstract description 35
- 238000002834 transmittance Methods 0.000 claims abstract description 30
- 238000005457 optimization Methods 0.000 claims abstract description 20
- 238000001914 filtration Methods 0.000 claims description 73
- 230000008030 elimination Effects 0.000 claims description 14
- 238000003379 elimination reaction Methods 0.000 claims description 14
- 230000014759 maintenance of location Effects 0.000 claims description 8
- 230000009191 jumping Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000008054 signal transmission Effects 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 16
- 238000005286 illumination Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 1
- 235000002566 Capsicum Nutrition 0.000 description 1
- 206010028980 Neoplasm Diseases 0.000 description 1
- 239000006002 Pepper Substances 0.000 description 1
- 235000016761 Piper aduncum Nutrition 0.000 description 1
- 235000017804 Piper guineense Nutrition 0.000 description 1
- 244000203593 Piper nigrum Species 0.000 description 1
- 235000008184 Piper nigrum Nutrition 0.000 description 1
- 208000037062 Polyps Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000036285 pathological change Effects 0.000 description 1
- 231100000915 pathological change Toxicity 0.000 description 1
- 230000002980 postoperative effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Image Processing (AREA)
Abstract
本发明涉及图像处理技术领域,公开了一种基于改进暗通道算法的去雾实现方法、系统,内窥镜图像采集模块用于将采集到的原始有雾图像数据的每两个连续字节进行拼接后形成的16位RGB565格式的图像数据进行存储的缓存单元;图像暗通道计算模块用于将第一图像数据变成原始暗通道图像数据;大气光强度计算模块用于根据所述暗通道图像数据的前y%的像素值作为大气光强度;图像透射率计算优化模块用于根据所述大气光强度和暗通道数据计算图像透射率;无雾图像还原模块用于根据所述原始有雾图像数据、大气光强度和透射率还原出无雾图像数据。本发明提高了内窥镜系统的去雾实时性,降低了系统功耗和硬件资源消耗,同时也提高了处理后图像的质量。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于改进暗通道算法的去雾实现方法、系统。
背景技术
去雾算法是图像处理技术领域的一个重要研究方向,旨在通过对雾霾图像进行复原和增强,使图像更清晰、真实,有效的应对恶劣天气和大气干扰带来的问题。传统去雾算法一般应用于视频监控与自动驾驶、无人机与航空影像处理以及自然景观摄影技术。在医疗领域中,内窥镜作为一种依赖其设计结构和成像原理的可插入人体器官内的光学医疗设备,主要用于检查和诊断人体腔内病变和异常情况,以及介入肿瘤切除、息肉摘除和异物取出等手术过程。手术过程中使用内窥镜有许多突出特点,传统手术会对人体造成较大的创口,在内窥镜系统的辅助下,手术可达微创效果,极大降低手术的风险,术后恢复更快;内窥镜能够提高诊断的准确性。因此,内窥镜的发展和优化受到广泛关注。
内窥镜的使用不仅取决于输出图像的清晰程度,而且对实时性的要求极其严格。由于进行内窥镜手术时,因人体内的温度和内窥镜表面存在温差,内窥镜表面会出现雾气,导致视频图像可视效果差和色差严重等,使图像的质量严重降低,从而影响医务人员对检查结果的判断、延长检查时间以及诱发医疗事故等。虽然对去雾算法已有一定研究,但由于传统去雾算法复杂度高,直接应用硬件实现实时性低,不能满足内窥镜在医生手术过程实时性的要求。因此,内窥镜的快速实时视频去雾算法的实现成为了当前智慧医疗系统研究中的一个热门话题。
要对内窥镜图像的快速去雾常用的方法有卷积神经网络和传统图像算法,用卷积神经网络来对图像进行去雾不仅会消耗大量的资源且实时性比较差、成本比较高,同时传统图像算法操作比较简单且易于实现,所消耗的资源也远小于神经网络,且对灰度值不敏感,对目标的旋转、尺度变化和光照变化等因素具有很好的鲁棒性,因此传统图像算法在内窥镜图像去雾上具有很好的实用价值。
近年来,FPGA在图像处理和目标检测领域发展迅速,这得益于其高性能、低功耗和低成本的特点,因此FPGA对于内窥镜图像的处理可以达到更低的成本以及更好的传输速度,从而适应不同的工业领域。
发明内容
本发明提供一种基于改进暗通道算法的去雾实现方法、系统,基于暗通道先验理论,对该算法中的大气光照强度估计值、暗通道图、透射率值以及雾气保留因子进行优化,改进后的算法更适合FPGA实现。
本发明通过下述技术方案实现:
一种基于改进暗通道算法的去雾实现方法,通过内窥镜图像采集模块设置在FPGA上的图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块实现,其中,
所述内窥镜图像采集模块包括用于采集原始有雾图像数据的内窥镜采集单元以及将所述内窥镜采集单元采集到的原始有雾图像数据的每两个连续字节进行拼接后形成的16位RGB565格式的图像数据进行存储的缓存单元,令16位RGB565格式的图像数据为第一图像数据;
所述图像暗通道计算模块包括获取所述第一图像数据中的每个像素点的RGB最小值的像素最小值单元,所述像素最小值单元将所述第一图像数据变成第二图像数据以及对所述第二图像数据中的某一像素点周边区域进行RGB最小值滤波的3*3最小值滤波模块、对所述3*3最小值滤波模块的输出数据进行均值滤波的3*3均值滤波模块,最终所述3*3均值滤波模块输出暗通道图像数据,所述3*3最小值滤波模块将所述第二图像数据变成原始暗通道图像数据;
所述大气光强度计算模块用于根据所述暗通道图像数据的前y%的像素值作为大气光强度;
所述图像透射率计算优化模块用于根据所述大气光强度和暗通道数据计算图像透射率;
所述无雾图像还原模块用于根据所述原始有雾图像数据、大气光强度和透射率还原出无雾图像数据。
作为优化,还包括HDMI显示模块,所述HDMI显示模块用于将所述无雾图像数据显示呈可视化图像。
作为优化,所述3*3最小值滤波模块包括两个第一FIFO、三个寄存器和一个第一3*3窗口,所述3*3最小值滤波模块的工作过程如下:
A1、两个所述第一FIFO分别依次按序存储来自所述像素最小值单元的所述第二图像数据第Q行和第(Q+1)行的像素点的像素值,所述第一FIFO所存储的数量与所述第一图像数据的分辨率相匹配,当两个第一FIFO依次按序存储满来自所述像素最小值单元的像素值后,所述像素最小值单元继续依次传来所述第二图像数据第(Q+2)的像素点的像素值作为第三行数据;
A2、将两个所述第一FIFO以及第三行数据的前三列像素值置于所述第一3*3窗口中;
A3、将两个所述第一FIFO的首列以及第三行数据的首列所存储的像素值进行对比,选取第一列最小的像素值存储在其中一个寄存器中;
A4、再将两个所述第一FIFO的第二列以及第三行数据的第二列所存储的像素值进行对比,选取第二列最小的像素值存储在另一个寄存器中,同时,已经存储在寄存器中的第一列最小的像素值存储至第三个寄存器中;
A5、再将两个所述第一FIFO的第三列以及第三行数据的第三列所存储的像素值进行对比,选取第三列最小的像素值;
A6、将所述第三列最小的像素值、第一列最小的像素值、第二列所存储的像素值三者相互进行对比,选取三者中最小的像素值作为所述3*3最小值滤波模块输出的原始暗通道图像数据的第Q行的像素点的像素值;
A7、判断所述第一3*3窗口是否移动到最后边,若是,则跳转至A9,否则,跳转至A8;
A8、将所述第一3*3窗口向后移动一位,使得两个所述第一FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回A2;
A9、判断所述像素最小值单元是否还有像素值需要传送,若是,将两个所述第一FIFO的存储空间清空,将Q=Q+1,返回A1,否则,结束最小值滤波。
作为优化,所述3*3最小值滤波模块与3*3均值滤波模块之间还包括光晕消除单元,所述光晕消除单元包括加法器和除法器,所述加法器用于将所述3*3最小值滤波模块输出的原始暗通道图像数据的像素点的像素值和像素最小值单元输出的最小值图像数据的像素值相加得到新的像素值,所述除法器用于将所述加法器输出的相加结果的二进制向右移一位,得到输入至所述3*3均值滤波模块的输入数据,所述光晕消除单元将所述原始暗通道图像数据变为第三图像数据。
作为优化,所述3*3均值滤波模块包括两个串行设置的第二FIFO以及一个第二3*3窗口,所述3*3均值滤波模块的工作过程如下:
B1、两个所述第一FIFO分别依次按序存储来自所述光晕消除单元的所述第三图像数据第P行和第(P+1)行的像素点的像素值,所述第二FIFO所存储的数量与所述第三图像数据的分辨率相匹配,当两个第二FIFO依次按序存储满来自所述光晕消除单元的像素值后,所述像素最小值单元继续依次传来所述第三图像数据第(P+2)的像素点的像素值作为第三行数据;
B2、将两个所述第二FIFO以及第三行数据的前三列像素值置于所述第二3*3窗口中;
B3、求取位于所述第二3*3窗口中的9个像素值的均值;
B4、将所述第二3*3窗口向后移动一位,使得两个所述第二FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回B2;
B5、判断所述光晕消除单元是否还有输入数据需要传送,若是,将两个所述第二FIFO的存储空间清空,将P=Q+1,返回B1,否则,结束均值滤波。
作为优化,所述暗通道图像数据中的每个像素点的像素值由所述3*3均值滤波模块输出的高8位组成。
作为优化,所述图像透射率由所述暗通道图像数据的每个像素点的透射率组成,具体表达式为:
t(x)={T1,T2,…,TM}
M为像素点的数量,Tx为第x个像素点的透射率,x∈[1,M],其中,T为像素点的透射率,ω为雾气保留因子,A为大气光强度,Idark为暗通道图像数据每个像素点的像素值,且像素点的透射率T满足如下条件:
作为优化,所述无雾图像数据具体表示为:
其中,J(x)为输出的原始无雾图像数据,t′(x)为前一帧大气光强度作用在当前帧暗通道图像数据的图像透射率,I(x)为输入的原始有雾图像数据,A′为前一帧所述暗通道图像数据的大气光强度。
作为优化,在所述无雾图像还原模块和HDMI显示模块之间还设置有图像增强模块,所述图像增强模块用于通过gamma校准增强所述原始无雾图像数据的对比度。
本发明还公开了一种基于改进暗通道算法的去雾实现系统,用于实现前述的一种基于改进暗通道算法的去雾实现方法,包括内窥镜图像采集模块以及安装在FPGA上沿信号传输方向依次设置的图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块和HDMI显示模块。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明通过内窥镜采集图像并传入FPGA内部进行去雾处理,对暗通道先验算法进行改进,首先,在求暗通道时选择了适合硬件的暗通道实现结构,将原始15×15的滤波模板替换为3×3的滤波模板,降低资源消耗;其次,将三个通道大气光合并,提高了处理速度;然后,求大气光强度时利用双端RAM设计了流水线架构求取前0.1%的像素点作为大气光强度而不是直接根据像素最大值来判断,去除了还原后的块状效应;最后,在求透射率时采用查找表的形式对透射率进行优化,提高了处理后图像的质量。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1是本发明的硬件实现流程图;
图2是本发明的暗通道计算数据处理流程图;
图3是本发明的FIFO控制流结构图;
图4是本发明的最小值滤波结构图;
图5是本发明的右移操作示意图;
图6是本发明的大气光照计算结构图;
图7是本发明的透射率图计算和优化流程图;
图8是本发明的浓雾和薄雾情况下处理前后的对比图,其中,(a)为有浓雾的情况下的图片,(b)为去雾后的图片。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
首先,在求暗通道时选择了适合硬件的暗通道实现结构,将原始15×15的滤波模板替换为3×3的滤波模板,降低资源消耗。其次,将三个通道大气光合并,提高了处理速度。然后,求大气光强度时利用双端RAM设计了流水线架构求取前0.1%的像素点作为大气光强度而不是直接根据像素最大值来判断,去除了还原后图像的块状效应。最后,在求透射率时采用查找表的形式对透射率进行优化,提高了处理后图像的质量,具体技术方案如实施例1:
本实施例1提供一种基于改进暗通道算法的去雾实现方法,通过内窥镜图像采集模块设置在FPGA上的图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块实现,其中,
所述内窥镜图像采集模块用于图像数据采集,具体包括用于采集原始有雾图像数据的内窥镜采集单元以及将所述内窥镜采集单元采集到的原始有雾图像数据的每两个连续字节进行拼接后形成的16位RGB565格式的图像数据进行存储的缓存单元,令16位RGB565格式的图像数据为第一图像数据;第一图像数据进入FPGA后,FPGA会将第一图像数据转换成24位。
内窥镜采集单元为内窥镜摄像头,缓存单元为设置在内窥镜摄像头内的寄存器。
首先通过I2C接口对内窥镜摄像头的寄存器进行配置,配置采集图像的使其输出为RGB565格式的图像数据,其中I2C是一种简单、双向、二线制总线标准。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。
通过对内窥镜的寄存器进行配置使其输出为RGB565格式的图像数据,由于RGB565显示每个像素为16位,但内窥镜每个PCLK输出的是8位,将前后2个字节拼接起来就是16位的RGB565数据,并将得到的数据存入DDR3(缓存单元)中。
所述图像暗通道计算模块用于根据原始有雾图像求暗通道图像,包括获取所述第一图像数据中的每个像素点的RGB最小值的像素最小值单元,所述像素最小值单元将所述第一图像数据变成第二图像数据(表示为Imin或图2中的Imin)以及对所述第二图像数据中的某一像素点周边区域进行RGB最小值滤波的3*3最小值滤波模块、对所述3*3最小值滤波模块的输出数据进行均值滤波的3*3均值滤波模块,最终所述3*3均值滤波模块输出暗通道图像数据,所述3*3最小值滤波模块将所述第二图像数据变成原始暗通道图像数据Idark1;
对于暗通道先验算法,求取暗通道是重要部分。因此,在视频去雾IP的设计中的第一步就是设计适合FPGA的暗通道求取方法。传统的设计方法是分别求取每个通道的15×15最小值滤波,然后再比较三个通道的最小值得出暗通道图像。该方法所用的三个15×15最小值滤波在硬件上会消耗大量的寄存器资源,因此本发明先求取三个通道的最小值,然后再用3×3最小值滤波替换15×15最小值滤波以达到节省资源的目的。其具体设计由四个小部分实现,即求取彩色图像RGB的最小值、3×3最小值滤波模块、求原始暗通道和最小值图均值模块以及3×3均值滤波模块。数据处理流程如图2所示。利用FPGA的并行计算能力求取彩色图像RGB最小值。将RGB三个通道的数据同时输入FPGA生成最小值图像Imin其具体公式如下:
Imin=min{R,G,B};
上式中Imin为三个通道中的最小值,即取R、G、B中最小的那个值,由RGB组成的像素点的像素值为24位(R,G,B各8位),当进行最小值取值后,Imin对应的像素点的像素值为8位。
具体的,R表示RGB输入信号的红色浓度偏移量;G表示RGB输入信号的绿色浓度偏移量;B表示RGB输入信号的蓝色浓度偏移量。
在得到最小值图像Imin后还需进行最小值滤波才可得到较为准确的暗通道图,最小值滤波是一种非线性平滑滤波,适用于消除椒盐噪声,广泛应用于图像处理的减噪过程,同时也能够用于对暗通道的求取。由于输入的像素值是串行的,本发明利用FIFO逻辑资源消耗小的优点,调用两个FIFO IP核实现3×3的滤波窗口,FIFO的控制流如图3所示。
所述3*3最小值滤波模块包括两个第一FIFO、三个寄存器和一个第一3*3窗口,所述3*3最小值滤波模块的工作过程如下:
A1、两个所述第一FIFO分别依次按序存储来自所述像素最小值单元的所述第二图像数据第Q行和第(Q+1)行的像素点的像素值,所述第一FIFO所存储的数量与所述第一图像数据的分辨率相匹配(一个FIFO存储多少个像素值是根据摄像头采集的图像分辨率大小,比如采集的图像大小是640x480,则一个FIFO存储一行的像素值,也就是640个像素),当两个第一FIFO依次按序存储满来自所述像素最小值单元的像素值后,所述像素最小值单元继续依次传来所述第二图像数据第(Q+2)的像素点的像素值作为第三行数据;
A2、将两个所述第一FIFO以及第三行数据的前三列像素值置于所述第一3*3窗口中;
A3、将两个所述第一FIFO的首列以及第三行数据的首列所存储的像素值进行对比,选取第一列最小的像素值存储在其中一个寄存器中;
A4、再将两个所述第一FIFO的第二列以及第三行数据的第二列所存储的像素值进行对比,选取第二列最小的像素值存储在另一个寄存器中,同时,已经存储在寄存器中的第一列最小的像素值存储至第三个寄存器中;这里将,同时,已经存储在寄存器中的第一列最小的像素值存储至第三个寄存器中是因为第一列最小的像素值跟第三列最小的像素值差了两个时钟周期,所以这里设置两个寄存器按照时钟周期依次存储第一列最小的像素值,可以使得第一列最小的像素值和第三列最小的像素值的时序上能够对齐。
A5、再将两个所述第一FIFO的第三列以及第三行数据的第三列所存储的像素值进行对比,选取第三列最小的像素值;
A6、将所述第三列最小的像素值、第一列最小的像素值、第二列所存储的像素值三者相互进行对比,选取三者中最小的像素值作为所述3*3最小值滤波模块输出的原始暗通道图像数据的第Q行的像素点的像素值;
A7、判断所述第一3*3窗口是否移动到最后边,若是,则跳转至A9,否则,跳转至A8;
A8、将所述第一3*3窗口向后移动一位,使得两个所述第一FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回A2;
A9、判断所述像素最小值单元是否还有像素值需要传送,若是,将两个所述第一FIFO的存储空间清空,将Q=Q+1,返回A1,否则,结束最小值滤波。
当第一个3*3窗口中的数据(三行中的0、1、2列)进行比较以后,3*3窗口向右移动,然后再进行比较(三行中的1、2、3列),最先比较的最左边的那一列(0列)数据将会一直存在,直到一行扫描结束后被下一行数据覆盖。
在上述过程中,当两个第一FIFO和第三行数据对应的是所述第二图像数据最下面三行像素值时,在滤波完成后,就结束最小值滤波。
用两个FIFO分别寄存前两行的像素值,当第三行数据到达时,每经过一个时钟周期,分别读取两个FIFO中第一个的数据并且与新输入的数据进行比较就可以输出一列的最小值,然后使用一个寄存器进行寄存,在完成3×3的窗口大小后输出窗口内的最小值。并且其中的两个最小值可以利用于下一个3×3的窗口,在下一个窗口内只求取一次最小值即可(例如,第一次的最小值选取是在0.1.2列中进行,第二次就是1.2.3列中进行,由于1.2已经比较过了,第二次就直接比较3列即可),增大了资源利用率。FIFO实现3×3最小值滤波的数据传输过程如图4所示。
对最小值图像Imin进行最小值滤波处理,其实现公式如下:
Idark(x,y)=min{min[f(x-1,y-1),f(x-1,y,f(x-1,y+1)],min[f(x,y-1),f(x,y),f(x,y+1)],
min[f(x+1,y-1),f(x+1,y),f(x+1,y+1)]}
=min{gs_0+gs_1+gs_2}
上式中f(x,y)为图像(x,y)点的灰度值,Idark(x,y)为滤波后(x,y)点处的最小值。经过滤波处理后就可以求取图像暗通道图像。
所述3*3最小值滤波模块与3*3均值滤波模块之间还包括光晕消除单元,所述光晕消除单元包括加法器和除法器,所述加法器用于将所述3*3最小值滤波模块输出的原始暗通道图像数据Idark1的像素点的像素值和像素最小值单元输出的最小值图像数据(即第二图像数据Imin)的像素值相加得到新的像素值,所述除法器用于将所述加法器输出的相加结果的二进制向右移一位,得到输入至所述3*3均值滤波模块的输入数据Idark2,所述光晕消除单元将所述原始暗通道图像数据Idark1变为第三图像数据Idark2。
最小值滤波后输出原始暗通道图像,在原暗通道先验去雾算法实现去雾时,物体的边缘处往往会出现严重的光晕现象。采用3×3的最小值滤波获取暗通道时,采用过大窗口处理物体边缘时,暗通道的值往往会取到较小的值,导致透射率图呈现块状结构,使最后恢复的无雾图像出现严重的光晕现象。由于产生光晕的原因是物体边缘暗通道值选取和实际暗通道值相差过大,将原暗通值和最小值取平均值来消除光晕现象,即:
再将最小值图按照下式进行运算:
其中,Imin为最小值图,Idark1为原暗通道图。由于式中存在除法运算,本文采用移位操作实现除法运算,减小FPGA逻辑资源消耗,即:
其中,>>为右移操作,如图5所示,在FPGA中右移一位等价于除以2。
需要说明的是,Idark1+Imin,当第一3*3窗口位于如图4所示时,Idark1就是该窗口中9个Imin最小值,Imin为位于该窗口的中心点的像素值,即Line1的第二列(地址为1)的像素值。
输入到均值滤波的数据即为Idark2,均值滤波也采用上述FIFO结构实现。本发明对均值运算优化处理。
具体的,所述3*3均值滤波模块包括两个串行设置的第二FIFO以及一个第二3*3窗口,所述3*3均值滤波模块的工作过程如下:
B1、两个所述第一FIFO分别依次按序存储来自所述光晕消除单元的所述第三图像数据第P行和第(P+1)行的像素点的像素值,所述第二FIFO所存储的数量与所述第三图像数据的分辨率相匹配,当两个第二FIFO依次按序存储满来自所述光晕消除单元的像素值后,所述像素最小值单元继续依次传来所述第三图像数据第(P+2)的像素点的像素值作为第三行数据;
B2、将两个所述第二FIFO以及第三行数据的前三列像素值置于所述第二3*3窗口中;
B3、求取位于所述第二3*3窗口中的9个像素值的均值;
B4、将所述第二3*3窗口向后移动一位,使得两个所述第二FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回B2;
B5、判断所述光晕消除单元是否还有输入数据需要传送,若是,将两个所述第二FIFO的存储空间清空,将P=Q+1,返回B1,否则,结束均值滤波。
均值滤波需要先求取3×3窗口值的和sum,然后除以窗口的像素点个数,即:
其中,datam为输出的平均值,根据FPGA的运算特点可以将式中的除法转化成乘法和移位操作,转换后的公式如下:
输出数据datam的高8位即为所求暗通道值,即所述暗通道图像数据Idark中的每个像素点的像素值由所述3*3均值滤波模块输出的高8位组成。
通过内窥镜采集图像并传入FPGA内部进行去雾处理,对暗通道先验算法进行改进。首先,在求暗通道时选择了适合硬件的暗通道实现结构,将原始15×15的滤波模板替换为3×3的滤波模板,降低资源消耗。其次,将三个通道大气光合并,提高了处理速度。然后,求大气光强度时利用双端RAM设计了流水线架构求取前0.1%的像素点作为大气光强度,而不是直接根据像素最大值来判断,去除了还原后的块状效应。最后,在求透射率时采用查找表的形式对透射率进行优化,提高了处理后图像的质量。
所述大气光强度计算模块用于根据所述暗通道图像数据的前y%的像素值作为大气光强度;
传统的设计方法是根据暗通道图像中的最大值来作为大气光强度,这时的大气光强度无法代表整张图片的大气光情况,从而导致还原出来的无雾图像出现块状效应。本发明的设计方法是提取前0.1%的像素值大小作为大气光强度,通过整体像素分布情况来判断大气光强度,这样还原出来的图像不会出现块状效应。具体做法如下,利用FPGA的并行处理能力,将RGB彩色图像的三通道同时并行输入,每个通道按照流水线的形式输入,将输入的像素值作为RAM的地址值,每次输入将该像素值对应的地址中存储的数据加一,完成一帧图像的传输后就可得到当前帧大气光照强度估计值,极大的减小了资源消耗量。通过RAM实现的大气光照计算示意图如图6所示。在利用FPGA实现时,因为视频流传输中,前一帧图像和后一帧图像像素差别不大,可以将前一帧的大气光照强度值作为当前帧的大气光照强度,以实现近似流水线的处理过程。每一帧的传输之间时间相差很小,能够满足内窥镜的实时传输要求。
大气光照强度应该选取的是天空的光照强度,本发明选择暗通道中最亮的前0.1%的像素来作为大气光照强度的估计。因为有雾的天空中RGB三个通道的值基本相同,所以可以假设RGB三个通道中的大气光照强度是相同的,即:
Ar=Ag=Ab=A
直接使用FPGA中的双端口RAM IP核,将输入像素点的像素值作为RAM的地址值,每个RAM地址分别记录不同像素值的个数,完成一帧数据的读取后便可以直接得到前0.1%的像素点,即:
M0.1%=Mmax+Mmax-1+Mmax-2+…
其中,M0.1%为总像素个数的前0.1%,Mmax为像素值为max的个数。从RAM地址值最大的数据开始累加,直到等于总像素个数的千分之一,记录此时的地址值即为图像的大气光强度A。
所述图像透射率计算优化模块用于根据所述大气光强度和暗通道数据计算图像透射率;
所述图像透射率由所述暗通道图像数据Idark的每个像素点的透射率组成,具体表达式为:
t(x)={T1,T2,…,TM}
M为像素点的数量,Tx为第x个像素点的透射率,x∈[1,M]。
因为大气光强度A为不定值,所以不能采用移位的方法对该式进行优化,本设计中采用的是等式两边同时乘以A,即:
A*T=ω*Idark
即T为像素点的透射率,ω为雾气保留因子,A为大气光强度,Idark为暗通道图像数据每个像素点的像素值;针对图像中的不同距离的场景,自适应选择不同的雾气保留因子ω。较近的场景下,图像的颜色会显得更加的鲜艳,而在较远的场景下,图像比较模糊。通过调节雾气保留因子,以达到空气透视的效果,更好的满足视觉特性。根据得到的大气光强度和暗通道图像求得图像的透射率。针对图像中的不同距离的场景,自适应选择不同的雾气保留因子。较近的场景下,图像的颜色会显得更加的鲜艳。而在较远的场景下,图像比较模糊。通过调节雾气保留因子,以达到空气透视的效果,更好的满足视觉特性。对于浓雾区域,透射率接近零,还原去雾图像会导致恢复场景辐射受噪声影响。为了解决该问题将透射率设置一个下限值,本发明设置为0.1。
然后结合下式求得透射率的修正值,实现过程如图7所示。其中,暗通道图像作为输入数据,输出的数据为透射率图像,即像素点的透射率T满足如下条件:
对于浓雾区域,透射率接近零,还原去雾图像会导致恢复场景辐射受噪声影响。为了解决该问题将透射率设置一个下限值tmin,本发明设置为0.1。
所述无雾图像还原模块用于根据所述原始有雾图像数据、大气光强度和透射率还原出无雾图像数据。
根据得到的大气光强度A和透射率求T,求得原始无雾的图像,其变换公式如下:
I(x)=J(x)t′(x)+A′(1-t′(x))
根据前面求得的大气光照强度估计值和透射率,并行输入彩色图像的三通道,结合下式还原出无雾的图像:
其中,J(x)为输出的原始无雾图像数据,t′(x)为前一帧大气光强度作用在当前帧暗通道图像数据的图像透射率,I(x)为输入的原始有雾图像数据,A′为前一帧所述暗通道图像数据的大气光强度。
该模型中I(x)已知,可以通过求得t′(x)和A′,最终得到无雾的原始图像J(x)。通过FPGA的HDMI接口,将增强过后的图像显示到PC端。
这一步采用的是流水线处理,将前一帧的大气光照强度估计值作为当前帧的值进行处理。最后还原的无雾图像存在比较图像整体偏暗的情况,需要进行图像增强操作,此处采用gamma校准增强图像对比度。计算公式如下:
其中,Iin和Iout分别为输入和输出图像数据,γ为变换系数,当γ<1时,亮部细节被提升,暗部细节被压缩。
HDMI显示模块,所述HDMI显示模块用于将所述无雾图像数据显示呈可视化图像,即输出无雾图像。根据得到的大气光强度和透射率求,求得原始无雾的图像,并通过FPGA的HDMI接口,将增强过后的图像显示到PC端。
将上述得到的无雾图像,通过HDMI发送模块发送到PC端便于检查是否对有雾图像进行快速实时的还原。
图8是将本发明运用在医疗内窥镜场景时的应用,可以看到在内窥镜准确的显示了去雾后的结果,且均为实时显示。
实施例2还公开了一种基于改进暗通道算法的去雾实现系统,用于实现实施例1的一种基于改进暗通道算法的去雾实现方法,包括安装在FPGA上沿信号传输方向依次设置的内窥镜图像采集模块、图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块和HDMI显示模块。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于改进暗通道算法的去雾实现方法,其特征在于,通过内窥镜图像采集模块以及设置在FPGA上的图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块实现,其中,
所述内窥镜图像采集模块包括用于采集原始有雾图像数据的内窥镜采集单元以及将所述内窥镜采集单元采集到的原始有雾图像数据的每两个连续字节进行拼接后形成的16位RGB565格式的图像数据进行存储的缓存单元,令16位RGB565格式的图像数据为第一图像数据;
所述图像暗通道计算模块包括获取所述第一图像数据中的每个像素点的RGB最小值的像素最小值单元,所述像素最小值单元将所述第一图像数据变成第二图像数据以及对所述第二图像数据中的某一像素点周边区域进行最小值滤波的3*3最小值滤波模块、对所述3*3最小值滤波模块的输出数据进行均值滤波的3*3均值滤波模块,最终所述3*3均值滤波模块输出暗通道图像数据,所述3*3最小值滤波模块将所述第二图像数据变成原始暗通道图像数据;
所述大气光强度计算模块用于根据所述暗通道图像数据的前y%的像素值作为大气光强度;
所述图像透射率计算优化模块用于根据所述大气光强度和暗通道数据计算图像透射率;
所述无雾图像还原模块用于根据所述原始有雾图像数据、大气光强度和透射率还原出无雾图像数据。
2.根据权利要求1所述的一种基于改进暗通道算法的去雾实现系统,其特征在于,还包括HDMI显示模块,所述HDMI显示模块用于将所述无雾图像数据显示呈可视化图像。
3.根据权利要求1所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述3*3最小值滤波模块包括两个第一FIFO、三个寄存器和一个第一3*3窗口,所述3*3最小值滤波模块的工作过程如下:
A1、两个所述第一FIFO分别依次按序存储来自所述像素最小值单元的所述第二图像数据第Q行和第(Q+1)行的像素点的像素值,所述第一FIFO所存储的数量与所述第一图像数据的分辨率相匹配,当两个第一FIFO依次按序存储满来自所述像素最小值单元的像素值后,所述像素最小值单元继续依次传来所述第二图像数据第(Q+2)的像素点的像素值作为第三行数据;
A2、将两个所述第一FIFO以及第三行数据的前三列像素值置于所述第一3*3窗口中;
A3、将两个所述第一FIFO的首列以及第三行数据的首列所存储的像素值进行对比,选取第一列最小的像素值存储在其中一个寄存器中;
A4、再将两个所述第一FIFO的第二列以及第三行数据的第二列所存储的像素值进行对比,选取第二列最小的像素值存储在另一个寄存器中,同时,已经存储在寄存器中的第一列最小的像素值存储至第三个寄存器中;
A5、再将两个所述第一FIFO的第三列以及第三行数据的第三列所存储的像素值进行对比,选取第三列最小的像素值;
A6、将所述第三列最小的像素值、第一列最小的像素值、第二列所存储的像素值三者相互进行对比,选取三者中最小的像素值作为所述3*3最小值滤波模块输出的原始暗通道图像数据的第Q行的像素点的像素值;
A7、判断所述第一3*3窗口是否移动到最后边,若是,则跳转至A9,否则,跳转至A8;
A8、将所述第一3*3窗口向后移动一位,使得两个所述第一FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回A2;
A9、判断所述像素最小值单元是否还有像素值需要传送,若是,将两个所述第一FIFO的存储空间清空,将Q=Q+1,返回A1,否则,结束最小值滤波。
4.根据权利要求1所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述3*3最小值滤波模块与3*3均值滤波模块之间还包括光晕消除单元,所述光晕消除单元包括加法器和除法器,所述加法器用于将所述3*3最小值滤波模块输出的原始暗通道图像数据的像素点的像素值和像素最小值单元输出的第二图像数据的像素值相加得到新的像素值,所述除法器用于将所述加法器输出的相加结果的二进制向右移一位,得到输入至所述3*3均值滤波模块的输入数据,所述光晕消除单元将所述原始暗通道图像数据变为第三图像数据。
5.根据权利要求4所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述3*3均值滤波模块包括两个串行设置的第二FIFO以及一个第二3*3窗口,所述3*3均值滤波模块的工作过程如下:
B1、两个所述第一FIFO分别依次按序存储来自所述光晕消除单元的所述第三图像数据第P行和第(P+1)行的像素点的像素值,所述第二FIFO所存储的数量与所述第三图像数据的分辨率相匹配,当两个第二FIFO依次按序存储满来自所述光晕消除单元的像素值后,所述像素最小值单元继续依次传来所述第三图像数据第(P+2)的像素点的像素值作为第三行数据;
B2、将两个所述第二FIFO以及第三行数据的前三列像素值置于所述第二3*3窗口中;
B3、求取位于所述第二3*3窗口中的9个像素值的均值;
B4、将所述第二3*3窗口向后移动一位,使得两个所述第二FIFO以及第三行数据的原本的第二列分别作为新的首列,且原本的列数依次顺延形成新的列数,然后返回B2;
B5、判断所述光晕消除单元是否还有输入数据需要传送,若是,将两个所述第二FIFO的存储空间清空,将P=Q+1,返回B1,否则,结束均值滤波。
6.根据权利要求5所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述暗通道图像数据中的每个像素点的像素值由所述3*3均值滤波模块输出的8位数据组成。
7.根据权利要求6所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述图像透射率由所述暗通道图像数据的每个像素点的透射率组成,具体表达式为:
t(x)={T1,T2,···,TM}
M为像素点的数量,Tx为第x个像素点的透射率,x∈[1,M],其中,T为像素点的透射率,ω为雾气保留因子,A为大气光强度,Idark为暗通道图像数据每个像素点的像素值,且像素点的透射率T满足如下条件:
8.根据权利要求9所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,所述无雾图像数据具体表示为:
其中,J(x)为输出的原始无雾图像数据,t′(x)为前一帧大气光强度作用在当前帧暗通道图像数据的图像透射率,I(x)为输入的原始有雾图像数据,A′为前一帧所述暗通道图像数据的大气光强度。
9.根据权利要求8所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,在所述无雾图像还原模块和HDMI显示模块之间还设置有图像增强模块,所述图像增强模块用于通过gamma校准增强所述原始无雾图像数据的对比度。
10.一种基于改进暗通道算法的去雾实现系统,用于实现权利要求1-9任一所述的一种基于改进暗通道算法的去雾实现方法,其特征在于,包括内窥镜图像采集模块以及安装在FPGA上沿信号传输方向依次设置的图像暗通道计算模块、大气光强度计算模块、图像透射率计算优化模块、无雾图像还原模块和HDMI显示模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311843875.3A CN117726547A (zh) | 2023-12-28 | 2023-12-28 | 基于改进暗通道算法的去雾实现方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311843875.3A CN117726547A (zh) | 2023-12-28 | 2023-12-28 | 基于改进暗通道算法的去雾实现方法、系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117726547A true CN117726547A (zh) | 2024-03-19 |
Family
ID=90206940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311843875.3A Pending CN117726547A (zh) | 2023-12-28 | 2023-12-28 | 基于改进暗通道算法的去雾实现方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117726547A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118037723A (zh) * | 2024-04-11 | 2024-05-14 | 泉州装备制造研究所 | 一种直拉法晶体生长图片的处理方法、系统及存储介质 |
-
2023
- 2023-12-28 CN CN202311843875.3A patent/CN117726547A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118037723A (zh) * | 2024-04-11 | 2024-05-14 | 泉州装备制造研究所 | 一种直拉法晶体生长图片的处理方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111402146B (zh) | 图像处理方法以及图像处理装置 | |
KR102480600B1 (ko) | 이미지 처리 장치의 저조도 화질 개선 방법 및 상기 방법을 수행하는 이미지 처리 시스템의 동작 방법 | |
CN117726547A (zh) | 基于改进暗通道算法的去雾实现方法、系统 | |
CN111079764B (zh) | 一种基于深度学习的低照度车牌图像识别方法及装置 | |
CN109688382B (zh) | 一种水下机器人的水下图像处理系统 | |
CN108765358A (zh) | 可见光和红外光的双光融合方法以及插件式热像仪系统 | |
CN102063704B (zh) | 一种机载视景增强方法及其装置 | |
WO2019228456A1 (zh) | 一种图像处理方法、装置、设备及机器可读存储介质 | |
CN114338958B (zh) | 一种图像处理的方法及相关设备 | |
CN111294520B (zh) | 一种基于fpga的实时幸运成像方法及系统 | |
WO2023226218A1 (zh) | 轴对称光学成像并行仿真方法及装置 | |
CN108093175A (zh) | 一种实时高清视频自适应去雾方法及装置 | |
CN107862672A (zh) | 图像去雾的方法及装置 | |
CN110891138A (zh) | 黑光全彩实现方法和黑光全彩摄像机 | |
CN115550570A (zh) | 图像处理方法与电子设备 | |
CN115942128A (zh) | 一种基于异构平台的isp系统设计与实现方法 | |
CN112767278B (zh) | 基于非均匀大气光先验的图像去雾方法及相关设备 | |
TWM458747U (zh) | 影像處理模組 | |
CN110895790B (zh) | 基于后验降质信息估计的场景图像超分辨方法 | |
CN107454328A (zh) | 图像处理方法、装置、计算机可读存储介质和计算机设备 | |
CN116912127A (zh) | 基于逆isp的raw域雾气数据仿真方法 | |
WO2020155072A1 (zh) | 一种混合图层处理方法及装置 | |
CN115589455A (zh) | 一种基于fpga+arm的夜间视频图像增强系统 | |
CN106023101B (zh) | 一种基于视觉保真的卫星遥感图像处理方法 | |
CN115937045A (zh) | 一种迭代式色阶重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |