使用paddledetection的记录
首先在这里使用的是是paddle--detection2.7的版本。
成功进行训练
目录:
目录
数据集准备
配置文件的修改
使用的是BML的平台工具:
!python -m pip install paddlepaddle-gpu==2.5 -i https://mirror.baidu.com/pypi/simple --user
%cd /home/aistudio/
# !wget https://codeload.github.com/PaddlePaddle/PaddleDetection/zip/refs/heads/release/2.7
#因为github需要登录,所以下载不成功,因此这里直接上传了2.7的版本
# !unzip /home/aistudio/PaddleDetection-release-2.7.zip
%cd /home/aistudio/PaddleDetection-release-2.7/
!pip install -r requirements.txt
!python setup.py install
#用来测试是否安装成功,另外补充安装一个numba
!pip install numba==0.56.4
# !python ppdet/modeling/tests/test_architectures.py
要求的paddle版本必须是大于2.3.2的。注意版本问题就是了配置环境的时候,其他的大问题没什么。
下面这段代码,可以用来确认是否安装成功指定版本:
import paddle
paddle.utils.run_check()
# 确认PaddlePaddle版本
!python -c "import paddle; print(paddle.__version__)"
如果成功,则会打印如下信息:
PaddlePaddle works well on 1 GPU. PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now. 2.5.0
然后就是准备数据集了,在这里我使用的是开源的MOT17数据集,这个数据集,只有训练集,没有测试集,下载和解压命令如下:
!wget https://bj.bcebos.com/v1/paddledet/data/mot/MOT17.zip
!unzip /home/aistudio/data/MOT17.zip -d /home/aistudio/PaddleDetection-release-2.7/dataset/mot/
数据集准备:
提到数据集,在这里延伸的扩展一哈,paddledetection里面对于数据集的要求(仅限多目标跟踪)有如下几种格式:
1、自定义数据集;
2、一类纯检测框标注的数据集,仅SDE系列(ByteTrack)可以使用;
3、另一类是同时有检测和ReID标注的数据集,SDE系列(DeepSORT)和JDE系列都可以使用
因此下面的数据集准备会分成两种来讲:
****************
ReID标注是一种目标跟踪的标注方法,它基于深度学习技术进行目标跟踪。在ReID标注中,需要对视频序列中的目标进行标记和追踪,以便在多个摄像头监控的画面中实现目标跟踪。这种标注方法有助于提高目标跟踪的准确性和稳定性。
***************
其中自定义数据集参考:PaddleDetection/docs/tutorials/data/PrepareDetDataSet.md at release/2.7 · PaddlePaddle/PaddleDetection (github.com)
首先:SDE数据集是纯检测标注的数据集,可以按照自定义数据集准备成(VOC,或者是COCO数据集)
这里以这个MOT17的数据集来作为例子,进行举例:
数据集下载解压以后有三个文件夹:
第一个是annotations是
里面包含的信息有:如下内容(图片路径,注意这里的图片路径是用的是在后面我们会提到的dataset_dir的基础上添加的路径)
可以看到上面的train有两种,第一种half的意思是:在MOT17/images/half中,它可能指的是存储在图像中的目标物体的标注信息,例如边界框信息、分割信息、类别信息等,这些信息以半精度浮点数的形式进行存储和计算,可以提高模型的计算效率和准确性。
第二个是images文件夹
每个子目录下都是一段视频的抽帧图片及标注。
det
训练集中/det
文件夹中是针对检测的信息,该目录下只有一个det.txt文件,每行一个标注,代表一个检测的物体。
参数说明:每一行标注的含义如下:第一个代表第几帧,第二个代表轨迹编号(因为检测结果只看检测框质量,不看id,故为id
=-1。),bb
开头的4个数代表物体框的左上角坐标及长宽。conf
代表置信度。
gt
训练集中/gt
文件夹中是针对追踪的信息,该目录下只有一个gt.txt文件(相当于half里面的一个gt_all.txt文件,而half里面的gt.txt只有一半的帧长),每行一个标注,代表一个检测的物体。
每一行标注的含义如下:第一个代表第几帧,第二个值为目标运动轨迹的ID号,bb开头的4个数代表物体框的左上角坐标及长宽,第7个值为目标轨迹是否进入考虑范围内的标志,0表示忽略,1表示active。第八个值为该轨迹对应的目标种类(种类见下面的表格中的label-ID对应情况),第九个值为box的visibility ratio,表示目标运动时被其他目标box包含/覆盖或者目标之间box边缘裁剪情况。
img1里面存放的就是图片了;
然后就是seqinfo.ini文件
介绍视频的帧率、分辨率等基本信息(分割片段名;图片路径;该子集的帧率,每秒30帧;表示该子集的长度600帧,以帧数为单位;图片的宽度;高度;后缀名)
最后就是labels_with_ids,是指
在标注文本中,每行都描述一个边界框,格式如下:
[class] [identity] [x_center] [y_center] [width] [height]
class
为类别id,支持单类别和多类别,从0
开始计,单类别即为0
。identity
是从1
到num_identities
的整数(num_identities
是数据集中所有视频或图片序列的不同物体实例的总数),如果此框没有identity
标注,则为-1
。[x_center] [y_center] [width] [height]
是中心点坐标和宽高,注意他们的值是由图片的宽度/高度标准化的,因此它们是从0到1的浮点数。
配置文件的修改
在2.7版本,这里用ByteTrack来训练MOT17的数据集举例:
训练的命令是:
!python -m paddle.distributed.launch --log_dir=ppyoloe --gpus 0 tools/train.py -c configs/mot/bytetrack/detector/ppyoloe_crn_l_36e_640x640_mot17half.yml --eval --amp
主要的配置文件是这个:ppyoloe_crn_l_36e_640x640_mot17half.yml,在 configs/mot/bytetrack/detector/下面
修改的是mot2.yml,这是自己新建的一个文件,用来重新定义数据集的路径!
相关文章:

使用paddledetection的记录
首先在这里使用的是是paddle--detection2.7的版本。 成功进行训练 目录: 目录 数据集准备 配置文件的修改 使用的是BML的平台工具: !python -m pip install paddlepaddle-gpu2.5 -i https://mirror.baidu.com/pypi/simple --user %cd /home/aistudio…...
MySQL数据库的备份与恢复
在管理MySQL数据库时,备份和恢复是保证数据安全和完整性的关键环节。本文将指导您如何有效地备份MySQL数据库,并在需要时进行数据恢复。 请注意,如果没有 mysql> 的标志,说明我们是在外面终端进行的操作 创建备份文件路径 在…...

Pycharm配置jupyter使用notebook详细指南(可换行conda环节)
本教程为事后记录,部分图片非实操图片。 详细记录了pycharm配置jupyter的方法,jupyter添加其他conda环境的方法,远程密码调用jupyter的方法,修改jupyter工作目录的方法。 文章目录 一、入门级配置1. Pycharm配置Conda自带的jupyt…...
企业微信ipad版,http协议接口发开,获取客户群列表
版本介绍: HTTP协议接口可以通过该接口实现企业微信的各种功能,使用HTTP协议可以避免使用hook形式的需要开启PC客户端的方式,同时可以实现三端同时在线,不影响PC和手机端的登录状态,调用简单,可以支持几千…...
Double 4 VR智能互动教学系统在小语种课堂中的教学应用
小语种课堂一直是教育领域的一个难点。由于语言本身的复杂性和文化背景的差异,小语种教学一直是一个挑战。传统的课堂教学方法往往难以激发学生的学习兴趣和动力,教学效果不尽如人意。而Double 4 VR智能互动教学系统为小语种课堂带来了新的可能。 Double…...

OSEK OS任务调度的底层逻辑
先参考 FreeRTOS的任务触发底层逻辑 简述RTOS任务调度底层逻辑 AUTOSAR-OS的调度机制-调度表(没理解透,继续更新) OSEK与FreeRTOS在任务调度上最大的区别在于,FreeRTOS是基于全抢占任务调度和时间片轮转调度机制,具有…...

‘tsc‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
最近在用nodejs typescript 某游戏服务器在做一些研究 nodejs-tcs 问题描述: 1.使用命令npm install -g typescript安装typescript后,输入 tsc命令,一直报错 tsc 不是内部或外部命令,也不是可运行的程序 或批处理文件。 2.目…...

windows文件删除权限
一、普通文件 这里指的是所有可以被随意删除的文件。 二、可更改权限的文件 如果想要删除的文件无法被删除,那大概是权限不够,这时候:鼠标右键、属性、安全、编辑、选择相应的组或用户(如果不知道哪个可以全选,反正…...
Nginx的location块相关知识积累(包括常用的正则匹配表达式的介绍)
Nginx的location块相关知识积累 01-location块的优先级 注意:如果Nginx的配置中有多个location块,那么各location块的匹配优先级并不是完全按照代码的先后顺序来决定各location优先级的。而是按下面的规则来决定的: 在 Nginx 中,…...
rabbitMq确认机制之ConfirmType
配置方式 Bean(name "connectionFactory")Primarypublic ConnectionFactory normalConnectionFactory(Value("${spring.rabbitmq.username}") String username,Value("${spring.rabbitmq.password}") String password,Value("${spring.rab…...

ubuntu下QT搭建Android开发环境
一、前言 用QT开发android和直接使用android开发的区别 使用Qt开发Android应用和直接使用Android开发工具(例如Android Studio)有一些区别,主要体现在开发工具、语言、界面设计和性能等方面: 开发工具: Qt Creat…...
QT 做一个登录,注册的跳转页面
思路: 1.登录需要判断账号与密码是否想等,相等才可跳转新页面,匹配失败输入框提示”账号密码不匹配”。 2.注册不需要判断,直接跳转新页面即可。 widget.cpp文件 #include "widget.h" #include "ui_widget.h&qu…...

数据库第十第十一章 恢复和并发简答题
数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 1.什么是数据库中的事务?它有哪些特性?这些特性的含义是什么…...
Vue3:利用vueusejs键盘绑定
VueUse 键盘事件名 onKeyDown - 别名 onKeyStroke(key, handler, {eventName: ‘keydown’})onKeyPressed - 别名onKeyStroke(key, handler, {eventName: ‘keypress’})onKeyUp - 别名 onKeyStroke(key, handler, {eventName: ‘keyup’}) // 绑定回车事件// https://develo…...
Python与设计模式--设计原则
23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…...

Spire.Office 8.11.2 for NET fix Crack
内容摘自来自互联网------或者SDK官方本身手册 Spire.Doc for .NET A professional Word .NET library designed to create, read, write, convert and print Word document files in any .NET ( C#, VB.NET, ASP.NET, .NET Core, Xamarin ) application with fast and high qu…...

ubuntu终端代理配置
ubuntu浏览器的无需手动设置,主要解决在终端中的配置问题,按照下面配置后可能会ping不通一些ip,但wget/git都是可以的,具体原因以后再分析 查找端口 首先要找到自己代理对应的HTTP端口,以QV2ray软件作为示例,我为8889 手动配置 # 配置系统proxy export http_proxy=1…...

postgresql从入门到精通 - 第35讲:中间件PgBouncer部署|PostgreSQL教程
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第35讲&#…...

因为jsp for循环的一个空格引起的错误
<c:forEach items"${user.role} " var"role"> <c:forEach items"${user.role}" var"role"> 去掉空格正确显示 ,为此排查了2个小时代码逻辑...

文件中找TopK问题
目录 1.解题思路2.创建一个文件并在文件中写入数据3.为什么要建立小堆而不建立大堆?4.如何在现有的数据中建立适合的大堆?5.代码实现 1.解题思路 TopK问题即是在众多数据中找出前K大的值,则可以根据堆的性质来实现,但在使用堆之前…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...