简洁易用,更多算法,快来开箱新一代视频目标感知开源工具箱
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 分支来体验我们的全新版本。我们将在未来保持双分支的同时维护,主要的维护时间线如下所示:
简洁易用,更多算法,快来开箱新一代视频目标感知开源工具箱相关推荐
- 3D-BoNet:比3D点云实例分割算法快10倍!代码已开源
点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自新智元(AI_era) 新智元报道 来源:投稿 编辑:元子 [新智元导读]本文提出了一种基于边界框回归的高效点云实例分割算法,通过最小 ...
- 浅谈Retrofit封装-让框架更加简洁易用
尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiquan/article/details/52329259, 本文出自:[gengqiquan的博客] 不知不 ...
- Life——一个简洁易用的强化学习库,基于pytorch
简介 Life是一个基于pytorch实现的强化学习库,实现了多种强化学习算法. 项目地址:https://github.com/HanggeAi/Life 目前包含的强化学习算法 Sarsa mul ...
- Easydict 简洁易用的翻译词典,带你轻松优雅地查找单词或翻译文本。
Easydict Easydict 是一个简洁易用的翻译词典 macOS App,能够轻松优雅地查找单词或翻译文本.Easydict 开箱即用,能自动识别输入文本语言,支持输入翻译,划词翻译和 OCR ...
- 了解:一款造福商家的收银软件来啦!2009年至今,致力服务店主10+年,已有 10,000+ 用户共同选择;简洁易用、安全稳定、服务周到、正版软件!轻便好用,让业绩飞起来新一代收银
了解:一款造福商家的收银软件来啦! 2009年至今,致力服务店主10+年,已有 10,000+ 用户共同选择:简洁易用.安全稳定.服务周到.正版软件! 轻便好用,让业绩飞起来 新一代收银系统 全面支持 ...
- vue 提示框modal_v-dialogs v1.9.0 - 基于 Vue2 的简洁易用的弹出窗口,包含 modal, alert, mask, toast 等功能模式...
v-dialogs 基于Vue2.x的简洁易用的弹出窗口插件,其包含有 Modal, Alert, Mask 与 Toast 等功能模式 更多文档.Demo 请访问: the jQuery versi ...
- 白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
文章目录 概述 易并行聚合算法 三角选择原则 近似聚合算法 概述 继续跟中华石杉老师学习ES,第45篇 课程地址: https://www.roncoo.com/view/55 易并行聚合算法 有些聚 ...
- 排序算法--快排的优化
排序算法–快排的优化 下面是我写的一种快排: #include <iostream> #include <stdlib.h>using namespace std;void P ...
- AgentWeb , 一个简洁易用的 Android Web 库
转自:http://www.jianshu.com/p/c80da1c41af7 AgentWeb 介绍 AgentWeb 是一个高度封装的 Android WebView ,简单易用 , 带有进度条 ...
最新文章
- R语言广义线性模型函数GLM、(Model fit and regression diagnostics)、模型充分性评估方法、使用plot函数以及car包函数
- 如何使用Cisco命令阻止访问特定网站
- java 整型_Java整型计算
- keepalived中的脑裂
- [SCOI2007] 蜥蜴 (最大流)
- JavaScript的Prototype实现
- 英语语法---动名词短语详解
- java 实现 指派_TAP任务指派问题的汇编实现
- python调用zabbixapi接口_python调用zabbix api获取主机信息
- 《Web安全之机器学习入门》一 第3章 机器学习概述
- AcWing 1015. 摘花生 (DP)
- python与java区别-Java与Python到底有什么区别和共同点详细对比
- 在html文件中使用支持FLV、HLS、RTSP、WS-FLV/WS-RTSP、WEBRTC、HEVC/H265的永久免费H5直播点播播放器SkeyeWebPlayer.js
- 机器人周志_机器人制造基础学习日志
- 小米随身wifi没有网络显示无服务器,小米wifi怎么用 小米随身wifi无法上网怎么办...
- 数字供销方案、供销社数字化、信息化
- Exif的Orientation信息说明
- 代数数、超越数、代数函数、超越函数
- MarkDown支持Emoji表情
- 哪款蓝牙耳机性价比高?双十一蓝牙耳机推荐