学习yolov5遇见的问题


前言

准备做目标检测,所以学习yolov5。教程参考保姆式yolov5教程,训练你自己的数据集

一、前期准备

  • 创建虚拟环境的时候,使用以下代码,这样虚拟环境中有
conda create -n 虚拟环境名称 python=3.9 anaconda
  • 开始使用的是python3.10,后面发现在安装labelimg,进行标注的时候,一直闪退。后发现是因为相关依赖库没有。降低版本到python3.9
  • 安装第三方库是pip install -r requirements.txt

二、训练自己数据

1.数据

2.训练

在train.py的最开头加入下列代码:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context
  • 报错:export GIT_PYTHON_REFRESH=quiet

 参考:https://blog.csdn.net/qq_63034152/article/details/131623372

  • 报错:train: WARNING  D:\...\fire_fire_80.jpg: ignoring corrupt image/label: non-normalized or out of bounds coordinates 

 原因1:yolov5需要训练【JPG】格式的图片,而我们喂进去的部分是【JPEG】数据

             参考修改文章:将所有图片格式转化为JPG

原因2:归一化错误,之前不小心把正确代码改错了,在转化文件的时候,注意路径问题:

# 进行归一化操作
def convert(size, box): # size:(原图w,原图h) , box:(xmin,xmax,ymin,ymax)
    dw =1/ size[0]     # 1/w
    dh =1/ size[1]     # 1/h
    x = (box[0] + box[1])/2.0   # 物体在图中的中心点x坐标
    y = (box[2] + box[3])/2.0   # 物体在图中的中心点y坐标
    w = box[1] - box[0]         # 物体实际像素宽度
    h = box[3] - box[2]         # 物体实际像素高度
    x = x*dw    # 物体中心点x的坐标比(相当于 x/原图w)
    w = w*dw    # 物体宽度的宽度比(相当于 w/原图w)
    y = y*dh    # 物体中心点y的坐标比(相当于 y/原图h)
    h = h*dh    # 物体宽度的宽度比(相当于 h/原图h)
    return (x, y, w, h)    # 返回 相对于原图的物体中心点的x坐标比,y坐标比,宽度比,高度比,取值范围[0-1]
  • 报错:AssertionError: Label class 1 exceeds nc=1 in data/fire.yaml. Possible class labels are 0-0

原因:fire.yaml里面的类别代码没有修改

# Classes
nc: 2  # number of classes
names: ['fire','smoke']  # class names

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值