APP下载

基于深度学习的羊只计数系统研究*

2022-01-20张译文李琦

内蒙古科技大学学报 2021年4期
关键词:单线计数头部

张译文,李琦

(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)

目前,内蒙古畜牧业正处于快速发展和转型升级的关键时期,牛羊养殖产业的自动化能够有效降低养殖成本、减小劳动力、增强科技水平,有效解决养殖过程中出现的常见难题.如何解决羊群自动计数问题便成为养殖场减少人力、提高效率的重要课题[1-3].传统的基于RFID的羊只计数方法受到场地和读写距离的限制.田磊等[4]采用YOLO目标检测算法,获得图像中羊的位置信息,通过统计检测框的个数对羊只计数;李琦等[5]利用YOLOv3目标检测算法检测图像中牛和羊的位置信息,结合DeepSORT目标跟踪算法控制云台对牛群进行跟踪.以上方案在实际应用中效果并不理想.

为克服上述问题,并实现对羊只目标快速稳定地跟踪和计数,文章提出一种将CenterNet目标检测与DeepSORT跟踪相结合的羊只计数方法.首先,建立CenterNet目标检测模型,通过训练数据集对标注的羊只头部图像数据集进行模型训练并得到权重,再将CenterNet训练出来的权重与DeepSORT目标跟踪模型相结合,最后利用单线计数算法进行羊只跟踪实时计数.

1 总体研究方案

羊只计数系统总体设计方案见图1,包括数据集制作、目标检测模型设计、目标跟踪和单线计数4个部分.

图1 羊只计数系统整体研究方案

原始数据集的羊只图像数据来源于内蒙古自治区呼伦贝尔盟和锡林郭勒盟2个自然放牧牧场.将海康摄像机置于羊只进出棚圈的通道前上方,采集得到羊只进出羊圈通道的视频,用Labelimg对羊只进行标注,并得到标注图像,将多次采集的视频整理挑选出3 060张图片,其中2 460张作为训练集,600张作为测试集.首先将2 460张训练集输入CenterNet目标检测模型,经训练得到权重参数,利用600张测试集对训练权重进行测试,然后将CenterNet目标检测模型与DeepSORT目标跟踪模型相结合,经过单线计数算法对羊通道出口的羊只进行计数.

2 CenterNet羊只头部检测模型

CornerNet[6]是通过提取检测物体的左上角点和右下角点的位置信息来确定目标,而在此过程中,CornerNet使用corner pooling仅仅能够提取到目标边缘的特征,导致CornerNet产生误检,基于此,CenterNet[7]在CornerNet的基础上增加了中心预测点,减少了网络的误检,文章采用CenterNet算法对羊只头部进行目标检测[8].首先通过中心点位置得到目标属性,将图像传入全卷积网络生成热力图;其次,确定热力图的峰值点;每个特征图的峰值点位置预测了目标的宽高信息,最后生成目标框.目标中心点见图2.

图2 CenterNet目标中心点预测

CenterNet算法的流程如下:首先,将羊只头部图像输入完全卷积网络生成热力图;其次,将输出热力图上的所有点与其相连8个临近像素点比较,若该点的值不小于其8个临近像素点,则该点保留,保留满足所有要求的前100个峰值点.对每个峰值处的图像特征预测得到目标框的高度和宽度信息.CenterNet整体架构见图3.

图3 CenterNet整体架构

3 DeepSORT羊只跟踪与计数

3.1 羊只跟踪

SORT是一种基于检测实现的多目标追踪框架,逐帧进行目标检测,将目标当前帧的位置信息传递到预测帧、当前检测框与已存在的目标进行关联,以Bounding box展现检测结果,SORT算法的跟踪精度和准确率比较高,但其使用的关联指标只有在状态估计不确定性比较低的时候才精确,容易导致遮挡的ID丢失,DeepSORT算法在SORT算法基础上增加了级联匹配,使遮挡物体的ID能够重新匹配.文章采用DeepSORT[9]跟踪算法实现对羊只的跟踪与计数.DeepSORT跟踪模型使用Torch版本对MARS数据集进行ReID训练,并得到模型.

当运动状态轨迹规律时,利用卡尔曼滤波预测结果与检测结果之间的马氏距离对运动目标的运动状态进行计算,计算公式为:

(1)

式中:T为第条轨迹,S为第个检测,d(1)(i,j)为运动匹配度,Si表示由卡尔曼滤波预测得到目标轨迹的检测位置与预测位置的协方差矩阵,yi为第个追踪器对羊只头部检测的目标预测位置,di为第个对羊只头部目标检测的位置框.当关联的马氏距离小于阈值,则设置目标运动状态关联成功.

当运动状态出现不确定轨迹时,在图像空间中使用卡尔曼滤波进行运动状态预测时,其结果与实际目标数量相差较大,出现目标框ID跳变的现象,对预测结果造成很大影响,因此引入第二种关联方法,每一个特征向量ri是由对应的检测块di得到的,定义最小余弦距离为当前帧第j个检测结果的特征向量和距离第i个追踪器最近的100个成功关联羊只头部的特征集的最小余弦距离,计算公式为:

(2)

3.2 羊只计数

根据羊只头部目标跟踪结果,羊只计数采用单线计数的方法,首先在羊通道出口的位置对应的视频图像定义一条红色标记虚拟线,根据羊只头部目标跟踪的结果,当跟踪目标框的中心点经过红线,计数开始,中心点离开红线,计数结束.首先设置集合A和B,其中A记录所有与计数线相交过的目标ID集合,B记录所有与计数线相交之后,再离开线的目标ID集合.单线计数示意图见图4.

图4 单线计数示意

时刻1:目标从左到右出现在视场内,假定跟踪器将其ID设置为“1”.此时集合A和B中皆没有任何元素.时刻2:目标“1”继续往右移动直到和线相交的时刻,此时“1”这个ID将被添加到集合A中.这个相交时刻就不存在目标离开线的情况,故此时集合B依然不包含任何元素.时刻3:目标“1”继续往右移动直到整体与线脱离的时刻,此时计数器发现目标“1”在集合A内,并且已经离开计数线,则将“1”这个ID添加到集合B中.最终,所有目标都经历上述目标“1”的过程之后,集合B中所有元素的个数就表示计数个数.

4 结果与分析

训练数据集的试验运行环境为Intel Xeon E5-2680 CPU,128 G内存,英伟达1080Ti显卡,CUDA版本为10.0,Python 版本为3.6,Pytorch版本为0.4.1,操作系统为Ubuntu16.04.

4.1 CenterNet训练模型试验结果分析

在羊只检测方面,用制作的2 460张图像测试集对CenterNet模型训练进行了评估测试,以epochs(迭代次数)作为横坐标,以Loss(损失)作为纵坐标,绘制Loss曲线.红线为Loss总体水平;蓝线hm_Loss为热力图Loss曲线;黑线wh_Loss为检测框宽高Loss曲线;绿线off_Loss为偏移Loss曲线.经过200多次迭代,可以看出Loss基本平稳,达到0.6,模型训练良好,Loss曲线如图5所示.

图5 Loss曲线

在羊只检测方面,根据文章制作的600张测试集对CenterNet检测算法和DeepSORT跟踪算法进行精度测试,以羊只的召回率(Recall)作为横坐标,以羊只的精确率(Precision)作为纵坐标,绘制精确率(PR)曲线,通过对比检测算法的平均精度(AP)和每秒检测帧数(FPS).C75表示在交并比(IoU)=0.75的PR对应平均准确率(APIoU)=0.75度量曲线下的面积,mm2;C50表示在IoU=0.50的PR对应APIoU=0.50度量曲线下的面积,mm2;Loc表示IoU=0.10的PR定位误差;Sim表示超类别误报被移除后的PR值;Oth表示为所有类型混乱被移除后的PR值;BG表示为所有背景误报被移除后的PR值;FN表示在所有剩余错误都被删除后的PR值.一般以IoU=C50为平均召回率.可以看出,召回率为80%,CenterNet算法训练出的模型和检测准确率都较为理想.PR曲线如图6所示.

图6 PR曲线

4.2 羊只计数试验结果分析

在计数方面,视频图像中设定纵坐标为500像素的一条红色虚拟线,将红色虚拟线作为计数线并进行计数,由于羊群密集,目标被部分遮挡,导致漏计.为控制羊群密度,文章设计宽度为1.5 m的羊通道,对羊通道出口的羊只进行检测与计数,羊只计数过程如图7所示.

将截取视频分为4个片段1~20 s,20~40 s,40~60 s,60~80 s,对实际通过红线的羊只数量进行计数,计数情况见表2.将实际羊只数量与算法羊只数量精度进行对比,精度(CenterNet算法/实际羊只数量)分别可达100%,97.3%,96.2%,95.3%.羊只真实值与检测值对比结果见表1.

图7 单线计数过程

表1 羊只真实值与检测值对比结果表

在测试视频中,每个时间段检测通过红线的羊只数量跟实际通过的羊只数量基本一致,精确率可达95.3%.其中,CenterNet算法的羊只数量少于实际羊只数量,其原因为羊只通过羊通道时因拥堵产生互相遮挡,导致目标框ID丢失,以上问题可以通过将羊通道出口收窄改善,文章算法能够基本实现羊只计数.

5 结论

第一部分是羊只头部目标检测,文章采用CenterNet目标检测算法对羊只头部进行检测,介绍了羊只头部中心点预测和CenterNet整体结构,并对羊只检测实验结果进行分析,精确度可达80%,可作为羊只目标检测的应用算法.

第二部分是羊只头部跟踪与计数,文章采用DeepSORT目标跟踪算法对羊只ID进行跟踪,介绍了DeepSORT目标跟踪算法以及单线计数算法,并对计数结果进行实验分析,精确度可达95.3%,可作为羊只目标跟踪的应用算法.

以上实验表明,文章算法可以实现牧场中羊只自动计数,为接下来系统推广应用奠定了基础.

猜你喜欢

单线计数头部
自动驾驶走向L4 企业头部效应显现
火箭的头部为什么是圆钝形?
中老铁路单线长隧贯通 国内玉磨段完成投资近九成
古代的计数方法
古代的人们是如何计数的?
对单线无人值守线路所闭塞技术的思考
单线铁路隧道快速施工技术
美国债券保险业市场结构变化研究
蚝壳巧制作
敲打孩子头部会引起癫痫吗?