刘龙申 舒翠霓 李 波 沈明霞 太 猛 刘 康
(1.南京农业大学人工智能学院,南京 210031;2.江苏智慧牧业装备科技创新中心,南京 210031;3.南京农业大学动物科技学院,南京 210095)
母猪的PSY指数(平均每头母猪每年提供的断奶仔猪成活数量)是衡量猪场效益和母猪繁殖能力的重要指标。近年来,受非洲猪瘟和新冠疫情的影响,生猪产能大幅下滑,猪肉价格高涨[1]。人工智能领域的发展推动了生猪养殖业从数量型到质量型、从散养化到规模化、从机械化到智能化的转变[2]。
研究表明,随着分娩时间临近,母猪由于疼痛或情绪不安,频繁站立或躺下,表现出明显的筑巢行为,分娩前4~16 h筑巢本能表现的更为强烈,在集约化生产条件下,由于缺乏筑巢材料,站立持续时间增长并频繁地改变姿态[3],筑巢行为是母猪产前的重要特征,对预测母猪分娩时间,提高母猪生产力具有重要意义[4]。母猪分娩之后,侧卧时间显著增长,姿态转变频率大幅度下降,一方面是由于分娩消耗过多体力,另一方面是因为母猪有主动授乳的意愿,可以作为评判母猪母性的一个重要指标[5]。因此母猪姿态识别与分析对母猪分娩时间预测和母性评估具有重要意义。
现有的母猪姿态自动识别方法主要有接触式传感器检测、非接触式电子传感器检测和计算机视觉识别。CORNOU等[6]利用三轴加速度传感器检测群养母猪的运动类型,使用多过程卡尔曼滤波法(MPKF)将母猪的行为分为5类,其中饮食、侧卧、胸卧识别效果良好。刘龙申等[7]将三轴加速度传感器佩戴于母猪颈部,通过K均值聚类算法对特征进行识别,能检测出母猪躺卧、站立、吃料、筑巢等典型行为,正确率达87.93%。接触式传感器会引起猪只的应激反应,穿戴式传感器可能在母猪活动过程中掉落,电源供电时间有限,使用寿命短。WANG等[8]通过飞行时间法(Time of flight,TOF)测量超声波传感器和母猪身体8个位置之间的距离来确定母猪的站立、跪姿、坐姿、侧卧等姿态。张光跃等[9]设计了一种基于超声波传感器和无线传感网络母猪产前监测系统,可以识别出筑巢、站立、侧卧等行为,准确率达90.47%。非接触式传感器在很大程度上避免了母猪的应激反应,但超声波传感器由于无法识别目标易受周围其他物体的干扰。施宏等[10]提出了一种基于 Kinect 的无接触式母猪姿态识别算法,该算法识别站立、坐立的准确率分别为 94.3%、92.6%,趴卧识别准确率为 84.2%,侧卧姿态为 93.7%。薛月菊等[11]提出一种改进的Faster R-CNN 哺乳母猪姿态识别算法,对母猪各姿态的平均识别准确率达到 93.25%。甘海明等[12]采用 Mask R-CNN识别母猪的姿态并检测母猪哺乳区域,融合哺乳区域的时空特征信息,对母猪哺乳行为进行识别。童欣欣[13]通过调整AlexNet卷积神经网络的网络结构和参数,调整后的网络结构对母猪姿态识别的准确率达到 97%。计算机视觉技术除了对动物无侵扰且架设相对容易外,还具有低成本和高效的优点,正成为母猪行为监测的另一大热门研究领域[14]。
本文采集24头母猪产前及产后各一天的数据,建立一种基于EfficientDet的母猪姿态识别模型,总体上将母猪姿态分为站立、坐姿、胸卧、侧卧4种姿态,为进一步探究母猪的侧卧行为,该模型通过限位栏内仔猪保温箱与母猪哺乳区的距离判断母猪侧卧方向。分析围产期母猪的姿态特性,为母猪筑巢行为与母性行为研究提供理论依据与技术支持。
母猪视频数据于2020年6月9—15日在江苏省宿迁市宿豫区正杰猪场采集。本文的试验对象为24头待产大白母猪,待产母猪在产前一周(妊娠期107 d左右)被随机安置在2.2 m×1.8 m的分娩限位栏内,保持养殖环境一致,母猪产房内大环境温度控制在20~28℃[15],仔猪保温箱的温度随大环境温度变化,控制在一个舒适范围内[16],仔猪保温箱从预产期前一天开启,直至仔猪断奶。
视频采集系统主要由摄像头、网络硬盘录像机、交换机和本地服务器组成,如图1所示。每个限位栏正上方2.2 m处都配有一个分辨率为2 560像素×1 440像素的海康威视红外摄像头(DS-2CD3346WD-I型),每个摄像头需要一根网线进行供电和传输数据,网线穿过固定摄像头的横杆接入POE交换机(DS-3E0526P-E型)。视频数据连续录制24 h,采集到的猪只俯视视频数据存储于海康威视网络硬盘录像机(DS-8832N-K8-8×6T型)中,摄像头采集到的视频数据可以通过海康威视网络硬盘录像机存储至硬盘后导入到本地服务器。
图1 视频采集示意图Fig.1 Sketch of video acquisition
试验数据集的制作包括图像获取、图像筛选、图像标注、数据集格式化等过程。
(1)图像获取:从网络硬盘录像机中截取母猪分娩前后各24 h的监控视频段,采用Python 3.8编写脚本文件从视频中截取.jpg格式的图像,所截图像的时间间隔为1 min。
(2)图像筛选:删除过度曝光或曝光不足的无效图像,这类图像多拍摄于夜间,受光线影响较大,看不清猪只,最终得到有效图像共9 775幅。
(3)图像标注:使用精灵标注软件对目标区域进行人工标注,标注的类别包括站立、坐姿、胸卧、侧卧、保温箱5类,为避免目标区域过大,侧卧(lateral)姿态仅标注特征明显的哺乳区及四肢,图像标注后,将包含标注类别和目标区域坐标位置的文件保存为.xml格式的文件,文件名与图像保持一致。
(4)数据集格式化:模型在训练和预测时使用的数据集格式按照PASCAL VOC标准格式,原图及对应的标签文件分别位于JPEGImages和Annotations文件夹下,运行voc2efficientdet.py脚本文件,在文件夹Main目录下生成包含图像名称的train.txt、test.txt文件。
数据集图像尺寸均为1 920像素×1 080像素,训练集和测试集的划分比例为9∶1,其中训练集8 796幅,测试集979幅。为增强模型的泛化能力,数据集较为均衡地选取了24头母猪三通道(白天)和单通道(夜晚)图像。
按照母猪身体高度从高到低将母猪姿态分为站立、坐姿、胸卧、侧卧等,其中站立和坐姿属于动态姿势,胸卧和侧卧属于静态姿势。侧卧姿态是母猪产后哺乳的主要姿态,能够表现母猪的母性行为,因此与仔猪的生长状况息息相关,侧卧又可分为乳房背对仔猪保温箱(back)和乳房面向仔猪保温箱(face)两种。表1为每种姿态定义的详细说明[17]。
表1 母猪姿态定义Tab.1 Definition of sow’s different postures
EfficientDet是由谷歌大脑TAN等[18]在EfficientNet的基础上提出的新架构。EfficientDet-D0~D7分别对应EfficientNet-B0~B7。EfficientDet主要由主干特征提取网络、加强特征提取网络以及预测网络3部分组成,如图2所示。图中P1~P7为网络的1~7层特征图。
图2 EfficientDet网络结构图Fig.2 EfficientDet network structure diagram
EfficientDet采用EfficientNet作为主干特征提取网络,EfficientNet模型根据固定系数F统一对网络深度D、宽度W和图像分辨率r缩放时可用的资源数量进行控制,为了捕获更加丰富和复杂的特征来增强模型的泛化性,利用残差神经网络增大网络深度,改变特征层数可提升宽度、增大图像分辨率可以提高精确性[19-20]。本文采用的EfficientDet-D0由16个Blocks堆叠构成,Block的通用结构如图3所示,主要由主干网络和残差网络构成,在主干网络中首先对输入进行1×1卷积通道扩张进行升维,在深度可分离卷积网络结构后增加了一个关于通道的注意力机制,最后利用1×1卷积降维后与残差边进行短接操作。每层的主要构件块是MBConv,16个Blocks在主干网络的有效特征层中可以分为1、2、2、3、3、4、1个Block[21],最终获得3个有效特征层P3、P4、P5传入到双向特征金字塔网络(BiFPN)中。
图3 Block结构图Fig.3 Block structure diagram
特征融合能够充分利用不同分辨率图像的特征信息,实现多尺度的检测。LIN等[22]提出了特征金字塔(FPN)结构,将神经网络中抽象的顶层特征进行上采样,通过自顶向下的连接方式进行融合。在FPN的基础上,路径聚合网络(PANet)添加了一条自底向上的连接,但计算代价较高[23]。EfficientDet采用BiFPN (双向特征金字塔网络)作为加强特征提取网络,能够实现高效的双向跨尺度连接(Cross-scale connections)和带权重的加权特征融合(Weighted feature fusion)[24]。P3、P4、P5经过通道数调整后下采样得到P6、P7,P3~P7包含高语义信息,共同输入BiFPN网络中。BiFPN层添加了简单的注意力机制,为每个输入的特征赋予不同的权重,避免了输入相同权重融合时损失有用信息的情况。加权特征融合的表达式为
(1)
式中ω——学习权重σ——学习率
i、j——网络层数
Output——输出特征
Input——输入特征
特征融合的权重被限制在0~1之间[25]。EfficientDet重复3次BiFPN堆叠后得到5个有效的特征层,一同输入预测网络结构。
预测网络中类别预测网络和边界框回归网络分别对类别和边界框进行预测,两个预测网络共享特征网络的权重。模型训练过程中,每个网格都会生成多个不同高和宽的边界框,通过分类器和边界框坐标回归来拟合目标的真实边界框。EfficientDet-D0分类器和边界框预测网络均采用3次64通道的卷积和1次M×N的卷积调整先验框,M指该特征层所拥有的先验框数量,N指网络中目标的类别数量。在类别预测网络中N=5,代表站立、坐姿、胸卧、侧卧、保温箱5类目标,用于预测该特征层上每一个网格点上预测框对应的种类;在边界框回归网络中N=4,可调整框的中心和宽高,从而预测该特征层上每一个网格点上先验框的变化情况。对预测结果进行得分排序与非极大值抑制(NMS),筛选出每一类得分大于置信度阈值(confidence_threshold)的框和得分,根据框的位置和得分进行非极大值抑制。
模型训练环境为:Ubuntu 16.04系统,Intel(R)Xeon(R)Gold 5118 CPU @ 2.30 GHz,GPU为NVIDIA Quadro P4000,显存为8 GB,深度学习框架是Pytorch1.3.0,CUDA 版本为 10.1,训练环境为Python 3.7.3、Torchvision 1.3.0、Numpy 1.19.1 以及OpenCV 4.5.1。
模型训练参数设置如下:参数phi为0表示指向EfficientDet-D0版本,迭代周期(epoch)为200,冻结训练周期(Freeze_epoch)为50,学习率初始化为0.001,批量大小(Batch_size)为8,置信度阈值(confidence_threshold)为0.4,训练过程耗时约34.5 h。
计算损失函数用来评价模型的预测值和真实值的差异程度,损失函数值越小、越稳定,通常模型的性能越好。模型的损失函数根据真实框和先验框的重叠率(IOU)计算:对于IOU大于0.5的情况,可以利用先验框调整获得预测框;忽略IOU大于0.4小于0.5的情况;IOU小于0.4不包含目标,作为负样本。EfficientDet模型负样本的损失值较大,因此引入了焦点损失(Focal loss)进行正负样本平衡,模型的训练损失值如图4所示,损失值曲线收敛且拟合较好。
图4 网络的训练损失值曲线Fig.4 Training loss value curves of network
本文采用检测速度、精确率(Precision,P)、召回率(Recall,R)、F1值、平均精度均值(mAP)5个指标评价模型性能,精确率是衡量模型对正样本的识别能力,召回率是正样本中被预测正确的概率,F1值是精确率和召回率的调和平均数,平均精度均值用来衡量模型对所有类别的检测性能,mAP为精度均值(AP)的均值,AP即精确率-召回率曲线与坐标轴围成的面积。
3.1.1姿态检测结果
本文分别采取图像批量检测以及视频检测两种方式识别母猪姿态。模型对图像的检测速度达到26.2 f/s,将图像批量检测结果以图像和文本两种形式保存。文本文件的保存格式为:图像名称+目标类别:置信度+预测框坐标,文本文件的行数等于检测图像的数量。母猪各姿态识别结果如图5a~5d所示,可见该模型能够较准确地识别出保温箱以及母猪的站立、坐姿、胸卧和侧卧4种姿态,由于母猪处于拍摄区域正中间,本文提出了一种通过保温箱和侧卧姿态预测框中心点的距离来判断侧卧方向的方法,当图像能够同时检测出保温箱和侧卧两个目标时,根据二者预测框中心点的距离来判断侧卧的方向,若距离大于阈值(图像高度的一半,540像素),则将侧卧方向判断为乳房背对保温箱,反之则为面向保温箱,该方法对母猪侧卧方向识别的准确率达到100%。
图5 母猪姿态识别结果Fig.5 Recognition results of sows’postures
选取6月11日14:40—15:10的视频数据检测该模型对母猪姿态的检测能力。视频由一系列图像构成,这一系列图像以固定的时间间隔从视频中获取,被称为帧(frame),从视频中读取独立的帧,就可以用检测图像的方法达到检测视频的目的。视频数据检测过程中需要读取视频的每一帧,并将图像转换为满足OpenCV显示的BGR格式,导致视频检测速度比图像检测速度慢,本文平均视频检测速度为10.66 f/s。结合实际应用场景,限位栏内母猪姿态转变较为迟缓,此模型的检测速度完全满足实时检测的要求。视频数据的检测结果如图6所示,能够动态显示母猪的姿态、置信度、坐标以及检测速度。
在测试集(共979幅图像)上进行测试,检测到母猪姿态的图像共计971幅,未检出的8幅均为侧卧姿态,且拍摄于夜间。图7和图8分别为EfficientDet算法在971幅图像上的混淆矩阵与精确率-召回率曲线,可见坐姿与胸卧、胸卧与侧卧之间的类间差较小,相比于其他类别,算法对坐姿与胸卧类别的识别性能有待提高。为进一步说明EfficientDet算法在猪只姿态识别领域的适用性,与Faster R-CNN进行对比,表2和表3为两种模型在测试集上的表现,IOU阈值均设置为0.5,根据对比,两种算法的总体识别效果相近,虽然Faster R-CNN的平均精度均值略高,对保温箱的识别精确率较低,不利于侧卧方向的识别,图像和视频的检测速度也都低于EfficientDet,说明EfficientDet模型能较为理想地兼顾识别效果与检测速度。
表2 EfficientDet模型的检测性能Tab.2 Recognition performance of EfficientDet
表3 Faster R-CNN模型的检测性能Tab.3 Recognition performance of Faster R-CNN
图7 EfficientDet模型的混淆矩阵Fig.7 Confusion matrix of EfficientDet model
图8 EfficientDet模型的精确率-召回率曲线Fig.8 PR curves of EfficientDet model
3.1.2识别误差分析
由于母猪转换姿态过程中存在过渡期,出现了少量过渡姿态,使得某些姿态之间的类间差异过小,如图9a~9d所示,可通过进一步细分母猪的姿态来提高本文模型的识别率和正确率;由于灯光亮度不一致对模型性能的影响,造成部分侧卧未识别出(未识别率约为2.9%),如图9e、9f所示,另一个造成漏检或误检的因素是极少数夜间图像曝光不足或曝光过度,如图9g、9h所示。
图9 模型性能的影响因素Fig.9 Influencing factors of model performance
根据模型输出的母猪各时刻姿态序列,对各姿态的占比以及母猪姿态转换频率进行分析。t=0表示第1头仔猪出生的时刻,以2 h为时间间隔统计每头母猪产前及产后24 h各姿态的时长,并进行归一化处理,母猪4种姿态的分布如图10所示。计算3组母猪产前产后2个时期的平均姿态转换次数和平均姿态转变频率,如表4所示。结合图10、表4分析,可得:
图10 母猪姿态占比分布Fig.10 Distribution ratio diagram of sows postures
表4 产前产后姿态转换分析Tab.4 Analysis of posture change before and after delivery
(1)母猪产前静态姿势的比例达70%以上;在产后多数时间里,母猪以侧卧姿态为主,达90%左右。文献[26]以母猪产前产后侧卧和胸卧姿态的持续时间为研究重点,得出母猪产前及产后两种姿态之和分别达85%、96%,与本文结果具有一致性。
(2)母猪分娩前后姿态分布、姿态转换次数、姿态转换频率均发生显著的变化,是产前筑巢行为的显著特征。产前24 h动态姿势的比例具有先增后减的趋势,普遍达10%~30%,而产后动态姿势的比例降至5%以下;母猪产前平均姿态转换次数高达388次,频率高达17次/h,而产后平均姿态转换次数降至73次,频率降至3次/h,利用SPSS软件对姿态转换次数和频率进行克鲁斯卡尔-沃利斯检验,均表现出显著性差异(P<0.001)。
由于胸卧姿态无法像侧卧姿态一样方便仔猪接近乳头,因此更多的侧卧姿态意味着更加优良的母性行为[27]。为探究母猪产后侧卧行为与母性行为的相关性,记录仔猪3日龄均质量、断奶均质量和每栏仔猪从出生到断奶时期的成活率。对侧卧时长进行归一化并排序,将24头母猪均分为3组,可以发现母猪产后侧卧时长与仔猪均质量呈正相关关系,侧卧时间越长,意味着对仔猪生长越有利,如图11所示。
图11 侧卧时长与仔猪均质量的关系Fig.11 Relationship between lateral duration and average piglets’weight
图12为母猪两种侧卧方向时长占比图,可以发现,母猪产前面向保温箱姿态和背对保温箱姿态比例的差值较小,两种侧卧方向分布较为均衡;而产后面向保温箱姿态和背对保温箱姿态比例的差值变大,母猪更偏向于朝一个方向侧卧。根据母猪侧卧的偏好性将母猪分为两组,如表5所示,偏向面向保温箱姿态和背对保温箱姿态的母猪分别有10头和14头,比较两组的平均仔猪断奶成活率,结果表明产后对面向保温箱姿态具有偏好的母猪,仔猪断奶成活率略高于偏好背对保温箱姿态的母猪。但由于样本数量较少,两组仔猪断奶成活率的差距不大,经过查阅文献,此前已有研究表明:母猪和仔猪的适宜温度不同,初生仔猪喜温,保温箱能为仔猪提供一个舒适的环境,使其尽快摄入初乳并降低被母猪挤压的风险,母猪侧卧时偏向于将乳房面向仔猪保温箱或许是一种良好的母性行为表现[28-29]。
图12 不同侧卧方向占比Fig.12 Ratio of two lateral directions
表5 侧卧方向与仔猪断奶成活率的关系Tab.5 Relationship between lateral direction and weaned piglets’survival rate
(1)采用深度学习作为识别围产期母猪姿态的研究方法,避免了与母猪接触所产生的应激反应,识别平均精度均值达93.97%,对视频的识别速度达10.66 f/s,能够实现24 h不间断地对母猪姿态进行实时识别。
(2)对母猪产前产后24 h姿态分布及转换频率进行分析,可以发现产前显著的筑巢行为,这可以作为母猪分娩时间预测的依据之一;着重探究了侧卧方向对母猪母性行为的影响,发现侧卧时长与仔猪窝均质量呈正相关关系,偏向于将乳房面向仔猪保温箱侧卧的母猪,仔猪断奶成活率更高。