【开源】港中文多媒体实验室开源目标跟踪工具箱MMTracking

2021-01-14 14:44:37 浏览数 (1)

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨OpenMMLab@知乎(已授权)

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

编辑丨realcat

2021年的第一个工作日,OpenMMLab又有新成员加入。

太长不看系列

MMTracking作为OpenMMLab的一体化视频目标感知平台,同时支持了视频目标检测、单目标跟踪、多目标跟踪等多种任务和算法,填补了这些领域内基准开源平台的空白MMTracking延续了OpenMMLab系列的模块化风格,并与OpenMMLab其他平台充分交互,直接通过configs即可继承复用MMDetection的大量功能,取长补短MMTracking提供了简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本。

地址:github.com/open-mmlab/mmtracking

接下来,我们将详细介绍 MMTracking 的一些具体特性。

MMTracking

1. 首个开源一体化视频目标感知平台

对视频内的目标进行感知识别一直是学界、业界都非常关心的问题。这个问题在学界常被细分为不同的子问题进行研究,比如视频目标检测、多目标跟踪与单目标跟踪。具体来说:

  • 视频目标检测只需要对视频内的每一帧进行检测,不要求对不同帧中的同一目标进行关联。
  • 多目标检测在完成视频目标检测的基础上,更加侧重于对视频内的同一目标进行关联。
  • 单目标跟踪更加侧重人机交互,算法需要在给定一个任意类别,任意形状目标的情况下,能够对其进行持续跟踪。

近几年来,虽然各个任务都涌现了许多优秀的算法,这些领域依然缺少开源的代码框架,给代码复现、借鉴、公平对比都带来了很大的困难。同时考虑到这些任务本身是紧密联系的,我们将这些任务融合到了同一框架下,我们希望能够作为开源的一体化视频目标感知平台,能够推动不同子领域间的融合、互促与发展。

2. OpenMMLab 内部项目间的充分交互

视频内的目标感知在大部分情况下可以认为是2D目标检测的下游任务,十分依赖各种 2D 目标检测算法。在此之前,如何使用或切换不同的2D目标检测器其实是一个很烦琐耗时的任务。

在MMTracking中,我们充分利用了OpenMMLab其他平台的成果与优势,极大的简化了代码框架。比如,我们import或继承了MMDetection中的大部分模块,极大的简化了代码框架。在这种模式下,我们可以通过configs直接使用MMDetection中的所有模型。以多目标跟踪举例,每一个多目标跟踪模型多由以下几个模块组成:

代码语言:javascript复制
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 示例:

代码语言:javascript复制
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 也将会持续不断的增加支持的数据集与算法模型,提升用户体验。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

0 人点赞