使用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是从1num_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,这是自己新建的一个文件,用来重新定义数据集的路径!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: PaddleDetection VisualDL 是一个可视化开发工具,用于在深度学习任务中分析和可视化模型的训练过程和结果。它提供了丰富的可视化功能,可以帮助用户更好地理解、分析和优化模型。 使用 PaddleDetection VisualDL,用户可以在训练过程中实时监测模型的训练效果。通过可视化工具,用户可以查看训练损失、准确率等指标的变化情况,并可以通过图表对比不同模型的训练情况。这可以帮助用户及时发现模型训练过程中的问题和错误,以便进行调整和优化。 此外,PaddleDetection VisualDL 还提供了可视化的模型结构、权重分布图等功能。通过可视化工具,用户可以直观地了解模型的结构和参数分布情况,帮助用户更好地理解并优化模型。 PaddleDetection VisualDL 还支持高级的可视化功能,如可视化过程特征图、可视化数据增强等。通过可视化过程特征图,用户可以深入理解模型的工作原理,进一步优化模型的性能。同时,通过可视化数据增强,用户可以直观地查看不同数据增强策略对模型性能的影响,有助于选择合适的数据增强方法。 总之,PaddleDetection VisualDL 是一个强大的可视化开发工具,可以帮助用户更好地理解和优化深度学习模型。通过可视化的方式,用户可以实时监测训练过程,分析模型的训练效果,并深入了解模型的结构和参数分布情况,从而优化模型的性能。 ### 回答2: PaddleDetection 是一个基于PaddlePaddle深度学习框架开发的目标检测工具包。它提供了丰富的预训练模型和数据增强方法,可用于各种目标检测任务。 使用 PaddleDetection 进行目标检测,首先需要准备训练和测试数据集。可以使用 PaddleDetection 提供的数据集,也可以自己创建数据集。然后,选择合适的预训练模型,如YOLOv3、Faster R-CNN等,并根据数据集进行模型训练。在训练过程中,可以根据需要设置训练参数和优化策略。 完成训练后,可以使用 PaddleDetection 进行目标检测的推理。通过加载已训练好的模型和测试图像,PaddleDetection 可以实时地检测输入图像中的目标,并输出检测结果。可以根据需要调整模型的阈值和置信度来控制检测的准确性和召回率。 PaddleDetection 还提供了模型优化和部署的相关工具。可以使用模型优化工具对训练好的模型进行优化,以提高推理速度和降低模型大小。然后,使用模型部署工具将优化后的模型部署到目标设备上,以实现在嵌入式设备、服务器等不同环境中进行目标检测。 总之,PaddleDetection 是一个功能强大的目标检测工具包,提供了训练、测试、推理、优化和部署等一系列的功能,可用于各种目标检测任务,并且具有易于使用的接口和灵活的扩展性。 ### 回答3: PaddleDetection是一个高效、灵活和可扩展的目标检测工具包,由百度公司开源。它基于PaddlePaddle深度学习框架,提供了丰富的目标检测模型和算法,具有较高的精度和速度。 使用PaddleDetection进行目标检测的步骤包括数据准备、模型选择、模型训练和模型预测。 首先,需要准备目标检测的数据集。PaddleDetection提供了数据集转换工具,可以将常见的目标检测数据集(如COCO、VOC)转换成PaddleDetection所需的格式。数据集中应包含训练集和验证集,并根据目标类别进行标注。 接下来,根据实际应用需求选择适合的目标检测模型。PaddleDetection提供了多种预训练模型,如Faster R-CNN、YOLOv3等。可以选择合适的模型作为基础模型,然后根据数据集进行微调或训练新模型。 进行模型训练时,需要配置训练参数,如学习率、批大小等。PaddleDetection提供了训练脚本,可以根据需求进行修改和配置。在训练过程中,可以使用分布式训练来加快训练速度,提高训练效果。 完成模型训练后,可以使用训练好的模型进行目标检测预测。PaddleDetection提供了预测脚本,可以加载训练好的模型,并对图像或视频进行目标检测。预测结果可以包括目标框、类别和得分等信息,可以根据需求进行后续处理和应用。 总而言之,PaddleDetection是一个强大的目标检测工具包,可以帮助用户快速构建和训练目标检测模型,并进行目标检测预测。使用PaddleDetection可以大大简化目标检测的开发流程,提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Helloorld_11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值