APP下载

基于改进SSD的夜间猪群舒适度监测

2020-08-12张苏楠

中国饲料 2020年14期
关键词:子集中心点猪群

刘 伟,王 芳,张苏楠,郭 融

(太原理工大学 电气与动力工程学院,山西太原 030024)

机器视觉监控作为人工智能的重要应用之一,在圈养猪养殖监测中具有非接触、可持续的优点(高云等,2019)。圈养猪目标检测是猪群生活状态监测的基础。高云等(2017)运用分水岭算法分割猪群个体目标,并绘制轨迹图线,分析得到猪只运动信息。但猪圈环境条件差、多只猪相互遮挡,传统方法得到结果可靠性低。

卷积网络通过卷积池化操作,能更本质的对目标进行描述。杨阿庆等(2017)设计了哺乳母猪全卷积网络,实现哺乳母猪区域分割,对轻微光线变化和母猪与仔猪粘连等情况有较好的检测效果。这类研究多是针对白天养殖情况,对夜间圈养猪的监测研究较少,不能满足猪养殖管理的全天候实际需求(王冬雪等,2019)。

基于SSD(Liu等,2016)目标检测算法,提出焦点损失和二次迁移学习的SSD建模方法,结合软非极大抑制对夜间猪舍环境下的圈养猪目标进行实时检测,并通过圈养猪位置信息对夜间猪群的分布情况进行分析,进而监测夜间猪群舒适度。

1 试验数据

本文主要采用自建数据集作为整个试验的数据。原始数据采集于山西某猪场某栏圈养猪2017年7月3日至2017年7月12日的全天视频。

本文从日间和夜间圈养猪视频中以隔帧抽取的方式分别获得原始图像数据,并剔除较为相似的样本,以提高样本集的质量。由此得到日间有效数据1214帧,夜间有效数据513帧,以labelImg手工标注总计7728个日间圈养猪目标和3229个夜间圈养猪目标。将日间和夜间的圈养猪样本库分别划分成训练集、验证集和测试集3个子集,各子集内样本均为随机选取,互无交集,且数量比为3∶1∶1。

2 改进SSD的夜间猪检测方法

2.1 焦点损失SSD猪目标检测网络SSD的结构如图1所示,以多层特征图生成默认框,用于检测猪目标。令特征图大小为m×n,每个特征图单元点设置k个默认框,所以单层特征图生成默认框个数D如式(1):

经典SSD算法的置信损失函数Lconf通常采用交叉熵函数(Cross Entropy)形如式(2):

式中,p是模型对猪目标预测的置信度,y表示样本类别。为简化式(2),定义pt如式(3)所示:

则可以得到猪目标检测的置信损失函数如式(4)所示:

由式(1)可计算SSD在训练时会生成8732(38^2×4+19^2×6+10^2×6+5^2×6+3^2×4+1^2×4)个默认框。默认框与猪标签匹配成功该框才被判定为正样本,多数默认框会被判定为背景样本,即负样本。在训练过程中正、负样本极度不均衡(Lin等,2020)。为了平衡正负样本数量差异对损失的影响,在式(4)的基础上添加一个平衡因子αt,αt形式如式(5)所示:

加入平衡因子后的交叉熵形如式(6):

通过αt给定猪样本和背景样本的权重值,削弱正负样本不均衡对损失值的影响。背景样本中大多数是简单样本,这些简单样本降低了少数较难识别的样本对损失值的影响,导致训练的模型漏检率偏高。在式(6)中引入(1-pt)γ参数降低简单样本对整体损失值贡献的比重,得到置信损失函数如式(7)所示:

式中γ为可调参数,范围为[0,+ ∞)。若猪目标被判定为背景pt值很小时,权重因子的值接近1,损失值与原损失函数形式基本相同,保持较大数值;若背景被判定为背景,则权重因子值接近0,不会主导损失变化。为更好的平衡样本权重,本文选择α为0.75,γ为2。

2.2 软非极大抑制传统的非极大抑制方法会将概率高的默认框周围的其他同类目标默认框直接移除。夜间温度较低且圈养猪性喜扎堆,存在目标遮挡问题,非极大抑制算法会导致部分遮挡目标漏检(Bodla等,2017)。

为解决上述问题,引入软非极大抑制算法使高概率默认框周围的其他概率较高的猪目标默认框对应概率降低,两框越接近,动态因子越小,保留高概率默认框周围距离该框相对较远的周围框,以此来提高对圈养猪遮挡目标的检测能力。软化非极大抑制算法如式(8)所示:

式中,S表示置信概率,IOU为最高概率的猪目标默认框和该框周围其他概率较高的猪目标默认框的交并比。以交并比为判别因素,两者越靠近,交并比的值越大,概率降低越大,以此摒弃针对同一只猪目标产生的默认框;两者越远,交并比的值越小,概率降低越小,以此保留针对遮挡目标产生的默认框。

2.3 基于二次迁移学习的SSD训练方法深度学习对训练样本量的要求较高,夜间样本数据虽然在初期易获取,但有效样本较少。迁移学习利用少量样本数据对已经由大量样本训练好的模型权值进行更新,实现权值共享,可以跳过模型初始阶段所需大量计算损耗,降低训练深度学习模型对数据量的要求(吴国琴,2017)。圈养猪日间样本量相较深度学习所需样本量少,但与夜间样本量相比较充足。因此,研究采用二次迁移学习的方法训练,即如下步骤:

Step1:由COCO大规模数据训练好的SSD模型作为基础SSD模型;

Step2:以数量相对较多的日间圈养猪数据微调基础SSD模型参数,建立日间圈养猪检测SSD模型;

Step3:用夜间圈养猪样本数据进一步微调日间圈养猪检测SSD模型,建立夜间圈养猪检测SSD模型。

最终得到的训练模型,充分利用日间和夜间样本数据,解决夜间样本量少的问题,同时减少,模型初始训练所需时间。

3 夜间猪群舒适度监测

不同生长阶段的圈养猪对猪舍温度的要求不同(谢涛等,2019),而且对温度调节能力较差。当猪舍温度低,容易导致猪免疫力下降而患感冒等疾病,圈养猪分布聚拢。当猪舍温度高,猪的进食量减少,分布较分散。

通过对夜间圈养猪目标检测获取目标框,求出目标框中心点,根据两中心点间距离判定两个猪目标是否相互靠拢,获取圈养猪聚拢堆数C和独立休息圈养猪个数K;通过如下步骤计算图像中C和K的值:

Step1:将所有夜间圈养猪目标框中心点POINTi放入SET母集,初始化C和K的值为0,初始化UP子集和DOWN子集为空集;

Step2:判断SET母集是否为空,若为空,输出圈养猪聚拢堆数C和独立圈养猪个数K,本张图像判断结束;否则,进行下一步;

Step3:从SET母集中取出一个中心点POINTi,即 SET=SET-{POINTi};

Setp4:将POINTi与SET母集其余中心点依次判断是否靠拢;若无靠拢的中心点,则为独立猪目标,K加1,返回Setp2;若有靠拢中心点,将所有靠拢中心点从母集中依次取出放入UP子集,SET=SET-UP;

Step5:依次判断并取出SET母集中与UP子集中心点靠拢的中心点ADJACENTj放入DOWN子集,SET=SET-DOWN;

Step6:将DOWN子集赋值给UP子集,清空DOWN子集;

Step7:判断UP子集是否为空;若UP子集为空(即母集中再无中心点与猪聚拢堆内中心点靠拢,堆中猪目标中心点已全部从母集中取出),C加1,重复Step2-Step7;否则重复Step5-Step7;

由此针对本文试验得到如下猪群分布情况判别规则:C为1或2且K不大于1,猪群分布情况为过度聚拢;C不为0且K大于1,猪群为分布适宜;C为0,猪群为过度分散。

4 试验结果与分析

4.1 日间猪目标检测试验本试验工作站的硬件配置为CPU:AMD Ryzen 5-2600,GPU:NVIDIA RTX2060,猪目标检测模型的训练均在tensorflow上展开。基于上述环境,训练时,每批次样本为16张,学习率初始为4×10-3,之后每20000步衰减为上一次学习率的0.95倍,共设置200000步。

图2所示为基于一次迁移和焦点损失的软化非极大抑制SSD日间圈养猪模型对日间猪视频的检测结果。可以看出,在地上有尿渍和水渍时,模型对轻微遮挡目标也有较好的检测结果。

改进后的SSD对日间圈养猪的检测召回率达到94.39%,mAP达到94.89%,每帧检测时间为0.104 s。

4.2 SSD模型夜间猪目标检测试验以日间圈养猪模型再次使用迁移学习训练得到SSD夜间圈养猪检测模型。为了验证所提方法有效性进行对比试验,结果如表1所示。由表1可知,与经典SSD相比,所提算法在召回率和平均精确率上都有明显提升,能更好的对夜间环境下猪目标进行检测,为猪群分布情况的判断和舒适度监测提供判断依据。

表1 不同策略SSD模型夜间检测结果对比

4.3 夜间猪群舒适度判断图3给出了夜间猪群分布情况图,表2为夜间猪群舒适度判断表。

图3(a1)和(a2)圈中多只猪聚拢,最多只有一只猪未聚拢,猪舍偏冷。图3(b1)和(b2)圈中有猪只聚拢,且至少两只猪未聚拢,猪群分布适宜,猪舍温度适宜。图3(c1)和(c2)圈中所有猪分散,无聚拢猪只,此时猪舍偏热。经试验验证,所提方法可以对夜间圈养猪进行准确的目标检测,并通过猪群分布情况判断当前猪舍圈养猪舒适度,与现实猪舍温度情况相符合。

5 结论

为了实时检测夜间圈养猪,并对夜间猪群舒适度进行监测,提出一种基于改进SSD算法检测夜间圈养猪目标,再由目标框位置分析猪群分布情况,由此判定当前猪群舒适度。试验结果表明,所提方法能实时准确监测猪群舒适度,有助于进一步实现养殖业自动化。

表2 夜间猪群舒适度判断

猜你喜欢

子集中心点猪群
健康猪群体系建设的主要措施
魅力无限的子集与真子集
拓扑空间中紧致子集的性质研究
猪群咳嗽多发季 养猪人如何应对
猪群免疫抑制因素及应对措施
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
关于奇数阶二元子集的分离序列
如何设置造型中心点?
为什么整群猪围攻一头猪