网上没找到适合新手小白的教程,看了些教程,但还是没法解决自己遇到的问题。记录下自己的过程,希望能提供点帮助。
默认已经部署好了yolov5。
安装部署yolov5可参考以下:
ubuntu20.04配置YOLOV5(非虚拟机)_ubuntu系统实现yolov5没有显卡-CSDN博客
目录
一、数据集下载
二、建立数据集文件夹
三、数据集格式转换
四、运行测试
一、数据集下载
通过以下链接下载数据集:
COCO - Common Objects in Context
这里一共下载4个文件:2017 Train images、2017 Val images、2017 Test images、2017Train/Val annotations。
二、建立数据集文件夹
在yolov5源码文件夹下新建文件夹,命名为datasets。并依次建立以下文件夹。将下载的文件,解压缩至对应的文件夹。注意:labels里的标签文件,稍后运行代码会自动生成。
三、数据集格式转换
annotations文件里含有三种类型的标注文件:object instance(目标实例,用于目标检测)、object keypoints(目标上的关键点,用于姿态估计)、image captions(看图说话)。用到的主要是object instance目标检测。
新建一个py文件,并把以下代码复制进去。
#COCO 格式的数据集转化为 YOLO 格式的数据集
#--json_path 输入的json文件路径
#--save_path 保存的文件夹名字,默认为当前目录下的labels。
import os
import json
from tqdm import tqdm
import argparse
parser = argparse.ArgumentParser()
#这里根据自己的json文件位置,换成自己的就行
parser.add_argument('--json_path', default='datasets/coco/annotations_trainval2017/annotations/instances_train2017.json',type=str, help="input: coco format(json)")
#这里设置.txt文件保存位置
parser.add_argument('--save_path', default='datasets/coco/labels/train2017', type=str, help="specify where to save the output dir of labels")
arg = parser.parse_args()
def convert(size, box):
dw = 1. / (size[0])
dh = 1. / (size[1])
x = box[0] + box[2] / 2.0
y = box[1] +