YOLOv12 微调示例

本文转载改编自:https://mp.weixin.qq.com/s/XaLFMHCz8cAdvZb-73wt0g


1、下载 YOLOv12 代码

首先,进入YOLOv12的GitHub仓库,按照图示流程下载打包好的YOLOv12代码与预训练权重文件到本地。
https://github.com/sunsmarterjie/yolov12

git clone https://github.com/sunsmarterjie/yolov12

2、准备数据集

Ultralytics 版本的YOLO 所需格式的数据集,标签为 txt 格式的文本文件。

文本文件中保存的标签信息分别为:
类别序号、中心点x坐标、中心点y坐标、归一化后的长度、归一化后的宽度
每一行对应一个对象,图像中有几个标注的对象就有几行信息。



自制数据集标注教程可看此篇文章:https://blog.csdn.net/StopAndGoyyy/article/details/139906637

如果没有自己的数据集,本文提供一个小型数据集(摘自SIMD公共数据集)以供测试代码,包含24张训练集以及20张测试集。
下载链接:https://pan.quark.cn/s/f318a977f81c 提取码:LQ68

下载完成后将提供的 datasets文件夹 解压并复制到工程跟路径下。解压后,文件夹名字为 datasets


在这里插入图片描述


创建 data.yaml 文件

创建 data.yaml 文件保存数据集的相关信息,如果使用本文提供的数据集可使用以下代码:

# 数据集路径 
train: ./images/train
val: ./images/test
test: ./images/test

# 类别数
nc: 15

# 类名 
names: ['car', 'Truck', 'Van', 'Long Vehicle','Bus', 'Airliner', 'Propeller Aircraft', 'Trainer Aircraft', 'Chartered Aircraft', 'Fighter Aircraft', 'Others', 'Stair Truck', 'Pushback Truck', 'Helicopter', 'Boat']  


3、模型训练

创建 train.py 文件,依次填入以下信息。

from ultralytics.models import YOLO
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

if __name__ == '__main__':
	model_path = 'ultralytics/cfg/models/11/yolo11.yaml'
    model = YOLO(model=model_path)
    # model.load('yolov8n.pt') 
    model.train(data='./data.yaml', epochs=2, batch=1, device='0', 
                imgsz=640, workers=2, cache=False,
                amp=True, mosaic=False, project='runs/train', name='exp')

参数说明:

  • epochs=2 表示只训练两轮,通常设置为100-300之间,此处仅测试两轮。
  • batch=1 表示每批次仅训练一张图片,可按显存大小调整batchsize,一般24g卡可设置为16-64。


参数说明


点击运行代码
待软件控制台打印如下信息即为运行成功。如果Flash_attn包报错,可使用本文的A2代码对原文代码进行更改。


查看结果

训练完成后在 runs/train 文件夹下保存有训练好的权重及相关训练信息。


4、模型预测

创建 detect.py 文件,填入训练好的权重路径及要检测的图片信息。

import os 
from ultralytics.models import YOLO

os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' 

if __name__ == '__main__':
    model_path = '/Users/.../yolov12/runs/train/exp/weights/best.pt' 
    model = YOLO(model_path) 

    source_dir = '.../data/01'
    results = model.predict(source=source_dir, imgsz=640, project='runs/detect/', name='exp' )
    print('-- results : \n', results ) 


2025-06-24(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

EAI工程笔记

请我喝杯伯爵奶茶~!

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

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

打赏作者

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

抵扣说明:

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

余额充值