【目标检测】制作YOLO开源项目常用的数据集

1 目标格式

目标是生成train.txt, val.txt,常见开源项目用的格式有两种:

A类

index image_path with height  class_id1 x1 y1 x2 y2 class_id2 x1 y1 x2 y2 [...]

这里的image_path是图像相对工程的路径,采用空格作为分隔符,例如,

./my_dataset/JPEGImages/playPhone1_0001.jpg 1366 768 0 541 310 581 350 0 

B类

image_name x1,y1,x2,y2,class_id1 x1,y1,x2,y2,id x1,y1,x2,y2,class_id2 [...]

这里的image_name是图像名称,不包含路径。名称和bboxes,不同bbox之间用空格作为分隔符,bbox坐标用逗号作为分隔符,例如,

playPhone1_0001.jpg 541,310,581,350,0 641,410,681,450,1

2 数据集制作

LabelImg标注检测框比较方便,我采用的是先制作成VOC数据集格式,然后利用脚本转换。

2.1 图像重命名

如果你的图像名称里面有中文或特殊符号,建议用序号给图像重命名:

# -*- coding: UTF-8 -*-

import os

work_dir = input("please input wording directory:")
# work_dir = "G:/0_image_data/dataset/" + work_dir

files = os.listdir(work_dir)

index = 0
for file in files:
	str_index = work_dir + str("_%04d"%index) + ".jpg"
	src_path = work_dir + '/' + file
	dst_path = work_dir + '/' + str_index
	print(src_path, "------>", dst_path)
	index += 1
	
	os.rename(src_path, dst_path)
print("Done.")

2.2 LabelImg标注

利用labelImg标注图像,会在图像路径下面生成同名的xml格式的数据标签:
在这里插入图片描述

2.3 制作VOC格式的数据集

首先创建一个文件夹,取个名字,本例取名my_dataset在其中创建子文件夹,目录结构如下:

- my_dataset/
	-Annotations/
	-ImageSets/
		-Main/
	-JPEGImages/

在my_dataset目录下面创建一个data.names文件,里面写入你的标签名称,写的顺序决定了标签的ID:
在这里插入图片描述
将如下脚本拷贝到my_dataset路径下,执行,将在./ImageSets/Main文件夹下面生成VOC格式的标签文件:

#-*- coding:utf-8 -*-
import os
import random
import numpy as np

xml_file_path = "./Annotations"
target_path = "./ImageSets/Main"

#perception
trainval = 0.9     #(num of trainval set) / (num of all samples)
train 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蔡逸超

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

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

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

打赏作者

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

抵扣说明:

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

余额充值