融合YOLOv7和BYTE多目标跟踪的多类别海珍品计数方法

安志强 ,李智军 ,刘 硕 ,赵永刚 ,陈启俊 ,左然涛 ,林远山 ※

(1. 大连海洋大学信息工程学院,大连 116023;
2. 辽宁省海洋信息技术重点实验室,大连 116023;
3. 设施渔业教育部重点实验室,大连海洋大学,大连 116023;
4. 大连鑫玉龙海洋生物种业科技股份有限公司,大连 116007;
5. 大连海洋大学水产与生命学院,大连 116023 )

海珍品库存是水产养殖企业在海珍品放苗、养殖状态监测、精准投喂和经济效益估算等方面的重要参考数据[1]。传统的海珍品库存估算主要采用人工抽样方法,例如称质量和框选计数等。这类方法劳动力成本高、效率低、且难以保证结果的准确性和全面性。因此,自动、准确、快速地统计完整养殖圈内海珍品的数量已成为当前迫切需要解决的问题之一[2]。近年来,无人船[3]、水下机器人[4]和深度学习[5-6]等新技术的发展为真正解决实际养殖环境下的海珍品数量估算问题提供了可能。

国内外学者在水下拍摄图像的基础上,尝试采用传统图像处理[7-8]和机器学习[9-12]技术开展海珍品自动计数的研究。传统图像处理方法的基本思路是首先在RGB、HSV、Lab 或YCbCr 等[13-16]颜色空间对海珍品对象进行分割,然后采用连通区域统计、端点细化、曲线演化、模板匹配和分类检测等方法统计数量,并有效应用在鱼群、虾苗[17]、扇贝苗[18]等的计数上。但是传统图像处理方法受水下图像模糊、对比度差、噪声和复杂背景等因素干扰[19-20],导致海珍品数量统计的准确率普遍较低。

机器学习中的深度学习具有自动逐层提取语义特征、泛化能力强、鲁棒性好等优点[21],为此国内外学者纷纷尝试将深度学习技术应用到海珍品计数上,涌现出分割计数、检测计数等方法。基于图像分割的计数方法,一般利用U-Net[22]、Mask R-CNN[23]等对图像进行像素级的背景检测和目标分割,识别出图像中的虾体[24-25]、鱼体[26]等目标,最后在此基础上使用时间阈值法与空间阈值法确定海珍品数量。由于基于图像分割的计数方法需要对目标进行像素级的定位,计算量较大。为此,部分学者提出了基于目标检测的海珍品计数方法,其仅需要预测出目标边界框,便可得到相关计数依据,更加方便快捷。这种方法的基本思路是首先使用Faster R-CNN[27]、YOLO[28]等目标检测算法对图像中海珍品对象进行检测,然后根据目标边界框的数量确定海珍品的数量,已被应用于鱼群[29-30]和扇贝[31]的计数上。

然而,上述利用深度学习技术的海珍品计数方法大多只能统计单张图像内的海珍品数量,并未实现对完整养殖圈内海珍品的数量统计,而且只针对单一品种进行检测计数。为此,本文以真实底播养殖环境下的海珍品为研究对象,以水下拍摄的海珍品视频为数据源,将基于深度学习的检测模型与多目标跟踪算法相结合,尝试利用视频目标跟踪的方法同时统计多种海珍品(海参、扇贝、海胆)的数量。为保证海珍品检测跟踪算法的实时性与准确性,采用新近发布的YOLOv7[32]作为为目标检测网络,以期在保证检测精度的前提下实现更快的处理速度。在此基础上,借鉴多目标跟踪BYTE[33]跟踪算法的思想,提出一种面向多类别海珍品的跟踪与计数方法,为水产养殖的智慧管理提供科学决策依据。本文所提方法已在大连鑫玉龙海洋生物种业科技股份有限公司海参库存评估中得到应用。

本节首先介绍了多类别海珍品技术方法的总体框架,使用到的算法技术为基于检测的跟踪算法,因此又分别介绍了检测器与跟踪器的设计,最后介绍了用来评价本文所提算法的评价指标。

1.1 多类别的海珍品计数方法总体框架

本文旨在解决统计视频中各类海珍品数量的问题。鉴于多目标跟踪技术能够检测并跟踪视频中的每个物体,因此采用多目标跟踪技术实现视频中各类海珍品的计数。其基本思路是使用目标检测器检测新的海珍品,并利用跟踪器对其进行跟踪,获取视频中所有海珍品的轨迹信息,最后根据轨迹数量计算各类海珍品的数量,总体框架如图1 所示。首先,将视频中第i帧的图像送入基于深度学习的海珍品目标检测器中,得到第i帧的检测结果;
然后,将此检测结果与第i-1 帧海珍品轨迹经跟踪轨迹预测算法得到的预测框进行目标匹配,得到第i帧的匹配结果;
最后,根据匹配结果更新海珍品的轨迹状态;
以此反复,直到整个视频处理完成。最终得到所有海珍品的轨迹,通过分析这些轨迹即可估算出各类海珍品的数量。

图1 多类别的海珍品计数方法总体框架Fig.1 General framework of multi-category sea foods counting method

1.2 基于YOLOv7 的海珍品检测器设计

本文所采用的多目标跟踪方法为基于检测的跟踪技术,其跟踪性能严重依赖目标检测器的性能。为此,选用YOLO 系列最新版本YOLOv7 作为检测器基础算法。YOLOv7 是一种一阶段的目标检测算法,算法通过直接回归的方式一次处理并获得对应物体的目标区域、位置及类别,其检测速度通常比两阶段目标检测算法快,能在精度和效率上进行很好的平衡,为实现实时海珍品的跟踪计数奠定了基础。

YOLOv7 针对不同的场景和应用提供了YOLOv7-tiny、YOLOv7、YOLOv7-X 等7 种不同的模型,综合海珍品计数的实际需求,在此选用标准版的YOLOv7 模型权重实现快速、高精度的海珍品检测器并使用“2017 首届水下机器人目标抓取大赛(2017 Underwater Robot Picking Contest,URPC2017)”提供的真实水下图像数据集[34]训练YOLOv7 模型。首先将包含海参、海胆、扇贝三类海珍品的17 655 张图像按8:1:1 的比例随机划分成训练集14 055 张图片用于训练,校验集1 800 张图片用于验证和测试集1 800 张图片用于测试。

YOLOv7 检测器训练的设置为图片自适应大小640×640,初始学习率为0.01,动量为0.9,权重衰减为0.000 5,批量大小为16,训练回合数为300,每训练10 个回合进行1 个测试回合。海珍品检测器训练所采用的操作系统为Ubuntu18.04,深度学习框架为PyTorch,试验处理器为AMD Ryzen Threadripper 1920X 12 核,显卡为NVIDIA GeForce RTX2080。

1.3 基于BYTE 的多类别海珍品跟踪计数算法设计

1.3.1 跟踪器设计的总体思路

实际养殖环境下的海珍品视频具有同类海珍品的相似性高、水下图像模糊缺色等特点,这可能会严重影响使用外观信息进行数据关联的多目标检测器的性能。为此,本文借鉴BYTE 的基本思想,仅利用视频中目标的运动信息及其他启发信息实现多类别海珍品跟踪器,其总体思路如图2 所示。

图2 基于BYTE的多类别海珍品跟踪计数算法设计的总体思路Fig.2 The general idea of multi-category sea foods tracking and counting algorithm design based on BYTE

首先将检测的结果进行分级,分为高分目标Dh和低分目标Dl,高分目标Dh与信任目标预测框Tc通过匈牙利算法进行第一次匹配。匹配成功的目标保存到信任轨迹中并更新,剩余的目标预测框Tc_r与低分目标Dl通过匈牙利算法进行第二次匹配。剩余的的高分目标Dh_r与不信任目标预测框Tu通过匈牙利算法进行第三次匹配。第二次匹配成功的目标同样保存到信任轨迹中并更新,剩余的目标预测框Tc_r_r标记为丢失轨迹并存放在不信任轨迹中,剩余的低分目标Dl_r将不再对其进行处理。第三次匹配成功的目标与前两次进行相同的操作,剩余的目标预测框Tu_r对于已匹配上的轨迹出现丢失的情况对其进行丢失轨迹处理,并为其设置一个阈值k,当匹配失败的次数大于阈值k将其丢弃否则将其标记为丢失轨迹存放到不信任轨迹中。其他的剩余目标预测框Tu_r对其进行未匹配新轨迹丢弃处理,之后对虚假身份(identity,ID)数进行更新,剩余的高分目标Dh_r_r将对其进行多类别海珍品目标新轨迹生成处理并将其存放到不信任轨迹中,最后更新轨迹状态,以此反复。

1.3.2 多类别海珍品新轨迹生成策略

多目标跟踪器为了更好地跟踪每个物体,需要在每个物体刚出现时为其创建一条轨迹记录并在后续帧中进行更新、维护。现有大多数基于多目标跟踪的计数方法对不同类别的物体用同一套ID 系统无差别地创建、维护轨迹,这样需要对所有轨迹进行分析才能实现多类别物体计数,较为耗时、费事。为了充分利用ID 本身所蕴含的数量信息,实现多类别海珍品的快速计数,为此设计一种多类别海珍品新轨迹生成策略,按类别为每类海珍品分配独立的ID,具体如图3 所示。

图3 多类别ID 分配策略流程图Fig.3 Flowchart of the multi-class ID allocation policy

经过两次匹配仍未匹配成功的高分目标Dh_r_r,认为其是一个新的海珍品的轨迹,因此将对其进行激活并对其进行ID 分配,其包含的主要信息有类别、位置等。首先将高分目标Dh_r_r的类别传入ID 分配模块中,在ID分配模块中创建了n个ID 分配器用来存放每个类别的海珍品ID。然后根据各类别为其分配ID,如当前类别为海参,其对应的数字类别为1,所以类别1ID 分配器将会为其分配一个ID,并将原有的ID 数量进行加一操作,其他类别以此类推,分配好的ID 将会与其对应的位置等信息结合到一起形成最终输出的海珍品轨迹。

1.3.3 多类别海珍品计数策略

若使用上述多类别海珍品新轨迹生成策略对海珍品轨迹进行初始化,原理上每类的最新ID 号(当前最大值)即是该类别海珍品的数量,因为最新ID 号为此类的轨迹数。然而,经分析发现,受目标检测器精度的影响,检测结果会出现虚假的目标,进而产生虚假的轨迹,造成数量的虚报,这会对最终的计数产生重要的影响。

为了解决此问题,本文引入信任机制,即将跟踪轨迹分成信任轨迹和不信任轨迹,其中信任轨迹为连续多帧均能很好匹配的轨迹,而不信任轨迹主要包括跟丢的轨迹、新轨迹等。为统计虚假轨迹的数量,在新轨迹生成之初先将其标记为新轨迹,并加入不信任轨迹中待进一步考察,若下一帧能很好与高分目标匹配成功,则将其加入信任轨迹;
否则,对应类别的虚假轨迹数加一,将对应轨迹删除。在匹配过程中优先对信任轨迹进行匹配,不信任轨迹最后匹配。为此,多类别海珍品的数量采用式(1)计算。

1.3.4 多类别海珍品计数算法阐述

在上述各策略的基础上,可得到多类别海珍品跟踪计数算法,算法的输入是海珍品视频(图像序列)V,目标检测器为Det,跟踪分数阈值。算法的输出是海珍品各类别的数量N c以及对应个体的轨迹T。

算法将当前帧的目标检测结果分为高分目标框集合Dh和低分目标框集合Dl,并且利用卡尔曼滤波器预测上时刻轨迹的预测框集合Tc,为后续的多次关联奠定基础。

1.4 评价指标设计

平均计数精度(average counting precision,ACP)、平均绝对误差(mean absolute error,MAE)、均方根误差(root mean square error,RMSE)等指标通常被用来评价基于多目标跟踪的计数方法的性能。这些指标更适用于基于过线模式的计数方法,而并不适用于基于ID 号模式的计数方法,因为基于ID 号方法的结果受目标的误检、ID 切换和漏检影响较为严重。针对误检这一指标,一种情况是将某一类误检为另一类,但由于本文研究的3 种海珍品之间差异较大,这种情况很少出现。另一种情况是原本此处没有海珍品,但算法错误检测了几帧,此时便为其分配了一个ID,造成海珍品数量统计较真实情况增多,但本文通过改进算法解决了这个问题,因此没有将其考虑进评价指标。而ID 切换和漏检是十分常见的,ID 切换会造成海珍品统计数量较真实值偏大的结果,而漏检又会使得海珍品统计数量较真实值偏小,如果出现这样的情况按照传统的指标去评价就会出现测试结果与真实值结果相近,但真实情况相差较大的问题。为此,本文提出一套考虑ID 切换和漏检的计数平均指标,分别为改进平均计数精度(modified average counting precision,MACP)、改进平均绝对误差(modified mean absolute error,MMAE)、改进均方根误差(modified root mean square error,MRMSE),具体计算见式(2)~(4)。这套指标能较客观地评价基于ID 号模式的计数方法的性能。

式中S表示算法统计的目标数量,G表示真实数量,NIDs表示跟踪ID 切换的次数,NL表示漏检海珍品的数量,NV表示海珍品视频的个数。

2.1 多类别海珍品计数方法有效性验证

为了验证本文方法的有效性和可用性,使用测试视频(其中的图像未用来训练)中的一个片段对其进行评价,并从该视频中随机挑选一帧用来展示,被挑选出的视频帧如图4 所示。图中holothurian、echinus、scallop分别表示海参、海胆和扇贝,其对应的检测框颜色为红色、黄色和蓝色。

图4 测试视频4 的前107 帧统计结果Fig.4 Statistical results of the first 107 frames of test video 4

其数量为5、12 和6 个,这些数量为被测海珍品视频前107 帧各类别的总和,统计结果显示在该帧的正上方。海珍品的数量是根据其真实跟踪轨迹ID 得到的,真实跟踪轨迹ID 为当前类别海珍品最大ID 值减去该类别海珍品虚假轨迹数量得到的。结果表明,本文基于视频多目标跟踪的多类别海珍品计数方法能够多类别、快速准确统计水下海珍品视频中的海珍品数量。

2.2 多类别海珍品计数方法对比试验

为了充分验证本文算法的性能,以4 个不同于训练集的海珍品视频中的海珍品为试验数据,以目标检测领域应用广泛、性能良好的YOLOv5[35]和YOLOv7 检测模型为检测器,分别结合DeepSORT[36]和BYTE 算法进行海珍品的数量统计。其中,测试视频的真实海珍品数量由5 名研究人员进行统计。首先记录视频的第一帧出现的海珍品数量,然后,逐帧播放并记录新出现的海珍品数量,播放结束后每名人员分别得到各类别的数量,最后将5 名研究人员得到海珍品数量进行取均值,用作试验的真实数值,视频1-4 中海珍品的统计结果分别为66、85、59 和61。

表1 为各算法性能对比结果。从表1 中可以看出,DeepSORT 类的计数算法得到的结果普遍虚高,其原因是在跟踪过程中ID 切换次数过多,比如YOLOv5+DeepSORT 在视频1 中产生了7 次ID 切换。而YOLOv5+BYTE 和YOLOv7+BYTE 的计数算法ID 切换次数较少,因此得到的海珍品数量统计结果比较接近真实值,但是其漏检数量偏高,偏高的原因是跟踪过程中轨迹丢失较多引起的,将这项指标考虑进去便容易得出其结果是偏低的。本文方法无论是ID 切换的数量还是漏检的数量都是相对较低的,得出的结果也是比较可靠的并且还实现了多类别同时计数的功能。

表1 不同海珍品计数方法的数量统计结果和定量评价Table 1 Quantitative statistical results and quantitative evaluation of different counting methods for sea foods

由于与本文对比的算法并没有实现多类别ID 分配功能,得出的指标均是按照总数计算得来的,其中表现较差的是YOLOv5、YOLOv7+DeepSORT 算法,最差的是YOLOv5+DeepSORT,其MACP、MMAE、MRMSE、和帧率(FR)均最低,分别为62.11%、25.25、29.41 和25 帧/s,证明DeepSORT 算法不适用于根据ID 统计海珍品数量这种方法;
BYTE算法结合YOLOv5、YOLOv7目标检测算法表现效果更好,较好的是YOLOv7+BYTE,其MACP、MMAE、MRMSE、和FR 分别为86.39%、9.00、9.08和33 帧/s,但其计数精度不能满足实际工作需要,不适合直接应用到实际工作中,仍需加以改进;
本文的YOLOv7+BYTEFit 表现最好,其MACP、MMAE、MRMSE、和FR 分别为91.62%、5.75、6.38 和32 帧/s,均优于以上各算法,尤其在MACP和FR 指标上比YOLOv5+Deep-SORT 高了29.51 个百分点和8 帧/s,在MMAE、MRMSE指标上分别降低19.50 和12.08。

2.3 实际应用

为了将本文所提方法更好地应用到实际的水产养殖生产中,基于所提方法实现了简单的海珍品计数系统,如图5 所示。

图5 计数系统软件界面图Fig.5 Software interface diagram of Counting system

软件界面包括海珍品计数检测信息的实时显示、跟踪检测模型的选择、运行参数的设置以及运行控制和显示运行信息等功能。计数系统工作时在计数检测实时显示区显示检测到的海珍品画面,在其顶部显示类别数量等信息;
数据模型准备区用来选择跟踪检测模型和待检测视频;
参数设置区可调整检测海珍品的IoU 和置信度的阈值;
运行控制区用来控制计数系统需要执行的内容以及运行结果的处理等功能;
信息交互区用来显示计数系统运行的阶段和已完成检测的海珍品信息等内容。本文软件已在大连鑫玉龙海洋生物种业科技股份有限公司海参库存评估中得到实际应用。

本文以水下海珍品视频为研究对象,针对统计海珍品数量的问题,提出一种基于视频多目标跟踪的多类别海珍品计数方法。主要工作为设计改进BYTE 目标跟踪方法,以及将该方法封装成系统并应用到实际生产工作中。试验结果得到如下结论:

1)测试结果显示本文方法的改进平均计数精度为91.62%、改进平均绝对误差为5.75、改进均方根误差为6.38、帧率为32 帧/s,其计数精度和计数效率满足实际的需求可有效解决传统海珍品数量统计费时费力、不精准以及安全性不高等问题。

2)本文方法与YOLOv5+DeepSORT、YOLOv5+BYTE、YOLOv7+DeepSORT 以及YOLOv7+BYTE 等算法进行对比,所提方法在改进平均计数精度、改进平均绝对误差和改进均方根误差这3 个指标上优于其他算法,尤其在改进平均计数精度和帧率指标比YOLOv5+DeepSORT 高了29.51 个百分点和8 帧/s,在改进平均绝对误差、改进均方根误差指标上分别降低19.50 和12.08,是实现多类别海珍品数量快速准确统计的有效方法。

需要指出的是,本方法对于不同水下环境的海珍品计数存在误检的情况,虽然使用相同环境的水下数据集训练检测模型可以很好地解决由于不同环境导致的误检等问题,但是水下环境因受光照等因素影响,变化较大,若每次采集海珍品视频都需先使用相同环境的数据集训练检测模型后,再进行统计计数,这将耗费巨大的人力物力。此外,本方法还会出现ID 切换和漏检的问题,这两个问题也是影响计数精度的关键所在。因此未来还需就水下环境与ID 切换和漏检这两方面做进一步的改进与探索。

猜你喜欢 类别计数轨迹 古人计数数学小灵通(1-2年级)(2021年11期)2021-12-02递归计数的六种方式中等数学(2020年8期)2020-11-26轨迹读友·少年文学(清雅版)(2020年4期)2020-08-24轨迹读友·少年文学(清雅版)(2020年3期)2020-07-24古代的计数方法小学生学习指导(低年级)(2020年4期)2020-06-02轨迹现代装饰(2018年5期)2018-05-26这样“计数”不恼人数学小灵通·3-4年级(2017年11期)2017-11-29进化的轨迹(一)——进化,无尽的适应中国三峡(2017年2期)2017-06-09服务类别新校长(2016年8期)2016-01-10论类别股东会商事法论集(2014年1期)2014-06-27

推荐访问:计数 跟踪 融合