如何在yolov5中数据集有三个类别,仅生成一个.cache文件?

在yolov5中数据集有三个类别,但是在训练出来后只有一个类别,仅生成一个.cache文件

img

img

img

看下你的dataset.yaml是怎么写的,也就是配置数据集的文件,里面配置了train,val,test和class-names.

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7440016
  • 这篇博客你也可以参考下:【yolov5】数据格式、参数、输出结果 分析
  • 除此之外, 这篇博客: 使用yolov5训练自己的数据集中的 一、环境搭建 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 新建一个文件夹,起名yolov5train,注意该文件路径是不能有中文。
    打开该文件,在此处输入cmd
    在这里插入图片描述
    再输入conda activate,创建conda环境
    在这里插入图片描述

    再输入以下命令,更改下载源

    conda config --remove-key channels
    conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
    conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
    conda config --set show_channel_urls yes
    pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
    

    在这里插入图片描述

    再将你下载的yolov5项目文件解压到这个文件夹内,并打开yolov5项目文件,并在标识处输入cmd
    在这里插入图片描述
    创建环境:

    conda create -n py15 python==3.8.5
    

    其中的py15是创建环境的名称
    输入后,有个步骤要你输入y,回车
    完成后
    在这里插入图片描述

    激活虚拟环境:

    在这里插入图片描述

    conda activate py15
    

    安装pytouch
    yolov5都可以使用cpu或gpu,只是cpu慢的抠se子使用gpu的小伙伴参考这个https://blog.csdn.net/ECHOSON/article/details/118420968

    我用的cpu,输入命令:

    conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly
    

    弹出
    在这里插入图片描述
    输入y,回车
    完成后
    在这里插入图片描述

    cd到yolov5代码的目录下,直接执行下列指令即可完成包的安装。
    pip install -r requirements.txt

    安装图形化界面库
    pip install pyqt5

    将下载好的权重文件解压到yolov5-master的
    pretrained目录下
    在这里插入图片描述

    在这里插入图片描述

    测试一下可不可以使用
    在终端中输入:

    python detect.py --source data/images/bus.jpg --weights pretrained/yolov5s.pt
    

    其中,data/images/bus.jpg代表你要检测的图片,pretrained/yolov5s.pt表示使用的权重文件。
    在这里插入图片描述
    要检测的图片:
    在这里插入图片描述
    检测结果放在yolov5-maskruns\detect\exp2目录下
    在这里插入图片描述
    好了,现在开始制作数据集。
    使用labelimg工具,用于图片的标注
    使用pip安装
    输入

    pip install labelimg -i https://mirror.baidu.com/pypi/simple
    

    在这里插入图片描述
    在终端中输入labelimg就会弹出窗口。
    在这里插入图片描述

    在这里插入图片描述
    labelimg使用
    注释:
    在这里插入图片描述

    首先点击open Dir 选择你要标注的图片的文件位置,
    在这里插入图片描述
    然后就会弹出下面的窗口,选择你保存标注的txt(就是你标注的bbox的标签会写入txt)。
    在这里插入图片描述
    然后开始标注:
    在这里插入图片描述
    点击next image
    在这里插入图片描述
    点击create Rectbox,再选中你要标记的物体,再输入类别,再点击ok。
    在这里插入图片描述
    然后右边的boxlabel就会出现你的标记
    在这里插入图片描述
    如果要修改类别,右键点击你要修改的标签,点击edit label
    在这里插入图片描述
    在这里插入图片描述
    修改后点击ok。
    如果要调整边界框的大小,点击edit rectbox
    这张图片标记完后,点击next image,进行下一张图片的标注,所有图片标注完后,点击save,保存。
    然后看看这波操作的结果
    打开保存边界框的txt文件 ,
    在这里插入图片描述
    在这里插入图片描述
    打开文件,其中数据的注释,每一行代表一个物体。
    在这里插入图片描述

    要使用的数据集目录:
    在这里插入图片描述
    其中dataset存放训练集、测试集,train是训练集,vaild是测试集,测试集、训练集的目录下都必须有images和labels文件,images中放的是图片,labels放的对应图片的标注文件。
    在这里插入图片描述
    在这里插入图片描述

    开始训练
    右键点击项目文件
    在这里插入图片描述
    项目文件配置:
    1、新建一个data_yaml
    在这里插入图片描述

    #train 写存放训练集图片的文件地址#val 写存放测试集图片的文件地址
    train: D:/wxl/test2/train/images
    val: D:/wxl/test2/vaild/images
    #nc 标注的种类数量,name 里面放的输种类的名称
    nc: 7
    names: ['Motor Vehicle', 'Non_motorized Vehicle', 'Pedestrian', 'Traffic Light-Red Light' ,'Traffic Light-Yellow Light', 'Traffic Light-Green Light', 'Traffic Light-Off']
    

    2、本案例使用yolov5s权重文件,修改models目录下的yolov5s.yaml,将nc后的数字修改成你的数据集中标注的种类数量
    在这里插入图片描述

    3、开始训练,打开终端,进入项目文件的目录,激活conda环境。输入

    python train.py --data data.yaml --cfg models/yolov5s.yaml --weights pretrained/yolov5s.pt --epoch 100 --batch-size 4 --device cpu
    

    data.yaml指的是数据集的配置文件
    mask_yolov5s.yaml 指的是模型的配置文件
    pretrained/yolov5s.pt 使用yolov5spt的权重文件
    size 后面的数字指是多少张图片一起训练
    epoch 后面的数字表示跑的次数
    cpu 指用cpu训练
    在这里插入图片描述
    训练结果保存在项目文件的run\train\exp文件中
    在这里插入图片描述
    我跑的数据较少,就准确率就很低了,
    其中的weight存放的就是训练出来的模型,其中,best.pt是效果最好的,last.pt是最后一个。
    在这里插入图片描述
    来试下用训练出来的模型来预测。

    在终端中输入:

    python val.py --data data.yaml --weights runs/train/exp/weights/best.pt 
    

    data.yaml 存放你要预测的图片数据位置。 runs/train/exp_yolov5s/weights/best.pt 使用的模型。
    在这里插入图片描述
    预测的数据放在了项目文件中的runs\val\exp8中
    在这里插入图片描述

    结束,谢谢。菜鸟一个,如有错误,欢迎留言指正。

  • 您还可以看一下 白勇老师的YOLOv5实战垃圾分类目标检测课程中的 数据集及格式转换小节, 巩固相关知识点