标题 | 基于迁移学习的家猪图像识别研究 |
范文 | 谢碧森 段清 刘俊晖 廖赟 张逸 摘 要:为实现家猪图像识别并提高识别准确率,提出一种基于迁移学习的家猪图像识别方法。首先对现有数据集进行数据增强,然后迁移VGG16模型并对其进行微调,从而更好地提取图像特征并缩短网络训练时间。采用自归一化神经网络解决了梯度消失和梯度爆炸问题,在网络构造时使用全局平均池化代替全连接层,以达到降低模型过拟合的效果。实验对比结果表明,该方法分类效果较好,准确率达到了84%,召回率和F1值分别提升至0.8、0.82,各项指标相比基础模型均有所提升。 关键词:家猪图像识别;VGG16;迁移学习;自归一化;全局平均池化 DOI:10. 11907/rjdk. 192432 开放科学(资源服务)标识码(OSID): 中图分类号:TP301文献标识码:A 文章编号:1672-7800(2020)007-0036-05 Image Recognition of Domestic Pigs Based on Transfer Learning XIE Bi-sen,DUAN Qing,LIU Jun-hui,LIAO Yun,ZHANG Yi (School of Software,Yunnan University,Kunming 650504,China) Abstract:In order to realize and improve the recognition accuracy of domestic pig image, an image recognition method based on transfer learning is proposed. Firstly, the existing data set is enhanced, then VGG16 model is mitigated and fine-tuned to better extract image features and shorten the training time of the network. The problem of gradient disappearance and gradient explosion is solved by using the self-normalized neural network. In network construction, global average pooling is used instead of full connection layer to reduce overfitting. The experimental comparison results show that the classification effect of this method is good, with an accuracy of 84%, the recall rate and F1 value are improved to 0.8 and 0.82 respectively, and all indicators are improved compared with the basic model. Key Words: domestic pigs image identification; VGG16; migration learning; self-normalized; global average pooling 0 引言 在家猪养殖活动中,为了对每头猪进行标记与区分,常见方法是为每头猪安装RFID电子耳标。该方法较为直观且操作简单,但猪可能会产生不适感,从而进行刮蹭导致掉标。另外,由于大多数养殖场位置远离市区,保险出险时工作人员需要到达养殖场进行线下鉴别理赔,导致保险公司产生较高的出险成本。采用基于深度学习的动物识别方法可以解决上述问题,以实现家猪区分及线上出险。 2006年,Hinton等[1]在《Science》上首次提出深度学习思想;2012年,使用8层结构的AlexNet[2]在ImageNet[3]数据集上获得了图像分类的冠军;随后在2014年出现的VGGNet[4]、GoogleNet[5]、ResNet等[6]证明了调整网络结构与增加网络深度对提升模型效果的有效性。神经网络具有自动提取特征的特点,相比手工提取特征更加方便,效果也更好。 目前学者们针对动物图像分类问题已进行了一些研究,如李建伟等[7]通过在神经网络中加入L2正則化和Dropout的方法提升动物识别准确率;侯金等[8]利用发育网络建立大熊猫面部识别模型;周文萱等[9]提出一种基于YOLO的识别分类系统;李新叶等[10]使用Faster RCNN 提升了鸟类识别效率;Ahrendt等[11]将人脸识别技术迁移至猪的识别,取得了较好效果,但养殖场环境复杂,泥土等杂物往往会覆盖到猪的身上,每只猪的外表差异小于不同的人类个体,识别难度较大;文献[12]使用人工提取特征区域的方法对猪进行识别,但在猪群数量较多时,手工提取特征区域工作量巨大;文献[13]提出基于颜色特征的动物图像分类方法,识别率较高,但研究对象是不同种类的动物,且颜色特征不足以区分同种类动物之间的不同个体;文献[14]提出基于Adaboost分类器的动物图片分类识别方法,这是一种用于解决动物图片二分类问题的方法,但不适用于家猪数量较多的情况。为解决现有问题,本文提出一种基于迁移学习与自归一化神经网络的家猪图像识别方法。 本文使用的数据集采集自网络,共包含30头猪的图像信息。首先对原始数据进行增强处理以扩充数据集,然后迁移VGG16模型并在现有数据集上进行微调,最后通过连接全局平均池化层与softmax分类器进行分类。经过对比试验,本文方法可得到比基准模型更高的准确率,召回率和F1指标也有所提升。 1 VGG16神经网络 本文选择VGG16预训练模型实现迁移学习提取图像特征。VGG16由Simonyan等于2014年提出,主要目的在于证明增加网络深度能够影响网络性能,是一种简洁但高效的神经网络结构,如图1所示。 VGG16相比AlexNet使用了尺寸更小的卷积核,并使用多个3*3的卷积核替代5*5和7*7的卷积核,提升了网络性能。其具有以下特点:①着重于探索增加网络深度是否能有效提升模型性能。通过多层叠加3*3的小卷积核和2*2最大池化层增加模型深度,实验结果证明了其有效性;②由多次叠加的卷积层和池化层构成,结构简洁,每部分的卷积核和最大池化尺寸都相同;③多个小尺寸卷积核的连接结构使得网络具有较少的参数量,降低了模型复杂度,多层卷积结构相比单独的卷积层可进行更多非线性变换,有利于提取图像高级特征。在ImageNet上訓练得到的VGG16预训练模型,在其它数据集上进行预测通常也能得到不错的效果。 其中卷积层用于提取图像特征,卷积层的特征提取过程可表示为式(1)-式(3)。在公式中[z(l)]为第[l]层的中间结果,[a(l)]为第[l]层经激活函数处理后的值,则[l+1]层中包含:第[l]层的输出作为[l+1]层的输入[a(l)],以及权重[W(l)]、偏置[b(l)]、激活函数[f()]、中间结果[z(l+1)]与输出[a(l+1)]。卷积层通常需要使用激活函数得到非线性表示,因为其相比线性表示具有更强的表达能力。常用激活函数有sigmoid、relu、tanh等,如式(4)-式(6)所示。卷积层具有局部连接与权值共享的特点。局部连接使其相比全连接层参数大大减少,有助于防止过拟合。在卷积核获取图像特征时,在同一特征图上,卷积核在图像不同位置上的权值相同,权值可通过学习得到。 池化层通常在卷积层之后,因此池化层的输入是卷积层的输出。池化层的作用是保证特征不变性以及进行特征降维,能减小计算量并减少参数数量,从而在一定程度上防止过拟合的发生。池化包括平均池化和最大池化,即分别取邻域内的平均值和最小值。 在卷积层、池化层将原始输入数据映射到特征空间之后,全连接层则将学习得到的特征映射到样本的标记空间,得到分类输出。使用softmax分类器实现,softmax定义如式(7)所示。 其中,[S]表示样本[x]为某一类的概率,[ai]表示分类器前级层的输出,[C]表示类别数,softmax将多分类输出转化为概率。 2 基于VGG16预训练模型迁移学习与自归一化网络的模型构建 由于数据集不够大,从头开始训练整个网络的效果并不好。因此,本文只使用在ImageNet上预先训练好的VGG16网络,以获取训练好的权重,然后通过微调进行学习迁移以适应本文研究的问题。由此出发,构造基于VGG16预训练模型与自归一化神经网络的网络结构,如图2所示。 该网络结构主要由3部分组成:①VGG16预训练模型实现迁移学习;②自归一化网络用于缓解梯度消失与梯度爆炸问题;③全局平均池化代替全连接层,以减少网络参数。下文简称为VGG16+seluCNN网络,具体描述如下: (1)输入数据至VGG16预训练模型。VGG16结构由5个block及全连接层组成,其中block1、block2中包含两个卷积层,block3、block4、block5中均包含3个卷积层,每个block中还包含一个池化层。同时对模型前几部分参数进行冻结,仅将block5及其之后的网络设置为可训练部分,这是实现迁移学习的常用方法。由于ImageNet是一个非常庞大的数据集,包含超过1 400万幅图片,2万多个类别,其中也包含动物类图片。因此,可以近似认为训练ImageNet得到的VGG16网络中,网络前几部分已学习到比较通用的动物特征,通过训练block5之后的部分实现对网络参数的微调,可以提取到与当前数据集更相关的高级特征,从而均衡网络训练时间,提高特征提取的准确性,在较短的训练时间内取得更好的特征提取效果。 (2)将迁移学习部分得到的输出,输入至以selu为激活函数的自归一化神经网络作进一步处理。在神经网络理论中,通常认为每一层激励的均值为0、方差为1能使在各层中传递的张量收敛,从而避免梯度消失和梯度爆炸问题,提升模型的稳定性。使用缩放指数线性单元(selu)的自归一化卷积神经网络,通过函数映射前后两层神经网络的均值和方差实现归一化[15]。批归一化[16]、层级归一化[17]、权值归一化[18]均能增强训练的鲁棒性,并实现零均值和单位方差,但容易受到随机梯度下降、随机正则化与估计归一化的扰动。selu在缓解梯度消失和梯度爆炸问题的基础上,能在多层训练中对以上扰动保持鲁棒性,且效果优于批归一化(Batch Normalization)。 基于以上分析,本文在VGG16之后的网络结构中使用selu替换relu激活函数,selu如式(8)所示。 其中[λ=1.050 7]、[α]=1.672 6为固定值。selu在ELU[19]基础上进行改进,在ELU基础上乘以固定值[λ]。ELU图像上负半轴坡度平缓,可在方差过大时使其减小,避免梯度爆炸;selu正半轴坡度大于1,可在方差过小时使其增大,避免梯度消失。网络层数加深后,每层输出都能保证均值为0、方差为1。因此,本文使用该方法可以实现归一化效果,提升模型性能。 (3) 在图像分类问题中,通常先使用卷积层和池化层提取图像特征并减小尺寸,增大卷积核感受野,并通过激活函数得到非线性特征,然后将卷积层得到的特征图输入全连接层展开成向量并降维,通过softmax输出分类结果。但全连接层参数较多,会增加模型复杂度,可能会导致网络过拟合问题。 Lin等[20]提出使用全局平均池化(Global Average Pooling)方法代替全连接层,以实现降维并减少网络参数。本文在经过多层卷积神经网络提取特征后,采用全局平均池化代替全连接层,并通过softmax分类器进行分类。全连接层将卷积层输出的特征图展开成向量,然后进行分类。全局平均池化则对上述过程进行了合并,将特征图进行平均,输出一个值再进行分类。其核心意义在于对整个网络结构进行正则化,以减少参数量,附带使用全局信息,从而减轻了过拟合。虽然全局平均池化可能会使网络收敛速度减慢,但能有效减少过拟合现象。 3 实验与分析 3.1 数据集 本文使用的数据集中包含30头猪的图像信息,在识别过程中将每头猪视为一类,所有图像均为分辨率为544*411的彩色图像,输入网络时统一处理为500*400。训练集中包含4 800个样本,测试集中包含1 140个样本。训练集和测试集中均包含30类,每类样本数相同。训练集用于训练模型,测试集用来评估模型性能。图3是本实验中所使用数据的部分示例图片。 由于现有数据集中每类样本数量较少,而基于神经网络的监督学习方法往往需要大量数据才能达到较好效果,否则可能出现网络过拟合严重、泛化效果差,以及对测试数据识别准确率低等情况。在数据量不足的情况下,数据增强通常是比较有效的解决办法之一[21]。它是指利用各种能够生成可用图像的随机變换增加样本,从而使模型具有更好的泛化能力。本文使用Keras中的批量生成器方法实现数据增强,图像随机旋转角度设置为40,其它参数均设置为0.2。增强后的图像如图4所示。 3.2 实验条件 实验使用工具为基于Python的Keras深度学习库,以Tensorflow深度学习框架作为后端加以实现。 3.3 实验设置 网络输入层图像shape为(500,400,3),数据集中包含30个类别,因此输出为30个类别的概率。原始数据经数据增强后输入网络训练,learning rate根据相似工作中的经验值设定为1e-4,优化器选择Adam。实验过程中导入VGG16预训练模型以实现迁移学习,以ImageNet数据集训练好的权重初始化网络。在微调设置部分,本文采用的方法为冻结VGG16中的block1—block4部分,因为其中已提取了较多通用特征,故保留Imagenet预训练权重。为了更好地提取数据特征,并兼顾训练时间与特征提取效果,选择继续对block5及后续部分进行训练。对block5进行微调可以提取到与当前数据集更相关的高级特征,使用VGG16预训练模型提取特征能获得更好的效果。另外由于冻结了部分网络,训练时间也大大缩短。 共设置6组实验进行实验效果对比:①CNN1:使用四层卷积神经网络+最大池化结构,卷积核大小为64、128、128、256,激活函数为relu,softmax分类器输出分类结果;②数据增强CNN1:经过数据增强后采用CNN1结构训练模型;③数据增强CNN1+dropout:对数据增强CNN1使用dropout方法;④VGG16:使用VGG16预训练模型,保留Imagenet训练权重,直接提取特征后采用softmax分类器进行分类;⑤VGG16 fine-tuning(微调):使用VGG16预训练模型微调的方法,结合softmax分类;⑥VGG16+seluCNN:即本文构造的VGG16+seluCNN结构,设置初始训练轮数为50次,并使用early stopping方法保留性能较好的模型。 3.4 实验评价指标与结果分析 本文各组实验采用的评价指标选用了分类问题中的几种常用指标,包括precision、recall、f1-score、accuracy,并通过tensorflow中的tensorboard可视化工具记录各指标数值变化曲线。其中precision表示识别出的样本中,识别正确的样本所占比例;recall表示识别正确的样本数与该类别中所有样本数的比值,以上两者呈负相关。f1-score是precision与recall的调和平均,取值范围为[0,1],目的是综合评价precision和recall。CNN1、数据增强CNN1、数据增强CNN1+dropout、VGG16、VGG16 fine-tuning(微调)、VGG16+seluCNN的指标数值变化曲线如图5-图10所示。 根据图像可以看出,在本文数据集上,训练层数较少的卷积神经网络很快会达到过拟合,且loss与acc变化波动较大。CNN1结构在训练开始后,loss很快上升,出现了过拟合;在使用数据增强和dropout方法后,loss虽然变化较大,但整体呈下降趋势,性能有所提升,但还有继续提升的空间;在VGG16模型中,loss下降与f1-score提升过程较为稳定;在VGG16+seluCNN图像中,loss稳定下降,在第9轮左右下降趋势减弱,f1-score在第10轮左右上升趋势开始减弱。最终结果显示,本文提出的VGG16+seluCNN指标优于其它方法,相比VGG16 fine-tuning(微调)方法,f1-score提升了0.02,accuracy提升了0.14,证明了该方法的有效性。各组实验评价指标如表1所示。 实验结果表明,本文提出的VGG16+seluCNN网络结构在家猪识别问题中取得了较好效果,全局平均池化和selu方法有助于降低模型复杂度以及减轻过拟合,从而在网络反向传播过程中获得更优参数,并更好地学习数据特征,提升模型泛化能力。 4 结语 本文集成了预训练网络初始化权重的迁移学习、自归一化神经网络和全局平均池化方法,基于VGG16模型定义了VGG16+seluCNN网络结构,针对可用数据较少的情况使用数据增强方法训练网络,从而实现了一种基于深度学习的家猪识别方法。相比于简单CNN模型、VGG16和VGG16 fine-tuning(微调)等模型,本文方法在准确率与其它指标上均有所提升,网络泛化能力有所增强,过拟合现象也得以缓解,同时训练速度快、网络训练轮数少,模型最终准确率达到了84%,以较简单的网络结构在受限的小数据集情况下完成图像识别工作,说明了本文方法的有效性。在未来研究中,需要考虑构造更深层的网络结构或其它网络模型,以进一步提升网络识别率。 参考文献: [1] HINTON G E, SALAKHUTDINOV R R.Reducing the dimensionality of data with neural networks[J]. Science,2006,313:504-507. [2] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[C]. Conference Neural Information Processing Systems, 2012. [3] DENG J,DONG W,SOCHER R,et al. Imagenet:a large-scale hierar?chical image database[C].? IEEE Conference on Computer Vision and Pattern Recognition,2009:248-255. [4] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer Science, 2014. [5] SZEGEDY C,LIU W,JIA Y,et al. Going deeper with convolutions[J].? Computer Science,2014. [6] HE K,ZHANG X,REN S,et al. Deep residual learning for image recognition [C]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society,2016. [7] 李建伟,郑永果. 基于CNN的动物识别研究[J]. 软件导刊,2019, 18(3):36-39. [8] 侯金,郑伯川,李玉杰,等. 基于发育网络识别模型的大熊猫面部识别[J]. 兽类学报,2019,39(1):46-54. [9] 周文萱,胡龙桃,张敏,等. 基于YOLO的小型动物识别系统设计[J]. 计算机时代,2019,321(3):26-29. [10] 李新叶,王光陛. 基于卷积神经网络语义检测的细粒度鸟类识别[J]. 科学技术与工程,2018,18(10):240-244. [11] AHRENDT P,GREGERSEN T,KARSTOFT H.? Development of a real-time computer vision system for tracking loose-housed pigs[J].? Computers and Electronics in Agriculture,2011,76(2):169-174. [12] WADA N,SHINYA M,SHIRAISHI M. Pig face recognition using eigenspace method[J]. ITE Transactions on Media Techonlogy and Applications,2013(4):328-332. [13] 張公伯,谷昱良,朱和贵. 基于颜色特征的动物图像分类识别仿真系统设计[J]. 舰船电子工程,2017(5):81-85. [14] 张公伯,谷昱良,朱和贵. 基于Adaboost的动物二分类识别方法[J]. 计算机与数字工程,2017(4):720-726. [15] KLAMBAUER G,UNTERTHINER T,MAYR A,et al. Self-normalizing neural networks[C]. Conference and Workshop on Neural Information Processing Systems,2017. [16] IOFFE S,SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]. 32nd International Conferences on MochineLearil,2015:448-456. [17] BA J L,KIROS J R,HINTON G E. Layer normalization[C]. Machine Learning,2016. [18] SALIMANS T,KINGMA D P. Weight normalization: a simple reparameterizationto accelerate training of deep neural networks[C]. Advances in Neural Information Processing Systems,2016:901-909. [19] CLEVERT D,UNTERTHINER T,HOCHREITER S. Fast and accurate deep network learning by Exponential Linear Units (ELUs)[J].? Computer Science,2015. [20] LIN M,CHEN Q,YAN S. Network in network[J]. Computer Science,2013. [21] CHOLLET F. Python深度学习[M]. 张亮,译. 北京:人民邮电出版社,2018. (责任编辑:黄 健) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。