近些年,我国的养殖业、畜牧业发展十分迅速,无论是从养殖质量还是养殖结构,都在转型为现代畜牧业方向。行业共识已经发展为规模化,集约化。同时,高污染、高耗能的小规模散养方式逐渐褪去市场优势,最终将成为历史[1]。随着每年生猪出栏总数不断达到历史新高,至2018年底,我国生猪全年产量已突破7.2亿头,与2000年比较,增速为41%[2]。然而,随着养殖产业向着更大规模发展,传统人工监控、投料、饲养已经无法满足养殖的高效性。现代的、科学的生猪养殖模式被逐步推广。通过观察了解圈养生猪的生活习惯,发现生猪的姿态、行为与其情绪以及健康状况都有一定的联系[3]。例如,当生猪出现长期趴卧、食欲不振、离群活动以及单独休息等一些异常情况时,极大可能表明该生猪出现了病情[4]。在传统的生猪养殖产业中,生猪病情主要靠饲养员自主观察判断。对于大规模的养殖场,这样的工作不仅耗费大量的人力,而且十分依赖于饲养员的个人素质和知识储备。即便如此,若想详细地了解每一头生猪的健康状态,仍然是一件非常困难的事情。养殖无人化是未来的大势所趋,对于生猪研究的最终目的是用机器代替人进行实时监控、预警甚至处理,因此对生猪行为动作的检测很有研究价值。王传哲等[5]通过可穿戴微惯性传感器采集4类动作对应的加速度、角速度和姿态角共6 000组数据,使用BP神经网络对数据进行训练与推理。张聪[6]建立生猪体态12种特征数据集,使用决策树支持向量机对特征进行分类。嵇杨培等[7]通过改进YOLOv2神经网络识别生猪进食、饮水行为。
1 动作识别网络目前,随着计算机硬件发展,尤其是图形处理器(graphics processing unit,GPU)等运算能力的提高,促进了深度学习的发展和应用。其中动作识别是一个热门的研究方向[8]。最常见的动作识别方法应用是将给定的视频通过卷积网络分类为确定的类别。然而实际应用中视频不仅存在多种类别的动作,还有复杂的干扰背景[9]。本文使用二维卷积神经网络(2D-CNN)提取空间特征,三维卷积神经网络(3D-CNN)提取时序特征,将空间特征、时序特征相融合,提出了一种分析生猪在视频中位置和运动状态的方法。
1.1 动作识别网络结构本文采取的网络结构如图1所示。
整体设计在目标检测网络YOLOv2的基础上,添加了1路并行3D-CNN支路提取时序特征信息,2D-CNN提取空间位置信息。2路特征融合时,使用通道注意力模块,使2路特征进行充分的关联,最后通过一个卷积层得到边界框预测、分类的输出。
![]() |
Download:
|
图 1 本文提出的动作识别网络结构 |
由于时间序列信息对猪的行为理解十分重要,故本文网路结构使用3D-CNN来提取时空特征。其计算过程如图2所示。
![]() |
Download:
|
图 2 3D-CNN计算过程 |
采用连续视频帧数据提取特征时,将多帧数据拼接为一个数据长方体,同时卷积核也具有3个维度,三维卷积核在数据长方体中有3个滑动的方向,利用这种结构和计算方式,多个相邻帧的特征会映射到同一个输出,从而获得时序运动信息。并行3D支路输入的是视频数据,如图1所示。在本文中3D支路输入16帧视频序列,在计算量方面,3D-CNN相对2D-CNN计算量较大,训练、推理耗时较长,所以本文3D-CNN主干网络为3D-MobileNet。
2D-CNN解决空间定位问题,视频序列最后一帧作为关键帧输入2D支路,2D-CNN计算过程如图3所示。卷积核具有2个维度,只在2个方向上运动,可以提取二维图像中目标的特征。本文使用的主干网络为Darknet-19,能很好地平衡准确率和速率之间的关系。
![]() |
Download:
|
图 3 2D-CNN计算过程 |
为了使2D支路和3D支路的输出特征图平滑地融合,本文将3D-CNN输出的特征图压缩一个维度,使其最后2个维度和2D支路输出相等,然后沿着通道方向将2路特征图进行拼接。这2路特征包含了位置空间信息和时序运动信息。但是这2路特征没有进行很好地联系融合,故使用了通道注意力模块,这种注意机制有利于合理融合来自不同来源的特征,显著地提高了整体性能,通道注意力模块结构如图4所示。
![]() |
Download:
|
图 4 通道注意力模块 |
图中
$ {{B}}\in {{\bf{R}}}^{C\times H\times W} {\xrightarrow{{ {{\text{降维}}}}} }{{F}}\in {{\bf{R}}}^{C\times N} $ |
式中:
通过将特征图
${{G}}{\rm{ = }}{{F}} \times {{{F}}^{\rm T}}$ |
得到矩阵
${G_{ij}} = \sum\limits_{k = 1}^N {{F_{ik}} \cdot {F_{jk}}} $ |
对矩阵
${M_{ij}} = \frac{{\exp ({G_{ij}})}}{{\displaystyle\sum\nolimits_{j = 1}^C {\exp ({G_{ij}})} }}$ |
使注意力模块与原始特征图相结合,将矩阵
${{F}}'{\rm{ = }}{{M}} \times {{F}}$ |
将矩阵
$ {{F}}^{\prime }\in {{\bf{R}}}^{C\times N} {\xrightarrow{{ {{\text{升维}}}}}} {{F}}^{''}\in {{\bf{R}}}^{C\times H\times W} $ |
原始输入特征图
${{O}} = \alpha \cdot {{F}}'' + {{B}}$ |
输入特征图
本文采用了YOLOv2目标检测算法进行动作的分类和包围框的回归[10],该方法是2016年Redmon等[11]提出的YOLO目标检测算法的改进版本,算法在速度上大幅提升。该方法的缺点是小目标检测能力相对较弱。本文所使用的数据集中只对某一栏生猪进行检测,其体积相差不大,不存在小目标的情况,且监控视频需要在嵌入式设备中实时检测,所以本文使用的方法是基于YOLOv2目标检测算法进行设计。
包围框回归与YOLOv2方法遵循相同准则,对于网络输出特征图的每个网格,使用k-means算法在训练集聚类出5个先验包围框,使网络最终输出的特征大小为
包围框回归采用Smooth L1损失函数,其对异常值敏感度较低,防止梯度爆炸。前景概率得分采用L2损失函数,优点为收敛速度较快,加快了训练的时间。分类概率使用Focalloss损失函数解决类别不平衡问题:
${L_{{\rm{Focalloss}}}} = \left\{ \begin{array}{l} - \alpha {\left( {1 - y'} \right)^\gamma }\log y',\;\;\;\;y = 1 \\ - \left( {1 - \alpha } \right){{y'}^\gamma }\log \left( {1 - y'} \right){\rm{, }}\;\;\;\;y = 0 \end{array} \right.$ |
式中:
样本越容易检出,则其贡献的损失就越少,同时,较难检测出的样本对于权重更新的比重就会变大[13]。
2 实验 2.1 生猪动作数据集目前,关于生猪的动作姿态研究较少,相关公开数据集难以获得,所以本文的数据集通过采集某生猪养殖场真实数据,并通过人工标注的方法进行制作。采集2个群养栏共12段监控视频,总计1 456 f,图片分辨率大小为320
本文训练的设备参数如下:Ubuntu 18.04,显卡为GTX1080,显存8 G,CPU为i7-8700K,内存16 GB。
在模型参数设置上,模型输入图片分辨率大小为224
为了检测出的包围框和实际标注的包围框有更大的IOU,训练时加速收敛,对标注的包围框尺寸进行k-means聚类操作。对数据集包围框的尺寸数据和聚类中心坐标数据进行可视化,如图5所示。
![]() |
Download:
|
图 5 生猪动作数据集检测框聚类 |
数据点横纵坐标是包围框所占图像像素的大小,从图5中可以看出,自制生猪动作数据集包围框大部分分布在20
在连续输入16 f的情况下,对不同网络组合结构的模型进行测试。评价标准为各个类别的平均准确率(AP0.5),下标代表检测出的包围框与真实标注值IOU阈值为0.5。由于自制数据集数据量相对较少,容易产生过拟合现象,本次实验中3D支路迭代1000次后,3D支路参数停止更新,只更新2D支路的参数。
测试结果如表1所示。只使用2D网络检测指标比较低,这是因为没有结合时序特征信息,单纯使用3D网络;AP0.5明显优于2D网络,说明3D网络在获取时序动作特征时更具优势,更加关注于运动的过程,但是时间序列中生猪的位置变动会导致定位能力下降;而在2D和3D网络相结合时,将关键帧的空间位置信息和时间序列动作信息结合,检测指标有一定的提升。对于本文数据集所涉及的躺卧、站立和移动3种动作,其中移动动作具有更多的时序信息,所以(表1)使用3D-CNN后,移动动作AP0.5提高最多。
![]() |
表 1 不同网络结构实验结果 |
该实验证明了在目标检测网络中,添加3D-CNN提取时序信息,有助于时空动作识别和定位。
2.2.4 通道注意力模块实验2D支路与3D支路特征融合时,本文使用了通道融合注意力机制。如表2所示,该实验研究了通道注意力模块对检测结果的影响。结果表明通道注意力模块对特征融合具有积极作用。
![]() |
表 2 通道注意力模块对网络的影响 |
模型输入为不同采样间隔的视频序列,输入跨度为16 f,序列保留最后一帧作为关键帧输入2D支路。实验结果如表3所示。
![]() |
表 3 视频序列采样间隔网络实验效果 |
采样间隔为1时,AP0.5优于连续输入16 f,该实验表明了对于本文所采用的生猪动作数据集中视频帧之间存在冗余信息。
采样间隔继续增大到2时,移动动作AP0.5开始下降,而静止动作躺卧、站立的AP0.5基本保持不变或略有上升。这表明检测静态动作时,2D图像就可以提取足够的特征信息;而对于动态动作,需要有足够的时序信息。
采样间隔继续增大到3时,3D支路实际输入的视频序列只有5 f,这时各个动作的AP0.5都有下降,但是与表1所得结果相比,仍然优于只使用2D支路的网络结构。
3 结论本文针对生猪动态运动特征,采用了并联一路3D网络和一个用于融合不同特征的注意力机制,提出了一种结合时空信息的动作识别与定位的方法。
1)本文通过实验证明了3D加2D的特征提取网络结构和通道注意力机制在生猪动作的时空定位任务上具有充分的有效性。
2)将深度学习技术运用到生猪的动作识别,有利于实际的应用。
3)本文算法适用于目标相对较大的场景,针对小目标检测问题还有研究空间。
接下来还可以考虑使用FPN结构优化小目标检测能力,提高算法在不同场景下的泛化能力和鲁棒性。另外3D卷积参数量巨大,计算时间较长,因此对模型的压缩剪枝也将成为未来研究的重点。
[1] |
朱鹏春. 我国生猪养殖模式及产业发展趋势分析[J]. 中国饲料, 2018(20): 90-93. (![]() |
[2] |
孙京新, 黄明. 我国猪肉加工产业现状、存在的问题及可持续发展建议[J]. 养猪, 2015(3): 62-64. DOI:10.3969/j.issn.1002-1957.2015.03.033 (![]() |
[3] |
于洪康, 吴建寨, 王亚辉, 等. 我国生猪养殖产业现状、模式与区域布局分析[J]. 中国猪业, 2018, 13(1): 23-26. DOI:10.3969/j.issn.1673-4645.2018.01.009 (![]() |
[4] |
赵凯旋. 基于机器视觉的奶牛个体信息感知及行为分析[D]. 杨陵: 西北农林科技大学, 2017.
(![]() |
[5] |
王传哲, 王东, 张海辉, 等. 基于姿态角的生猪行为识别方法研究[J]. 扬州大学学报(农业与生命科学版), 2016, 37(4): 43-48. (![]() |
[6] |
张聪. 基于目标特征的生猪体态识别及异常行为分析[D]. 太原: 太原理工大学, 2018.
(![]() |
[7] |
嵇杨培, 杨颖, 刘刚. 基于可见光光谱和YOLOv2的生猪饮食行为识别[J]. 光谱学与光谱分析, 2020, 40(5): 1588-1594. (![]() |
[8] |
孙桂煌. 基于机器学习的人体动作深度信息识别方法研究[J]. 佳木斯大学学报(自然科学版), 2020, 38(1): 37-40. (![]() |
[9] |
朱云鹏, 黄希, 黄嘉兴. 基于3D CNN的人体动作识别研究[J]. 现代电子技术, 2020, 43(18): 150-152, 156. (![]() |
[10] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, USA, 2017: 6517–6525.
(![]() |
[11] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2016: 779-788.
(![]() |
[12] |
阮激扬. 基于YOLO的目标检测算法设计与实现[D]. 北京: 北京邮电大学, 2019.
(![]() |
[13] |
LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of IEEE International Conference on Computer Vision (ICCV). Venice, Italy, 2017: 2999–3007.
(![]() |