APP下载

基于EfficientDet网络的湖羊短时咀嚼行为识别方法

2021-08-27陆明洲梁钊董NORTONTomas张生福沈明霞

农业机械学报 2021年8期
关键词:湖羊下颌类别

陆明洲 梁钊董 NORTON Tomas 张生福 沈明霞

(1.南京农业大学人工智能学院, 南京 210031; 2.鲁汶大学M3-BIORES实验室, 海弗莱 B3001;3.青海民族大学计算机学院, 西宁 810007)

0 引言

湖羊是我国太湖平原地区特有的羔皮用绵羊品种,属一级保护地方畜禽品种,其主要饲养方式为规模化舍饲[1]。食欲减退甚至废绝是湖羊常见疾病(如肝片吸虫病、羊黑快疫等)的主要症状之一,监测湖羊采食行为以及时发现食欲异常的湖羊个体在养殖生产实践中至关重要[2]。传统的采食行为监测方法为人工观测,需要具有丰富养殖经验的饲养员连续或定时观测湖羊的采食过程,耗费大量人力与时间,且易对湖羊造成惊扰,无法长期持续监测。随着各类传感器技术、机器学习技术、自动控制技术等被越来越多地应用于养殖业[3],精准畜牧养殖(Precision livestock farming, PLF)成为养殖业的重要发展方向之一。采食行为的自动监测和分析是PLF的重要组成部分[4],研究人员针对动物采食行为自动监测开展了相应研究工作。

放牧养殖模式下的动物活动范围广,动物牧食行为的自动监测主要通过穿戴式传感装置采集牧食行为相关的动物头部、颚部运动[5-7]及音频信号等数据[8-9]。穿戴式传感装置满足连续、自动监测动物牧食行为的技术需求,但这种接触式数据采集方式也给动物带来应激,同时,动物对穿戴传感装置的破坏及复杂养殖环境下传感器元器件的腐蚀等也会导致传感数据的丢失。因此,对于活动空间固定的舍饲动物,无接触式的视频数据采集与分析方式更具优势。近年来,研究人员尝试利用计算机视觉技术自动监测分析圈养反刍动物饮食的相关行为。在奶牛饮水行为[10]、反刍行为[10-12]的自动监测方面,CHEN等[11]提出了一种基于时空上下文信息学习的反刍奶牛嘴部区域动作跟踪算法。MAO等[13]利用光流法提出一种奶牛嘴部的识别与定位方法。WU等[10]和SAFA等[12]分别利用深度学习框架CNN-LSTM及CNN训练奶牛反刍行为自动识别分类器,这2种分类器能分别以95%和97.1%的精度识别奶牛的反刍行为。JIANG等[14]在圈舍群养羊饮水采食行为的自动监测方面进行了探索,利用YOLO v4深度学习框架定位羊只,通过羊只与食槽、饮水区域的位置关系识别羊只的采食与饮水行为,对两种行为的识别精度分别达到97.82%和98.27%。

目前,基于计算机视觉技术进行圈养反刍动物饮食行为的研究重点多集中于动物的长时行为(如采食、饮水、反刍等)。已有研究表明,动物的短时采食行为特征(如短时咀嚼次数、短时咀嚼时长、短时咀嚼声音能量通量密度等)与其采食量具有较高的相关性[8-9,15-17]。本文根据鸣叫与短时咀嚼行为在上下颌张合状态持续时间的不同,利用深度学习方法检测舍饲湖羊采食视频帧中上下颌张合状态,提出一种基于上下颌张合状态时变特点的湖羊短时咀嚼行为分类规则,以自动识别湖羊的短时咀嚼行为。

1 数据与方法

1.1 湖羊饲养及采食行为视频获取

在江苏省农业科学院六合动物实验基地种羊场随机选择2只300日龄、体质量约45 kg的公湖羊用于视频数据采集。采用2个羊圈饲养试验湖羊,羊圈面积为2 m×1.5 m。选用SARGO运动相机(T1型)记录湖羊采食行为视频,视频分辨率为2 880像素(水平)×2 160像素(垂直),帧率为24 f/s。利用高度设定为0.3 m的三脚架将相机固定在羊圈正前方,相机距离羊圈食槽0.5 m,相机与羊圈的位置关系示意图如图1a所示。

视频采集时间为2020年8月21—25日07:30—10:00及16:00—18:30。湖羊在正常采食过程中鸣叫次数较少,但在等待饲养员投喂饲料的时间段内鸣叫行为高发。在07:30—7:50以及16:00—16:20两个时间段,饲养员接近羊圈但不投饲料,开启相机采集湖羊在食槽位置的鸣叫视频。07:50—10:00及16:20—18:30两个时间段饲养员向食槽投放青贮饲料,采集湖羊采食行为视频。视频以MP4格式存储在相机SD卡中,视频数据采集结束后,从相机SD卡读取所有视频并转存到计算机硬盘构建视频库。视频库共有湖羊鸣叫行为视频32段,采食行为视频104段,共183 GB,其中最长、最短行为视频段时长分别为25 min和53 s。分别从鸣叫、采食行为视频段中随机选择6段和20段视频数据用于构建羊嘴状态检测模型。从26段视频中截取图像帧,经过数据清洗后,获得属于鸣叫和采食行为的图像1 271幅和7 123幅。采用精灵标注助手软件完成羊嘴状态标注,构建一个包含8 394幅图像的羊嘴状态数据集,共5.5 GB。

1.2 短时咀嚼行为识别

湖羊从食槽叼起草料后通过多次上下颌张合(即短时咀嚼)磨碎草料,然后通过吞咽将磨碎后的草料吞入瘤胃、网胃。从正对羊脸角度观察,羊的一次短时咀嚼行为共有3类羊嘴状态:张嘴、上下颌错开和闭嘴。但羊在采食过程中其脸部与相机视角方位关系不固定,张嘴、上下颌错开和闭嘴状态在不同的相机视角下呈现不同的空间特征。引入羊脸与相机的视角方位关系,将湖羊短时咀嚼过程中的羊嘴状态分为如表1所示的7种类别并分别打上相应标签。

表1 短时咀嚼行为对应的羊嘴状态类别及标签

羊在抬头或低头姿态下发生短时咀嚼行为时,如果其侧脸面对相机,则羊嘴张开与上下颌错开在视频中呈现相同的空间特征,因此,表1中将羊侧脸面对相机时的张嘴与上下颌错开状态统一分类为侧头张嘴状态。羊低头正脸面对相机时,从视频中观察不到其张嘴状态下的下颌,张嘴和闭嘴状态具有相同的空间特征,因此,在羊低头正脸面对相机的视角关系下,将张嘴与闭嘴状态统一分类为低头闭嘴状态。另外,羊上下颌的一次张合也可能对应一次鸣叫行为,从时间特征上看,鸣叫对应的上下颌张闭的持续时间要明显长于短时咀嚼行为。本文构建的短时咀嚼行为识别方法利用时空特征识别短时咀嚼及鸣叫行为。

短时咀嚼行为识别属于时序动作识别(Temporal action detection)范畴。目前,Two-Stream[18]、C3D[19]等卷积神经网络展现出了优良的时序动作识别精度,但这类算法直接将运动行为短视频作为输入,网络结构较为复杂且算法运行时间偏长。针对湖羊短时咀嚼及鸣叫行为构成元素——羊嘴状态数量少的特点,本文提出一种基于连续视频帧中羊嘴状态标签序列的短时咀嚼行为识别方法。该方法由2个模块构成,第1个模块是基于EfficientDet网络的羊嘴状态检测,第2个模块为基于羊嘴状态标签序列分类的短时咀嚼行为识别。

1.2.1羊嘴状态检测

涵盖嘴部定位及其状态识别的羊嘴状态检测是构建短时咀嚼行为识别分类器的基础,视频空间中的羊嘴状态检测问题属于基于计算机视觉的目标检测问题范畴。目前常用的目标检测方法主要包括基于预设锚框(Bounding box)的单级检测法[20-21]和基于感兴趣区域候选(ROI proposal)的两级检测法[22-23],前者的典型算法包括YOLO[20]、EfficientDet[21]等,后者典型算法为R-CNN系列。其中,TAN等[21]提出的EfficientDet算法以EfficientNet[24]作为骨架网络,引入加权双向特征金字塔网络(Bi-FPN)及类别/目标框预测网络(Class/Box prediction net)。

EfficientDet网络的Bi-FPN模块接收EfficientNet提取的湖羊视频帧图像特征中的第3~7层特征(即图2中的P3~P7),完成多次自上而下及自下而上的双向特征融合。融合后的特征分别送入类别/目标框预测网络以完成目标框筛选以及目标类别识别任务。由于相邻圈羊只的嘴部可能会通过栏架空隙进入到相机视角范围,同时,羊只采食过程中可能出现的羊头快速运动会导致少量视频帧中出现嘴部重影,这些都将导致EfficientDet网络在同一视频帧图像中可能检测到多个羊嘴区域。为确保羊嘴状态检测的准确性,将图像中水平、垂直坐标处于[440像素, 2 440像素]及[1 160像素, 2 160像素]范围内的矩形区域(如图1b中红色矩形框所示)作为采食区域。在此基础上对EfficientDet网络做如下改进:在目标框预测网络输出端增加目标框筛选模块,该模块利用检测结果目标框与采食区域的位置关系筛选目标框。增加目标框筛选模块后的EfficientDet网络结构如图2所示。

图2中idx是羊嘴状态编码值,羊嘴状态S1、S3、PU1、PU2、PU3、PD2、PD3对应的编码值分别为1、2、3、4、5、6、7。增加目标框筛选模块后的EfficientDet网络仍采用复合尺度参数φ对所有模块的深度、宽度和分辨率进行联合缩放,φ取值范围为0~7。EfficientNet模块的深度、宽度和分辨率缩放公式为

DEffN=αφ

(1)

WEffN=βφ

(2)

REffN=γφ

(3)

其中

(αβ2γ2)φ=2φ

(4)

式中DEffN——EfficientNet模块深度

WEffN——EfficientNet模块宽度

REffN——EfficientNet模块分辨率

α、β、γ——通过小网格搜索确定的不小于1的常数

Bi-FPN的宽度和深度缩放公式为

Wbifpn=64×1.35φ

(5)

Dbifpn=3+φ

(6)

式中Wbifpn——Bi-FPN模块宽度

Dbifpn——Bi-FPN模块深度

类别预测网络与目标框预测网络的宽度Wpred与Wbifpn相等,深度缩放公式为

Dbox=Dclass=3+φ/3

(7)

式中Dbox——目标框预测网络的深度

Dclass——类别预测网络的深度

输入图像分辨率Rinput的缩放公式为

Rinput=512+128φ

(8)

图3中,Nframe为待检测的采食视频的总帧数。视频被逐帧送入EfficientDet网络,将所得到的类别及目标框检测结果送入筛选模块。首先剔除采食区域外的目标框,然后根据进食区域内目标框数量n,分3种情况确定进食区域内的单个羊嘴状态目标框:若n为0,则网络未在采食区内检测到羊嘴,本帧羊嘴状态类别编码值idx赋值为0;若n为1,则将类别预测网络输出的羊嘴状态标签对应的编码值赋给idx;若n大于1,选择类别预测网络输出的目标框标签最大概率对应的羊嘴状态类别编码值赋给idx。采食视频经过改进的EfficientDet网络处理后,得到一个与帧顺序对应的idx序列。

1.2.2羊嘴一次上下颌张合视频段分割

采用idx序列分割方法自动分割羊嘴一次上下颌张合动作对应的连续视频。引入正则表达式(Regular expression)过滤符合羊嘴上下颌一次张合动作所对应的idx序列片段模式,进而将视频分割为多个与上下颌张合相对应的idx序列片段。表1数据表明,羊侧脸面对相机时,无论抬头还是低头,其上下颌的一次张合对应的idx均为1和2;湖羊正脸面对相机时,其抬头、低头姿态下短时咀嚼对应的嘴部状态类别存在差异。因此,本文将短时咀嚼动作分为3类:侧面短时咀嚼、正面抬头短时咀嚼和正面低头短时咀嚼,各类短时咀嚼行为对应的单次上下颌张合的idx序列片段如表2所示。

表2 一次上下颌张合对应的湖羊嘴状态序列及idx序列

表2中,由于湖羊侧脸面对相机短时咀嚼和低头正脸面对相机短时咀嚼各仅存在一种嘴部状态序列,所以各自只能匹配一种idx序列模式。分别采用正则表达式“1+2”和“6+7”描述湖羊侧脸面对相机和低头正脸面对相机时一次上下颌张合对应的idx序列片段匹配模式,其中,“+”代表其前面的字符必须至少出现一次。抬头正脸面对相机短时咀嚼存在3种嘴部状态序列,其原因是湖羊抬头正脸面对相机短时咀嚼可能会出现以下2种特殊情况:湖羊一口咬住过多的饲料使部分嘴部被遮挡,不能完整地提取出张嘴状态的特征,导致未识别到张嘴状态,对应的湖羊嘴状态编码值序列片段是4…5;湖羊为了将嘴边的饲料全部拢到嘴里,上下颌基本不错开,以大幅度张嘴状态为主,此时对应的湖羊嘴状态编码值序列片段为3…5。因此,湖羊抬头正脸面对相机的一次上下颌张合对应的idx序列片段匹配模式有3类,分别是“3+5”、“4+5”及“3+4+5”。

利用表2所示各正则表达式处理idx序列,提取符合要求的idx序列片段并分行存储在idx序列片段文本中,即idx序列片段文本文件中的每一行对应一个idx序列片段。

1.2.3短时咀嚼行为识别

湖羊的一次鸣叫同样对应着湖羊上下颌的1次张合,其idx序列片段也符合1…2或3…5的模式。统计分析数据集中鸣叫及短时咀嚼视频段的帧数,结果表明鸣叫行为持续帧数为(49±1.2)帧,远大于短时咀嚼持续帧数((25±5.8)帧)。因此,引入idx序列片段长度阈值区分鸣叫行为和短时咀嚼行为,记该阈值为th_lenidxseq且设其值为42。利用EfficientDet网络、正则表达式及阈值th_lenidxseq实现短时咀嚼和鸣叫行为分类的流程如图4所示。

图4中,j为idx序列片段文本的行编号,Nchew和Dchew分别为视频中提取到的短时咀嚼次数和短时咀嚼持续时间,len(idxseq_j)为idx序列片段文本第j行的序列片段长度。

2 结果与分析

2.1 湖羊嘴状态检测方法测试与结果分析

湖羊嘴状态检测方法测试硬件环境如下:处理器为Intel Core i9-7920X 12核,2.9 GHz,64 GB内存,显卡为GTX NVIDIA TITAN Xp,12 GB。统计1.1节获取的湖羊嘴状态数据集的羊嘴状态数量如图5所示。

在Pytorch深度学习开发平台上实现检测网络,网络优化算法选用带动量和权重衰减的随机梯度下降,动量参数和权重衰减系数分别设为0.9和0.000 5,学习率设为0.000 1,迭代125次。式(1)~(7)表明,φ越大,主干网络、Bi-FPN及目标框预测网络和类别预测网络的分辨率、深度及宽度的特征扩大比例越高,整个网络的检测精确率也越高,但同时计算量也会相应增大。受限于硬件性能,本文仅测试比较φ取值0~4的网络性能,并与YOLO v5、SSD两种主流单阶段检测模型进行性能对比。

将图5所示各类羊嘴状态图像按照8∶2的比例划分为羊嘴状态检测模型构建所需的训练集和验证集。把训练集图像分别输入到EfficientDet-D0~D4、YOLO v5和SSD以训练检测模型,用验证集图像测试各模型性能。采用精确率(P)、召回率(R)、均值平均精确率(mAP)以及传输速率(FPS)评价模型性能。利用验证集图像测试各模型性能,结果如表3所示。

表3数据表明,EfficientDet网络的羊嘴状态检测精确率P随着φ的增大而增大,EfficientDet-D0的精确率与YOLO v5相当且优于SSD。在召回率方面,YOLO v5的召回率最高,SSD的召回率最低,EfficientDet网络模型的召回率均在97%附近。EfficientDet网络模型的均值平均精确率均高于SSD网络模型,且远优于YOLO v5网络。EfficientDet网络模型检测速度随φ的增大而降低,其中,EfficientDet-D2的传输速率与YOLO v5相当,EfficientDet-D4和SSD的传输速率均低于10 f/s。

表3 羊嘴状态检测模型性能对比

综合考虑检测模型的P、R、mAP及FPS,选择带目标框筛选模块的EfficientDet-D1网络模型检测结果作为后续短时咀嚼行为识别的输入。为测试EfficientDet-D1网络模型在检测7种不同羊嘴状态时的性能表现,使用训练好的带目标框筛选模块的EfficientDet-D1网络模型检测一段时长1 min的采食视频,结果如图6a所示。

图6a中每条横虚线下面是视频帧实际类别,横虚线上面是模型预测的类别结果。图6a表明,改进的EfficientDet-D1模型可以准确检测出湖羊嘴部状态,且保证了各个状态准确检测时间的连续性。图6b所示的模型训练集和验证集的损失函数曲线表明,经过约100轮迭代后,验证集的损失函数曲线开始逼近训练集损失函数曲线,且两条曲线均在[0, 0.1]之间收敛。

2.2 短时咀嚼行为识别正确率分析

从1.1节获得的视频库(除去构建训练集、验证集的视频)中随机选择2段鸣叫视频和30段采食视频,通过Windows Media Player软件播放视频,人工观察、记录视频中的短时咀嚼行为发生的次数和持续时间分别为1 400次和1 335.22 s。使用带目标框筛选模块的EfficientDet-D1网络结合正则表达式的行为识别方法自动提取短时咀嚼行为发生次数及持续时间分别为1 280次和1 213.89 s。这表明,改进的EfficientDet-D1网络结合正则表达式的短时咀嚼行为识别方法能在存在鸣叫行为干扰的情况下,短时咀嚼行为发生次数自动识别正确率为91.42%,算法自动提取到的短时咀嚼行为持续时间与人工提取结果平均误差为9.15 s,平均正确率为90.85%。

误差产生的原因主要有2方面:一是基于改进的EfficientDet-D1网络不能够以100%的精确率检测羊嘴状态。少量图像帧中羊嘴状态的错误检测结果可能导致算法识别的短时咀嚼行为的提前或延迟结束,也可能导致算法未能准确识别短时咀嚼的起始帧或结束帧,进而导致少量完整的咀嚼行为未被正确识别,使累积咀嚼次数和时长的统计出现误差。二是作为参照标准的短时咀嚼次数和咀嚼时长通过人工观察视频方法提取,不可避免地带有一定的主观性以及误差。

本文方法能够自动识别每栏饲养一只湖羊条件下的湖羊短时咀嚼行为。若将本文方法应用到每栏饲养多只湖羊的场景,则需研究羊嘴状态检测网络输出多目标框的筛选方法,然后解决同一羊嘴目标在连续视频帧中标识与跟踪问题。在此基础上,可以实现单栏多只湖羊的总短时咀嚼次数及时间的统计,可用于单栏多只湖羊采食量的估算。

3 结论

(1)将从视频流中自动识别湖羊短时咀嚼行为的问题转换为羊嘴状态类别编码值序列的自动分类问题,提出了一种基于改进EfficientDet网络和正则表达式的湖羊短时咀嚼行为自动识别方法。首先,在EfficientDet网络基础上增加目标框筛选模块,实现羊嘴状态自动检测;然后,利用正则表达式提取连续视频帧羊嘴状态类别编码值序列;最后利用编码值序列的结构特征和长度特征构建短时咀嚼行为识别规则,避免鸣叫行为对短时咀嚼行为识别的干扰。

(2)利用本文方法对舍饲环境下采集的湖羊采食视频自动识别短时咀嚼行为的测试结果表明,改进的EfficientDet-D1网络在保证检测速度的同时,对羊嘴状态检测精确率达到95.64%,均值平均精确率为98.84%,传输速率为28.18 f/s,优于YOLO v5和SSD网络。对短时咀嚼次数自动识别正确率和持续时间平均正确率分别为91.42%和90.85%,实现了湖羊短时咀嚼行为的自动检测。本文方法将基于视频的湖羊短时咀嚼行为识别问题转换为羊嘴状态编码值序列分类问题,降低了分类模型的复杂度,为湖羊短时咀嚼行为的自动识别提供了一种新的研究思路。

猜你喜欢

湖羊下颌类别
5G助力“智慧畜牧” 湖羊有了“健康码”
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
湖羊及其杂种生产性能和瘤胃微生物差异研究
研究发现湖羊产羔数存在近交衰退
论陶瓷刻划花艺术类别与特征
一起去图书馆吧
迷人的下巴
迷人的下巴
多胎湖羊的养殖技术
有礼貌