行人检测与重识别!SOTA算法
行人检测与重识别!SOTA算法
A Simple Baseline for Multi-Object Tracking,
Yifu Zhang, Chunyu Wang, Xinggang Wang, Wenjun Zeng, Wenyu Liu,
论文地址:https://arxiv.org/pdf/2004.01888.pdf
GitHub 地址:https://github.com/ifzhang/FairMOT

Installation
克隆这个repo,调用克隆的目录${FAIRMOT_ROOT} 。
安装依赖项。
使用python3.7和pytorch >= 1.2.0。
在骨干网中使用DCNv2,更多细节可以在repo中找到。
运行演示代码,还需要安装ffmpeg。
conda create -n
FairMOT
conda activate
FairMOT
conda install
pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
cd ${FAIRMOT_ROOT}
pip install -r
requirements.txt
cd src/lib/models/networks/DCNv2_new sh make.sh
Data
preparation
使用类似JDE的训练数据。请参阅DATA ZOO,下载并准备所有的训练资料,包括加Caltech
Pedestrian, CityPersons, CUHK-SYSU, PRW, ETHZ, MOT17 and MOT16.数据。可从MOT challenge官方网页下载。下载后,应按以下结构准备数据:
MOT15
|——————images
|
└——————train
|
└——————test
└——————labels_with_ids
└——————train(empty)
MOT20
|——————images
|
└——————train
|
└——————test
└——————labels_with_ids
└——————train(empty)
Then,
you can change the seq_root and label_root in src/gen_labels_15.py and
src/gen_labels_20.py and run:
cd src
python
gen_labels_15.py
python gen_labels_20.py
to
generate the labels of 2DMOT15 and MOT20. The seqinfo.ini files of 2DMOT15 can
be downloaded here [Google],
[Baidu],code:8o0w.
如何将目标检测和重识别融合进一个框架,帮助解决多目标跟踪任务?作者找出了这一方向的痛点所在,同时提出了一个简单而有效的新方法。该方法以 30 fps 运行时在公开数据集上的性能超越了之前的 SOTA 结果。

近年来,目标检测和重识别均取得长足进步,而它们正是多目标跟踪的核心组件。但是,没有太多研究人员试图用一个框架完成这两项任务,进而提升推断速度。然而最初朝着这个方向努力的研究者得到的结果却是性能下降,因为重识别任务无法得到恰当地学习。
该方法以 30 fps 运行时在公开数据集上的性能超越了之前的 SOTA 结果。

FairMOT 在 MOT 挑战赛测试集上的效果。
此外,该研究还公开了代码和预训练模型。
多目标跟踪的难点
多目标跟踪 (MOT) 是计算机视觉领域中的重要任务,当前最优的方法通常使用两个单独的模型:首先用检测模型定位图像中目标的边界框位置,然后用关联模型对每个边界框提取重识别 (Re-identification, Re-ID) 特征,并根据这些特征定义的特定度量将边界框与现有的一个跟踪结果联结起来。
近年来,目标检测和 Re-ID 均取得巨大进步,并提升了目标跟踪的性能。但是,现有方法无法以视频帧速率执行推断,因为两个网络无法共享特征。
随着多任务学习的成熟,结合目标检测和 Re-ID 的
one-shot 方法逐渐吸引越来越多的注意力。由于这两个模型共享大部分特征,因此它们有可能显著缩短推断时间。
但是,one-shot 方法的准确率相比两阶段方法有显著下降,尤其是 ID 转换(identity switch)量大增的情况下。也就是说,把这两个任务合二为一并不简单,需要谨慎看待。
哪些因素对目标跟踪结果影响最大?
华中科技大和微软亚研的这项研究没有借助训练 trick 提升跟踪准确率,而是试图分析「二合一」失败的原因,并提出了一种简单而有效的基线方法。
根据研究,以下三个因素对跟踪结果的影响最大:
锚点与 Re-ID 不匹配
现有的 one-shot 跟踪器 [35,33] 均以锚点为基础,因为它们由目标检测器发展而来。但是,锚点却不适合学习 Re-ID 特征。原因如下:首先,对应于不同图像块的多个锚点可能负责估计同一个目标的
id,这导致严重的歧义(参见图 1)。此外,需要将特征图的大小缩小 1/8,以平衡准确率和速度。对于检测任务而言这是可以接受的,但对于 Re-ID 来说就有些粗糙了,因为目标中心可能无法与在粗糙锚点位置提取的特征一致。
该研究对此提出的解决方案是:将 MOT 问题看作在高分辨率特征图上的像素级关键点(目标中心)估计和 id 分类问题。

图 1:(a) 尽管黄色和红色锚点的图像块不同,但它们估计的是同一个 ID(穿蓝色上衣的人)。此外,基于锚点的方法通常在粗糙网格上运行,因此在此类锚点(红色或黄色五角星)处提取的特征大概率无法与目标中心一致。(b) anchor-free 方法的歧义要少一些。
多层特征聚合
这对于 MOT 问题尤其重要,因为 Re-ID 特征需要利用低级和高级特征来适应小型和大型目标。研究者通过实验发现,这对降低 one-shot 方法的 id 转换数量有所帮助,因为它提升了处理尺度变换的能力。
Re-ID 特征的维度
之前的 Re-ID 方法通常学习高维特征,在其基准上达到了不错的结果。但是,该研究发现较低维度的特征对于 MOT 任务效果更好,因为该任务的训练图像比 Re-ID 少(由于 Re-ID 数据集仅提供剪裁后的人像,因此 MOT 任务不使用此类数据集)。
学习低维特征有助于降低过拟合的风险,并提升目标跟踪的稳健性。
方法
下图 2 展示了该研究提出的方法。
首先,采用 anchor-free 目标检测方法,估计高分辨率特征图上的目标中心。去掉锚点这一操作可以缓解歧义问题,使用高分辨率特征图可以帮助 Re-ID 特征与目标中心更好地对齐。
然后,添加并行分支来估计像素级 Re-ID 特征,这类特征用于预测目标的 id。具体而言,学习既能减少计算时间又能提升特征匹配稳健性的低维 Re-ID 特征。
在这一步中,研究者用深层聚合算子(Deep Layer Aggregation,DLA)[41] 来武装主干网络
ResNet-34 [13],从而融合来自多个层的特征,处理不同尺度的目标。

图 2:该研究提出的 one-shot MOT 跟踪器图示。首先将输入图像馈入编码器-解码器网络,以提取高分辨率特征图(步幅=4);然后添加两个简单的并行 head,分别预测边界框和 Re-ID 特征;最后提取预测目标中心处的特征进行边界框时序联结。
实验
研究者在 MOT 挑战赛基准上借助评估服务器评估了本文提出的方法。与其他在线跟踪器相比,本文提出的方法在 2DMOT15、MOT16、MOT17
及 MOT20 数据集上均名列第一。此外,在 2DMOT15、MOT16 和 MOT17 数据集上,该方法的性能还优于离线跟踪器(MOT20 是个新数据集,之前研究没有相关结果)。虽然结果比较惊艳,但该方法非常简单,且运行速率为 30 FPS。
控制变量研究
1. 基于锚点(anchor-based)和无锚点(anchor-free)

表 1:在 MOT15 数据集上,基于锚点和无锚点方法在验证视频上的评估结果。
2. 多层特征聚合

表 2:不同主干网络在 2DMOT15 数据集上的评估结果。

表 3:主干网络对不同尺度目标的影响。
Re-ID 特征维度

表 4:不同 Re-ID 特征维度在
2DMOT15 数据集上的评估结果
与当前最佳模型的比较
研究者将本文提出的方法与当前最佳方法进行了对比,包括 one-shot 方法和 two-step 方法。

表 5:在两个数据集上与当前最佳 one-shot 跟踪器的对比结果。

表 6:与「private
detector」设定下的 SOTA 结果进行对比。
行人检测与重识别!SOTA算法的更多相关文章
- 【论文解读】行人检测:What Can Help Pedestrian Detection?(CVPR'17)
前言 本篇文章出自CVPR2017,四名作者为Tsinghua University,Peking University, 外加两名来自Megvii(旷视科技)的大佬. 文章中对能够帮助行人检测的ex ...
- CVPR2020行人重识别算法论文解读
CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...
- 行人重识别(ReID) ——数据集描述 Market-1501
数据集简介 Market-1501 数据集在清华大学校园中采集,夏天拍摄,在 2015 年构建并公开.它包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的 1501 个行人.32668 个 ...
- 行人重识别(ReID) ——概述
什么是Re-ID? 行人重识别(Person re-identification,简称Re-ID)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术.广泛被认为是一个图像 ...
- 行人重识别(ReID) ——技术实现及应用场景
导读 跨镜追踪(Person Re-Identification,简称 ReID)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下行人的识别与检索.该技术能够根据行人的穿着.体态.发型等信 ...
- 行人重识别(ReID) ——基于深度学习的行人重识别研究综述
转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...
- Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结 1.1. 原理,主要使用像素模糊后的差别会变小1 1.2. 具体流程1 1.3. 提升性能 可以使用采样法即可..1 ...
- Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理 1.1. 图像边缘一般都是通过对图像进行梯度运算来实现的1 1.2. Remark: 1 1.3. 1.失焦检测. 衡量画面模糊的主要方 ...
- 行人重识别(ReID) ——数据集描述 CUHK03
数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ...
随机推荐
- SpringBoot自定义配置以及IDEA配置提示
本篇文章将会讲解在springboot项目中如何实现自定义配置以及在IDEA或者Eclipse中实现配置项提示,就像spring的配置提示一样 想要做到这点其实非常简单 1.添加依赖 <depe ...
- Vue学习(三)-Vue-router路由的简单使用
一.Vue-Router环境的安装: 如果使用vue-cli脚手架搭建,项目创建过程中会提示你自否选择使用vue-router,选择使用即可, 二.路由学习 1.路由的配置 vue-cli项目自 ...
- hdu4503 概率
题意: 湫湫系列故事--植树节 Time Limit: 1000/500 MS (Java/Others) Memory ...
- Android进程so注入Hook java方法
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/53769331 Andorid的Hook方式比较多,现在来学习下,基于Android ...
- hdu 4891 模拟
题意: 给你一个串,问你有几种意思,有两个规则 (1) { } 答案乘以 ({}之间"|"的个数 + 1) (2) && 答案乘以 (&a ...
- Python数模笔记-Sklearn(1) 介绍
1.SKlearn 是什么 Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包. Sklearn 主要用Python编写,建立在 Numpy.Scipy.Pa ...
- ppt技巧--线条
声明:本文所有截图来源于网易云课堂--<和秋叶一起学PPT>,只做个人复习之用,特此声明! 线条的五种用途:
- 新代(Syntec)机床的IP设置
一.前言 通过以太网来做机床联网数据采集时,第一步通常是设置机床的IP和找网口 二.机床IP如何设置? 步骤一.找到设置IP的界面 [维护]>[网络设定] 步骤二.设置IP 设定[IP地址取得方 ...
- .Net平台的GC垃圾回收
一.先了解下必备的知识前提 内存中的托管与非托管,可简单理解为: 托管:可借助GC从内存中释放的数据对象(以下要描述的内容点) 非托管:必须手工借助Dispose释放资源(实现自IDisposable ...
- 风变编程(Python自学笔记)第12关-我们都是中国人
1.类的个例叫做实例:类,是对某个群体的统称(类是某个特定的群体),实例是群体中某个具体的个体. 2.Python中的对象等于类和实例的集合. 3. 类的创建:class+类名+冒号,后面语句要缩进. ...