Windows下PP-Tracking多目标跟踪数据训练

2023-11-19

PP-Tracking之手把手玩转多目标跟踪 - 飞桨AI Studio - 人工智能学习与实训社区PP-Tracking之手把手玩转多目标跟踪 - 飞桨AI Studio - 人工智能学习与实训社区https://aistudio.baidu.com/aistudio/projectdetail/3022582数据下载链接

https://bj.bcebos.com/v1/paddledet/data/mot/demo/MOT16.zipicon-default.png?t=LBL2https://bj.bcebos.com/v1/paddledet/data/mot/demo/MOT16.zip解压后移动到PaddleDetection\dataset\mot\images目录

创建labels_with_ids目录

 

打开cmd,进入python环境activate paddle_env然后进入PaddleDetection根目录

如果不懂可以查看这篇文章

Windows下的Conda安装并创建python环境_シ❤゛甜虾的个人博客-CSDN博客Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学,Anaconda致力于简化包管理和部署。Anaconda的包使用软件包管理系统Conda进行管理。Conda是一个开源包管理系统和环境管理系统,可在Windows、macOS和Linux上运行。下载Anaconda,然后进行安装https://www.anaconda.com/安装Anaconda后,以管理员运行CMD,创建python3.9的环境conda create -n paddle_env python=https://blog.csdn.net/g313105910/article/details/122447198执行gen_labels_MOT.py,生成mot16.train文件

user_gen_labels_MOT.py的代码

# 生成mot16.train文件并且复制到 image_lists下面
import glob
import os.path as osp
image_list = []
for seq in sorted(glob.glob('PaddleDetection/dataset/mot/MOT16/images/train/*')):
    for image in glob.glob(osp.join(seq, "img1")+'/*.jpg'):
        image = image.replace('PaddleDetection/dataset/mot/','')
        image_list.append(image)
with open('mot16.train','w') as image_list_file:
    image_list_file.write(str.join('\n',image_list))

生成的文件很奇怪

复制过去目录就是这个样子

 

修改配置文件里面的数据集

添加在PaddleDetection/configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml文件最后

... ...
# for MOT training
# for MOT training
TrainDataset:
  !MOTDataSet
    dataset_dir: dataset/mot
    image_lists: ['mot16.train']
    data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']

# for MOT evaluation
# If you want to change the MOT evaluation dataset, please modify 'data_root'
EvalMOTDataset:
  !MOTImageFolder
    dataset_dir: dataset/mot
    data_root: MOT16/images/train
    keep_ori_im: False # set True if save visualization images or video, or used in DeepSORT

# for MOT video inference
TestMOTDataset:
  !MOTImageFolder
    dataset_dir: dataset/mot
    keep_ori_im: True # set True if save visualization images or video

添加完就是这个样子

 

开始训练

使用MOT16-02序列作为训练数据,训练30epoch,V100环境下大约需要30分钟

在PaddleDetection根目录创建一个fairmot_dla34_30e_1088x608目录用来存放日志,然后执行如下命令开始训练

python -m paddle.distributed.launch --log_dir=fairmot_dla34_30e_1088x608/ --gpus 0 tools/train.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml

果然之前发现文件内容比较怪的地方出问题了,批量修改一下

配置文件也需要改成这个样子,因为我用的是windows

_BASE_: [
  '../../datasets/mot.yml',
  '../../runtime.yml',
  '_base_/optimizer_30e.yml',
  '_base_/fairmot_dla34.yml',
  '_base_/fairmot_reader_1088x608.yml',
]

weights: output/fairmot_dla34_30e_1088x608/model_final

# for MOT training
# for MOT training
TrainDataset:
  !MOTDataSet
    dataset_dir: dataset\mot
    image_lists: ['mot16.train']
    data_fields: ['image', 'gt_bbox', 'gt_class', 'gt_ide']

# for MOT evaluation
# If you want to change the MOT evaluation dataset, please modify 'data_root'
EvalMOTDataset:
  !MOTImageFolder
    dataset_dir: dataset\mot
    data_root: MOT16\images\train
    keep_ori_im: False # set True if save visualization images or video, or used in DeepSORT

# for MOT video inference
TestMOTDataset:
  !MOTImageFolder
    dataset_dir: dataset\mot
    keep_ori_im: True # set True if save visualization images or video

开始训练了

如果显卡内存不够会提示

为了方便我们下载训练好的模型进行eval,如果显存不够下载别人训练好的

https://paddledet.bj.bcebos.com/models/mot/fairmot_dla34_30e_1088x608.pdparamsicon-default.png?t=LBL2https://paddledet.bj.bcebos.com/models/mot/fairmot_dla34_30e_1088x608.pdparams评估

python tools/eval_mot.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams

结果 

然后我们开始推理

python tools/infer_mot.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams --image_dir=dataset/mot/MOT16/images/test/MOT16-01/img1  --save_videos

结果和视频

图像

导出模型

python tools/export_model.py -c configs/mot/fairmot/fairmot_dla34_30e_1088x608.yml -o weights=output/fairmot_dla34_30e_1088x608.pdparams

使用导出的模型进行推理

PP-Tracking中在部署阶段提供了多种跟踪相关功能,例如流量计数,出入口统计,绘制跟踪轨迹等,具体使用方法可以参考文档

下载两个视频

https://bj.bcebos.com/v1/paddledet/data/mot/demo/person.mp4
https://bj.bcebos.com/v1/paddledet/data/mot/demo/entrance_count_demo.mp4

推理视频1

python deploy/pptracking/python/mot_jde_infer.py --model_dir=output_inference/fairmot_dla34_30e_1088x608 --video_file=person.mp4 --device=GPU

效果还是很不错的

推理视频2

python deploy/pptracking/python/mot_jde_infer.py --model_dir=output_inference/fairmot_dla34_30e_1088x608 --do_entrance_counting --draw_center_traj --video_file=entrance_count_demo.mp4 --device=GPU

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下PP-Tracking多目标跟踪数据训练 的相关文章

随机推荐

  • 【Git

    个人格言 时间是亳不留情的 它真使人在自己制造的镜子里照见自己的真相 Git专栏 Git篇 JavaScript专栏 js实用技巧篇 该专栏持续更新中 目的是给大家分享一些常用实用技巧 同时巩固自己的基础 共同进步 欢迎前来交流 你的一键三
  • 树莓派配置热点官网操作指引

    参考官方原说明链接 https www raspberrypi org documentation computers configuration html enable routing and ip masquerading 1 安装接入
  • virt-manger创建虚拟机及virtio网卡

    可以把创建的vm node及network的xml文件导出来存放 以后可以使用命令创建 sudo apt get install qemu kvm virsh define vm0 xml 导入虚拟机配置 virsh start vm0 开
  • C++之多态详解

    文章目录 前言 一 多态的概念 概念 二 多态的定义及实现 1 多态的构成条件 2 虚函数 3 虚函数的重写 3 1多态条件探究 1 多态条件探究一 不符合重写 virtual函数 2 多态条件探究二 不符合重写 不是父类的指针或者引用调用
  • 内存管理 kmalloc

    section 0 preface 用户态的heap 是由glibc实现的 内核则自力更生的 所以内核的heap差别挺大的 从最直观的角度去看 在进行内核模块编写的时候 我们可以调用的heap相关函数 是kmalloc 以及kfree 那么
  • 立体电影

    立体电影 百科名片 1953年5月24日立体电影首次出现 为了把观众从电视夺回来 好莱坞推出了一种新玩艺儿 立体电影 戴着特殊眼镜的观众像在观看 布瓦那魔鬼 及 蜡屋 这类惊险片那样 发现自己躲在逃跑的火车及魔鬼的后面 从而为我们带入了立体
  • 微信小程序:用户基本信息的采集

    文章目录 写作背景 getUserInfo与getUserProfile open data 头像昵称填写能力 总结 写作背景 在开发商城小程序时需要显示用户头像 昵称 手机号等信息以便后续业务的实现 因此需要通过微信小程序的API采集用户
  • ​【机器学习】数据科学中 17 种相似性和相异性度量(上)

    本文解释了计算距离的各种方法 并展示了它们在我们日常生活中的实例 限于篇幅 便于阅读 将本文分为上下两篇 希望对你有所帮助 There is no Royal Road to Geometry 欧几里得 简介 相似性和相异性 在数据科学中
  • JFinal DB.tx()事务

    1 发现问题 1 功能实现逻辑 添加一个新的系统的时候 先添加系统本身 即名称 地址 简介 将这些存入system表 得到system id 添加系统所处的服务器 由于有专门的添加服务器功能 所以这里的服务器只用填地址 如果地址对应服务器不
  • Qt设置软件启动动画(支持图片和视频俩种方式)

    目录 软件启动动画效果 静态背景 动态背景 程序启动动画 QSplashScreen 启动时加载静态图片 启动时加载视频动画 将启动动画置于所有窗口顶层 软件启动动画效果 先来看效果 下面录制了加载图片和gif动图的俩种效果 静态背景 动态
  • Mysql主从复制

    Mysql主从复制原理 1 主库开始二进制日志 binlog 2 从库执行change master 执行主库 此时主库会创建一个dump线程 用于向从库发送二进制日志 3 从库执行 start slave 开启IO SQL线程 IO线程
  • 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了

    点击上方 视学算法 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨科技猛兽 编辑丨极市平台 Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型 现在比较火热的 Bert 也是基于 Trans
  • QFileInfo主要函数详解

    部分内容来自 https blog csdn net Amnes1a article details 65444966 QFileInfo主要函数详解 QFileInfo简介 扩展 文件名和路径类 文件访问权限类 文件所有者类 文件相关日期
  • 将XML格式文件转换JSON文件格式

    XMl文件转JSON字符串 1 1Maven引入依赖
  • 光栅尺的相关知识

    光栅尺的相关知识 1 光栅尺的原理 2 光栅尺的精度 3 光栅尺的制造 4 增量式光栅尺和绝对式光栅尺的区别 5 光栅尺的选择 6 光栅尺与编码器 1 光栅尺的原理 我们可以类比普通卷尺 尺子上面有刻度 以这些刻度作为基准 你只需要把要测的
  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • [机缘参悟-86]:清心寡欲,世外修行 ?负剑下山,闯荡江湖?

    天地者 万物之逆旅也 光阴者 百代之过客也 而浮生若梦 为欢几何
  • Android Fragment 真正的完全解析(下)

    本篇将介绍上篇博客提到的 如何管理Fragment回退栈 Fragment如何与Activity交互 Fragment与Activity交互的最佳实践 没有视图的Fragment的用处 使用Fragment创建对话框 如何与ActionBa
  • 5月10日 ksjsb抓包教程,小黄鸟无需ROOT抓包

    1 先下载抓包工具 小黄鸟 自己搜索 注意 这里下载完小黄鸟app后 安装打开时 该下载的安全证书下载 手机root权限该给的都给 2 打开小黄鸟工具 添加目标应用 快手极速版 3 启动小黄鸟 然后退出让它后台运行 打开快手极速版到菜单栏找
  • Windows下PP-Tracking多目标跟踪数据训练

    PP Tracking之手把手玩转多目标跟踪 飞桨AI Studio 人工智能学习与实训社区PP Tracking之手把手玩转多目标跟踪 飞桨AI Studio 人工智能学习与实训社区https aistudio baidu com ais