多变环境下基于多尺度卷积网络的猪个体识别

2020-06-02 10:13史再峰高荣华李奇峰
江西农业大学学报 2020年2期
关键词:识别率特征提取卷积

王 荣,史再峰,高荣华,李奇峰

(1.天津大学 微电子学院,天津300072;2.北京农业信息技术研究中心,北京1000972;3.国家农业信息化工程技术研究中心,北京1000973)

【研究意义】生猪的消费产值成为农村经济的重要支柱。猪个体识别技术可协助猪场实现自动化管理,记录猪个体的成长资料。常见的猪个体识别技术如RFID耳标技术等成本高[1],且易感染寄生虫引起并发症[2]有一定的局限性。随着图像技术和深度学习的不断发展,通过非接触式的猪个体识别技术减少养猪场职工数量、监测疫病、降低养殖成本已成为必然趋势。研究表明,非接触式猪个体识别技术的难点在于提高多变环境中猪个体身份的识别率。【前人研究进展】利用计算机视觉和图像处理技术代替人眼感知实现非接触式猪个体识别,可记录每头猪的身份信息和健康状况,并在通过外观识别猪个体、猪体体尺参数和体质量估测[3]和猪个体轮廓分割[4]等方面取得显著成就。猪个体外观十分相似,传统的猪个体识别方法常常通过人工标记颜色,通过识别标记实现对猪个体的识别和追踪[5]。将猪舍中仔猪的背部和侧面部用不同颜色进行标记,通过消除背景和非标记对象的影响进行分割以获取猪仔位置[6],或利用图像处理技术分析猪背部涂抹的待识别图案与样本图案的匹配程度,识别猪个体并估计其体质量[7]。江苏大学电气工程学院[8]利用Isomap算法融合猪个体的颜色、纹理及形状特征,并用支持向量机进行分类识别。然而猪个体颜色、形状特征以及标记图案特征不明显,个体识别率较低,因此,N.Wada等人[9]提出利用特征空间法识别猪脸,手动分割全脸图像、眼睛周围的图像和鼻子周围的图像实现猪个体识别,并取得较好的识别率。综合考虑以上基于计算机视觉和机器学习的算法,通过脸部特征识别猪个体的正确率较高,但都只对单一环境做了研究,在多变环境中识别猪只身份还有很大的提升空间。随着计算能力的不断提升,深度学习算法得到了更好地发展,具有更强的特征提取能力。Alexnet网络在2012年ILSVRC(imagenet large scale visual recognition competition)比赛中获得第一名[10],识别率较传统算法有了巨大的提升。由牛津大学计算机视觉几何组(visual geometry group)提出的VGG网络[11]、深度残差网络(deep residual network,ResNet)[12]通过改进卷积结构并增加卷积层和池化层数量,实现了深度卷积神经网络(deep convolutional neural networks,DCNN),使其具有更强的特征提取能力。【本研究切入点】为提高复杂环境下猪个体的识别率,则需要增强算法对猪脸图像的特征提取能力,以DCNN为基础的改进网络在人脸识别[13]及动物识别[14]领域都得到了较好的应用。2015年,MOREIRA等[15]将深层卷积神经网络应用于动物的个体识别中识别走失狗,STERN等[16]通过对拍摄视频的每帧图像分类可分析动物个体的行为特点。2018年,PU等[17]利用CNN和Kinect传感器相结合实现了自动识别鸡群行为,达到了较好的识别效果。利用目标检测网络Faster R-CNN[18](faster region-convolutional neural network)识别群养猪的吃食行为[19]和母猪的5种姿势[20](站立、坐姿、胸骨卧姿、腹侧卧位和侧卧位)也达到了较好的识别效果。类比人脸识别,将深度学习迁移到牛脸中,在采集的牛脸数据集中达到了较好的识别效果[21]。这些研究表明利用迁移学习的方式实现猪脸识别具有可行性。2018年Hansen[22]利用改进的卷积神经网络提取猪脸图像特征,对10头猪个体进行识别,为复杂环境中的猪脸识别打下基础。【拟解决的关键问题】为提高猪脸识别算法在多变环境下的个体识别率,本文提出了一种基于多尺度卷积神经网络的非接触、低成本的猪个体身份识别方法,并借助GoogleNet[23]网络思想设计了3种多尺度卷积的Inception结构,网络融合了对称拆分和非对称拆分两种方法。在生猪真实养殖环境下,利用86层的DCNN模型可以从猪脸数据集图像中提取更详细的面部信息,增强识别能力,设计7组数据集增强后的对比实验,验证网络对复杂多变环境的鲁棒性。

1 材料与方法

1.1 数据处理

猪脸数据样本于2018年8月采集自天津惠康种猪场,设计了限位栏猪脸采集系统,使用三脚架将相机固定在距离限位栏50 cm的位置,高度与猪脸位置平行,拍摄自然养殖条件下的种猪视频,使用工业相机为HD1080分辨率(1 920×1 080),每秒30帧。采集选用每天10:00—12:00,14:00—16:00光线较亮的时间段,将拍摄的种猪视频按帧提取图像,分类保存。选取图像数量较多的类别编号为正样本,拍摄图像较少的类别为负样本,利用爬虫技术爬取网上的猪脸图像加入负样本中,加大类间数据的差异性,提升网络的容错性。

拍摄的图像中含有大量的背景噪声,图像中会出现猪栏、窗户等信息,都会影响猪脸的识别效果,与其他识别方法相同,本文方法需要将猪脸从图像中截取出来,制作猪脸数据集。由于数据集是直接从视频帧中获得,相邻图像之间相似度很高,会造成训练集和测试集样本图像相似,使得网络过拟合,无法检测识别方法的鲁棒性,因此需要借助相似度算法筛选图像。在不同光照、遮挡以及不同角度的环境下,现有的猪个体识别网络准确率较差,为验证本文设计的猪脸识别方法对多变环境的适应能力,利用数据集增强技术模拟多种不同环境下的猪脸图像。

如图1所示,对提取到的原始图像数据进行预处理得到猪脸数据集。首先,对提取到的猪脸图像,利用图像均方误差(mean square error,MSE)和结构相似性(structural similarity index,SSIM)算法来计算相邻两张图像的相似程度并筛选,得到大小为299×299的低相似度种猪正脸图像,按照8:2的比例将数据集划分为两部分,其中0.8的部分按照9∶1的比例划分为训练集和验证集,0.2的部分作为测试集。为验证识别方法对不同环境的适应性,利用水平翻转、垂直翻转、亮度增强、亮度降低、随机遮挡和随机剪裁图像六种方法对测试集增强,其中亮度的增强和降低以及遮挡和剪裁等操作均随机选取参数以保证生成图像的随机性。

图1 猪脸数据集制作过程Fig.1 The production process of pig face dataset

MSE公式如(1)所示:

最后把3个函数组合起来,得到SSIM指数函数,为了得到简化形式,设置α=β=γ=1,c3=c2/2:

猪生长过程中脸部差别较为明显,成年后的种猪7—8月份开始发情,2周岁左右会被淘汰,在此期间成年种猪面部特征变化较小,因此选择成年种猪作为猪脸识别目标。采集到的数据处理结果如表1,筛选出26头猪作为正样本,剩余的24头猪和网上爬取的猪脸图像一起作为负样本。其中SSIM的筛选值设置为0.5,MSE的筛选值设为1 000,图像数据集整体的筛选率为66.13%。并增加6组对比数据测试模型性能。

表1 数据集处理结果Tab.1 The result of the processed data set

1.2 猪舍环境下猪个体身份识别模型

图像识别技术的核心在于图像的特征提取,在前人的猪脸识别方法中,由于提取到的特征信息较少,冗余信息较多,导致最终分类时效果不理想。网络较浅时,无法提取猪脸详细特征如眼睛、耳朵等位置,而通过加深网络层数改进性能的方法会导致参数增多、计算量增加,使得猪脸识别速度较慢,因此需要寻找合适的稀疏连接代替全连接。因此本文设计了一种基于多尺度多通道并行结构的深层卷积神经网络识别猪个体身份的方法,能够增强猪脸图像的特征提取,网络结构如表2。

由表2可知,本文的网络模型深度达到86层卷积层,模型中设计的Inception结构能够寻找最优的局部稀疏结构并将其覆盖为近似的稠密组价,通过这种复杂网络的拓扑结构增加模型的深度和宽度,猪个体身份分类前实现对猪脸特征的充分提取和分析。基于这种多尺度卷积并行提取图像特征的思想,本文利用不同的模块设计的86层的DCNN网络实现了跨通道组织信息,提高网络的表达能力,具体结构如图2所示。

表2 多尺度DCNN模型结构及并行通道参数Tab.2 The structure of multi-scale DCNN model and parameters of parallel channels

图2 深度卷积神经网络模型Fig.2 The deep convolutional neural network model

图2 为猪个体识别方法中提取猪脸图像特征的深层卷积神经网络模型,该模型由特征预提取模块、两种降维模块、3种Inception模块及全连接层4部分组成,模型输入为299×299像素大小的图像,输出为27个类别的概率值,选取概率值最大的类别作为预测结果。

猪脸图像输入模型之后首先经过9层的特征预提取模块,传统网络直接使用大尺寸卷积核提取特征会使猪脸的细节特征如眼睛、嘴和耳朵等明显特征丢失,因此利用3个3×3小卷积核代替7×7大卷积核,使得猪脸各部分特征提取详细,减少特征丢失。提取到的猪脸特征图进入S1模块后,首先经过1×1大小的卷积层对猪脸特征图降维,高维度的猪脸特征图像会包含多种冗余信息,且增加后续卷积运算的计算量,影响网络的训练和猪个体身份的识别速度。由于个体猪之间主要差异在于猪脸形状和五官细节,需要同时提取整体形状特征以及五官等局部信息,因此本文选用了多通道多尺寸卷积核并行结构,利用非对称拆分的方法,使用1×7和7×1大小的卷积层替代7×7的卷积层,提取了猪脸图像的全局信息,使得卷积结果不变的条件下,减少了模型的参数量,提升猪个体的识别速度。将两路卷积层提取到的特征拼接,丰富了猪脸的特征提取。

猪个体之间差异性较小,脸部特征相似度较高,模型的特征预提取模块提取的特征不足,因此设计了3种Inception结构如图3所示,使用四路通道中不同尺寸的卷积核并行提取猪脸特征,提高猪个体识别模型性能,并在模块中加入池化通道,以精简猪脸特征图中的信息,池化通道与其他通道并行提取特征后拼接级联,预防了因池化导致的特征丢失。为了实现更加高效的计算,在每个Inception模块后加入批量归一化(batch normalization,BN)[24],BN结构使得所有权重变化步调一致,增强模型的泛化能力防止过拟合并降低模型的计算量。

图3 改进的Inception结构Fig.3 The improved structure of Inception

1.3 猪个体身份识别模型实现方法

针对猪的脸部特征进行提取实现识别猪个体身份的方法需要利用预处理后的数据集反复训练模型,并对训练好的模型多次评估对比,得到识别率高的模型实现猪个体身份识别,其整体实现方法如图4所示。

图4 猪个体身份识别模型的实现方法Fig.4 Method for implementing individual identification of pigs

该方法主要分为3个步骤首先将采集到的数据进行预处理并将处理好的数据集输入到深度卷积神经网络中训练,然后根据训练结果不断调整训练参数,最后对训练好的卷积网络进行评估,利用6种数据集增强技术设置对比实验,验证本文模型对多变环境的适用性。

猪脸数据集图像经过预处理之后,被划分为不同批次(Batch),每次随机在训练集中选取一个Batch图片作为网络的输入,使用动态学习率和交叉验证的方法训练。每次训练完成之后,输出网络预测的猪个体分类结果,并计算与实际分类结果的交叉熵,利用梯度下降法调整参数。经过多轮数据迭代之后得到训练效果较好的网络权重,网络训练完成。

网络使用的Softmax函数进行分类,如公式(4)。

其中,输入图像为x,i代表第i类,j代表图片x的第j个像素。在标签输入之前对标签进行正则化(Label smoothing),使得在计算损失值时能够有效抑制过拟合现象,如公式(5)

其中,yi为真实预测值,利用得到的分类结果和正则化后的标签计算交叉熵损失函数,如公式(6)。根据求得的损失函数值,利用动态学习率调整所有权重参数。

2 结果与分析

2.1 实验平台

本实验采用两块GeForce GTX 1080Ti型GPU进行训练,每块显存大小为11G Bytes,基于Ubuntu16.04操作系统和Tensorflow框架搭建了深度学习算法网络训练平台,其中Python版本为3.6.3,Tensorflow版本为1.9.0,Keras的版本为2.2.4,CUDA API的版本为9.1,cuDNN的版本为9.0。

2.2 训练过程分析

本文设计了3组分别基于Lenet5、VGG16和ResNet50网络的猪脸识别方法作为对比实验,使用训练集对网络进行训练时,采用梯度下降(SGD,stochastic gradient descent)算法进行优化。将随机失活(Dropout)优化算法参数大小设为0.8,设置动态学习率初始参数为0.000 1,学习动量设置为0.95。每次迭代包含的样本数量为50,全部样本迭代一次为一轮,设置迭代轮数为500轮。分析随着迭代次数的增加,网络的准确率和损失函数的变化过程,对比本文模型和其他猪脸识别模型的训练精度。

模型的训练过程如图5所示,所有模型的loss值整体呈下降趋势,精确度值整体呈上升趋势。模型在反向传播的过程中会不断计算全局的最优解,通过小样本计算出的损失值更新卷积核参数,使其预测结果的损失值不断减小。随着迭代轮数的增加,网络的精确度值和损失函数值趋于稳定,会在一定的范围震荡,如430轮迭代之后,本文模型的损失函数值在0~0.02震荡,精确度在0.96~1.00震荡,其他3种浅层网络收敛速度较本文模型稍快,ResNet50和VGG16最终的收敛结果较好,损失函数和训练精确度分别稳定在0.01~0.1和0.96~1.00。但3种对比模型的震荡幅度要高于本文模型,在小样本预测过程中误差较高,因此本文模型的收敛效果更好。

2.3 网络性能对比分析

对网络的训练结果对比分析,从参数模型大小、训练速度和识别模型在测试集中的准确度来测试算法性能。测试集数据经过水平翻转、垂直翻转、亮度提高、亮度降低、随机遮挡和随机剪裁处理之后分为7组,对训练好的猪脸识别模型进行测试,计算网络的准确率。

图6为不同网络的训练结果,网络模型大小反应了网络的复杂度,本文模型使用多尺度并行特征提取,复杂度远高于其他网络。然而训练时间和模型大小没有因为层数的增加而骤增,其主要原因是因为网络中使用的BN结构和Dropout结构降低了深层网络的参数量和运算量。

表3为不同网络猪脸识别方法的测试结果,所有模型在原始测试集图像中的识别准确率最高,水平翻转、垂直翻转和随机块遮挡的情况对深层网络的影响较小。本文模型在水平翻转、垂直翻转和随机块遮挡的情况下,识别准确率分别可以达到95.13%、94.19%和92.97%,明显高于其他网络。Alexnet作为浅层网络的代表,对增强之后的数据集识别率较低,网络的鲁棒性较差。本文基于多尺度卷积的猪脸识别方法,在多种图像增强的测试集的识别率高于其他网络,对实际应用中的复杂环境有更强的适用性,但是在随机剪裁和亮度变化的情况下还有更多的提升潜力。

图5 训练过程对比图Fig.5 Comparison of training process

2.4 模型中间层可视化

根据图2的网络结构图,训练完成的网络对猪脸数据集图像进行特征提取,图7为模型特征提取的输出结果。可观察到网络刚开始预提取特征模块中,提取到的猪脸特征冗余信息较多,随着深度的增加,以及各Inception模块的特征提取,冗余信息减少,猪脸特征越来越突出。由图7可知,本文基于多尺度分类网络的猪个体身份识别模型能够更好地全面提取猪脸特征,并过滤掉无用信息。

图6 猪个体识别模型的训练结果Fig.6 The training results of individual pig recognition model

表3 猪个体识别模型测试结果Tab.3 The test results of individual pig identification model

图7 模型特征提取结果Fig.7 The feature extraction results of model

3 结论与讨论

针对现有的猪个体身份识别方法在多变环境下识别效果不佳的情况,本文基于多尺度卷积分类网络优良的特征提取能力,提出了一种通过识别脸部特征确定猪个体身份的识别模型。利用SSIM和MSE方法对采集到数据集进行筛选,滤除掉相似性很高的图像,有效的预防了训练集和测试集图像相似导致的过拟合。网络使用对称和非对称两种卷积核拆分方法,将不同通道提取到的特征融合,增强了猪脸的全局特征以及细节信息提取,且提高了网络的运行速度。本研究表明,对于真实养殖环境下所采集的图像,本文所提出的模型的识别率高达99.81%,明显高于其他网络,在水平翻转、垂直翻转和随机块遮挡的情况下本文模型的识别率都优于其他模型。

测试猪脸识别模型的过程中发现,图像亮度的升高和降低对网络的影响较为明显,为进一步提高猪脸识别模型的准确率,可采用改进网络结构和扩充训练集的方法,提高网络在恶劣环境下的识别能力,以适应大型农场中复杂多变的环境。同时,识别网络大多采用端到端的识别模式,无法针对特征突出的部位重点识别,因此如何在改进的网络结构中增加多种显著特征的识别权重还可进一步的研究。

致谢:天津惠康种猪场对本试验提供场地和数据支持,谨致谢意!

猜你喜欢
识别率特征提取卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
基于Gazebo仿真环境的ORB特征提取与比对的研究
从滤波器理解卷积
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
基于Daubechies(dbN)的飞行器音频特征提取
提升高速公路MTC二次抓拍车牌识别率方案研究
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法