一种复杂牛场环境牛脸识别方法

文档序号:32752265发布日期:2022-12-31 01:33阅读:35来源:国知局
一种复杂牛场环境牛脸识别方法

1.本发明涉及生物识别领域,具体涉及一种复杂牛场环境牛脸识别算方法。


背景技术:

2.在规模化养牛场,要实现个体化、自动化、信息化的日常精细化管理,实现每头牛健康状况的跟踪和奶、肉制品的可追溯性,关键在于对个体牛的识别。
3.传统的牛个体识别可以通过物理方法或嵌入微芯片的方式对身体某一部位进行标记,通过射频id的方式对牛个体加以区分。但这种方式不能防止欺诈行为,包括复制标记和盗窃设备,还会对牛本身造成伤害,因此利用牛脸进行个体识别的方法开始兴起。
4.由于近几年人工智能技术的高速发展,在牛脸识别方面也涌现了许多基于深度学习的新方法,在模型设计上基于卷积神经网络(convolutional neural networks,cnn)的牛脸识别技术日趋成熟,如基于增量识别的牛脸识别算法,运用cnn提取的特征构造稀疏表示分类模型,计算各类别的残差,依据残差最小原则进行牛个体识别的方法,或是去除vgg(visual geometry group)网络的冗余参数,在不影响识别率的前提下减少了网络参数,为奶牛的识别技术提供了一种新的思路。还有一种基于vgg建立了牛脸特征提取模型的方法,采用欧氏距离计算牛脸特征间的相似度,采用softmax loss和中心损失作为模型训练的损失函数,增大了模型提取特征的类间距离,减小了类内距离,提高了识别性能。卷积神经网络因其强大的特征表达能力在牛脸识别领域取得了一些成果,但由于其局部感受野的局限性,提取牛脸特征时,往往忽略了牛脸图像的全局上下文信息,并不能很好地表征牛脸,也没有考虑牛脸脏污对识别的影响。
5.在感受野方面,研究员们也开始在识别前着重解决感受野的局限性。如视觉transformer(vision-transformer,vit)模型,利用transformer全局感受野的特性得到了比cnn更好的性能。经过我们测试,vit只使用全局特征,忽视了局部特征。将vit的全局特征直接加到每一块局部特征中,融合了局部特征和全局特征之间的信息,但却忽略了局部特征之间的相关性。


技术实现要素:

6.针对在复杂牛场环境下由于牛群遮挡、牛脸脏污以及牛的活动状态和姿态多样性等问题引起的牛身份识别困难的难题。
7.本发明提出一种基于vision-transformer的复杂牛场环境牛脸识别算法。本发明在vit模型的基础上对复杂牛场环境设计了全新的特征融合方式。在vit模型中加入本发明提出的patch-shift网络层充分学习牛脸图像全局特征和局部特征以及局部特征之间的相关性,有效缓解了复杂牛场环境下牛脸脏污对识别的影响,并在算法中加入可学习的mask矩阵使模型抑制不含牛脸信息的图像块,学习到更加鲁棒的牛脸特征。为解决在复杂牛场环境下的牛身份识别困难的问题,
8.本发明所采用的技术方案为:
9.1.一种复杂牛场环境牛脸识别方法,包括以下步骤:
10.s1、采集牛脸数据:
11.在不同的光照条件下和同一拍摄高度下,同时采集正脸、左侧脸、右侧脸三种不同的牛脸姿态的牛脸视频数据,从视频流中截取每头牛的正脸、左侧脸、右侧脸图片数据,并将牛脸图片数据划分为训练集和测试集;
12.s2、基于vision-transformer对复杂牛场环境牛脸进行数据处理
13.s2-1首先将输入的牛脸图片分为n个大小相同的图像块,并使用vision-transformer的图像块编码器e将每个图像块编码为维度为d的特征向量;
14.s2-2之后在n个特征向量组成的矩阵中,加入可学习的分类向量x
cls
,所述分类向量x
cls
用于表示牛脸图像经过编码后的全局特征,
15.s2-3最后加入包含空间信息的位置编码即可得到编码器的输入序列:
[0016][0017]
s2-4在z0前向传播到第l-1层编码器时将提取的牛脸特征分别输入全局分支和局部信息融合分支,其中,输入全局分支的牛脸特征作为全局分支输入特征,输入局部信息融合分支的牛脸特征作为局部分支输入特征;
[0018]
s2-5在全局分支将全局分支输入特征输入第l层编码器中提取全局分支特征;
[0019]
s2-6在局部信息融合分支中,利用patch-shift网络层让牛脸的全局特征和局部分支输入特征进行融合,得到patch-shift网络层信息融合后的特征;
[0020]
s2-7将patch-shift网络层信息融合后的特征输入第l层编码器得到最终包含特征之间相关性的输出特征s=transformerlayer(gm);
[0021]
s2-8最后将全局分支提取的全局分支特征和局部信息融合分支提取的包含特征之间相关性的输出特征输入mlp中进行分类;
[0022]
s3、使用所述步骤s1中所述的训练集,构建损失函数,对所述步骤s2中基于vision-transformer对复杂牛场环境牛脸进行数据处理的方法进行训练,当总损失下降到不大于0.01时结束训练,得到训练好的牛脸数据处理方法;
[0023]
s4、将步骤s1中所述的测试集中的数据输入训练好的牛脸数据处理方法中,提取牛脸图像特征并进行识别比对。
[0024]
作为优选,所述s3中的损失函数包括:三元组损失l
triplet
和交叉熵损失l
softmax

[0025]
作为优选,所述s2-6中,所述局部信息融合分支的结构从下到上包括:自适应平均池化层、拼接层、patch-shift网络层、第l层编码器,mlp分类器;
[0026]
在所述自适应平均池化层、拼接层进行池化和拼接的过程具体包括以下步骤:
[0027]
首先将第l-1层的编码器输出z
l-1
使用平均池化将n+1个局部分支输入特征平均分为k份,再将k个均分后的局部分支输入特征和全局特征拼接得到局部信息融合分支的输入特征即:
[0028][0029]
式中,γ为自适应平均池化层,ψ表示拼接池化后的局部分支输入特征和全局特征;
[0030]
所述patch-shift网络层的结构从下到上包括:shift模块、卷积核大小为1的卷积层conv;可学习矩阵mask;激活函数relu;所述patch-shift网络层的运行过程包括以下步骤:
[0031]
将g0输入到m层patch-shift网络层中进行信息融合,第m层patch-shift网络层的输出为
[0032]gm
=relu(conv(shift(g
m-1
))

mask+g
m-1
)m=1,

,m
[0033]
式中,g
m-1
为第m-1层patch-shift网络层的输出,第一层patch-shift的输入为g0;shift为本文提出融合特征信息的shift模块;conv为卷积核大小为1的卷积层;mask为自适应学习特征相关性的可学习矩阵;relu为激活函数。
[0034]
作为优选,所述shift模块用于对局部分支输入特征和全局特征进行通道间的信息融合;所述shift模块在融合特征信息时,特征g
m-1
第i块特征的第j个通道信息值g
m-1
(i,j)等于特征g
m-1
第(i+j)%(k+1)块特征的第j个通道的信息值g
m-1
((i+j)%(k+1),j)即:
[0035]gm-1
(i,j)=g
m-1
((i+j)%(k+1),j)i=0,

,k;j=0,

,d-1
[0036]
其中,g
m-1
为第m层patch-shift中shift模块的输入特征为shift中shift模块的输入特征为为全局特征,f
im-1
|i=1,2,

,k为局部分支输入特征。
[0037]
作为优选,所述s4中,基于余弦距离进行所述识别比对;
[0038]
余弦距离计算公式如下:
[0039][0040]
余弦距离越大说明两个牛脸表面特征的相似度越高,反之,则两个由模型提取到的牛脸表面特征的相似度越低;
[0041]
基于余弦距离进行识别比对的过程包括以下步骤:
[0042]
将测试集牛脸图像提取到的经过6、4、2等分后组合归一化后的特征进行1:1不同类比对,获得模型比对阈值t;
[0043]
再将测试集中的图像进行同类比对,当同类提取到的组合特征的比对值大于t时即视为比对成功;反之,则认为比对失败。
[0044]
本发明有益效果如下:
[0045]
本发明提出一种基于vision-transformer的复杂牛场环境牛脸识别算法。使用卷积神经网络(convolutional neural networks,cnn)提取牛脸特征时,往往忽略了全局上下文信息,只能提取到牛脸图像的局部特征信息。视觉transformer(vision-transformer,vit)模型的全局感受野特性能有效改善cnn局部感受野的问题,但以往的vit识别模型没有考虑到各局部特征之间的相关性,这样简单暴力的划分局部特征,当出现大范围遮挡、脏污以及多姿态情况,在和模板匹配时,对应部分的比对值就会较大,整体的比对值就会大于阈
值造成识别失败。因此,这样简单的划分在复杂场景下识别牛时带来的性能提升是很有限的。相较于原始的vit模型,我们在局部信息融合分支中加入的patch-shift网络层让牛脸的全局特征和局部特征进行充分的信息交互,使模型充分学习全局特征和局部特征以及局部特征之间的相关性,弥补了基于vit的模型忽视局部特征之间相关性的缺陷。
[0046]
以往的vit识别模型仅仅只是简单地对图像中背景噪声进行消噪处理,没有考虑到背景与牛脸信息特征的相关性,当出现光照强烈变换,和模板匹配时,背景的强暗光照会使得边缘的比对值较大,整体的比对值会大于阈值造成识别失败。加入可学习的mask矩阵使模型抑制不含牛脸信息的图像块,学习到更加鲁棒的牛脸特征,之后再输入第l层编码器得到信息融合后的特征;最后将全局分支和局部信息融合分支提取的特征输入mlp中进行分类,精准得出正确的预测结果。
[0047]
本发明提出了一种基于vision-transformer的复杂牛场环境牛脸识别算法,能有效解决在复杂牛场环境下的牛身份识别问题,在复杂场景下的1:1比对识别能获得优异的识别性能。
附图说明
[0048]
图1为vision-transformer牛脸识别算法结构
[0049]
图2为模型训练流程图
[0050]
图3为cowyctc-903数据集部分牛脸图像
[0051]
图4为特征可视化热力图
[0052]
图5为shift模块图
[0053]
图6为mlp模块图
[0054]
图7为patch-shift网络层结构图
[0055]
图8为4种测试算法在4种数据集上的roc曲线
具体实施例
[0056]
下面结合附图对本发明的具体实施例作进一步的说明。
[0057]
本实施例基于vision-transformer的复杂牛场环境牛脸识别算法,包括以下步骤:
[0058]
s1、构造数据集
[0059]
s1-1:在拍摄视频时,首先为了提高牛脸识别模型在牛场光照场景的泛化能力,在采集牛脸视频时选择在不同的光照条件下拍摄视频;其次为了牛脸识别模型实现牛脸的多角度识别,在采集牛脸视频时保证同一拍摄高度的同时对于正脸、左侧脸、右侧脸三种不同的牛脸姿态每个时间段拍摄30秒牛脸视频。根据目标检测算法,从视频流截取每头牛的图片并进行分类、编号和筛选。数据集一共包含了不同角度、不同光线条件的903类牛脸图像数据集cowyctc-903。其中包含868类正常图像,每头牛有左脸、正脸、右脸这3种不同的姿态每种姿态含有15张牛脸图像,每头牛共计45张图像;35类包含遮挡或者脏污的特殊图像,每头牛10张图像,将数据集的前800类作为训练集。
[0060]
s1-2:对上述步骤中得到的训练集经过旋转、平移、缩放、亮度变换等数据扩充方式后扩充至20倍,最后训练集图片数量为800
×
45
×
20=720000张。正常图像库验证集图片
数量为68
×
15
×
3=3060张,正脸、左侧脸和右侧脸各1020张图像;特殊图像库验证集图片数量为10
×
35=350张,将扩充的图像归一化到192*192得到训练数据集。cowyctc-903部分牛脸图像如图3所示。
[0061]
s2、设计基于vision-transformer的复杂牛场环境牛脸识别算法
[0062]
本发明提出的基于vision-transformer的牛脸识别算法基本框架如图1所示。
[0063]
图1中,输入图像为h,w,c分别表示输入图像的高宽和通道数。本发明和vit的图片预处理方式相同。
[0064]
首先将输入图片分为n个大小相同的图像块并使用vit的图像块编码器e将每个图像块编码为维度为d的特征向量
[0065]
之后在n个特征向量中加入可学习的分类向量x
cls
,分类向量x
cls
用于表示牛脸图像经过编码后的全局特征。
[0066]
最后加入包含空间信息的位置编码即可得到编码器的输入序列:
[0067][0068]
不同于vit直接将输入序列z0输入到包含l层的transformer编码器中得到n+1个特征向量。本发明在z0前向传播到第l-1层编码器时将提取的牛脸特征分别输入全局分支和局部信息融合分支。其中,输入全局分支的牛脸特征作为全局分支输入特征,输入局部信息融合分支的牛脸特征作为局部分支输入特征。
[0069]
首先,在全局分支将全局分支输入特征输入第l层编码器中提取全局分支特征;
[0070]
其次,在局部信息融合分支中,利用patch-shift网络层让牛脸的全局特征和局部分支输入特征进行充分的信息交互,得到patch-shift网络层信息融合后的特征;
[0071]
之后将经过patch-shift网络层信息融合后的特征输入第l层编码器得到最终包含特征之间相关性的输出特征;
[0072]
最后将全局分支提取的全局分支特征和局部信息融合分支提取的包含特征之间相关性的输出特征输入mlp中进行分类。
[0073]
我们使用本发明提出的vision-transformer牛脸识别算法、vgg牛脸识别算法、resnet-50和基于vit提出的la-transformer算法生成的模型分别对同一头牛的正脸、左脸、右脸这3种姿态的正常图像测试集和有脏污的特殊图像库中可视化模型提取的特征画出可视化热力图如图4所示,从图中可以看出,相较于其他三种算法,本发明提出的牛脸识别算法在正常测试集的正脸、左侧脸和右侧脸中都能正确关注图像中的牛脸部分,抑制背景的干扰;同时对于脏污的特殊图像也能利用局部特征之间的相关性正确关注到牛脸区域。
[0074]
全局分支
[0075]
对于全局分支直接将z
l-1
输入到第l层编码器中得到并取包含牛脸全局信息的分类向量g
cls
作为牛脸图像经过本发明提取的全局分支特征。
[0076]
局部信息融合分支
[0077]
局部信息融合分支主要使用patch-shift网络层融合全局特征和局部分支输入特征的信息,其中patch-shift网络层的结构如图7所示。根据图1,首先将第l-1层的编码器输出z
l-1
使用平均池化将n+1个局部特征平均分为k份,再将k个均分后的局部分支输入特征和全局特征拼接得到局部信息融合分支的输入特征即:
[0078][0079]
式中,γ为自适应平均池化层,ψ表示拼接池化后的局部分支输入特征和全局特征。
[0080]
后将g0输入到m层patch-shift网络层中进行信息融合,第m层patch-shift网络层的输出为
[0081]gm
=relu(conv(shift(g
m-1
))

mask+g
m-1
)m=1,...,m
ꢀꢀꢀ
(3)
[0082]
式中,g
m-1
为第m-1层patch-shift网络层的输出,特别的,第一层patch-shift的输入为g0;shift为本文提出融合特征信息的shift模块;conv为卷积核大小为1的卷积层;mask为自适应学习特征相关性的可学习矩阵;relu为激活函数。
[0083]
最后,将经过m层patch-shift网络层信息融合后的特征gm输入到第l层编码器得到最终包含特征之间相关性的输出特征:
[0084]
s=transformerlayer(gm)
ꢀꢀꢀ
(4)
[0085]
shfit模块
[0086]
为了避免基于vit的模型只关注了全局特征和局部分支输入特征之间的关系忽略了局部分支输入特征之间的相关性的问题,利用patch-shift网络层中的shift模块融合特征之间信息,不仅利用了局部分支输入特征还融合了局部分支输入特征之间的信息,缓解了在牛场环境中脏污对识别的影响。
[0087]
第m层patch-shift中shift模块的输入特征为shift中shift模块的输入特征为为全局特征,f
im-1
|i=1,2,

,k为局部分支输入特征。shift模块为了充分利用局部分支输入特征和全局特征,对局部分支输入特征和全局特征进行通道间的信息融合。shift模块在融合特征信息时,特征g
m-1
第i块特征的第j个通道信息值g
m-1
(i,j)等于特征g
m-1
第(i+j)%(k+1)块特征的第j个通道的信息值g
m-1
((i+j)%(k+1),j)即:g
m-1
(i,j)=g
m-1
((i+j)%(k+1),j)i=0,

,k;j=0,

,d-1
ꢀꢀꢀ
(5)
[0088]
经过shift模块后,g
m-1
中的k+1块特征都包含了其他k块特征和自身的信息,充分融合了局部分支输入特征和全局特征之间的信息,解决了基于vit的模型忽略了局部分支输入特征之间的相关性的问题。图5中描述了k=4,d=20时shift模块的计算过程。
[0089]
图5中垂直方向的箭头表示将箭头尾部的信息赋值给箭头的头部。从图中经过shift后的特征图可以看出局部分支输入特征和全局特征在通道上充分融合了相互之间的信息。
[0090]
虽然经过shift模块后牛脸的全局特征和局部分支输入特征得到了充分的融合,但是全局特征和局部分支输入特征以及局部分支输入特征之间的相关性是不同的所以本文在shift模块后添加一个可学习的mask矩阵让网络自适应的学习各特征之间的相关性。并且通过观察牛脸图像的分块过程可以发现,每一个图像块对网络学习的重要性不同。例
如,一些图像块中没有牛脸图像只有背景信息,这一类图像块甚至可能会影响网络的学习。添加mask矩阵后也能让网络自适应的关注有牛脸部分的图像块,抑制图像背景的干扰。
[0091]
最后将全局分支的g
cls
和局部信息融合分支的输出特征s分别输入mlp模块中计算模型的预测结果。mlp结构如图6所示。
[0092]
s3、训练整个模型,如图2所示。首先构造损失函数,因为牛场中的牛脸图像存在异类图像相似度较大的图像,所以在训练时为了让不同类别牛脸图像的特征之间的距离尽可能大,同类牛脸图像之间的特征之间的距离尽可能小,让网络学习到相似牛脸的细节区分,得到更好的牛脸表征特征。本发明使用三元组损失(hard triplet loss)l
triplet
和交叉熵损失l
softmax
联合训练网络。三元组损失如下:
[0093][0094]
式中,n为训练时一个批次的牛脸图像数量,为在一个训练批次中随机选择的牛脸图像样本,为同一个训练批次中和属于同一类的牛脸图像样本,为同一个训练批次中和属于不同类的牛脸图像样本,为和通过网络模型提取的特征之间的欧氏距离,为和通过网络模型提取的特征之间的欧氏距离,a为超参数表示和之间的最小间隔,本文设置为0.3。在训练时,三元组损失拉近和的距离拉远和的距离,达到同类牛脸图像之间的距离近,不同类牛脸图像之间距离远的目的,使网络模型最终提取到细腻度更高的牛脸特征。
[0095]
在计算损失时,拼接vision-transformer牛脸识别算法中全局分支和局部信息融合分支的输出特征作为最后的识别特征:
[0096]fall
=[g
cls
;s0;s1;s2;

;sk]
ꢀꢀꢀ
(7)
[0097]
计算损失时使用f
all
计算最后的三元组损失和交叉熵损失:
[0098][0099][0100]
模型总损失:
[0101]
e=e
triplet
+e
softmax
ꢀꢀꢀ
(10)
[0102]
迭代整个训练集若干次,直至模型总损失下降到0.01左右。
[0103]
s4、将测试集图像输入训练好的模型中提取牛脸图像表面特征并进行识别比对。
[0104]
本发明采用余弦距离作为衡量牛脸表面特征相似度的标准。余弦距离计算公式如下:
[0105][0106]
余弦距离越大说明两个牛脸表面特征的相似度越高,反之,则两个由模型提取到的牛表面特征的相似度越低。将测试集牛图像提取到的经过6、4、2等分后组合归一化后的
特征进行1:1不同类比对,获得模型比对阈值t。再将测试集中的图像进行同类比对,当同类提取到的组合特征的比对值大于t时即视为比对成功。反之,则认为比对失败。
[0107]
其中不同类具体为测试集数据根据训练模型提取到牛脸表面特征,每头牛的牛脸图片特征和其他牛的牛脸图片特征求差值平方值,最终得到的所有差值平方值中最小的值我们认定为模型比对阈值t。
[0108]
同类具体为测试集数据根据训练模型提取到牛脸表面特征,每头牛的牛脸图片特征和自身的其他牛脸图片特征求差值平方值,差值平方值小于模型比对阈值t认定为比对成功。反之,则认为比对失败。
[0109]
本发明所使用的实验服务器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。在shift模块中特征块个数k为4,patch-shift网络层的数量m为2。
[0110]
以下是基于划分的测试集数据库对本发明所提算法的实验数据分析,本发明与vgg牛脸识别算法、resnet-50和la-transformer算法分别在cowyctc-903正常图像测试集的正脸、左脸、右脸和有污染的特殊图像测试集中比较模型性能。
[0111]
为了验证我们模型的优越性,我们使用roc和top1排序比较模型性能,别率通过roc曲线比较性能,横坐标为误识率(false acceptance rate,far),纵坐标为拒识率(false rejection rate,frr)。误识率为不同类别的牛脸图像,在1:1匹配时被判定为同类牛脸所占的比例;拒识率为同类牛脸图像,在1:1匹配时被判定为不同类别的牛脸所占的比例。零误识拒识率为误识率等于0时的拒识率。
[0112]
top1排序性能通过统计top1排序成功率比较:选取同类第1张牛脸图像作为模板,类内其余图像作为验证图像。将验证图像与模板和类外图像进行比对,统计模板排序为第一的比例。
[0113]
我们对测试集3410张数据进行对比。画出四种种模型在cowyctc-903测试集中的正常图像库和有污染的特殊图像库仿真得到的roc特性曲线,如图8所示。对于正常图像库的正脸、左侧脸和右侧脸三种姿态的测试集和有污染的特殊图像库中,当far为0时,本文提出的牛脸识别算法的frr最低。和vgg牛脸识别算法相比分别降低7.87%,11.26%,15.21%,18.96%;相较于la-transformer分别降低了0.53%,0.7%,0.78%,4.1%。有效提升了牛场环境导致牛脸污染的识别性能。
[0114]
四种算法在不同姿态数据集上的top1性能如表1所示。
[0115]
表1不同算法在不同姿态牛脸数据集上的top1性能对比单位:%
[0116][0117]
从表1可以看出,对于正脸、左侧脸、右侧脸三种不同姿态的数据集以及有污染的特殊图像库,本发明提出的vision-transformer牛脸识别算法有效提高了top1排序成功率。和vgg牛脸识别算法相比分别提高9.19%,10.77%,13.5%,31.86%;相较于la-transformer算法分别提高2.21%,1.15%,1.36%,4.52%。
[0118]
本发明在复杂牛场环境下由于牛群遮挡、牛脸脏污以及牛的活动状态和姿态多样性等问题引起的牛身份识别困难的难题,提出一种基于vision-transformer的牛脸识别算法,充分融合了牛脸图像的局部特征和全局特征之间的信息,相较于目前主流的识别模型有效提高了牛脸在遮挡和脏污场景下的识别率和top1排序性能。也说明了本发明提出方法的有效性。
[0119]
上面结合附图对本发明的实例作了详细说明,但是本发明并不限于上述实例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1