1. 引言
斑马鱼是一种典型的脊椎动物模型,它与人类的基因同源性高达87%,被广泛应用在生物医学和药物研发等领域中 [1] [2] [3] 。在生物实验中,对斑马鱼的行为分析可以为生物医学,药物研发,环境评估等研究提供有价值的信息,有助于深入了解疾病的发生机制 [4] ,药物的毒理及作用机制 [5] 。准确的追踪记录到个体的运动轨迹是分析动物行为的前提 [6] 。在过去,这些运动信息通常由人工标记和观察得出,这种方法大大降低了实验效率,也很难保证分析结果的准确性。因此,利用算法对视频中的实验对象进行自动化目标追踪是当前动物行为分析的研究热点。
尽管已经有一些算法在针对成年斑马鱼的追踪上取得了较好的效果,但是针对幼年斑马鱼的追踪仍然是一个难题。由于斑马鱼幼鱼体型更小,外观相似度更高,目标特征不明显 [7] ,增加了目标检测的难度。其次,斑马鱼幼鱼常常被用于高通量的生物实验,多个目标交叉和遮挡的情况频繁发生,这使得追踪过程中容易出现目标身份丢失或者身份错误匹配的情况 [8] 。尤其是它的运动状态不稳定,经常表现出突发的高速运动,这不仅会对干扰个体识别造成干扰,而且容易导致多个目标间的轨迹连接混乱,影响跟踪精度,降低实验效率。
早期的斑马鱼跟踪算法主要通过传统的图像处理方法实现。IdTracker [9] 利用斑马鱼的背部纹理提取个体特征指纹,通过这些指纹来识别并标记个体身份,然后连接被标记的个体获取轨迹。但是幼鱼没有明显的背部纹理,而且外观相似度很高,这种基于表观特征的算法很难准确追踪到幼鱼的身份。Wang [10] 等人采用高斯混合模型分割背景中的幼鱼,通过匈牙利算法来分配幼鱼身份信息。这种传统算法通常对图像噪声比较敏感,容易受到水中的杂质、气泡,以及容器边缘的阴影和光照强度的影响,这对实验条件和视频拍摄条件有很严格的要求,增加了实验难度。
随着图像处理技术的发展,卷积神经网络技术越来越多的被用于目标追踪算法中。Sun [11] 等人使用两个卷积神经网络,实现对多只斑马鱼的检测与识别,通过轨迹段匹配完成数据关联。与传统算法相比,该模型在跟踪精度和运行速度上都达到了很好的效果,但是由于幼鱼的运动模式一致性较低,通过对轨迹段分类关联其身份,反而容易造成轨迹混乱。Sayali V. Gore [12] 等人以幼鱼的眼睛和蛋黄为特征进行标记,训练了一个针对斑马鱼幼鱼的位置跟踪器。虽然该算法实现了对幼鱼的运动位置追踪,但是针对特征点的标记大大增加了数据处理的工作量,而且该算法没有个体身份识别模块,只适用于单目标追踪。Yang [13] 等人利用Faster-rcnn检测斑马鱼的位置,结合卡尔曼滤波器和匈牙利算法识别目标身份并追踪运动轨迹。M. D. O. Barreiros [14] 等人以成年斑马鱼的鱼头为特征,利用YOLOv2完成检测,并在卡尔曼滤波器的运动模型中加入运动角度作为观测点实现追踪。但是以上两种方法都只适用于追踪成年斑马鱼。另外,由于Faster-rcnn的训练速度和运行速度都较慢。幼鱼出现“爆发”运动时运动速度和方向的变化都很大,以角度变化进行幼鱼的身份匹配可能难以达到理想的效果。
由于斑马鱼幼鱼外观相似、目标尺寸微小、运动模式不稳定,导致针对斑马鱼幼鱼的多目标跟踪容易因为身份识别错误而造成运动轨迹交叉和碎片化。本文以YOLOv5 [15] 和DeepSORT [16] 为基础的目标检测和追踪模型,提出了一种针对斑马鱼幼鱼的小目标群体追踪算法。在实际的视频跟踪中发现,检测网络的漏检和误检是影响跟踪的准确率的一个重要因素。因此,本文针对YOLOv5模型进行了改进,形成了针对斑马鱼幼鱼的小目标群体追踪算法YOLOv5m-ss。首先,针对斑马鱼幼鱼目标尺寸小的特点,增加了一个微小目标检测层,并且去除了网络中的大、中目标检测层。另外,在检测网络中融合了双通道注意力机制,从空间和通道两个层面提升网络对小目标的特征提取能力,同时增强网络对背景噪声的抗干扰能力。另外,由于目前没有公开的斑马鱼幼鱼数据集,并且已提出的数据集 [12] 大都基于局部特征进行检测和追踪,容易使网络混淆斑马鱼幼鱼和杂质、气泡、光影的特征,造成检测精度的降低。本文以斑马鱼幼鱼整体为对象分别标注了斑马鱼幼鱼检测数据集和追踪数据集,该数据集有利于网络充分提取和利用目标的局部和整体特征,从而提升检测和追踪精度。实验结果表明改进后的YOLOv5m算法对小目标的检测能力显著提升,最终的目标跟踪算法具有较高的跟踪精度、较快的跟踪速度、较强的泛化能力。
2. 斑马鱼幼鱼群体追踪方法
本文提出的跟踪算法主要分为幼鱼的检测和跟踪两个部分。跟踪算法流程如图1所示。首先用标记好的斑马鱼幼鱼数据集训练YOLOv5目标检测和外观匹配模型。在检测阶段,YOLOv5会在视频的每一帧中检测、定位斑马鱼幼鱼的位置,并输出幼鱼的位置信息。在跟踪阶段,卡尔曼滤波器接收并预测幼鱼的位置信息,匈牙利算法匹配当前帧与上一帧的目标的身份。接下来,结合外观匹配和运动匹配模型计算每个身份匹配对的关联分数,关联分数用于判断身份匹配的可靠性。最后,根据身份匹配的关联度连接并修正轨迹。检测是追踪的基础和前提。在本文中,主要从检测模型的网络结构、融合方式两方面提升了算法的精确性和泛化能力。另外在数据预处理方面,选择斑马鱼幼鱼整体作为特征提取对象重新制作检测和追踪数据集,丰富了特征维度,提高了追踪系统的目标检测和身份识别能力。
2.1. 基于改进YOLOv5的检测算法
2.1.1. 基于目标检测层的改进
YOLOv5m的网络结构如图,为了增加网络的灵活度,借鉴了特征金字塔网络进行特征提取和多尺度特征融合,最终输出三个尺度的特征图作为预测层的输入,根据每个预测层的尺度聚类了相应的多尺度锚框,模型针对不同尺度的锚框预测类别概率,边界框位置和目标置信度等信息。输入图像在网络内部的尺度变换过程如图所示,输入图像会被缩放到640 * 640 * 3的尺寸,经过一系列卷积、池化操作输出大、中、小三种尺度的特征图:20 * 20 * 1024、40 * 40 * 512、80 * 80 * 256。这种结构虽然提高了算法的全面性和灵活度,但是不适合斑马鱼幼鱼这类小目标的检测。斑马鱼幼鱼的标记框边长在10~40之间,所占像素比例远小于0.12%,属于小目标。在本文中,为了提高对小目标的特征提取能力、避免大尺度预测的干扰,去掉了大、中尺度预测层的特征提取和融合结构,另外添加了一个微小目标检测层,同时在小目标检测层中融合了微小检测层的特征尺度。
Figure 1. Flowchart of the zebrafish larvae multi-object tracking system
图1. 斑马鱼幼鱼多目标追踪系统流程图
如图2所示,对第17层CBH输出的特征图上采样,将通道维数降至128。将128维的特征图与第三层CSP输出的特征图拼接。对拼接的特征图采用CSP模块增强特征提取能力,最终形成一个新的微小检测层(160 × 160 × 128)。小目标检测层融合了新检测层的特征提取通道,将较细的浅层特征与较深的语义特征相结合,可增强对小目标的检测敏感性。
2.1.2. 融合双通道注意力机制
由于斑马鱼幼鱼尺寸微小,YOLOv5提取特征的过程中容易被大面积的背景区域干扰,如背景中的杂质、气泡、光影等噪声容易被误检为幼鱼。为了提升YOLOv5网络对噪声的抗干扰能力,引入了双通道注意力机制CBAM。CBAM是一种轻量化的注意力模块,它能在通道和空间两个方面提升网络对目标区域的关注度,减少无关区域的干扰。
网络的每一层输出的都是多通道的特征图,每个通道可以看作一个特征检测器。通道特征聚焦的是图像中有效信息的类别。为了更高效的计算通道注意力特征,需要压缩特征图的空间维度。如图3所示,该模块对输入的特征图 同时进行平均池化和最大池化,分别学习目标的置信度特征
和判别性特征
。
和
被送入多层感知机(Multilayer Perceptron, MLP)中,MLP输出的信息经过叠加,最后通过sigmoid激活函数输出通道注意力特征图
。通道注意力的具体计算流程如公式(1)所示:
(1)
其中,
表示Sigmoid激活函数,MLP表示参数共享的多层感知机,Avgpool表示平均池化,MaxPool表示最大池化,
为通道注意力机制输出的特征图。
Figure 2. Flowchart of the improved YOLOv5m network structure
图2. 改进后的YOLOv5m网络结构流程图
Figure 3. Flowchart of channel attention
图3. 通道注意力流程图
由于
的维度和通道已经发生改变,所以还需要对其进行处理才能进行空间注意力的计算。该过程如公式(2)所示:
(2)
其中,
表示元素级别的相乘。注意力特征图
将通过广播机制进行维度变换,与输入特征图
匹配,最终生成的
为空间注意力的输入。
不同于通道注意力,空间注意力聚焦于特征图上的有效信息的具体位置。网络有时会将注意力聚焦在与目标无关的背景、杂质、光影等区域。如图4所示,空间注意力首先对
按顺序进行平均池化和最大池化,然后将产生的特征图拼接。最后对拼接的特征进行卷积,再通过激活函数输出空间注意力特征图
。其具体计算过程如公式(3)所示:
(3)
其中,Conv表示卷积操作,Concat为拼接操作。
最终
的经过变换输出特征图
,保证主干网络中的特征传播正常进行,该过程如公式(4)所示:
(4)
Figure 4. Flowchart of spatial attention
图4. 空间注意力流程图
综上所述,整个CBAM的处理流程如图5所示,对于网络主干生成的特征图
,CBAM首先生成一维的通道注意力特征图
,用于聚焦通道中的类别信息。然后生成二维的空间注意力特征图
,用于聚焦图像中与目标相关的区域。
与
还需要进行自适应的特征修正。结合通道与空间两个维度的权重修正,有利于提升网络特征提取的有效性,从而加强对斑马鱼幼鱼的感知能力,抑制背景中杂质、光影等噪声的干扰。
Figure 5. The overall flow diagram of the attention mechanism of CBAM
图5. CBAM注意力机制整体流程图
2.2. 斑马鱼幼鱼追踪算法
为了准确获得幼鱼的运动轨迹,用卡尔曼滤波器预测和更新幼鱼的运动状态。它将目标的运动视为一个线性模型,它通过八个状态向量
来描述目标的运动状态。其中,x,y表示由目标检测算法输入的中心点坐标,s和r分别描述检测框的宽高比和高度。卡尔曼滤波器的主要步骤包括预测和更新两步:(1) 利用上一帧的观测数据估计当前帧的运动状态;(2) 预测下一帧的运动状态得到先验估计值。
由于目标在运动时具有不确定性,这就使得预测状态与真实值间可能存在一定的误差。为了修正这种误差,卡尔曼滤波器会通过测量值来更正预测阶段的先验估计值,得到后验估计值。同时,用协方差矩阵表示预测值和测量值之间的不确定性,并不断对状态估计方程进行修正,提高状态预测的准确性和可靠性。
匈牙利算法可将当前帧与上一帧的跟踪目标相关联。然后,通过计算目标间的运动状态相似性来匹配目标对。如果特征相似性高于一定阈值,则两个目标被关联,即被分配同一个身份。将被关联的坐标连接即可得到该幼鱼的运动轨迹。该阶段除了运动匹配之外,还结合了卷积神经网络学习目标的外观特征进行身份重识别。该网络基于余弦距离度量外观相似性,余弦距离越小,两目标图像越相似。结合运动和外观特征进行身份匹配,能够提高轨迹连接的正确率和完整性。该网络的结构如图6所示。
Figure 6. Structure of the re-identification network
图6. 重识别网络结构图
3. 模型实验与结果分析
3.1. 实验设置
本文的算法是在Windows环境下编写的,通过 Python 3.9和Pytorch 1.10.2深度学习框架实现。训练和测试过程在Intel i7 11800H CPU,16GBmemory和NVIDIA GeForce GTX 3060TI显卡的计算机上进行。
在这个工作中,我们对整个幼鱼区域标记形成数据集。检测数据集通过软件标注形成,跟踪数据集需要将标注的幼鱼单独分离,并根据幼鱼的身份整理得到。我们一共采集了2701张图片用于训练目标检测模型,以及来自三个斑马鱼幼鱼的906张图片用于训练追踪算法中的表观模型。幼鱼数据集的具体信息如表1所示。
另外,为了验证算法的泛化能力和鲁棒性,除了上述数据外,我们单独录制了5个斑马鱼幼的运动视频,并人工标注了地面真相,用于追踪算法的评估,地面真相数据集的构成见表2。
3.2. 算法评估指标
准确率与召回率评估目标检测模型的通用指标。准确率主要评估模型对物体检测结果的准确度,召回率主要评估模型正确检测出正样本的能力。P和R的数学表达式如下:
(5)
Table 1. Composition of the zebrafish larvae dataset
表1. 斑马鱼幼鱼数据集构成
Table 2. Composition of the ground truth dataset
表2. 地面真相数据集构成
(6)
其中,P为准确率,R为召回率,
表示目标被正确检测出来的数量;
表示负样本被检测为正样本的数量,即误检;
表示目标未被检出的数量,即漏检。mAP@0.5是评估目标检测模型最常用的指标,它表示IoU为0.5时,算法检测不同类别目标的平均精度的平均值。
多目标跟踪precision (MOTP)和多目标跟踪accuracy (MOTA)是评估多目标跟踪算法的关键性指标。MOTP评估跟踪算法在整个跟踪序列中的位置估计精度。它计算目标每个位置估计与其对应的真实值之间的平均欧几里得距离。
(7)
(8)
其中,N代表总匹配目标数量,T为总时间帧数,
表示第i个目标在第t帧的位置估计误差。
MOTP衡量跟踪算法在整个时间序列中的误差。它综合了假阳性,假阴性和漏检的数量,以及轨迹错误匹配和断裂的情况。
表示未检测到的真实目标数量,
表示错误检测到的虚假目标数量,
表示轨迹的身份切换的数量,即同一个目标在不同时间被错误地标记为不同的ID。GT代表真实目标的总数量。
3.3. 算法评估
为模型结构改变的对检测效果的影响,在检测数据集上分别对三种模型进行训练。实验结果如表3所示,在小样本训练的前提下,与原检测网络YPOLOv5相比,改进后的模型YOLOv5m-ss在该数据集上的表现明显提升。其中P提升了4.9%,R提升了2.6%,mAP@0.5提升了9.4%。这说明网络结构的修改,和CBAM注意力机制的加入,虽然牺牲了一部分多尺度特征提取及融合的优势,但是能够有效提升对小目标的检测能力,而简化了模型结构,提升了训练速度。
Table 3. Comparison of YOLOv5 detection results before and after improvement
表3. 改进前后的YOLOv5检测结果对比
算法改进前后的检测效果对比如图7所示。其中三幅图都是对同一个视频的同一帧的检测结果展示。图7(a)~(c)分别为原始YOLOv5网络、改进网络结构后的YOLOv5,以及改进网络结构并且融合CBAM注意力机制的检测结果。图中的检测框代表网络认为该位置存在斑马鱼幼鱼,检测框上方的数值表示该目标被检测为幼鱼的置信度,置信度越高说明检测精度越好,同时也有利于在追踪中的身份匹配。图7(b)中的红框标注了原始网络受到高光、阴影等噪声的影响出现了错检。图7(c)中的红框标注了网络将背景杂质判断为幼鱼的错检。显然,原始网络受背景噪声影响较大,对网络结构进行改进后虽然仍然会受到背景杂质的影响,但是每条幼鱼的检测置信度明显升高,这说明网络对小目标的检测能力有所提升。融合注意力机制后,网络在提升抗干扰能力的同时仍然保持了较高的检测精度。
Figure 7. Comparison of detection effect before and after YOLOv5m improvement
图7. YOLOv5m改进前后检测效果对比图
如图8所示为算法改进前后对同一幅图像检测的特征图对比。图8(a)为待检测图片,其中斑马鱼幼鱼由红框标注,背景中的杂质由橙色框标注,培养皿右下角的高光噪声由紫色框标注。图8(b)为改进网络结构的模型检测该图像时输出的特征图,图中的红框标注的是杂质和高光造成的错检现象。图8(c)为在改进网络结构的基础上融合CBAM注意力机制的模型输出的特征图,图中红框标注的是模型关注度较高区域,与待检图片中的斑马鱼幼鱼位置相对应。特征图的对比表明,添加注意力机制后模型对背景中噪声的抗干扰能力明显提升,并且对斑马鱼幼鱼的关注度也明显增加。
Figure 8. Comparison of detection feature maps before and after YOLOv5m improvement
图8. YOLOv5m改进前后的检测特征图对比
算法整体在地面真相数据集上的追踪效果如图9、表4所示。在五个地面真相数据集上,改进后的跟踪系统的平均MOTP评分为92.84,最高达到了98.0;平均MOTA评分是82.28,最高达到了86.1。与原来的跟踪算法相比,改进后的算法MOTP提升了10.66%,MOTA提高了7.6%。
Figure 9. Results of zebrafish larval tracking
图9. 斑马鱼幼鱼群体追踪结果
Table 4. Evaluation of a group tracking system for zebrafish larvae
表4. 斑马鱼幼鱼群体追踪系统评估
4. 结论
本文介绍了一种改进的斑马鱼幼鱼多目标跟踪算法,针对斑马鱼幼鱼微小且易丢失的特点进行了优化。首先,对检测网络进行了结构改进,增加了针对微小目标的通路,同时也去除了网络中的大、中目标检测尺度,形成了新的网络结构。其次,为提高模型对斑马鱼幼鱼的敏感度,加入了CBAM注意力机制从通道和空间两个维度抑制背景噪声。由于缺乏公开数据集,本文构建了新的目标检测和追踪数据集,有助于提升模型的定位和追踪能力。实验证明,改进后的算法在小目标检测和追踪方面表现显著,在目标检测的评估中,P提升了4.9%,R提升了2.6%,mAP@0.5提升了9.5%;在目标追踪的评估中MOTP最高达到了98.0。该方法在提升精度的同时保持了模型运行速度,降低了误检率和匹配错误率,为斑马鱼幼鱼相关研究提供了技术支持,包括生物医学和药物研发等领域。