搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试

搭建YOLOv8实现裂缝缺陷识别全流程教程:从源码下载到模型测试

教程目的:

yolov8的安装配置到训练模型,并完成使用模型进行识别

前提注意:

yolov8要求Python需要版本必需大于等于3.10,我用的Python3.12.3, 这里分享下Python3.12.3的安装器=>https://pan.quark.cn/s/2f9cad8130ab

以及教程中用到的yolov8源码、权重文件、GPU配套版本的Torch => https://pan.quark.cn/s/388cdfd7ca3f

大致步骤

1.下载源代码并下载所需库
2.更换GPU版本的Torch和Numpy版本
3.下载权重文件
4.准备数据集
5.开始训练
6.测试模型

步骤1:下载源代码并下载所需库

下载yolov8源代码然后Pycharm创建项目,并将源代码放入进行解压

官网下载源码=>ultralytics/ultralytics: Ultralytics YOLO11 🚀 (github.com)

QQ_1729825701407

QQ_1729825957193

然后下载所需库,控制台执行命令 pip install ultralytics

pip install ultralytics

提示:现在官方提供下载所需库的命令是pip install ultralytics,而不再是通过requirements.txt下载库了,并且源码也删除了requirements.txt

步骤2:更换GPU版本的Torch和Numpy版本

所需库下载完了后,默认下载的torch是CPU版本的,我需要GPU版本的torch,因此还需要更换torch的版本,我们可以先检查下torch的版本以及cuda是否可用,根目录创建一个py文件,名为cuda检查.py,放置如下代码并且执行:

import torch
import numpy as np

# 检查GPU、Cuda

print("numpy版本:"+np.__version__)
print("CUDA是否可用=>", torch.cuda.is_available())
print("pytorch版本=>"+torch.__version__)
print("是否支持CUDA=>"+str(torch.cuda.is_available()))
# 如果有 GPU 可用,打印 GPU 数量和名称
if torch.cuda.is_available():
    print("GPU设备数量=>", torch.cuda.device_count())
    print("当前使用GPU=>", torch.cuda.get_device_name(torch.cuda.current_device()))
else:
    print("没有GPU可用,当前将运行在CPU上")

 

如果没问题,会显示如下,那么你可以直接去看步骤3了

QQ20241025-112009

如果你的pytorch显示cpu版本的,且numpy提示报错了,请继续看如下解决方案:

2.1下载cuda,更换GPU版本的torch

然后来到 PyTorch官网 ,因为我下载的是CUDA12.2,官网往下拉可以看到一个注释为CUDA 12.1的,这里可以看到我们应当使用的torch版本,记住这几个版本号

a34f87f29fa35dcf8dd3089357af755f

 

然后来到PyTorch库官方下载页 

使用快捷键ctrl+f搜索并下载GPU配套版本torch

torch:搜索 cu121/torch-2.2.1 (版本小一点是可以的),选择 cp312-win 的版本(因为我是python3.12且为windows)

QQ20241025-113153

torchvision:搜索 cu121/torchvision-0.17.1,选择 cp312-win 的版本。

QQ20241025-113530

torchaudio:搜索 cu121/torchaudio-2.2.1,选择 cp312-win 的版本。

QQ20241025-114134

三个whl文件下载完后建议放到yolov8根目录,然后cmd进入此目录,依次执行以下三条命令安装:

pip install "torch-2.2.1+cu121-cp39-cp39-win_amd64.whl"
pip install "torchvision-0.17.1+cu121-cp39-cp39-win_amd64.whl"
pip install "torchaudio-2.2.1+cu121-cp39-cp39-win_amd64.whl"

注意:安装第一个whl文件时会出现红色文字提示,这不是说安装失败,是提示还需要安装torchvision

QQ20241025-114519

2.2更换numpy版本

我是遇到这个问题了,yolov8要求numpy版本不得大于2.0,因此我需要先卸载当前大于2.0版本的numpy,然后降低版本为2.0以下,依次执行如下命令:

1.卸载现有的Numpyku
pip uninstall numpy

2.安装2.0以下且yolov8支持的numpy版本
pip install numpy==1.26.4

最后建议执行下刚才创建的cuda检查.py文件,看看是否已经完成了GPU版本的torch安装

步骤3:下载权重文件

下载权重文件(也成为预训练检查点文件),然后建议放入yolov8源码根目录

官网下载=>https://github.com/ultralytics/assets/releases

我这里下载的是yolov8n.pt

QQ20241025-125216

QQ20241025-125320

步骤4:准备数据集

关于准备数据集这个东西,完整的方式是先准备图片,再用labelImg去标注图片,这里我提供个标注好的裂缝缺陷数据集,可直接开始训练,见夸克盘内的splitData.zip和CrackConfig.yaml => 标记好的裂缝缺陷数据集(幽络源整理)

如需要学习如何自己制作数据集合,请看这里的教程=> Yolov5图像识别教程包成功-幽络源原创

步骤5:开始训练

为方便理解,在根目录下建立文件夹名为MyTrain,然后将数据集和相关配置放进去,如图

QQ20241025-125754

注意:在CrackConfig.yaml中你需要将train和val更改为你自己的绝对路径!!!

然后就是开始训练了,在yolov8源码根目录打开控制条,执行如下命令即可开始训练:

yolo train data="D:\A01PythonProjects3123\ultralytics-main\MyTrain\CrackConfig.yaml" model="D:\A01PythonProjects3123\ultralytics-main\yolov8n.pt" epochs=200 imgsz=640 batch=8 workers=8 device=0

参数提示:

  • data是数据集配置文件的绝对路径
  • model是下载的权重文件的绝对路径,一定要绝对路径
  • epochs是训练轮次
  • imgsz是指定图片的尺寸
  • batch指定每一批处理数量
  • workers指定线程工作数量
  • device指定使用显卡还是CPU还是其他,为0则表示使用显卡

命令一运行,就可以看到开始训练了,如下2张图:

1037fecc1cede096f5ed8db923a5063a

7f09fac0f3dada9fcf47aa28450c61e5

训练完后可以看到结果表示在根目录的runs/detect/train2下,可以看到weights下有个best.pt,这便是我们的最优模型文件,如图

QQ20241025-130346

步骤6:测试模型

然后在根目录建立py文件名为Main.py,加入如下代码,然后找一张相关的图进行测试:

注意:将模型文件绝对路径和图片路径替换为你自己的!!!

from ultralytics import YOLO
yolo=YOLO(model=r"D:\A01PythonProjects3123\ultralytics-main\runs\detect\train2\weights\best.pt",task="detect")
results=yolo(source=r"C:\Users\Administrator\Pictures\test.jpg",save=True)

然后运行,运行后可以看到控制台提示识别的结果在runs\detect\predict目录下,如图

QQ20241025-130847

结语

不得不说yolov8其实还要比yolov5简单的多,幽络源的yolov8搭建使用基础教程结束,如有不懂,可加群询问。

 

 

 

© 版权声明
THE END
喜欢就支持一下吧
分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容