一种基于神经网络的湖羊行为实时识别方法

文档序号:31187798发布日期:2022-08-19 22:50阅读:35来源:国知局
一种基于神经网络的湖羊行为实时识别方法

1.本发明涉及湖羊行为识别的技术领域,尤其涉及一种基于神经网络的湖羊行为实时识别方法。


背景技术:

2.动物行为在动物饲养过程中是很重要的一项指标,它在揭示动物的情绪表现、健康状况和饲养繁殖规律方面有着重大的研究意义;因此,需要对动物的重要行为进行及时识别并作出相应处理。
3.湖羊作为我国一级保护地方畜禽种类,且多进行大规模舍饲,实时监测湖羊反刍、进食等行为具有重要意义。传统检测识别手段多为人工观察或处理器数据检测,前者耗时耗力且容易丢失一些时间段的行为数据,后者则成本太大,难以普及。随着深度学习和硬件设备的发展,利用神经网络可以实时、有效识别湖羊行为。


技术实现要素:

4.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
5.鉴于上述现有存在的问题,提出了本发明。
6.为解决上述技术问题,本发明提供如下技术方案,包括:采集湖羊行为视频,以建立湖羊行为数据集;对所述湖羊行为数据集进行数据预处理;建立基于注意力机制的tsm神经网络模型,并利用预处理后的数据进行训练;将所述基于注意力机制的tsm神经网络模型搭载到ai边缘计算设备上;利用所述ai边缘计算设备的摄像头实时采集湖羊状态,利用所述基于注意力机制的tsm神经网络模型识别湖羊行为并输出识别结果。
7.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述采集湖羊行为视频包括:布置湖羊运动场;将拍摄设备分别架设在所述湖羊运动场的正前方、左侧和右侧,采集湖羊行为视频。
8.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述建立湖羊行为数据集包括:对湖羊行为视频进行数据清洗,挑选出包含湖羊连续动作的视频,并裁剪成时长为10秒的视频片段;根据湖羊行为类别将所述视频片段分类,其中,80%的视频数据划分为训练集,20%的视频数据划分为测试集。
9.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述数据预处理包括:将所述视频片段平均分为8段,利用视频处理软件对所述视频片段进行抽帧处理,每秒抽取30帧图片;分别从所述视频片段的每一段中随机选取一帧作为训练图片;将所述训练图片裁剪成224像素
×
224像素,并利用水平翻转、角落裁剪和尺度抖动,对所述训练图片进行数据增强。
10.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,
其中,所述训练包括:利用划分好的训练集和测试集在带有gpu的设备上进行训练和验证;输出训练结果,保存权重文件。
11.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述识别湖羊行为包括:使用神经网络模型resnet-50,加入时移模块和注意力层,建立基于注意力机制的tsm神经网络模型。
12.作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述时移模块包括:时移模块将前一帧特征图的特征信息插入到当前帧;时移模块主要操作为位移和权值叠加,位移表示如下:
[0013][0014]
其中,x为输入,xi为第i个输入,分别为输入xi移位-1、0、+1;
[0015]
权值叠加y为:
[0016]
y=w1x-1
+w2x0+w3x1[0017]
其中,w1、w2、w3分别为x-1
、x0、x1的权重。
[0018]
作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述注意力层包括:
[0019][0020][0021][0022]
其中,为小批量,为的均值,为的方差,ε为数据稳定常数,γ和β为待学习参数,f为输入特征图,m为注意力图,为矩阵乘法。
[0023]
作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中:将每一次通过时移模块后的特征图依次经过层归一化、1*1卷积层和relu激活函数,与最终输出特征图相加。
[0024]
作为本发明所述的一种基于神经网络的湖羊行为实时识别方法的一种优选方案,其中,所述识别结果包括:湖羊行为包括反刍行为、进食行为和奔跑行为。
[0025]
本发明的有益效果:本发明利用时移模块增强前后帧之间的联系,丰富了时间维度上的信息;利用注意力模块增强了对湖羊信息的感知;在模型复杂度较低的情况下,得到了较为准确的识别效果。
附图说明
[0026]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0027]
图1为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的流程图;
[0028]
图2为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的采集湖羊行为视频的地点图;
[0029]
图3为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的湖羊三种行为连续帧图;
[0030]
图4为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的基于注意力机制的tsm神经网络模型结构示意图;
[0031]
图5为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的时移模块图;
[0032]
图6为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的注意力层图;
[0033]
图7为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的损失值变化曲线图;
[0034]
图8为本发明第一个实施例所述的一种基于神经网络的湖羊行为实时识别方法的平均准确率对比图。
具体实施方式
[0035]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
[0036]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0037]
其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0038]
本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
[0039]
同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0040]
本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人
员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0041]
实施例1
[0042]
参照图1~6,为本发明的第一个实施例,整体流程见图1,该实施例提供了一种基于神经网络的湖羊行为实时识别方法,包括:
[0043]
s1:采集湖羊行为视频,以建立湖羊行为数据集。
[0044]
布置湖羊运动场,见图2;将拍摄设备分别架设在湖羊运动场的正前方、左侧和右侧,采集湖羊行为视频。对湖羊行为视频进行数据清洗,挑选出包含湖羊连续动作的视频,并裁剪成时长为10秒的视频片段;根据湖羊行为类别将视频片段分类,其中,80%的视频数据划分为训练集,20%的视频数据划分为测试集。
[0045]
应说明的是,湖羊行为包括反刍行为、进食行为和奔跑行为,见图3;反刍行为和进食行为的采集时间点为羊舍上午和下午的固定喂食时间点;针对奔跑行为设置了运动场地,在运动场地中每天采集2小时的奔跑视频;所有采集的视频规格为4k、30fps,采集到的视频总大小为300g;对分好类和剪裁好的数据文件按照行为类别分别创建不同的文件夹放置剪裁好的视频,并创建格式为.csv训练标签文件和测试标签文件;根据标签文件进行训练集和测试集的区分。
[0046]
具体的,视频采集的湖羊月龄分为4月龄和10月龄两种,对湖羊的反刍,进食和咀嚼三种行为进行采集,其中反刍视频数据采集为湖羊进食后的2小时内,根据羊场内的喂食时间为上午8:30,反刍数据采集时间为9:00-11:00。进食视频数据采集在喂食时采集,时间为上午8:30和中午12:30及下午3:00,奔跑行为数据采集时间为上午9:00-11:30。
[0047]
将所获得每种行为视频分别剪辑为10s的片段,其中每种行为有350-700个视频片段,以此对视频数据进行清洗和裁剪。
[0048]
将每种动作视频分成三部分,一部分用于训练,每种动作有200-550个视频片段,一部分用作验证,每种有50个视频;最后一部分用作测试,每个动作有100个视频,并根据每种动作的视频片段制作标签文件,其文件内容为编号,视频名称,以此创建数据集。
[0049]
s2:对湖羊行为数据集进行数据预处理。
[0050]
将视频片段平均分为8段,利用视频处理软件对视频片段进行抽帧处理,每秒抽取30帧图片;分别从视频片段的每一段中随机选取一帧作为训练图片;将训练图片裁剪成224像素
×
224像素,并利用水平翻转、角落裁剪和尺度抖动,对训练图片进行数据增强。
[0051]
具体的,使用视频处理软件ffmpeg进行抽帧处理;数据增强可以使训练图片更加复杂,以减少过拟合情况。
[0052]
s3:建立基于注意力机制的tsm神经网络模型,并利用预处理后的数据进行训练,见图4。
[0053]
使用神经网络模型resnet-50作为提取抽帧图像特征的主网络。
[0054]
由于resnet-50神经网络使用的是2d卷积,只能提取到图像深度特征而不能获得时间信息,因此,加入时移模块使得当前帧获得前一帧的特征信息,并将时移后的特征图通过卷积层提取特征。
[0055]
时移模块主要操作为位移和权值叠加,见图5。
[0056]
位移表示如下:
[0057]
[0058]
其中,x为输入,xi为第i个输入,分别为输入xi移位-1、0、+1。
[0059]
经过卷积核大小为3*3的卷积层y=conv(w,x)后,其输出即权值叠加y为:
[0060]
y=w1x-1
+w2x0+w3x1[0061]
其中,w1、w2、w3分别为x-1
、x0、x1的权重。
[0062]
由于湖羊所处环境背景相似度高,为了更好区分湖羊运动与非运动特征,在resnet-50的每一层残差网络后加入注意力层;注意力层不对特征层使用卷积操作,而是改善注意力机制权重因子,使得在网络模型参数量不变的情况下,湖羊行为识别准确度明显提高。
[0063]
注意力层的输入经过批量归一化后与权重因子相乘,最后经过sigmoid激活函数得到输出,见图6。
[0064][0065]
m=sigmoid(w
γ
bn(f))
[0066][0067]
其中,f为输入特征图,bn(f)表示对f进行批量归一化,为小批量,为的均值,为的方差,ε为数据稳定常数,γ和β为待学习参数,m为注意力图,w
γ
为注意力因子,output为输出,为矩阵乘法。
[0068]
但经过resnet-50深层网络传播后,输出特征图中的时间信息会被减弱,因此本发明将每一次通过时移模块后的特征图依次经过层归一化、1*1卷积层和relu激活函数来调整通道大小,并与最终输出特征图相加,以增加最终输出特征图的时间信息;为了减少计算量,只抽取resnet-50每一步骤即stage中第一个残差模块的特征图。
[0069]
利用划分好的训练集和测试集在带有gpu的设备上进行训练和验证;输出训练结果,保存权重文件。
[0070]
s4:将基于注意力机制的tsm神经网络模型搭载到ai边缘计算设备上。
[0071]
具体的,ai边缘计算设备为nvidia jetson agx xavier。
[0072]
s5:利用ai边缘计算设备的摄像头实时采集湖羊状态,利用基于注意力机制的tsm神经网络模型识别湖羊行为并输出识别结果。
[0073]
识别结果包括反刍行为、进食行为和奔跑行为。
[0074]
实施例2
[0075]
为了对本方法中采用的技术效果加以验证说明,本实施例采用传统tsm方法和本方法进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
[0076]
调节训练模型中的参数设置,获得最优模型;其中参数设置为:学习率初始设定为0.01,且每40个周期衰减10倍,迭代次数为200,丢弃层dropout设置为0.5,优化器使用sgd,动量因子设置为0.9,batchsize设置为16。
[0077]
使用测试集对模型进行测试,利用softmax分类出每种动作的概率值,并得到湖羊行为识别的准确率,本方法训练集和测试集的损失值变化曲线见图7,经测试三种行为平均
准确率为96.28%。
[0078]
传统tsm方法与本方法的平均准确率曲线对比见图8,其中,湖羊三种行为的准确率分别如下表所示:
[0079]
表1:湖羊三种行为的准确率。
[0080][0081][0082]
可以看出,本方法与传统方法相比,三种行为的识别准确率均有提升,本方法达到了很好的优化效果。
[0083]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0084]
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0085]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0086]
如在本技术所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的
线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
[0087]
应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1