Print

发布时间: 2022-04-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.200619
2022 | Volume 27 | Number 4




    图像分析和识别    




  <<上一篇 




  下一篇>> 





联合损失优化下的高相似度奶山羊身份识别
expand article info 尚诚1, 王美丽1,2,3, 宁纪锋1, 李群辉4, 姜雨5, 王小龙5
1. 西北农林科技大学信息工程学院,杨凌 712100;
2. 农业农村部农业物联网重点实验室,杨凌 712100;
3. 陕西省农业信息与智能服务重点实验室,杨凌 712100;
4. 长安大学理学院,西安 710064;
5. 西北农林科技大学动物科技学院,杨凌 712100

摘要

目的 动物个体身份识别一直是智慧畜牧业的主要难题之一,由于动物个体本身与人类在图像识别上需要的数据特征不同以及各个特征作为个体属性之间的关系不明确,对动物个体识别领域的研究较少,针对具有高相似度的奶山羊个体身份识别问题,提出了基于深度学习的高相似度的奶山羊识别方法。方法 采集了26只萨能奶山羊的全身图像,利用SSD(single shot MultiBox detection)网络进行数据集预处理,并随机选取1 040幅图像作为训练集,260幅图像作为测试集。其次采用ResNet18(residual neural network)预训练模型并进行迁移学习,最后联合三元组损失函数与交叉熵损失函数进行参数调整。研究表明,采用联合损失函数并结合Adam优化器算法时,可获得较好的识别效果。此外,在实验部分针对奶山羊的特征选取问题上,对奶山羊的羊脸区域与奶山羊的全身区域分别采用了三元组损失函数与孪生网络,验证了对奶山羊的识别仅靠羊脸区域的特征时准确率较低;此外,针对网络的训练,本文不仅通过YOLOv3(you only look once)以及孪生网络(siamese network)验证了奶山羊本身属于高相似度的数据集,而且针对奶山羊数据集分别采用三元组损失函数与交叉熵损失函数作为唯一的损失函数,并验证了该方法的有效性。结果 奶山羊识别的最高精准度为93.077%,相较于Triplet-Loss损失函数74.615%的准确率以及CrossEntropy-Loss 89.615%准确率有了较大提升。结论 本文提出的基于深度学习的高相似度的奶山羊识别方法不仅具有较高的准确率,而且在奶山羊个体身份识别方面具有极大的应用价值,有助于准确识别羊的身份,为相似度高的动物个体身份识别提供了思路。

关键词

深度学习; 奶山羊个体身份识别; Triplet-Loss; 联合损失函数; 迁移学习

Joint loss optimization based high similarity identification for milch goats
expand article info Shang Cheng1, Wang Meili1,2,3, Ning Jifeng1, Li Qunhui4, Jiang Yu5, Wang Xiaolong5
1. College of Information Engineering, Northwest A & F University, Yangling 712100, China;
2. Key Laboratory of Agricultural Internet of Things, Ministry of Agriculture and Rural Affairs, Yangling 712100, China;
3. Shaanxi Key Laboratory of Agricultural Information Perception and Intelligent Service, Yangling 712100, China;
4. School of Science, Chang'an University, Xi'an 710064, China;
5. College of Animal Science and Technology, Northwest A&F University, Yangling 712100, China
Supported by: Shaanxi Province Key R & D Program(2022QFY11-03);Key Laboratory of Agricultural Internet of Things, Ministry of Agriculture and Rural Affairs (2018AIOT-09); Shaanxi Province Agricultural Science and Technology Innovation Transformation Project Contract (NYKJ-2020-YL-07); Shaanxi Agricultural Science and Technology Innovation Drive Project (NYKJ-2021-YL(XN)48)

Abstract

Objective It is essential for the quick response in tracking information of animals for intelligent agriculture and animal husbandry nowadays. Individual identification of animals has been one of the challenging issues in real-time monitoring. Different from traditional methods with high harmfulness such as imprinting, our deep learning based method is adopted to implement image recognition for the several of animal and human as well as the unclear multi-features relationship. Method First, our computer vision method is demonstrated for individual recognition of dairy goat based on deep learning. The 26 goats' pictures-oriented are acquired including the head and other parts. Fancy fancy principal components analysis (PCA) is adopted as the data expansion methods to expand the dataset. A sum of 1 040 goats' images are randomly selected for training, and 260 images are used as independent test sets; single shot MultiBox detection (SSD) network based dataset preprocessing is initial to be required. Our demonstration uses the siamese network for preliminary learning. The network structure and learning rate optimization algorithm are employed to adjust the parameters but not suitable for individual identity classification. It verifies the goat itself in terms of the highly similar data set. The effect of whole goat image is better than single head image. This obtained result has been greatly improved from the training of original head to the whole body in the context of is the solo Triplet-Loss function. The original image input of the Triplet-Loss function is composed of three pictures. Because the dairy goat is proven to have high similarity of individual based on the siamese network, it is not required to conduct the data sets integration derived of the Triplet-Loss function as well as the set of different goats images is complicated based on manual method. Next, Triplet-Loss function in dataset has its potentials compared with the siamese network method. Our joint loss function and transfer learning model residual neural network(ResNet18) obtain the goat information in terms of deep network structure. Finally, the joint loss function takes Adam as the optimizer algorithm, our demonstration can get qualified recognition as the hard batch (difficult triplets) of Triplet-Loss function are not required in the context of Triplet-Loss function and CrossEntropy-Loss function and related parameters. In addition of goats, we use the Triplet-Loss function and siamese network to option the feature for the goat face region and the whole goat region verifies the features of the goat face region recognition is not good in terms of high accuracy rate. Our illustration is not only uses you only look once (YOLOv3) network and siamese network to identify goats, but also uses transfer learning model to learn. The siamese network verifies that the goat itself based on high similarity data set, and the Triplet-Loss function and CrossEntropy-Loss function are used as final loss function to verify the effectiveness of the method. Result The SSD network was used to preprocess the dataset. The demonstrated results illustrate that the accuracy can be improved from 86% to 93.077% by combining the joint loss function with Adam algorithm. When the joint loss function is used with Adam optimization algorithm as well as the joint loss function accounts for a certain proportion, other correlation can be realized by adjusting the parameters, the result will be obtain better recognition effect. Just compared with 74.615% of Triplet-Loss function and 89.615% of CrossEntropy-Loss function, the highest recognition accuracy is 93.077%. Conclusion Our higher recognition effect of goat analysis is based on the model of deep learning. These goats cannot just get more effective facial features recognition but can obtain higher accuracy derived of the whole goat body. Intelligent research of individual goat should be conducted based on the segmented attribute of each part of the goat body. Furthermore, our research can lower high labor costs issues based on deep learning model in terms of computer vision archives.

Key words

deep learning; individual identification of dairy goat; Triplet-Loss; joint loss function; transfer learning

0 引言

在现代化养殖与育种工作中,畜牧业作为农业发展中至关重要的一个分支,特别是对于中国西北地区来说,提高畜牧业的智慧发展程度更是提高农村经济和农业生活水平的关键。对个体实时检测和识别是智慧养殖中亟需解决的首要问题,通过对动物个体或群体的实时信息掌握,可以预警突发事件,也可以通过构建不同的评价指标实时掌握动物个体的健康状况。同时,个体识别也是实现大数据管理蓄种的基础技术之一。

牲畜的传统身份标记方法分为具有永久性损伤的刻烙印法、耳标外置标签法及外置RFID(radio frequency identification)设备标签等。传统标记动物方法,无论是刻耳烙印或耳标外置等都容易对动物造成不同程度的伤害。刻烙印法对动物刺激很大,会对牲畜造成一定伤害,如图 1(a)所示。耳标外置标签法不仅会使动物耳部易发生感染,也会因为动物本身活动导致耳标丢失等,如图 1(b)所示。

图 1 传统动物识别技术
Fig. 1 Traditional animal marking methods
((a) engraving method; (b) external ear tag method)

刘冬等人(2016)提出对动物个体进行实时信息掌握和群体信息实时跟踪,有助于对突发事件进行紧急预警,且多项指标的动态更新有利于畜种生产性能的预测,从而及时了解个体的健康状况。个体识别技术是实现智慧农业管理畜牧类动物的基础。本文以西北农林科技大学萨能奶山羊为研究对象,提出一种基于深度学习识别动物个体的方法,通过对原始奶山羊数据集进行预处理,在不丢失奶山羊身体特征信息的基础上降低背景干扰,然后通过残差网络进行奶山羊身体特征学习,最后提出针对奶山羊个体特征适用的三元组损失函数与交叉熵损失函数组合而成的联合损失函数,结合调参得到最终的训练结果。本文主要贡献如下:1)利用Triplet-Loss与CrossEntropy-Loss联合优化的方法,使网络在多个函数联合优化下增强识别能力,提高奶山羊个体识别的准确率。2)研究中的奶山羊图像采用SSD(single shot MultiBox detector)进行数据集的预处理,提高数据集的质量,减小了数据集中无关背景的影响。3)通过孪生网络(siamese network)验证奶山羊的个体之间的相似度高的特点,加强Triplet-Loss方式的训练效果,从而提高奶山羊个体身份识别的准确率。

1 相关工作

动物个体识别与人脸识别相似,均属于图像分类研究,并且人脸识别的分类算法与本项目中的奶山羊个体身份识别类似,二者均需要进行特征提取,将分类器统一在一个环境之下,最后分析个体的图像特征并进行分类,所以本研究中的奶山羊个体身份识别可以借鉴人脸识别算法。

1.1 基于DeepFace、DeepID与DeepID2的人脸识别算法

Taigman等人(2014)提出了基于卷积神经网络的人脸识别方法DeepFace,该算法采集4 000个人的人脸图像进行训练,并利用3D模型对人脸图像等进行对齐,用于训练的神经网络共9层,整个训练过程中前2个卷积层采用共享卷积核,后3个卷积层采用不共享卷积核,倒数第2层采用全连接层提取出对应的人脸特征,最后一层是1个softmax分类层。该方法在公开人脸数据集LFW(labled faces in the wild)上准确率为97.25%。Sun等人(2014ab)提出了DeepID(deep hidden identity features)和DeepID2等方法,使用人脸验证与分类进行网络训练,在公开人脸数据集LFW上测试效果分别为97.45%与99.15%。但是,由于DeepFace需要采取不同的训练方式才能保证准确率,而奶山羊的养殖会存在定期购进或其他方式增加奶山羊数量问题,所以上述烦琐过程不适合应用于畜牧业养殖。对于DeepID与DeepID2,当数据库中存在大量干扰人脸时,会对辨识率和准确率造成影响,尤其在姿态识别上。本项目中奶山羊个体属于十分活跃的识别目标,姿势动作随机且多变,由于奶山羊的好动特点,难以采集固定的姿势图像,且本项目数据集中可能存在多只羊或包含人的非单只羊图像,所以该类网络不适合本项目。

1.2 基于one-shot learning的人脸识别算法

Vinyals等人(2016)提出了一种人脸识别算法one-shot learning,可以在训练样本不足的情况下实现较为精准的分类。该算法的主要贡献在于提出了matching networks, 将注意力机制和记忆机制引入快速学习任务,每个类别中仅用很少样本进行训练便可以取得较好效果,解决了无法获得大量有效数据集的应用场景问题。但本研究中奶山羊的检测和识别数据需要实时获得,不适用于光照强度不同和侧身角度不同以及含有遮挡等情况,同时因为数据样本过少,无法做到实时检测以及准确识别。

1.3 基于孪生网络的人脸识别算法

Chopra等人(2005)提出了孪生网络(siamese network),由两个相同的卷积神经网络组成,输入图像后,将两个网络的计算结果反馈给对比损失函数,计算两个输入图像之间的相似度。基于孪生网络的人像识别,主要是将同一个人的不同图像及非同一个人的多幅图像作为训练数据,通过网络学习人脸部位的特征信息。但是由于孪生网络更适合区别非同一人的两幅图像的特征信息,所以对同一个人的识别率较低,并且应用到非人脸识别时的阈值无法确定,故不适用奶山羊的身份识别。

1.4 基于Facenet的人脸识别算法

Schroff等人(2015)提出了人脸识别算法Facenet,将独特的Triplet-Loss与特有的hard-batch组合应用到人脸识别领域,取得了很好效果。该算法以图像在多维空间的映射距离作为相似度的评价标准,即在同一个人的两幅人脸图像的多维空间中空间距离小于非同一个人的两幅人脸图像的多维空间中的空间距离。具体的做法是将两幅未知是否为同一个人的人脸图像利用神经网络将其映射到欧氏空间上,通过计算不同输入图像的多维空间的空间距离对比判断是否为同一人。该网络采用hard-batch组合,取得了很好的识别效果,但是应用于非人脸识别(如动物的个体识别)却不能达到预期效果,因为无法像人脸一样提取到足够的特征。出于实际的农业畜牧业发展对精准度的要求,该应用在准确率上不能满足需要,加之其仅能识别正脸图像的局限性,故单纯的Facenet的Triplet-Loss方法不足够用于本研究。本研究将在Triplet-Loss的基础上进行改进,利用Triplet-Loss独特的损失函数结构构造联合损失函数,使网络在联合损失的基础上增强表征能力。

1.5 动物个体的识别方法

近些年,研究者针对家畜展开了多项研究。刘伟等人(2020)提出利用SSD网络对猪个体进行检测,为后续其他物种个体识别的研究奠定了基础。秦兴和宋各方(2019)提出了基于卷积神经网络的猪脸识别算法,将神经网络改进为双线性模式并采用迁移学习方式对200头猪进行特征学习,可以应对不同的复杂环境等问题,但是该算法需要通过人工手段对特征进行分割。

针对奶牛个体的识别,梁坤和张哲纯(2013)陈红莉(2016)蒙贺伟等人(2015)张海峰和沈媛萍(2012)应用了RFID技术,但是其成本仍不可忽略。张满囤等人(2018)采用特征图融合的方式对奶牛个体进行识别。黄俊华和田壮(2019)选取改进的VGG-16(Visual Geometry Group network 16-layer)卷积神经网络方法对奶牛个体进行识别。

关于羊个体检测识别的研究较少,部分研究者对羊的声音进行了深入研究。宣传忠等人(20152016ab)以声音作为依据,对于羊的行为、疾病特征做出准确判断,为羊个体识别奠定了基础。

本研究对高相似度奶山羊的个体识别进行研究,为奶山羊躺卧时间过久且不进食以及频繁打斗等异常行为的预警提供基础。

2 算法实现

本文的技术路线如图 2所示,首先采用SSD网络的边界框识别,对奶山羊的个体进行检测,切割裁剪预处理后作为实验的数据集;然后利用残差神经网络ResNet18(residual neural network)对奶山羊的数据进行特征分析;最后利用联合损失函数对网络的学习进行评价,通过相关调参以及实验对比得到最佳效果。

图 2 技术路线图
Fig. 2 Technology road map

2.1 利用SSD网络对奶山羊数据集预处理及扩容

为减少图像背景信息的干扰,并尽可能地保证奶山羊个体的身体特征信息完整,本研究首先通过对SSD网络(刘冬等,2016)检测后的目标进行切割, 重新形成数据集,然后对数据集不平衡部分,采用翻转、旋转、调整对比度、调整亮度以及调整色度饱和度、Fancy PCA(fancy principal components analysis)等方式对数据集扩容,保障其三元组损失函数中需要的negative对和positive对的数据集组合的完整与丰富。

SSD的网络结构中第1部分为VGG-16结构,主要目的是提取低尺度的特征映射图;第2部分为连接上一部分网络输出的特征映射图,通过卷积神经网络输出4个高尺度的特征信息,主要任务是提取高尺度的特征映射图;第3部分是预测特征映射图中每个点的矩形框信息和所属类信息。对应的损失函数由预测框位置的损失和预测类的损失组成。

在本实验中,采用SSD网络预训练模型,对奶山羊的数据集进行初步检测,预处理结果如图 3(a) (b)所示,在检测出奶山羊个体的同时,对个体进行边界框的切割处理,如图 3(c)所示。

图 3 利用SSD网络对数据集进行预处理
Fig. 3 Use SSD network to preprocess the dataset
((a) input image; (b) SSD network detection effect; (c) image detected and cut by SSD)

2.2 利用残差神经网络对奶山羊特征进行学习

奶山羊具有个体间相似度高的特点,所以训练模型需要较深层次的网络结构,但是较深层次的网络结构会带来梯度消失和梯度爆炸问题,故本研究选取残差神经网络(ResNet)(He等,2016)。ResNet利用快捷连接(shortcut connection)加深网络结构,有效解决了上述问题。该结构不仅可以在相邻的网络层之间建立连接,也可以完成跨层连接,这种神经网络不仅计算量小,并且可以使深度层数明显增加。本研究中奶山羊的身份识别算法中的网络结构部分使用基于ResNet18的预训练网络模型作为初始化网络进行迁移学习,而并非随机初始化网络参数。网络结构ResNet18,数字代表网络深度,18表示17层卷积层和1层全连接层,不包括池化层和批归一化(batch normalization,BN)层。实验表明,采用残差神经网络作为网络结构,孪生网络的识别效果得到了很好提升。

2.3 利用联合损失函数作为网络的损失函数

2.3.1 Triplet-Loss训练

由于奶山羊个体之间相似度高,因此高质量的数据集是十分重要的,然而奶山羊天性胆小好动,很难配合拍照人员采集数据,获取大量有效的奶山羊图像具有一定的挑战性。本文在数据集较少却需要获得较高的分类效果方面,采用Triplet-Loss作为损失函数训练数据,通过增大困难三元组(hard-batch)的方式组建数据组合,从而解决因数据集不足引起的识别不精准问题。

图像经过ResNet18网络结构之后,由特征矩阵提取信息,再经过L2范数完成归一化,映射为一个128维的特征向量,然后由Triplet-Loss完成最后的训练。Triplet-Loss可以将属于同一个体的样本之间的差距缩小,将非同一个体的差距扩大。奶山羊个体训练过程如图 4所示,图像anchor和positive是同一只但最不像同一只羊的不同图像,anchor和negative是不同羊的相似图像,其三元组损失函数为

$ \begin{gathered} L=\sum\limits_{i}^{N}\left[\left\|\boldsymbol{f}\left(x_{i}^{\mathrm{a}}\right)-\boldsymbol{f}\left(x_{i}^{\mathrm{p}}\right)\right\|_{2}^{2}-\right. \\ \left.\left\|\boldsymbol{f}\left(x_{i}^{\mathrm{a}}\right)-\boldsymbol{f}\left(x_{i}^{\mathrm{n}}\right)\right\|_{2}^{2}+\alpha\right]_{+} \end{gathered} $ (1)

图 4 奶山羊个体训练过程
Fig. 4 Training process on individual dairy goats

式中,$N $代表训练时三元组的组合数量,$\boldsymbol{f}\left(x_{i}^{\mathrm{a}}\right) $$\boldsymbol{f}\left(x_{i}^{\mathrm{p}}\right) $$\boldsymbol{f}\left(x_{i}^{\mathrm{n}}\right) $分别代表图像anchor,positive和negative,$\alpha $代表正负样本之间的margin值。

从式(1)可以看出,损失函数使图像anchor与positive在高维空间中的距离更近,与negative的距离更远。

对于Triplet-Loss中可以起到有效分类的hard-batch组合,siamese network网络的实验结果表明,奶山羊本身为高相似度的个体不需要再额外区分hard-batch组合。

2.3.2 CrossEntropy-Loss分类

交叉熵损失函数在常见多分类问题中应用广泛,本研究采用交叉熵损失函数作为联合损失函数的组合部分。交叉熵用来衡量概率之间的距离,从而判断其差距的大小,交叉熵的值越大,概率分布越远;值越小,分布越近。假设概率分布$ p$为期望输出,概率分布$ q$为实际输出,则交叉熵$H(p, q) $

$ \begin{gathered} H(p, q)=-\sum\limits_{x}(p(x) \log q(x)+ \\ (1-p(x)) \log (1-q(x))) \end{gathered} $ (2)

式中,$x $是离散型随机变量。

例如,本研究共3只奶山羊,记$N $= 3。若期望输出$p $= (1, 0, 0),实际输出$q_1 $= (0.4, 0.5, 0.6),$q_2 $=(0.5, 0.5, 0.6),则$H\left(p, q_{1}\right) $=0.92,$H\left(p, q_{2}\right) $=0.82。

可以看出,$q_{2} $$p $交叉熵更小,两者概率分布更接近。

交叉熵计算结合了LogSoftmax函数与NLLLoss函数,即

$ H(p, q)=-\sum\limits_{x}(p(x) \log q(x)) $ (3)

式中, $x $为随机变量,$p(x) $$q(x) $分别为两个单独的概率分布。

损失函数为

$ \begin{gathered} {loss}(x, { class })=-\log \left(\frac{\exp (x[ { class }])}{\sum\limits_{j} \exp (x[j])}\right)= \\ -x[ { class }]+\log \left(\sum\limits_{j} \exp (x[j])\right) \end{gathered} $ (4)

式中, $x $为数据的条数,$class $表示分类的数量。

利用CrossEntropy-Loss作为损失函数解决了奶山羊多分类问题。

2.3.3 联合损失函数

联合损失函数将多类损失函数结合起来,对整体结果起到联合优化效果,本研究采用Triplet-Loss与CrossEntropy-Loss联合优化的方式,使网络在多个函数联合优化下,提高表征能力。具体为

$ {loss}_{\text {all }}=\lambda {loss}_{\text {triplet }}+\eta {loss}_{\text {CrossEntropy }} $ (5)

式中,${loss}_{\text {all }} $表示本研究的损失函数,${loss}_{\text {triplet }} $代表三元组损失函数,$ \lambda$为三元组损失函数的参数,取$ \lambda$=0.5,${loss}_{\text {CrossEntropy }} $代表交叉熵损失函数,$ \eta$为交叉熵损失函数的参数,取$ \eta$ = 0.5。

3 实验结果分析与对比

对经SSD预处理和未经SSD预处理的数据集进行训练并测试,然后在萨能奶山羊高相似度数据集上对YOLOv3(you only look once)(Redmon和Farhadi,2017)、siamese network、ResNet18(损失函数Triplet-Loss)、ResNet50(损失函数Triplet-Loss)、ResNet18(损失函数CrossEntropy-Loss)、ResNet18(联合损失函数)和ResNet50(联合损失函数)等网络进行对比实验,每组实验结果为同一参数10次实验中最佳结果。

3.1 数据集预处理实验对比

采用SSD网络对数据集预处理,参数设置批大小为32,迭代轮次为11,学习率为0.001,优化器采用自适应矩估计(Adam)优化器,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2,用于计算梯度以及梯度平方的运行平均值的系数为(0.9,0.99)。ResNet18模型在经SSD网络预处理和未经SSD网络预处理的数据集上的效果对比如表 1所示,可以看出,对数据集进行预处理可以有效提升预测准确率。

表 1 在预处理和未预处理数据集上的准确率比较
Table 1 Comparison of accuracy between on preprocessed dataset and not

下载CSV
模型 数据集 准确率/%
ResNet18 经SSD预处理 93.077
ResNet18 未经SSD预处理 83.000
注:加粗字体表示最优结果。

3.2 YOLOv3网络实验对比

采用YOLOv3网络对数据集特性进行初步验证,参数设置批大小为64,一次性送入训练器的样本数量为4,学习率为0.000 5,最大迭代次数为32 000,动量设置为0.9,权重衰减设置为0.000 5,曝光量调整的值为1.5,学习率的调整策略为steps方式,饱和度调整的值为1.5,色调调整的值为0.1。

本文通过网络获取了贵州白山羊、湖羊、滩羊、新疆细毛羊和小尾羊等不同品种羊的图像。YOLOv3网络对不同品种羊个体的检测效果如表 2所示,羊的编号代表一个品种的羊。可以看出,YOLOv3可以完成相关品种的基础区分,但效果较差,如表 2中除新疆细毛羊和奶山羊外, 其他羊品种区分效果不理想,说明不同品种的羊个体之间特征区分不显著。

表 2 YOLOv3网络对不同品种羊个体检测效果
Table 2 Individual detection results of different breeds of sheep by YOLOv3

下载CSV
羊的编号 品种 英文名称 平均精度/%
0 贵州白山羊 GZ_goat 1.67
1 湖羊 H_sheep 52.92
2 奶山羊 Milch_sheep 100.00
3 滩羊 T_sheep 7.41
4 新疆细毛羊 XJ_sheep 100.00
5 小尾羊 XW_sheep 67.10

YOLOv3网络在奶山羊数据集的测试结果如表 3所示,个体编号代表一只奶山羊。实验目的是衡量学习出来的模型在羊数据集每个类别或同品种情况下每只羊的检测精度。可以看出,仅对奶山羊数据区分时,精确度为0(表 3),从侧面印证了奶山羊个体图像相似性极高的特点。

表 3 YOLOv3网络对同品种奶山羊个体身份检测效果
Table 3 Results of individual identification of the same breed of dairy goats by YOLOv3

下载CSV
个体编号 奶山羊名称 平均精度/%
0 02_sheep 0
1 10_sheep 0
2 40_sheep 0
3 46_sheep 0
4 47_sheep 0
5 52_sheep 0
6 54_sheep 0
7 60_sheep 0
8 64_sheep 0
9 94_sheep 0
10 100_sheep 0
11 107_sheep 0
12 108_sheep 0

表 2表 3可以得到如下初步结论:羊的分类无论是区分不同品种还是从同类品种中区分不同个体都具有较高难度,YOLOv3网络不能作出足够的识别。

3.3 Siamese network实验对比

采用孪生网络在奶山羊数据集上分别以随机梯度下降(stochastic gradient descent, SGD)、RMSprop(root mean square prop)和Adam(adaptive momentum)为优化策略进行实验,结果如表 4所示。可以看出,优化策略为RMSprop时的准确率为52.6%,较另外两种方式有更有效的提升。3种策略中,结合多种优化算法的Adam的准确率较差。实验结果表明应该选择RMSprop策略。

表 4 孪生网络采用不同优化策略的精确度对比
Table 4 Comparison of accuracy among different optimization strategies by siamese network  

下载CSV
/%
优化策略 余弦退火衰减
$T_{\max } $ = 300
余弦退火衰减
$T_{\max } $ = 150
多步长衰减
$\gamma $ = 0.8
固定步长衰减
$\gamma $ = 0.8
动量因子=0.9 Bates
(0.9,0.99)
余弦退火衰减
$T_{\max } $ = 300, $\alpha $ = 0.9
SGD 51.35 50.98 50.23 50.38 49.78 - -
Adam 49 - - - - 50.38 -
RMSprop - - - - - - 52.60
注:$T_{\max } $为最大迭代次数,$\gamma $为衰减的底数,Bates()表示浮点数,$\alpha $为平滑常数;加粗字体表示最优结果; “-”表示该优化器下无对应属性可进行实验。

针对奶山羊脸部相似度高的特点,采用VGG网络对奶山羊脸部和整只奶山羊图像进行对比,实验结果如表 5所示。可以看出,即使调整了网络结构,孪生网络的准确率也无法进一步提升。然而,相较于仅学习脸部特征,将羊整体特征进行网络学习更有效。

表 5 VGG网络对羊脸和羊整体的检测结果
Table 5 Experimental results of sheep face and whole sheep by VGG network  

下载CSV
/%
网络 部位 最佳准确率
VGG 羊脸 53.00
羊整体 67.90
注:加粗字体表示最优结果。

3.4 Triplet-Loss实验对比

将Triplet-Loss作为损失函数,以VGGFace和ResNet作为网络结构分别对羊脸和羊整体进行数据训练并进行验证,参数设置批大小为32,迭代轮次为40,学习率为0.001,采用Adam优化器,实验结果如表 6所示。可以看出,Triplet-Loss作为损失函数时准确率得到较好的提高,并且羊整体图像识别效果优于仅靠脸部进行学习的效果。实验结果表明,进行高相似度奶山羊个体识别时更换损失函数是必要的,但是准确率依然没有达到理想精度。

表 6 Triplet-Loss为损失函数时采用迁移学习的实验结果
Table 6 Experimental results of transfer learning with Triplet-Loss as loss function  

下载CSV
/%
网络 部位 准确率
VGGFace 羊脸 64.615
ResNet50 羊脸 63.076
ResNet50 羊整体 74.615
注:加粗字体表示最优结果。

3.5 CrossEntropy-Loss实验对比

将CrossEntropy-Loss作为损失函数,采用网络结构ResNet18分别以SGD与Adam为学习率优化策略对羊整体识别进行对比。随机梯度下降(SGD)优化器为学习率优化策略的实验参数批大小为32,迭代轮次为11,学习率为0.005,动量设置为0.9,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2;自适应矩估计(Adam)优化器算法为学习率优化策略的实验参数批大小为32,迭代轮次为11,学习率为0.005,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2,用于计算梯度以及梯度平方的运行平均值的系数为(0.9,0.99)。实验结果如表 7所示,可以看出,CrossEntropy-Loss作为损失函数时准确率相比三元组损失函数得到明显提高。实验结果表明,调整损失函数可以达到较高的准确率。但Triplet-Loss作为损失函数在一定程度上对本项目数据集具有不可忽略的积极作用,所以考虑将两个函数作为联合损失函数。

表 7 CrossEntropy-Loss为损失函数时不同优化策略的识别结果
Table 7 Experimental results of different optimization strategies under Crossentropy-Loss function

下载CSV
网络 优化策略 准确率/%
ResNet18 SGD 89.615
ResNet18 Adam 88.846
注:加粗字体表示最优结果。

3.6 联合损失函数实验对比

将Triplet-Loss和CrossEntropy-Loss两种损失函数结合作为损失函数,分别利用网络结构Resnet18和Resnet50,以SGD、Adam和RMSprop为学习率优化策略对羊整体识别进行对比。SGD为学习率优化策略的实验参数批大小为32,迭代轮次为11,学习率为0.005,动量因子为0.9,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2;自适应矩估计(Adam)优化器算法为学习率优化策略的实验参数批大小为32,迭代轮次为11,学习率为0.001,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2,用于计算梯度以及梯度平方的运行平均值的系数为(0.9,0.99);前向均方根梯度下降(RMSprop)优化器算法为学习率优化策略的实验参数批大小为32,迭代轮次为11,学习率为0.000 5,动量因子为0.9,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2,平滑常数为0.9。实验结果如表 8所示,可以看出,采用联合损失函数为损失函数,以Adam为学习率优化策略,残差神经网络ResNet18取得了最好的效果。

表 8 不同网络结构采用联合损失函数在不同优化策略的羊整体识别实验结果
Table 8 Experimental results of sheep body recognition with different optimization strategies and different network structures under joint loss function

下载CSV
网络结构 优化策略 准确率/%
ResNet18 SGD 86
ResNet18 Adam 93.08
ResNet18 Rmsprop 78
ResNet50 SGD 78
注:加粗字体表示最优结果。

采用联合损失函数作为损失函数,参数$ \lambda$$ \eta$取不同值时ResNet18网络的实验结果如图 9所示。实验参数批大小为32,迭代轮次为11,学习率为0.001,自适应矩估计(Adam)优化器算法为学习率优化策略,随机种子的值为1,随机将输入张量中部分元素设置为0的概率为0.2,用于计算梯度以及梯度平方的运行平均值的系数为(0.9,0.99)。从图 9可以看出,当参数$ \lambda$=0.5,$ \eta$=0.5时,萨能奶山羊数据集的训练与测试效果最佳。

表 9 参数$ \lambda$$ \eta$取不同值时ResNet18模型的实验结果
Table 9 Parameters $ \lambda$ and $ \eta$ are the experimental results with different value

下载CSV
$ \lambda$ $ \eta$ 准确率/%
0.1 0.9 88.85
0.2 0.8 87.69
0.3 0.7 89.23
0.4 0.6 89.62
0.5 0.5 93.08
0.6 0.4 86.54
0.7 0.3 88.46
0.8 0.2 81.15
0.9 0.1 81.54
注:加粗字体表示最优结果。

4 结论

为了实现高相似度奶山羊个体识别,本文提出了一种基于改进的Triplet-Loss方法,通过实验验证了方法的有效性和可行性,得到以下结论:1)通过孪生网络与YOLOv3网络测试可知奶山羊脸部相似度高,所以需要更多的特征完成识别,故选择完整奶山羊个体图像而非奶山羊的脸部图像。2)本研究在Triplet-Loss的hard-batch组合问题上,利用YOLOv3和孪生网络验证了奶山羊个体之间不仅面部图像的相似度高的问题,也证明了其本身物种具有高相似度的特点,从而不需要再单独制作hard-batch。3)基于Triplet-Loss与CrossEntropy-Loss联合优化的方法,使网络在多个函数联合优化下增强了表征能力。4)相较于传统方法,本文方法选择了无接触、低成本、高收益和无伤害的深度学习方法,优于传统的动物个体标记识别办法。5)本研究中的奶山羊图像采用SSD进行图像处理,从而提高数据集的质量,尽可能缩小无关背景的影响。6)本文方法仍存在不足,如仅利用相关网络实现单个奶山羊的个体识别。今后将考虑引入Mask R-CNN (region convolutional neural network)等网络结构对羊群进行掩膜处理,实现多个奶山羊的个体识别。

参考文献

  • Chen H L. 2016. Application of RFID technology in large scale dairy farm. Shihezi Science and Technology, (2): 6-8 (陈红莉. 2016. 基于RFID技术在规模化奶牛场中的应用. 石河子科技, (2): 6-8) [DOI:10.3969/j.issn.1008-0899.2016.02.004]
  • Chopra S, Hadsell R and LeCun Y. 2005. Learning a similarity metric discriminatively, with application to face verification//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, USA: IEEE: 539-546[DOI: 10.1109/CVPR.2005.202]
  • He K M, Zhang X Y, Ren S Q and Sun J. 2016. Deep residual learning for image recognition//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE: 770-778 [DOI: 10.1109/CVPR.2016.90]
  • Huang J H, Tian Z. 2019. Cow face recognition based on improved VGG convolutional neural network. Hubei Agricultural Mechanization, (13): #126 (黄俊华, 田壮. 2019. 基于改进VGG卷积神经网络的奶牛牛脸识别研究. 湖北农机化, (13): #126) [DOI:10.3969/j.issn.1009-1440.2019.13.101]
  • Liang K, Zhang Z C. 2013. Dairy cattle breeding management applications based on UHF RFID system. Journal of Agricultural Mechanization Research, (12): 182-184 (梁坤, 张哲纯. 2013. 超高频RFID系统在奶牛养殖管理中的应用方案. 农机化研究, (12): 182-184) [DOI:10.3969/j.issn.1003-188X.2013.12.046]
  • Liu D, Zhao K X, He D J. 2016. Real-time target detection for moving cows based on Gaussian mixture model. Transactions of the Chinese Society for Agricultural Machinery, 47(5): 288-294 (刘冬, 赵凯旋, 何东健. 2016. 基于混合高斯模型的移动奶牛目标实时检测. 农业机械学报, 47(5): 288-294) [DOI:10.6041/j.issn.1000-1298.2016.05.039]
  • Liu W, Wang F, Zhang S N, Guo R. 2020. Pig comfort monitoring based on improved SSD at night. China Feed, (14): 28-31 (刘伟, 王芳, 张苏楠, 郭融. 2020. 基于改进SSD的夜间猪群舒适度监测. 中国饲料, (14): 28-31) [DOI:10.15906/j.cnki.cn11-2975/s.20201407]
  • Meng H W, Li J B, Li Y P, Kan Z, Xue L Y, Qi J T. 2015. Application of RFID technology in animal husbandry. Xinjiang Agricultural Mechanization, (3): 26-28 (蒙贺伟, 李景彬, 李亚萍, 坎杂, 薛令阳, 戚江涛. 2015. RFID技术在畜牧产业中的应用分析. 新疆农机化, (3): 26-28) [DOI:10.13620/j.cnki.issn1007-7782.2015.03.012]
  • Qin X, Song G F. 2019. Pig face recognition algorithm based on bilinear convolution neural network. Journal of Hangzhou Dianzi University, 39(2): 12-17 (秦兴, 宋各方. 2019. 基于双线性卷积神经网络的猪脸识别算法. 杭州电子科技大学学报, 39(2): 12-17) [DOI:10.13954/j.cnki.hdu.2019.02.003]
  • Redmon J and Farhadi A. 2017. YOLOv3: an incremental improvement//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, USA: IEEE: 779-788
  • Schroff F, Kalenichenko D and Philbin J. 2015. FaceNet: a unified embedding for face recognition and clustering//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA: IEEE: 815-823[DOI: 10.1109/CVPR.2015.7298682]
  • Sun Y, Chen Y H, Wang X G and Tang X O. 2014b. Deep learning face representation by joint identification-verification//Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, Canada: NIPS: 1988-1996 [DOI: 10.5555/2969033.2969049]
  • Sun Y, Wang X G and Tang X U. 2014a. Deep learning face representation from predicting 10 000 classes//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA: IEEE: 1891-1898[DOI: 10.1109/CVPR.2014.244]
  • Taigman Y, Yang M, Ranzato M and Wolf L. 2014. DeepFace: closing the gap to human-level performance in face verification//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA: IEEE: 1701-1708[DOI: 10.1109/CVPR.2014.220]
  • Xuan C Z, Ma Y H, Wu P, Zhang L N, Hao M, Zhang X Y. 2016b. Behavior classification and recognition for facility breeding sheep based on acoustic signal weighted feature. Transactions of the Chinese Society of Agricultural Engineering, 32(19): 195-202 (宣传忠, 马彦华, 武佩, 张丽娜, 郝敏, 张曦宇. 2016b. 基于声信号特征加权的设施养殖羊行为分类识. 农业工程学报, 32(19): 195-202) [DOI:10.11975/j.issn.1002-6819.2016.19.027]
  • Xuan C Z, Wu P, Ma Y H, Zhang L N, Han D, Liu Y Q. 2015. Vocal signal recognition of ewes based on power spectrum and formant analysis method. Transactions of the Chinese Society of Agricultural Engineering, 31(24): 219-224 (宣传忠, 武佩, 马彦华, 张丽娜, 韩丁, 刘艳秋. 2015. 基于功率谱和共振峰的母羊发声信号识别. 农业工程学报, 31(24): 219-224) [DOI:10.11975/j.issn.1002-6819.2015.24.033]
  • Xuan C Z, Wu P, Zhang L N, Ma Y H, Zhang Y A, Wu J. 2016a. Feature parameters extraction and recognition method of sheep cough sound. Transactions of the Chinese Society for Agricultural Machinery, 47(3): 342-348 (宣传忠, 武佩, 张丽娜, 马彦华, 张永安, 邬娟. 2016a. 羊咳嗽声的特征参数提取与识别方法. 农业机械学报, 47(3): 342-348) [DOI:10.6041/j.issn.1000-1298.2016.03.048]
  • Zhang H F, Shen Y P. 2012. Application of RFID technology in animal identification and tracking management. Chinese Qinghai Journal of Animal and Veterinary Sciences, 42(3): 36-38 (张海峰, 沈媛萍. 2012. RFID技术在动物识别与跟踪管理中的应用. 青海畜牧兽医杂志, 42(3): 36-38) [DOI:10.3969/j.issn.1003-7950.2012.03.026]
  • Zhang M T, Mi N, Yu Y, Shan X Y, Yan G, Guo Y C. 2018. Recognition of individual dairy cattle based on feature fusion. Jiangsu Agricultural Sciences, 46(24): 278-281 (张满囤, 米娜, 于洋, 单新媛, 阎刚, 郭迎春. 2018. 基于特征融合的奶牛个体识别. 江苏农业科学, 46(24): 278-281) [DOI:10.15889/j.issn.1002-1302.2018.24.075]
  • Vinyals O, Blundell C, Lillicrap T, Kavukcuoglu K and Wierstra D. 2016. Matching networks for one shot learning//Advances in Neural Information Processing Systems. Barcelona, Spain: NIPS, 2016: 3637-3645