马光凯 吴 伟 刘 丹 崔永璐 邓雯心 姜广顺*
(1.东北林业大学机电工程学院,哈尔滨,150040;2.国家林业和草原局猫科动物研究中心,东北林业大学野生动物与自然保护地学院,哈尔滨,150040;3.黑龙江东北虎林园,哈尔滨,150028)
东北虎(Pantheratigrisaltaica)是世界濒危动物之一,也是我国一级重点保护野生动物,具有很高的保护价值。通过东北虎行为观测可以判断其健康状况,在圈养虎舍密闭空间中,东北虎幼崽的数量较多(2~5只),幼虎目标小、相似度高,视频影像中的个体活动人工难以分辨和跟踪检测。同时,母虎经常遮挡幼崽,如何自动完成圈养东北虎幼崽目标跟踪是一个技术难点。因此,实现圈养幼虎的精准自动视频影像群体跟踪是十分必要的。目前,深度学习技术逐渐应用于动物识别领域,并取得了巨大进展[1],基于现有的监控视频并采用信息技术手段管理动物,具有使用方便、容易普及和成本低等优点,非常适合野生动物饲养繁育的精细化管理。
利用监控视频对动物进行跟踪需满足实时性要求,而多目标跟踪的速度在很大程度上取决于其检测到目标的速度。传统的目标检测算法如背景减法[2]、帧间差分法[3]和光流法[4]无法满足实时性的要求。目前,基于深度学习的目标检测算法不断成熟,该算法可划分为One-Stage和Two-Stage[5]检测算法两类。One-Stage算法主要有YOLO系列算法、SSD和RetinaNet等。目标检测算法在动物的检测中有着广泛的应用:于意[6]提出针对YOLOv3算法对奶山羊数据集检测精度低的问题,在YOLOv3算法的神经网络中增加了3个SeNet模块,以提高网络模型对奶山羊个体的关注度,进而提高模型的检测精度;邢永鑫等[7]利用改进的SSD算法在养殖场的环境中实现对奶牛个体的有效识别。Two-Stage算法主要有R-CNN和Faster-RCNN等。相对于Two-Stage算法,One-Stage算法速度更快、实时性更高,而YOLOv5算法精度高于大部分One-Stage算法中的其他检测算法。
在目标跟踪算法方面,已经有学者研究其在动物领域中的应用。张宏鸣等[8]采用MobileNetV2用作目标检测的骨干网络,再结合Mudeep重识别模型实现了对肉牛群体的多目标跟踪;张伟等[9]采用了基于中心点的CenterNet检测方法并结合DeepSORT算法实现了对断奶仔猪群体的多目标跟踪,且通过对比跟踪精度发现该算法优于YOLOv4-DeepSORT模型精度。基于卡尔曼滤波(Kalman filter)算法和匈牙利算法的DeepSORT能够满足实时跟踪的要求,DeepSORT算法中的重识别网络显著改善了多目标跟踪效果[10]。
基于深度学习的目标跟踪算法在保证跟踪精度的同时却引入较大的模型参数,将模型直接部署于设备中会大量消耗设备的内存空间。本研究在DeepSORT跟踪算法的基础上进行改进,使用轻量级网络作为重识别网络。轻量级网络主要有MobileNet[11]、ShuffleNet[12]和GhostNet[13],虽然MobileNet和ShuffleNet引入深度卷积和1×1逐点卷积方式来减少参数量,但是1×1卷积仍然会占用相当大的内存,且存在大量冗余的特征图。GhostNet引入了一种新的模型压缩方法Ghost模块[13],在MobileNetV3[14]的基础上将其Bottleneck Block替换为由Ghost模块堆叠而成的Ghost Bottleneck,在保证网络精度的同时舍弃了多余的1×1卷积层,不仅进一步减少了网络的计算量,也解决了特征冗余问题。在本研究中提出了一种基于GhostNet的轻量级目标跟踪模型,记为GhostNet-DeepSORT。
黑龙江东北虎林园位于黑龙江省哈尔滨市松北新区(45°49′ N,126°2′ E),本研究的视频由饲养区虎舍内部监控设备捕获,摄像机位于矩形东北虎饲养室的天花板上并斜向下拍摄,可以捕捉饲养室中的绝大部分东北虎活动区域,研究对象为刚出生或3月龄前的幼崽和其母虎(图1)。
图1 虎舍监控画面
视频拍摄于2019年7—9月,经过筛选去除了无目标和镜头污染等无效视频,保留并剪辑70个有效视频,每个视频时长均为1 min。视频为MP4格式,分辨率为2 560像素(水平)和1 440像素(垂直),视频帧速率为25 f/s。
构建2个数据集分别用于训练目标检测模型和重识别模型。首先用FFMpeg工具将视频文件剪辑成每段1 min的视频片段,共计70个。对于视频数据的标注,采用DarkLabel视频标注软件,批量构建目标检测数据集和重识别数据集。
在目标检测部分,每隔20帧图像提取1帧图像添加到目标检测数据集中,共计4 986张图片,其中训练集图片为3 887张,验证集图片为1 099张(图2)。在重识别部分,根据Market-1501数据集[15]的格式构建东北虎重识别数据集,包含20 194张图像,其中训练集图像有15 310张,测试集图像为4 884张(图3)。
图2 目标检测数据集样例
图3 重识别数据集样例
圈养东北虎幼崽群体多目标跟踪算法分为4个核心步骤:首先,使用目标检测器检测并生成检测结果,即获得每只东北虎幼崽的目标检测框;其次,在所有目标框中挑出对应的目标采用重识别网络进行特征提取,提取包括东北虎的外观特征和运动特征;然后,计算前后帧出现的目标间的相似度,从而衡量前后帧目标之间的匹配度;最后,进行数据关联,为下一帧中匹配度高的目标东北虎幼崽分配上一帧相应的身份识别码ID(图4)。
图4 圈养东北虎幼崽群体目标跟踪
目前,主要的目标检测算法包括R-CNN系列和YOLO系列。Faster R-CNN在两阶段目标检测中性能表现较好,但是其检测速率仅为5 f/s[16]。YOLO系列算法使用回归的思想,检测速度极大提升,被广泛应用在对检测速度要求较高的任务中。
YOLOv5是Jocher[17]在2020年6月提出最新版本的YOLO系列算法,也是目前推理速度最快、精度最高的实时目标检测模型之一。与以前的版本不同,YOLOv5在马赛克数据增强和自适应锚帧[18]方面进行了改进,每次训练期间能自适应地计算训练集中的最佳锚框的值从而提高检测速度。在Backbone骨干网络中,YOLOv5引入了Focus模块减少了卷积的成本,并在Backbone和Neck中都使用了CSP[19]结构,增强了网络的特征融合。本研究采用YOLOv5算法作为东北虎的目标检测器,逐帧检测视频流,标记出1只东北虎母虎与若干东北虎幼崽在图片中的位置信息。
DeepSORT算法[20]是当前主流的多目标跟踪算法之一。将目标检测的结果作为跟踪算法输入,通过卡尔曼滤波[21]来实现对当前时刻目标位置的预测。针对东北虎位置发生变化出现的关联匹配[22]问题,采用匈牙利算法(Hungarian algorithm)[23]来判定前一帧的东北虎与当前帧是否为同一个目标。
此外,DeepSORT算法通过使用现有轨迹的运动特征和外观特征,将每个新检测框与现有跟踪器相关联。引入代价矩阵(cost matrix)用于表示每个检测框与现有跟踪器之间的相似度,该相似度由马氏距离(Mahalanobis distance)和余弦距离(Cosine distance)2个度量加权而成,对于每一个检测框,根据重识别网络得到的特征向量和轨迹中已经存储的特征向量,计算两者的余弦距离。DeepSORT算法中的重识别网络使用由卷积层和不同尺寸的残差块堆叠成的宽残差网络(wide residual network)[24],用于提取具有区分度的目标外观特征,原模型占内存45.4 MB。
如图5所示,东北虎幼崽重识别过程是对输入指定的目标图像,提取图像中东北虎的外观特征,在东北虎幼崽图像数据库中检索与输入图像具有相似特征的图像并与之匹配同一个ID编号,确保在同一只东北虎幼崽再次出现时能准确识别其身份。
图5 GhostNet重识别框架
在本研究中采用GhostNet轻量级网络替代原始DeepSORT算法中由宽残差网络构成的重识别网络以减少模型占用内存。GhostNet算法主要是通过第一层卷积和由不同尺寸的GhostNet Bottleneck[13]堆叠成的Block层提取图像特征,这些特征通过全局池化模块进行下采样,提高特征对图像的表征能力,从而提高算法的性能。与传统卷积算法不同,GhostNet算法通过深度卷积(deep convolution)运算生成了一些参数更少的特征图,因此减少了模型的参数和计算量[25]。
试验平台主要由2部分构成,其中硬件平台主要配置包括Intel(R) Xeon(R)Silver 4215 CPU @ 2.50 GHz和NVIDIA GeForce RTX 3090;软件环境为所搭建的深度学习平台,包括Ubuntu 18.04.6操作系统、Cuda 11.2、cudnn 8.0.4、OpenCV-python 4.5.2和PyTorch 1.8.1-GPU。
目标检测模型通常采用准确率(precision,P)、召回率(recall,R)和平均精度均值(mean avergae precision,mAP)来评测。准确率表示在当前遍历过的预测框中属于正确预测边框的比值;召回率反应该模型对东北虎检测的覆盖能力,即从图片中识别出东北虎幼崽目标的比例;平均精度均值可以衡量模型的检测性能,是对检测的类别对应精度均值取平均。YOLOv5目标检测模型在东北虎目标检测数据集上的性能评估指标结果如表1所示。
表1 圈养东北虎幼崽目标检测模型的评价指标
由表1和图6可见,YOLOv5检测模型在东北虎数据集上检测性能良好,准确率、召回率和平均精度均值的数值较高,在训练集和验证集上均超过90%。
图6 YOLOv5检测效果
采用MOTChallenge[26]评估标准来对圈养东北虎幼崽群体多目标跟踪效果进行评估,包括误检数(false positive,FP)、丢失目标数(false negative,FN)、多数跟踪数(mostly tracked,MT)、多数丢失数(mostly lost,ML)、中断数(fragmentation,FM)、目标ID转变数(identity switches,IDS)、多目标跟踪准确度(multiple object tracking accuracy,MOTA)和多目标跟踪精确度(multiple object tracking precision,MOTP)。
圈养东北虎幼崽多目标跟踪算法的性能评估选择MOTA和MOTP作为主要的评价指标,将MT、ML、FP、FN、IDS和FM作为辅助指标进行性能评估,其中ML、FP、FN、IDS和FM数值越低代表性能越好,MT、MOTA和MOTP数值越高越好。
随机选取6段未被用于训练的视频作为测试集,用于多目标跟踪算法的性能指标的评估。将这6段视频分别命名为MOT1、MOT2、MOT3、MOT4、MOT5和MOT6(表2)。
由表2可知,多目标跟踪模型对圈养东北虎幼崽的检出率较高,但出现了一些东北虎目标间隔几帧的误检和漏检的情况,原因是视频中的东北虎幼崽存在目标偏小、频繁遮挡和目标相似度高等情况。由于DeepSORT算法中通过提取目标的运动特征和外观特征并引入级联匹配的策略,视频中的IDS数值较小,说明圈养东北虎幼崽目标的ID很少发生跳变。
表2 圈养东北虎幼崽群体多目标跟踪评价指标
本研究提出的多目标跟踪模型,在圈养东北虎幼崽跟踪监控视频中有良好的性能。为了展示GhostNet重识别模型的特征提取结果,利用Grad-CAM[27]可视化方法得到东北虎热力图(图7),可以看出重识别模型关注的特征主要集中在东北虎的头部和躯干部位,这些部位的表观特征如花纹等具有一定的区分度。跟踪效果如图8所示,在同一视频的同一帧图像中标出的目标框和对应ID可以看出模型轻量化操作前后的跟踪准确度和精确度几乎没有差异。2种多目标跟踪算法在6个测试视频中的MOTA和MOTP指标均较高,DeepSORT平均准确度和平均精确度分别达到了91.6%和88.2%,跟踪的准确度和精确度均较高。而经过轻量级网络GhostNet优化后的跟踪算法GhostNet-DeepSORT,它的MOTA和MOTP指标分别是91.6%和89.3%,MOTA保持不变且MOTP提升1.25%,不仅保持并略微提高了跟踪精确度,而且明显大幅减少了模型的内存大小,内存从优化前的45.4 MB减小到6.5 MB,减小了约85.7%的内存空间,这表明将轻量化操作后的网络部署到设备中可以大量地减少设备的资源消耗,提高模型的性价比。
图7 GhostNet重识别模型的可视化热力图
图8 圈养东北虎幼崽目标跟踪效果
跟踪动物并分析其移动轨迹数据是一种研究动物活动状态和个体健康状态的有效方法。图9展示了在2个视频中东北虎幼崽的运动轨迹,由轨迹图可以更直观地了解东北虎幼崽在虎舍中的活动情况,包括它们的活动范围、是否存在某些运动规律和个体健康状况等。
图9 圈养东北虎幼崽的运动跟踪轨迹
本研究提出了一种基于GhostNet轻量型网络的圈养东北虎幼崽群体的多目标自动跟踪方法。在东北虎幼崽个体检测部分,采用适宜复杂场景的轻量级检测算法YOLOv5;在东北虎幼崽跟踪部分,采用GhostNet轻量级网络实现东北虎幼崽个体ID的重识别,结合DeepSORT多目标跟踪算法,实现了深度提取特征,同时也极大地压缩了模型占用内存。
研究表明,YOLOv5检测模型的召回率和平均精度均值为94.9%和96.2%,在圈养东北虎幼崽监控视频数据集上表现出了较高的跟踪精度和较低的身份ID变化频率。在轻量化处理操作后的GhostNet-DeepSORT算法中,跟踪准确度保持不变,跟踪精确度提升了1.25%,模型占用内存从45.4 MB减小到6.5 MB,可在基本无精度损失的情况下,应用于计算力较低的设备中。最后,绘制出视频中东北虎幼崽的运动轨迹,更直观地展现其活动状态,反映种群内个体行为特征及健康状况。
致谢:感谢黑龙江东北虎林园的领导和一线工作人员的大力支持!