赵艳芹,张 钰
(黑龙江科技大学 计算机与信息工程学院,黑龙江 哈尔滨,150022)
车牌识别在智能交通系统和公共安全领域中起着重要作用,但是由于摄像机与车辆距离较远、光照不足、相对运动等原因,往往导致获取的车牌图像分辨率较低,从而影响了车牌图像的读取辨识能力及其后续应用[1]。因此,为了增强车牌识别精度,从低分辨率车牌图像重建得到高分辨率图像显得尤其重要。图像超分辨率重建是由Tsai等[2]首次提出,之后一些学者在此基础上进行了改进和发展[3]。SRCNN是由Dong等[4]提出的,之后为了加速和改进SRCNN,Dong等[5]提出了FSRCNN。2014年,Goofellow等[6]首次提出了生成式对抗网络(Generative Adversarial Networks,GAN)。受GAN的启发,Ledig等[7]首先将生成式对抗网络应用于单幅图像超分辨率重建任务中,提出了SRGAN。随后,Wang等[8]对SRGAN进行了改进,将残差密集块(Residual-in-Residual density Block,RRDB)引入到生成器的网络中,并提出了增强超分辨率生成对抗网络(ESRGAN),ESRGAN使用相对判别器来预测相对真实度,而不是SISR中的普通绝对差。然而,现如今的车牌图像超分辨率重建算法样本训练过程太耗时,需要大量的计算资源和时间[8],限制其在交通监控等实时应用中的实用性。为此,笔者提出一种轻量化的基于生成对抗网络的车牌图像超分辨率重建方法(S-ESRGAN)。
ShuffleNet是一个高效的卷积神经网络架构,其设计目的是减少计算资源和内存使用,同时在各种计算机视觉任务上仍然取得最先进的性能。Zhang等[9]设计了ShuffleNet V1模型,该模型有效的降低了计算量。为了弥补点态群卷积的缺陷,提出了Channel Shuffle操作。该操作在可微的同时又能嵌入进网络结构中进行端对端训练,可以加强网络性能。为了构建一个更轻量级的模型,Ma等[10]提出了ShuffleNet V2,指出瓶颈单元和逐点组操作会增加内存访问成本,大量的群组会降低并行度。针对这些问题,Ma等[10]又提出了信道分裂来替代分组操作,将输入信息分成两个分支。
S-ESRGAN生成器结构主要有3个部分:浅层特征提取、深层特征提取和重建模块(图1)。LR是输入的低分辨率图像,输入的低分辨率图像首先会进入浅层特征提取网络,浅层特征提取网络包括卷积层和LeaklyReLU函数部分。浅层特征提取网络主要用于提取边缘信息,完成空间维度到特征维度的映射。本层的激活函数使用LeaklyReLU函数,以避免丢失小于0的数据。然后,进入深层特征提取网络部分,将特征信息传入无序挤压和激励模块(SSEB)提取深层特征,无序挤压和激励模块是特征提取的主要模块。最后,进入重建模块,经过卷积和上采样操作,得到生成的高分辨率图像(SR)。
图1 S-ESRGAN生成器网络结构
S-ESRGAN使用相对判别器作为判别器网络[11](图2)。与其他普通判别器不同,相对判别器输出的是相对概率,即真实图像和生成器的生成图像之间的相对真实概率。判别器的特征提取部分由卷积层组成,BN为批处理规范化层,Dense为全连接层。
图2 S-ESRGAN判别器网络结构
为了实现车牌图像超分辨率重建的轻量化,本次研究在算法框架中引入ShuffleNet V2的设计概念和利用SE网络[12]结合残差学习,提出无序挤压和激励模块(Shuffle Squeeze and Excitation Blocks)。
无序挤压和激励模块结构见图3。其中,DWCONV为深度卷积层,FC为全连通层。在每个无序挤压和激励模块的开始,先执行通道分裂(Channel Split)的操作。把输入的特征图一分为二,左侧的分支直连接触层(Concat),右侧的分支又分为卷积分支和残差分支,这两个分支最后逐个元素相加,并且在ReLu激活函数之后连接到底部残差分支。卷积分支的上部包含3个卷积层和1个SE模块。通过触点的操作,输入通道的数量等于输出通道的数量,从而使内存访问量最小化。最后,利用Channel Shuffle操作进一步增强信息交换。
图3 S-ESRGAN中的无序挤压和激励模块结构
无序挤压和激励模块结构中的SE模块主要分为3个部分:挤压、激励和缩放(图3)。GAP表示全局平均池化层。在挤压段引入全局平均池化层,添加基于通道维数的全局空间信息。此外,在激励部分,2个完全连接的层被用来收集来自前一部分的信息。激励部分是为了捕获通道之间的信息依赖关系。最后,使用Sigmoid函数获得0~1之间的归一化权重,分配给输入特征图的每个通道。
判别器网络损失函数:鉴别器DRa可以得到2个输出,分别为Dreal和Dfake。表达式如下:
Dreal=C(IHR)-E(C(ISR))
(1)
Dfake=C(ISR)-E(C(IHR))
(2)
其中,Dreal表示DRa的结果是真实图像(HR图像)的平均概率,Dfake表示DRa的结果是生成图像(SR图像)的平均概率,C(·)是鉴别器的函数,E(·)表示对小批量数据求平均值的函数。
生成器网络的损失函数:本次研究使用感知损失函数、内容损失和对抗损失的总和作为生成器网络的损失函数。
(3)
式中α,β为平衡各种损失项的系数。
2.4.1峰值信噪比(Peak Signal-to-Noise Ratio,PSNR) PSNR是一种用于度量重建图像与原始高清图像之间的差异的评价指标。PSNR指标越高,图像质量越好。
(4)
其中,MaxI表示图像中像素值中的最大值,MSE表示2个图像之间对应像素之间差值的平方的均值,MSE是原图像与处理图像之间均方误差。单通道图像的MSE计算公式为:
(5)
2.4.2结构相似性指标(Structural Similarity Index,SSIM) SSIM是一种用于度量重建图像与原始高清图像之间的结构相似性的评价指标,其取值范围为[0,1]。SSIM的值越大,表示图像失真程度越小,图像质量越好。
给定2个图像,结构相似性可按照以下方式计算:
(6)
其中μ为图像的平均值,σ2为图像的方差,C1=(k1L)2,C2=(k2L)2,C1和C2是用来维持稳定的常数,其中的L是像素值的动态范围。当2张图像完全相同时,SSIM的值等于1。
2.4.3FLOPs(FLoating point Operations Per Second) FLOPs是每秒浮点运算次数,用来衡量深度学习模型的计算复杂性或成本的一个指标。
数据集使用的是中国城市停车数据集(CCPD)。该数据集是一个大型的、多样化的,而且被仔细标注过的开源数据集,但是数据集中的图片数量过多,无用的信息过多,不能直接作为本次研究算法的数据集,因此需要对数据集进行预处理。考虑到计算资源,首先要从CCPD数据集图片中选取2 000付车牌图像,其中80%为训练集,20%为测试集。因为数据集中的图片无用信息过多,所以需要进一步对数据集处理,使用OpenCV裁剪出车牌区域图片,之后使用MATLAB对图片进行降采样处理,然后使用高分辨率的图片和相应的低分辨率图片进行对抗训练。
在运行时间方面,为了保证重建车牌图片的质量,S-ESRGAN运行时间只和基于生成对抗网络的算法作对比。本次研究计算了用其他基于生成对抗网络的算法和S-ESRGAN将输入的40×20的低分辨率图像重建为320×160图像所需的时间。结果表明,在运行时间方面,S-ESRGAN运行时间优于SRGAN和ESRGAN。SRGAN处理每幅图像的平均时间为76.14 ms,ESRGAN处理每幅图像的平均时间为91.04 ms,而S-ESRGAN处理每幅图像的平均时间为74.54 ms,相较于ESRGAN缩短了18.1%(表1)。
表1 各算法重建图像运行时间
各方法8倍重建图像评价指标见表2。试验结果表明,与SRGAN比较,S-ESRGAN的PSNR值和SSIM值分别提高了0.437 7 dB和0.005 5。虽然S-ESRGAN的PSNR和SSIM指标略小于ESRGAN的,但是S-ESRGAN的算法计算量远远少于ESRGAN,实现了轻量化。
表2 各算法8倍重建图像评价指标对比
典型车牌图像重建对比图见图4~图7,典型图像使用不同算法重建的评价指标见表3。可以看出,基于生成对抗网络的算法比基于卷积神经网络的算法具有更高的PSNR值和SSIM值。S-ESRGAN的PSNR和SSIM指标比Bicubic, SRCNN, FSRCNN等非生成对抗网络的方法有很大的提升。与其他基于生成对抗网络的方法对比,S-ESRGAN的指标PSNR和SSIM指标平均只有小幅度提升,而与重建图像效果最好的ESRGAN相比,只是逊色少许。
表3 典型车牌图像使用不同算法重建的评价指标
图4 典型车牌图像1各算法重建效果对比 图5 典型车牌图像2各算法重建效果对比
图6 典型车牌图像3各算法重建效果对比 图7 典型车牌图像4各算法重建效果对比
本次研究设置无序挤压和激励模块的数量在15~25之间,然后用数据集进行验证,计算不同数量的无序挤压和激励模块平均PSNR和SSIM的值。随着模块数量增多,PSNR和SSIM平均数值越来越高,但是到达某个值之后,评价指标数值会开始降低(图8,图9)。当模块数量达到18个时,SSIM和PSNR达到最高值,所以设置无序挤压和激励模块的数量为18个。
图8 S-ESRGAN中无序挤压和激励模块数量对PSNR的影响
图9 S-ESRGAN中无序挤压和激励模块数量对SSIM的影响
为了实现车牌图像超分辨率重建的轻量化,提出了一种基于生成对抗网络的车牌图像的超分辨率重建方法S-ESRGAN,引入了ShuffleNet V2的设计概念,提出了无序挤压和激励模块,在保证重建图像质量的前提下实现了轻量化。试验结果表明,虽然S-ESRGAN在PSNR,SSIM这两个图像评价指标上略逊色于生成效果最好的ESRGAN,但在计算量和重建时间方面都明显优于ESRGAN。