使用paddledetection的记录

news2024/11/24 20:40:55

首先在这里使用的是是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是从1num_identities的整数(num_identities是数据集中所有视频或图片序列的不同物体实例的总数),如果此框没有identity标注,则为-1
  • [x_center] [y_center] [width] [height]是中心点坐标和宽高,注意他们的值是由图片的宽度/高度标准化的,因此它们是从0到1的浮点数。

配置文件的修改

在2.7版本,这里用ByteTrack来训练MOT17的数据集举例:

主要的配置文件是这个:ppyoloe_crn_l_36e_640x640_mot17half.yml,在 configs/mot/bytetrack/detector/下面

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

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

相关文章

识别验证码

背景 需求是要爬取某网站的数据, 已有账号密码, 但这个网站需要登录, 登录需要输入验证码 验证码样式如下 调研了Tesseract框架, 识别效果不佳. 后来使用ddddocr, 能正确识别. https://github.com/sml2h3/ddddocr 代码如下 def ocr():response requests.get(http://xxx/get…

Jenkins Pipeline应用实践

Jenkins Pipeline是一种可编程的、可扩展的持续交付管道,允许您使用脚本来定义整个软件交付过程。 以下是使用Jenkins Pipeline创建和配置流水线的基本步骤。 Part 01. 创建一个Pipeline Job 在Jenkins中创建一个新的"Pipeline"类型的Job。 以下是在Je…

【STM32F103】HC-SR04超声波测距模块详解(附工程文件)

前言: 使用的硬件:STM32F103C8T6,HC-SR04,ST-Link(其他烧录器也可以),0.96寸OLED屏幕(非必须,仅供显示测距结果,可以使用串口助手代替)&#xff…

rabbitMQ对消息不可达处理-备份交换机/备份队列

生产者发送消息,在消息不可达指定队列时,可以借助扇出类型交换机(之前写过消息回退的处理方案,扇出交换机处理的方案优先级高于消息回退)处理不可达消息,然后放置一个备份队列,供消费者处理不可…

Pytorch中的gather的理解和用法

Pytorch中的gather的理解和用法 这个Gather的用法花费了点时间,我相信很多人一开始不太懂。 跟着我简单理解。 首先样例是: tensor([[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])然后index: [[2, 1, 0]]然后执行的代码: tensor_0.gather(0…

使用 SIEM 管理安全事件

每家公司都必须处理检测、管理和解决安全事件,未能制定事件响应计划可能会对任何组织产生重大的影响,无论是在财务损失还是声誉损害方面。本文探讨了事件响应的重要性、检测和管理事件的关键要素,以及帮助组织处理安全事件的最佳实践。 安全…

FLASK博客系列6——数据库之谜

我们上一篇已经实现了简易博客界面,你还记得我们的博客数据是自己手动写的吗?但实际应用中,我们是不可能这样做的。大部分程序都需要保存数据,所以不可避免要使用数据库。我们这里为了简单方便快捷,使用了超级经典的SQ…

如何使用内网穿透将Tomcat网页发布到公共互联网上【内网穿透】

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣&#xff0…

Redis面试题:分布式锁相关问题

目录 面试官:Redis的内存用完了会发生什么? 面试官:Redis分布式锁如何实现 ? 面试官:好的,那你如何控制Redis实现分布式锁有效时长呢? 面试官:好的,redisson实现的分布式锁是可重…

现货黄金走势图下载与保存

MetaTrader 4 (MT4) 是一款在全球范围内广受欢迎的现货黄金交易软件,简单性和灵活性是其深受市场欢迎的原因。它的显示界面的主要部分由品种的走势图表组成,投资者可以在其中查看实时的行情走势。屏幕左上角是市场观察窗口,当中列出了平台所有…

群晖NAS:docker(Container Manager)、npm安装Verdaccio并常见命令集合

群晖NAS:docker(Container Manager)、npm安装Verdaccio并常见命令集合 自建 npm 资源库,使用Verdaccio。如果觉得麻烦,直接可以在外网注册 https://www.npmjs.com/ 网站。大同小异,自己搭建搭建方便局域网…

如何进行有效的移动应用测试?

1、识别关键功能: 对于移动应用测试,首先要了解应用的需求和功能规格,确定哪些功能是最关键的。 关键功能通常是用户最常用的功能,对应用的成功和用户体验至关重要。 2、设定测试目标和用例: 针对每个关键功能,设置具体的测试目…

基于springboot+maven的个人理财管理系统

基于springbootmaven的个人理财管理系统,演示地址:个人理财系统登录界面 用户名:admin,密码:123456 共分为用户信息管理(用户信息,银行卡,个人征信),理财产品管理(零钱理财,工资理财,期限理财&#xff0c…

如何在本地安装部署WinSCP,并实现公网远程本地服务器

可视化文件编辑与SSH传输神器WinSCP如何公网远程本地服务器 文章目录 可视化文件编辑与SSH传输神器WinSCP如何公网远程本地服务器1. 简介2. 软件下载安装:3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 …

有效实施的五条教学策略

作为老师,是否曾为如何提高教学质量而苦恼?也为如何引导学生而思考?如果你正面临这些困扰,那么这篇文章将对你有帮助。为你介绍五条教学策略,帮你实施教学,提高效果。 明确教学目标 你是否知道你的教学目标…

3D数字孪生场景编辑器

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 数字孪生的强大功能来自于将真实世界的资产与真实世界的数据联系起来,因此您可以…

代码块01-Java

代码块01 一、介绍二、语法三、好处举例 四、使用细节五、练习题1题2 一、介绍 代码块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过包围起来。 但和方法不同,没有方法名…

ZKP15.1 Secure ZK Circuits via Formal Methods

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 15: Secure ZK Circuits via Formal Methods (Guest Lecturer: Yu Feng (UCSB & Veridise)) Motivation Bugs in blockchain software are extremely dangers and costly.Smart Contract Bugs, Blockchain Protocol Bugs,…

OSError: symbolic link privilege not held报错解决

本人情况介绍 本人在复现某个代码的时候,需要安装开源代码已经封装好的setup.py代码。具体安装的库具体如下。 fairseqpython3.6.0pytorch1.6.0File2ROUGE 在安装fairseq的时候遇见了如下问题。 Installing build dependencies … done Getting requirements to …

使用 Redis Zset 有序集合实现排行榜功能(SpringBoot环境)

目录 一、前言二、Redis Zset 的基本操作三、通过Redis 命令模拟排行榜功能3.1、排行榜生成3.2、排行榜查询 四、SpringBoot 使用 Redis Zset 有序集合实现排行榜功能 一、前言 排行榜功能是非常常见的需求,例如商品售卖排行榜单、游戏中的积分排行榜、配送员完单排…