基于YOLOv5和重识别的行人多目标跟踪方法

行人重识别(Personre-identification,ReID)被认为是图像检索的子问题[2],可以依据行人的外观特征实现跨摄像头无重叠视域下的目标行人的检索。行人重识别中的特征提取和度量学习可以为目标跟踪提供强有力的支撑。现在许多研究将行人重识别技术与检测/跟踪技术相结合,并广泛应用于智能安防系统。

综上所述,行人重识别技术提取出的有效特征为目标跟踪任务提供了强有力的支撑,且与目标检测算法的有效结合使目标跟踪的速度也有了很大提升,满足实时性的要求。因此本文提出一种基于YOLOv5与重识别的行人多目标跟踪方法,同时对检测算法与特征提取网络部分进行改进。

为了使多目标跟踪算法具有更有鉴别力的目标特征,本文采用ResNeXt50网络作为主干网络。ResNeXt网络[9]的提出是由于传统的提高模型准确率方法都是选择加深网络,这样会导致模型越来越复杂,超参数的数量随之增加,加大计算成本。因此Xie等人[10]设计用一种平行堆叠相同拓扑结构的blocks替换了ResNet[10]中的block,并且对ResNet进行了基数扩充。实验表明:在相同的模型大小和计算复杂度的条件下ResNeXt网络相比较原残差网络有更高的精度。因此为了获得更优的外观模型,本文采用ResNeXt50作为新的特征提取网络。

本文在行人再识别算法的公开数据集Market1501上进行实验。为了防止模型过拟合,基于Pytorch深度框架搭建了生成式对抗网络[11](Generativeadversarialnetwork,GAN)模型,参见文献[12]中的相同的参数训练网络。使用GAN网络对Market1501数据集的训练集进行了扩充,由原来的12936张图片扩充至77616张图片,使用新的训练集对网络进行训练。如图1所示,原始图像经过GAN网络之后生成了其他5个相机风格的伪图像。

图1生成图示例

Fig.1Generateimageexamples

将GAN网络扩增后的Market1501数据集送入ResNeXt50中进行特征提取,实验结果如表1所示。

图2CBAM注意力机制

Fig.2Convolutionalblockattention

2.3.1通道注意力机制

通道注意力模块对每个输入通道的权重进行重新标定,使得包含目标对象的关键区域特征通道对最终卷积特征有更大的贡献[14]。核心思想就是增大有效通道权重,减少无效通道权重。具体实现如式(1)所示:

2.3.2空间注意力机制

通道注意力机制告诉网络需要注意的部分,空间注意力机制给出关键特征的位置。具体实现如公式(2)所示:

本文设计的行人重识别特征提取网络结构如图3所示。首先是对输入的图像集进行预处理,使用GAN网络进行扩增。然后将处理好的图像送入主干网络ResNeXt中进行特征提取,同时在不同位置加入注意力机制,得到有鉴别力的特征,对行人进行分类识别。

图3特征提取网络结构

Fig.3Featureextractionnetworkstructure

本文采用GAN技术扩充大型行人重识别公开数据集Market1501,重构新的数据集,以ResNeXt50为主干网络。分析对比之后,将注意力模块添加在ResNeXt50网络的第一个卷积层以及Layer1的残差块之后(图4),并使用交叉熵损失训练网络,损失函数如式(3)所示:

图4CBAM模块嵌入到ResNeXt

Fig.4CBAMmoduleembeddedtoResNeXt

图5改进前算法与改进后算法跟踪过程前后帧目标ID对比

Fig.5ContrastofthetargetIDbeforeandafterframeinthetrackingprocessusingtheprealgorithmandimprovedalgorithm

本文采用基于检测的多目标跟踪范式,因此检测作为第一步十分关键。目标检测旨在判断给定的视频帧中除背景信息以外的目标的尺寸和位置。本文研究的目标对象是行人,因此需要检测出行人的位置并用矩形框进行标注。2020年,GlennJocher发布了YOLOv5算法,该目标检测模型运行准确度较高,且运行速度快。YOLOv5基于PyTorch实现,可以有效地应用于嵌入式设备和移动端。根据模型的深度以及卷积核的个数,模型共有4个版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,模型体积越大,相应的检测精度越高,但是复杂的模型也导致检测速度变慢。

针对当前行人检测方法精度和实时性不能同时兼顾的问题,本文采用以YOLOv5s[15]模型为基础的目标检测算法。YOLOv5s模型主要由4部分组成。输入端首先对原始图像进行预处理,预处理操作包括Mosaic数据增强、自适应图像缩放、自适应锚框计算等。Backbone部分由Focus结构、CBL结构、CSP结构等模块组成,从图像中提取不同细粒度特征的卷积神经网络。Neck网络部分主要由特征金字塔(FeaturePyramidNetworks,FPN)和路径聚合网络(PathAggregationNetworks,PAN)组成,FPN在网络中自上而下传递语义信息,PAN自下而上传递位置信息。Neck部分借鉴了CSP结构,加强了特征融合能力。Head部分对处理后的图像特征进行3个尺寸上的预测,生成边界框并预测目标的类别[16]。

由于在实际场景中人们处于摄像机网络中的不同位置,因此映射到不同帧图像中的行人尺寸不断发生变化。由远及近,行人的尺寸在整幅图中比例不一,尤其是包含很多行人目标的密集图像。在一帧图像中,距离当前摄像头较远的行人在整个图像中可能仅占几个像素的大小,在检测过程中提取的特征信息较少、噪声多,极大地影响了检测结果。原始的YOLOv5s模型有3个检测层,分别在8,16,32倍下采样处对3个尺度的特征图进行预测。输入图像的尺寸为640×640,因此经过3种下采样后的特征图尺寸分别为80×80,40×40,20×20,对应检测8×8,16×16,32×32以上的目标。但是该模型对远距离行人目标的检测仍然会出现检测不到的情况,因此,针对这一现象,本文考虑再添加一个检测层以增加模型对尺度的包容性。改进后的网络结构如图6所示。在原来的Neck网络中两次上采样之后再增加一个上采样操作,得到大小为160×160的特征图并将其与主干网络的第二层特征图进行融合(图7),进而获取更大的特征图来进行小目标检测;然后在检测层将小目标检测层添加进去,最终使用4层检测层执行检测任务。在MOT16数据集上对改进算法进行实验验证,结果如表2所示。

图6改进后的网络结构

Fig.6Improvednetworkstructure

图7特征图可视化

Fig.7Featuremapvisualization

由表2可知,本文在YOLOv5s基础算法中添加上采样操作,构成小目标检测层。改进模型的各项指标相较于YOLOv5s均有明显提高。

图8CA模块

Fig.8CAmodule

坐标注意力机制首先对输入沿水平方向和垂直方向对通道进行编码,沿两个方向聚合特征获得一对具有方向感知能力的特征图。将两个方向感知特征图拼接在一起,再送入卷积核为1×1的卷积模块进行降维操作,然后经过批量归一化处理送入Sigmoid激活函数得到中间特征图。接着沿空间维度将中间特征图分成沿水平方向和垂直方向的独立的张量。最后利用另外两个1×1卷积变换函数对两个张量进行处理得到通道数相同的输出,分别展开并用作注意力权重。

本文随机选取在MOT16训练集中的图像验证改进模型的效果,原始模型与改进模型的检测效果对比如图9所示。

图9可视化结果对比

Fig.9Visualresultscomparison

不难看出,原始的网络检测有很多漏检的情况(为了更加直观,我们使用绿色框进行了标注),发现主要有两个问题:遮挡和远距离导致的目标比例小的问题。因此,本文对原始网络进行改进,从图9可以看出,改进后的模型检测效果更好,尤其是检测到了原来未检测出的远距离行人目标,验证了改进算法的正确性,为后续多目标跟踪任务奠定了基础。

本文采用的多目标跟踪算法是基于检测的跟踪范式,且为了满足实时性的要求,对目标行人进行在线跟踪。多目标跟踪任务基本是由目标检测、运动预测、外观模型、数据关联模块组成。上文已经获得了精确的目标检测框以及外观模型,然后利用卡尔曼滤波和匈牙利算法完成关联和匹配。本文整体网络架构如图10所示。

图10整体网络构架

Fig.10Overallnetworkarchitecture

本文提取大型目标检测公开数据集COCO中的行人类数据子集作为训练集,用MOT16的训练集[21]作为验证集验证算法性能。实验环境基于Ubuntu16.04操作系统,NvidiaGeForceRTX2080Ti显卡,运行内存为64G,采用Pytorch1.6.0深度学习框架,在Python3.7的服务器下实现。选择多目标跟踪公开数据MOT16测试集测试本文算法,并将测试结果提交MOTChallenge官网进行评估,与其他先进算法进行对比,并分析模型性能。

为了使模型的评价更加客观准确,并与其他算法进行合理比较,本文采用多目标跟踪领域通用的评估指标进行评估:多目标跟踪准确度(Multi-objectTrackingAccuracy,MOTA)、多目标跟踪精度(Multi-objectTrackingPrecision,MOTP)、多目标跟踪器ID维持能力(IdentificationF1Score,IDF1)、行人ID切换次数(IDSwitch,IDs)、大多数跟踪目标百分比(MostlyTracked,MT)、大多数丢失目标百分比(MostlyLost,ML)。部分评价指标的公式如公式(4)和(5)所示:

综合分析指标可知,本文算法与部分先进算法相比有相对优势,但是与JDE算法相比,在实时性方面优势并不突出。JDE算法属于一阶段跟踪算法,实时性相对较高,但ID切换相对频繁,这是在大量密集行人场景下,由于目标相互遮挡导致的。而本文着重考虑遮挡情况下跟踪效果差的问题,同时考虑到数据集中行人密集且动态变化,增强了对小目标对象的检测能力,因此改进算法在MOTA、MOTP等指标上都有所提升。MOTA相较于JDE算法提升了1.8%,MOTP相较于SORT算法提升了1.2%,IDF1相较于DeepSort算法提升了3.6%,MT提升了2.5%,ID切换频次下降。综上,可以验证本文算法的良好性能,且在实际跟踪场景中具有一定的优势。多目标跟踪效果如图11所示。

图11多目标跟踪效果。(a)MOT16-03;(b)MOT16-09。

Fig.11Multi-targettrackingeffect.(a)MOT16-03;(b)MOT16-09.

本文针对行人多目标跟踪过程中因为遮挡导致的行人ID频繁切换,跟踪效果差的问题,提出一种改进算法。该算法选用TBD跟踪范式,设计新的特征提取网络,并且通过引入卷积注意力机制,提升了模型对目标对象的表征能力。同时改进了YOLOv5目标检测算法,考虑加入小目标检测层和坐标注意力机制使得检测更加准确,进而提升了跟踪的精度和准确度。实验表明,本文算法有效缓解了遮挡导致的行人ID频繁切换的问题,相较于DeepSort算法,ID切换减少了21,MOTA提升了4.8%,并且跟踪速度也达到了实时性的要求。

THE END
1.AI模型训练与优化技巧:从数据增强到模型压缩的实践指南图像数据增强是一种常用的技术,通过对训练数据进行多样性的变换,可以有效提升模型的鲁棒性和泛化能力。常见的图像数据增强方法包括:随机裁剪、旋转、翻转、缩放、色彩变换等。例如,对于分类任务,我们可以通过对图像进行水平翻转和旋转操作,来增加数据的多样性,从而提升模型的分类效果。 https://www.jianshu.com/p/84d2a32572cc
2.一文详细归纳算法数据增强方法需要关注的是,数据增强样本也有可能是引入片面噪声,导致过拟合。此时需要考虑的是调整数据增强方法,或者通过算法(可借鉴Pu-Learning思路)选择增强数据的最佳子集,以提高模型的泛化能力。 常用数据增强方法可分为:基于样本变换的数据增强及基于深度学习的数据增强。 https://blog.csdn.net/2301_78285120/article/details/132388494
3.总结62种在深度学习中的数据增强方式业界新闻混合样本数据增强算法的核心思想是 按一定的比例随机混合两个训练样本及其标签 这种混合方式不仅能够增加样本的多样性,并且能够使不同类别的决策边界过渡更加平滑 减少了一些难例样本的误识别,模型的鲁棒性得到提升,训练时也比较稳定 (35)RICAP RICAP,即随机图像裁剪和修补,是一种新的数据增强技术 https://www.jindouyun.cn/document/industry/article/183115
4.伯克利AI研究院提出新的数据增强算法,比谷歌大脑的AutoAugment雷锋网 AI 科技评论按:数据增强是提升图像识别模型性能的重要手段。伯克利 AI 研究院的一篇关于数据增强的论文便被 ICML 2019 收录为 oral 论文,该论文巧妙地运用基于种群的数据增强算法,在降低计算成本的情况下,既能提高学习数据增强策略的速度,又能提升模型的整体性能。伯克利 AI 研究院也在官方博客上对论文进行了https://www.leiphone.com/news/201906/gfpjijbKYjpKQfE2.html
5.最新车身漆面缺陷检测算法及一些缺陷数据集项目介绍数据:为了实时采集车身油漆缺陷图像,提出了一种新的数据增强算法,以增强数据库处理小样本数据过拟合现象的能力。 方法:针对汽车涂料固有的缺陷特征,通过改进MobileNet-SSD网络的特征层,优化边界框的匹配策略,提出了一种改进的MobileNet-SSD算法,用于油漆缺陷的自动检测。 https://www.yoojia.com/ask/17-11631754346557195974.html
6.基于Mosaic数据增强方法的标签检测算法研究针对原始YOLOv5算法在小目标的复杂情况下的检测效果欠佳的问题,本文引入数据增强和DIOU_nms的方法,有效提高了数据集的利用率和实际检测结果的精确度,大大降低了实际目标的错检率,使得目标框的回归更加稳定迅速,定位更加准确。本文YOLOv5+Mosaic+DIOU_nms模型提高了YOLOv5算法在特定环境下的检测效果和鲁棒性,也验证了https://www.fx361.com/page/2022/0531/10538044.shtml
7.12个常用的图像数据增强技术总结机器学习或深度学习模型的训练的目标是成为“通用”模型。这就需要模型没有过度拟合训练数据集,或者换句话说,我们的模型对看不见的数据有很好的了解。数据增强也是避免过度拟合的众多方法之一。 机器学习或深度学习模型的训练的目标是成为“通用”模型。这就需要模型没有过度拟合训练数据集,或者换句话说,我们的模型对看https://www.51cto.com/article/721267.html
8.深度学习领域的数据增强机器之心在计算视觉领域,生成增强图像相对容易。即使引入噪声或裁剪图像的一部分,模型仍可以对图像进行分类,数据增强有一系列简单有效的方法可供选择,有一些机器学习库来进行计算视觉领域的数据增强,比如:imgaug (https://github.com/aleju/imgaug)它封装了很多数据增强算法,给开发者提供了方便。 但是在自然语言处理领域中,由于https://www.jiqizhixin.com/articles/2019-12-04-10
9.自适应双边滤波的Retinex图像增强算法AET以上各种对Retinex算法的改进都是需要人工调节参数,对此,本文提出一种基于参数估计的双边滤波Retinex图像增强算法:从文献[7]出发,对图像的噪声方差进行估算,从而自动调节双边滤波的空间几何标准差参数;同时,从文献[8]出发,对图像进行边缘检测,得出边缘强度,从而自动调节双边滤波的亮度标准差参数;最后实现了双边滤波的参数http://www.chinaaet.com/article/3000079533
10.指静脉识别中的数据增强及多任务学习算法的研究与实现最近深度学习由于互联网大数据的的爆发获得了快速的发展,在图像领域几近全面超越了传统的算法。本文结合深度学习在指静脉识别领域目前依然存在的问题上进行了探索。并提出了相应的解决方案。本文工作内容如下:(1)针对目前公共数据集数据量少的问题,设计并实现了基于深度学习的图像数量增强算法。该算法利用条件式生成模型,https://cdmd.cnki.com.cn/Article/CDMD-10013-1021025630.htm
11.分析语音数据增强及python实现python数据增强是一种生成合成数据的方法,即通过调整原始样本来创建新样本。这样我们就可获得大量的数据。这不仅增加了数据集的大小,还提供了单个样本的多个变体,这有助于我们的机器学习模型避免过度拟合+ 目录 一、概述 音频时域波形具有以下特征:音调,响度,质量。我们在进行数据增强时,最好只做一些小改动,使得增强数据和https://www.jb51.net/article/214889.htm
12.学习报告:脑电图数据增强——解决睡眠分期任务中的类别失衡问题该文章提出了五种数据增强的方法,包括重复少数类(DAR)、脑电图信号形态变化(DAMC)、信号分割和重组(DASR)、数据集到数据集的传输(DAT),以及最先进的生成算法GAN(DAGAN)。 1.重复少数类(DAR) 少数类的重复样本是一种简单的方法,通过简单地从少数类[2]中随机复制选定的样本。在训练过程中对该方法进行了验证。https://www.scholat.com/teamwork/teamwork/showPostMessage.html?id=13309
13.基于焦点损失函数的嵌套长短时记忆网络心电信号分类研究过量扩充样本数量将会导致特征冗余,故本文采用SMOTE算法仅对少样本类别进行处理,使三类心律失常类别数量总和与N类数量达到相对平衡状态,进而抑制样本不平衡对模型性能的消极影响,进一步提高focal loss下的模型性能,旨在达到平衡数据集的分类的精度。数据增强后的数据分布如表1所示。 在不平衡心律失常分类仿真实验中,对训练https://www.tcsurg.org/article/10.7507/1001-5515.202110002
14.图像增强算法有哪些图像增强算法主要是对成像设备采集的图像进行一系列的加工处理,增强图像的整体效果或是局部细节, 从而提高整体与部分的对比度, 抑制不必要的细节信息, 改善图像的质量, 使其符合人眼的视觉特性。图像增强算法有直方图均衡图像增强,小波变换图像增强 ,偏微分方程图像增强,分数阶微分的图像增强,基于Retinex理论的图像增强,https://aistudio.baidu.com/aistudio/projectdetail/4902656
15.一种基于特征集关联度的乳腺超声分割方法与流程数据增强是提升算法性能、满足深度学习对大量数据的需求的重要工具。数据增强可以 通过生成无限的修改数据流对训练集进行人为扩充。原始数据不同的变换最终趋于同一个结 果是数据一致性的体现。然而正则化是指对模型施加约束以降低模型对训练数据依赖的一般 方法,因此有望使其更好地泛化到无法可视化的数据。一致性正则化https://www.xjishu.com/zhuanli/55/202111049894.html
16.基于基本图像处理技术的数据增强方法在计算视觉领域,生成增强图像相对容易。即使引入噪声或裁剪图像的一部分,模型仍可以对图像进行分类,数据增强有一系列简单有效的方法可供选择,有一些机器学习库来进行计算视觉领域的数据增强,比如:imgaug (https://github.com/aleju/imgaug)它封装了很多数据增强算法,给开发者提供了方便。 但是在自然语言处理领域中,由于https://m.elecfans.com/article/1877181.html