基于深度学习的猪脸识别方法研究*

2021-03-11 13:31吴梦茹谢秋菊刘洪贵
智慧农业导刊 2021年9期
关键词:猪只灰度准确率

吴梦茹,谢秋菊*,李 欣,刘洪贵

(1.东北农业大学 电气与信息学院,黑龙江 哈尔滨 150030;2.东北农业大学 动物科学技术学院,黑龙江 哈尔滨 150030)

伴随着规模化养殖生产的快速发展,福利化生猪养殖方式引起人们极大的重视[1]。群体化的饲养过程中,对生猪个体自动识别是实现疾病预防和健康养殖的关键。以往的猪只个体识别方式主要包括佩戴耳标、猪身涂抹颜色进行标记等[2],然而这些方式均会对猪造成不同程度的应激反应。

随着计算机视觉不断向前发展,国内外学者纷纷开始使用图像和视频技术来探究一种非接触式生猪个体识别方法[3-5]。例如,Naoki等[6]提出特征空间方法进行猪脸识别,通过手动裁剪面部图像并对重要部位进行分割,对16个类别的识别率达到了97.9%,但是其方法无法实现自动化的猪脸特征提取。相比于机器学习,深度学习凭借深度的网络结构能够更好地提取图像特征,进而达到更优的分类效果。2018年Hansen等[7]以实际农场的猪脸作为数据集,使用自身搭建的基于卷积神经网络分类模型进行测试,较好地完成猪脸识别,并通过加权梯度类激活热力图(Grad-CAM)证明了网络特征的提取来源。秦兴等[8]利用双线性卷积神经网络进行生猪面部特征提取,在其测试图像集上达到了95.73%的识别准确率。王荣等[2]利用改进的86层多尺度网络结构进行猪脸识别,通过对比7组不同环境下的测试数据,所提出模型的识别率均高于其他网络。为了更好地在有限的猪脸数据集基础上提取猪的面部特征,谢碧森等[9]在VGG16的基础上使用迁移学习技术来识别家猪图像,在经过微调后其准确率达84%。然而,上述这些猪脸识别方法主要关注于面部特征的提取、融合以及模型的搭建,而未关注不同图像预处理方法对猪脸识别效果的影响,也未能根据不同网络模型下脸部特征提取效果、模型收敛速度等因素相互作用对整个识别方法造成的性能影响。

因此,本文综合考虑影响特征提取效果、模型收敛速度的因素,基于不同深度学习模型,以猪的面部图像作为研究对象建立猪脸识别模型,以养殖场采集的猪脸图像作为数据集,对建立的不同深度模型在不同的数据预处理方法下进行训练及测试,通过比对不同方法的识别效果,以期为实现精准化养殖中个体识别提供可靠参考。

1 材料与方法

1.1 数据采集

本研究数据集来源于黑龙江省亚布力林业局生猪养殖基地,在自然条件下,随机选取6只成年种猪进行了拍摄。猪只在生长过程中面部变化较大,所提取特征会有所差别,但随着猪只的成年其面部不会再发生较大变化,因此适合作为猪脸识别的研究目标。由于该场对所有猪只均采用分栏管理,当猪在定位栏中进食时,使用普通的智能手机从不同方向捕获猪脸以获取多角度的面部数据。与此同时,为保证猪只个体识别的实用性,采集过程并未对样本面部进行任何清洁处理。其中,每头猪的拍摄时长均为2min,采用30帧/秒(FPS)的采样率和1280×720像素的分辨率。在获取猪的视频数据后,使用OpenCV对视频流进行分帧,每5帧间隔完成一次图像的获取工作,每头猪均可获得700张的图像数据。

1.2 数据筛选

由于截取的数据集中会存在一些图像模糊、不包含或只有部分猪脸等无法使用的图像数据,因此,需要先通过手动方式对数据集进行初步筛选。为防止因视频获取图片数据集中相邻图片相似度过高的问题,以结构相似性(SSIM)[10]作为一种全参考的图像质量评价指标来对两张图像之间的相似性进行衡量。本文将SSIM的阈值范围设为0.6,即当两张图片的SSIM指标值低于0.6时认为两张图片不同并得以保留。

1.3 数据处理

为适应训练模型的输入大小,将1280×720像素大小的图片按比例缩放为256×256像素大小的图片进行统一输入,边缘之处用黑色进行填充,以防止因猪脸变形而影响后续网络对于特征的提取。按比例缩放前后猪脸的效果如图1所示。

图1 按比例缩放前后效果

应用限制对比度自适应直方图均衡化(CLAHE)是在自适应直方图均衡化(AHE)基础上进行的优化,通过对每个小区域块都使用对比度限制,从而克服自适应直方图均衡化(AHE)过度放大噪音的问题。直方图均衡化处理可以使得图像的灰度级范围拉开或灰度分布更加均匀,进而增大反差。为了探究本研究数据集经过灰度与CLAHE相结合的方式处理后是否仍能表现出优于彩色图像的猪只分类效果,本文将设计三组对比实验,分别采用彩色(RGB)、灰度(Grayscale)以及灰度和CLAHE(Grayscale+CLAHE)相结合的方法来对猪脸数据集分别进行相应的预处理工作。其中,未处理前、经过AHE和CLAHE分别处理后的效果,如图2所示。图2 D则是三者像素在整个亮度区间的分布,可以明显看出,经CLAHE处理后的猪脸灰度图像轮廓以及毛发特征更加的明显。

图2 不同处理后的效果图

1.4 数据扩充

实际养殖环境中猪只行为比较活跃,个体在识别过程中可能面临着脸部图像被栏杆或污渍遮挡、面部角度不同等多变环境问题的挑战。因此,为增强模型的健壮性,本研究对已采集到的数据集共使用了三种离线增强方式,对图片进行翻转,随机旋转30°,模拟随机遮挡三种方式实现数据扩充。数据增强后的示例如图3所示。

图3 数据增强前后的示例图

1.5 数据集划分

本文使用的是包含6头猪的256×256像素大小的图像数据集,将每头猪均视为一类则共计6个类别(记作P1-P6),经离线数据增强后,原数据集由经SSIM筛选后的2611张图片扩充到10444张。训练集(Training set)、验证集(Validation set)和测试集(Test set)的划分比例为6:2:2,如表1所示。其中,训练集用于模型的训练,而验证集得出的分类准确率用于模型训练过程中参数调整的参考指标,最后测试集则用来对各个模型的性能进行评估。

表1 数据集划分

2 深度学习模型

2.1 模型结构

深层的网络有助于挖掘数据中深层的特征,可以使得网络拥有更强大的性能,因此本研究采用深度学习模型进行猪脸识别方法的研究。而卷积神经网络(Convolutional Neural Networks,CNN)是计算机视觉的应用中几乎都在使用的一种深度学习模型,其基本结构包括输入层、输出层和多个隐藏层,如图4所示。输入层主要用于输入图像信息的获取;隐藏层主要进行特征提取然后调整权重;输出层则用来对接隐藏层并将模型结果进行输出。本文将在同一数据集下建立基于GoogleNet、ResNet、SE-ResNet、DenseNet的四种模型,探索较优的猪脸识别方法。其中,为了更好地对比这四组模型网络结构的优良,本文将四组模型的参数量进行了一定调整,使得每个模型参数量被精简到同一数量级范围内,再使用同一数据集对模型进行训练和测试。

图4 模型结构

2.2 模型对比

2.2.1 GoogleNet

GoogleNet采用了一些创新性的设计,通过加入1×1卷积和Inception等结构来增加网络的非线性以及实现不同尺度特征的提取[11]。Inception结构如图5所示。

图5 Inception结构

本文在不改变GoogleNet网络层数的前提下,将标准化的猪脸数据由输入层输入网络,经9层的Inception model结构来对不同尺度的面部特征进行提取,并在训练过程中完成整个隐藏层的权值调整工作,最后在输出层完成猪只个体的分类。由于本文所采集到的猪脸数据集较小,使用过多的卷积核来进行特征的提取存在着参数量过多、训练时间过长等问题,为避免出现这些问题,本文对GoogleNet卷积核的个数进行了适当的调整,模型具体细节如表2所示。

表2 GoogleNet网络结构

2.2.2 ResNet

ResNet通过批量标准化(Batch Normalization,BN)[12]和残差块(Residual Block)解决了因网络层数加深而导致的梯度消失或者爆炸以及退化问题[13-14]。本文建立了具有3层结构ResNet模型,其残差结构如图6所示。由于残差结构的存在,模型训练过程中所提取到的浅层猪脸特征可直接传递给深层网络并与之结合,有助于网络模型得到更好的效果。

图6 残差结构[14]

本文在ResNet50模型基础上对相应卷积核进行了微调,调整后的模型ResNET结构如表3所示。

表3 ResNet网络结构

2.2.3 SE-ResNet

SE-ResNet是在ResNet模型的基础之上引入了SE单元模块,进而构建了整个网络的架构[15-17]。图7为SEInception模块结构。对于本文中尺寸为256×256×3的彩色猪脸特征图,首先通过全局平均池化对每个特征分布进行压缩,得到1×1×3的实数数列;然后引入两个全连接层,通过ReLU激活函数与sigmiod门控制机制,获得各通道间相关性,完成特征的重新标定。

图7 SE-Inception模块

2.2.4 DenseNet

稠密连接网络(DenseNet)的主体由交替串联的稠密块(Denseblock)和过渡块(Transition block)构成[18]。不同于ResNet从网络的深度方面改进网络的结构来提高表达能力,DenseNet则是通过特征图重用的方式来探索网络的潜能[19],减少了参数。在本文建立的DenseNet模型进行猪脸识别训练的过程中,网络中每一层的输入变成所有前面层的叠加(concat),然后把它的特征图传递给所有接下来的网络层,这样可以实现猪只面部特征的重用,加深网络的学习。本文建立的DenseNet网络结构,如表4所示。

表4 DenseNet网络结构

2.3 训练参数设置

为获得最优的训练模型,在使用训练集对网络训练时,统一采用自适应矩阵估计算法对模型进行优化,损失值的计算则采用交叉熵损失函数。初始学习率设置为0.0001,监控验证集准确率从而动态触发学习率衰减策略,每次调整为上一次的十分之一。每次迭代包含的样本数为32,整个训练过程共迭代50次。

2.4 运行环境设置

本文所有方法程序运行环境均为Python3.7.6、Tensorflow-GPU 2.3.0,操作系统为win10 64位,硬件平台CPU为Intel i7-9700 3.0GHZ,内存为32G,显卡为NVIDIA GTX1660,6G显存。

3 结果与分析

3.1 训练过程对比分析

在模型训练过程中,统一使用三通道的彩色图片数据集进行训练并对精简后的 GoogleNet、ResNet、SEResNet和DenseNet这4种不同深度模型的猪脸识别方法进行评估。将准确率(Accuracy)和损失值(Loss)作为性能评价的重要指标,在50个迭代周期内,观察并对比4组不同网络模型中这两个指标的变化。模型损失值和准确率两个评价指标的变化情况如图8所示。从图8中可以看出,随着迭代次数的增加,模型训练集的准确率均呈现上升趋势,损失值均呈现下降趋势,最终二者在一定范围内震荡并达到稳定。与其他3组模型相比较而言,精简后的DenseNet在训练集上的表现性能最优。在20个迭代周期后便可达到收敛,其准确率在98%左右震荡,损失函数值则在0.09左右震荡。而其他模型30个迭代周期内虽然也能达到收敛但准确率不高,而且训练过程震荡幅度过大。

图8 不同模型训练过程中训练集的准确率和损失值变化

3.2 测试结果对比分析

为检验已训练模型在测试集上的分类效果,本文采用混淆矩阵作为各模型性能评价指标,测试集使用的是未参与训练的彩色猪脸图片。在测试集中6头猪即6个分类一共2091张图片。各模型测试的混淆矩阵如图9所示。通过对各个模型的混淆矩阵进行对比可知,DenseNet在训练完成后对于6组猪脸数据的分类效果最好,2091个测试集中有31张猪脸图像出现了分类错误。根据混淆矩阵对各个模型的精确率(Precision)、召回率(Recall)以及特异率(Specificity)进行计算并求取平均值,其结果如表5所示,DenseNet在对6组猪的测试集图片数据分类时平均精确率、平均召回率以及平均特异率分别为98.47%、98.45%和99.70%,明显优于其他模型。

图9 各个模型混淆矩阵

表5 各个模型精确率、召回率和特异率

由此可见,DenseNet在新的测试图片上也能表现出超过其他模型的优良性能,可以很好地实现猪个体识别。

3.3 不同图像处理方式对比分析

本研究在保留彩色图像的基础上又分别使用灰度化和CLAHE这两种方式分别对数据集进行了处理,共形成彩色图片(RGB)、灰度图片(Grayscale)、经 CLAHE处理的灰度图片(Grayscale+CLAHE)这三组不同的猪脸数据集。为遵循单一变量原则,将这三组数据集作为自变量分别放入同一种模型(DenseNet)中进行训练、测试,观察该模型在不同数据集下训练速度和测试集准确率的变化情况。DenseNet在三种预处理方式下测试集准确率和损失值,如表6所示。训练过程中准确率(Accuracy)和损失值(Loss)变化,如图10所示。

表6 不同处理方式的损失值和准确率

图10 不同处理方式的准确率和损失值

由图10可以看出,模型迭代不到20次其损失值就已达到稳定,比使用RGB数据集收敛速度更快一些,由此可知将图片数据集进行灰度化可以加快模型的收敛。这是由于拍摄环境复杂性和家猪肤色的相似性,使用彩色图像会受到明亮度等多种因素的影响[20],而使用灰度图像可以迫使模型在训练过程中更专注于猪脸本身图案特征的提取而非颜色。经CLAHE处理后猪只面部会更加清晰,毛发等特征也会更加明显,有利于模型的学习,进而在测试集上分类效果要比灰度处理方式更好一些。但相比于彩色处理测试集高达98.52%的准确率,剩余两种预处理方式准确率要差一些。如若实际养殖场景中光照条件比较差,采用灰度与CLAHE图片预处理方式则可以为其提供一种良好的解决方案。

4 结论

(1)本文以猪场采集的猪脸视频作为数据集,通过SSIM指标和离线方式分别对数据进行筛选和增强后,建立的DenseNet模型在测试集上识别精度最高可达98.52%,为探索非接触式猪个体识别提供参考。

(2)在不改变模型结构的基础上,对DenseNet卷积核个数进行微调,不仅可以保证较好的分类效果,还可以大幅度减少参数量,进而缩短模型的训练时间。

(3)对图像进行灰度化处理可以加速模型的收敛速度,使用灰度化与CLAHE相结合的数据预处理方式虽不如彩色图像分类准确率高,但其在光照条件较差的养殖场地有很好的应用前景。

(4)SSIM对于初步的筛选至关重要。由视频流分帧获取数据集后,原数据集中很多图片是高相似度的图像,这些质量不高的图像不利于模型的训练。

猜你喜欢
猪只灰度准确率
猪气喘病的防治措施分析
深度学习在猪只饲养过程的应用研究进展
航空滤光片阵列多光谱图像条带灰度调整算法
采用改进导重法的拓扑结构灰度单元过滤技术
基于姿态与时序特征的猪只行为识别方法
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
天津港智慧工作平台灰度发布系统和流程设计
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察