精华内容
下载资源
问答
  • 深度学习目标跟踪
    2020-06-17 17:42:57

    先看看总结性的,写的都挺好

    多目标跟踪全解析,全网最全 (非常好)

    工程实践中,目标检测为何要加目标追踪?

    再谈多目标追踪--快速应用部署

    MOT榜前算法探讨

    Anchor-free应用一览:目标检测、实例分割、多目标跟踪

    Tracking Objects as Points

    Github:GitHub - xingyizhou/CenterTrack: Simultaneous object detection and tracking using center points.

    基于CenterNet如何评价最新的两篇基于point的目标检测模型CenterNet?

    CenterNet:Objects as Points论文学习笔记+代码复现

    写的特别好:论文精读——CenterNet :Objects as Points

    代码解释特别好:centernet理解+demo代码分析

    CenterTrack论文学习笔记 - CenterTrack

    有关CenterTrack的一些注意点

    基于CenterTrack的3D目标检测源码解读

    缺点也是优点:

        CenterTrack is purely local. It only associates objects in adjacent frames, with-out reinitializing lost long-range tracks. It trades the ability to reconnect long-range tracks for simplicity, speed, and high accuracy in the local regime.

    A Simple Baseline for Multi-Object Tracking

    Paper:https://arxiv.org/abs/2004.01888

    Github:GitHub - ifzhang/FairMOT: [IJCV-2021] FairMOT: On the Fairness of Detection and Re-Identification in Multi-Object Tracking

    打遍天下无敌手,却说它只是个baseline!多目标跟踪FairMOT的烦恼 - 云+社区 - 腾讯云

    论文阅读-FairMOT:《A Simple Baseline for Multi-Object Tracking》

    FairMOT理解与实现

    FairMOT项目代码实战,谦称青铜,实为王者

    CVPR 2020 多目标跟踪算法 FairMOT代码demo运行及训练

    Detection计算人的类间特征,区分检测部分是人还是背景。Re-ID计算人的类内特征,用来区分这个人到底是哪个人。

    ByteTrack

    Github:

    https://github.com/ifzhang/ByteTrack

    作者讲解

    比较

    目标跟踪(二) SDE, JDE, FairMot, CenterTrack, Bytetrack 跟踪比较​​​​​​​

    更多相关内容
  • 王博士的一篇目标跟踪论文,是深度学习框架下的目标跟踪算法,希望对大家有帮助
  • 增量深度学习目标跟踪.pdf
  • 多示例深度学习目标跟踪.pdf
  • 基于孪生网络的深度学习目标跟踪算法.pdf
  • 基于工地场景的深度学习目标跟踪算法.pdf
  • 这是中国图像图形学报出的一版关于2019年深度学习目标跟踪算法的综述,为PDF格式,全文共28页。大家对近几年深度学习目标跟踪算法有兴趣的可以下载
  • 请问哪位高手实现过siammask目标跟踪模型实现多目标跟踪? 说以下思路,或者介绍一篇文章,谢谢。
  • 本文首先介绍了目标跟踪技术的基本概念和主要方法,然后针对深度学习目标跟踪领域的发展现状,从基于深度特征的目标跟踪和基于深度网络的目标跟踪两方面重点阐述了深度学习在该领域的应用方法,并对近期较为流行的...
  • 介绍了目标跟踪中用到的各种深度学习方法,包括一些经典的算法,也介绍了一些由简单到复杂的各种目标跟踪深度学习领域的算法。讲解非常全面。
  • 本篇文章主要研究基于深度学习目标检测与跟踪技术,该技术主要包括一个离线训练的检测模型,一个优化的跟踪器,以及一个学习模块来组成在线跟踪系统。通过研究出一种更快、性能更好的算法以及模型的压缩来达到使其...
  • 据我目前了解掌握,多目标跟踪大概有两种方式:基于初始化帧的跟踪,在视频第一帧中选择你的目标,之后交给跟踪算法去实现目标的跟踪。这种方式基本上只能跟踪你第一帧选中的目标,如果后续帧中出现了新的物体目标,...
  • 基于深度学习目标跟踪算法综述论文,参考文献100多篇,权威发布! 基于深度学习目标跟踪算法综述论文,参考文献100多篇,权威发布!
  • 深度学习在视频目标跟踪中的应用进展与展望.pdf
  • 针对当前智能移动机器人在跟踪过程中常因目标发生外观形态上的变化而丢失跟踪目标的问题,利用Caffe深度学习框架和ROS机器人操作系统作为开发平台,设计一个高准确度及高实时性的移动机器人目标跟踪系统并进行了研究...
  • 深度学习 视频目标跟踪

    千次阅读 2021-11-13 12:03:25
    视频目标跟踪

    前言

    最近的工作当中遇到了一个需求:视频的目标跟踪。由于需求比较紧急,当时的思路是能不能从现有的目标检测模型的基础上做视频的目标跟踪,于是搜索到一个基于Tracking by Detection策略的视频目标跟踪方案。该方案主要技术点是Yolov3,Deepsort。Yolo系列的算法在前面的博客中已经有了相关的介绍,sort算法主要涉及到匈牙利算法以及卡尔曼滤波。匈牙利算法主要针对当前帧的某个目标,判断是否与前一帧的某个目标相同。卡尔曼滤波是基于目标前一时刻的位置,来预测当前时刻的位置,并且可以比传感器更准确地估计目标的位置。Deepsort算法为了解决SORT算法中的遮挡目标的检测问题,该方法结合运动和外观信息更优的度量来替换关联度量,特别地,该方法采用一个卷积神经网络,通过集成这个网络,提高了对遗漏和遮挡目标跟踪的鲁棒性。两个算法都有个致命的缺点是你的目标检测模型一定要足够好。

    在这个需求实现过程中的参考的资料以及文档都在本博客的参考部分,需要了解更多细节可以阅读相关的代码或者文献。

    目标跟踪任务分类

    目标跟踪可以分为以下几个任务:

    • 单目标跟踪:给定一个目标,追踪这个目标的位置
    • 多目标跟踪:追踪多个目标的位置
    • Person Re-ID:行人重识别,利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题
    • MTMCT:多目标多摄像头跟踪,跟踪多个摄像头拍摄的多个人
    • 姿态跟踪:追踪人的姿态

    按照任务计算类型又可以分为以下两类:

    • 在线跟踪:在线跟踪需要实时处理任务,通过过去和现在帧来跟踪未来帧中物体的位置
    • 离线跟踪:离线跟踪是离线处理任务,可以通过过去、现在和未来的帧来推断物体的位置,因此准确率会比在线跟踪的高

    目标跟踪困难点

    • 形态变化:姿态变化是目标跟踪中常见的干扰问题。运动目标发生姿态变化时,会导致它的特征以及外观模型发生改变,容易导致跟踪失败
    • 尺度变化:尺度的自适应也是目标跟踪中的关键问题。当目标尺度缩小时,由于跟踪框不能自适应跟踪,会将很多背景信息包含在内,导致目标模型的更新错误;当目标尺度增大时,由于跟踪框不能将目标完全包括在内,跟踪框内目标信息不全,也会导致目标模型的更新错误。因此实现尺度自适应跟踪是十分必要的
    • 遮挡与消失:目标在目标在运动过程中可能出现被遮挡或者短暂的消失情况。当这种情况发生时, 跟踪框容易将遮挡物以及背景信息包含在跟踪框内, 会导致后续帧中的跟踪目标漂移到遮挡物上面。若目标被完全遮挡时, 由于找不到目标的对应模型, 会导致跟踪失败。
    • 图像模糊:光照强度变化, 目标快速运动, 低分辨率等情况会导致图像模型, 尤其是在运动目标与背景相似的情况下更为明显。因此, 选择有效的特征对目标和背景进行区分非常必要。

    目标跟踪方法

    按照模式划分为两类:

    • 生成式模型:早期工作主要集中于生成式模型跟踪算法,如光流法、粒子滤波、Meanshift算法、Camshift算法等。此类方法首先建立目标模型或者提取目标特征,在后续帧中进行相似特征搜索,逐步迭代实现目标定位。但是这类方法也存在明显的缺点,就是图像的背景信息没有得到全面的利用。且目标本身的外观变化有随机性和多样性特点。因此通过单一的数学模型描述待跟踪目标具有很大的局限性。具体表现为在光照变化,运动模糊,分辨率低,目标旋转形变等情况下,模型的建立会受到巨大的影响,从而影响跟踪的准确性;模型的建立没有有效地预测机制,当出现目标遮挡情况时,不能够很好地解决。
    • 鉴别式模型:将目标模型和背景信息同时考虑在内,通过对比目标模型和背景信息的差异,将目标模型提取出来,从而得到当前帧中的目标位置。通过将背景信息引入跟踪模型, 可以很好地实现目标跟踪.因此鉴别式模型具有很大的优势。

    按照时间顺序,目标跟踪的方法经历了从经典算法到基于核相关滤波算法,再到基于深度学习的跟踪算法的过程。

    • 经典跟踪算法
    • 基于核相关滤波的跟踪算法
    • 基于深度学习的跟踪算法

    经典跟踪算法

    早期的目标跟踪算法主要是根据目标建模或者对目标特征进行跟踪

    1. 基于目标模型建模的方法,通过对目标外观模型进行建模,然后在之后的帧中找到目标。例如区域匹配、特征点跟踪、基于主动轮廓的跟踪算法、光流法等。最常用的是特征匹配法,首先提取目标特征,然后在后续的帧中找到最相似的特征进行目标定位,常用的特征有:SIFT特征、SURF特征、Harris角点等。
    2. 基于搜索的方法,随着研究的深入,基于目标模型建模的方法对整张图像进行处理,实时性差。将预测算法加入到跟踪当中,在预测值附近进行目标搜索,减少了搜索的范围。常见的一类预测算法有卡尔曼滤波、粒子滤波方法。另一种减少搜索范围的方法是内核方法:运用最速下降法的原理,向梯度下降方向对目标模板逐步迭代,直到迭代到最优位置,如Meanshift算法、Camshift算法。

    光流法

    光流法针对外观模型对视频序列中的像素进行操作。通过利用视频序列在相邻帧之间的像素关系,寻找像素的位移变化来判断目标的运动状态,实现对运动目标的跟踪。但是光流法适用的范围较小,需要满足三种假设:图像的光照强度保持不变;空间一致性,即每个像素在不同帧中相邻点的位置不变,这样便于求得最终的运动矢量;时间连续,光流法适用于目标运动相对于帧率是缓慢的,也就是两帧之间的目标位移不能太大。

    Meanshift

    Meanshift方法是一种基于概率密度分布的跟踪方法,使目标的搜索一直沿着概率梯度上升的方向,迭代收敛到概率密度分布的局部峰值上。首先Meanshift会对目标进行建模,比如利用目标的颜色分布来描述目标,然后计算目标在下一帧图像上的概率分布,从而迭代得到局部最密集的区域。Meanshift适用于目标的色彩模型和背景差异比较大的情形,早期也用于人脸跟踪。由于Meanshift方法的快速计算,它的很多改进方法也一直适用至今。

    粒子滤波

    粒子滤波方法是一种基于粒子分布统计的方法。以跟踪为例,首先对跟踪目标进行建模,并定义一种相似度度量确定粒子与目标的匹配程度。在目标搜索的过程中,它会按照一定的分布(均匀分布或高斯分布)撒一些粒子,统计粒子的相似度,确定目标可能的位置,在这些位置上,下一帧加入更多新的例子,确保在更大概率上跟踪上目标。卡尔曼滤波器常被用于描述目标的运动模型,它不会对目标的特征建模,而是对目标的运动模型进行建模,常用于估计目标在下一帧的位置。
    因此传统的目标跟踪算法存在两个致命的缺陷:

    • 没有将背景信息考虑在内,导致目标遮挡,光照变化以及运动模型等干扰下容易出现跟踪失败
    • 跟踪算法执行速度慢,无法满足实时性的要求

    基于核相关滤波的跟踪算法

    人们将通信领域的相关滤波(衡量两个信号的相似程度)引入到目标跟踪中。一些基于相关滤波的跟踪算法(MOSSE,CSK,KCF,BACF,SAMF)等也随之产生,速度可以达到数百帧每秒,可以广泛地应用于实时跟踪系统中。其中不乏一些跟踪性能优良的跟踪器。

    MOOSE

    提出相关滤波器通过MOSSE算法实现,基本思想:越是相似的两个目标相关值越大,也就是视频帧中与初始化目标越相似,得到相应也就越大。

    基于深度学习的跟踪算法

    随着深度学习方法的广泛应用, 人们开始考虑将其应用到目标跟踪中。人们开始使用深度特征并取得了很好的效果。之后,人们开始考虑用深度学习建立全新的跟踪框架, 进行目标跟踪。在大数据背景下,利用深度学习训练网络模型,得到的卷积特征输出表达能力更强。在目标跟踪上,初期的应用方式是把网络学习到的特征,直接应用到相关滤波或 Struck 的跟踪框架里面,从而得到更好的跟踪结果,比如前面提到的 DeepSRDCF 方法。本质上卷积输出得到的特征表达,更优于 HOG 或 CN 特征,这也是深度学习的优势之一,但同时也带来了计算量的增加。

    Tracking by Detection

    SORT算法

    SORT算法的论文是《SIMPLE ONLINE AND REALTIME TRACKING》,该方法组合了一些熟悉的技术,如卡尔曼滤波器和匈牙利算法。
    在这里插入图片描述

    为了遵循Occam’s Razor,SORT算法在进行目标跟踪时没有使用任何被跟踪目标的外观特征,而仅仅使用了检测框的位置和大小进行目标的运动估计和数据关联,也没有进行任何的重识别的算法,所以当目标跟丢时,就找不回来,只能通过检测去重新更新ID。

    预测模型

    对象模型描述的是表示和用于将目标的标识传播到下一帧。每个目标的状态模型如下: X = [ μ , v , s , r , μ ˙ , v ˙ , s ˙ ] T X=[\mu, v, s, r, \dot{\mu}, \dot{v}, \dot{s}]^T X=[μ,v,s,r,μ˙,v˙,s˙]T
    其中 μ \mu μ v v v分别表示目标的中心横纵坐标, s s s r r r表示目标的BBox的尺寸大小和比例。后面的三个变量表示预测的下一帧,当检测和目标关联时,检测的边界框用于更新目标状态,其中通过卡尔曼方法对速度分两进行优化求解。
    在这里插入图片描述

    数据关联

    SORT算法的使用匈牙利算法进行帧数据之间的关联。SORT算法中的匈牙利算法使用的cost矩阵为原有目标在当前帧中的预测位置和当前帧目标检测框之间的IOU。当然小于指定IOU阈值的指派结果是无效的。发现使用IOU能够解决目标的短时被遮挡问题。这是因为目标被遮挡时,检测到了遮挡物,没有检测到原有目标,假设把遮挡物和原有目标进行了关联。那么在遮挡结束后,因为在相近大小的目标IOU往往较大,因此很快就可以恢复正确的关联。这是建立在遮挡物面积大于目标的基础上的,

    Deepsort算法

    SORT算法使用简单的卡尔曼滤波器处理逐帧数据的关联性以及使用匈牙利算法进行关联度衡量,这种方法有个缺点:忽略了被检测物体表面特征,SORT算法只有在物体状态估计不确定较低时才准确。为了解决这个问题,DeepSORT使用更加可靠的度量来替代关联度量,并使用CNN网络提取特征,增加网络对目标丢失和遮挡的鲁棒性。

    Track Handle and State Estimation

    在这里插入图片描述

    Assignment Problem

    在这里插入图片描述
    在这里插入图片描述

    匹配级联

    在这里插入图片描述

    总结

    SORT和DeepSORT算法都依赖与目标检测效果较好的情况下才能取到较好的效果。在知乎上看到以下评论:
    在这里插入图片描述

    参考

    相关代码

    1. https://github.com/RyanCCC/Yolov4:本博主的github,里面包括了YOLOv4training的算法以及融合了Deepsort算法做目标跟踪,如果觉得有用,请给我一个star,非常感谢。
    2. https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch(推荐)
    3. https://github.com/Qidian213/deep_sort_yolov3
    4. https://github.com/theAIGuysCode/yolov4-deepsort(推荐)
    5. https://github.com/pjl1995/CTracker

    相关文章

    1. 目标跟踪初探
    2. 多目标跟踪:SORT和Deep SORT
    3. How To Train Your Deep Multi-Object Tracker
    4. POI Multiple Object Tracking with High Performance Detection and Appearance Feature
    5. SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC
    6. SIMPLE ONLINE AND REALTIME TRACKING
    展开全文
  • 基于深度学习的视觉目标跟踪方法

    千次阅读 2021-12-18 01:15:57
    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达以前写过一个“自动驾驶中的目标跟踪”介绍,这次重点放在深度学习和摄像头数据方面吧。先提一下以前说的那篇综述:"Surv...

    点击上方“小白学视觉”,选择加"星标"或“置顶

    重磅干货,第一时间送达

    以前写过一个“自动驾驶中的目标跟踪”介绍,这次重点放在深度学习和摄像头数据方面吧。

    先提一下以前说的那篇综述:

    "Survey on Leveraging Deep Neural Networks for Object Tracking"

    Daimler公司研发组2017年写的一篇综述,主要总结当时深度学习如何在多目标跟踪应用的工作。

    一个多目标跟踪系统的框架大同小异,如图所示,数据相关(data association),状态预测(state prediction),状态更新(state update)和跟踪管理(track management)几个部分。

    0447a44100c8226bd35c0cb42c06afb0.png

    下图是通用的多目标跟踪系统框架。

    f04fcfc3ea991dee16dbf3a3a8ba9b0d.png

    而应用深度学习在目标跟踪中的方法可总结为四种途径(如上图):

    • 1) 特征学习(表观模型部分). 如经典的CNN

    • 2) 数据相关部分. 比如Siamese 网络加 Hungarian算法/LSTM

    • 3) 端到端学习法(比较具有挑战性). 如RNN/LSTM

    • 4) 状态预测(运动/轨迹). 如Behavior-CNN,Social-LSTM,Occupancy Grid Map等等

    下面对每个途径介绍一两个例子。

    1. feature learning

    326ab6a2f38033cce370d970bb0e9db7.png

    L. Wang, W. Ouyang, X. Wang, and H. Lu, “Visual Tracking with Fully Convolutional Networks,” in ICCV, 2015 

    14fa0cb36c692ad2f638502181b4c2db.png

    2. Data Association

    27f342506764045ce77d9c8323006f84.png

    L. Leal-Taixe, C. Canton-Ferrer, and K. Schindler, “Learning by Tracking: Siamese CNN for Robust target association,” in CVPRW, 2016 

    c1c5562616d3958097ba4671686f644e.png

    3. Prediction

    add9b88d18b890df963ea22f9163e6b2.png

    A. Alahi, K. Goel, V. Ramanathan, A. Robicquet, L. Fei-Fei, and S. Savarese, “Social LSTM: Human Trajectory Prediction in Crowded Spaces,” in CVPR, 2016

    8d60a90e54519ad28567cde8ba3eb27b.png

    S. Yi, H. Li, and X. Wang, “Pedestrian Behavior Understanding and Prediction with Deep Neural Networks” in ECCV, 2016

    676ca28981f2bd9a5151861ec8217718.png

    S. Hoermann, M. Bach, and K. Dietmayer, “Dynamic Occupancy Grid Prediction for Urban Autonomous Driving: A Deep Learning Approach with Fully Automatic Labeling ” in IV, 2017 

    00648817e4cf5b9619bc582e3b5b4b47.png

    4. E2E

    e6b8dd3a75f4448cad981e89f366a2e8.png

    I. Posner and P. Ondruska, “Deep Tracking: Seeing Beyond Seeing Using Recurrent Neural Networks” in AAAI, 2016

    7c7ab345a1bb88d12310bb85f180a432.png

    A. Milan, S. H. Rezatofighi, A. Dick, K. Schindler, and I. Reid, “Online Multi-target Tracking using Recurrent Neural Networks” in AAAI, 2017

    548cdc322afb7a8b7eb724f77a33605c.png

    “ DEEP LEARNING IN VIDEO MULTI-OBJECT TRACKING: A SURVEY “,7,2019

    这是最近的一篇MOT综述文章。重点是介绍2D单目摄像头数据方法。

    MOT算法采用的标准方法是通过检测进行跟踪:通常从视频帧中提取出一组检测结果(即,标识图像中目标的边框),并用于引导跟踪过程,即将相同ID分配给包含相同目标的边界框。因此,许多MOT算法任务实际是分配问题。

    现代的检测框架如SSD、YOLO和RCNN系列,确保了良好的检测质量,大多数MOT方法(除了某些例外)一直致力于改善关联性。实际上,许多MOT数据集提供了一组标准的检测方法,算法可以使用这些检测方法,以便专门比较在关联算法质量上的性能,因为检测器的性能会严重影响跟踪结果。如图是MOT算法的展示。

    708a39a9f81fcd05b4792b9bbb708153.png

    MOT算法也可以分为批处理和在线方法。在尝试确定特定帧的目标个体时,允许批处理跟踪算法使用将来的信息(即来自将来的帧)。它们经常利用全局信息提高跟踪质量。相反,在线跟踪算法只能使用当前和过去的信息来预测当前帧。某些情况下是必需的,例如自动驾驶和机器人导航。与批处理方法相比,在线方法往往表现较差,因为它们无法使用将来的信息来修复过去的错误。重要的是,虽然要求实时算法以在线方式运行,但并非每种在线方法都必须实时运行;实际上,除了极少数例外,很多时候在线算法仍然太慢而无法在实时环境中使用,特别是深度学习算法通常会占用大量计算资源。

    尽管方法种类繁多,大多数MOT算法共享以下部分或全部的步骤(如图所示):

    • 检测阶段:目标检测算法使用边框分析每个输入帧,识别属于某种类别的目标,在MOT称为“检测”;

    • 特征提取/运动预测阶段:一种或多种特征提取算法分析检测和/或轨迹,提取外观、运动和/或交互特征。可选项是,运动预测器预测每个跟踪目标的下一个位置;

    • 近似(Affinity )阶段:特征和运动预测用于计算成对的检测和/或小轨迹(tracklet)之间相似度/距离的得分;

    • 关联(Association)阶段:通过相同ID分配给标识相同目标的检测阶段,相似度/距离度量将属于同一目标的检测和小轨迹关联起来。

    16a2add37b07822ce75b916e01023bd6.png

    "Deep Visual Tracking: review and experimental comparison", 2018

    国内一篇基于单摄像头的单目标跟踪的综述。

    根据网络结构、网络特征和网络训练将现有的基于深度学习的跟踪器分为三类:

    • (1)卷积神经网络(CNN)模型可以显着提高跟踪性能。

    • (2)卷积神经网络(CNN)模型用于将被跟踪目标与其周围背景区分开来的跟踪器可以获得更准确的结果,而CNN模型的模板匹配通常会更快。

    • (3)有较深特征的跟踪器的性能要比有低级手工特征的跟踪器好得多。

    • (4)来自不同卷积层的深层特征有不同的性质,它们的有效组合通常会导致跟踪器更健壮。

    • (5)使用端到端网络的深度视觉跟踪器通常比仅使用特征提取网络的跟踪器性能更好。

    • (6)视觉跟踪最合适的网络训练方法是对每个带有视频信息的网络进行训练,并通过后续观测量对其进行在线微调。


    “Deep learning for multiple object tracking: a survey“,8,2019

    这也是国内最近的一篇MOT综述文章。 

    文章将基于DL的MOT方法大致分为三类:

    1. 使用深层网络特征的多目标跟踪增强,其中语义特征是相关任务设计的深层神经网络所提取,替换先前跟踪框架中的常规手工特征。在大多数情况下,从深度网络提取的这些功能可以有效地提高跟踪性能。

    2. 具有深度网络嵌入的多目标跟踪,其中跟踪框架的核心部分是使用深度神经网络设计的。例如,深度网络的输出被设计为对不同轨迹检测的多分类得分,而二值深度分类器检测是否属于同一目标。

    3. 通过端到端深度神经网络学习进行多目标跟踪,其中直接设计深度网络以获得跟踪结果。通常仅通过一个网络很难获得多目标跟踪结果,因为MOT跟踪存在一些相互交织的子模块。一些工作试图通过一些假设(例如马尔可夫性,固定分布等)来实现此目标。

    如图是基于深度学习的MOT方法图:

    d46c7d2ca47b2ebc1d11b4206a4daea7.png

    下表是所列MOT方法的细节对比。

    b49fb3eee5c5934348aba687bfa1ab24.png
    • Wojke, N., Bewley, A., Paulus, D.: ‘Simple online and realtime tracking with a deep association metric’. Proc. Int. Conf. on Image Processing, Beijing, China, 2017

    下图是深度SORT(Simple Online and Realtime Tracking)算法的示意图:从wide residual network (WRN) 中提取用于分类的深层特征用于增强检测和轨道之间的匹配(WRN的WRB – 残差块)。

    106d1f9907af6f916a4d7375501594e6.png
    • Chu, Q., Ouyang, W., Li, H., et al.: ‘Online multi-object tracking using CNN- based single object tracker with spatial-temporal attention mechanism’. Proc. IEEE Int. Conf. Computer Vision, Venice, Italy, 2017

    如图是STAM(spatial-temporal attention mechanism)-MOT的框架:(a)构造深度CNN学习空间注意力和特定目标的分类器,(b)使用基于采样的搜索方法来找到最佳候选者。

    a7920e33e50a38204df746ae84c263cb.png
    • Milan, A., Rezatofighi, S.H., Dick, A.R., et al.: ‘Online multi-target tracking using recurrent neural networks’. Proc. AAAI, San Francisco, CA, USA, 2017

    如图是RNN(recurrent neural networks)-LSTM跟踪框架:构建一个基于RNN的网络学习预测、更新状态和终止概率。基于LSTM的网络用于在检测和目标之间找到最佳关联。

    a69fa8d8bc674344c875d28ba3dad596.png

    总之,综述中作者基于现有方法分析了深度特征迁移、神经网络嵌入和端到端网络训练的机制。其次,讨论深度网络在跟踪框架中的作用,以及训练这些网络的问题。再者,根据常见的数据集和评估重新对这些多目标跟踪方法进行比较,并强调了各自方法的优点和局限性。一方面,远没有足够的标记数据集训练满意的模型在任何条件下进行跟踪。生成网络(条件,期望对跟踪的目标学习高阶或在线迁移的特征。

    END

    下载1:OpenCV-Contrib扩展模块中文版教程

    在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

    下载2:Python视觉实战项目52讲

    在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

    下载3:OpenCV实战项目20讲

    在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

    交流群

    欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

    fb0bced0570815e1bcf29f0fa491dc49.png

    dba315b45f02764174ea129c68e7896a.png

    展开全文
  • 其实现在基于检测的多目标追踪都是检测模块用深度学习,Re-ID模块用深度学习,而最核心的数据关联模块要用深度学习来解决是很困难的。现在有一些尝试是用RNN,但速度慢、效果不好,需要走的路都还很长。 我个人觉得...

    点击上方“小白学视觉”,选择加"星标"或“置顶

    重磅干货,第一时间送达300ad25f151b59fd695e12845ee27574.png

    作者丨Harlek@知乎

    来源丨https://zhuanlan.zhihu.com/p/97449724

    导读

     

    本文是一篇多目标跟踪方向的调研报告,从相关方向、核心步骤、评价指标和最新进展等维度出发,对MOT进行了全面的介绍,不仅适合作为入门科普,而且能够帮助大家加深理解。

    最近做了一些多目标跟踪方向的调研,因此把调研的结果以图片加文字的形式展现出来,希望能帮助到入门这一领域的同学。也欢迎大家和我讨论关于这一领域的任何问题。

    相关方向

    7f236817f7d21aa0867c493462d69681.png

    这些是我所了解的多目标跟踪(MOT)的一些相关方向。其中单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)都是非常热门的方向。而偏视频的相关方向就比较冷门。而且今年五月DukeMTMC因为隐私问题不再提供MTMCT的数据了,MTMCT的研究也是举步维艰。

    核心步骤

    383da1fdc036c9603d755592f5eff8b7.png

    MOT算法的通常工作流程:(1)给定视频的原始帧;(2)运行对象检测器以获得对象的边界框;(3)对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;(4)之后,相似度计算步骤计算两个对象属于同一目标的概率;(5)最后,关联步骤为每个对象分配数字ID。

    5be08a353bc7be28e4a83585e508e456.png

    因此绝大多数MOT算法无外乎就这四个步骤:①检测 ②特征提取、运动预测 ③相似度计算 ④数据关联

    其中影响最大的部分在于检测,检测结果的好坏对于最后指标的影响是最大的。

    但是,多目标追踪的研究重点又在相似度计算数据关联这一块。所以就有一个很大的问题:你设计出更好的关联算法可能就提升了0.1个点,但别人用一些针对数据集的trick消除了一些漏检可能就能涨好几个点。所以研究更好的数据关联的回报收益很低。因此多目标追踪这一领域虽然工业界很有用,但学术界里因为指标数据集的一些原因,入坑前一定要三思


    评价指标

    6e5dbc89d1c09f61b4d36be1adeea4a7.png

    关于评价指标:

    第一个是传统的标准,现在已经没人用了,就不介绍了。

    第二个是06年提出的CLEAR MOT。现在用的最多的就是MOTA。但是这个指标FN、FP的权重占比很大,更多衡量的是检测的质量,而不是跟踪的效果

    第三个是16年提出的ID scores。因为都是基于匹配的指标,所以能更好的衡量数据关联的好坏。

    数据集

    a70c4441973753e6c7f4c9993e7da12d.png

    数据集用的最多的是MOTChallenge,专注于行人追踪的。

    第二个KITTI的是针对自动驾驶的数据集,有汽车也有行人,在MOT的论文里用的很少。

    还有一些其他比较老的数据集现在都不用了。

    15年的都是采集的老的数据集的视频做的修正。

    16年的是全新的数据集,相比于15年的行人密度更高、难度更大。特别注意这个DPM检测器,效果非常的差,全是漏检和误检。

    17年的视频和16年一模一样,只是提供了三个检测器,相对来说更公平。也是现在论文的主流数据集

    19年的是针对特别拥挤情形的数据集,只有CVPR19比赛时才能提交。

    baf18e00af115ec2998c3c21e24d9608.png

    这个是MOT16公开检测器上的结果。可以看到从17年开始,MOTA就涨的很慢了。关注一下这个帧率有20Hz的算法MOTDT也是我后面要讲的一个。

    d9668c93a20f709cb7113442d76dbfb4.png

    这个是MOT16私有检测器上的结果。可以看到检测器性能的好坏对于结果的影响非常重要。SOTA算法换了私有检测器后性能直接涨了快20个点。

    452c3974964a050869b9aab5b722440e.png

    这个是MOT17公开检测器上这几年比较突出的算法。注意因为这个数据集用了三个检测器,所以FP、FN这些指标也都几乎是16数据集的三倍。


    SORT和DeepSORT

    关键算法

    cc97065123d7b770e5888d63ffccc773.png

    从这两个工业界关注度最高的算法说起。

    SORT作为一个粗略的框架,核心就是两个算法:卡尔曼滤波匈牙利匹配

    卡尔曼滤波分为两个过程:预测更新。预测过程:当一个小车经过移动后,且其初始定位和移动过程都是高斯分布时,则最终估计位置分布会更分散,即更不准确;更新过程:当一个小车经过传感器观测定位,且其初始定位和观测都是高斯分布时,则观测后的位置分布会更集中,即更准确。

    匈牙利算法解决的是一个分配问题。SK-learn库的linear_assignment___和scipy库的linear_sum_assignment都实现了这一算法,只需要输入cost_matrix即代价矩阵就能得到最优匹配。不过要注意的是这两个库函数虽然算法一样,但给的输出格式不同。具体算法步骤也很简单,是一个复杂度 的算法。

    DeepSORT的优化主要就是基于匈牙利算法里的这个代价矩阵。它在IOU Match之前做了一次额外的级联匹配,利用了外观特征马氏距离

    外观特征就是通过一个Re-ID的网络提取的,而提取这个特征的过程和NLP里词向量的嵌入过程(embedding)很像,所以后面有的论文也把这个步骤叫做嵌入(起源应该不是NLP,但我第一次接触embedding是从NLP里)。然后是因为欧氏距离忽略空间域分布的计算结果,所以增加里马氏距离作为运动信息的约束。

    SORT

    d33f9818a64a52f41113977ac142c42a.png

    这个SORT的流程图非常重要,可以看到整体可以拆分为两个部分,分别是匹配过程卡尔曼预测加更新过程,都用灰色框标出来了。一定要把整个流程弄明白。后面的多目标追踪的大框架基本都由此而来。

    关键步骤:轨迹卡尔曼滤波预测→ 使用匈牙利算法将预测后的tracks和当前帧中的detecions进行匹配(IOU匹配) → 卡尔曼滤波更新

    对于没有匹配上的轨迹,也不是马上就删掉了,有个T_lost的保存时间,但SORT里把这个时间阈值设置的是1,也就是说对于没匹配上的轨迹相当于直接删了。

    关于这点论文里的原话是:

    首先,恒定速度模型不能很好地预测真实的动力学,其次,我们主要关注的是帧到帧的跟踪,其中对象的重新识别超出了本文的范围。

    这篇文章的机翻在《SORT》论文翻译

    DeepSORT

    ce0289b6854d8f4ee902f5ec96c66698.png

    这是DeepSORT算法的流程图,和SORT基本一样,就多了级联匹配(Matching Cascade)和新轨迹的确认(confirmed)。

    这篇文章的机翻在《DeepSORT》论文翻译

    关键步骤:轨迹卡尔曼滤波预测→ 使用匈牙利算法将预测后的tracks和当前帧中的detecions进行匹配(级联匹配IOU匹配) → 卡尔曼滤波更新

    级联匹配是核心,就是红色部分,DeepSORT的绝大多数创新点都在这里面,具体过程看下一张图。

    关于为什么新轨迹要连续三帧命中才确认?个人认为有这样严格的条件和测试集有关系。因为测试集给的检测输入非常的差,误检有很多,因此轨迹的产生必须要更严格的条件。

    69076b31b2750938f8875be2335a9940.png

    级联匹配流程图里上半部分就是特征提取相似度估计,也就是算这个分配问题的代价函数。主要由两部分组成:代表运动模型的马氏距离和代表外观模型的Re-ID特征

    级联匹配流程图里下半部分数据关联作为流程的主体。为什么叫级联匹配,主要是它的匹配过程是一个循环。从missing age=0的轨迹(即每一帧都匹配上,没有丢失过的)到missing age=30的轨迹(即丢失轨迹的最大时间30帧)挨个的和检测结果进行匹配。也就是说,对于没有丢失过的轨迹赋予优先匹配的权利,而丢失的最久的轨迹最后匹配。

    论文关于参数λ(运动模型的代价占比)的取值是这么说的:

    在我们的实验中,我们发现当相机运动明显时,将λ= 0设置是一个合理的选择。

    因为相机抖动明显,卡尔曼预测所基于的匀速运动模型并不work,所以马氏距离其实并没有什么作用。但注意也不是完全没用了,主要是通过阈值矩阵(Gate Matrix)对代价矩阵(Cost Matrix)做了一次阈值限制

    关于DeepSORT算法的详细代码解读我比较推荐:目标跟踪初探(DeepSORT)

    但关于卡尔曼滤波的公式讲的不是很详细,具体推导可以看看 Kalman Filter 卡尔曼滤波

    改进策略

    904b5eaee8282af3a33b02b150a243ac.png

    看到这个DeepSORT的流程图不知道大家可以想到什么优化的地方?其实有几个点是很容易想到的。

    e62c274426e49bf8f3932cd5e7981215.png

    第一点,把Re-ID网络和检测网络融合,做一个精度和速度的trade off;

    第二点,对于轨迹段来说,时间越长的轨迹是不是更应该得到更多的信任,不仅仅只是级联匹配的优先级,由此可以引入轨迹评分的机制

    第三点,从直觉上来说,检测和追踪是两个相辅相成的问题,良好的追踪可以弥补检测的漏检,良好的检测可以防止追踪的轨道飘逸,用预测来弥补漏检这个问题在DeepSORT里也并没有考虑;

    第四点,DeepSORT里给马氏距离也就是运动模型设置的系数为0,也就是说在相机运动的情况下线性速度模型并不work,所以是不是可以找到更好的运动模型


    最新进展

    f94603f58966fcd8e990a19ab46360fc.png

    这是最近比较新的一些方法。

    工业界青睐的算法在学术界其实并不重视,一方面是因为开源的原因,另一方面可以看到顶会的算法都不是注重速度的,通常用了很复杂的模块和trick来提升精度。

    而且这些trick不是一般意义的trick了,是针对这个数据集的或者说针对糟糕检测器的一些trick, 对于实际应用几乎没有帮助。

    第一篇论文是基于DeepSORT改进的,它的创新点在于引入了轨迹评分机制,时间越久的轨迹可信度就越高,基于这个评分就可以把轨迹产生的预测框和检测框放一起做一个NMS,相当于是用预测弥补了漏检

    第二篇论文是今年9月份发在arxiv上的一篇论文,它的工作是把检测网络和嵌入网络结合起来,追求的是速度和精度的trade off。

    MOTDT

    93758b589f267c8d68dcbcd30705db27.png

    这是刚才列举的第一篇论文(MOTDT)的流程图,大概和DeepSORT差不多。这个图画的比较简单,其实在NMS之前有个基于SqueezeNet的区域选择网络R-FCN轨迹评分的机制。这两个东西的目的就是为了产生一个统一检测框和预测框的标准置信度,作为NMS的输入。

    这篇文章的翻译在《Real-Time Multiple People Tracking With Deeply Learned Candidate Selection And Person Re-ID》论文翻译

    JDE

    da8b91ef819434b6a0a34510d7046cee.png

    这是刚才第二篇论文(JDE)里的结构图。这个方法是基于YOLOv3和MOTDT做的。它网络前面都和YOLOv3一样的,主要就是在特征图里多提取了一个嵌入(embedding)向量,采取的是类似于交叉熵的triplet loss。因为是多任务学习,这篇论文还用了一篇18年的论文提出来的自动学习损失权重方案:通过学习一组辅助参数自动地对非均匀损失进行加权。最后的结果是精度上差不太多,FPS高了很多。

    这篇文章的翻译在 《Towards Real-Time Multi-Object Tracking》论文翻译


    未来展望

    bda83e93223f2aa6d6649bc69afc2f75.png

    最后用多目标追踪未来的一些思考作为结尾,这句话是最近的一篇关于多目标追踪的综述里的。

    它在最后提出对未来的方向里有这样一句话,用深度学习来指导关联问题。其实现在基于检测的多目标追踪都是检测模块用深度学习,Re-ID模块用深度学习,而最核心的数据关联模块要用深度学习来解决是很困难的。现在有一些尝试是用RNN,但速度慢、效果不好,需要走的路都还很长。

    我个人觉得短期内要解决实际问题,还是从Re-ID的方面下手思考怎样提取更有效的特征会更靠谱,用深度学习的方法来处理数据关联不是短时间能解决的。

    参考文献:

    [1] Alex Bewley, Zongyuan Ge, Lionel Ott, Fabio Ramos, and Ben Upcroft. Simple online and realtime tracking. In2016 IEEE International Conference on Image Processing (ICIP), pages 3464–3468. IEEE, 2016.

    [2] Nicolai Wojke, Alex Bewley, and Dietrich Paulus. Simple online and realtime tracking with a deep associationmetric. In2017 IEEE International Conference on Image Processing (ICIP), pages 3645–3649. IEEE, 2017.

    [3] Chen Long, Ai Haizhou, Zhuang Zijie, and Shang Chong. Real-time multiple people tracking with deeplylearned candidate selection and person re-identification. InICME, 2018.

    [4] Zhongdao Wang, Liang Zheng, Yixuan Liu, Shengjin Wang. Towards Real-Time Multi-Object Tracking. arXiv preprint arXiv:1909.12605

    [5] Gioele Ciaparrone, Francisco Luque Sánchez, Siham Tabik, Luigi Troiano, Roberto Tagliaferri, Francisco Herrera. Deep Learning in Video Multi-Object Tracking: A Survey. arXiv preprint arXiv:1907.12740

    下载1:OpenCV-Contrib扩展模块中文版教程

    在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

    下载2:Python视觉实战项目52讲

    在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

    下载3:OpenCV实战项目20讲

    在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

    交流群

    欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

    ea79243b728d571dd7baebfd00ac3c81.png

    c8739540311f8cd575a69244363c46d7.png

    展开全文
  • 深度学习目标跟踪中的应用

    千次阅读 2017-01-04 21:58:05
    深度学习目标跟踪中的应用 程程 · 4 个月前 深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏! 摘要 近年来,深度学习方法在物体跟踪领域有...
  • 基于OpenCV的深度学习目标检测与跟踪.pdf
  • 基于深度学习的视觉多目标跟踪算法综述.pdf
  • 深度学习之多目标检测与跟踪

    千次阅读 2020-07-03 17:31:16
    方法: 1、实时性,每帧视频10...2、方法,首先深度学习检测到目标,然后再写跟踪算法 http://news.eeworld.com.cn/mp/QbitAI/a59568.jspx 官网:https://pjreddie.com/darknet/yolo/ 支持用自己的数据训练模型。 ...
  • 一种基于深度学习目标检测的长时目标跟踪算法.pdf
  • 基于深度学习的视觉目标跟踪算法.pdf
  • 基于深度学习的多目标跟踪算法研究.pdf
  • 1、实现基于深度学习目标跟踪方法 2、yolo v5目标检测模型预训练 3、行人检测模型 4、DeepSORT行人跟踪模型与实现
  • deep_sort_yolo3进行的多目标跟踪,效果不错,在1080ti上可以做到实时,由于csdn上不能上传大于220MB的文件,如果有不会训练模型的朋友,可以私聊我

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,814
精华内容 16,725
关键字:

深度学习目标跟踪