作者:OpenMMLab
转自:AIZOO
目标追踪在工业界是非常实用的,在学术界也是一个热点研究方向,但是一直没有很好的实现多个追踪算法的开源框架。今天,MmLab新增了MMTracking库,可以作为一个很好的baseline。
本文来自:https://zhuanlan.zhihu.com/p/... 已获得授权转载 ,笔者略微更改。
2021年的第一个工作日,OpenMMLab 有新成员加入咯~
太长不看系列
- MMTracking 作为 OpenMMLab 的一体化视频目标感知平台,同时支持了视频目标检测、单目标跟踪、多目标跟踪等多种任务和算法,填补了这些领域内基准开源平台的空白;
- MMTracking 延续了 OpenMMLab 系列的模块化风格,并与 OpenMMLab 其他平台充分交互,直接通过 configs 即可继承复用 MMDetection 的大量功能,取长补短;
- MMTracking 提供了简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本;
MMTracking 将会长期更新与维护,非常欢迎社区贡献与建议。同时,也非常非常欢迎大家点赞、试用、反馈、PR:
项目地址:
https://github.com/open-mmlab...
接下来,我们将详细介绍 MMTracking 的一些具体特性。
MMTracking
1. 首个开源一体化视频目标感知平台
对视频内的目标进行感知识别一直是学界、业界都非常关心的问题。这个问题在学界常被细分为不同的子问题进行研究,比如视频目标检测、多目标跟踪与单目标跟踪。具体来说
- 视频目标检测只需要对视频内的每一帧进行检测,不要求对不同帧中的同一目标进行关联。
- 多目标检测在完成视频目标检测的基础上,更加侧重于对视频内的同一目标进行关联。
- 单目标跟踪更加侧重人机交互,算法需要在给定一个任意类别,任意形状目标的情况下,能够对其进行持续跟踪。
近几年来,虽然各个任务都涌现了许多优秀的算法,这些领域依然缺少开源的代码框架,给代码复现、借鉴、公平对比都带来了很大的困难。同时考虑到这些任务本身是紧密联系的,我们将这些任务融合到了同一框架下,我们希望能够作为开源的一体化视频目标感知平台,能够推动不同子领域间的融合、互促与发展。
2. OpenMMLab 内部项目间的充分交互
视频内的目标感知在大部分情况下可以认为是 2D 目标检测的下游任务,十分依赖各种 2D 目标检测算法。在此之前,如何使用或切换不同的 2D 目标检测器其实是一个很烦琐耗时的任务。
在 MMTracking 中,我们充分利用了 OpenMMLab 其他平台的成果与优势,极大的简化了代码框架。比如,我们 import 或继承了 MMDetection 中的大部分模块,极大的简化了代码框架。在这种模式下,我们可以通过 configs 直接使用 MMDetection 中的所有模型。以多目标跟踪举例,每一个多目标跟踪模型多由以下几个模块组成:
import torch.nn as nn
from mmdet.models import build_detector
class BaseMultiObjectTracker(nn.Module):
def __init__(self,
detector=None,
reid=None,
tracker=None,
motion=None,
pretrains=None):
self.detector = build_detector(detector)
...
Configs 示例:
model = dict(
type='BaseMultiObjectTracker',
detector=dict(type='FasterRCNN', **kwargs),
reid=dict(type='BaseReID', **kwargs),
motion=dict(type='KalmanFilter', **kwargs),
tracker=dict(type='BaseTracker', **kwargs))
其中,现阶段的 ReID 模型也继承了 MMClassification 中的一些模块并将在后期增加其他支持。
受益于 OpenMMLab 的这种模块化设计,我们可以利用其他图像级平台的已有成果,从而只需要注重于视频部分模块的的设计与开发。同时,如果你需要单独训练一个目标检测器,我们也支持直接使用 MMDetection 的 configs 进行训练,只需要在 config 中添加一句 USE_MMDET=True
, 即可将模式切换到 MMDetection 下,来进行前序模型训练。
3. 高效、强大的基准模型
在视频目标感知这一领域有相关科研经的同学们应该都会感受到这些任务中的不同方法一般各成一派,十分缺乏公认的训练方法与准则,因此在很多时候很难做到真正的公平对比。
在 MMTracking v0.5 中,我们复现了各个领域的主流算法,包括
- 视频目标检测:DFF, FGFA, SELSA
- 多目标跟踪:SORT, DeepSORT, Tracktor
- 单目标跟踪: SiameseRPN++
受益于MMDetection的持续推进,我们的方法在保证了高效的训练、推理的基础上,有些模型甚至超出官方实现,例如:
- 对视频目标检测算法 SELSA 的实现结果(第一行)相比于官方实现(第二行),在 ImageNet VID 数据集上 mAP@50 超出 1.25 个点。
- 对多目标跟踪算法 Tracktor 的实现结果(第一行)相比于官方实现(第二行),在 MOT17 数据集上 MOTA 超出 4.9 个点以及 IDF1 超出 3.3 个点。
- 对单目标跟踪算法 SiameseRPN++ 的实现结果(第一行)相比于官方实现(第二行),在 LaSOT 数据集上 Norm precision 超出 1.0 个点。
作为 MM 系列的新晋成员,MMTracking 也将会持续不断的增加支持的数据集与算法模型,提升用户体验。
文末再附上地址:
https://github.com/open-mmlab...
相关阅读
关注元峰微信号“AIZOOTech”
更多算法模型相关请关注AIZOO专栏