摘要
随着智能手机的不断发展,智能手机的普及率越来越高,同时还搭载了高分辨率相机,在高分辨率手机相机下可以清楚地看见人眼难以看清楚的人民币纹理细节。针对人民币细粒度鉴伪特征的性质,以及需在移动终端,嵌入式等计算、存储资源有限的设备上实现高精度、高效率的人民币鉴伪工作的需求,本文工作从以下方面展开研究: (1)开展人民币采集工作,设计了一款人民币采集APP,一张人民币采集的所有图片均存储在以其冠字号命名的文件夹内。每张人民币的命名方式是通过数字化其采集场景要求实现的。并设计数据集存储方案,根据相关要求建立了规范、严谨的真假样本库。 (2)设计并实现了双通路注意力网络的人民币细粒度鉴伪特征分类。基于现有的Dual Path Network(简称DPN),通过分析国徽图像经过卷积层生成的特征图,发现存在许多相似的特征图对,就像彼此的幻影一样,本文提出在DPN网络的基础上,引入Ghost模块,对其block中第一层和第三层的1*1卷积进行替换,以很小的代价生成许多能从特征图里发掘所需信息的幻影特征图。为了增强特征表示,通过引入注意力机制让其更加专注于人民币鉴伪特征区域的细粒度特征提取。并在CBAM的基础上,研究分别使用通道注意力模块、空间注意力模块,以及两者组成的混合域模块,注意力机制添加的位置等对网络性能的影响。最后受ECA-Net网络的启发,对通道注意力模块提出改进,使得在不影响预测准确的情况下,模型大小、参数量、浮点数运算量都有所减少。 (3)针对上述提出的网络,提出并实现了一种对3*3卷积在训练的时候进行权重剪枝的方法,且在预测时避免使用稀疏矩阵,本文在权重剪枝的时候使每一组滤波器中各个滤波器的输入特征是相同的,将稀疏的权重矩阵调整顺序复制到普通分组卷积中,在预测阶段可以通过index索引调整输入特征图的顺序,即可使用普通分组卷积参与计算。其次,本文对训练结束之后的全连接层设计了两种压缩方法,1、应用SVD奇异值分解的方法,减少参数量,并进行参数微调,此方法全连接层的参数量减少一半,但是正确率也影响较多。2、受上述3*3卷积层剪枝的启发,提出了基于Dropout的全连接层参数修剪,此方法可以在不影响正确率的情况下将全连接参数修剪到50%,甚至30%。 (4)设计并实现了安卓端实时人民币鉴伪系统。首先运用了两种Int8量化方式,分别是训练后静态量化和量化感知训练。由于训练后静态量化,模型准确率下降比较多,所以又进行了量化感知训练,在量化的过程中对网络进行训练,获得了不错的正确率且模型体积降低到原来的1/4。接着,实现了float模型和quantization模型在android手机上3种前向推理框架(TensorFlow Lite,NCNN,PytorchMobile)中进行部署,设计并实现了android端人民币鉴伪系统,并对模型推理在不同框架下使用CPU、GPU、多线程CPU等的运行速度进行了对比实验。