欢迎光临
我们一直在努力

【工业场景】用YOLOv26实现工业划痕质检

目录

🌷🌷1.数据集介绍

🍉1.1输入影像       

🍉1.2yolo-seg分割识别数据格式

👍👍2.工业划痕质检实现效果

🍎🍎3.YOLOv8识别工业划痕质检算法步骤

🍋3.1数据准备

🍋3.2模型选择

🍋3.3加载预训练模型

🍋3.4训练过程

🍋3.5训练结果

🏆🏆4.语义分割推理代码

整理不易,欢迎一键三连!!!送你们一条美丽的–分割线–


🌷🌷1.数据集介绍

🍉1.1输入影像       

         工业划痕质检数据集总共包含800张样本数据,其中训练集700张,验证集100张,影像尺寸为280*120至8600*5000,部分影像展示如下:

🍉1.2yolo-seg分割识别数据格式

        YOLO(You Only Look Once)目标检测算法使用特定的数据格式进行训练和预测。以下是常见的YOLO数据格式要求:

  •         每个图像对应一个同名的.txt文件
  •         每行表示一个边界框,格式为:class_id x1,y1,x2,y2,x3,y3,x4,y4,x5,y5….xn,yn
  •         所有坐标值都是相对于图像宽度和高度的归一化值(0-1之间)
  •         工业划痕质检数据样本类别包含1类。

0:划痕
 

images文件夹下存放所有训练原图,示例内容如下:

  label为txt格式的yolo语义分割格式,示例txt文件内容为:

👍👍2.工业划痕质检实现效果

🍎🍎3.YOLOv8识别工业划痕质检算法步骤

        通过语义分割方法进行工业划痕质检进行识别的方法不限,本文以YOLOv8为例进行说明。

🍋3.1数据准备

        工业划痕质检数据集总共包含63张样本数据,由于数据量太小,所以训练和验证集用相同数据。

数据组织:

—-huahen_seg
—-images

—-labels

images文件夹 如下:

labels文件夹如下:

        模型训练label部分采用的是YOLO格式的txt文件,所以如果自己的数据集是xml格式或者json格式需要进行转换哦,转换可移步这里。

        具体txt格式内容如1.数据集介绍中所示。

🍋3.2模型选择

        以YOLO26n为例,模型选择代码如下:

from ultralytics import YOLO

# Load a model

model = YOLO('yolov8n-seg.yaml').load('yolov8n.pt') # build from YAML and transfer weights

# Train the model

results = model.train(data='huahen_seg_coco128.yaml',epochs=400,imgsz=640,batch=64)

        其中huahen_seg_coco128.yaml的内容可根据自己的数据地址进行模型调整,打开huahen_seg_coco128.yaml显示内容如下:

path: /mnt/data/工业/huahen_seg/ # dataset root dir
train: images # train images (relative to 'path') 128 images
val: images # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes
names:
0: huahen

🍋3.3加载预训练模型

        加载预训练模型yolov8ln-seg.pt,可以在第一次运行时自动下载,如果受到下载速度限制,也可以自行下载好(下载链接),放在对应目录下即可。

🍋3.4训练过程

        开始训练之后就会开始打印log文件了。如下图所示:

🍋3.5训练结果

训练完成后的结果如下:

        其中weights文件夹内会包含2个模型,一个best.pth,一个last.pth。

至此就可以使用best.pth进行推理检测划痕了。

精度效果如下:

wandb: Run summary:
wandb:                  lr/pg0 2e-05
wandb:                  lr/pg1 2e-05
wandb:                  lr/pg2 2e-05
wandb:        metrics/mAP50(B) 0.91796
wandb:        metrics/mAP50(M) 0.90438
wandb:     metrics/mAP50-95(B) 0.81592
wandb:     metrics/mAP50-95(M) 0.53813
wandb:    metrics/precision(B) 0.99048
wandb:    metrics/precision(M) 0.98212
wandb:       metrics/recall(B) 0.88104
wandb:       metrics/recall(M) 0.87361
wandb:            model/GFLOPs 11.48
wandb:        model/parameters 3263811
wandb: model/speed_PyTorch(ms) 1.647
wandb:          train/box_loss 0.62574
wandb:          train/cls_loss 0.48228
wandb:          train/dfl_loss 0.91961
wandb:          train/seg_loss 1.37895
wandb:            val/box_loss 0.56916
wandb:            val/cls_loss 0.39778
wandb:            val/dfl_loss 0.84192
wandb:            val/seg_loss 1.17052

🏆🏆4.语义分割推理代码

        批量推理python代码如下:

from ultralytics import YOLO
from PIL import Image
import cv2
import os
 
 
model = YOLO('/yolov8/runs/segment/train3/weights/best.pt')  # load a custom model
path = '/home/dataset/images/test/'  #test_image_path_dir
img_list = os.listdir(path)
for img_path in img_list:
###  =============detect=====================
    im1 = Image.open(os.path.join(path,img_path))
    results = model.predict(source=im1, save=True,save_txt=True)

若需要完整数据集和源代码可以私信。

整理不易,欢迎一键三连!!! 送你们一条美丽的–分割线–

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷   

赞(0)
未经允许不得转载:171主机测评 » 【工业场景】用YOLOv26实现工业划痕质检
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址