[C#]winform部署yolov5-onnx模型
【官方框架地址】
https://github.com/ultralytics/yolov5
【算法介绍】
Yolov5,全称为You Only Look Once version 5,是计算机视觉领域目标检测算法的一个里程碑式模型。该模型由ultralytics团队开发,并因其简洁高效的特点而备受关注。Yolov5在保留了前代模型(Yolov3)优点的同时,进一步优化了网络结构,提高了检测速度和准确率。
Yolov5的核心思想是利用深度学习和神经网络,对输入的图像进行多尺度特征提取,并利用回归方法预测出图像中目标物体的位置和类别信息。相较于传统的目标检测算法,Yolov5具有更高的检测精度和更快的运行速度。
Yolov5模型结构主要包括三个部分:骨干网络(Backbone)、特征金字塔网络(Feature Pyramid Network)和检测头(Detection Head)。
- 骨干网络:Yolov5采用了轻量级的网络结构,如CSPDarknet53和EfficientNet等,用于提取图像的多尺度特征。这些网络结构在保持高性能的同时,显著降低了模型的计算复杂度。
- 特征金字塔网络:特征金字塔网络在骨干网络的基础上,进一步提取多尺度的特征信息,为后续的目标检测提供丰富的特征信息。
- 检测头:检测头负责根据特征金字塔网络输出的特征信息,进行目标物体的位置和类别预测。Yolov5采用了类似于anchor box的方法,通过预测物体与anchor box的交并比(Intersection over Union)和类别信息,实现目标检测。
相较于前代模型,Yolov5在训练过程中采用了许多优化策略,如数据增强、学习率衰减、知识蒸馏等,进一步提高了模型的性能。此外,Yolov5还支持多任务学习(Multi-task Learning),可以在同一模型中同时进行目标检测、实例分割和关键点检测等任务,提高了模型的泛化能力。
在实际应用中,Yolov5表现出了优秀的性能。在COCO、PASCAL VOC等目标检测数据集上,Yolov5取得了领先于其他算法的准确率。此外,由于Yolov5的简洁高效特点,该模型在移动设备、嵌入式系统等领域也有着广泛的应用前景。
总的来说,Yolov5是计算机视觉领域目标检测算法的一个重要进展。它不仅提高了目标检测的准确率和速度,而且具有较低的计算复杂度和良好的泛化能力。未来,随着深度学习技术的不断发展,相信会有更多优秀的目标检测算法涌现出来,推动计算机视觉领域的技术进步。
【效果展示】
【参考实现部分代码】
using SixLabors.Fonts;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using System;
using Yolov5Net.Scorer;
using Yolov5Net.Scorer.Models;using var image = await Image.LoadAsync<Rgba32>("Assets/test.jpg");
{using var scorer = new YoloScorer<YoloCocoP5Model>("Assets/Weights/yolov5n.onnx");{var predictions = scorer.Predict(image);var font = new Font(new FontCollection().Add("C:/Windows/Fonts/consola.ttf"), 16);foreach (var prediction in predictions) // draw predictions{var score = Math.Round(prediction.Score, 2);var (x, y) = (prediction.Rectangle.Left - 3, prediction.Rectangle.Top - 23);image.Mutate(a => a.DrawPolygon(new Pen(prediction.Label.Color, 1),new PointF(prediction.Rectangle.Left, prediction.Rectangle.Top),new PointF(prediction.Rectangle.Right, prediction.Rectangle.Top),new PointF(prediction.Rectangle.Right, prediction.Rectangle.Bottom),new PointF(prediction.Rectangle.Left, prediction.Rectangle.Bottom)));image.Mutate(a => a.DrawText($"{prediction.Label.Name} ({score})",font, prediction.Label.Color, new PointF(x, y)));}await image.SaveAsync("Assets/result.jpg");}
}
【源码下载】
【测试环境】
vs2019
netframework4.7.2
onnxruntime1.16.3
opencvsharp4.8.0
注意模型在yolov5-6.0和yolov5-7.0测试通过,<6.0不支持
相关文章:
[C#]winform部署yolov5-onnx模型
【官方框架地址】 https://github.com/ultralytics/yolov5 【算法介绍】 Yolov5,全称为You Only Look Once version 5,是计算机视觉领域目标检测算法的一个里程碑式模型。该模型由ultralytics团队开发,并因其简洁高效的特点而备受关注。Yol…...
基于SpringBoot的洗衣店管理系统
基于SpringBoot的洗衣店管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 可视化展示 用户界面 管理员界面 摘要 洗衣店管理系统基于Spring Boot框…...
AMEYA360:广和通RedCap模组FG131FG132系列
2024年1月,广和通RedCap模组FG131&FG132系列已进入工程送样阶段,可为终端客户提供样片。广和通RedCap模组系列满足不同终端对5G速率、功耗、尺寸、成本的需求,全面助力RedCap技术的行业应用。 FG131&FG132系列基于骁龙X35 5G调制解调…...
RGB,RGB-D,单目,双目,sterro相机,实例相机介绍
相机—特点及区别 1.相机种类 RGB,RGB-D,单目,双目,sterro相机,实例相机 2.相机特点 2.1单目 只使用一个摄像头进行SLAM,结构简单,成本低 三维空间的二维投影 必须移动相机,才…...
【linux】history命令显示时间的例子
在Linux中,你可以通过设置HISTTIMEFORMAT环境变量来显示命令的执行时间。这个环境变量定义了history命令中时间的显示格式。以下是设置和说明的步骤: 打开终端: 打开你的终端应用。 编辑配置文件: 使用文本编辑器(如n…...
Nginx负载均衡以及常用的7层协议和4层协议的介绍
一、引言 明人不说暗话,下面来解析一下 Nginx 的负载均衡。需要有 Linux 和 Nginx 环境哈。 二、nginx负载均衡的作用 高并发:负载均衡通过算法调整负载,尽力均匀的分配应用集群中各节点的工作量,以此提高应用集群的并发处理能力…...
【机器学习300问】4、机器学习到底在学习什么?
首先我们先了解一个前置问题,再回答机器学习到底在学习什么。 一、求机器学习问题有哪几步? 求解机器学习问题的步骤可以分为“学习”和“推理”两个阶段。首先,在学习阶段进行模型的学习,然后,在推理阶段用学到的模型…...
设计一个简易版的数据库路由
👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…...
接口自动化测试面试题
前言 前面总结了一篇关于接口测试的常规面试题,现在接口自动化测试用的比较多,也是被很多公司看好。那么想做接口自动化测试需要具备哪些能力呢? 也就是面试的过程中,面试官会考哪些问题,知道你是不是真的做过接口自动…...
Tampermonkey油猴插件-各大网盘批量分享,解放双手-上
Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列...
【DB2】installSAM执行后会重启这件事
碎碎念 在使用自动化工具安装TSAMP的过程中,机器会自动重启这件事。 TSAMP真的挺折磨的,一个月居然因为这件事情debug两次了。 在测试自动化脚本的时候,第一遍安装都是好好的,从第二遍开始(因为要测试脚本的幂等性&…...
RTSP网络视频协议
一.RTSP网络视频协议介绍 RTSP是类似HTTP的应用层协议,一个典型的流媒体框架网络体系可参考下图,其中rtsp主要用于控制命令,rtcp主要用于视频质量的反馈,rtp用于视频、音频流从传输。 1、RTSP(Real Time Streaming P…...
Python 网络数据采集(四):Selenium 自动化
Python 网络数据采集(四):Selenium 自动化 前言一、背景知识Selenium 4Selenium WebDriver 二、Selenium WebDriver 的安装与配置2.1 下载 Chrome 浏览器的驱动程序2.2 配置环境变量三、Python 安装 Selenium四、页面元素定位4.1 选择浏览器开…...
实现秒杀功能设计
页面 登录页面 登录成功后,跳转商品列表 商品列表页 加载商品信息 商品详情页 根据商品id查出商品信息返回VO(包括rmiaoshaStatus、emainSeconds)前端根据数据展示秒杀按钮,点击开始秒杀 订单详情页 秒杀页面设置 后端返回秒杀…...
每天刷两道题——第十四天
1.1矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法。 输入:matrix [[0,1,2,0],[3,4,5,2],[1,3,1,5]] 输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]] 原地算法(…...
快速掌握Postman实现接口测试
快速掌握Postman实现接口测试 Postman简介 Postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等方法。Postman非常简单易用,可以直接填写URL,header,body等就可以发…...
jmeter--3.使用提取器进行接口关联
目录 1. 正则表达式提取器 1.1 提取单个数据 1.2 名词解释 1.3 提取多个数据 2. 边界值提取器 2.2 名词解释 3. JSON提取器 3.1 Json语法 3.2 名词解释 3.3 如果有多组数据,同正则方式引用数据 1. 正则表达式提取器 示例数据:{"access_to…...
移动通信系统关键技术多址接入MIMO学习(8)
1.Multiple-antenna Techniques多天线技术MIMO,从SISO到SIMO到MISO到如今的MIMO; 2.SIMO单发多收,分为选择合并、增益合并;SIMO,基站通过两路路径将信号发送到终端,因为终端接收到的两路信号都是来自同一天…...
WorkPlus AI助理为企业提供智能客服的机器人解决方案
在数字化时代,企业面临着客户服务的重要挑战。AI客服机器人成为了提升客户体验和提高工作效率的关键工具。作为一款优秀的AI助理,WorkPlus AI助理以其智能化的特点和卓越的功能,为企业提供了全新的客服机器人解决方案。 为什么选择WorkPlus A…...
python类装饰器编写单体类
1 python类装饰器编写单体类 类装饰器用于装饰类,用于管理类自身,或用于管理实例创建调用。 单体类,不管创建多少次实例,都只有一个实例的类。可以通过类装饰器管理装饰类的全部实例,实现单体类。 1.1 字典存放单体…...
Java并发Condition 详解
1.引言 在Java并发编程中,线程间的协作是一个核心话题。为了实现线程间的协作,Java提供了多种机制,其中等待/通知机制是最常见的一种。在早期版本中,我们通过Object类提供的wait、notify和notifyAll方法来实现这种机制。然而&…...
如何使用CentOS系统中的Apache服务器提供静态HTTP服务
在CentOS系统中,Apache服务器是一个常用的Web服务器软件,它可以高效地提供静态HTTP服务。以下是在CentOS中使用Apache提供静态HTTP服务的步骤: 1. 安装Apache服务器 首先,您需要确保已安装Apache服务器。可以使用以下命令安装Ap…...
Python入门0基础学习笔记
1.编程之前 在编写代码之前,还有两件事需要做: 安装 Python 解释器:计算机是没法直接读懂 Python 代码的,需要一个解释器作为中间的翻译,把代码转换成字节码之后再执行。 Python 是翻译一行执行一行。一般说的安装 …...
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
前言 当你需要统计训练数据中每个类别标签有多少,并且想知道坐标中心分布在图像的位置信息时,你可以利用一下脚本进行计算! 步骤 要绘制热力图来分析VOC数据的分布统计,可以按照以下步骤进行: 数据处理࿱…...
【回顾2023,展望2024】砥砺前行
2023年总结 转眼间,迎来了新的一年2024年,回顾2023,对于我来说是一个充满平凡但又充实又幸运的一年。这一年经历了很多的事情,包括博客创作、技术学习、出书、买房等,基本上每件事情都是一个前所未有的挑战和机遇、使…...
Stable Diffusion初体验
体验了下 Stable Diffusion 2.0 的图片生成,效果还是挺惊艳的,没有细调prompt输入,直接输入了下面的内容: generate a Elimination Game image of burnning tree, Cyberpunk style 然后点击生成,经过了10多秒的等待就输…...
缓存解析:从架构设计到Redis应用及最佳实践
典型架构设计中缓存的存储位置 在现代软件架构中,缓存是优化数据检索、提高应用性能的关键组件。缓存的存储位置多种多样,每个位置针对特定的优化目标和需求。理解这些层级对于设计高效的系统至关重要。 浏览器缓存:这是最接近用户端的缓存层…...
【C#】使用 LINQ 中的 Skip() 和 Take()进行分页,为什么要分页,分页作用是什么
欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是是《C#》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握…...
2024云服务器哪家好?阿里云、腾讯云、华为云
作为多年站长使市面上大多数的云厂商的云服务器都使用过,很多特价云服务器都是新用户专享的,本文有老用户特价云服务器,阿腾云atengyun.com有多个网站、小程序等,国内头部云厂商阿里云、腾讯云、华为云、UCloud、京东云都有用过&a…...
docker compose安装gitlab
环境 查看GitLab镜像 docker search gitlab 拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备gitlab-docker.yml文件 version: 3.1 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url…...
杭州网站建设宣盟网络/如何优化推广网站
Apache Tiles实战...
wordpress leravel/关于校园推广的软文
创建文件【vi】一、进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi n filename :打开文件,并将光标置于第n行首vi filename :打开文件,并将光标置于最后一行首vi /pattern filename:打开…...
dw网页制作试题/新网站排名优化怎么做
////TITLE:// WinCE同步和硬盘模式的切换//AUTHOR:// norains//DATE:// Monday 22-October-2007//Environment:// EVC4.0 Windows CE 5.0 Standard SDK//本文一下内容基于RMI AU1200的实验平台,且没有更改默认的同步及硬盘模式的驱动文件名,故无法保证本文的…...
wordpress忘记用户名密码破解/网站排名软件优化
数组 :数据相同的容器 语法格式 数据类型[] 数组名称 new 数据类型[给定的长度]5、 for(int i0,j2 ; i<j ; i,j–) 特殊的表现形式 在Java中,可以使用以下格式来定义一个数组。如下 数据类型[] 数组名 new 数据类型[元素个数或数组长度]; int[] x n…...
做网上水果网站的调查/优化课程
0背景之前学习了USB虚拟成串口VCP和自定义HID设备的两种模式,本次来学习STM32的USB模拟成大容量存储设备模式,即将STM32板子模拟成U盘。1cube MX配置步骤首先选择USB使用模式,我们选择MSC模式,如下图所示然后配置系统和USB外设所使…...
进口跨境电商网站制作/电商培训大概多少学费
问题描述: 由于jupyter出现难以解决的问题,采用重新安装来解决问题,但是重装之后启动jupyter报错ImportError: libsodium.so.23: cannot open shared object file: No such file or directory 过程描述: 运用conda命令卸载jupyter…...