yolov8自备数据集训练的目标检测

情况自述:

        笔者可以算是小白一枚,为测试无人机识别模块的精准度,需要识别一个自制做的圆盘,特作此小项目。由于自己在整个过程踩过很多坑,也走过不少弯路,完成这个小项目,离不开CSDN中很多博主博客的借鉴学习(文中已标明各个博主文章出处),特此将整个流程记录下来,主要是为了自己做个笔记备份,二是希望需要学习的同学也能少走弯路。最后,我想说是从零将yolov8跑起来是个一个十分折磨人的过程,希望大家能有耐心,细心研究。笔者作为一个刚入门的小白,能力有限,初次写文章,难免可能有些小错误,敬请谅解。

具体流程:

        大概流程主要是前期环境搭建,安装cuda、cudnn,制作数据集,下载代码,配置环境包、修改配置参数,运行代码,用训练结果进行预测

目录

一、前期环境搭建:安装pycharm、anaconda、pytorch

二、安装cuda和cudnn

三、准备数据集

四:下载代码

五、配置环境包以及参数

六、运行代码 

七、利用训练生成的best.pt文件对物体进行识别预测


一、前期环境搭建:安装pycharm、anaconda、pytorch

        需要安装pycharm,用于跑yolov8的代码

        安装anaconda,用于管理环境包。pycharm和anaconda的安装可以自行搜索,这里主要要注意,安装完anaconda后,要自行添加anaconda进系统环境变量,否则用cmd命令时,会无法识别conda命令,比如显示:‘conda’ 不是内部或外部命令,也不是可运行的程序或批处理文件。

解决办法:在电脑的“高级系统设置”中 点击上方的高级选项以及下方的环境变量

可点击右侧浏览,将anaconda以下三个文件新建进系统的环境变量

anaconda安装完成后,启动anaconda prompt终端  在终端中输入:

conda create -n yolov8 python==3.8

创建一个基于python3.8名叫yolov8的环境

conda activate yolov8 

启动这个叫yolov8的环境

为在自命名yolov8的环境下安装pytorch

先更换国内镜像源:

清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda config --set show_channel_urls yes

中科大源:

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.ustc.edu.cn/anaconda/cloud/conda-forge/

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/

conda config --set show_channel_urls yes

将上面两大坨代码输进终端,anaconda 的下载源就以及更换为国内的了,下载环境包就更快

用conda命令安装历史版本的pytorch  去pytorch官网

注意:后面的-c pytorch -c conda-forge不用加

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1

输入进终端(在yolov8的环境下)  会下载很多包

二、安装cuda和cudnn

安装cuda和cudnn:见CUDA与cuDNN安装教程(超详细)--kirinmin的CSDN博客

三、准备数据集

先将自己的图片打标签:

下载labelimg 建一个3.9.16的python基础环境,在这个基础环境安装一些供labelimg使用的包,然后激活这个环境,在这个环境下打开labelimg,制作标签

labelimg下载安装:

打开cmd命令行

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

labelimg运行环境部署:

建一个3.9.16的python基础环境

conda create -n labelimg python==3.9.16

在这个基础环境安装运行labelimg包

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install labelImg -i https://pypi.tuna.tsinghua.edu.cn/simple/
 

然后激活这个环境,在这个环境下打开labelimg (在这个环境下,cmd输入labelimg即可),就不会出现labelimg运行闪退问题

参考:

目标检测---利用labelimg制作自己的深度学习目标检测数据集--炮哥带你学--CSDN博客

labelImg启动闪退的解决方法--qq_45476390--CSDN博客

注:第一个方框为打开自己准备的图片位置;第二个方框为转换图片格式后保存位置;第三个方框为转换格式的选择,选择yolo格式(txt文件)

格式转换完毕后:准备数据集

准备的数据集分为图片集和标签集  在图片集和标签集下又分别含有train训练集和val验证集

创建文件夹,包含两个文件:

每个images文件和labels文件又分别包含训练集验证集文件

将图片按比例(一般为8:2)分别放在train和val文件夹,图片集和标签集两个文件夹下train和val文件都要分别将相对应图片放置(一个图片相对应一个yolo.txt)

四:下载代码

见github官网:https://github.com/ultralytics/ultralytics

预训练权重下载:https://github.com/ultralytics/assets/releases

我使用的是yolov8n.pt   最小版本的训练模型

将数据集文件夹添加进项目的目录中,并将预训练权重模型yolov8n.pt也添加进项目中(也可以放在数据集文件中)

五、配置环境包以及参数

用pycharm打开项目代码

右下角将python环境选择为在步骤一时创建的yolov8环境

左边方框为yolov8代码运行使用说明文档,-CN为中文版

在python终端中使用命令,以便可以用yolo脚本驱动代码

pip install ultralytics

 点开requirements文件

在终端输入:

pip install -r requirements.txt

注意:如果显示找不到requirements文件,就加上requirements文件的地址再次运行:

pip install -r C:\python_files\yolov8_circle\ultralytics\requirements.txt 

修改配置参数:

主要是两个文件的修改:

1、将cfg/datasets里coco128.yaml文件复制并重新命名剪贴进自己的数据集文件,将重命名的副本文件修改里面的数据集路径、,以及“classesname" 为你所有识别物体的标签名

2、 将cfg/models/v8里yolov8.yaml文件复制并重新命名剪贴进自己的数据集文件,将重命名的副本文件里nc(number classes)改为你要训练识别物体的类别数

六、运行代码 

yolov8的代码可以有两种方式运行,一种是python代码,一种是用yolo脚本(CLI)命令运行,详情请见yolov8代码运行使用说明文档中usage具体举例:https://docs.ultralytics.com/usage/cli/

我使用的是终端CLI命令运行:

yolo detect train data=C:\python_files\yolov8_circle\ultralytics\Circledata\circle_data.yaml model=C:\python_files\yolov8_circle\ultralytics\Circledata\yolov8n.pt epochs=300 imgsz=640

train表示训练

data后面跟数据集配置的yaml文件(文件修改一)的路径,即复制重命名后的“coco128.yaml”副本路径

model后面跟预训练权重模型yolov8n.pt的路径   也可以为模型配置的yaml文件(文件修改二)的路径,即复制重命名后的“yolov8.yaml”副本路径,也可以跑。比如:

yolo detect train data=C:\python_files\yolov8_circle\ultralytics\Circledata\circle_data.yaml model=C:\python_files\yolov8_circle\ultralytics\Circledata\yolov8n_circle.yaml epochs=300 imgsz=640

epochs为训练轮数

特别的,使用python代码运行

你也可以自己创建一个train.py文件,使用python代码运行

from ultralytics import YOLO

# Load a model
model = YOLO("Circledata/yolov8n_circle.yaml")  # build a new model from scratch
model = YOLO("Circledata/yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="ultralytics/Circledata/circle_data.yaml", epochs=100, imgsz=640)


代码运行成功:

训练完成后会在以下路径生成关于训练识别你的物体的权重文件best.pt

七、利用训练生成的best.pt文件对物体进行识别预测

将需要识别的文件夹添加到项目中,如图所示

使用命令:进行预测 

source后跟放入图片/文件夹的路径 

yolo detect predict model=runs/detect/train/weights/best1.pt source=C:\python_files\yolov8_circle\ultralytics\ultralytics\assets\valimage

运行的结果会存放在以下路径中

结果展示:

当然,你也可以predict一段视频,或是接一个摄像头进行predict,具体使用方法可见上文提到的yolov8使用举例文档

  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

似苦又甜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值