CN109493300B - 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机 - Google Patents

基于fpga卷积神经网络的航拍图像实时去雾方法及无人机 Download PDF

Info

Publication number
CN109493300B
CN109493300B CN201811358348.2A CN201811358348A CN109493300B CN 109493300 B CN109493300 B CN 109493300B CN 201811358348 A CN201811358348 A CN 201811358348A CN 109493300 B CN109493300 B CN 109493300B
Authority
CN
China
Prior art keywords
image
convolution
neural network
frame image
fpga
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
Application number
CN201811358348.2A
Other languages
English (en)
Other versions
CN109493300A (zh
Inventor
罗林燕
谭鑫
蒋自成
马维力
黄新景
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Kunpeng Zhihui Technology Co ltd
Original Assignee
Hunan Kunpeng Zhihui Unmanned Plane Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Kunpeng Zhihui Unmanned Plane Technology Co ltd filed Critical Hunan Kunpeng Zhihui Unmanned Plane Technology Co ltd
Priority to CN201811358348.2A priority Critical patent/CN109493300B/zh
Publication of CN109493300A publication Critical patent/CN109493300A/zh
Application granted granted Critical
Publication of CN109493300B publication Critical patent/CN109493300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种基于FPGA卷积神经网络的航拍图像实时去雾方法及无人机,包括步骤:通过FPGA部署卷积神经网络模型,在不同场景训练卷积神经网络模型,得到各场景下的去雾参数;选取去雾参数,将去雾参数例化在FPGA内部的RAM中;获取第i‑1帧图像与第i帧图像,求取第i‑1帧图像的暗通道图像并计算第i‑1帧图像的大气光值Ai‑1;对第i帧图像进行卷积神经网络运算,计算第i帧图像的粗糙透射率t'i(x);获取第i帧图像的灰度图像;将粗糙透射率t'i(x)与灰度图像进行引导滤波,计算获取第i帧图像的精细透射率ti(x);将Ai‑1、ti(x)与第i帧图像Ii(x)运算,获取第i帧图像的去雾图像Ji(x)。具有较好地普适性,同时能够满足实时性要求。本发明应用于图像处理领域与计算机视觉领域。

Description

基于FPGA卷积神经网络的航拍图像实时去雾方法及无人机
技术领域
本发明涉及图像处理领域与计算机视觉领域,尤其涉及一种基于FPGA卷积神经网络的航拍图像实时去雾方法及无人机。
背景技术
目前,无人机在测绘、巡查、灾害防治等领域的运用越来越广泛。无人机作业或者启用视觉导航飞行时,很大程度上依赖于成像质量较高的无人机图像。当无人机在中高空飞行时,在雾、霾等不良天气条件下,由于大气中气溶胶的散射作用,使得大气能见度降低,航拍图像的质量和清晰度严重受到影响,导致无人机图像出现退化和模糊的问题,图像颜色的自然程度和图像对比度大大降低,使图像中的基本信息特征失真、受损,进而影响无人机的视觉导航、目标实时追踪等后期任务。因此,对无人机获取的图像进行机载实时去雾处理有着重要的研究和应用价值。
目前,图像去雾算法主要分为三类:第一类是基于图像增强的方法;第二类,基于物理模型的图像复原方法;第三类,是基于深度学习的图像去雾方法。
基于图像增强的方法的现有研究有:“一种基于直方图均衡化的数字图像去雾方法,申请号:201510609664.2,发明设计人:张岱等”与“一种图像去雾处理方法,申请号:201410448950.0,发明设计人:张文利等”。第一类方法由于没有考虑图像降质的原因,不是目前研究的主流。
基于物理模型图像复原的图像去雾方法的研究有:“一种图像去雾方法及其在FPGA上的实现方法,申请号:201610410849.5,发明设计人:杨艺等”、“一种基于FPGA的实时水面浓雾场景图像增强方法,申请号:201711419415.2,发明设计人:张弘等”、“基于FPGA的视频去雾方法及系统,申请号:201510175410.4,发明设计人:欧阳平等”、“一种基于CUDA的低照度图像增强并行优化方法,申请号:201510245810.8,发明设计人:沈沛意等”、“一种基于CUDA的图像实时去雾方法,申请号:201310017014.X,发明设计人:兰时勇等”、“FPGA的高性能暗原色先验算法设计,计算机工程与应用,vol.51,No.9,2015,作者:蒋守欢等”、“改进的暗通道去雾算法在多核DSP上的并行实现,武汉大学学报(理学版),Vol.62,No.6,2016,作者:匡娇娇等”
近年来,随着深度学习技术的发展,利用深度学习进行图像去雾也有相关研究出现。例如“一种基于深度学习的单幅图像去雾方法,申请号:201710613638.6,发明设计人:邹月娴等”与“一种基于深度学习的单幅图像去雾算法,申请号:201710113254.8,发明设计人:肖进胜等”。
对于无人机的视觉导航、灾难搜救、目标追踪等应用来说,不仅要求能实时提供清晰的去雾图像,而且作为机载图像处理的前端部分,要求图像去雾模块花费尽可能小的硬件成本、功耗成本、重量成本、体积成本,另外需去雾模块能够满足多个场景的去雾要求,如山区、海面、城区等。
在上述介绍的技术研究中,基于图像增强的去雾算法,没有考虑图像降质的原因,能提高雾天图像对比度,突出图像细节,然而对图像信息会造成一定损失,去雾效果一般。
基于物理模型图像复原的去雾算法,其前提是假设大气是单散射且介质均匀的,该假设不具有普适性,尤其是天空区域不满足这一假设。该类方法对于存在大面积天空的雾霾图像处理时,常常出现失真。而专利“一种基于FPGA的实时水面浓雾场景图像增强方法,申请号:201711419415.2,发明设计人:张弘等”主要应用于水面浓雾处理,无法适用于山区、城区等场景的去雾处理;
基于深度学习的图像去雾算法,该类算法通过训练得到去雾参数,对各类场景适应能力较好,但是目前的研究主要集中在后端线下去雾,实时性较差,不适用于机载图像的实时处理。
发明内容
针对现有技术存在的不足,本发明的目的是提供一种基于FPGA卷积神经网络的航拍图像实时去雾方法,该方法具有较好地普适性,同时能够满足实时性要求。
大气散射模型是由McCartney首次提出,该模型描述了雾天图像的退化过程,可用式(1)表示,
I(x)=J(x)t(x)+A(1-t(x)) (1)
式中I(x)表示观测图像,J(x)是需要恢复的图像,A为全球大气光值,t(x)为透射率,去雾的目标就是从I(x)中恢复J(x)。由式(1)可得式(2),
Figure BDA0001866668070000031
由公式(2)可知,求取J(x),需要先求得t(x)和A,其中最重要的是求取t(x)。
航拍图像的拍摄高度较高,两帧图像的大气光值相近,因此本发明对式(2)进行改造,即将第一帧图像求得的大气光值A1计算第二帧去雾图像,第二帧图像求得的大气光值A2计算第三帧去雾图像,第i-1帧图像求得的大气光值Ai-1计算第i帧去雾图像,如式(3)所示,
Figure BDA0001866668070000032
本发明采用的技术方案是:
一种基于FPGA卷积神经网络的航拍图像实时去雾方法,具体包括以下步骤:
S1、通过FPGA部署卷积神经网络模型,利用不同场景下大量的雾、霾图像,线下训练卷积神经网络模型,得到各个场景下航拍图像的去雾参数;
S2、根据本次航拍场景选取对应的去雾参数,将去雾参数例化在FPGA内部的RAM中;
S3、获取第i-1帧图像与第i帧图像,求取第i-1帧图像的暗通道图像并计算第i-1帧图像的大气光值Ai-1
S4、对第i帧图像进行卷积神经网络运算,计算第i帧图像的粗糙透射率t'i(x),具体包括:
S41、获取第i帧图像,求取第i帧图像中每个像素点的灰度特征;
S42、通过卷积神经网络中的卷积层对每个像素点的灰度特征进行多层卷积运算,获取每个像素点的灰度特征的卷积矩阵,具体包括:
S421、选取16个卷积核作为卷积神经网络中的卷积层,对16个卷积核进行编号;
S422、利用4个FPGA内部RAM存储16个卷积核的参数,第1个RAM顺序存放第1、5、9、13个卷积核的参数,第2个RAM顺序存放第2、6、10、14个卷积核的参数,第3个RAM顺序存放第3、7、11、15个卷积核的参数,第4个RAM顺序存放第4、8、12、16个卷积核的参数;
S423、将16个卷积核进行4批运算,每批运算四个卷积核,即第一批运算第1、2、3、4个卷积核,第2批运算第5、6、7、8个卷积核,第3批运算第9、10、11、12个卷积核,第4批运算第13、14、15、16个卷积核,最终获取每个像素点的灰度特征的卷积矩阵,其中,每个像素点的灰度特征均具有16个卷积矩阵;
S43、利用极值滤波对步骤S434获取的每个卷积矩阵进行池化运算,对池化运算的结果进行非线性回归运算,即得粗糙透射率t'i(x);
S5、对第i帧图像进行灰度化,获取第i帧图像的灰度图像;
S6、将步骤S4中求取的粗糙透射率t'i(x)与步骤S5中获取的灰度图像进行引导滤波,计算获取第i帧图像的精细透射率ti(x);
S7、将步骤S3中获取的Ai-1、步骤S6中获取的ti(x)与延时获取的第i帧图像Ii(x)运算,获取第i帧图像的去雾图像Ji(x):
Figure BDA0001866668070000051
式中,i=2,3,4···;
其中步骤S3、S4、S5与步骤S7中延时获取第i帧图像Ii(x)多路并行处理。
作为上述技术方案的进一步改进,步骤S3中,求取第i-1帧图像的暗通道图像,具体包括:
S311、比较每个像素R、G、B三个通道中的像素值,求取三个像素值中的最小值;
S312、将步骤S311求取的像素值最小值输入FIFO进行缓存,先缓存4行完整像素信息,当保存到第5行第5个像素时,生成第一个5×5局部区域,之后每当从输入视频中保存一个新的像素就会生成一个新的5×5局部区域,对FIFO进行控制切换,交替进行完成一帧画面的处理;
S313、在当前生成的5×5局部区域中求出最小值,即当前像素的暗通道像素值D(x)。
作为上述技术方案的进一步改进,步骤S3中,计算第i-1帧图像的大气光值Ai-1,具体包括:
S321、设定大气光值的初始值A0
S322、对暗通道像素值按照时间顺序进行两两比较,求得最大的暗通道像素值Dmax'(x);
S323、将Dmax'(x)与A0进行比较,取两者中的较大值,得到大气光值Ai-1
作为上述技术方案的进一步改进,步骤S4中,卷积神经网络运算采用数据并行与乘法器并行相结合以用于实现运算速度与运算资源的平衡。
作为上述技术方案的进一步改进,步骤S4中,卷积神经网络的运算模式包括核间并行运算、核内并行运算以及数据并行流通,其中:
核间并行运算,卷积神经网络卷积层中多个卷积核进行分组并行运算,对输入卷积神经网络卷积层的数据串行分流,一次进行一路数据与卷积核的乘累加运算,再将多路乘累加结果求和,完成多路信号的卷积;
核内并行运算,卷积神经网络卷积层中单个卷积核的运算,核内所有参数与对应数据同时进行并行乘法运算,再将所有乘法运算结果求和;
数据并行流通,卷积神经网路模型中,卷积层的计算结果直接流入与其衔接的下一个池化层,池化层的计算结果进行串行编排后流入与其衔接的下一个卷积层。
作为上述技术方案的进一步改进,步骤S6中,所述滤波为均值滤波。
作为上述技术方案的进一步改进,步骤S6中,第i帧图像的精细透射率ti(x)计算过程具体包括:
S61、获取粗糙透射率t'(x)形成的与当前图像等尺寸的矩阵t'作为引导滤波器的输入图像、设置步骤S5中获取的灰度图像g为引导图像,其中滤波时正方形窗口半径为r,以点k为中心的窗口为ωk
S62、计算输入图像t'中每个窗口ωk的均值
Figure BDA0001866668070000061
Figure BDA0001866668070000062
其中t′j为输入图像t'中点j的亮度;
S63、计算向导图像g中每个窗口ωk的均值
Figure BDA0001866668070000071
Figure BDA0001866668070000072
其中gj为向导图像g中点j的亮度;
S64、计算每个窗口ωk中输入图像t'与向导图像g的协方差
Figure BDA0001866668070000073
Figure BDA0001866668070000074
S65、计算每个窗口ωk中向导图像g的方差
Figure BDA0001866668070000075
Figure BDA0001866668070000076
S66、计算每个窗口ωk对应的ak
Figure BDA0001866668070000077
其中ε为平滑系数,用于控制ak的最大值;
S67、计算每个窗口ωk对应的bk
Figure BDA0001866668070000078
S68、计算每个窗口ωk中所有点对应的ak的均值
Figure BDA0001866668070000079
Figure BDA00018666680700000710
S69、计算每个窗口ωk中所有点对应的bk的均值
Figure BDA00018666680700000711
Figure BDA00018666680700000712
S610、计算最终的输出图像tk
Figure BDA00018666680700000713
其中tk即为精细透射率ti(x)。
作为上述技术方案的进一步改进,步骤S1中,卷积神经网络模型的训练场景包括山区、海面、城区场景下大量具有不同浓度雾、霾的图像。
本发明还提供一种基于FPGA卷积神经网络的航拍图像实时去雾无人机,包括机体与设在机体内的机载电路板,所述机载电路板上设有FPGA与PROM存储器,所述PROM存储器存储有计算机程序,所述FPGA执行所述计算机程序时实现上述方法的步骤。
本发明的有益技术效果:
本发明通过FPGA部署卷积神经网络模型,在不同的场景下训练卷积神经网络模型,得到各个场景下航拍图像的去雾参数,将去雾参数例化在FPGA内部的RAM中,可以根据不同的航拍场景选取对应的去雾参数,更换场景时只需重新例化即可,非常便捷,同时本发明对图像数据进行卷积神经网络运算、灰度化、计算大气光值的多路并行处理,对单路图像数据进行流水线处理,对单路信号进行多路并行运算,有效地满足实时性要求。
附图说明
图1是基于FPGA卷积神经网络的航拍图像实时去雾方法总体流程图;
图2是5×5局部区域数据组成示意图。
具体实施方式
为了便于本发明的实施,下面结合具体实例作进一步的说明。
如图1所示的一种基于FPGA卷积神经网络的航拍图像实时去雾方法,具体可包括如下步骤:
S1、通过FPGA部署卷积神经网络模型,利用不同场景下大量的雾、霾图像,线下训练卷积神经网络模型,得到各个场景下航拍图像的去雾参数;
S2、根据本次航拍场景选取对应的去雾参数,将去雾参数例化在FPGA内部的RAM中;
S3、获取第i-1帧图像与第i帧图像,求取第i-1帧图像的暗通道图像并计算第i-1帧图像的大气光值Ai-1
S4、对第i帧图像进行卷积神经网络运算,计算第i帧图像的粗糙透射率t'i(x);
S5、对第i帧图像进行灰度化,获取第i帧图像的灰度图像;
S6、将步骤S4中求取的粗糙透射率t'i(x)与步骤S5中获取的灰度图像进行引导滤波,计算获取第i帧图像的精细透射率ti(x);
S7、将步骤S3中获取的Ai-1、步骤S6中获取的ti(x)与延时获取的第i帧图像Ii(x)运算,获取第i帧图像的去雾图像Ji(x):
Figure BDA0001866668070000091
其中,i=2,3,4···,第1帧图像不进行去雾,只计算其大气光值A1
图1中CNN即卷积神经网络,上述步骤中对当前帧图像进行四路并行处理,其中:
第一路,求出当前帧图像的暗通道图像,并计算其大气光值,用于作为对下一帧图像去雾的参数,即步骤S3;
第二路,对当前帧图像进卷积神经网络运算,求取粗糙透射率t'i(x),即步骤S4;
第三路,对当前帧图像进行延时,延时时长与卷积神经网络运算时间相关联,并求取延时图像的灰度图像,即步骤S5;
第四路,对当前帧图像进行延时,延时时间与卷积神经网络运算时间引导滤波运算时间相关联,以获取步骤S7中的第i帧图像Ii(x)。
下面对主要步骤进行展开说明
步骤S1中,利用不同场景下大量的雾、霾图像,线下训练卷积神经网络模型,得到各个场景下航拍图像的去雾参数,具体包括:
获取山区,海面(包括湖面),城区的图像各3.5万张(其中有雾、霾图像3万张,无雾、霾图像0.5万张),再以每一张图片为原型,添加10个浓度等级的雾、霾(加上原型图片,总共11个等级),每添加一个等级的雾、霾,生成一张新的图片,将这些图片按场景和雾、霾等级进行分类,如山区、浓度1级3.5万张,山区、浓度2级3.5万张,...,城区、浓度10级3.5万张,城区、浓度11级3.5万张。
在每一类图片中随机抽取3万张作为训练集数据,0.5万张作为测试集数据,输入卷积神经网络进行训练,每一类数据集均得到一个粗糙透射率。
卷积神经网络训练的过程为:特征提取,将图像R、G、B三个通道的图像分别进行多核卷积运算,得到特征图像;多尺度卷积,将获取的特征图像分别进行多尺度卷积;将多尺度卷积结果,进行极值滤波;将极值滤波的结果,进行非线性回归计算,获得粗糙透射率。
卷积神经网络的训练过程在线下完成,获得去雾参数,去雾参数主要指上述各卷积核参数。
步骤S3中,求取第i-1帧图像的暗通道图像,具体包括:
S311、比较每个像素R、G、B三个通道中的像素值,求取三个像素值中的最小值;
S312、将步骤S311求取的像素值最小值输入FIFO进行缓存,先缓存4行完整像素信息,当保存到第5行第5个像素时,生成第一个5×5局部区域,之后每当从输入视频中保存一个新的像素就会生成一个新的5×5局部区域,对FIFO进行控制切换(保留含有最新数据的4块FIFO,剩下的1块FIFO缓存新的一行数据),交替进行完成一帧画面的处理,如图2所示;
S313、在当前生成的5×5局部区域中求出最小值,即当前像素的暗通道像素值D(x)。
步骤S3中,计算第i-1帧图像的大气光值Ai-1,具体包括:
S321、设定大气光值的初始值A0
S322、对暗通道像素值按照时间顺序进行两两比较,求得最大的暗通道像素值Dmax'(x);
S323、将Dmax'(x)与A0进行比较,取两者中的较大值,得到大气光值Ai-1
步骤S4中,卷积神经网络运算求取粗糙透射率t'(x):
卷积神经网络结构包括卷积层、池化层、全连接层等模块,其中卷积层对流程的实时性影响最大,本专利只对卷积层的FPGA实现进行说明。本发明利用FPGA善于处理并行运算的特点,设计了多种模式的并行运算方式,包括核间并行运算、核内并行运算以及数据并行流通,实现了数据流的实时卷积运算。
核间并行运算。根据卷积核的个数,将卷积运算分成多批次运算,如16个卷积核,分成4批运算,每次运算4个卷积核;卷积运算所需参数,根据运算的时间顺序进行存储、编排,如第1批运算第1、2、3、4个卷积核,第2批运算第5、6、7、8个卷积核,第3批运算第9、10、11、12个卷积核,第4批运算第13、14、15、16个卷积核;利用4个FPGA内部RAM存储参数,第1个RAM顺序存放第1、5、9、13个卷积核的参数,第2个RAM顺序存放第2、6、10、14个卷积核的参数,第3个RAM顺序存放第3、7、11、15个卷积核的参数,第4个RAM顺序存放第4、8、12、16个卷积核的参数,则进行第1批运算时同时读取4个RAM,同时获得第1、2、3、4个卷积核的参数,进行第2批运算时同时读取4个RAM,同时获得第5、6、7、8个卷积核的参数,进行第3批运算时同时读取4个RAM,同时获得第9、10、11、12个卷积核的参数,进行第4批运算时同时读取4个RAM,同时获得第13、14、15、16个卷积核的参数。如此,在同一时刻,便可完成4个卷积核卷积参数的准备,同时进行4个卷积核的卷积运算。
核内并行运算。核内卷积运算,即将核内对应位置的参数与数据相乘,再将所有的相乘结果求和,便得到单通道数据的卷积值。核内并行运算,即采用多个乘法器,将卷积运算的所有乘法运算同时完成,如3*3的卷积核,采用9个乘法器,同时完成9对参数与数据的乘法运算。
数据并行流通。卷积层使用了多少个卷积核,便会输出多少路的数据,并且这些数据经过池化层的滤波等处理后,会流入下一个卷积层进行处理,本发明将多个卷积核的运算结果并行输出。
层与层之间的数据衔接。卷积层输出数据接入池化层,在池化层中,通常会做局部极值滤波等操作,输入串行数据流便可,因此将卷积层的输出数据直接接入与其衔接的池化层。池化层与下一个卷积层之间的数据衔接,比如,池化层的上一个卷积层进行16个卷积核的运算,会输出16路数据(本发明中,16路数据会分四组依次输出),经过池化层的最小值滤波后,仍然为16路数据(4路一组),将这16路数据输入下一个卷积层,下一个卷积层的每一个卷积核分别与这16路数据进行乘累加运算,再将这16路的乘累加结果进行相加,而卷积层中单个卷积核一次只能进行一路数据的运算,因此需要对池化层输出的多路数据进行时延再输入到下一个卷积层,如第2路数据比第1路延时m个时钟周期、第3路数据比第2路延时m个时钟周期,以此类推。
卷积神经网络运算求取粗糙透射率t'(x)具体包括:
S41、获取第i帧图像,求取第i帧图像中每个像素点的灰度特征;
S42、通过卷积神经网络中的卷积层对每个像素点的灰度特征进行多层卷积运算,获取每个像素点的灰度特征的卷积矩阵,具体包括:
S421、选取16个卷积核作为卷积神经网络中的卷积层,对16个卷积核进行编号;
S422、利用4个FPGA内部RAM存储16个卷积核的参数,第1个RAM顺序存放第1、5、9、13个卷积核的参数,第2个RAM顺序存放第2、6、10、14个卷积核的参数,第3个RAM顺序存放第3、7、11、15个卷积核的参数,第4个RAM顺序存放第4、8、12、16个卷积核的参数;
S423、将16个卷积核进行4批运算,每批运算四个卷积核,即第一批运算第1、2、3、4个卷积核,第2批运算第5、6、7、8个卷积核,第3批运算第9、10、11、12个卷积核,第4批运算第13、14、15、16个卷积核,最终获取每个像素点的灰度特征的卷积矩阵,其中,每个像素点的灰度特征均具有16个卷积矩阵;
S43、利用极值滤波对步骤S434获取的每个卷积矩阵进行池化运算,对池化运算的结果进行非线性回归运算,即得粗糙透射率t'i(x)。
步骤S6中,求取精细透射率t(x):
进行引导滤波前,需要将当前帧图像延时后,求取其灰度图像g,再将求取的灰度图像g与上一步求取的粗糙透射率t'(x)进行引导滤波,求得精细透射率t(x)。引导滤波器的输入图像为粗糙透射率t'(x)形成的与当前图像等尺寸的矩阵t',输出图像为t,引导图像为灰度图像g,滤波时正方形窗口半径为r,以点k为中心的窗口即上述正方形窗口为ωk,也即是窗口ωk的半径为r。
计算过程分为以下几个步骤:
第一步,计算输入图像t'中每个窗口ωk的均值
Figure BDA0001866668070000141
Figure BDA0001866668070000142
其中t′j为输入图像t'中点j的亮度。
第二步,计算向导图像g中每个窗口ωk的均值
Figure BDA0001866668070000143
Figure BDA0001866668070000144
其中gj为向导图像g中点j的亮度。
第三步,计算每个窗口ωk中输入图像t'与向导图像g的协方差
Figure BDA0001866668070000145
Figure BDA0001866668070000146
第四步,计算每个窗口ωk中向导图像g的方差
Figure BDA0001866668070000147
Figure BDA0001866668070000148
第五步,计算每个窗口ωk对应的ak
Figure BDA0001866668070000149
其中ε为平滑系数,用于控制ak的最大值。
第六步,计算每个窗口ωk对应的bk
Figure BDA00018666680700001410
第七步,计算每个窗口ωk中所有点对应的ak的均值
Figure BDA00018666680700001411
Figure BDA00018666680700001412
第八步,计算每个窗口ωk中所有点对应的bk的均值
Figure BDA0001866668070000151
Figure BDA0001866668070000152
第九步,计算最终的输出图像tk
Figure BDA0001866668070000153
其中式(4)、(5)、(6)、(7)、(10)、(11)分别通过均值滤波器1、均值滤波器2、均值滤波器3、均值滤波器4、均值滤波器5、均值滤波器6实现,首先同时计算均值滤波器1、2,等均值滤波器1、2输出第一个结果后计算均值滤波器3、4(在计算均值滤波器3、4之前,将滤波器的输入信号进行延时以匹配均值滤波器1、2的输出),利用均值滤波器3、4的结果计算式(8),利用均值滤波器1、2以及式(8)的结果计算式(9),将式(8)的计算结果作为均值滤波器5的输入计算式(10),将式(9)的计算结果作为均值滤波器6的输入计算式(11),将式(10)、式(11)以及均值滤波器2输出结果的时延值作为输入计算式(12),得到精细透射率t(x)。
当t'(x)、g数据量满足一个ωk窗口的运算时,便启动该模块的均值滤波,输入新的数据即形成新的窗口,进行新的均值滤波。
均值滤波的实现方法为:先将所滤波矩形框内所有像素累加求和,再将累加结果除以像素框内的像素个数,即得到均值滤波结果。矩形框内所有像素累加求和方法为:先行内累加求和,再将行内求和的结果累加,得到矩形框内所有像素的累加和。
步骤S7中,求取去雾图像Ji(x)
利用求得的精细透射率t(x)、大气光值Ai-1,根据式(3),计算去雾图像。在求取t(x)、Ai-1的同时,会将当前帧的图像进行延时,以确保t(x)、Ai-1以及所需去雾的图像在时间上对齐,延时的时间根据t(x)、Ai-1的计算时间确定。在t(x)、Ai-1输出第一组值的时候,便开始计算Ji(x)的第一组,去雾图像顺序输出。
本实施例还提供一种基于FPGA卷积神经网络的航拍图像实时去雾无人机,包括机体与设在机体内的机载电路板,所述机载电路板上设有FPGA与PROM存储器,所述PROM存储器存储有计算机程序,所述FPGA执行所述计算机程序时实现上述方法的步骤。该无人机的数据处理全部在FPGA内部完成,无需外挂DDR等外部存储器对视频流进行缓存,因此不受外部存储器读写带宽的影响,节省了硬件成本和数据读写的时间开销,满足无人机的机载要求。
以上包含了本发明优选实施例的说明,这是为了详细说明本发明的技术特征,并不是想要将发明内容限制在实施例所描述的具体形式中,依据本发明内容主旨进行的其他修改和变型也受本专利保护。本发明内容的主旨是由权利要求书所界定,而非由实施例的具体描述所界定。

Claims (6)

1.基于FPGA卷积神经网络的航拍图像实时去雾方法,其特征在于,具体包括以下步骤:
S1、通过FPGA部署卷积神经网络模型,利用不同场景下大量的雾、霾图像,线下训练卷积神经网络模型,得到各个场景下航拍图像的去雾参数;卷积神经网络模型的训练场景包括山区、海面、城区场景下大量具有不同浓度雾、霾的图像,具体为:
获取山区、海面与城区的图像各3.5万张,其中,海面的图像中包含有湖面图像,且每一类图像中有雾、霾图像3万张,无雾、霾图像0.5万张,再以每一张图片为原型,添加10个浓度等级的雾、霾,即加上原型图片,每一张图片具有11个等级,每添加一个等级的雾、霾,生成一张新的图片,将这些图片按场景和雾、霾等级进行分类,即山区、浓度1级3.5万张,山区、浓度2级3.5万张,...,城区、浓度10级3.5万张,城区、浓度11级3.5万张;在每一类图片中随机抽取3万张作为训练集数据,0.5万张作为测试集数据,输入卷积神经网络进行训练;
S2、根据本次航拍场景选取对应的去雾参数,将去雾参数例化在FPGA内部的RAM中;
S3、获取第i-1帧图像与第i帧图像,求取第i-1帧图像的暗通道图像并计算第i-1帧图像的大气光值Ai-1
S4、对第i帧图像进行卷积神经网络运算,计算第i帧图像的粗糙透射率t'i(x),具体包括:
S41、获取第i帧图像,求取第i帧图像中每个像素点的灰度特征;
S42、通过卷积神经网络中的卷积层对每个像素点的灰度特征进行多层卷积运算,获取每个像素点的灰度特征的卷积矩阵,具体包括:
S421、选取16个卷积核作为卷积神经网络中的卷积层,对16个卷积核进行编号;
S422、利用4个FPGA内部RAM存储16个卷积核的参数,第1个RAM顺序存放第1、5、9、13个卷积核的参数,第2个RAM顺序存放第2、6、10、14个卷积核的参数,第3个RAM顺序存放第3、7、11、15个卷积核的参数,第4个RAM顺序存放第4、8、12、16个卷积核的参数;
S423、将16个卷积核进行4批运算,每批运算四个卷积核,即第一批运算第1、2、3、4个卷积核,第2批运算第5、6、7、8个卷积核,第3批运算第9、10、11、12个卷积核,第4批运算第13、14、15、16个卷积核,最终获取每个像素点的灰度特征的卷积矩阵,其中,每个像素点的灰度特征均具有16个卷积矩阵;
S43、利用极值滤波对步骤S434获取的每个卷积矩阵进行池化运算,对池化运算的结果进行非线性回归运算,即得粗糙透射率t'i(x);
S5、对第i帧图像进行灰度化,获取第i帧图像的灰度图像;
S6、将步骤S4中求取的粗糙透射率t'i(x)与步骤S5中获取的灰度图像进行引导滤波,计算获取第i帧图像的精细透射率ti(x);
S7、将步骤S3中获取的Ai-1、步骤S6中获取的ti(x)与延时获取的第i帧图像Ii(x)运算,获取第i帧图像的去雾图像Ji(x):
Figure FDA0003244803580000021
式中,i=2,3,4…;
其中步骤S3、S4、S5与步骤S7中延时获取第i帧图像Ii(x)多路并行处理;
步骤S4中,卷积神经网络运算采用数据并行与乘法器并行相结合以用于实现运算速度与运算资源的平衡;
步骤S4中,卷积神经网络的运算模式包括核间并行运算、核内并行运算以及数据并行流通,其中:
核间并行运算,卷积神经网络卷积层中多个卷积核进行分组并行运算,对输入卷积神经网络卷积层的数据串行分流,一次进行一路数据与卷积核的乘累加运算,再将多路乘累加结果求和,完成多路信号的卷积;
核内并行运算,卷积神经网络卷积层中单个卷积核的运算,核内所有参数与对应数据同时进行并行乘法运算,再将所有乘法运算结果求和;
数据并行流通,卷积神经网路模型中,卷积层的计算结果直接流入与其衔接的下一个池化层,池化层的计算结果进行串行编排后流入与其衔接的下一个卷积层。
2.根据权利要求1所述基于FPGA卷积神经网络的航拍图像实时去雾方法,其特征在于,步骤S3中,求取第i-1帧图像的暗通道图像,具体包括:
S311、比较每个像素R、G、B三个通道中的像素值,求取三个像素值中的最小值;
S312、将步骤S311求取的像素值最小值输入FIFO进行缓存,先缓存4行完整像素信息,当保存到第5行第5个像素时,生成第一个5×5局部区域,之后每当从输入视频中保存一个新的像素就会生成一个新的5×5局部区域,对FIFO进行控制切换,交替进行完成一帧画面的处理;
S313、在当前生成的5×5局部区域中求出最小值,即当前像素的暗通道像素值D(x)。
3.根据权利要求2所述基于FPGA卷积神经网络的航拍图像实时去雾方法,其特征在于,步骤S3中,计算第i-1帧图像的大气光值Ai-1,具体包括:
S321、设定大气光值的初始值A0
S322、对暗通道像素值按照时间顺序进行两两比较,求得最大的暗通道像素值Dmax'(x);
S323、将Dmax'(x)与A0进行比较,取两者中的较大值,得到大气光值Ai-1
4.根据权利要求1所述基于FPGA卷积神经网络的航拍图像实时去雾方法,其特征在于,步骤S6中,所述滤波为均值滤波。
5.根据权利要求4所述基于FPGA卷积神经网络的航拍图像实时去雾方法,其特征在于,步骤S6中,第i帧图像的精细透射率ti(x)计算过程具体包括:
S61、获取粗糙透射率t'(x)形成的与当前图像等尺寸的矩阵t'作为引导滤波器的输入图像、设置步骤S5中获取的灰度图像g为引导图像,其中滤波时正方形窗口半径为r,以点k为中心的窗口为ωk
S62、计算输入图像t'中每个窗口ωk的均值
Figure FDA0003244803580000041
Figure FDA0003244803580000042
其中t′j为输入图像t'中点j的亮度;
S63、计算向导图像g中每个窗口ωk的均值
Figure FDA0003244803580000043
Figure FDA0003244803580000044
其中gj为向导图像g中点j的亮度;
S64、计算每个窗口ωk中输入图像t'与向导图像g的协方差
Figure FDA0003244803580000045
Figure FDA0003244803580000046
S65、计算每个窗口ωk中向导图像g的方差
Figure FDA0003244803580000047
Figure FDA0003244803580000048
S66、计算每个窗口ωk对应的ak
Figure FDA0003244803580000051
其中ε为平滑系数,用于控制ak的最大值;
S67、计算每个窗口ωk对应的bk
Figure FDA0003244803580000052
S68、计算每个窗口ωk中所有点对应的ak的均值
Figure FDA0003244803580000053
Figure FDA0003244803580000054
S69、计算每个窗口ωk中所有点对应的bk的均值
Figure FDA0003244803580000055
Figure FDA0003244803580000056
S610、计算最终的输出图像tk
Figure FDA0003244803580000057
其中tk即为精细透射率ti(x)。
6.基于FPGA卷积神经网络的航拍图像实时去雾无人机,包括机体与设在机体内的机载电路板,所述机载电路板上设有FPGA与PROM存储器,所述PROM存储器存储有计算机程序,其特征在于,所述FPGA执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
CN201811358348.2A 2018-11-15 2018-11-15 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机 Active CN109493300B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811358348.2A CN109493300B (zh) 2018-11-15 2018-11-15 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811358348.2A CN109493300B (zh) 2018-11-15 2018-11-15 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机

Publications (2)

Publication Number Publication Date
CN109493300A CN109493300A (zh) 2019-03-19
CN109493300B true CN109493300B (zh) 2022-05-20

Family

ID=65694948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811358348.2A Active CN109493300B (zh) 2018-11-15 2018-11-15 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机

Country Status (1)

Country Link
CN (1) CN109493300B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070182B (zh) * 2019-04-01 2021-08-24 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法
CN109978799B (zh) * 2019-04-15 2021-03-23 武汉理工大学 一种基于深度学习的海事无人机视频图像去雾方法
CN111369472B (zh) * 2020-03-12 2021-04-23 北京字节跳动网络技术有限公司 图像去雾方法、装置、电子设备及介质
CN112033371B (zh) * 2020-05-11 2022-08-26 中国人民解放军国防科技大学 一种无人机载单目标板自适应能见度探测方法及系统
CN111738959B (zh) * 2020-06-30 2022-08-19 福州大学 一种基于fpga的视频图像实时除雾方法
CN112054857A (zh) * 2020-07-23 2020-12-08 上海无线通信研究中心 一种用于星地通信的信道模拟器及信道模拟方法
CN112184670B (zh) * 2020-09-29 2023-11-17 上海飞机制造有限公司 一种喷丸强化表面覆盖率的检测方法
CN114648467B (zh) * 2022-05-18 2022-08-16 中山大学深圳研究院 图像的去雾方法、装置、终端设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714520A (zh) * 2013-12-26 2014-04-09 深圳英飞拓科技股份有限公司 基于fpga实现数字视频图像增强系统及其方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106023091B (zh) * 2016-04-22 2019-05-24 西安电子科技大学 基于图形处理器的图像实时去雾方法
FR3050846B1 (fr) * 2016-04-27 2019-05-03 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel
CN106023118B (zh) * 2016-06-13 2018-12-04 凌云光技术集团有限责任公司 一种图像去雾方法及其在fpga上的实现方法
CN106600560B (zh) * 2016-12-22 2019-07-12 福州大学 一种适用于行车记录仪的图像去雾方法
CN106933579A (zh) * 2017-03-01 2017-07-07 西安电子科技大学 基于cpu+fpga的图像快速去雾方法
CN108229525B (zh) * 2017-05-31 2021-12-28 商汤集团有限公司 神经网络训练及图像处理方法、装置、电子设备和存储介质
CN107316286B (zh) * 2017-07-07 2020-05-22 北京邮电大学 一种图像中雨雾同步合成、去除的方法和装置
CN107704921A (zh) * 2017-10-19 2018-02-16 北京智芯原动科技有限公司 基于Neon指令的卷积神经网络的算法优化方法及装置
CN108460743A (zh) * 2018-03-19 2018-08-28 西安因诺航空科技有限公司 一种基于暗通道的无人机航拍图像去雾算法
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108805839A (zh) * 2018-06-08 2018-11-13 西安电子科技大学 基于卷积神经网络的联合估计图像去雾方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714520A (zh) * 2013-12-26 2014-04-09 深圳英飞拓科技股份有限公司 基于fpga实现数字视频图像增强系统及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA的雾天图像恢复算法研究;蒋守欢;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160615;第II页摘要第1段、正文第30页3.5节 *
雾天退化模型参数估计与CUDA设计;余春艳 等;《计算机辅助设计与图形学学报》;20180228;第30卷(第2期);第327页摘要、329页2.2节第4-5段、330页左栏第1-6段 *

Also Published As

Publication number Publication date
CN109493300A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109493300B (zh) 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机
CN112233038B (zh) 基于多尺度融合及边缘增强的真实图像去噪方法
CN110570371B (zh) 一种基于多尺度残差学习的图像去雾方法
CN109360171B (zh) 一种基于神经网络的视频图像实时去模糊方法
WO2022042049A1 (zh) 图像融合方法、图像融合模型的训练方法和装置
CN110544213B (zh) 一种基于全局和局部特征融合的图像去雾方法
CN112446380A (zh) 图像处理方法和装置
CN110458765B (zh) 基于感知保持卷积网络的图像质量增强方法
CN110796009A (zh) 基于多尺度卷积神经网络模型的海上船只检测方法及系统
CN104504658A (zh) 基于bp神经网络的单一图像去雾方法及装置
CN108564549A (zh) 一种基于多尺度稠密连接网络的图像去雾方法
CN112348747A (zh) 图像增强方法、装置及存储介质
CN111986084A (zh) 一种基于多任务融合的多相机低光照图像质量增强方法
CN114742719A (zh) 一种基于多特征融合的端到端图像去雾方法
CN110136162B (zh) 无人机视角遥感目标跟踪方法及装置
CN116596792B (zh) 一种面向智能船舶的内河雾天场景恢复方法、系统及设备
CN112164010A (zh) 一种多尺度融合卷积神经网络图像去雾方法
Zheng et al. Low-light image and video enhancement: A comprehensive survey and beyond
CN113420794A (zh) 一种基于深度学习的二值化Faster R-CNN柑橘病虫害识别方法
CN112419163A (zh) 一种基于先验知识和深度学习的单张图像弱监督去雾方法
Fu et al. An anisotropic Gaussian filtering model for image de-hazing
CN116152128A (zh) 基于注意力机制的高动态范围多曝光图像融合模型及方法
CN111753671A (zh) 一种现实场景的人群计数方法
CN115797205A (zh) 基于Retinex分数阶变分网络的无监督单张图像增强方法及系统
Cui et al. A novel underwater image restoration method based on decomposition network and physical imaging model

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
CP01 Change in the name or title of a patent holder

Address after: 410000 1501, building 1, Xincheng Science Park, Lugu street, Yuelu District, Changsha City, Hunan Province

Patentee after: Hunan Kunpeng Zhihui Technology Co.,Ltd.

Address before: 410000 1501, building 1, Xincheng Science Park, Lugu street, Yuelu District, Changsha City, Hunan Province

Patentee before: HUNAN KUNPENG ZHIHUI UNMANNED PLANE TECHNOLOGY CO.,LTD.

CP01 Change in the name or title of a patent holder