一种基于语义信息和梯度监督的船牌图像超分辨方法与流程

文档序号:28492419发布日期:2022-01-15 03:05阅读:155来源:国知局
一种基于语义信息和梯度监督的船牌图像超分辨方法与流程

1.本发明属于深度学习、图像处理、航运河道船只智能管理与监控、超分辨重建的技术领域,涉及一种基于生成对抗网络,以语义信息和梯度监督为指导的船牌图像超分辨率方法。


背景技术:

2.中国航运水路运输系统发达,内河网络结构完善,港口分布稠密,极大地推动了货船航运产业的发展。内河航运已然成为现代综合运输体系的重要组成部分,是水资源合理开发和综合利用的主要内容之一。据统计,仅2020年10月份全国水路货物运输总量就达到了70,659万吨,货物周转量达到92,539,819万吨。因此保证船只行驶规范、高效和安全,对于打造全信息化、智能化内河航运系统具有重要意义,是构建智慧型水上“高速公路”的基础。
3.对船舶的监管,目前主要靠通过运河两岸、码头、港口等地安装监控摄像头,通过拍摄船只图像(主要是船只上悬挂的船牌文字图像)进行监管。然而在实际获取船牌文字的场景中,由于船舶距离摄像头过远、空气质量较差、硬件设备老旧、图像传输等因素,常常会造成摄像头采集到的船牌文字图像变得模糊,模糊的船牌文字图像不利于进一步的船牌文字识别工作,也不利于作为船舶违规行驶的证据保留,更不利于船舶在交管部门监管下的安全行驶。因此急需一种解决船牌文字图像模糊、提升船牌文字分辨率的方案。
4.目前主要的解决方案有基于传统方法和基于深度学习两种,但这些方案在船牌文字超分辨中又存在着诸多问题:1)传统的图像超分辨方法由于算法相对简单,在模糊船牌文字上的表现效果不佳。2)深度学习方法中,用双三次线性插值构建训练数据集的方法不能满足实际场景的应用。3)深度学习的超分辨方法缺乏对船牌文字区域语义特征的研究,使得算法针对文字超分辨的效果不理想。4)现有的深度学习方法在处理文字锐化效果方面仍有欠缺。因此,目前依然缺乏针对船牌文字超分辨方法。


技术实现要素:

5.本发明的目的是针对现有技术的不足,提供一种基于语义信息和梯度监督的船牌图像超分辨方法。
6.本发明采取的技术方案包含以下步骤:
7.步骤1:收集船舶原始图像并进行预处理。
8.首先拍摄河道中原始船舶图像(含船牌文字),并进行人工标注船牌文字位置,裁剪得到高分辨率船牌文字区域图像(以下简称hr文字图像)。随后对hr文字图像进行降采样操作并加入噪声,生成低分辨率船牌文字区域图像(以下简称lr文字图像),完成船牌文字数据集的构造。
9.步骤2:针对于船牌文字,构建特征提取网络和超分辨重建网络,形成生成网络模型。然后通过df2k数据集进行对抗学习预训练,在判别器的指导下,通过对抗学习对生成网
络模型参数进行预训练,得到生成网络预训练模型。
10.步骤3:在生成网络预训练模型基础上引入双向lstm(blstm)结构,增强对船牌文字区域的语义特征提取;采用船牌文字数据集,进行训练。
11.步骤4:在进行对抗学习训练时,由于船牌文字区域具有一定的锐度,因此为了更好的指导网络生成超分辨的船牌文字,增加文字梯度损失函数以加强对生成网络的监督。
12.所述步骤1,具体操作如下:
13.1-1、根据不同光照、距离、清晰(模糊)程度,在河道中拍摄船舶的高清图像和真实模糊图像,以增强数据集分布的多样性。然后对其中的高清图像和模糊图像中的船牌文字区域进行剪裁,对应得到hr文字图像和真实低分辨船牌文字图像,其中真实低分辨船牌文字图像作为测试集在训练完成后进行模型验证。
14.1-2、对于提取船牌文字图像原生噪声部分,根据设定的船牌文字噪声patch大小,对噪声patch的方差和均值进行限制,选取方差和均值均在设定阈值区间内的噪声patch区域并保存,遍历所有hr文字图像后得到噪声patch池。
15.船牌文字图像中噪声patch的均值、方差计算公式如下:
[0016][0017][0018]
其中x
p
代表噪声patch中的第p个像素值,p代表每个噪声patch中的像素总个数,m代表噪声patch的均值,s2代表噪声patch的方差。
[0019]
由于需要构建低分辨船牌文字图像,使用双三次插值(bicubic)的方式,对hr文字图像进行缩放,形成初步人工模糊图像。降采样公式如下:
[0020]
id=(i
hr
*k
bic
)
↓sꢀꢀ
(3)
[0021]
其中,id表示初步人工模糊图像,i
hr
表示hr文字图像,k
bic
表示双三次插值核,s表示降采样倍数。
[0022]
1-3、对初步人工模糊图像添加噪声。噪声的来源有3个方面,包括高斯噪声、jpeg压缩噪声和步骤1-2提取到的真实噪声。依次按照高斯噪声、jpeg压缩噪声和真实噪声的顺序,对初步人工模糊图像进行噪声添加,获取最终的lr文字图像,此时便完成对船牌文字数据集的构建。高斯噪声的概率密度计算方式如下:
[0023][0024]
其中x为随机变量,p(x)为概率密度,δ为标准差,μ为均值。依次添加高斯噪声、jpeg压缩噪声和真实噪声patch的公式如下:
[0025]ilr
=id+ng+n
jpeg
+ni,i∈{1,2,...,m}
ꢀꢀ
(5)
[0026]
其中,i
lr
表示lr文字图像,id表示初步人工模糊图像,ng表示高斯噪声,n
jpeg
表示jpeg压缩噪声,ni表示从噪声patch池中随机提取的一个噪声patch。m表示噪声patch池中的噪声patch的数量。
[0027]
所述步骤2,具体操作如下:
[0028]
2-1、针对于船牌文字,构建输入数据形状为(n,c,h,w)的特征提取网络和超分辨重建网络,形成生成网络模型。因为最终是为了训练船牌数据,所以此处直接针对船牌训练设置有网络输入形状。
[0029]
在特征提取部分,为保证将来生成图像的多样性和细节丰富,网络中不使用标准的bn层。网络首先采用标准卷积层,对输入的df2k数据集中的低分辨图像特征进行简单提取。然后通过一系列的卷积模块,搭建足够深的神经网络对图像的抽象特征进行提取,为保证浅层网络特征高效传播和避免梯度消失,本方法采用了残差连接和密集连接的方式,对深层网络进行优化。残差连接的计算公式如下:
[0030]
x
l
=f(x
l-1
)+x
l-1
ꢀꢀ
(6)
[0031]
其中,x
l-1
表示残差单元的输入特征,f(x
l-1
)表示学习到的加权后的残差映射,x
l
表示残差单元的输出特征。密集连接的计算公式如下:
[0032]
x
l
=f([x1,x2,...,x
l-1
])
ꢀꢀ
(7)
[0033]
其中,x1,x2,...,x
l-1
表示密集连接单元的各个输入特征,f([x1,x2,...,x
l-1
])表示密集连接的映射函数,x
l
表示密集连接单元的输出特征。
[0034]
最后,通过插值、卷积并激活的操作,对特征提取后的图像进行超分辨率重建,得到超分辨率重建图像。卷积并激活的公式如下:
[0035][0036]
其中x为输入特征,y为激活后的输出特征,w为卷积层权重,b为卷积层偏置,relu为激活函数。
[0037]
2-2、通过df2k数据集进行对抗学习预训练。
[0038]
在判别网络中,输入生成图像(超分辨率重建图像)和真实图像(df2k数据集中的高分辨图像),通过对抗学习对生成网络模型参数进行预训练,最终得到一个参数初始化良好的生成网络预训练模型。这部分主要包括判别网络的搭建和损失函数的构建。
[0039]
在搭建判别网络时,使用卷积层、bn层和线性映射层作为判别网络的主要模块。在卷积层的搭建中,使用较大的卷积核,为了能够使网络获得较大感受野,提取到图像的全局的信息,使得判别网络更能够从图像的整体角度判别图像的真实性。每层卷积后再进行数据归一化操作,即加入bn层,这种操作能够稳定网络训练,增强鲁棒性。数据归一化的公式如下:
[0040][0041]
其中x为需要归一化的输入数据,y为归一化后的结果,mean(x)和var(x)分别为输入数据的均值和方差,eps为防止分母为0的量,γ和β为可训练参数。
[0042]
最后,通过线性映射层,将图像特征的高维数据转换为向量,最终通过激活层将该向量映射成输入图像(超分辨率重建图像或df2k数据集中的高分辨图像)为真实高分辨图像的概率。线性映射层的计算公式如下:
[0043]
y=x
·at
+b
ꢀꢀ
(10)
[0044]
其中x为线性映射层的输入,a
t
为线性映射层的权重,b为线性映射层的偏置,y为
线性映射层的输出。
[0045]
sigmoid激活函数的计算公式如下:
[0046][0047]
其中x为输入数据,f(x)为概率。
[0048]
2-3、在预训练网络中,损失函数主要由l1损失(l
1 loss)、感知损失(perceptual loss)和对抗损失(adversarial loss)三部分构成。总的损失函数计算公式如下:
[0049]
l
total
=λ1·
l1+λ
per
·
l
per

adv
·
l
adv
ꢀꢀ
(12)
[0050]
其中,l1、l
per
和l
adv
分别表示l1损失、感知损失和对抗损失,λ1、λ
per
和λ
adv
分别表示对应损失函数的权重。
[0051]
这三部分损失的详细叙述如下:
[0052]
1)、l1损失衡量的是两幅图像之间的空间距离,可以计算两幅图像(hr和sr)像素级别的误差,能够增强两幅图像像素级的相似度,从而指导网络更好得生成sr图像。l1损失函数计算公式如下:
[0053]
l1=mean(ι(x,y))
ꢀꢀ
(13)
[0054]
ι(x,y)={c1,...,cn}
t
,ci=|x
i-yi|
ꢀꢀ
(14)
[0055]
其中,n代表batch size,x和y代表形状相同的任意尺寸的图像,c表示两幅图像像素级别的差值,mean代表对所有元素取均值操作。
[0056]
2)、感知损失通过将hr图像和sr图像分别输入预训练好的深度网络,然后提取中间层卷积后的特征图像做为感知特征。最终根据l1损失计算公式,计算hr图像和sr图像感知特征的l1距离,即可获得感知损失。
[0057]
3)、对抗损失衡量的是网络判别器的对图像判别结果的误差。在训练时,每次计算生成对抗损失函数,分别向判别器输入一个batch的真实图像和生成图像,判断输入图像是真实图像的概率。生成对抗损失函数计算公式如下:
[0058][0059]
其中,g表示生成网络,d表示判别网络,e表示期望,x表示真实图像数据,z表示生成网络的输入数据,g(z)表示生成图像数据。通过对上述表达式执行最大最小化,即可完成对判别网络d和生成网络g参数的优化。需要指出的是d(
·
)表示判定括号中内容为真实图像数据的概率。
[0060]
所述步骤3,具体操作如下:
[0061]
在生成网络预训练模型的基础上,增加语义信息提取模块,使微调后的生成网络预训练模型更好的适应船牌文字数据集的训练。在预训练好的生成网络模型的特征提取部分,加入双向lstm模块,对船牌文字进行语义特征的提取,从而指导网络更好的生成超分辨的船牌文字信息。lstm模块的计算公式如下:
[0062]
[0063]
其中,x
t
表示t时刻的输入数据,w为权重,h
t
表示t时刻的隐含状态,h

t
表示t时刻的候选隐含状态,r
t
表示t时刻的遗忘门,z
t
表示t时刻的更新门,σ表示sigmoid激活函数,tanh也是一种激活函数。
[0064]
所述步骤4,具体操作如下:
[0065]
在利用船牌文字数据集进行对抗学习训练时,由于文字区域具有一定的锐度,因此为了更好的指导网络生成超分辨的船牌文字,本方法增加文字梯度损失函数以加强对生成网络的监督。
[0066]
梯度损失函数是一种专门为了锐化图像边缘而设计的损失,本方法采用通过图像像素平移后相减计算梯度。在rgb三通道彩色图像的基础上,分别将图像向左、向右平移一个像素,然后将得到的两幅平移图像相减便可得到原彩色图像在水平方向上的梯度。同样的,分别将图像向上、向下平移一个像素,然后将得到的两幅平移图像相减便可得到原彩色图像在垂直方向上的梯度。然后按照如下公式进行计算,便可得到最终的彩色图像梯度损失:
[0067][0068]
其中,r、l、t、b分别表示向右、向左、向上、向下平移后的图像。
[0069]
通过对图像梯度的计算,可以在船牌文字数据集的训练过程中,提升船牌文字区域的锐化程度,从而提升船牌文字区域的清晰度。从而,整个网络的损失函数为:
[0070]
l
total
=λ
gra
·
l
gra
+λ1·
l1+λ
per
·
l
per

adv
·
l
adv
ꢀꢀ
(18)
[0071]
其中,l
gra
、l1、l
per
和l
adv
分别表示梯度损失、l1损失、感知损失和对抗损失,λ
gra
、λ1、λ
per
和λ
adv
分别表示对应损失函数的权重。
[0072]
最终,通过在预训练模型的基础上更新网络结构和损失函数,进而对船牌文字数据集进行训练,使得网络能够完成对船牌文字图像的超分辨提升。
[0073]
本发明的效益如下:
[0074]
本发明提出了一种高性能的、专门针对于船牌文字图像的超分辨率重建方法,通过本方法,能够明显提升船牌文字的清晰程度,帮助人工快速的辨识船牌信息,方便海河航运的交通管制,提高水路航运的安全性。由于现存的船牌数据集少,而且目前的构建数据集方法并不能使船牌超分辨网络的训练达到良好效果,因此本发明通过重新采集船牌数据,采用新颖的构建船牌数据集方法,对超分辨重建网络进行训练,使船牌超分辨重建效果得到了很大提升,对同领域的研究人员有一定的借鉴意义。同时,本方法使用大型数据集df2k对网络进行预训练,进一步提升了船牌超分辨重建的效果。不仅如此,本方法引入的双向lstm和梯度损失,充分利用了船牌的语义信息和文字边缘特有属性,测试推理时,能在几乎不损失推理时间的前提下,进一步提升网络超分辨重建后的船牌图像质量。
[0075]
本方法充分利用深度网络对图像抽象信息的提取能力,运用对抗和残差学习的思想,有效的提高了船牌图像的分辨率。通过船牌文字图像超分辨方法获取的高清晰度文字信息,能够作为船只航行过程中的证据保留。不仅如此,船牌文字图像超分辨方法在很大程度上弥补了老旧摄像头拍摄图像不清晰的缺点,在一定程度上延长了摄像头的工作寿命,提高了资源的利用率。最后,船牌文字图像超分辨技术也能够为船牌文字图像文字识别算法提供技术支持,以提高文字清晰度的方式,帮助船牌文字识别算法提高识别精度。本发明
提出的方法,无论在实现难度、预算成本还是经济效益上都有明显优势。
附图说明
[0076]
图1本发明的流程示意图;
[0077]
图2本发明在实际场景船牌文字上的应用效果图。
具体实施方式
[0078]
下面将结合附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施方案是本发明一部分实施方案,而不是全部的实施方案。基于本发明中的实施方案,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方案,都属于本发明保护的范围。
[0079]
有鉴于此,本发明提出了一种基于语义信息和梯度监督的船牌图像超分辨方法。其主要特点在于1)通过实地考察,采集了一批船牌数据,并且经过处理,人工合成了船牌数据集。2)通过在大型数据集上进行预训练,获取良好的网络初始化权重。3)充分利用船牌文字的独特优势,提出了在网络中融合双向lstm模块进行文字语义信息的提取,并且通过融合梯度损失函数,指导网络生成更清晰的文字边缘。在此基础上,本方法充分利用了对抗学习和残差学习的优势,完成对真实自然场景下的船牌文字图像的分辨率提升。
[0080]
如图1所示,本发明的算法流程主要包括以下步骤:
[0081]
步骤1,获取hr文字图像和真实模糊的船牌文字图像。在京杭大运河岸拍摄过往货船(含船牌文字)照片,通过人工标注船牌文字的中心位置坐标,剪裁出以船牌文字为中心的固定大小区域,作为hr文字图像。然后对hr文字图像进行原生噪声提取并保存,接着对hr文字图像进行降采样和添加噪声,获得最终的lr文字图像,至此由hr-lr对构成的船牌文字数据集便处理完毕。
[0082]
步骤1.1,通过拍摄,最终获得1774张分辨率为4752*3168的船舶图像作为原生数据。然后对图像中船牌文字中心点进行标注,定位船牌文字位置。考虑到数据集的清晰度和多样性,需要从1774张图像中,根据不同光照、不同距离、不同清晰程度和不同色调,选取900+张的高清船舶图像,以备裁剪高清船牌文字图像;同样的,为了充分测试模型生成超分辨图像的能力,从1774张图像中,选取261张不同模糊程度的船舶图像,以备裁剪真实低分辨船牌文字图像。
[0083]
步骤1.2,对900+张的高清船舶图像进行裁剪,可以获得480*480区域的仅含船牌文字区域的图像,同时,将部分船牌文字不完整的剪裁图像剔除,可获得最终的900张hr文字图像。对261张模糊的船舶图像进行剪裁,可以获得261张分辨率为120*120的真实模糊的船牌文字图像。
[0084]
步骤1.3,设置待提取噪声的patch大小并提取噪声。根据网络设置,输入的hr文字图像将会被切分为一系列分辨率为128*128子图,相应的lr文字图像将会被切分为分辨率为32*32的子图。因此,输入噪声patch设置为32*32。然后将hr文字彩色图像转为灰度图像,将32*32大小的区域按照32像素的步长遍历整个图像,获得一些列噪声patch候选区。然后计算各候选区的均值和方差,并和设置的阈值(均值最小阈值为0,方差最大阈值为20)作比较,符合要求则将噪声patch的位置信息保留。最后,通过将噪声patch的位置信息作用到彩
色hr文字图像上,获取最终的噪声patch。对所有的900张hr文字图像执行上述操作,便可完成对数据集中所有噪声patch的提取。
[0085]
步骤1.4,hr文字图像降采样获取初步人工模糊图像。使用matlab软件中的双三次插值(bicubic)方法对hr文字图像降采样,获得120*120的初步人工模糊图像。降采样公式如下:
[0086]
id=(i
hr
*k
bic
)
↓s[0087]
其中,id表示降采样后的初步人工模糊船牌文字图像,i
hr
表示高分辨船牌文字图像,k
bic
表示双三次插值核,s表示降采样倍数,选择s=4。
[0088]
步骤1.5,依次添加高斯噪声、jpeg压缩噪声和从hr文字图像中提取到的真实噪声patch。首先给生成的初步人工模糊图像加上均值为0、标准差为8.0的高斯噪声,然后对图像进行jpeg压缩,压缩质量为60(最高质量为100)。最后,通过从噪声patch库中随机提取噪声patch,叠加到jpeg压缩后的船牌文字图像上。高斯噪声的概率密度计算方式如下:
[0089][0090]
其中x为随机变量,p(x)为概率密度,δ为标准差,μ为均值。依次添加高斯噪声、jpeg压缩噪声和真实噪声patch的公式如下:
[0091]ilr
=id+ng+n
jpeg
+ni,i∈{1,2,...,m}
[0092]
其中,i
lr
表示lr文字图像,id表示降采样后的图像,ng表示高斯噪声,n
jpeg
表示jpeg压缩噪声,ni表示从噪声patch池中随机提取的一个噪声patch,m表示噪声patch池中的噪声patch的数量。通过上述操作,便得到了最终的lr文字图像,完成了hr-lr船牌文字数据集的构建。
[0093]
步骤2,针对于船牌文字,构建输入数据形状为(n,c,h,w)的特征提取网络和超分辨重建网络,形成生成网络。然后通过df2k数据集进行对抗学习预训练。在判别器的指导下,输入生成图像和真实图像,通过对抗学习对生成网络模型参数进行预训练,最终得到一个参数初始化良好的生成网络预训练模型。这部分主要包括判别网络的搭建和损失函数的构建。
[0094]
步骤2.1,特征提取网络的搭建。首先通过第一层普通卷积模块进行低级特征的提取,改模块的设置为:输入通道为3,输出通道为64,卷积核大小为3*3,步长为1,填充为1。然后进入高级特征提取的网络部分,首先通过密集连接,搭建如表1所示的密集连接单元,使得每一层的输入特征图均为之前所有层输出特征图的和;然后对每一个密集连接单元内部进行1次短残差连接;3个密集单元构成一个残差连接小组,每个残差连接小组内部再进行1次长残差连接;堆叠23个残差连接小组便构成了生成网络的高级特征提取部分。将网络第一层卷积提取到的低级特征送入网络高级特征提取部分,便完成了图像抽象特征的提取。
[0095]
表格1:密集连接单元结构
[0096]
连接层卷积核个数卷积核大小步长填充conv1323*311conv2323*311conv3323*311
conv4323*311conv5643*311lrelu////
[0097]
步骤2.2,超分辨重建网络。首先构建2倍放大因子的上采样单元,通过使用最近邻差值的方式,对特征图进行2倍的放大,然后对放大2倍的特征图执行卷积操作,卷积的设置如下:输入通道为3,输出通道为64,卷积核大小为3*3,步长为1,填充为1。最终进行relu激活即可得到2倍上采样单元。通过堆叠2个2倍上采样单元,即可完成对图像的x4倍的超分辨提升。
[0098]
步骤2.3,判别网络结构的搭建。首先通过64个3*3大小卷积核,在输入图像上执行步长为1填充也为1的卷积操作,提取到图像的低级特征图(64层)。然后通过9组由卷积层和2维批量标准化函数bn层构成的小单元,不断的提取输入图像中更抽象的高维特征。并且,随着网络提取图像的特征越来越抽象,特征图的层数也不断进行加深,最终获得512层的特征图,如表2所示。最后通过串联的两层全连接层,将3维特征图先后映射为1000维和100维的向量,然后在经过sigmoid激活层,便获得了该输入图像是真实图像的概率。本步骤获得的输入图像是真实图像的概率,将用于对抗损失函数计算。
[0099]
表格2:对抗网络主体结构
[0100][0101]
步骤2.4,损失函数的设置。损失函数的构成如下:l1损失、感知损失和对抗损失。l1损失是深度学习中常用的损失函数,在图像超分辨领域,l1损失旨在计算两幅(hr和sr)图像对应像素的误差。为了构建出更符合人眼视觉效果的超分辨图像,本方法在损失函数中加入感知损失,并和生成对抗网络结合使用。通过对抗损失,生成器能生成更加真实的图像,而判别器也能有更强的判别图像真伪(生成的还是真实的)的能力。总的损失函数计算公式如下:
[0102]
l
total
=λ1·
l1+λ
per
·
l
per

adv
·
l
adv
[0103]
其中,l1、l
per
和l
adv
分别表示l1损失、感知损失和对抗损失λ1、λ
per
和λ
adv
分别表示对应损失函数的权重。为了能够发挥损失函数的最大性能,本方法对各损失函数的权重设置如下值:λ1=10-2
,λ
per
=1,λ
adv
=5*10-3

[0104]
步骤2.4.1,l1损失函数的设置。l1损失函数衡量的是两幅图像之间的空间距离,可以计算两幅图像(hr和sr)像素级别的误差,能够增强两幅图像像素级的相似度,从而指导
网络更好得生成sr图像。其一般表达式如下:
[0105]
l1=mean(ι(x,y))
[0106]
ι(x,y)={c1,...,cn}
t
,ci=|x
i-yi|
[0107]
其中,n代表batch size,x和y代表形状相同的任意尺寸的图像,c表示两幅图像像素级别的差值,mean代表对所有元素取均值操作。
[0108]
步骤2.4.2,感知损失函数的设置。感知损失函数的获取,本方法通过将hr图像和sr图像分别输入预训练好的卷积神经网络,然后提取第5层卷积后的特征图像做为感知特征。根据步骤2.4.1的l1损失计算公式,计算hr文字图像和sr图像感知特征的l1距离,即可获得感知损失。
[0109]
步骤2.4.3,生成对抗网络损失函数的设置。在训练时,不同于经典计算生成对抗损失的方法,每次计算生成对抗损失函数,分别向判别器输入一个batch的真实图像和生成图像,然后做反向传播,同时优化生成网络和判别网络的参数。生成对抗损失函数计算公式如下:
[0110][0111]
其中,g表示生成网络,d表示判别网络,e表示期望,x表示真实图像数据,z表示生成网络的输入数据。通过对上述表达式执行最大最小化,即可完成对判别网络d和生成网络g参数的优化。
[0112]
步骤2.5,其他训练参数的设置。训练中,初始学习率设置为10-4
,并且设置学习率随训练衰减。迭代次数60000次,优化器使用adam优化器。程序在ubuntu发行版的linux系统中运行,gpu为nvidia rtx3070,训练时长约9小时。
[0113]
步骤3,微调预训练网络,提取文字语义信息,使得网络适应船牌文字数据集的训练。为对船牌文字图像进行超分辨提升,本方法将在预训练好的生成网络的特征提取部分,加入双向lstm模块,对船牌文字进行语义特征的提取,从而指导网络更好的生成超分辨的船牌文字信息。对于lstm模块中的参数,使用xavier_normal进行初始化,batch_firsr设置为true,lstm模块的计算公式如下:
[0114]zt
=σ(wz·
[h
t-1
,x
t
])
[0115]rt
=σ(wr·
[h
t-1
,x
t
])
[0116]h′
t
=tanh(w
·
[r
t
*h
t-1
,x
t
])
[0117]ht
=(1-z
t
)*h
t-1
+z
t
*h

t
[0118]
其中,x
t
表示t时刻的输入数据,w为权重,h
t
表示t时刻的隐含状态,h

t
表示t时刻的候选隐含状态,r
t
表示t时刻的遗忘门,z
t
表示t时刻的更新门,σ表示sigmoid激活函数,tanh也是一种激活函数。
[0119]
步骤4,在利用船牌文字数据集进行对抗学习训练时,由于文字区域具有一定的锐度,因此为了更好的指导网络生成超分辨的船牌文字,增加文字梯度损失函数以加强对生成网络的监督。
[0120]
步骤4.1,为了锐化船牌文字边缘,本方法引入梯度损失函数。本方法采用通过图像像素平后相减计算梯度。在rgb三通道彩色图像的基础上,分别将图像向左、向右平移一个像素,然后将得到的两幅平移图像相减便可得到原彩色图像在水平方向上的梯度。同样的,分别将图像向上、向下平移一个像素,然后将得到的两幅平移图像相减便可得到原彩色
图像在垂直方向上的梯度。然后按照如下公式进行计算,便可得到最终的彩色图像梯度损失:
[0121][0122]
其中,r、l、t、b分别表示向右、向左、向上、向下平移后的图像。将梯度损失融合到上述的损失函数中,得到整个损失函数:
[0123]
l
total
=λ
gra
·
l
gra
+λ1·
l1+λ
per
·
l
per

adv
·
l
adv
[0124]
其中,l
gra
、l1、l
per
和l
adv
分别表示梯度损失、l1损失、感知损失和对抗损失,λ
gra
、λ1、λ
per
和λ
adv
分别表示对应损失函数的权重。权重分别设置为λ
gra
=10-4
,λ1=10-2
,λ
per
=1,λ
adv
=5*10-3

[0125]
步骤4.2,对船牌文字数据集使用pytorch自带的数据增强工具进行数据增强操作,通过色调、饱和度、角度3各方面对船牌文字数据集进行扩充,用增强后的船牌文字数据集在微调后的网络及损失函数上进行训练。
[0126]
步骤4.3,其他训练参数的设置。训练中,初始学习率设置为10-4
,并且设置学习率随训练衰减。迭代次数80000次,优化器使用adam优化器。在linux系统中运行,gpu为nvidia rtx3070,训练时长约7+小时。
[0127]
步骤4.4,在步骤1中得到的261张真实模糊船牌文字数据上进行模型性能测试,完成船牌文字数据的最终训练,测试效果如图2所示。
[0128]
此时,整个网络中的生成网络结构,便能够完成从120*120低分辨率船牌文字图像到480*480的超分辨率船牌文字图像的重建,是最终所需要的超分辨率生成网络。
[0129]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1