点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
本文作者:OpenMMLab
https://zhuanlan.zhihu.com/p/341283833
本文已由原作者授权,不得擅自二次转载
2021年的第一个工作日,OpenMMLab 有新成员加入咯~
太长不看系列
MMTracking 作为 OpenMMLab 的一体化视频目标感知平台,同时支持了视频目标检测、单目标跟踪、多目标跟踪等多种任务和算法,填补了这些领域内基准开源平台的空白
MMTracking 延续了 OpenMMLab 系列的模块化风格,并与 OpenMMLab 其他平台充分交互,直接通过 configs 即可继承复用 MMDetection 的大量功能,取长补短
MMTracking 提供了简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本
MMTracking 将会长期更新与维护,我们非常欢迎社区贡献与建议。同时,我们也非常非常欢迎大家点赞、试用、反馈、PR:
项目地址:
https://github.com/open-mmlab/mmtracking
新年新气象,我们非常欢迎对 OpenMMLab 项目有兴趣的同学以全职/实习的身份加入我们,海量 HC 等待你的到来。如果你有兴趣,欢迎联系小编~
接下来,我们将详细介绍 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 个点。
目标跟踪工具箱下载
后台回复:MMTracking,即可下载访问开源代码
重磅!CVer-目标跟踪交流群成立
扫码添加CVer助手,可申请加入CVer-目标跟踪 微信交流群,目前已满1500,可交流单目标跟踪、多目标跟踪等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标跟踪+上海+上交+卡卡),根据格式备注,才能通过且邀请进群
▲长按加微信群
▲长按关注CVer公众号
整理不易,请给CVer点赞和在看!