内容一览:对养猪业而言,母猪产仔是其中关键的一环。因此,提高猪仔成活率、确保母猪分娩过程安全,成为重要课题。现有的 AI 监测方式,存在着高设备成本与信息传输不稳定的问题,南京农业大学研究人员,利用一种轻量级深度学习方式,对母猪分娩这一过程进行早期预警和有效监测,降低成本的同时,提升了监测准确率。
关键词:嵌入式开发板 轻量级深度学习
本文首发于 HyperAI 超神经微信公众平台~
作者|alice
编辑|三羊
我国生猪养殖业规模居全球首位,但产业整体依旧面临着养殖水平较差的问题。对于很多大型养猪场,最关键的是在提高猪仔成活率的同时降低成本。传统方法靠人力监管难度大且主观性强,面对母猪分娩过程中难产、猪仔窒息等一系列问题,难以及时有效地处理。
近几年,AI 监控已成为解决这一问题的重要方法。其原理大多是借助云计算为基础的深度学习来进行监控,然而这一方法对设备与网络宽带要求高,具有很强的限制性与不稳定性。
据中国养猪网介绍,母猪在分娩前 12-24 小时内,由于催产素或催乳素的作用,往往会表现出筑巢行为,且姿势变换频率增加。基于此,实验团队通过 YOLOv5 算法设计出一个监测母猪姿势与猪仔出生的模型,并部署在英伟达 Jetson Nano 开发板上,从而在复杂场景中对该过程进行监测和分析,具有低成本、低延迟、高效率、易实现的特点。
目前这一成果于 2023 年 1 月发表于《Sensors》期刊,标题为:「Sow Farrowing Early Warning and Supervision for Embedded Board Implementations」。
论文已发表于《Sensors》期刊。
论文地址:
https://www.mdpi.com/1424-8220/23/2/727
实验概述
数据与处理
视频数据来自江苏宿迁与靖江两个养殖场,共收集了 35 头围产期母猪的视频数据。其中靖江猪场的 11 头母猪的数据记录于 2017 年 4 月 27 日至 5 月 13 日,宿迁猪场的 24 头母猪的数据记录于 2020 年 6 月 9 日至 15日。母猪被随机放置在特定尺寸 (2.2m x 1.8m) 的产床之中,视频数据由摄像头 24 小时连续记录。
接下来,对数据进行预处理。实验团队首先筛选出母猪分娩前后一天录制的视频,然后用 Python 和 OpenCV 将其处理成图像数据。利用标签软件对获取的 12,450 张图像中的母猪姿势及新生仔猪数据进行手动标注和数据增强,得到 32,541 张图像数据组成数据集。
数据增强 (Data Augmentation):此处指裁剪、平移、旋转、镜像、改变亮度、添加噪音和剪切)
这个数据集被分为 5 个类别:4 种母猪姿势(侧卧、胸骨卧、站立和坐)和仔猪,训练集、验证集和测试集的比例为 7 : 1 : 2。
图 2: 经过数据增强后的效果
实验模型
实验团队利用 YOLOv5s-6.0 建立了一个检测母猪姿势和仔猪的模型。此模型由 4 个部分组成:
Input:图像输入
BackBone:母猪和仔猪图像特征的提取
Neck:图像特征的融合
Prediction:预测(因母猪和仔猪的体型差异较大,这一部分使用了 3 种不同的特征图 (feature map),以进行大、中、小目标对象的检测)
图 3: YOLOv5s 算法的网络结构
a:CBS 模块细节
b:Res-unit 模块细节
c:CSP1_X 和 CSP2_X 模块细节结构
d:SPPF 模块细节结构
实验团队将算法部署在英伟达推出的 Jetson Nano 系列嵌入式 AI 计算平台,并利用 TensorRT 来优化模型,使其后续在嵌入式开发板上的运行具有更高的吞吐量和更低的延迟,同时避免了网络传输过程中可能存在的数据泄漏。
图 4: TensorRT的工作流程
具体参数如下:
模型训练环境:Ubuntu 18.04 操作系统,Intel(R) Xeon(R) Gold 5118 @ 2.30 GHz CPU,NVIDIA Quadro P4000 GPU,8 GB 显存,64 GB 内存,2-TB 硬盘,PyTorch 1.7.1 和 Torchvision 0.8.2 深度学习框架,CUDA 版本 10.1。
模型部署环境:适配 ARM 的 Ubuntu 16.04 操作系统,4 核 ARM A57 @ 1.43 GHz CPU,128 核 Maxwell 架构GPU,4 GB memory,JetPack 4.5,Cuda10.2.89,Python 3.6,TensorRT 7.1,Opencv 4.1.1,CMake 3.21.2 深度学习环境。
模型参数:(1) 对于 YOLOv5 训练,设置 epoch 300,learning_rate 0 .0001,batch_size 16;(2) 对于 TensorRT 优化网络,batch_size 为 1,精度 fp16。
最后实验团队使用精度 (precision)、召回率 (recall rate) 和检测速度 (detection speed) 等指标对不同算法进行了性能评估。
其中,精度及召回率可用于衡量算法检测所有类别数据的能力,包括 4 种母猪姿势(侧卧、胸骨卧、站立和坐)及新生小猪;模型大小及检测速度则用于衡量该算法是否适合部署在嵌入式设备上。
计算公式如下:
TP:正样本 (positive sample) 的正确预测数
FP:正样本的错误预测数
FN:负样本 (negative sample) 的错误预测数
实验结果
模型性能
实验团队发现,在模型训练的 300 个 epoch 中,随着迭代周期增加,精度和召回率总体呈上升趋势。同时可发现,进行数据增强后的 YOLOv5s 模型的精度和召回率始终较高。
图 5:YOLOv5s 检测模型的精度和召回率
a:精度 (precision)
b:召回率 (recall)
橘线:经过数据增强后的 YOLOv5s 模型的精度/召回率
蓝线:未经数据增强的 YOLOv5s 模型的精度/召回率
实验中,平均精度 (mAP) 被用来评估该算法检测所有类别的能力。实验团队在评估 YOLOv5s 算法的同时,还横向对比了 YOLOX-nano 和 NanoDet-m 两种算法的性能,结果发现,YOLOX-nano 和 NanoDet-m 的检测速度略快于 YOLOv5s,但精度较低,存在对仔猪漏检和误检的情况。而 YOLOv5s 算法对不同尺寸的目标检测效果良好,模型在图像、本地视频和摄像头的平均检测速度上与其他两种相当。并且,经过数据增强的 YOLOv5s 模型具有最高的精度和召回率,分别为 0.982 和 0.937。
表 1:不同算法对母猪姿势和仔猪检测的评价指标
为了测试模型的的泛化能力 (generalization ability) 与抗干扰能力,实验团队在训练模型时候将其中一头母猪保留作「新样本」,从中选择了 410 张包含不同复杂场景的图像对模型进行测试。结果显示,母猪姿势的漏检和误检主要受到光照变化影响;仔猪主要受到热灯开启的影响,即强光下的仔猪难以识别;第一只仔猪出生时间和不同颜色热灯场景对模型的检测能力影响较小。
左二栏:母猪姿势的漏检率在复杂光照下最高
左三栏:母猪姿势的误检率在复杂光照下与夜间开启热灯的情况下较高
左四栏:仔猪误检数量在复杂光照下和夜间热灯开启的情况下较高
左五栏:仔猪漏检数量在夜间热灯开启的情况下较高
a:复杂光照下
b:第一只仔猪出生
c:不同颜色的热灯下
d:夜间热灯开启
部署前后
实验团队将模型部署在英伟达 Jetson Nano 后,能够准确地对母猪姿势以及猪仔进行检测。比较测试结果后发现,虽然该模型部署在英伟达 Jetson Nano 后精度上出现了微小的降低,但是其速度却提升了 8 倍以上。
表 3:模型测试效果对比
左一栏:模型的格式
左二栏:模型部署平台,Quadro P4000 为对比测试所用平台。
嵌入式开发板上的 GPU 利用率限制了该模型的实际应用能力。下图展示了模型在嵌入式开发板上检测图像和视频目标时的 GPU 利用率。由于需要对视频流进行解码处理,因此在检测视频时的 GPU 利用率高于检测图像时的利用率,但这并不影响模型的性能。测试结果表明,研究中的模型可以应用于不同的生产场景。
图 7:检测过程中 GPU 利用率
(a) 图像检测中 GPU 的利用率
(b) 视频检测中 GPU 的利用率
检测结果
实验团队通过对 22 头母猪的数据进行测试和分析,得出产前 48 小时至产后 24 小时母猪平均姿势转换频率。根据变化频率(下图所示),团队将模型的预警策略归纳为:
1. 姿势转换频率超上限值(17.5 次/小时)和低于下限值(10 次/小时)时发出警报。
2. 为了减少母猪日常活动对预警的影响,上限值或下限值必须超过 5 小时。
对样本的测试表明,该模型能够在产仔开始前 5 小时发出警报,预警时间与产仔实际时间误差为 1.02 小时。
图 8: 母猪产前 48 小时至产后 24 小时平均姿势转换率分析图
(a) 平均姿势转换率变化范围
(b) 平均姿势转换频率
产前 48 小时至产前 24 小时,此期间母猪活动正常
产前 24 小时至产前 1 小时,姿势转换频率逐渐增加,后逐渐减少
产后 1 小时至 24 小时,姿势转换频率接近 0,后略有增加
当首个新生仔猪被检测到后,分娩警报就会被触发,显示「开始分娩!起始时间:XXX」。此外,LED 灯闪烁也可以帮助饲养员快速定位正在分娩的母猪,判断是否需要人工干预。
但是当检测速度过高时,仔猪往往被错误地检测到。因此,为了实现实时检测,减少误报,实验团队采取了「连续三次检测法」。只有连续三次检测到新生仔猪时,才判断为仔猪。此方法误报次数为 1.59 次,传统单次检测法则为 9.55 次。误报次数明显下降,总体平均准确率为 92.9%。
AI 养猪:智慧养殖新纪元
我国作为全球生猪养殖大国,2015 年至 2018 年,生猪年出栏量为 7 亿头左右。但近年来,受到猪瘟等影响,生猪存栏量及出栏量不断有较大波动。据已发布的行业研究数据,近年来生猪养殖散户比例不断下降,规模化程度不断提高,因此要求更高效集约的养殖技术应用到生猪养殖业中。
在国内,AI 养猪已有可靠产品。阿里云联合艾博机器、旗硕科技推出 AI 养猪解决方案,满足了多元场景的需求。京东农牧智能养殖方案基于 AI、物联网等技术,实现了「猪脸识别,全链溯源」。AI 带来的更智能、更精细的养殖模式正在逐渐推广。
然而目前 AI 养猪的推广还面临着费用高、操作较为复杂等亟待解决的问题,如何让更多的养猪场敞开怀抱接纳 AI,恐怕还有很长的路要走。
本文首发于HyperAI 超神经微信公众平台~
参考链接:
[1]https://www.163.com/dy/article/HCSQN810055360T7.html
[2]https://xueshu.baidu.com/usercenter/paper/show
[3]https://www.aliyun.com/solution/govcloud/ai-pig
[4]http://www.dekanggroup.com/index/news/detail/id/182.html
[5]https://www.thepaper.cn/newsDetail_forward_3695180
[7] 丁奇安,刘龙申,陈佳,太猛,沈明霞. 基于 Jetson Nano 的哺乳期仔猪目标检测[J/OL]. 农业机械学报.