简洁易用,更多算法,快来开箱新一代视频目标感知开源工具箱

MMTracking 是 OpenMMLab 生态面向视频物体感知的开源算法库,主要涵盖了计算机视觉领域丰富的视频物体感知任务,比如视频目标检测、多目标跟踪、视频实例分割、单目标跟踪。

2021 年 1 月,MMTracking 发布了首个版本,集成了当时主流的模型;

2022 年 9 月,我们发布了 MMTracking v1.0.0rc1,全面升级了架构设计,适配全新的 OpenMMLab 2.0 体系。

我们接下来将从 全新架构设计,更简洁的代码结构,更丰富的算法库,更完善的使用文档 四个方面,对全新升级的 MMTracking 1.0 进行介绍。

全新架构设计

在 MMTracking 原有的架构设计中,对于一个典型的模型训练过程,我们可以发现各个模块的构建被分散在了脚本、MMTracking 库函数、MMCV 库函数中(如图 1 所示)模型的前向传播,反向更新分散在执行器和钩子中,这对于用户理解训练流程带来了很多困难,用户需要自定义修改时容易找不到位置。

在这里插入图片描述

图 1:原架构训练逻辑

在新的架构中,MMEngine 的执行器集中了所有的模块构建功能,训练脚本只用于最基本的配置解析(如图 2 所示),这样新的训练流程不仅逻辑更加清晰,大大减少了代码量,还能为用户带来更方便的模型调试体验,让用户灵活地定义模型的前向和反向过程。

在这里插入图片描述

图 2:新架构训练逻辑

更简洁的代码结构

在 0.x 版本中,为了尽可能地复用代码,MMTracking 较为依赖 MMDetection,这对 MMDetection 不熟悉的用户带来了较大的上手难度,在 1.0 版本中,我们尽可能的剥离 MMTracking 对 MMDetction 的依赖:

1.剥离了数据集类对 MMDetection 中 CocoDataset 的依赖。

在 0.x 版本中,MMTracking 某个具体的数据集类,比如 MOTChallengeDataset 的继承关系如下:mmtrack.MOTChallengeDataset --> mmtrack.CocoVideoDataset --> mmdet.CocoDataset --> mmdet.CustomDataset --> torch.utils.data.Dataset,包含了 4 层继承关系,这给用户阅读源码带来了极大的困难;

在 1.0 版本中,得益于 MMEngine 里 BaseDataset 的实现,MMTracking 某个具体的数据集类,比如 MOTChallengeDataset 的继承关系如下:mmtrack.MOTChallengeDataset --> mmtrack.BaseVideoDataset --> mmengine.BaseDataset,同时大部分的代码集中于 mmtrack.BaseVideoDataset,进而将继承关系降低到 2 层,甚至 1 层,为用户理解源码提供了便利。

2.剥离了模型输出格式对 MMDetection 的依赖。

在 0.x 版本中,MMTracking 为了更好地接入 MMDetection 体系,进而利用 MMDetection 丰富的检测模型,模型的输出格式与 MMDetection 保持一致,这导致用户容易不理解模型输出含义的问题;

在 1.0 版本中,MMTracking 使用 MMEngine 的 Datasample 概念构建自己的 TrackDataSample,将网络的输入输出均使用 TrackDataSample 包装,提供了统一的、易读的、易理解的输出格式。

3.剥离了模型输出可视化对 MMDetection 的依赖。

在 0.x 版本中,MMTracking 利用 MMDetection 进行坐标框的可视化,对于使用 MMDetection 中的 API 而无法满足的需求,则在 MMTracking 内部自行实现一套逻辑,这导致了多套可视化逻辑的存在;

在 1.0 版本中,MMTracking 使用 MMEngine 的 Visualizer 模块,为各个任务的可视化提供了一个统一的入口。此外,我们可以直接借鉴 MMDetection 3.x 强大的 2D 图像可视化模块 DetLocalVisualizer 中图像绘制相关的各种强大功能,用在视频物体感知可视化中;同时,我们还极大地增强了可视化功能的可拓展性,用户自定义需要的可视化功能时会更加容易。

更丰富的算法库

MMTracking 目前涵盖了视频目标检测、多目标跟踪、视频实例分割、单目标跟踪四大视频物体感知任务,在 0.x 版本中,MMTracking 共计支持 13 种算法、13 种学术数据集,在 1.0 版本中,我们对一些前沿算法进行了支持,比如多目标跟踪领域的 StrongSORT++、视频实例分割领域的 Mask2former、单目标跟踪领域的 PrDiMP,目前 MMTracking 1.0 版本共计支持 16 种算法、13 种学术数据集

任务算法数据集
视频目标检测DFF

FGFA

SELSA

Temporal ROI Align
ILSVRC
多目标跟踪SORT

DeepSORT

Tracktor

QDTrack

ByteTrack

OCSORT

StrongSORT++
MOT Challenge

CrowdHuman

LVIS

TAO

DanceTrack


视频实例分割


MaskTrack RCNN

Mask2Former
YouTube-VIS
单目标跟踪SiameseRPN++

PrDiMP

STARK
LaSOT

TrackingNet

GOT10K

UAV123

OTB100

VOT2018

更完善的使用文档

在 MMTracking 0.x 版本中,我们在 quick_run.md 中为每个任务的模型使用方法提供了例子,然而由于每个任务的算法有不同的使用方式,这些例子不能很好地覆盖全部的使用样例,因此在 MMTracking 1.0 版本中,为了让用户能够更加简单快捷地使用 MMTracking 中的任何一个算法,在每一个算法 config 对应的 readme.md 里,我们为每一个算法都提供了更加详细的使用文档,包括训练、测试、推理流程,真正做到了开箱即用。

一个多目标跟踪领域 SORT 算法的使用样例如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tya0PPWR-1666869697576)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9772b480b9174c5dbe87886253ea2889~tplv-k3u1fbpfcp-zoom-1.image)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrC8YTze-1666869697577)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/401cca0142d046bda63cb592f289addf~tplv-k3u1fbpfcp-zoom-1.image)]

小结

我们对 MMTracking 1.0 进行一个简单的总结,作为 OpenMMLab 2.0 的视频目标感知工具箱,目前我们已经在整个开源社区获得广泛使用。基于全新的架构和生态,MMTracking 具有可扩展易配置的特性。同时,我们也提供丰富的算法模型,方便的研究工具。

后续规划

未来,我们也将不断地迭代更新,为社区带来更好用的视频目标感知工具箱。我们计划在未来推出更易用的推理接口,更丰富的模型库。同时我们也将不断拓展 MMTracking 的能力,支持更多的视频数据集,更广泛的任务(如视频物体分割、视频全景分割等)。我们也欢迎社区用户来试用新版本的 MMTracking,提出宝贵建议,以及为 MMTracking 贡献代码。

维护时间线

我们将在 2023 年 1 月 1 日正式发布 MMTracking 1.0 版本到主分支,对新版本感兴趣的同学,可以使用 1.x 分支来体验我们的全新版本。我们将在未来保持双分支的同时维护,主要的维护时间线如下所示:

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值