基于Vision Transformer模型的牛脸识别算法
2022-12-01牟家乐
郑 鹏,沈 雷,刘 浩,牟家乐
(杭州电子科技大学通信工程学院,浙江 杭州 310018)
0 引 言
我国畜牧业养殖正向规模化、信息化、精细化发展,集约化养牛逐步取代小规模养殖模式。为了实现牛群的精细化管理,需要对每头牛的健康状况、移动轨迹等信息进行跟踪和监控,其中牛个体的识别非常关键。传统的牛个体识别主要采用物理方法对牛身体某一部位进行标记,或者将微芯片嵌入牛体。随着神经网络的快速发展,基于卷积神经网络(Convolutional Neural Networks,CNN)的牛脸识别技术日趋成熟。文献[1]提出一种基于增量识别的牛脸识别算法,运用CNN提取的特征构造稀疏表示分类模型,根据各类别残差最小原则进行牛个体识别。文献[2]将迁移学习引入牛脸识别应用场景中,进一步提高了牛脸识别的准确率。文献[3]去除了VGG(Visual Geometry Group)网络的冗余参数,在不影响识别率的前提下减少了网络参数,为奶牛的识别技术提供了一种新的思路。文献[4]基于VGG建立了牛脸特征提取模型,采用欧氏距离计算牛脸特征间的相似度,再使用softmax loss和中心损失作为模型训练的损失函数,增大了模型提取特征的类间距离,减小了类内距离,提高了识别性能。CNN因其强大的特征表达能力在牛脸识别领域取得了一些成果,但其局部感受野具有一定的局限性,往往忽略了图像的全局上下文信息,且没有考虑牛脸脏污对识别的影响,不能很好地表征牛脸特征。文献[5]提出视觉转换器(Vision Transformer,ViT)模型,利用Transformer全局感受野特性得到比CNN更好的性能,但ViT只使用全局特征,忽视了局部特征。在ViT的基础上,文献[6]将ViT的全局特征直接加到每块局部特征中,融合了局部特征和全局特征之间的信息,却忽略了局部特征之间的相关性。文献[7]指出CNN网络学习局部特征之间的相关性能缓解遮挡、外观变化对识别的影响。在ViT模型基础上,本文设计了全新的特征融合方式,提出一种基于ViT模型的牛脸识别算法,在局部信息融合分支中加入本文设计的patch-shift网络层,充分获取牛脸图像全局和局部特征以及局部特征之间的相关性,并通过掩码矩阵来抑制图像背景干扰,使模型更加关注牛脸特征。
1 基于Vision Transformer模型的牛脸识别算法
本文提出的基于Vision Transformer模型的牛脸识别算法的基本框架如图1所示,主要包括全局处理分支和局部信息融合分支。将第l-1层Transformer编码器的输出zl-1分别输入全局处理分支和局部信息融合分支中,得到全局特征和运用本文设计的patch-shift信息融合模块处理后的局部特征,再将全局特征和信息融合后的局部特征输入多层感知机(Multilayer Perceptron,MLP),计算得出分类结果。
图1 Vision Transformer牛脸识别算法结构
(1)
1.1 全局处理分支
1.2 局部信息融合分支
(2)
式中,γ为自适应平均池化层,ψ为拼接池化后的局部特征和全局特征。再将G0输入M层patch-shift网络层中进行信息融合。
1.2.1patch-shift网络层
本文设计的patch-shift网络层不仅融合了全局特征和局部特征的信息,在获取全局和局部特征之间关系的同时还得到局部特征之间的相关性,其结构如图2所示。
图2 patch-shift网络层结构
第m层patch-shift网络层的输出Gm∈R(K+1)×D为:
(3)
式中,Gm-1为第m-1层patch-shift网络层的输出,第1层patch-shift的输入为G0;shift为本文提出融合特征信息的信息偏移模块shift;Conv为卷积核大小为1的卷积层;PMask为自适应学习特征相关性的可学习矩阵;ReLU为激活函数。
将经过M层patch-shift网络层信息融合后的特征GM输入到第l层编码器,最终得到包含特征之间相关性的输出特征S=[s0;s1;s2;…;sK]为:
S=TransformerLayer(GM)
(4)
1.2.2 信息偏移模块
为了解决ViT模型因只关注全局特征和局部特征之间关系而忽略局部特征之间相关性的问题,本文算法中的信息偏移模块shift融合了局部特征之间的信息,缓解了在牛场环境中脏污对识别的影响。
(5)
经过shift模块融合后,Gm-1中的K+1块特征都包含了其他K块特征和自身的信息,充分融合了全局和局部特征之间的信息,解决了ViT模型忽略局部特征相关性的问题。图3描述了K=4,D=20时shift模块的计算过程。
图3 信息偏移模块计算过程
图3中,垂直方向的箭头表示将箭头尾部的信息赋值给箭头的头部。从经过shift模块后的特征图中可以看出,全局特征和局部特征在通道上充分融合了相互之间的信息。
经过shift模块后,全局特征和局部特征得到了充分融合,但局部特征之间的相关性是不同的。观察牛脸图像分块过程可以发现,每个图像块对网络学习的重要性不同。例如,一些没有牛脸图像只有背景信息的图像块可能会影响网络的学习。所以,本文在shift模块后添加了可学习的矩阵PMask,让网络自适应学习各特征之间的相关性,关注有牛脸部分的图像块,抑制了图像背景的干扰。
在模型前向传播时,将全局处理分支的gcls和局部信息融合分支的输出特征S分别输入多层感知机(Multilayer Perceptron,MLP)中,计算模型的预测结果。
1.3 损失函数
牛脸图像中存在异类图像相似度较大的图像。为了区分相似牛脸的细节,本文使用三元组损失Ltriplet和交叉熵损失Lsoftmax联合训练网络,得到更好的牛脸表征特征,使得不同类别牛脸图像之间的特征距离尽可能大,同类牛脸图像之间的特征距离尽可能小。三元组损失Ltriplet为:
(6)
在计算损失时,将全局处理分支输出特征gcls和局部信息融合分支的输出特征S进行拼接,得到最后的识别特征为:
fall=[gcls;s0;s1;s2;…;sK]
(7)
在模型训练时,用fall计算总的三元组损失和交叉熵损失,得到:
(8)
(9)
E=Etriplet+Esoftmax
(10)
2 仿真实验及分析
2.1 数据集
因为没有公开的牛脸图像数据集,所以本文在5个牛场采集了903头牛组成的数据集COWYCTC-903。牛的活动状态和姿态具有多样性,很难直接采集到高质量的牛脸图像,因此,先采集牛脸视频再逐帧截取,制作COWYCTC-903数据集。为了提高牛脸识别模型在牛场光照场景的泛化能力,选择不同光照条件下进行视频拍摄。为了实现牛脸的多角度识别,采集牛脸视频时,针对正脸、左侧脸、右侧脸这3种不同的牛脸姿态,在同一拍摄高度拍摄30 s视频,截取牛脸图像,进行分类、编号和筛选。COWYCTC-903数据集共包含不同角度、不同光线条件的903类牛脸图像,其中前868类为正常图像,每头牛的正脸、左侧脸、右侧脸各有15张图像,共计868×15×3=39 060张;剩下的35类为包含遮挡或者脏污的特殊图像,每头牛10张图像,共计10×35=350张。
将COWYCTC-903数据集中正常图像库的前800类作为训练集,剩下的68类作为验证集。将800类牛脸图像经过旋转、平移、缩放、亮度变换等数据扩充方式后扩充至20倍,得到正常图像训练集图像共800×15×3×20=720 000张;验证集图像共68×15×3=3 060张。特殊图像库验证集图像数量为350张。
2.2 实验环境和参数设置
实验服务器GPU为NVIDIA TITAN RTX 3090,使用的深度学习框架为Pytorch。输入图像分辨率为224×224的3通道牛脸图像,Transformer编码器的图像块个数N为196,图像块编码后的特征维度D为768。训练过程时,使用随机裁剪、随机水平翻转、随机擦除等数据增强方式。训练批次大小为64,包含16头牛的4张牛脸图像。通过自适应矩估计(Adaptive momentum estimation,ADAM)优化器对损失函数进行优化,设置优化器的学习率为3e-4,权重衰减系数为5e-4。patch-shift网络层的数量M为2,shift模块的特征块个数K为4。
2.3 模型性能评价指标
本文使用拒识率(False Rejection Rate,FRR)和Top1排序作为性能评价指标,同时,可视化模型特征可以更加直观地看出识别算法对图像的关注点。
拒识率为同类图像在1∶1匹配时被判定为不同类别所占的比例;误识率(False Acceptance Rate,FAR)为不同类别图像在1∶1匹配时被判定为同类所占的比例。
通过统计Top1排序成功率进行Top1排序性能的比较。选取同类第1张图像作为模板,类内其余图像作为验证图像。将验证图像与模板和类外图像进行比对,统计模板排序为第1的比例。
可视化模型特征时,使用文献[8]提出的Grad-CAM算法,以热力图呈现输出图像中每个位置与类别的相关程度,有助于直观了解原始图像的哪个局部位置让模型做出最终的分类决策。
2.4 实验结果
分别采用本文提出的Vision Transformer牛脸识别算法、文献[4]提出的VGG牛脸识别算法、ResNet-50[9]和文献[6]提出的基于ViT提出的LA-Transformer算法进行仿真实验。
2.4.1 特征可视化
从COWYCTC-903测试集中,针对同一头牛的正脸、左侧脸、右侧脸和有遮挡或脏污的特殊图像,分别使用4种算法提取可视化特征,得到热力图如图4所示。
正脸左侧脸右侧脸特殊图像原图VGG牛脸识别算法[4]ResNet-50[9]LA-Transformer[6]本文算法
图4 Grad_CAM特征图可视化
从图4可以看出,相较于其他3种算法,本文算法在正常测试集的正脸、左侧脸和右侧脸中都能正确关注图像中的牛脸部分;对于特殊图像,本文算法也能利用局部特征之间的相关性正确关注到牛脸区域。
2.4.2 Top1排序
4种算法在不同姿态数据集上的Top1排序如表1所示。
表1 不同算法在不同姿态牛脸数据集上的Top1排序 单位:%
从表1可以看出,对于正脸、左侧脸、右侧脸不同姿态的数据集以及特殊图像库,本文算法的Top1排序均高于其他3种算法。
2.4.3 拒识率
在COWYCTC-903测试集中的正常图像库和有污染的特殊图像库中,分别使用4种算法提取特征,仿真计算得到识别性能的ROC曲线如图5所示。
图5 不同算法在4种数据集上的ROC曲线
从图5可以看出,本文算法的FRR最低。当FAR为0时,LA-Transformer算法不仅拥有全局感受野,还融合了全局和局部特征的信息,所以提取到比VGG牛脸识别算法和ResNet-50更好的特征表示,获得了更低的FRR。和LA-Transformer算法一样,本文算法同样采用ViT模型,并设计了patch-shift信息融合模块,不仅融合了全局和局部特征,还获取了局部特征之间的相关信息,所以,零误识下的拒识率最低。同时,在特殊图像识别中,本文算法在shift模块后添加了可学习的矩阵PMask,抑制了图像背景的干扰,提高遮挡、脏污场景下牛脸识别的性能,零误识下的拒识率明显低于LA-Transformer算法。
3 结束语
在ViT基础上,本文提出一种基于Vision Transformer模型的牛脸识别算法,充分融合牛脸图像的局部特征和全局特征之间的信息,有效提高了牛脸在遮挡和脏污场景下的识别性能。但是,本文算法的计算复杂度较高,后期将采用模型量化和剪枝的方式进行算法优化。