一种基于注意力和局部特征的密集场景牛身份识别方法

文档序号:24793211发布日期:2021-04-23 14:48阅读:270来源:国知局
一种基于注意力和局部特征的密集场景牛身份识别方法

1.本发明涉及生物识别领域,具体是一种基于注意力和局部特征的密集场景牛身份识别方法。


背景技术:

2.最近几年,畜牧业作为农业和农村经济的主导产业,已成为保障城乡居民肉、蛋、奶消费和动物蛋白摄入的基础产业。特别是自2012年以来,畜牧业已成为许多西部地区和少数民族较多省份扶贫攻坚的重要举措。在传统养殖业中,奶牛和肉牛养殖是养殖业的重要组成部分,在传统农牧养殖经济体系中占有重要地位。因此,开展个体精细育种是现代育种的主要研究方向。
3.随着畜牧业向规模化、信息化、精细化方向发展,集约化养牛场将逐步取代散养等小规模养殖模式。在规模化养牛场,要实现个体化、自动化、信息化的日常精细化管理,实现每头奶牛健康状况的跟踪和奶、肉制品的可追溯性,必须建立和完善质量追溯体系,关键在于对个体牛的识别。因此,快速准确的牛个体识别不仅是乳制品和肉制品可追溯性的基础,也是奶牛生产绩效记录系统和育种、产犊等遗传改良系统的重要组成部分,肉牛保险作为我国政策性农业保险制度的重要组成部分,已成为各级政府支持肉牛发展、保障养殖利益的重要手段。牛个体身份的准确识别将促进肉牛保险的顺利发展,解决索赔肉牛与被保险肉牛不能完全匹配的问题,提高承保和索赔的准确性。因此,实施奶牛个体识别,结合可穿戴设备采集其他生理信息,建立全产业链质量追溯体系,将大大提高劳动生产率,提高乳制品和肉制品的产量和质量,这对提高消费者的健康水平具有重要意义。同时,也为加强奶牛养殖业生产、有效的疾病防控和肉牛保险虚假理赔等提供重要信息,促进畜牧业健康发展。
4.传统的牛个体识别可以通过物理方法或嵌入微芯片的方式对身体某一部位进行标记,通过射频id的方式对牛个体加以区分。但这种方式不能防止欺诈行为,包括复制标记和盗窃设备,还会对牛本身造成伤害。
5.由于近几年人工智能技术的告诉发展,在生物识别方面也涌现了许多基于深度学习的新方法。在模型设计上出现了基于注意力的特征提取方法,如se(squeeze

and

excitation)、sk(selective kernel)等新颖的方法,但是当应用到牛群密集场景下时,由于牛群互相遮挡的问题让这些方法不能发挥出良好的性能。如se在选取各通道的权重时只利用了特征图的全局特征,但是在牛群发生遮挡时,牛的表面特征只漏出一部分,特别是在密集牛群场景下牛群之间的遮挡现象更加严重。这时图像的局部特征对于识别准确率的贡献更大,而se则忽视了局部特征的利用,造成在密集遮挡场景中识别率较低。同时,sk则是让网络自主的根据图像内容选取不同的卷积核大小,让图像的特征具有不同的感受野。这样虽然能在一定程度上利用图像的空间局部特征,但是在牛群密集遮挡情况下,牛的表面特征可能会被大面积遮挡,真正的有用信息占整幅图像的比列很小。网络前项传播时,随着特征图分辨率的降低牛特征会越来越小,甚至会被干扰信息淹没。因为sk没有在网络传播时进行特征增强,所以在严重遮挡场景下sk也不能提供较高的识别性能。
6.在特征处理方面,研究员们也开始在识别前将特征进行分块进而获得特征图中相较于原图的局部特征。如part

based convolutional baseline(pcb)将骨干网络提取到的全局特征直接进行分块,再将每块特征各自用交叉熵损失函数进行约束。经过我们测试,pcb在牛身没有遮挡时能表现出较高的识别性能。但是当牛身发生遮挡时,会造成特征不匹配、模型对不齐带来的识别准确率下降的问题。


技术实现要素:

7.对于在密集牛群场景下由于牛群遮挡、牛身特征不明显等问题引起牛身份识别困难的难题。本发明提供了一种基于注意力和局部特征的密集场景牛身份识别方法。本发明在深度学习技术的基础上在牛群密集场景的基础上设计了cgl模块、空间信息增强sem模块使提取到的特征作为牛识别依据时更具有鲁棒性。同时为了解决强遮挡场景,设计了glr模块寻找局部特征之间相关性,用局部特征之间相关性去表征一头牛。本发明解决了在牛群密集遮挡场景下的牛身份识别困难的问题。
8.本发明所采用的技术方案为:
9.一种基于注意力和局部特征的密集场景牛身份识别方法,包括以下步骤:
10.s1、构造数据集,并将数据集划分为训练集和测试集。本发明所采用的训练集为通过牛群目标检测分割网络得到的牛身图像。将划分后的训练集利用平移、旋转、放缩操作进行扩充来满足牛身的不同姿态,以获得泛化性更强的模型。
11.s1

1:通过目标检测采集若干类牛的图像数据。
12.s1

2:利用平移、旋转、放缩操作对训训练集进行扩充。并将扩充后的图像数据归一化到同样分辨率大小。
13.s2、设计基于注意力和局部特征的密集场景牛身份识别模型:
14.s2

1:基于resnext改进的骨干网络al

resnext:
15.用改进后的骨干网络al

resnext提取待识别牛身图像的全局特征。在设计骨干网络时,选择resnext作为基本的网络结构。resnext相较于resnet引入了分组的概念,每个分组对不同的子空间进行学习,使样网络能学到更多样的特征。因此resnext相比resnet有更强的表征能力。同时这种分组的操作或许能起到网络正则化的作用,因为实际上,增加一个cardinality维度之后,会使得卷积核学到的关系更加稀疏,在整体的复杂度不变的情况下,会大大降低了每个子网络块的复杂度,那么其过拟合的风险相比于resnet也将会大大降低。resnext的结构如图1所示。
16.首先,在resnext中加入设计的cgl模块,cgl模块实现方式如图2所示。其中,relation

module模块如图3所示。relation

module主要用来寻找各通道特征和其他通道特征之间的相关性。由cgl结构图可知,cgl的运算方式很简单,相较于se,cgl挖缺了特征图中的局部特征且运算时间复杂度较低。
17.由图2所示,cgl模块实现方式如下:当输入特征图的维度为w*h*c时,将特征图分为两路处理。第一路进行全局平均池化,得到1*c维度的特征向量。第二路则是先进行维度变换将特征图维度变化为n*c(n=w*h),再按照特征维度进行分块,第i分块记为c
i
,其中i=1,2,3,...,c;c
i
的维度为n*1,将除却分块c
i
的剩下分块组合为a
i
,a
i
维度为n*(c

1)。则
通过得到c
i
与a
i
的关系。按照同样的方式处理c次得到c个结果;将得到的c个结果与第一路中的特征向量的c个维度想对应拼接后堆叠,从而得到局部特征的关系向量。最后将堆叠结果通过卷积操作得到权重的mask向量。再将输入特征图与权重的mask向量相乘即可。将cgl插入到resnext的每一stage中的基本模块中如图6所示,cgl充分利用全局和局部信息,来解决在牛群密集遮挡时特征鲁棒性不强的问题。
18.同时也将设计的特征增强模块(sem)加入到原始resnext中,组成最后的主干网络al

resnext。sem的结构如图4所示。由于resnext在每一个stage特征分辨率都会缩小一倍。当通过目标检测获得的待识别图像由于遮挡只漏出一小部分牛身,干扰信息较大时。通过resnext后由于图像分辨率下降,真正需要识别的牛身所代表的特征会越来越小,甚至会被其他干扰信息特征淹没。因此在每一个stage后都引入前一个stage的空间信息。通过前一个stage大分辨率的优势,将空间的重要性传递到下一个stage中,保证重要信息在前行传播下采样的过程中被保留下来。
19.sem模块如图4所示,其中relation

module和图3相同,只是在空间维度展开。整个sem模块也同样分为两路,第一路负责提取前一个stage的空间信息的权重,即获取权重mask矩阵。第二路则先通过反卷积操作,将空间维度扩大2倍,变成和前一个stage维度相同的特征图。再将该特征图与第一路得到的权重mask矩阵相乘获取含显著性信息的特征图。再将得到含显著性信息的特征图进行卷积将维度缩小一倍,继续进行正向传播。
20.s2

2:设计局部特征相关性模块glr:
21.将由骨干网络al

resnext提取的特征送入局部特征相关性模块glr中。glr是为了缓解由于遮挡严重出现的待识别特征与模板库特征偏移较大导致模板对不齐的问题。glr的结构如图5所示。glr模块的输入为骨干网络al_resnext提取到的特征图(feature)。首先对特征图进行切块,为了符合牛的生理结构特点,采用水平切分的方式将特征图分为6份分别计算局部特征。
22.glr的运算方法为:首先,对由al_resnext提取到的特征图分别进行全局平均池化和全局最大值池化。因为当待识别的牛在图中出现的面积较少时,若采用全局平均池化则加入了太多的干扰信息,影响特征的鲁棒性。若是改用全局最大值池化,因为经过我们的sem模块,在特征图中对待识别牛的空间局域有较大权重,采用全局最大值池化时,便能最大程度的保留有用信息,抑制其他无用的干扰信息。然后再按照6等分的方式对特征图进行水平切块。分别对得到的8个特征块(切分得到的6个特征块、全局平均池化和全局最大值池化得到的2个特征块)按照如下方式处理。
23.(1)对f
i
(i=123,...,n,n为块总数这里为8)变换维度化为1*c大小。
24.(2)对除去特征块f
i
后剩下的7个特征块堆叠在一起组成特征图f。
25.(3)将特征块f
i
和特征图f进行如下形式的相关性运算:再将结果进行softmax运算得到特征图f的权重w。其中为由conv+bn+relu组成的非线性函数。
26.(4)将权重w与特征图f相乘得到特征图f与特征块f
i
的相关向量v。
27.(5)将相关向量v经过bn层激活后与特征块f
i
相加即可得到最后重构的相关性特征向量。
28.s3、损失函数设计。
29.通常,通过softmax

loss来指导网络学习,能够使得提取的牛图像特征具有良好的类间距离,即不同类别的牛提取到的特征具有较高的可分性,但同时类内距离也很大。因此,提取到牛表面的特征的区分力不足,无法直接用余弦距离进行识别。因此,我们也加入triplet

loss损失函数对特征进行约束。三元组triplet

loss的目标是让相同标签的样本在特征空间尽量接近,不同标签的样本在特征空间内尽量远离。从而提高模型的泛化能力。
30.triplet

loss的定义如下:
31.l
triplet
=max(d(a,p)

d(a,n)+margin,0)
ꢀꢀ
(1)
32.式中,a为训练集中随机选择的一个样本,称为anchor,p为和anchor同类别的样本,n为和anchor不同类别的样本,margin为超参数,表示anchor与p之间的距离和anchor与n之间的距离的差值有一个最小的间隔margin。
33.最后模型的损失函数如下:
34.l=l
cls
*alpha+l
triplet
ꢀꢀ
(2)
35.其中,l
cls
为softmax交叉熵损失,l
triplet
为三元组损失,alpha为交叉熵增益系数。
36.s4、训练整个模型,如图10,直至迭代训练整个训练集若干次;
37.s5、将测试集图像输入训练好的模型中提取牛图像特征,采用余弦距离进行1:1比对识别。
38.本发明有益效果如下:
39.本发明提出一种基于注意力和局部特征的密集场景牛身份识别算法。在骨干网络部分相较于原始的resnext,本发明提出的al

resnext加入融合全局特征和局部特征的注意力模块cgl充分利用特征图中的特征信息,使提取到的牛表面特征更加具有鲁棒性,改善了对于在密集牛群下的牛身份识别因为遮挡导致识别率低的问题。且在加入sem空间特征增强模块后,对牛身被大量遮挡,漏出信息有限的情况下,在正向传播时能正确保留牛身所在的空间信息,不至于被其他无用信息淹没,进而提高模型识别性能。
40.在以往的识别模型中仅仅只是简单地对特征暴力的进行切割,没有考虑到各局部特征之间的相关性。这样简单暴力的划分局部特征,当出现大范围遮挡,在和模板匹配时,遮挡部分的比对值就会较大,整体的比对值就会大于阈值造成识别失败。因此,这样简单的划分在密集场景下识别牛时带来的性能提升是很有限的。本发明提出的glr结构,通过我们设计的结构能有效找到各个局部特征之间的关系,进而用特征之间的关系来表征一头牛。所以即使出现了大范围的遮挡,只有一部分特征和模板特征匹配上了,因为其他特征也包含匹配上的这一部分的特征信息,所以都能正确识别。本发明提出了一种基于注意力和局部特征的密集场景牛身份识别方法,能有效解决在牛群密集场景下的牛身份识别问题,在复杂场景下的1:1比对识别能获得优异的识别性能。
附图说明
41.图1为原始resnext网络结构图
42.图2为通道全局

局部(cgl)模块结构图
43.图3为特征空间、通道关系模块结构图。
44.图4为空间特征增强(sem)模块结构图。
45.图5为局部特征相关性(glr)
46.图6为我们设计的al

resnext的基本块结构图。
47.图7为cgl、sem模块性能比较roc曲线。
48.图8为al

resnext结构示意图。
49.图9不同模型roc比较曲线。
50.图10模型训练流程图
具体实施例
51.下面结合附图对本发明的具体实施例作进一步的说明。
52.综合以上问题,本发明在牛群密集遮挡应用场景下,提出能有效提取牛表面特征的网络模型al

resnext(attention

local

resnext)。在al

resnext中提出了关注特征图局部信息和全局信息的注意力模块cgl(channel

global

local),cgl不仅利用了特征的全局特征还对特征图的局部信息进行挖缺。
53.为了解决网络前向传播产生的信息丢失问题,本发明提出了一种空间信息增强模块sem(space

enhance

module)。该模块能够充分捕捉到图像中的重要视觉线索,对牛表面特征进行增强。使模型提取的特征表现出很强的辨识能力。
54.针对最后局部特征处理问题本发明也设计了一种局部模式glr(global

local

relation),glr能探索各局部特征之间的关系,进而用局部特征之间的关系表征一头牛,增强模型在强遮挡场应用景下的鲁棒性。通过实际性能仿真,本发明提出的方法在密集牛群场景下利用牛表面特征进行识别时获得了优异的性能。
55.本实施例的基于注意力和局部特征的密集场景牛身份识别方法,包括以下步骤:
56.s1、构造数据集
57.s1

1:根据目标检测算法,从视频流截取每头牛的图片。在牧场中共有5000头牛,每头牛采集图像样本各200张。整个数据集共计100万张图像,其中90万张为训练集,整下10万张为测试集。
58.s1

2:对上述步骤中得到的训练集利用平移(上下平移量为:

30:5:30,左右平移量为

20:5:20)、平面旋转(左右旋转角度为

4:2:4)、放缩(采用双线性差值进行放缩,放缩倍数为0.95:0.01:1.05)操作进行牛姿态的扩充,扩充后图像数量为90万*131=1.179亿张训练集,将扩充的图像归一化到192*192得到训练数据集。
59.s2、设计基于注意力和局部特征的密集场景牛身份识别模型:
60.s2

1:基于resnext改进的骨干网络al

resnext
61.本发明在原始resnext的基础上进行改进,提出了al

resnext。al

resnext加入了融合全局特征和局部特征的注意力模块cgl,充分利用特征图中的特征信息,使提取到的牛表面特征更加具有鲁棒性,改善了对于在密集牛群下的牛身份识别因为遮挡导致识别率低的问题。al

resnext的基础块结构如图6所示。在resnext基础结构中加入了本发明设计的cgl模块。通过比对加入cgl模块和未加入cgl模块时测试集的1:1拒别率如图7所示。通过对比图中零误识下的准确率,加入本发明设计的cgl模块后,相较于未加入cgl模块的se

resnext准确率提升5%。说明本发明设计的cgl模块在遮挡场景下能有效提取牛的表面特征,改善由于密集牛群遮挡导致的识别率较低的问题。
62.sem空间特征增强模块,插入在al

resnext的第一个stage到第四个stage中,最终
的网络结构如图8所示。当牛身被大量遮挡,漏出信息有限的情况下,sem模块保证在正向传播时能正确保留牛身所在的空间信息,不至于被其他无用信息淹没,提高模型提取特征的鲁棒性,进而提高模型识别性能。在图7中比较了al

resnext和未加入sem模块的模型cgl+resnext的识别率roc曲线。在图7所示的roc曲线中,在零误识情况下相较于未加入空间特征增强模块sem的se

resnext+cgl模型结构,al

resnext能带来3%的性能提升。
63.s2

2:局部特征相关性模块设计
64.本发明为了不仅仅是简单的对al

resnext提取到的全局特征进行划分。本发明也设计了glr模块去寻找各局部特征之间的相关性,用特征之间的相关性去表征一头牛。在本发明提出的方法中,由于al

resnext最后一层卷积层的步长被设置为1,输入的图像大小被归一化到(192,192,3)的分辨率。所以当图像经过al

resnext后提取到(12,12,2048)大小的特征图。在glr模块中,因为牛的遮挡和姿态的多样性,所以在分块时不仅仅是将图像分为6份,还采用了2等分,4等分等特征分割方式。因为三种分割方式的处理都相同,这里以6等分的方式对glr模块进行说明。
65.(1)输入glr模块的特征图大小为(12,12,2048),以水平切割的方式将特征图等分为6份得到每一个特征块的维度为(2,2,2048);
66.(2)将划分的每一个特征块分别通过全局平均池化将局部特征转化为(1,2048)大小,同时也将al

resnext提取到的全局特征分别通过全局平均池化,全局最大值池化得到两个(1,2048)大小的特征块。
67.(3)对得到的8个特征块分别去找每一个特征块和其他7个特征块之间的关系。如对于第一块特征f1,我们将剩下的f2,f3,f4,f5,f
avg
,f
max
等7块特征进行组合得到(7,2048)为再将f1与相乘,再通过softmax将得到的(1,7)的关系权重矩阵w归一化到0

1之间。再将w与相乘得到f1与其他7块特征的关系向量再将通过bn层后与原来的f1相加,即可得到f1与其他7个特征块之间的相关性特征向量。重复同样的操作8次即可得到每一个特征块和其他特征块之间的关系。在识别时本发明将重建后的局部特征、全局平均池化特征和全局最大值池化组合在一起归一化后的特征作为最后的识别特征。其中归一化方式采用l2

norm,归一化公式为:
[0068][0069]
其中x为输入特征向量,||x||2为向量x的l2范数。
[0070]
本发明提出的局部特征划分方式glr相较于流行的pcb划分方式,不再是用各个局部特征来表征一头牛,而是用各个特征块之间的关系来表征一头牛。后续的性能比较也展现了glr的优越性,说明本发明提出的特征分块方式能有效解决在牛群密集场景下,由于牛身被大面积遮挡导致比对时特征对不齐的问题。
[0071]
s3、损失函数的设计
[0072]
在本发明中采用triplet

loss+softmax

loss的方式指导网络训练。当通过设计的glr模块得到重建的特征后,因为每一个特征块都包含了自己和其他特征块之间的信息,所以每一个特征块我们都希望他们都能对不同和不同类有较强的区分度。因此,我们对每
一个特征块都用triplet

loss约束类内和类间距离,再用softmax

loss计算分类损失,进一步拉开类间距离。通过对每一个特征块加以类内和类间的约束。本发明提取的特征在作为牛身份识别的依据时,具有更好的鲁棒性,在训练过程中我们设置margin=0.3,alpha=2。
[0073]
s4、训练整个模型,如图10所示。迭代整个训练集若干次,直至模型总损失下降到0.01左右。
[0074]
s5、将测试集图像输入训练好的模型中提取牛图像表面特征并进行识别比对。
[0075]
本发明采用余弦距离作为衡量牛表面特征相似度的标准。余弦距离计算公式如下:
[0076][0077]
余弦距离越大说明两个牛表面特征的相似度越高,反之,则两个由模型提取到的牛表面特征的相似度越低。将测试集牛图像经过本发明提取到的特征块组合、归一化进行1:1不同类比对,获得模型比对阈值t。再将测试集中的图像进行同类比对,当同类提取到的组合特征的比对值大于t时即视为比对成功。反之,则认为比对失败。
[0078]
本发明实验所用gpu服务器为nvidia titan rtx 3090,训练所用深度学习框架为pytorch,训练批次大小为64,迭代次数为80次,初始学习率为0.01,在迭代至10,30,50次时,学习率对应下降0.1。整个模型采用sgd随机梯度下降作为优化器。
[0079]
以下是基于划分的测试集数据库对本发明所提算法的实验数据分析,本发明与se

resnet50、se

resnext50以及sk(selective kernel)

resnext三种模型采用pcb方式直接分块时,在密集牛群场景下通过目标检测截取到的遮挡严重的牛图像进行测试对比。
[0080]
为了验证本发明提出方法的优越性,对测试集5000头牛共记10万张数据进行对比。画出四种种模型测试集的roc特性曲线,如图10所示。相比于se

resnet50、se

resnext和sk(selective kernel)

resnext采用pcb直接分块方式,本发明提出al

resnext+glr的方法相较于流行的四种识别模型识别率分别提升17%,10%,7%。在牛群密集遮挡场景下展现出了卓越的识别性能。而从图7和图9中可以看出在al

resnext加入glr后,在零误识情况下,模型识别性能在牛群密集遮挡场景下提升了9.8%。验证了本发明提出的的特征分块方法glr的有效性。
[0081]
本发明在牛群密集场景下遇到的牛身遮挡严重问题,提出了基于注意力和局部特征的牛身份识别方法,相较于目前主流的识别模型有很大幅度的性能提升。也说明了本发明提出方法的有效性,本发明提出的模型在牛群密集场景下牛身特征的鲁棒性。解决了在由于遮挡带来的识别率低的问题。
[0082]
上面结合附图对本发明的实例作了详细说明,但是本发明并不限于上述实例,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化,也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1