YOLOV5 使用 ML.NET ONNX 在C#部署


前言

参考[https://github.com/mentalstack/yolov5-net](https://github.com/mentalstack/yolov5-net)的实现

一、生成dll调用库

1.安装.NET core SDK

.NET Core 3.1 SDK (v3.1.416) - Windows x64

2.Nuget安装 ML ONNX Running Time

在这里插入图片描述

3.生成Dll库文件

在这里插入图片描述
在这里插入图片描述

二、winform 程序调用dll

1.新建winform 程序

2.安装Nuget 包

在这里插入图片描述

3.下载官网的onnx模型文件

模型文件下载地址

4.添加引用

在这里插入图片描述

5. 程序修改

5.1 模型初始化

scorer = new YoloScorer<YoloCocoP5Model>("Assets/Weights/yolov5s.onnx");

5.2 模型推断

        private void button1_Click(object sender, EventArgs e)
        {

           
            var image = Image.FromFile(@"Assets/test3.jpg");
            DateTime T_start = DateTime.Now;
            List<YoloPrediction> predictions = scorer.Predict(image);

            var graphics = Graphics.FromImage(image);

            foreach (var prediction in predictions) // iterate predictions to draw results
            {
                double score = Math.Round(prediction.Score, 2);

                graphics.DrawRectangles(new Pen(prediction.Label.Color, 1),
                    new[] { prediction.Rectangle });

                var (x, y) = (prediction.Rectangle.X - 3, prediction.Rectangle.Y - 23);

                graphics.DrawString($"{prediction.Label.Name} ({score})",
                    new Font("Arial", 16, GraphicsUnit.Pixel), new SolidBrush(prediction.Label.Color),
                    new PointF(x, y));
            }

            image.Save("Assets/result.jpg");
            this.pictureBox1.Image = image;
            DateTime T_end = DateTime.Now;
            TimeSpan T_esp = T_end - T_start;
            this.label1.Text = T_esp.TotalMilliseconds.ToString();

        }

三、实际的效果

在这里插入图片描述

  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 58
    评论
YOLOv5是一个基于深度学习的目标检测算法,它能够实时准确地检测图像或视频中的多个对象。而ML.NET是Microsoft开发的一个机器学习框架,它可以帮助开发者在自己的应用程序中使用机器学习模型。在YOLOv5ML.NET的结合中,我们可以利用YOLOv5的目标检测能力,结合ML.NET的开发框架,来构建一个可以实时检测目标的应用程序。 首先,我们需要使用YOLOv5训练好的模型,该模型能够识别出多个不同类型的物体。然后,我们可以使用ML.NET将该模型集成到我们的应用程序中。 在使用ML.NET时,我们可以使用C#或F#等编程语言来编写我们的应用程序。ML.NET提供了一套API和工具,使得我们可以加载YOLOv5模型并调用它进行实时目标检测。我们可以通过指定输入图像或视频来进行预测,模型将返回检测到的物体的位置和类别等信息。 通过结合YOLOv5ML.NET,我们可以轻松地构建一个高性能的目标检测应用程序。我们可以将其应用于许多领域,例如智能监控、自动驾驶、工业检测等。同时,由于ML.NET的开发框架相对简单易用,即使对于没有机器学习经验的开发者来说,也可以快速上手使用和调试。 总而言之,YOLOv5ML.NET的结合为我们提供了一个强大的工具,使我们能够构建出实时准确的目标检测应用程序。它们为我们提供了更多机会来应用深度学习技术,促进了人工智能在各个领域的发展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值