PaddleDetection——准备数据

 2021SC@SDUSC 

准备数据

本项目使用road-sign-detection 比赛数据,检测4种路标:

  • speedlimit
  • crosswalk
  • trafficlight
  • stop

划分成训练集和测试集,总共877张图,其中训练集701张图、测试集176张图。

本项目提供voc格式和coco格式的数据:

  1. voc格式:

        划分好的数据下载地址为: roadsign_voc.tar

        AiStudio上数据地址:roadsign_voc

     2.coco格式:

        划分好的数据下载地址为:roadsign_coco.tar

        AiStudio上数据地址:roadsign_coco

~/data/文件夹下的数据解压到PaddleDetection/dataset/文件夹下。 

%cd ~/work/PaddleDetection/dataset/
! pwd
! ls ~/data -l

1. voc格式数介绍

VOC数据格式的目标检测数据,是指每个图像文件对应一个同名的xml文件,xml文件中标记物体框的坐标和类别等信息。

Pascal VOC比赛对目标检测任务,对目标物体是否遮挡、是否被截断、是否是难检测物体进行了标注。对于用户自定义数据可根据实际情况对这些字段进行标注。

xml文件中包含以下字段:

  • filename,表示图像名称。
    <filename>road650.png</filename>
    
  • size,表示图像尺寸。包括:图像宽度、图像高度、图像深度
<size>
	<width>300</width>
	<height>400</height>
	<depth>3</depth>
</size>

object字段,表示每个物体。包括

  • name: 目标物体类别名称
  • pose: 关于目标物体姿态描述(非必须字段)
  • truncated: 目标物体目标因为各种原因被截断(非必须字段)
  • occluded: 目标物体是否被遮挡(非必须字段)
  • difficult: 目标物体是否是很难识别(非必须字段)
  • bndbox: 物体位置坐标,用左上角坐标和右下角坐标表示:xmin、ymin、xmax、ymax
     

~/data/data49531/roadsign_voc.tar解压到PaddleDetection/dataset/roadsign_voc下 

%cd ~/work/PaddleDetection/dataset/roadsign_voc/
! pwd
# copy roadsign_voc.tar and extract
! cp ~/data/data49531/roadsign_voc.tar .
! tar -xvf roadsign_voc.tar
! rm -rf roadsign_voc.tar
# 查看一条数据
! cat ./annotations/road650.xml

2. coco格式数介绍


coco数据格式,是指将所有训练图像的标注都存放到一个json文件中。数据以字典嵌套的形式存放。

json文件中存放了 info licenses images annotations categories 的信息:

  • info中存放标注文件标注时间、版本等信息。
  • licenses中存放数据许可信息。
  • images中存放一个list,存放所有图像的图像名,下载地址,图像宽度,图像高度,图像在数据集中的id等信息。
  • annotations中存放一个list,存放所有图像的所有物体区域的标注信息,每个目标物体标注以下信息:
    {
    	'area': 899, 
    	'iscrowd': 0, 
        'image_id': 839, 
        'bbox': [114, 126, 31, 29], 
        'category_id': 0, 'id': 1, 
        'ignore': 0, 
        'segmentation': []
    }

~/data/data49531/roadsign_coco.tar解压到PaddleDetection/dataset/roadsign_coco下 

%cd ~/work/PaddleDetection/dataset/
! mkdir roadsign_coco
%cd ~/work/PaddleDetection/dataset/roadsign_coco/
! pwd
# copy roadsign_coco.tar and extract
! cp ~/data/data52968/roadsign_coco.tar .
! tar -xvf roadsign_coco.tar
! rm -rf roadsign_coco.tar
# 查看一条数据
import json
coco_anno = json.load(open('./annotations/train.json'))

# coco_anno.keys
print('\nkeys:', coco_anno.keys())

# 查看类别信息
print('\n物体类别:', coco_anno['categories'])

# 查看一共多少张图
print('\n图像数量:', len(coco_anno['images']))

# 查看一共多少个目标物体
print('\n标注物体数量:', len(coco_anno['annotations']))

# 查看一条目标物体标注信息
print('\n查看一条目标物体标注信息:', coco_anno['annotations'][0])

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如何在PaddleDetection上训练自己的数据集? 1. 准备数据:将图像和标注数据转换为PaddleDetection支持的格式,如COCO格式。 2. 配置训练:修改配置文件以指定自己的数据集路径。 3. 启动训练:使用命令行运行训练脚本,开始训练。 4. 评估模型:在测试数据集上评估训练后的模型。 请注意,这是一个大致的流程,具体步骤可能因数据集不同而有所差别。 ### 回答2: PaddleDetection是一个基于飞桨框架的目标检测开发套件,支持多种算法和模型,可以很好地满足实际需求。自己的数据集在PaddleDetection中的使用可以分为数据预处理、训练与验证和测试三个阶段。 首先,在自己数据集的使用之前,需要对数据进行预处理。这一步非常关键,决定了模型的性能和精度。PaddleDetection支持多种预处理方式,包括数据增强、数据划分等方法。对于目标检测来说,数据增强是一种非常重要的预处理方式,可以通过对图片进行随机旋转、翻转、剪切等方式,增加数据多样性,提高模型的泛化能力。另外,还需要将数据划分成训练集和验证集。训练集用于训练模型,验证集用于评估模型的性能,以便及时发现问题并优化模型。 其次,进行训练与验证。这一步需要配置模型选择、优化器以及训练参数等。在PaddleDetection中,可以选择多种模型,如YOLOv3、SSD、Faster R-CNN等,每种模型有不同的优点和适用场景。同时,还需要选择合适的优化器和超参数,如学习率、批次大小等。经过一定的训练后,需要使用验证集进行模型评估,以便及时发现模型存在的问题,如模型过拟合、欠拟合等。 最后,进行测试。测试是检验模型性能的关键步骤。PaddleDetection提供了多种测试方式,如单张图片测试、视频测试、评估指标等。其中,评估指标是一种比较全面的测试方式,可以评估模型的精度、召回率、F1值等指标。 总之,将自己的数据集应用到PaddleDetection中,需要进行数据预处理、训练与验证、测试三个步骤。这些步骤都需要认真对待,并且针对不同的情况进行优化和调整,以达到最佳的效果。 ### 回答3: Paddledetection是一个为目标检测而设计的深度学习框架,其主要使用PaddlePaddle作为底层实现,支持多种网络结构和模型,如YOLO、SSD等,因此可以应用于不同的应用场景。对于自己的数据集,可以使用Paddledetection来训练自己的模型,以实现目标检测的任务。 自己数据集的处理是非常重要的一步,需要将数据集划分为训练集、验证集和测试集,以保证模型的泛化能力和可靠性。在划分时需要考虑到数据集的大小和分布情况,尽量使各个集合之间的数据相互独立,且能够代表整体数据分布。 建议将自己数据集的类别和标注信息进行统一定义和格式标准化,以便于后续处理和训练。可以采用Paddledetection提供的工具进行标注,或是自己编写程序进行标注,要保证标注的准确性和可靠性,以免后续的模型训练出现偏差。 针对自己数据集的特点和需要,可以选择适当的模型和网络结构,并根据情况调整训练参数和超参数。在训练过程中,需要注意过拟合和欠拟合等问题,采用一些有效的正则化方法和优化算法,以提高模型的泛化能力和准确度。 最后,在训练模型的过程中,需要注意模型的评估指标和结果的可视化,以及进行模型微调和优化,以达到更好的检测效果和精度。 综上,使用Paddledetection进行自己数据集的目标检测任务,需要进行数据集划分、标注、模型选择和训练、评估和优化等多方面考虑,要细致认真地进行每个环节的处理,才能得到一个高质量的模型和准确度较高的检测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值