江 凯,杨 凯,颜迪新,李子印,倪 军,陈 灿
(1.中国计量大学 光学与电子科技学院,浙江 杭州 310018;2.浙江省计量科学研究院 医学与电离辐射计量研究所,浙江 杭州 310018)
随着电子技术的不断发展,家用电子血压计自动检定系统已经成为应用于居民社区等公众场所便捷的检定设备。为了更好地保证电子血压计检定过程智能化,使用机器视觉代替人眼获取被检测的电子血压计关键信息,通过自动化填充到检测报告对应信息栏中,其中准确识别电子血压计的品牌型号成了非常重要的问题。传统的机器学习算法在电子血压计品牌型号识别任务上具有局限性。这些算法如支持向量机(support vector machine, SVM)和随机森林(random forest, RF)等,需要人工提取特征和选择模型,这可能会导致模型过拟合或欠拟合[1]。另外,它们可能无法处理数据中的复杂变化和噪声。而深度学习模型,特别是卷积神经网络(convolutional neural network, CNN)和生成对抗网络(generative adversarial network, GAN)模型的出现,为电子血压计品牌型号识别提供了新的思路和方法[2]。
CNN是一种基于卷积和池化操作的深度学习模型,它以不同的层次对输入数据进行逐层特征提取,并通过全连接层进行分类。Krizhevsky等[3]在2012年提出的AlexNet成功应用CNN进行图像分类,它在ImageNet大规模视觉识别竞赛中取得了巨大成功。随着深度学习技术的快速发展,CNN已经成为图像处理领域的主要研究方向。然而,对于具有多种复杂特征的图像,传统CNN可能无法充分提取全局特征。在电子设备识别任务中,已有相关研究使用CNN进行识别,如Wang等[4]中提出的基于深度CNN的电子设备识别方法,表明CNN比传统机器学习算法的性能更好。GAN是由Goodfellow等[5]提出的一种生成式模型,它由两个神经网络组成:生成器和判别器。生成器试图生成与真实数据相似的数据,判别器则试图区分真实数据和生成数据。两个网络在对抗的过程中不断迭代优化,最终生成器可以生成与真实数据相似的数据。GAN已经被广泛应用于生成逼真的图像,近年来也被用于图像恢复和增强任务。GAN可以学习图像的潜在分布,并生成与训练数据感知上相似的新图像。通过训练生成器网络以生成与真实图像相似的图像,GAN可以有效地恢复和增强降质图像。但是,尚未有研究使用生成对抗网络-卷积神经网络(GAN-CNN)联合模型进行电子血压计品牌型号的识别。GAN-CNN模型能够同时学习全局和局部特征,提高了对复杂图像变化的处理能力。它采用对抗性训练的方式,可以增强模型的鲁棒性,且对抗攻击和噪声的干扰具有一定的容忍度[6]。GAN模型的引入可以帮助提高数据的质量和多样性,从而增强CNN模型的学习能力和鲁棒性。
为了解决传统算法的局限性,本文提出一种基于GAN-CNN联合模型的电子血压计品牌型号识别方法。采用GAN来进行数据增强,在扩充数据集的同时,还能提高模型的泛化性能。利用CNN作为识别模型,提取电子血压计图片中的特征信息,并进行分类识别。
本文所采用数据集来自浙江省计量科学研究院2022年1-12月家用电子血压计公益检定的拍摄图片,选用常用的A、B、C、D、E五种品牌6种不同型号的电子血压计进行样本图片拍摄,分别从正面、侧面等9个角度对每种品牌每种型号采集100张图片作为样本集。图像分辨率为256×256像素,图像大小为256×256×3,每个图像都标注了所属品牌和型号。训练模型时,采用了交叉验证的方法,将数据集分为训练集、验证集和测试集,其中训练集用于训练模型,验证集用于调整模型的超参数,测试集用于评估模型的性能。其中A品牌a型号数据集采集样图如图1。
图1 A品牌a型号数据集采集样图Figure 1 A brand a model dataset collection sample
为了使数据的量纲保持一致使得模型易于训练,需要对数据进行处理,具体流程如图2。
图2 数据处理流程Figure 2 Data processing flow
其中数据增强的操作如表1。
表1 数据增强操作
其中归一化的处理公式为
(1)
式(1)中,X为电子血压计图片真实尺寸大小,Xn为归一化尺寸大小,XM为尺寸最大值,Xm为尺寸最小值。
本文采用准确率和相对误差作为评判标准对模型识别结果准确率进行评估,当准确度约接近100%或者相对误差接近0,模型识别越精确。具体公式如下:
(2)
式(2)中,yt为识别次数,pt为实际识别出次数。
GAN是由一个生成器和一个判别器组成的对抗网络。生成器用于生成与真实数据相似的虚假数据,而判别器用于将真实数据和虚假数据区分开来[7]。GAN的核心内容是最小化生成器和判别器之间的损失函数,以实现生成器生成更加真实的数据。
GAN是一种生成式模型,生成器网络接收一个随机噪声向量,生成一个虚假的数据样本,判别器网络接收这个虚假数据样本和真实数据样本,判断哪一个是真实的。生成器网络和判别器网络交替训练,通过对抗学习的方式,逐渐提升生成器网络的生成能力和判别器网络的判别能力。其框架图如图3。
图3 GAN框架图Figure 3 GAN frame diagram
GAN的损失函数包括两个部分,即生成器的损失函数和判别器的损失函数[8]。生成器的损失函数是由生成器生成的虚假数据与真实数据之间的差异计算而来,判别器的损失函数是由判别器将虚假数据和真实数据分开的能力计算而来。GAN的核心目标是通过最小化这两个损失函数来实现生成器生成更加真实的数据。GAN的损失函数如下:
LGAN(G,D)=EX~Pdata(x)[logD(X)]+
EZ~Pz(z)[log(1-D(g(z)))]。
(3)
式(3)中,D表示判别器网络,G表示生成器网络,D(x)表示判别器D对一个原始样本的评分,D(g(z))表示判别器D一个生成样本的概率;Pdata表示生成样本的概率分布,Pdata表示原始数据的概率分布。在训练过程中,将判别器网络损失函数值进行最大化,将生成器网络损失函数值进行最小化。
CNN是一种前馈神经网络,广泛用于图像识别任务中。CNN的核心内容是卷积层和池化层,这两个层次可以有效地提取图像的特征[9]。卷积层可以将原始图像转换为一组特征图,每个特征图都可以捕获图像的不同特征。池化层可以对特征图进行降采样操作,从而减少特征的数量,同时保留最重要的特征。其网络结构图如图4。
图4 CNN网络结构图Figure 4 CNN network structure diagram
CNN通过卷积层、池化层和全连接层等模块提取输入数据的特征,再通过softmax分类器实现分类[10]。CNN的核心模块是卷积层,卷积层通过滑动卷积核对输入数据进行卷积操作,提取数据的空间特征。池化层通过对输入数据进行降采样操作,减小数据维度和参数数量,防止过度拟合。全连接层将特征映射到类别概率分布上,实现分类。CNN的核心目标是通过学习卷积核和权重来最大化分类准确率。CNN的训练过程是通过反向传播算法来优化损失函数,以调整卷积核和权重的值。CNN的损失函数通常采用交叉熵损失函数,如下:
(4)
式(4)中,θ表示CNN的参数,N表示数据样本数量,M表示类别数量,yij表示第i个样本的真实标签,pij表示CNN预测为第j类的概率。
本文提出了一种优化的GAN-CNN模型,将GAN和CNN的优势结合起来,实现对电子血压计品牌型号的精准识别。该模型由GAN和CNN两部分组成,其中GAN用于提取电子血压计图片的结构信息和全局特征,CNN用于提取图片的局部特征。具体来说,首先使用GAN学习每个血压计图像的特征表示,然后将这些特征表示作为CNN的输入,以进一步提取特征。最后,使用多层感知器(multilayer perceptron,MLP)进行分类。GAN-CNN模型的核心内容是将GAN模型作为CNN模型的辅助模块,以增强CNN模型的特征提取能力[11]。GAN模型的生成器可以生成更多的样本,使得CNN模型训练更加稳健,以提高识别准确率。具体地,GAN模型的生成器G生成与真实样本分布相似的假样本,判别器D用于判断样本是真实样本还是假样本。GAN模型的训练目标是最小化生成器和判别器的损失函数,使得生成器生成的假样本能够骗过判别器,同时判别器能够准确判断真假样本。
GAN-CNN模型结构如图5。其中,第一层是GAN,用于学习每个血压计图像的特征表示。第二层是CNN,用于进一步提取特征。第三层是MLP,用于分类。
图5 GAN-CNN模型结构图Figure5 GAN-CNN model structure diagram
GAN-CNN模型训练的主要流程如下:对数据进行预处理,包括读取数据、划分数据集和图像预处理等操作。GAN模型的训练旨在最小化生成器生成的伪造图像与真实图像之间的差异[12]。在生成器和判别器训练完成后,将生成器的权重固定,将判别器的输出作为特征提取器,用于提取真实图像和伪造图像的特征。CNN模型的输入是经过预处理后的图像,输出是图像所属的电子血压计品牌和型号。CNN模型的训练旨在最小化预测结果与真实结果之间的差异。GAN-CNN模型实现参数如表2。
表2 GAN-CNN模型参数
在联合训练GAN-CNN模型步骤中,使用经过预处理的图像作为GAN模型的输入,使用CNN模型的输出作为GAN模型的损失函数。这样,GAN模型就可以生成更加适合CNN模型的伪造图像,以提高CNN模型的性能。同时,CNN模型也可以提供更加准确的损失函数,以优化GAN模型。参考公式如下:
生成器损失函数:
(5)
判别器损失函数:
(6)
交叉熵损失函数:
(7)
本文通过GAN处理生成的增强数据集,将训练集数据输入CNN中进行训练,卷积层通过计算输入变量的乘积和来提取特征,ReLU用于引入卷积网络的非线性,引入最大池化层来减小卷积数据的空间大小。然后,引入一个全连通层来学习高级特征的非线性组合,通过输出层采用了交叉熵损失函数识别电子血压计品牌型号。其中卷积神经网络的参数设置如表3。
表3 CNN参数设置
在预处理完成后,将数据集分成三部分:70%用于训练,10%用于验证,20%用于测试。在训练过程中,采用交叉熵作为损失函数,使用Adam优化器来更新模型参数[13]。使用PyTorch框架实现了GAN-CNN模型并在NVIDIA TITAN Xp GPU上训练模型。为了标识不同电子血压计的品牌和型号,在模型中使用了一个one-hot编码的向量[14]。假设有n个品牌和m个型号,则电子血压计的品牌和型号将分别用n维和m维的向量表示。模型的输出为两个向量,一个用于品牌的预测,另一个用于型号的预测。在训练、验证和测试时,将模型的预测结果转换为品牌和型号的标签,并计算准确率和相对误差来评估模型的性能。
本文使用工业相机、计算机、环形光源、数据存储系统和模式识别算法搭建一个电子血压计品牌型号识别系统去验证GAN-CNN模型的识别效果,如图6。
图6 GAN-CNN模型实验平台Figure 6 GAN-CNN model experiment platform
实验采用了Python编程语言和TensorFlow深度学习框架,运行环境为Windows 10操作系统,CPU为Intel Core i7-9700K,GPU为NVIDIA GeForce RTX 2080 Ti。模型训练配置信息如表4。
表4 模型训练配置信息
在模型训练过程中使用了验证集来调整模型的超参数,例如学习率、判别器和生成器的层数等。
在每个训练周期结束后,使用验证集来评估模型的性能,然后根据性能指标来调整超参数,以提高模型的准确率和鲁棒性。使用的是Adam优化器来训练GAN-CNN模型,并设置初始学习率为0.000 2。在训练过程中,使用批量大小为32的随机梯度下降算法进行参数更新。每个训练周期的总迭代次数为10 000次,训练过程中使用了数据增强技术,如随机裁剪、翻转和旋转等。
在验证集上的最佳结果是在第15个训练周期时获得的,此时模型的准确率为95.3%。经过实验测试,使用验证集调整超参数可以更好地优化模型,提高模型的准确率和鲁棒性。同时,采用验证集还可以避免过拟合的情况发生,提高模型的泛化能力。表5列出了模型训练过程中的超参数设置和实验结果。
表5 超参数设置情况
在训练GAN-CNN模型的过程中,采用了10%的数据作为验证集,并使用验证集来调整模型的超参数[15]。这样可以帮助更好地优化模型,提高模型的准确率和鲁棒性,同时避免过拟合的发生。
本文将GAN-CNN模型应用于电子血压计品牌型号识别,首先,将电子血压计正面不同角度图片输入GAN进行预处理,得到一个拓展数据集,对于数据集按照7∶1∶2比例划分训练集、验证集和测试集。之后将划分好的数据集数据输入CNN模型进行训练识别。为了更好地展现该方法的识别效果,使用同样的数据集,将该方法与SVM、RF、MLP、ResNet、VGG16、MobileNe、CNN等多种方法进行对比实验。同时,也进行了消融实验,验证GAN和CNN的相互补充作用。另外,对也探究了不同超参数对GAN-CNN模型的影响。通过与市面上传统的机器视觉识别算法和现在比较常用的深度学习模型分别进行对比实验,同时对GAN与CNN模型组合效果的探究和对组合模型不同超参数影响大小的实验,得出GAN-CNN算法模型高准确性和稳健性的结论。与传统机器视觉算法模型识别表现对比结果如表6。
表6 与传统机器视觉算法模型识别表现对比
表6显示了使用SVM、RF、MLP、GAN-CNN算法进行品牌识别的准确率和误差率。其中MLP、GAN-CNN算法识别准确度都达到90%以上。并且GAN-CNN算法实现了94.7%的品牌型号识别准确度,明显优于传统机器视觉算法模型,这表明GAN-CNN模型可以更好地提取特征,并且能够有效地识别电子血压计品牌型号。
接下来,对比了GAN-CNN模型和其他常见的深度学习算法在电子血压计品牌型号识别任务上的表现,包括ResNet、VGG16、MobileNet和CNN。具体的结果如表7。
表7 与常见深度学习模型识别表现对比
结果显示,GAN-CNN模型的准确率达到了95.1%,而传统的CNN模型的准确率为91.5%。这表明GAN-CNN模型可以更好地提取特征,并且能够有效地识别电子血压计品牌型号。其次,比较了GAN-CNN模型和ResNet、VGG16和MobileNet模型在品牌型号识别任务上的表现。结果显示,GAN-CNN模型在参数数量较少的前提下品牌型号识别任务上都高于这些模型。这表明GAN-CNN模型在电子血压计识别任务上具有更好的性能和鲁棒性。
为了验证GAN-CNN模型的有效性和稳健性,进行了消融实验,分别考察了GAN成分和CNN成分对模型性能的影响。分别移除GAN组件和CNN组件,重新训练模型,并在测试集上进行了准确率的测试。实验结果如表8。
表8 GAN-CNN模型的消融实验
通过上表的数据可以看出,仅使用CNN的准确率为92.4%,仅使用GAN的准确率为88.5%,而使用GAN-CNN的准确率提高到了95.7%。因此可以得出结论:GAN对于CNN模型的训练是具有重要作用的,同时GAN和CNN的结合可以显著提高模型的准确率。
在探究不同超参数对GAN-CNN模型性能的影响的实验中,我们通过改变判别器和生成器层的数量以及学习率,测试了不同的超参数组合对模型的影响。实验结果数据如表9。
表9 不同超参数对GAN-CNN模型性能的影响
从上表可以看出,最优的超参数组合为4个判别器层、4个生成器层和学习率为0.000 2。在这个超参数组合下,模型在训练集、验证集和测试集上都获得了最高的准确率,分别为95.2%、94.8%和94.5%。如果再增加超参数的层数、学习率会使模型计算量增大,识别效果达不到最佳。通过实验结果分析,可以得出结论:选择合适的超参数可以进一步提高模型的准确率。
综上所述,实验结果表明,所提出的GAN-CNN算法在电子血压计的品牌型号识别精度方面优于其他算法。GAN与CNN结合使用可以提高电子血压计的识别精度。
本文基于GAN-CNN的电子血压计品牌型号识别技术研究,采用了GAN和CNN模型相结合的方法,并通过参数优化,得到了最佳的GAN-CNN模型。实验结果表明,GAN-CNN模型的识别准确率高达94.7%以上,明显高于其他单一模型,且在不同品牌型号的电子血压计识别中都取得了较好的效果。这证明了GAN-CNN模型在电子血压计品牌型号识别方面有如下的优势。
1)增强数据的多样性和真实性:GAN模型可以生成逼真的电子血压计图像数据,可以有效地扩展数据集,提高数据的多样性和真实性,从而提高模型的泛化能力。
2)学习特征的有效性:GAN-CNN模型可以通过对真实数据和生成数据的训练来学习有效的特征表示,从而提高识别性能。
3)局部和全局信息综合性:GAN-CNN模型使用CNN模型提取局部特征和GAN模型提取全局特征,通过融合两种特征来提高识别准确率。
未来,可以进一步探索GAN-CNN模型在其他图像识别任务中的应用,如医学图像分析、自然图像处理等领域。同时,也可以考虑引入更多的深度学习技术,如Attention机制、Capsule网络等,进一步提升模型性能。