OpenMMLab MMTracking目标跟踪官方文档学习(一)

news2025/1/18 7:00:31

介绍

MMTracking 是PyTorch的开源视频感知工具箱。它是OpenMMLab项目的一部分。
它支持 4 个视频任务:
视频对象检测 (VID)
单目标跟踪 (SOT)
多目标跟踪 (MOT)
视频实例分割 (VIS)

主要特点

第一个统一视频感知平台
我们是第一个统一多功能视频感知任务的开源工具箱,包括视频对象检测、多对象跟踪、单对象跟踪和视频实例分割。

模块化设计
我们将视频感知框架分解为不同的组件,并且可以通过组合不同的模块轻松构建定制的方法。

简单、快速、强大
简单:MMTracking 与其他 OpenMMLab 项目交互。它基于MMDetection构建,我们只需通过修改配置即可利用任何检测器。
快速:所有操作都在 GPU 上运行。训练和推理速度比其他实现更快或相当。
Strong:我们重现了最先进的模型,其中一些模型甚至优于官方实现。

入门

MMTracking的基本使用方法请参考get_started.md 。
提供了 Colab 教程。您可以在此处预览笔记本或直接在Colab上运行它。

号外号外~ MMTracking 要开始持续更新啦

同时释放了高效、强大的基准模型,部分实现超出官方版本(比如视频目标检测中的 SELSA、多目标跟踪中的 Tracktor、单目标跟踪中的 SiameseRPN++),在部分学术数据集(比如 ImageNet VID)达到 SOTA 水平。

1)、在 MMTracking V0.5.0 刚刚发布的时候,我们支持了以下算法:

视频目标检测(VID)算法:

视频目标检测只需要对视频内的每一帧进行检测,不要求对不同帧中的同一目标进行关联。
DFF (CVPR 2017)
FGFA (ICCV 2017)
SELSA (ICCV 2019)
Temporal RoI Align (AAAI 2021)

多目标跟踪(MOT)算法:

多目标检测在完成视频目标检测的基础上,更加侧重于对视频内的同一目标进行关联。
SORT (ICIP 2016)
DeepSORT (ICIP 2017)
Tracktor (ICCV 2019)

单目标跟踪(SOT)算法:

单目标跟踪更加侧重人机交互,算法需要在给定一个任意类别,任意形状目标的情况下,能够对其进行持续跟踪。
SiameseRPN++ (CVPR 2019)

MMTracking V0.7.0 发布啦!该版本主要新增了以下特性:
Codebase
重构、完善了英文用户文档、中文用户文档,用鲜明的例子告诉大家如何推理、测试、训练 VID、MOT、SOT 的模型
支持所有算法的 FP16 训练与测试
VID
支持新的视频目标检测算法 Temporal RoI Align (AAAI 2021), 同时为所有视频目标检测算法提供了使用 ResNeXt-101 为 backbone 的预训练模型,该方法以 84.1 mAP@50 的性能在 ImageNet VID 数据集上达到了 SOTA 水平
MOT
提供 Tracktor 在 MOT15、MOT16、MOT20 上的结果,在更加复杂的 MOT20 数据集的主要评估指标 MOTA 上,比官方版本高出 5.3 个点
支持在 MOT 数据集训练 ReID model
支持在 MOT 数据集进行错误(FP、FN、IDS)可视化分析
SOT
支持更多的 SOT 数据集:LaSOT、UAV123、TrackingNet,其它主流数据集也即将支持

OpenMMLab 内部项目间的充分交互

MMTracking: 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))

快速上手!MMTracking 食用指南 之 VID 篇(视频目标检测)(附 AAAI2021 论文解读 !)

1、运行 VID demo

该脚本可以使用视频对象检测模型来推断输入视频。

python demo/demo_vid.py \
    ${CONFIG_FILE}\
    --input ${INPUT} \
    --checkpoint ${CHECKPOINT_FILE} \
    [--output ${OUTPUT}] \
    [--device ${DEVICE}] \
    [--show]

并且INPUT和OUTPUT支持mp4视频格式和文件夹格式。
可选参数:

OUTPUT:可视化演示的输出。如果未指定,则–show有义务即时播放视频。
DEVICE:用于推理的设备。选项有cpu或cuda:0等。
–show:是否动态显示视频。

例子:

假设您已经将检查点下载到该目录checkpoints/,您的视频文件名为demo.mp4,输出路径为./outputs/

python ./demo/demo_vid.py \
    configs/vid/selsa/selsa_faster-rcnn_r50-dc5_8xb1-7e_imagenetvid.py \
    --input ./demo.mp4 \
    --checkpoint checkpoints/selsa_faster_rcnn_r101_dc5_1x_imagenetvid_20201218_172724-aa961bcc.pth \
    --output ./outputs/ \
    --show

在 MMTracking 根目录下只需执行以下命令,即可使用 SELSA + Temporal RoI Align 算法运行 VID demo

python demo/demo_vid.py configs/vid/temporal_roi_align/selsa-troialign_faster-rcnn_r101-dc5_8xb1-7e_imagenetvid.py  --input demo/demo.mp4 --checkpoint checkpoints/selsa_troialign_faster_rcnn_r101_dc5_7e_imagenetvid_20210822_111621-22cb96b9.pth --output vid.mp4  --show
python demo/demo_vid.py configs/vid/temporal_roi_align/selsa-troialign_faster-rcnn_x101-dc5_8xb1-7e_imagenetvid.py --input demo/demo.mp4 --checkpoint checkpoints/selsa_troialign_faster_rcnn_x101_dc5_7e_imagenetvid_20210822_164036-4471ac42.pth --output vid.mp4  --show

在这里插入图片描述

2、测试 VID 模型

在 MMTracking 根目录下使用以下命令即可测试 VID 模型,并且评估模型的 bbox mAP

./tools/dist_test.sh configs/vid/temporal_roi_align/selsa_troialign_faster_rcnn_r101_dc5_7e_imagenetvid.py 8 \
    --checkpoint checkpoints/selsa_troialign_faster_rcnn_r101_dc5_7e_imagenetvid_20210822_111621-22cb96b9.pth \
    --out results.pkl \
    --eval bbox

3、训练 VID 模型

在 MMTracking 根目录下使用以下命令即可训练 VID 模型,并且在最后一个 epoch 评估模型的 bbox mAP

./tools/dist_train.sh ./configs/temporal_roi_align/selsa_troialign_faster_rcnn_r101_dc5_7e_imagenetvid.py 8 \
    --work-dir ./work_dirs/

最新上线!MMTracking 视频实例分割篇食用指南
上新!MMTracking 单目标跟踪任务食用指南
MMTracking 多目标跟踪(MOT)任务的食用指南

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自建DNSlog服务器

DNSlog简介 在某些情况下,无法利用漏洞获得回显。但是,如果目标可以发送DNS请求,则可以通过DNS log方式将想获得的数据外带出来。 DNS log常用于以下情况: SQL盲注无回显的命令执行无回显的SSRF 网上公开提供dnslog服务有很多…

windows 搭建ssh服务

1、官网下载安装包:mls-software.com 2、点击安装(一直默认即可) 3、配置 opensshServer 4、成功登录

云数据库MySQL相关帮助

1.为什么创建数据库后在数据库列表中不显示? 因为列表读取的是information_schema,刚创建的数据库是空库,没有数据写入,不会写入缓存表,所以不会显示,但不影响正常使用,可以直接对新建的数据库进…

2.数据结构面试题--消失的数字

面试题:消失的数字 数组nums包含从0到n的所有整数,但是其中缺了一个,请编写代码找出那个缺失的整数,你有办法O(N)时间内完成吗? 方法1.排序:依次查找 如果下一个数不是上一个数1,那么上一个数字1就是消失的数字 冒泡排序的话时间复杂度是O(n^2) qsort排序的话是O(NlogN) 需…

Python爬虫——urllib_get请求的quote方法和urlencode方法

quote方法: 将字符转换为对应Unicode编码 import urllib.request import urllib.parse# 获取 https://www.baidu.com/s?wd周杰伦 网页源码 url "https://www.baidu.com/s?wd" headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKi…

stm32 报错 dev_target_not_halted

烧录stm32H743,在cubeprogrammer里面点击connect,报错dev_target_not_halted 解决方法:先把H743的boot0引脚接到高电平上,然后少上电,此时会停止内核的运行,再点击connect即可 H743管脚: 在芯…

windows系统 安装 InfluxDB

一、InfluxDB下载 InfluxDB的windows(64-bit)下载地址为:https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_windows_amd64.zip 二、安装 influxDB是不需要安装的,只需要将压缩文件解压到相应的目录即可;…

STM32CubeMX+Eclipse+gcc+Jlink 实现STM32开发环境搭建

本节记录通过STM32CubeMXEclipsegccJlink 进行STM32环境搭建的过程; 文章目录 一、环境确认二、Eclipse建立工程三、指定编译路径四、选择gcc路径五、选择make路径六、 选择Device 参考: https://blog.csdn.net/qq_35787848/article/details/124395509 h…

OPPO手机便签怎么上传录音文件?

相信很多网友对OPPO这个手机品牌并不陌生,因为它凭借时尚轻薄的外观设计、流畅简约的系统、清晰的拍照摄影以及高中低不同的价位选择,赢得了不少年轻消费者的青睐。不过在使用OPPO手机的过程中,也有不少用户表示自己遇到了各种各样的问题&…

mycat设置sql隔离级别的问题

问题 General log中出现大量SQL “SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ”。 该语句会引起两个问题, 1: "REPEATABLE READ"不是我们预期的事物隔离级别。 2: 大量无效的SQL影响性能。 注: MySql的可重复读会带来怎样…

高科技感发光地球(全息地球)的制作

目录 一、新建合成,导入素材 二、添加Form粒子 三、复制一层Form粒子 四、添加plexus 粒子 五、复制一层 plexus 粒子 六、添加调整层增加颜色 七、增加shine 效果 八、添加发光效果 九、最终效果图 高科技感发光地球(全息地球)的效…

自动化测试工具比传统测试工具的优势体现在哪里?

随着软件行业的快速发展和扩张,自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用,那你知道自动化测试工具比传统测试工具的优势体现在哪里吗? 首先,自动化测试工具能够大大缩短测试周期。相比于传统手动测试&#xff…

在 3ds Max 中对二战球形炮塔进行建模

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 实际上被称为“斯佩里球炮塔”,它被用于二战的B-17和B-24轰炸机。 本教程介绍如何在 3ds Max 中对球形转塔进行建模。建模时,您将使用背景图片作为辅助。首先创建一个低多边形球体。…

【Linux系统编程(文件编程)】之复现cp指令、修改文件应用

文章目录 一、文件操作原理二、文件操作步骤三、实现 cp 复制指令四、修改配置文件五、写一个整数到文件六、写结构体数组到文件01 结构体02 结构体数组 一、文件操作原理 文件描述符: 对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个…

Docker:overlay2浅析以及解决overlay2 文件过大的问题

最近在学习docker的实现时看到这么一个概念:Union File System,先让我们来介绍介绍它。 Union File System 定义:联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作…

VSCode 最全实用插件(VIP典藏版)

目录 一、必备插件 🌾Chinese(中文🌈🌈🌈🌈🌈) 🤡Settings Sync(配置同步到云端) 🌈wakatime(编程时间及行为跟踪统计&…

多目标跟踪数据关联算法

跟踪门 跟踪门的作用是将观测回波分配给已建立的目标轨迹或者新目标轨迹的一种粗略检验方法, 是机动目标跟踪中首当其冲的问题 。跟踪门是跟踪空间中的一块子空间 ,中心位于被跟踪目标的预测状态 ,其大小由接收正确回波的概率确定。设置的跟…

阿里云AliYun物联网平台使用-客户端API获取设备传感数据

一、前言 上一篇文章中,已经实现了虚拟数据上云,本文我们将进行上位机客户端的开发,即通过调用阿里云IOT物联网云平台的SDK,开发能获取传感器的遥感数据。 二、云平台操作 调用API需要用户的AccessKey Secret,这意味着…

使用IDEA的Run DashBoard

在微服务开发过程中,我们需要开启很多的服务,为了方便管理,我们可以使用IDEA的Run DashBoard来启动相关服务。 默认情况下,IDEA检测到你的项目中由SpringBoot项目时,会提示你开启Run DashBoard。如果没有开启的话&…

MySql5.6版本开启慢SQL功能

文章目录 1引言1.1目的1.2注意点说明1.3 操作步骤1.3.1 临时生效操作步骤1.3.2 永久生效操作步骤1.3.3 按日期生成日志文件1.3.4 执行成功后验证功能是否开启 1.4 慢SQL日志记录内容介绍1.5 Shell脚本 1引言 1.1目的 开启 MySQL 的慢查询日志(Slow Query Log&…