yolov5训练模型

第一步

去github下载yolov

点击下方链接进入github(进入github很慢,需要慢慢等待),进入github如下图一样,在下载yolov5源码

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

第二步

创建环境

打开终端输入下方命令创建环境等

创建环境
conda create -n yolov5-master python==3.8


激活环境
conda activate yolov5-master

第三步

用vscode打开程序,配置解释器

进入你下载的yolov5源码的文件夹,点击右键,选择在终端打开(E),在输入下方命令(要你自己有下载vscode才能打开vscode),打开vscode,在配置环境,按Ctrl + Shift + P,如下图所示输入python,在选择python 选择解释器,在选择你刚刚创建好的环境。

code ./

第四步

去github下载yolov5权重

点击GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite进入github往下翻如下图的地方,点击yolov5s,就会下载。下载完把刚刚下载的yolov5.pt放到你下载的yolov5源码下。

第五步

运行程序

运行程序predict.py如下图所示他在预测数据

第六步

训练自己的数据集

创建一个python脚本,把下方代码输入到脚本中,运行。就会创建生成文件夹,

import os
a_path = "" #这是你自己的下载的yolov5源码的绝对路径
if os.path.isdir(a_path):
    b_path = a_path+"/userdata/data"
    c_path = os.makedirs(b_path + "/images")
    d_path = os.makedirs(b_path + "/labels")
    e_path = os.makedirs(b_path + "/json")
    os.chdir(c_path)
    os.mkdir(train)
    os.mkdir(val)
    os.chdir(d_path)
    os.mkdir(train)
    os.mkdir(val)
    os.chdir(e_path)
    os.mkdir(train)
    os.mkdir(val)
    

 把labelme标注的数据放入刚刚创建文件夹里面

后缀名jpg的放到、userdata/data/images/train/

后缀名json的放到 userdata/data/json/train/

运行下方代码,把json转换成txt,用来训练模型

import json
import os
import glob
import os.path as osp

# def labelme2yolov2Seg(jsonfilePath="", resultDirPath="", classList=""):
"""
    此函数用来将labelme软件标注好的数据集转换为yolov5_7.0sege中使用的数据集
    :param jsonfilePath: labelme标注好的*.json文件所在文件夹
    :param resultDirPath: 转换好后的*.txt保存文件夹
    :param classList: 数据集中的类别标签
    :return:
"""
zmr  = ['checker_board']
list1 = []
ycm = " "json后缀的绝对路径
liqian = " " 放入txt后缀的绝对路径
# 0.创建保存转换结果的文件夹
if (not os.path.exists(liqian)):
    os.mkdir(liqian)
    # 1.获取目录下所有的labelme标注好的Json文件,存入列表中
for i in os.listdir(ycm):
    q = os.path.join(ycm, i)
    list1.append(q)

    # print(i)
    # print(q)
# print(list1)
for j in list1:
    with open(j, "r") as f:
        file_in = json.load(f)
        shapes = file_in["shapes"]
        print(j)
    lyy = os.path.basename(j)
    kl = osp.join(liqian, lyy.replace(".json", ".txt"))
    with open(kl, "w+") as file_handle:
        for shape in shapes:
            file_handle.writelines(str(zmr.index(shape['label'])) + " ")
            for point in shape["points"]:
                x = point[0]/file_in["imageWidth"]
                y = point[1]/file_in["imageHeight"]
                file_handle.writelines(str(x) + " " + str(y) + " ")
            file_handle.writelines("\n")   
        file_handle.close()
    f.close()   

在去models/segment/yolov5x-seg.yaml复制到userdata下,打开userdata/yolov5-seg.yaml设置如下图

在去 data/coco128-seg.yaml复制到userdata下,打开userdata/coco128-seg.yaml设置如下图所示

在去train.py修改如下图所示,在运行train.py程序就ok了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值