首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在这个AI的时代我们也得与时俱进,给大家带来使用YOLO最新库来进行图像识别,标注、训练、验证、应用

在这个AI的时代我们也得与时俱进,给大家带来使用YOLO最新库来进行图像识别,标注、训练、验证、应用

作者头像
Shunnet
发布2025-02-20 14:32:06
发布2025-02-20 14:32:06
51300
代码可运行
举报
运行总次数:0
代码可运行
天给大家带来使用 Python YOLO 最新版本的图像识别库来进行标注、训练、验证、应用

标注工具[labelimg] - 不做过多阐述,工具使用网站上有很多教程,以下注意事项

1.安装失败请检查网络或开启VPN来进行安装

2.安装完成后打开失败请检查系统环境配置

3.详细的 labelimg 工具安装与使用

训练 - 详细的训练流程

1. 找到 yolo 版本,我的路径:D:\Program Files (x86)\Microsoft Visual Studio\Shared\Python39_64\Lib\site-packages\ultralytics

2. 设置配置文件 ai_card_config.yaml,请查看官网详细说明

3. 检测方案 yolov8n.yaml  

4. 执行终端管理员命令  切换盘符 CD F:\YoloV8

data: 配置

model: 模型默认 yolov8n.yaml

epochs:训练次数

imgsz:图片大小

执行训练,完成时间与训练次数挂钩,我的训练只是图像识别

代码语言:javascript
代码运行次数:0
运行
复制
yolo detect train data=ai_card_config.yaml model=yolov8n.yaml epochs=100 imgsz=640

训练完成会得到一个 pt 后缀文件

验证 - 也就是针对模型文件的验证,看识别准确率,标注的好坏也会影响训练结果
代码语言:javascript
代码运行次数:0
运行
复制
# -*- coding: utf-8 -*-
from ultralytics import YOLO

# 加载训练后的模型权重文件
model = YOLO('best.pt')

# 设置要进行推理的图像路径
image_path = '3.jpg'

# 进行推理
results = model(image_path)

# 输出结果
results.print()  # 打印结果
results.save('output/')  # 保存带有预测结果的图像

# 查看预测的标签和置信度
for result in results:
    print(f'Label: {result.labels}, Confidence: {result.conf}')
.net的应用

1.再把 pt 后缀文件转换成 onnx 后缀文件供.net 库的使用

代码语言:javascript
代码运行次数:0
运行
复制
# Load a model
model = YOLO("best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")

2. 事先到nuget安装 YoloDotNet 与 Snet.Core 两个动态库,复制如下代码即可使用

代码语言:javascript
代码运行次数:0
运行
复制
/// <summary>
/// yolov8 检测操作数据
/// </summary>
public class YoloDetectData
{
    /// <summary>
    /// 基础数据
    /// </summary>
    public class Basics
    {
        /// <summary>
        /// 模型路径
        /// </summary>
        public string ModelPath { get; set; }
    }
}


 /// <summary>
 /// yolov8 检测操作
 /// </summary>
 public class YoloDetectOperate : CoreAbstract<YoloDetectOperate, YoloDetectData.Basics>, IGetStatus, IDisposable
 {
     /// <summary>
     /// 有参构造函数
     /// </summary>
     /// <param name="basics">基础数据</param>
     public YoloDetectOperate(YoloDetectData.Basics basics) : base(basics)
     {
         yolo = new Yolo(new YoloOptions
         {
             OnnxModel = basics.ModelPath,      // Your Yolov8 or Yolov10 model in onnx format
             ModelType = ModelType.ObjectDetection,  // Model type
             Cuda = false,                           // Use CPU or CUDA for GPU accelerated inference. Default = true
             GpuId = 0,                             // Select Gpu by id. Default = 0
             PrimeGpu = false,                       // Pre-allocate GPU before first. Default = false
         });
     }

     /// <summary>
     /// 检测服务
     /// </summary>
     private Yolo yolo;

     /// <summary>
     /// 运行检测
     /// </summary>
     /// <param name="image">图片源</param>
     /// <returns>操作结果</returns>
     public OperateResult Run(SKImage image)
     {
         //检测
         List<ObjectDetection> results = yolo.RunObjectDetection(image);
         //results 返回的结果,自行修改此处代码
         return OperateResult.CreateSuccessResult("");
     }

     /// <summary>
     /// 运行检测
     /// </summary>
     /// <param name="imagePath">图片路径</param>
     /// <returns>操作结果</returns>
     public OperateResult Run(string imagePath) => Run(SKImage.FromEncodedData(imagePath));




     /// #<inheritdoc/>
     public OperateResult GetStatus()
     {
         if (yolo == null)
         {
             return OperateResult.CreateFailureResult("模型未加载");
         }
         return OperateResult.CreateSuccessResult("模型已加载");
     }

     public async Task<OperateResult> GetStatusAsync(CancellationTokenSource? token = null) => await Task.Run(() => GetStatus(), token?.Token ?? CancellationToken.None);
 }

以上是简单的阐述AI的应用,YOLO还支持其他的识别并且速度很快,后续会出一个详细的视频来讲解

YOLO官网最新版本

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 天给大家带来使用 Python YOLO 最新版本的图像识别库来进行标注、训练、验证、应用
    • 标注工具[labelimg] - 不做过多阐述,工具使用网站上有很多教程,以下注意事项
    • 训练 - 详细的训练流程
    • 验证 - 也就是针对模型文件的验证,看识别准确率,标注的好坏也会影响训练结果
    • .net的应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档