热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

滴普技术荟:基于机器视觉的典型多目标追踪算法应用实践

视频目标追踪算法是机器视觉中一项很实用重要的算法,视频目标追踪算法应用场景很广,比如智能监控、机器人视觉系统、虚拟现实(人体跟踪ÿ

视频目标追踪算法是机器视觉中一项很实用重要的算法,视频目标追踪算法应用场景很广,比如智能监控、机器人视觉系统、虚拟现实(人体跟踪)、医学诊断(细胞状态跟踪)等。本文由滴普科技2048团队AI产品部算法工程师朱晓丽介绍基于机器视觉的典型多目标追踪算法应用实践。

概述

目标追踪算法分为单目标追踪SOT(Single-Object Track)和多目标追踪MOT(Multi-Object Track)【1】【2】。在单目标跟踪中,使用给定的初始目标位置,在后续视频帧中对给定的物体进行位置预测。而多目标跟踪算法,大部分都是不考虑初始目标位置的,目标可自行消失与产生。对目前小组项目而言只需用到MOT,所以本文提到的追踪默认为MOT。

1. MOT的分类
(1)TBD(Tracking-by-Detection)与DFT(Detection-Free Tracking)也即基于检测的多目标跟踪与基于目标外形的先验知识无需检测器的多目标跟踪。TBD是目前学界业界研究的主流。
(2)传统的跟踪方式有在线跟踪(Online)与离线跟踪(Offline)两种。在线跟踪算法中,只能使用当前帧及之前帧的信息来进行当前帧的跟踪。而在离线跟踪算法中则没有了这个限制,对每一帧的预测,都可以使用整个视频的信息,这样更容易获得一个全局最优解。两种方式各有优劣,一般视应用场合而定,离线跟踪算法的效果一般会优于在线跟踪算法。而介于这两者之间,还有一种称之为接近在线的多目标跟踪算法(NOMT),即可以部分利用未来帧的信息。

在跟踪结果可修改性方面,在线跟踪是不允许修改以往的跟踪结果的。因为一旦修改,算法自然就不再符合在线跟踪原则,从而不能利用未来帧,进而变成了Near-Online或者Offline的跟踪方式。

需要特别注意,在线跟踪不等于Real-Time实时跟踪,实时跟踪一定属于在线跟踪的,但绝大部分在线跟踪算法速度还太慢,不足以支持实时处理的要求. 尤其是应用了深度学习的算法,往往需要大量运算,对实时处理有较大压力。

2. MOT常用评价标准

在这里插入图片描述

表1. 常用评价指标

此外,还有两种评价方式CLEAR MOT Metrics与ID Scores,这里不做详细介绍。

3. MOT的难点
MOT最常用的类别是Tracking-By-Detection与Online,对应的算法处理步骤:

在这里插入图片描述

图1 MOT算法处理步骤

其中,有两个难点:
1)遮挡,这也是ID交换和轨迹分段的主要原因。
2)两个轨迹非常靠近,ID容易匹配不准,出现错位或丢失。

目前所有目标追逐算法都围绕着这两大难点进行优化,优化的方向围绕着这四个步骤,如:运用Private Dataset,挑选合适检测模型,提升检测精度;特征提取不局限于一般的CNN,还有Siamese Network等网络;特征间的相似度,不再是简单的Distance Metric,也开始运用CNN、RNN、LSTM等;数据关联匹配除了传统经典的Hungarian Algorithm,也可以当作图优化的问题处理。

常用的效果较好的有以下几种(详细介绍见“二”节):
1)Sort(Simple nline and realtime tracking)
2)Deep Sort(Deep simple online and realtime tracking)
3)FairMot(A simple baseline for multi-object tracking)
4)Graphnn Multi-object Trachking。(后面简写为Graphnn-mot)

典型的追踪算法介绍
1. Sort和Deep Sort。
Sort和Deep Sort[9]是经典的追踪算法之一,算法原理流程图如下:

在这里插入图片描述

图2. Deep Sort算法的简单流程图

如上图,算法模块,根据目前MOT常用的算法步骤:a.检测b.特征提取、轨迹预测c.计算相似度d.数据匹配,Deep Sort算法就这四个步骤,按序简介涉及到的核心知识点五个:Setection、ReID model、Kalman Filter、iou与余弦/马氏距离、Hungarian Algorithm。
Detection:常用的检测网络,如Faster Rcnn、Yolov4、SSD等,可根据实际项目对精度或时间的要求挑选。本文复现时,上面的几种网络都有尝试,源代码使用了商汤的mmdetection框架下的cascade-rcnn,但项目考虑时间和精度,最终使用了Yolov4[3]作为检测来源。
ReID model:源代码使用了多重粒度网络(Mutiple Granularity Network),是以Resnet50作为backbone,以Softmax_2048分支作为id特征。考虑到2048维特征过大,数据关联时,时间会比较长,所以一般项目上会采用MobileNetv2[4]作为主干网络,id特征维度可以下降到751,减少运算量。
Kalman Filter:卡尔曼滤波,预测confirmed id在下一帧的中心点位置以及box的size。
iou与余弦距离:用于计算数据匹配的代价矩阵。1-iou的值作为box间的距离值,余弦距离函数值作为id特征值间的距离。
Hungarian Algorithm:匈牙利匹配算法用于目标预测与目标检测的关联匹配,确定目标的轨迹。
相比之下,Sort算法比起Deep sort算法少了ReID model与余弦距离判断,所以ID切换的过于频繁,精度要低很多。速度几乎只取决于Detection模型的预测速度。如果对速度要求很高的,可以考虑用sort算法。

2. FairMot
FairMot追踪算法[10],算法处理流程图如下:
在这里插入图片描述

图3. FairMot算法的简单流程图

FairMot算法重点突破:
a. 比起之前两步(先检测后Re-ID)的追踪算法,FairMot完成检测与Re-ID共享网络参数,减少算法推理时间,速度大幅度提升。
b. 比起之前单步的追踪算法JDE[12],存在的一些不足,如:一个物体可能被多个anchor负责并进行检测,或实际物体的中心可能与负责对该物体进行检测的anchor中心有偏差,都会导致id频繁变换。Fairmot针对这些不足,不用anchor-based的检测方式,以anchor-free目标检测范式代替。

涉及到的核心知识点:一个有效简洁的网络结构DLA34、Kalman Filter、iou与余弦距离、Hungarian Algorithm。下面详细介绍DLA34网络,至于Kalman,Distance Metrixes, Hungarian Algorithm同Deep Sort的内容一致,这里不多做解释。

FairMot旨在将检测与Re-ID揉在一个网络结构里,且需要是anchor-free的目标检测方式,所以DLA34网络结构必需要预估目标中心点的位置和对应目标的features。FairMot的网络结构图如下:
在这里插入图片描述

图4. FairMot网络结构及检测示意图

DLA34的backbone是Resnet34[5],Resnet网络结构是里程碑似的出现,比起一般的plain network, Resnet直接使用stride=2的down sample并且用global average pool层替换全连接层,保持了网络的复杂度,并有效解决了深度网络的退化问题。

DLA34[6]是对Resnet34加强,除了Down Sample,还有Up Sample,有点类似FPN[7]的网络结构,跨层添加features,使得多层融合,跨层stride=4。
heatmap head:用于预估目标中心位置,使用了与focal loss类似的损失函数,详情推导见源文。
box offset head:目的是使得预估的目标位置更精准,辅助目标中心位置的预估。box size head:对每个预估了的目标中心,预估其对应的box的长和宽。offset与size两个头加入在一个l1 loss函数里面。
Re-ID branch:一个分类任务,旨在对每个预估出的目标中心产生64维的features,通过features用于后续计算前后帧的目标的相似度。使用了通用的softmax损失函数。

3. Graphnn-mot
Graphnn-mot算法[11],简单流程图如下:
在这里插入图片描述

图5. Graphnn-mot算法的处理流程

Graphnn-mot是基于图神经网络[8]的离线MOT,利用图结构同时执行特征提取和数据关联匹配,提出了时间感知信息传递网络对节点和连接边信息的更新。
涉及到的核心知识点:图构造、特征编码、信息传递、轨迹预测。

图构造:对需检测的所有图片(图片之间要有时间关联,最好是视频),进行目标检测。构建图,其中节点对应检测目标,边对应检测目标之间的连接。对图中的每条边引入了一个二元变量,如果某些边连接了属于同一条跟踪轨迹且在同一条跟踪轨迹上是时间连续的节点,那么其标签为1,否则为0。一个节点不会属于超过一个跟踪轨迹。论文提出直接学习预测图中的哪条边被激活,即边上的二元变量的最终值,为此将这个任务视为边上的二分类任务,标签就是二元变量值y。

特征编码:在边界框图像上应用一个卷积神经网络,初始化节点的外观特征嵌入。对于每一条边也就是不同帧的每一对检测,我们计算一个具有编码了他们的边界框之间的相对大小,位置以及时间差的特征的向量。然后将其输入到一个多层感知器中得到边的几何嵌入。

信息传递:我们在整个图上执行了一系列的信息传递步骤。对于每一轮的信息传递,节点会与他们的连接边分享外观信息,边会与他们的伴随节点分享几何信息。最后,能够获得节点和边的更新嵌入信息,其包含了依赖于整个图结构的高阶信息。

轨迹预测:根据最后的所有边嵌入预测的连续的二元结果,获得最终的跟踪轨迹。

实际算法测试分析

本文对Deep Sort、FairMot、Graphnn-mot算法进行横向测试,并使用追踪经典指标评估(见表1),基于MOTChallenge数据集实际测试进行评估,评估结果如下表(测试环境详见附录1):

在这里插入图片描述

表2. 追踪算法实际测试的时间和精度(精度含义见表1)

如表所示,无论时间还是精度,Farimot更有优势。影响精度的原因主要是两个:
1.检测目标聚集,被遮挡,ID switches频率太高。三种追踪算法都有出现这类情况,严重程度graphnn mot >deep sort>fairmot,可见下面拥挤场景例图:
在这里插入图片描述

组图1:拥挤场景中的graphnn mot追踪算法

在这里插入图片描述


组图2:拥挤场景中的deep sort追踪算法
在这里插入图片描述
组图3:拥挤场景中的farimot追踪算法

如上图红上衣人为例,graphnn mot对应的id号为:无->15->20,id号连续变换;deep sort对应的id号:32->32->48,id号部分变换,只在最聚集的地方变换了id号;fairmot对应的id号:30->30->30,id号一直很稳定。

2.目标检测精度不高,漏检与误检。主要是graphnn mot算法有明显漏检,可见下面例图:
在这里插入图片描述

组图4:graphnn追踪算法目标检测漏检示例图

对于目前最常使用的追踪算法,都是tracking-by detection,所以目标检测的精度直接影响追踪的精度。

总结

对于跟踪模块,目前来说更好的解决方案,比如使用MOTDT[13],此算法在DeepSort的基础上加入了轨迹评分的机制,目前像FairMOT、JDE使用的跟踪模块都是MOTDT,从精度和速度上此算法表现都是较优的。
图神经网络在追踪上的运用,还处于刚起步阶段。属于离线跟踪算法之一,而且目标检测与ReID检测结果没有进行融合,所以速度方面,没有太大优势。
对于实际项目来说,对综合目标跟踪效果影响最大的因素是目标检测的精确度,相对于公共数据集,当使用实际项目的数据集时,使用的目标检测精度提升后,实际跟踪效果能达到比较理想的水平。
目前以上追踪算法用于滴普的某养殖企业养殖场猪计数项目和某地产企业施工地段安全帽的检测预警项目中,已取得较好效果,并能为企业持续创造新价值。详细项目场景请登录滴普科技官网了解(www.deepexi.com)。

参考文献
[1] Multiple Object Tracking: A Literature Review. https://arxiv.org/abs/1409.7618
[2] Deep Learning in Video Multi-Object Tracking: a Survey. https://arxiv.org/pdf/1907.12740.pdf
[3] YOLOv4: Optimal Speed and Accuracy of Object Detection. https://arxiv.org/pdf/2004.10934v1.pdf
[4] MobileNetV2: Inverted Residuals and Linear Bottlenecks. https://arxiv.org/abs/1704.04861
[5] Deep Residual Learning for Image Recognition. https://arxiv.org/abs/1512.03385
[6] Deep Layer Aggregate. https://arxiv.org/pdf/1707.06484.pdf
[7] Feature Pyramid Networks for Object Detection. https://arxiv.org/pdf/1612.03144.pdf
[8] A Comprehensive Survey on Graph Neural Networks. https://arxiv.org/abs/1901.00596
[9] Simple Online and Realtime Tracking with a Deep Association Metric. https://arxiv.org/pdf/1703.07402.pdf
[10] FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking. https://arxiv.org/pdf/2004.01888.pdf
[11] Learning a Neural Solver for Multiple Object Tracking. https://arxiv.org/pdf/1912.07515.pdf
[12] Towards Real-Time Multi-object tracking. https://arxiv.org/pdf/1909.12605v1.pdf
[13] Real-Time Multi People Tracking with Deeply Learned Candidate Selection and Person Re-Identification. https://arxiv.org/abs/1809.04427
[14] http://www.deepexi.com/

附录
1. 测试条件与环境
环境配置:
ubuntu 20.04.4LTS 单卡GTX1060 CUDA Version 10.1.
python=3.8.3 opencv-python=4.3.0.36 pytorch=1.4 torchvision cudatoolkit=10.1.243
数据集:
public dataset: MOT2017-MOT2020 crowdhuman 用于detection模型训练和测试
CUHK03 Market1501 DukeMTMC-reID MSMT17用于reID模型训练


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了如何将PPT格式转换成PDF,并推荐了一款高效的PPT转换成PDF转换器。该转换器利用最新的超线程技术核心和多核心CPU性能,提高了转换效率和转换质量。同时,该转换器具备万能转换模式,可以轻松实现不同类型、不同内容和不同排版的PPT文件的转换。用户可以通过下载链接获取该转换器。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
author-avatar
mobiledu2502898543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有