CN113034391B - 一种多模式融合水下图像增强方法、系统及应用 - Google Patents
一种多模式融合水下图像增强方法、系统及应用 Download PDFInfo
- Publication number
- CN113034391B CN113034391B CN202110298574.1A CN202110298574A CN113034391B CN 113034391 B CN113034391 B CN 113034391B CN 202110298574 A CN202110298574 A CN 202110298574A CN 113034391 B CN113034391 B CN 113034391B
- Authority
- CN
- China
- Prior art keywords
- module
- image
- data
- convolution
- calculation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 230000004927 fusion Effects 0.000 title claims abstract description 42
- 238000013461 design Methods 0.000 claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 38
- 238000013528 artificial neural network Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000003384 imaging method Methods 0.000 claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 96
- 230000006870 function Effects 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 53
- 238000009825 accumulation Methods 0.000 claims description 46
- 238000010586 diagram Methods 0.000 claims description 30
- 230000009466 transformation Effects 0.000 claims description 24
- 238000000605 extraction Methods 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 16
- 238000004088 simulation Methods 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 11
- 230000003139 buffering effect Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000012360 testing method Methods 0.000 claims description 9
- 230000001965 increasing effect Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 230000015556 catabolic process Effects 0.000 claims description 3
- 238000006731 degradation reaction Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 241000196171 Hydrodictyon reticulatum Species 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 10
- 238000004458 analytical method Methods 0.000 description 5
- 239000000306 component Substances 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 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
- 230000024121 nodulation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration using histogram techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/92—Dynamic range modification of images or parts thereof based on global image properties
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- 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/30—Assessment of water resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Processing (AREA)
Abstract
本发明属于水下成像技术领域,公开了一种多模式融合水下图像增强方法、系统及应用,所述多模式融合水下图像增强方法输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断;进行加权融合得到处理结果。针对神经网络部分运算复杂的问题,本发明采用分组卷积的思想来对网络运算结构做出简化,降低了时间复杂度,使运行时间缩短了2.7倍。针对于传统FPGA开发方法在算法硬化上的不便,本发明采用基于模型的设计思想来进行设计架构的硬件实现,使得软件设计与硬件设计相统一,大大简化了开发流程。
Description
技术领域
本发明属于水下成像技术领域,尤其涉及一种多模式融合水下图像增强方法、系统及应用。
背景技术
目前:水下成像是水下光学和海洋光学学科的重要研究方向,是人类认识海洋、开发利用海洋和保护海洋的重要手段和工具,具有探测目标直观、成像分辨率高、信息含量高等优点。该技术已经被广泛的应用于水中目标侦察/探测/识别、水下考古、海底资源勘探、生物研究、水下工程安装/检修、水下环境监测、救生打捞等领域。水下主动照明成像主要为了解决水下环境对成像光束的高损耗问题,一般使用532nm左右波长的激光对成像空间进行人工主动照明,在高损耗的情况下保证成像回波信号的绝对能量。主动照明在增强成像光束能量的同时,也会产生大量的后向散射光,影响成像质量。因此,一般水下照明系统采用成像与照明分离布局,以减少后向散射对成像的影响。随着水下成像需求的日益增长,如何高效地将实时水下图像增强算法部署在移动设备上称为了研究热点。传统的算法有暗通道先验,基于颜色通道的直方图均衡等,这些算法没有充分考虑水下成像的物理过程很或没有对这种差异进行足够的处理来直接执行传统算法,可以说没有针对水下环境做出针对性改进。因此,传统算法对不同场景的适用性弱,局限性强。
通过上述分析,现有技术存在的问题及缺陷为:传统算法对不同场景的适用性弱,局限性强。
解决以上问题及缺陷的难度为:
通过继续挖掘传统算法来提升处理质量较为困难,需要对大量的水下场景进行针对性的改进。
发明内容
针对现有技术存在的问题,本发明提供了一种多模式融合水下图像增强方法、系统及应用。
本发明是这样实现的,一种多模式融合水下图像增强方法,所述多模式融合水下图像增强方法包括:
输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;
与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断;
进行加权融合得到处理结果。
本发明采用基于深度学习的多输入融合水下图像增强架构,利用神经网络的泛化拟合能力,大大增强了在不同水下环境中的适用性,效果优于传统算法。本架构由预处理部分和神经网络部分组成,预处理部分由白平衡,边缘增强,去噪和直方图均衡模块组成,分别用于针对性的改善水下图像的色偏,边缘模糊,噪声大,对比度低的问题。神经网络部分依据预处理部分的处理结果来分别进行权值推断和特征图推断,最后进行加权融合得到最终处理结果。
进一步,所述多模式融合水下图像增强方法的白平衡方法包括:
第一步:令其中Raver,Gaver,Baver分别表示红绿蓝通道均值;
第二步:分别计算各通道的增益:
第三步:根据Von Kries对角模型,对于图像中的每个像素R、G、B,计算其结果值:
Rnew=R*Kr;
Gnew=G*Kg;
Bnew=B*Kb;
边缘增强,Sobel算子是一个离散的一阶差分算子,计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用算子,产生该点对应的梯度矢量或是其法矢量。算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,分别得出横向及纵向的亮度差分近似值;如果以I代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:
图像中的每一个像素的横向及纵向梯度近似值可用如下的公式结合,计算梯度幅度:
对梯度计算公式进行了近似处理以便于进行硬件实现,近似公式如下:
G=|Gx|+|Gy|;
去噪,采用的是维纳滤波,维纳滤波也称最小均方误差滤波,能处理被退化函数退化和噪声污染的图像;建立在图像和噪声都是随机变量的基础之上,目标是找到未污染图像f(x,y)的一个估计,使估计值与退化图像的均方误差最小;通过估计图像中每个像素的局部均值和方差实现图像的自适应去噪:
局部均值为:
局部方差为:
式中S表示的是图像中以目标像素为几何中心的邻域,在得到局部均值和方差后进行维纳滤波估计:
式中的δ2为噪声方差;
直方图均衡,对在图像中像素个数多的灰度值(进行展宽,而对像素个数少的灰度值进行归并;图像的灰度直方图是一个一维的离散函数写成:
h(k)=nk,k=0,1,2,......L-1;
定义归一化的直方图为灰度级出现的相对频率:
式中N表示图像内的像素总数,nk是图像中灰度级为k的像素的个数,若想使直方图内灰度级为均匀分布,则对于灰度级离散的数字图像,用频率代替概率,变换函数的离散形式表示为:
对图像全局应用上面的变换函数即完成图像的直方图均衡化,增强对比度。
进一步,所述多模式融合水下图像增强方法去噪选用维纳滤波算法来实现对图像的降噪处理,在对每一个像素点进行处理的时候需要计算邻域内的均值和方差;
维纳滤波的计算过程是首先提取像素邻域,然后依次计算邻域内的均值和方差,最后得出该像素点处理后的结果值;
首先是邻域提取模块,具体的邻域选定范围是以目标像素点为几何中心的5*5区域,邻域提取子模块需要使用双端口RAM来进行图像行数据缓冲,使用寄存器进行邻域数据缓冲,行缓冲数据量为4行图像数据,当第五行数据输入的同时从RAM内读取前四行图像数据,并将同时输出的5行数据存入寄存器进行邻域缓冲,通过上述过程即可实现5*5大小的模板对图像全局的遍历;
领域提取模块将目标像素点周围的5*5区域共25个像素点的数据传递给均值方差计算模块后分为两路进行同时进行计算,一路用于计算邻域均值,另一路经过单时钟周期级别的延迟等待后,结合邻域均值计算结果来进行邻域方差的计算,同时对原像素点数据进行存储;
均值方差模块将计算得到的每个点的邻域均值,邻域方差与存储下来的原像素点的值输出至像素点估计模块,像素点估计模块依据公式对输入的三个数值进行计算,得出最后结果;
边缘增强选用Sobel算子对图像进行边缘增强,在边缘增强的过程中图像的每一个像素点均需与Sobel算子模板进行卷积,卷积运算的实质是对邻域像素进行加权求和;边缘增强的实现同样需要设计邻域提取模块来输出以目标像素点为几何中心的3*3尺寸区域;边缘增强模块由两个子模块构成,分别是邻域提取子模块和卷积计算子模块;
邻域提取子模块将提取出的3*3尺寸共9个像素点输出至卷积计算子模块,卷积计算子模块对每个像素点进行加权求和,加权求和的过程包含有乘法和加法运算;采用移位相加的方式代替DSP来完成乘法运算;
直方图均衡,选用的是对比度受限的自适应直方图均衡算法,分为三个过程,首先是对图像进行直方图统计,随后根据统计结果求取像素点变换函数,最后根据变换函数对每个像素点进行变换;直方图均衡模块包含有直方图统计子模块,直方图累计和计算子模块和像素映射变换子模块;
在直方图统计模块内,以28*28为分块尺寸将图像划分为16块,共用16个双端口RAM来对图像进行直方图统计;直方图累计和计算子模块对直方图统计子模块中的每一个RAM进行同时读取,累加与存储,同样设置了16个双口RAM用于存储累加结果数据;
在像素映射变换子模块中,以图像像素值为地址,依据像素所处的图像不同区域从直方图累积和计算子模块中不同的RAM读出数据并进行归一化计算。值得注意的是依据像素点在图像中所处位置的不同,每个像素点的结果须由临近图像块的映射函数插值得到,即同时从多个RAM同时读出数据进行插值计算,最终随着当前图像遍历的同时得出结果;
白平衡模块,选用的是基于红色通道补偿的白平衡算法;首先对图像内部只有红色通道值偏低的像素点进行红色分量补偿;在完成红色通道补偿后对整张图象应用灰度世界算法进行颜色校正得到结果图像。
在补偿与均值计算子模块中,输入的红色通道分量按照公式进行补偿并进行结果存储;蓝绿色通道数据不变仅进行存储,当图像遍历完成时即可计算得到三通道各自的均值;
颜色校正子模块对输入的三通道均值进行均值处理得到灰度值并依据下式确定增益值来对输入图像的三个通道分别进行校正;
当图像遍历完成之后,即可得到经过红色补偿和颜色校正的最终结果。
进一步,所述多模式融合水下图像增强方法的神经网络模块选择是设计一个32输入32输出的通用计算模块,同时进行1024个并行的乘法运算。
进一步,所述神经网络模块的设计分为片内和片外两个部分,片外模块的功能是模拟DDR存储过程来提供数据索引,Simulink内含有提供了AXI总线模块,用于与模拟与DDR之间的控制与数据通道,片内模块的功能则为实现神经网络;
片内模块的工作流程包含,模块接收到使能信号以及特征图尺寸信息后开始进行运算,通过输出索引值的方式从片外模块读取特征图数据以及卷积核权重参数,经卷积运算后输出结果特征图以及使能信号,将结果特征图写入片外模块并以图像块的形式进行存储,同时将整幅特征图展开成列数据;
片内模块由逻辑控制模块、乘法器阵列模块、阵列累加模块、功能函数模块和缓存模块构成;每一个逻辑控制子模块控制着一层网络的数据读取过程,总共20个逻辑控制子模块,分别对应网络中的20个卷积层;当conv_start信号拉高后,控制逻辑子模块开始工作,所有逻辑控制子模块统一连接至multiport switch器件;每一个逻辑控制模块所对应的卷积过程完成之后会输出Done信号,此时计数器的值加一,根据计数器的输出值来判断哪个逻辑控制模块的控制信号是有效的,同时间段内只有一个逻辑控制模块的控制信号有效;逻辑控制模块的输入输出通过buscreator器件集合成总线形式进行数据传输;
逻辑控制模块,输入为conv_start使能信号、特征图像素个数以及特征图宽度,输出索引号用来从外存中读取所需的数据,数据中包含有特征图数据,卷积核权重参数、偏差;逻辑控制模块同时还通过传递卷积核尺寸,卷积核遍历信号,输入通道遍历信号,输出通道遍历信号和数据有效信号等信息的方式来对阵列累加模块进行控制;
逻辑控制模块对卷积核参数进行复用,而对特征图数据进行循环调用,根据输入的特征图宽度确定索引像素的位置信息,同时对数据进行错位读取,实现上节中的卷积方式;在每个时钟周期内,读入32个卷积权重参数与32个输入通道的输入特征图数据;遍历完成一遍特征图数据称为一个周期,当一个周期结束后即读入下一个卷积权重,同时对输入特征图数据循环读入,直至完成对卷积核权重参数遍历。
进一步,所述多模式融合水下图像增强方法的乘法阵列模块的设计,乘法阵列模块是整体结构中最主要的计算单元,输入为32个特征图像与相对应的32个卷积核权重参数,输出为32个卷积结果图像;在模块内部,整体运算过程按输入通道数量和卷积核数量进行同时展开,即同时计算32个输入通道分别与32个卷积核进行卷积计算的结果,具体使用的是SimulinHDL Coder库所提供的multiply_accumulate器件,该器件直接调用DSP资源来进行向量乘法;每个multiply_accumulate器件用于实现单个卷积核同时与32个输入通道进行卷积的运算,乘法阵列中包含有32个multiply_accumulate器件实现并行计算;
同时,逻辑控制单元的控制信号经乘法阵列模块直接输出至下一模块,根据模型的延迟平衡,使得控制信号与输出结果数据自动对齐;
阵列累加模块对乘法阵列模块输出至本模块的计算结果进行累加操作来完成完整的卷积计算过程,该模块内部包含32个累加模块,并行计算32个输出通道的最终卷积结果;阵列累加模块通过HDL Coder库提供的FIFO器件对数据流进行行缓存,当下一行数据进入模块时,对FIFO进行读操作和累加操作并将结果重新写入FIFO中,当累加次数达到卷积核尺寸时,停止累加并输出计算结果;单个累加模块输出单个输出通道的解算结果,根据逻辑控制单元输出的控制信号,将解算结果错位累加,数据对齐,如果当输入通道值大于32时,即一次并行计算无法完全解算出结果,将FIFO累加结果存入下一个FIFO中,通过两个FIFO的行缓存操作,实现对输入通道的遍历累加。
进一步,所述多模式融合水下图像增强方法的功能函数模块设计,ShuffleWaterNet中所使用的功能函数有ReLU函数和Sigmoid函数两种,ReLU函数的作用是线性整流,增强网络的非线性表达能力;ReLU函数的计算主要为正数值检测,其实现通过调用Simulink中的Switch器件完成,将待判断结果也就是卷积输出的结果接入input1,将常数接入0input2,设定判断条件为大于等于0,即可实现ReLU功能;
当进行级数展开至三次幂时表达式如下:
缓存模块设计,首先将特征图数据和卷积核权重参数存入DDR中,计算开始时从DDR中读出对应的特征图数据块以及卷积核权重参数并在板内以块缓存的形式存储;根据索引号,读入对应数据至列缓存,再传输至单元缓存,再输出至乘法阵列模块进行乘法计算,乘法结果经累加阵列累加后以数据块的形式输出;
特征图像数据为三维数组,将特征图数据在长宽二维平面重组成为一列数据,行号为对应的输入通道信息;单通道特征图按行顺序依次进入神经网络模块;对32路输入特征图进行并行处理,同时读取32个输入通道的数据流进行卷积计算;
卷积权重参数为四维数组,单位时间内读取在32个输入通道维度32个输出通道,取卷积窗口的单个像素,即在单位时间内同时读取了1024个卷积权重参数,需要将卷积核权重参数变形成适合存储读取的形式;按32个输出通道分块,单次解算每块中读取一列数据;
片外模块的作用是模拟DDR的存储功能,根据输入的索引值,可以返回相应的输出数据,初始特征图数据通过Matlab软件被转化为适合于FPGA存储的块格式,并使用constant器件来进行存储;在模块内,使用Selector器件对constant器件内存储的数值进行选择输出;在模块的搭建过程中,片外模块既作为模拟DDR的外部存储,也作为算法模型测试时的Testbench。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;
与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断;
进行加权融合得到处理结果。
本发明的另一目的在于提供一种实施所述多模式融合水下图像增强方法的多模式融合水下图像增强系统,所述多模式融合水下图像增强系统包括:
预处理模块,用于输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理。
神经网络模块,用于与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断,进行加权融合得到处理结果。
本发明的另一目的在于提供一种水下成像控制终端,所述水下成像控制终端用于实现所述的多模式融合水下图像增强方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:针对神经网络部分运算复杂的问题,本发明采用分组卷积的思想来对网络运算结构做出简化,降低了时间复杂度,使运行时间缩短了2.7倍。针对于传统FPGA开发方法在算法硬化上的不便,本发明采用基于模型的设计思想来进行设计架构的硬件实现,使得软件设计与硬件设计相统一,大大简化了开发流程。
附图说明
图1是本发明实施例提供的整体处理架构框图。
图2是本发明实施例提供的CNN部分架构框图。
图3是本发明实施例提供的通道之间信息不流通示意图。
图4是本发明实施例提供的每个通道产生的特征图进行均分示意图。
图5是本发明实施例提供的通道之间信息重组示意图。
图6是本发明实施例提供的邻域提取模块示意图。
图7是本发明实施例提供的白平衡模块
图8是本发明实施例提供的片内模块与片外模块的连接关系
图9是本发明实施例提供的片内模块结构图。
图10是本发明实施例提供的输入特征图数据示意图。
图11是本发明实施例提供的对卷积核权重参数遍历示意图。
图12是本发明实施例提供的Switch器件硬件电路示意图。
图13是本发明实施例提供的缓存模块示意图。
图14是本发明实施例提供的控制逻辑单元对外部特征图DDR模拟模块调取特征图数据的波形图。
图15是本发明实施例提供的卷积核权重参数调取波形示意图。
图16是本发明实施例提供的实验结果示意图;
图中:(a)对比图;(b)实验图。
图17是本发明实施例提供的对图像的二维尺寸进行展开存储示意图。
图18本发明实施例提供的当卷积核数量大于32时的存储方式示意图。
图19是本发明实施例提供的多模式融合水下图像增强方法流程图。
图20是本发明实施例提供的多模式融合水下图像增强系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种多模式融合水下图像增强方法、系统及应用,下面结合附图对本发明作详细的描述。
如图19所示,本发明提供的多模式融合水下图像增强方法包括以下步骤:
S101:输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;
S102:与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断;
S103:进行加权融合得到处理结果。
本发明提供的多模式融合水下图像增强方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的多模式融合水下图像增强方法仅仅是一个具体实施例而已。
如图20所示,本发明提供的多模式融合水下图像增强系统包括:
预处理模块1,用于输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理。
神经网络模块2,用于与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断,进行加权融合得到处理结果。
下面结合附图对本发明的技术方案作进一步的描述。
本发明基于FPGA平台设计了一个架构利用MBD进行基于模型的设计,利用simulink软件平台是实现;神经网络:设计并训练得到轻量网络(新提出专用于这个场景的网络);MBD:不同于传统的FPGA开发方式;多模式融合:自行设计预处理架构。
如图1所示,本发明的整体处理架构框。
如图2所示,CNN部分架构框。
本发明的预处理部分算法:
(1)白平衡
白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题,本发明的白平衡算法是基于灰度世界算法的。灰度世界算法(GrayWorld)是以灰度世界假设为基础的,该假设认为对于一幅有着大量色彩变化的图像R、G、B三个分量的平均值趋于同一个灰度K。
第一步:令其中Raver,Gaver,Baver分别表示红绿蓝通道均值。
第二步:分别计算各通道的增益:
第三步:根据Von Kries对角模型,对于图像中的每个像素R、G、B,计算其结果值。
Rnew=R*Kr;
Gnew=G*Kg;
Bnew=B*Kb;
对于上式计算中可能会存在溢出(>255)的现象,本发明所采取的方式是将像素设置为255。
(2)边缘增强,Sobel算子是像素图像边缘检测中最重要的算子之一,在机器学习、数字媒体、计算机视觉等信息科技领域起着举足轻重的作用。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。
该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以I代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:
图像中的每一个像素的横向及纵向梯度近似值可用如下的公式结合,来计算梯度幅度:
本发明对梯度计算公式进行了近似处理以便于进行硬件实现,近似公式如下:
G=|Gx|+|Gy|;
由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单高效,因此应用广泛。
(3)去噪,本发明所采用的是维纳滤波,维纳滤波也称最小均方误差滤波,它能处理被退化函数退化和噪声污染的图像。该滤波方法建立在图像和噪声都是随机变量的基础之上,目标是找到未污染图像f(x,y)的一个估计,使估计值与退化图像的均方误差最小。该算法通过估计图像中每个像素的局部均值和方差来实现图像的自适应去噪:
局部均值为:
局部方差为:
式中S表示的是图像中以目标像素为几何中心的邻域,在得到局部均值和方差后即可进行维纳滤波估计:
式中的δ2为噪声方差。
(4)直方图均衡
直方图均衡化的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并,从而增大对比度,使图像清晰,达到增强的目的。
严格地说,图像的灰度直方图是一个一维的离散函数,可写成:
h(k)=nk,k=0,1,2,......L-1;
直方图提供了原图中各种灰度值分布的情况,也可以说直方图给出了一幅图像所有灰度值的整体描述。直方图的均值和方差也是图像灰度的均值和方差。图像的视觉效果与其直方图有对应关系,或者说,直方图的形状和改变对图像有很大的影响。
在直方图的基础上,进一步定义归一化的直方图为灰度级出现的相对频率即:
式中N表示图像内的像素总数,nk是图像中灰度级为k的像素的个数,若想使直方图内灰度级为均匀分布,则对于灰度级离散的数字图像,用频率来代替概率,变换函数的离散形式可以表示为:
对图像全局应用上面的变换函数即完成图像的直方图均衡化,增强对比度.
(5)CNN部分架构讲解
卷积神经网络是现代视觉人工智能系统的核心组件。近年来关于卷积模型的研究层出不穷,产生了如VGG、ResNet和Xception等性能优异的网络结构,在多个视觉任务上超过了人类水平。然而,这些成功的模型往往伴随着巨大的计算复杂度(数十亿次浮点操作,甚至更多)。这就限制了此类模型只能用于高性能的服务器集群,而对于很多移动端应用(通常最多容许数百万至数千万次浮点操作)则无能为力。
解决这一难题的方法之一是设计更为轻量级的模型结构。现代卷积神经网络的绝大多数计算量集中在卷积操作上,因此高效的卷积层设计是减少网络复杂度的关键。其中,稀疏连接(sparse connection)是提高卷积运算效率的有效途径,当前不少优秀的卷积模型均沿用了这一思路。例如,MobileNet网络引入了”深度可分离卷积”的概念,将普通的卷积运算拆分成逐通道卷积(depthwise convolution)和逐点卷积(pointwiseconvolution)两部进行,有效地减少了计算量和参数量;而Facebook的“ResNeXt”网络则首先使用逐点卷积减少输入特征的通道数,再利用计算量较小的分组卷积(groupconvolution)结构取代原有的卷积运算,同样可以减少整体的计算复杂度。
本发明网络结构同样沿袭了稀疏连接的设计理念,使用分组逐点卷积(grouppointwise convolution)来代替原来的结构。通过将卷积运算的输入限制在每个组内,模型的计算量取得了显著的下降。然而这样做也带来了明显的问题:在多层逐点卷积堆叠时,模型的信息流被分割在各个组内,组与组之间没有信息交流,如图3所示。这将可能影响到模型的表示能力和识别精度。因此,在使用分组逐点卷积的同时,需要引入组间信息交换的机制。也就是说,对于第二层卷积而言,每个卷积核需要同时接收各组的特征作为输入,如图4所示。通过引入通道重排,如图5所示,可以很方便地实现这一机制,并且由于通道重排操作是可导的,可以很方便的嵌入在网络结构中实现端到端的学习。
本发明基于MBD进行设计:
MBD方法最显大的便捷之处在于从以文档作为主要信息流载体变为以模型作为主要信息流载体来贯穿整个项目生命周期,在大大的提高了工程项目开发效率的同时可以使迭代成本最小化。MBD设计思想的核心可以概括为需求可执行,代码可生成和测试可集成。在FPGA开发领域采用MBD设计思想同样具有显而易见的优势。传统开发方法的缺陷在于
(1)软硬件开发人员的精通领域不一致
(2)FPGA平台架构与PU架构不一致
(3)FPGA片上存储资源较为有限
(3)FPGA片上计算资源有限,如DSP等。
MBD的引入使整个开发流程可以变得同时具有面向硬件开发软件和面向软件开发硬件特性。MBD即是可以满足上述需求的一种设计方法,其流程包括:
1)原始算法设计
2)面向硬件的模型设计
3)仿真验证
4)算法定点化
5)生成代码
6)上板验证
本发明的预处理模块设计与实现
(1)去噪模块,本发明选用维纳滤波算法来实现对图像的降噪处理。维纳滤波是一种自适应滤波,在对每一个像素点进行处理的时候需要计算邻域内的均值和方差,具体的计算公式如下所示:
在C语言程序中,维纳滤波的计算过程是首先提取像素邻域,然后依次计算邻域内的均值和方差,最后得出该像素点处理后的结果值。对于FPGA来说,可以对上述计算过程通过流水线的方式进行并行展开,即同时进行邻域提取,均值计算,方差计算和当前像素点估计。本设计中将上述四个计算过程设计为三个子模块,各模块产生的中间数据在模块间按顺序逐级传递。
首先是邻域提取模块,具体的邻域选定范围是以目标像素点为几何中心的5*5区域,因此邻域提取子模块需要使用双端口RAM来进行图像行数据缓冲,使用寄存器进行邻域数据缓冲,行缓冲数据量为4行图像数据,当第五行数据输入的同时从RAM内读取前四行图像数据,并将同时输出的5行数据存入寄存器进行邻域缓冲,通过上述过程即可实现5*5大小的模板对图像全局的遍历。邻域提取模块如图6所示。
领域提取模块将目标像素点周围的5*5区域共25个像素点的数据传递给均值方差计算模块后分为两路进行同时进行计算,一路用于计算邻域均值,另一路经过单时钟周期级别的延迟等待后,结合邻域均值计算结果来进行邻域方差的计算,同时对原像素点数据进行存储。
均值方差模块将计算得到的每个点的邻域均值,邻域方差与存储下来的原像素点的值输出至像素点估计模块,像素点估计模块依据公式对输入的三个数值进行计算,得出最后结果。模块电路:
(2)边缘增强,本发明选用Sobel算子对图像进行边缘增强。在边缘增强的过程中图像的每一个像素点均需与Sobel算子模板进行卷积,卷积运算的实质是对邻域像素进行加权求和。
基于以上分析,边缘增强的实现同样需要设计邻域提取模块来输出以目标像素点为几何中心的3*3尺寸区域,与去噪模块中的设计方法相类似。本发明所设计的边缘增强模块由两个子模块构成,分别是邻域提取子模块和卷积计算子模块。如图10本模块的整体结构框图如下:
邻域提取子模块的设计,区别在于本模块仅需缓冲两行图像数据,因此只需两个双口RAM。
邻域提取子模块将提取出的3*3尺寸共9个像素点输出至卷积计算子模块,卷积计算子模块对每个像素点进行加权求和,加权求和的过程包含有乘法和加法运算,考虑到要尽可能减少对FPGA片上DSP资源的消耗,本模块的设计采用移位相加的方式代替DSP来完成乘法运算。
(3)直方图均衡
根据对预处理算法的分析,本发明所选用的是对比度受限的自适应直方图均衡算法。直方图均衡化算法的执行分为三个过程,首先是对图像进行直方图统计,随后根据统计结果求取像素点变换函数,最后根据变换函数对每个像素点进行变换。与传统直方图均衡化算法相比,本发明所采取算法最大的不同之处在于直方图统计范围从图像全局变为了局部。对于FPGA来说,由于直方图的统计过程需要遍历整张图像,而后续像素变换过程需要再次遍历整张图像,所以需要对输入图像进行存储来进行多次读取,对存储带宽与存储空间有较大的需求且不利于对输入图像进行流水式处理。基于以上分析,同时考虑到实际使用中相邻帧所拍摄的场景不会有很大的变化,本模块将直方图统计过程与后续计算过程进行流水式并行展开,即同时进行直方图统计与像素映射变换。当前帧所使用的直方图统计结果来自于上一帧,当前帧的直方图统计结果在下一帧使用。本发明所设计的直方图均衡模块包含有直方图统计子模块,直方图累计和计算子模块和像素映射变换子模块。
在直方图统计模块内,由于本算法对图像的统计是分块的,考虑到输入图像的尺寸是112,因此以28*28为分块尺寸将图像划分为16块,共用16个双端口RAM来对图像进行直方图统计。对于每个RAM来说,读写时以像素值作为地址,以该像素值对应像素点总数作为数据,当图像遍历完成后直方图统计子模块的每一个RAM都会存有局部区域直方图的统计结果,随后需对每个RAM内所存直方图进行裁剪来限制对比度的增强幅度。
直方图累计和计算子模块对直方图统计子模块中的每一个RAM进行同时读取,累加与存储,同样设置了16个双口RAM用于存储累加结果数据。
在像素映射变换子模块中,以图像像素值为地址,依据像素所处的图像不同区域从直方图累积和计算子模块中不同的RAM读出数据并进行归一化计算。值得注意的是依据像素点在图像中所处位置的不同,每个像素点的结果须由临近图像块的映射函数插值得到,即同时从多个RAM同时读出数据进行插值计算,最终随着当前图像遍历的同时得出结果。像素映射变换子模块电路如下图所示:
(4)白平衡模块,本发明所选用的是基于红色通道补偿的白平衡算法。该算法的计算分为两个步骤,首先对图像内部只有红色通道值偏低的像素点进行红色分量补偿,补偿公式如下:
Ircomp(x,y)=Ir(x+y)+(Igavg-Iravg)(1-Ir(x,y))Ig(x,y)
在完成红色通道补偿后对整张图象应用灰度世界算法来进行颜色校正得到结果图像。
分析该算法的运算过程可以发现,红色通道的补偿过程与颜色校正中蓝绿色通道的均值计算并不依赖于先后顺序,因此本模块被设计为由补偿与均值计算子模块和颜色校正子模块所构成,最大限度地利用了运算间不相关的特性来进行并行展开,数据传递方式是当前帧所使用的补偿后三通道数据来自于上一帧,而当前帧处理得到的补偿后三通道数据在下一帧使用,该白平衡模块结构如图7。
在补偿与均值计算子模块中,输入的红色通道分量按照公式进行补偿并进行结果存储。与此同时,蓝绿色通道数据不变仅进行存储,当图像遍历完成时即可计算得到三通道各自的均值。
颜色校正子模块对输入的三通道均值进行均值处理得到灰度值并依据下式确定增益值来对输入图像的三个通道分别进行校正。
当图像遍历完成之后,即可得到经过红色补偿和颜色校正的最终结果。
本发明的神经网络模块的设计与实现
(1)神经网络硬件实现分析
本发明的设计思路是设计一种通用的并行计算模块来进行网络部分的计算,该模块可以适用于本发明网络中的不同层级的计算。具体数值选择是设计一个32输入32输出的通用计算模块,同时进行1024个并行的乘法运算,使用通用并行计算模块后每层网络的计算可以简化为对该通用模块的重复调用,同时对于特征变换模块来说仅需调用一次即可完成运算,控制逻辑较为简单。
(2)神经网络模块整体架构
神经网络模块的设计分为片内和片外两个部分,片外模块的功能是模拟DDR存储过程来提供数据索引,Simulink内含有提供了AXI总线模块,可用于与模拟与DDR之间的控制与数据通道,片内模块的功能则为实现神经网络。片内模块的工作流程主要包含以下几个步骤,模块接收到使能信号以及特征图尺寸信息后开始进行运算,通过输出索引值的方式从片外模块读取特征图数据以及卷积核权重参数,经卷积运算后输出结果特征图以及使能信号,将该结果特征图写入片外模块并以图像块的形式进行存储,同时将整幅特征图展开成列数据,以便于后续方便的读取数据。片内模块与片外模块的连接关系如图8。
片内模块主要由逻辑控制模块、乘法器阵列模块、阵列累加模块、功能函数模块和缓存模块等构成。片内模块结构图如图9。
每一个逻辑控制子模块控制着一层网络的数据读取过程,总共20个逻辑控制子模块,分别对应网络中的20个卷积层。当conv_start信号拉高后,控制逻辑子模块开始工作,所有逻辑控制子模块统一连接至multiport switch器件,该器件可以起到一个数据选择器的作用。每一个逻辑控制模块所对应的卷积过程完成之后会输出Done信号,此时计数器的值加一,根据计数器的输出值来判断哪个逻辑控制模块的控制信号是有效的,同时间段内只有一个逻辑控制模块的控制信号有效。逻辑控制模块的输入输出通过buscreator器件集合成总线形式进行数据传输。
(3)逻辑控制模块
逻辑控制模块输入为conv_start使能信号、特征图像素个数以及特征图宽度,输出索引号用来从外存中读取所需的数据,数据中包含有特征图数据,卷积核权重参数、偏差等。逻辑控制模块同时还通过传递卷积核尺寸,卷积核遍历信号,输入通道遍历信号,输出通道遍历信号和数据有效信号等信息的方式来对阵列累加模块进行控制。
本发明中所设计的逻辑控制模块采用的是通用架构,当卷积核尺寸发生变化时,只需修改模块中的constant元件参数即可。根据更新后的constant参数以及输入参数,控制计数器开始计数并开始模块内部的循环计算,同时实现输出数据对齐。
本模块对卷积核参数进行复用,而对特征图数据进行循环调用,根据输入的特征图宽度确定索引像素的位置信息,同时对数据进行错位读取,实现上节中的卷积方式。在每个时钟周期内,读入32个卷积权重参数与32个输入通道的输入特征图数据,如图10所示。
如图11所示,遍历完成一遍特征图数据称为一个周期,当一个周期结束后即读入下一个卷积权重,同时对输入特征图数据循环读入,直至完成对卷积核权重参数遍历。
(4)乘法阵列模块的设计和实现
乘法阵列模块是整体结构中最主要的计算单元,输入为32个特征图像与相对应的32个卷积核权重参数,输出为32个卷积结果图像。在该模块内部,整体运算过程按输入通道数量和卷积核数量进行同时展开,即同时计算32个输入通道分别与32个卷积核进行卷积计算的结果,具体使用的是SimulinHDL Coder库所提供的multiply_accumulate器件,该器件可以直接调用DSP资源来进行向量乘法。每个multiply_accumulate器件用于实现单个卷积核同时与32个输入通道进行卷积的运算,因此乘法阵列中包含有32个multiply_accumulate器件来实现并行计算。乘法阵列单元作为通用的计算单元,可以最大限度的利用板内的计算资源,同时器件的输入输出精度可以设置,用以在生成代码部分调节DSP使用量。乘法阵列模块电路图如下所示:
同时,逻辑控制单元的控制信号经乘法阵列模块直接输出至下一模块,根据模型的延迟平衡,可以使得控制信号与输出结果数据自动对齐。
(5)阵列累加模块设计和实现
阵列累加模块对乘法阵列模块输出至本模块的计算结果进行累加操作来完成完整的卷积计算过程,该模块内部包含32个累加模块,可以并行计算32个输出通道的最终卷积结果。阵列累加模块通过HDL Coder库提供的FIFO器件对数据流进行行缓存,当下一行数据进入模块时,对FIFO进行读操作和累加操作并将结果重新写入FIFO中,当累加次数达到卷积核尺寸时,停止累加并输出计算结果。阵列累加模块电路图如20所示。
单个累加模块输出单个输出通道的解算结果。根据逻辑控制单元输出的控制信号,将解算结果错位累加,数据对齐。如果当输入通道值大于32时,即一次并行计算无法完全解算出结果,将FIFO累加结果存入下一个FIFO中,通过两个FIFO的行缓存操作,实现对输入通道的遍历累加。
(6)功能函数模块设计和实现
ShuffleWaterNet中所使用的功能函数有ReLU函数和Sigmoid函数两种。ReLU函数的作用是线性整流,增强网络的非线性表达能力,其表达式为:
f(x)=0,x>0
通过观察可知,ReLU函数的计算主要为正数值检测,其实现可以通过调用
Simulink中的Switch器件来完成,将待判断结果也就是卷积输出的结果接入input1,将常数接入0input2,设定判断条件为大于等于0,即可实现ReLU功能,其硬件电路如图12。
Sigmoid函数也是激活函数的一种,同样有增强网络非线性表达能力的作用,与ReLU相比Sigmoid函数可以将实数映射到(0,1)区间,Sigmoid的函数表达式如下所示:
直接实现Sigmoid函数对FPGA来说是较为困难的,需要进行简化。简化的方式由两种,分别是对Sigmoid函数进行级数展开和表达式近似。当进行级数展开至三次幂时表达式如下:
如上式所示,即使对原函数进行有限幂次展开近似,仍需进行较为复杂的乘加运算。但是观察实际运算结果可以发现,最后一层卷积结果往往与0值相差很大,Sigmoid函数的结果往往是0或1,因此在FPGA上同样可以用ReLU函数的实现方式来近似实现Sigmoid函数。调用Switch模块,将卷积结果是否大于0作为判断条件,使得当卷积结果大于0时输出1,卷积结果小于0时输出0,使用这种近似实现方式对最终结果的影响是很小的。
(8)缓存模块设计和实现
在本发明提出的网络中,同层网络内部会多次调用计算模块且不同层级网络之间是数据级联传递的逻辑关系,所以本设计需要将图像数据以及各层网络的计算结果存储至DDR中。为了减少对片外数据的读取,本发明设计了数据缓冲模块与多维数据的存储格式,这样可以在卷积运算中尽可能的对数据进行复用,减少数据变换,从而减少对存储带宽的要求,如图13所示。
首先将特征图数据和卷积核权重参数存入DDR中,计算开始时从DDR中读出对应的特征图数据块以及卷积核权重参数并在板内以块缓存的形式存储。根据索引号,读入对应数据至列缓存,再传输至单元缓存,再输出至乘法阵列模块进行乘法计算,乘法结果经累加阵列累加后以数据块的形式输出。由于卷积层输入输出特征图大小不变,因此将卷积层计算结果覆盖DDR原先的特征图地址进行存储,如图17所示,对图像的二维尺寸进行展开存储。
特征图像数据为三维数组,在硬件设计中多以列或块的形式进行存储。而本模块将特征图数据在长宽二维平面重组成为一列数据,行号为对应的输入通道信息。单通道特征图按行顺序依次进入神经网络模块。本模块对32路输入特征图进行并行处理,同时读取32个输入通道的数据流进行卷积计算。
卷积权重参数为四维数组,单位时间内读取在32个输入通道维度32个输出通道,取卷积窗口的单个像素,即在单位时间内同时读取了1024个卷积权重参数,需要将卷积核权重参数变形成适合存储读取的形式。按32个输出通道分块,单次解算每块中读取一列数据.如图18所示,左右块存储空间代表当卷积核数量大于32时的存储方式。
(7)片外模块设计和实现
片外模块的作用是模拟DDR的存储功能,即根据输入的索引值,可以返回相应的输出数据。初始特征图数据通过Matlab软件被转化为适合于FPGA存储的块格式,并使用constant器件来进行存储。在模块内,使用Selector器件对constant器件内存储的数值进行选择输出。在模块的搭建过程中,片外模块既可以作为模拟DDR的外部存储,也可以作为算法模型测试时的Testbench,因为constant器件可以直接从MATLAB平台工作空间中读取数据来进行仿真测试。
本发明的模块定点化,神经网络的训练过程中所使用的数据类型是浮点数据,这对于FPGA来说显然是十分占用资源的,因此对于搭建好的模型需要进行定点化处理。Simulink平台的fixed-point是一款功能强大的定点化工具,该工具可以帮助收集定点化后以及使用浮点数据时各模块中数据的最大最小值并进行检验,最终在精度损失允许的范围内得到幅度尽可能小的定点化格式。
下面结合仿真对本发明的技术效果作详细的描述。
本实验对于经过定点化之后的模型需要首先进行仿真验证,软件仿真验证指的是利用Simulink和MATLAB内部的模拟功能,假定各项参数来对模型进行仿真,仿真结果可以通过波形图,数据文件输出等方式进行检查与比对,分析出模型是否正确。
在对本模块的仿真中,为了加快仿真迭代速度,故使用缩比模型进行仿真。以20x20的输入特征图作为验证数据,卷积核为7x7大小,运行时间为49*20*20个时钟周期。首先验证数据读取部分功能的正确性,图14即为控制逻辑单元对外部特征图DDR模拟模块调取特征图数据的波形图,实现错位读取数据。
每完成一个周期后,调取特征图的初始索引信息加一,当完成7个周期后,索引信息号加20,即对应图像数据的下一行。图15为卷积核权重参数调取波形,没完成一个周期后卷积核索引加一,可以验证得到对数据读取部分的正确性。实验结果,如图16所示。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种多模式融合水下图像增强方法,其特征在于,所述多模式融合水下图像增强方法包括:
输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;
与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断;
进行加权融合得到处理结果;
所述多模式融合水下图像增强方法去噪选用维纳滤波算法来实现对图像的降噪处理,在对每一个像素点进行处理的时候需要计算邻域内的均值和方差;
维纳滤波的计算过程是首先提取像素邻域,然后依次计算邻域内的均值和方差,最后得出该像素点处理后的结果值;
首先是邻域提取模块,具体的邻域选定范围是以目标像素点为几何中心的5*5区域,邻域提取子模块需要使用双端口RAM来进行图像行数据缓冲,使用寄存器进行邻域数据缓冲,行缓冲数据量为4行图像数据,当第五行数据输入的同时从RAM内读取前四行图像数据,并将同时输出的5行数据存入寄存器进行邻域缓冲,通过上述过程即可实现5*5大小的模板对图像全局的遍历;
邻域提取模块将目标像素点周围的5*5区域共25个像素点的数据传递给均值方差计算模块后分为两路进行同时进行计算,一路用于计算邻域均值,另一路经过单时钟周期级别的延迟等待后,结合邻域均值计算结果来进行邻域方差的计算,同时对原像素点数据进行存储;
均值方差模块将计算得到的每个点的邻域均值,邻域方差与存储下来的原像素点的值输出至像素点估计模块,像素点估计模块依据公式对输入的三个数值进行计算,得出最后结果;
边缘增强选用Sobel算子对图像进行边缘增强,在边缘增强的过程中图像的每一个像素点均需与Sobel算子模板进行卷积,卷积运算的实质是对邻域像素进行加权求和;边缘增强的实现同样需要设计邻域提取模块来输出以目标像素点为几何中心的3*3尺寸区域;边缘增强模块由两个子模块构成,分别是邻域提取子模块和卷积计算子模块;
邻域提取子模块将提取出的3*3尺寸共9个像素点输出至卷积计算子模块,卷积计算子模块对每个像素点进行加权求和,加权求和的过程包含有乘法和加法运算;采用移位相加的方式代替DSP来完成乘法运算;
直方图均衡,选用的是对比度受限的自适应直方图均衡算法,分为三个过程,首先是对图像进行直方图统计,随后根据统计结果求取像素点变换函数,最后根据变换函数对每个像素点进行变换;直方图均衡模块包含有直方图统计子模块,直方图累计和计算子模块和像素映射变换子模块;
在直方图统计模块内,以28*28为分块尺寸将图像划分为16块,共用16个双端口RAM来对图像进行直方图统计;直方图累计和计算子模块对直方图统计子模块中的每一个RAM进行同时读取,累加与存储,同样设置了16个双口RAM用于存储累加结果数据;
在像素映射变换子模块中,以图像像素值为地址,依据像素所处的图像不同区域从直方图累积和计算子模块中不同的RAM读出数据并进行归一化计算,值得注意的是依据像素点在图像中所处位置的不同,每个像素点的结果须由临近图像块的映射函数插值得到,即同时从多个RAM同时读出数据进行插值计算,最终随着当前图像遍历的同时得出结果;
白平衡模块,选用的是基于红色通道补偿的白平衡算法;首先对图像内部只有红色通道值偏低的像素点进行红色分量补偿;在完成红色通道补偿后对整张图像应用灰度世界算法进行颜色校正得到结果图像,
在补偿与均值计算子模块中,输入的红色通道分量按照公式进行补偿并进行结果存储;蓝绿色通道数据不变仅进行存储,当图像遍历完成时即可计算得到三通道各自的均值;
颜色校正子模块对输入的三通道均值进行均值处理得到灰度值并依据下式确定增益值来对输入图像的三个通道分别进行校正;
当图像遍历完成之后,即可得到经过红色补偿和颜色校正的最终结果。
2.如权利要求1所述的多模式融合水下图像增强方法,其特征在于,所述多模式融合水下图像增强方法的白平衡方法包括:
第一步:令其中Raver,Gaver,Baver分别表示红绿蓝通道均值;
第二步:分别计算各通道的增益:
第三步:根据VonKries对角模型,对于图像中的每个像素R、G、B,计算其结果值:
Rnew=R*Kr;
Gnew=G*Kg;
Bnew=B*Kb;
对于上式计算中可能会存在溢出的现象;
边缘增强,Sobel算子是一个离散的一阶差分算子,计算图像亮度函数的一阶梯度之近似值,在图像的任何一点使用算子,产生该点对应的梯度矢量或是其法矢量,算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,分别得出横向及纵向的亮度差分近似值;如果以I代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:
图像中的每一个像素的横向及纵向梯度近似值可用如下的公式结合,计算梯度幅度:
对梯度计算公式进行了近似处理以便于进行硬件实现,近似公式如下:
G=|Gx|+|Gy|;
去噪,采用的是维纳滤波,维纳滤波也称最小均方误差滤波,能处理被退化函数退化和噪声污染的图像;建立在图像和噪声都是随机变量的基础之上,目标是找到未污染图像f(x,y)的一个估计,使估计值与退化图像的均方误差最小;通过估计图像中每个像素的局部均值和方差实现图像的自适应去噪:
局部均值为:
局部方差为:
式中S表示的是图像中以目标像素为几何中心的邻域,在得到局部均值和方差后进行维纳滤波估计:
式中的δ2为噪声方差;
直方图均衡,对在图像中像素个数多的灰度值进行展宽,而对像素个数少的灰度值进行归并;图像的灰度直方图是一个一维的离散函数写成:
h(k)=nk,k=0,1,2,......L-1;
定义归一化的直方图为灰度级出现的相对频率:
式中N表示图像内的像素总数,nk是图像中灰度级为k的像素的个数,若想使直方图内灰度级为均匀分布,则对于灰度级离散的数字图像,用频率代替概率,变换函数的离散形式表示为:
对图像全局应用上面的变换函数即完成图像的直方图均衡化,增强对比度;
所述多模式融合水下图像增强方法的神经网络模块选择是设计一个32输入32输出的通用计算模块,同时进行1024个并行的乘法运算。
3.如权利要求2所述的多模式融合水下图像增强方法,其特征在于,所述神经网络模块的设计分为片内和片外两个部分,片外模块的功能是模拟DDR存储过程来提供数据索引,Simulink内含有提供了AXI总线模块,用于与模拟与DDR之间的控制与数据通道,片内模块的功能则为实现神经网络;
片内模块的工作流程包含,模块接收到使能信号以及特征图尺寸信息后开始进行运算,通过输出索引值的方式从片外模块读取特征图数据以及卷积核权重参数,经卷积运算后输出结果特征图以及使能信号,将结果特征图写入片外模块并以图像块的形式进行存储,同时将整幅特征图展开成列数据;
片内模块由逻辑控制模块、乘法器阵列模块、阵列累加模块、功能函数模块和缓存模块构成;每一个逻辑控制子模块控制着一层网络的数据读取过程,总共20个逻辑控制子模块,分别对应网络中的20个卷积层;当conv_start信号拉高后,控制逻辑子模块开始工作,所有逻辑控制子模块统一连接至multiport switch器件;每一个逻辑控制模块所对应的卷积过程完成之后会输出Done信号,此时计数器的值加一,根据计数器的输出值来判断哪个逻辑控制模块的控制信号是有效的,同时间段内只有一个逻辑控制模块的控制信号有效;逻辑控制模块的输入输出通过buscreator器件集合成总线形式进行数据传输;
逻辑控制模块,输入为conv_start使能信号、特征图像素个数以及特征图宽度,输出索引号用来从外存中读取所需的数据,数据中包含有特征图数据,卷积核权重参数、偏差;逻辑控制模块同时还通过传递卷积核尺寸,卷积核遍历信号,输入通道遍历信号,输出通道遍历信号和数据有效信号信息的方式来对阵列累加模块进行控制;
逻辑控制模块对卷积核参数进行复用,而对特征图数据进行循环调用,根据输入的特征图宽度确定索引像素的位置信息,同时对数据进行错位读取,实现上节中的卷积方式;在每个时钟周期内,读入32个卷积权重参数与32个输入通道的输入特征图数据;遍历完成一遍特征图数据称为一个周期,当一个周期结束后即读入下一个卷积权重,同时对输入特征图数据循环读入,直至完成对卷积核权重参数遍历。
4.如权利要求3所述的多模式融合水下图像增强方法,其特征在于,所述多模式融合水下图像增强方法的乘法阵列模块的设计,乘法阵列模块是整体结构中最主要的计算单元,输入为32个特征图像与相对应的32个卷积核权重参数,输出为32个卷积结果图像;在模块内部,整体运算过程按输入通道数量和卷积核数量进行同时展开,即同时计算32个输入通道分别与32个卷积核进行卷积计算的结果,具体使用的是SimulinHDL Coder库所提供的multiply_accumulate器件,该器件直接调用DSP资源来进行向量乘法;每个multiply_accumulate器件用于实现单个卷积核同时与32个输入通道进行卷积的运算,乘法阵列中包含有32个multiply_accumulate器件实现并行计算;
同时,逻辑控制单元的控制信号经乘法阵列模块直接输出至下一模块,根据模型的延迟平衡,使得控制信号与输出结果数据自动对齐;
阵列累加模块对乘法阵列模块输出至本模块的计算结果进行累加操作来完成完整的卷积计算过程,该模块内部包含32个累加模块,并行计算32个输出通道的最终卷积结果;阵列累加模块通过HDL Coder库提供的FIFO器件对数据流进行行缓存,当下一行数据进入模块时,对FIFO进行读操作和累加操作并将结果重新写入FIFO中,当累加次数达到卷积核尺寸时,停止累加并输出计算结果;单个累加模块输出单个输出通道的解算结果,根据逻辑控制单元输出的控制信号,将解算结果错位累加,数据对齐,如果当输入通道值大于32时,即一次并行计算无法完全解算出结果,将FIFO累加结果存入下一个FIFO中,通过两个FIFO的行缓存操作,实现对输入通道的遍历累加。
5.如权利要求3所述的多模式融合水下图像增强方法,其特征在于,所述多模式融合水下图像增强方法的功能函数模块设计,ShuffleWaterNet中所使用的功能函数有ReLU函数和Sigmoid函数两种,ReLU函数的作用是线性整流,增强网络的非线性表达能力;ReLU函数的计算主要为正数值检测,其实现通过调用Simulink中的Switch器件完成,将待判断结果也就是卷积输出的结果接入input1,将常数接入0input2,设定判断条件为大于等于0,即可实现ReLU功能;
当进行级数展开至三次幂时表达式如下:
缓存模块设计,首先将特征图数据和卷积核权重参数存入DDR中,计算开始时从DDR中读出对应的特征图数据块以及卷积核权重参数并在板内以块缓存的形式存储;根据索引号,读入对应数据至列缓存,再传输至单元缓存,再输出至乘法阵列模块进行乘法计算,乘法结果经累加阵列累加后以数据块的形式输出;
特征图像数据为三维数组,将特征图数据在长宽二维平面重组成为一列数据,行号为对应的输入通道信息;单通道特征图按行顺序依次进入神经网络模块;对32路输入特征图进行并行处理,同时读取32个输入通道的数据流进行卷积计算;
卷积权重参数为四维数组,单位时间内读取在32个输入通道维度32个输出通道,取卷积窗口的单个像素,即在单位时间内同时读取了1024个卷积权重参数,需要将卷积核权重参数变形成适合存储读取的形式;按32个输出通道分块,单次解算每块中读取一列数据;
片外模块的作用是模拟DDR的存储功能,根据输入的索引值,可以返回相应的输出数据,初始特征图数据通过Matlab软件被转化为适合于FPGA存储的块格式,并使用constant器件来进行存储;在模块内,使用Selector器件对constant器件内存储的数值进行选择输出;在模块的搭建过程中,片外模块既作为模拟DDR的外部存储,也作为算法模型测试时的Testbench。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1~5任意一项所述方法的步骤。
7.一种实施权利要求1~5任意一项所述多模式融合水下图像增强方法的多模式融合水下图像增强系统,其特征在于,所述多模式融合水下图像增强系统包括:
预处理模块,用于输入图像并行进行白平衡,直方图均衡,边缘增强和去噪处理;
神经网络模块,用于与原图一起按颜色通道进行拆分并输入神经网络进行特征图和对应权重的推断,进行加权融合得到处理结果。
8.一种水下成像控制终端,其特征在于,所述水下成像控制终端用于实现权利要求1~5任意一项所述的多模式融合水下图像增强方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110298574.1A CN113034391B (zh) | 2021-03-19 | 2021-03-19 | 一种多模式融合水下图像增强方法、系统及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110298574.1A CN113034391B (zh) | 2021-03-19 | 2021-03-19 | 一种多模式融合水下图像增强方法、系统及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113034391A CN113034391A (zh) | 2021-06-25 |
CN113034391B true CN113034391B (zh) | 2023-08-08 |
Family
ID=76472023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110298574.1A Active CN113034391B (zh) | 2021-03-19 | 2021-03-19 | 一种多模式融合水下图像增强方法、系统及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113034391B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705803B (zh) * | 2021-08-31 | 2024-05-28 | 南京大学 | 基于卷积神经网络的图像硬件识别系统及部署方法 |
CN114972138B (zh) * | 2021-12-31 | 2024-09-13 | 长春工业大学 | 一种组网高安全性图像多通道融合防护方法及装置 |
CN114612347B (zh) * | 2022-05-11 | 2022-08-16 | 北京科技大学 | 一种多模块级联的水下图像增强方法 |
CN114995782B (zh) * | 2022-08-03 | 2022-10-25 | 上海登临科技有限公司 | 数据处理方法、装置、设备和可读存储介质 |
CN116414456B (zh) * | 2023-01-19 | 2024-01-19 | 杭州知存智能科技有限公司 | 存算芯片内的加权融合变换部件、存算电路及协同计算方法 |
CN117974490B (zh) * | 2024-02-02 | 2024-09-13 | 广州航海学院 | 一种多模块级联的水下图像增强方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017175231A1 (en) * | 2016-04-07 | 2017-10-12 | Carmel Haifa University Economic Corporation Ltd. | Image dehazing and restoration |
CN108428225A (zh) * | 2018-01-30 | 2018-08-21 | 李家菊 | 基于多尺度多特征的影像科用脑部图像融合识别方法 |
CN110705440A (zh) * | 2019-09-27 | 2020-01-17 | 贵州大学 | 一种基于神经网络特征融合的胶囊内镜图像识别模型 |
CN111047530A (zh) * | 2019-11-29 | 2020-04-21 | 大连海事大学 | 基于多特征融合的水下图像颜色校正和对比度增强方法 |
CN111968054A (zh) * | 2020-08-14 | 2020-11-20 | 中国海洋大学 | 基于潜在低秩表示和图像融合的水下图像颜色增强方法 |
-
2021
- 2021-03-19 CN CN202110298574.1A patent/CN113034391B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017175231A1 (en) * | 2016-04-07 | 2017-10-12 | Carmel Haifa University Economic Corporation Ltd. | Image dehazing and restoration |
CN108428225A (zh) * | 2018-01-30 | 2018-08-21 | 李家菊 | 基于多尺度多特征的影像科用脑部图像融合识别方法 |
CN110705440A (zh) * | 2019-09-27 | 2020-01-17 | 贵州大学 | 一种基于神经网络特征融合的胶囊内镜图像识别模型 |
CN111047530A (zh) * | 2019-11-29 | 2020-04-21 | 大连海事大学 | 基于多特征融合的水下图像颜色校正和对比度增强方法 |
CN111968054A (zh) * | 2020-08-14 | 2020-11-20 | 中国海洋大学 | 基于潜在低秩表示和图像融合的水下图像颜色增强方法 |
Non-Patent Citations (1)
Title |
---|
"Underwater image enhancement via extended multi-scale Retinex";Shu Zhang 等;《ELSEVIER》;20170316;1-9 * |
Also Published As
Publication number | Publication date |
---|---|
CN113034391A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113034391B (zh) | 一种多模式融合水下图像增强方法、系统及应用 | |
CN109949255B (zh) | 图像重建方法及设备 | |
CN112767468B (zh) | 基于协同分割与数据增强的自监督三维重建方法及系统 | |
CN113284054B (zh) | 图像增强方法以及图像增强装置 | |
CN107609641B (zh) | 稀疏神经网络架构及其实现方法 | |
Jiang et al. | Underwater image enhancement with lightweight cascaded network | |
CN109903221A (zh) | 图像超分方法及装置 | |
CN110276767A (zh) | 图像处理方法和装置、电子设备、计算机可读存储介质 | |
US11436440B2 (en) | Method and system for DNN based imaging | |
Wang et al. | Joint iterative color correction and dehazing for underwater image enhancement | |
CN113052006B (zh) | 一种基于卷积神经网络的图像目标检测方法,系统及可读存储介质 | |
CN111986084A (zh) | 一种基于多任务融合的多相机低光照图像质量增强方法 | |
CN112785637A (zh) | 一种基于动态融合网络的光场深度估计方法 | |
CN116152591B (zh) | 模型训练方法、红外小目标检测方法、装置及电子设备 | |
CN114627034A (zh) | 一种图像增强方法、图像增强模型的训练方法及相关设备 | |
CN113066018A (zh) | 一种图像增强方法及相关装置 | |
CN115222581A (zh) | 图像生成方法、模型训练方法、相关装置及电子设备 | |
Huang et al. | Underwater image enhancement based on color restoration and dual image wavelet fusion | |
Huang et al. | Underwater image enhancement via LBP‐based attention residual network | |
CN118334365A (zh) | 一种新的rgb-d图像显著性目标检测方法 | |
Peng et al. | Raune-Net: a residual and attention-driven underwater image enhancement method | |
CN113919479B (zh) | 一种提取数据特征的方法和相关装置 | |
CN115311149A (zh) | 图像去噪方法、模型、计算机可读存储介质及终端设备 | |
Weng et al. | A Lightweight Low-Light Image Enhancement Network via Channel Prior and Gamma Correction | |
CN111861877A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |