当前位置: 首页 > wzjs >正文

怎么搭建网站视频教程wordpress 最多显示

怎么搭建网站视频教程,wordpress 最多显示,网站保留密码 怎么做,免费手游平台app文章目录 前言dnn 模块一、经典YOLOv51. 训练模型并转化为ONNX2. 图片预处理3. 推理过程4. 结果分析5. 后处理5.1 去冗余5.2 可视化 6. 连续推理 二、新版YOLO111. 训练模型并转化为ONNX2. 对比YOLO11与YOLOv53. 修改“后处理”,以适配YOLO114. 完整YOLO11推理过程 …

文章目录

  • 前言
  • dnn 模块
  • 一、经典YOLOv5
    • 1. 训练模型并转化为ONNX
    • 2. 图片预处理
    • 3. 推理过程
    • 4. 结果分析
    • 5. 后处理
      • 5.1 去冗余
      • 5.2 可视化
    • 6. 连续推理
  • 二、新版YOLO11
    • 1. 训练模型并转化为ONNX
    • 2. 对比YOLO11与YOLOv5
    • 3. 修改“后处理”,以适配YOLO11
    • 4. 完整YOLO11推理过程
  • 总结


前言

  1. 需要下载安装OpenCV工具包的朋友,请前往 此处 ;
  2. 系统要求:Windows系统,LabVIEW>=2018,兼容32位和64位。

dnn 模块

查找函数选板>>Addons>>Molitec>>OpenCV>>dnn ,如下图。

本文主要用到 Net 类,以及 blobFromImage 和 NMSBoxes 函数。

在这里插入图片描述


一、经典YOLOv5

1. 训练模型并转化为ONNX

  • 训练

YOLOv5 项目文件下载地址:https://github.com/ultralytics/yolov5

通过 Python + PyTorch 训练YOLOv5模型。Python不是我的行当,这部分大家自己去“折腾”吧。本例将直接使用官方提供的预训练模型:yolov5s.pt 。(后缀 s 代表 small,即小型)它使用 coco 训练集,可以识别80类物体。

  • 转化

OpenCV的Net类支持载入多种模型,但不支持 .pt 类型。所以得到模型后,首先要将其转化成ONNX格式。

在YOLOv5工程根目录下有一个export.py,可以用来做模型转化。

把 yolov5s.pt 拷贝到工程根目录下,并在此目录下打开命令终端,然后执行:

python export.py --weights yolov5s.pt --include onnx --imgsz 640 --device cpu

(环境参考:Python3.7 + torch1.13.1 + onnx1.14.1, torch版本不能太高,否则会出问题)

执行完成后,会在同路径下生成 yolov5s.onnx 模型文件。


2. 图片预处理

YOLOv5 网络模型的输入层,是一个(1 * 3 * 640 * 640)的四维 Blob(用Mat类实现),用来代表一张经过预处理的彩色图片。1 代表batch数量,3代表通道数,后面两位是图片的尺寸。

使用 dnn 模块的 blobFromImage 函数实现图片预处理,如下图。

图片需要归一化,所以 scalefactor 设为 1/255。输出尺寸设为640 * 640,其余参数按默认值。

在这里插入图片描述


3. 推理过程

使用 dnn 模块的Net类,实现YOLOv5模型推理。依次用到的Net内置函数:new、setInput、forward、delete。

  • 第1步:载入模型。插入一个new.vi,切换模式为“readNetFromONNX”,然后输入 yolov5s.onnx 文件路径;
  • 第2步:设置输入。插入一个setInput.vi,输入经过预处理的 Blob 矩阵;
  • 第3步:向前传播。插入一个forward.vi,切换模式为“blob_name”,执行后得到网络输出Blob;
  • 第4步:销毁任务。插入一个delete.vi,销毁Net对象,释放内存。

一次简单的推理过程如下图。(暂不支持GPU加速,请等待后续更新)

在这里插入图片描述


4. 结果分析

YOLOv5 网络模型的输出层,是一个(1 * 25200 * 85)的三维 Blob,用来表示一张图片的全部推理结果。

使用 to_LV 将该Blob读取到LabVIEW中,并降维成 25200 * 85 的二维数组。

该数组一共25200行,代表25200个识别结果。

每行有85个元素,依次代表:cx,cy,w,h,conf,p0 ~ p79。

其中cx、cy是矩形框中心坐标,w、h是矩形框的宽和高,conf是框置信度,p0 ~ p79 依次是80个分类的概率。

在这里插入图片描述


5. 后处理

5.1 去冗余

上文所述,YOLOv5 对一张图片的推理结果,达25200个之多,这其中存在大量的冗余。

去除冗余的方法叫做 “非极大抑制” (NMS),也就是从重叠的矩形框中,筛选出最大且置信度最高的一个。

使用 dnn 模块的 NMSBoxes 函数实现该功能,如下图。

注意,输入bboxes中每个矩形的x,y是左上点,而模型输出的cx,cy是中心点,所以需要计算转换一下。scores是每个矩形的置信度,刚好对应上文中代表 conf 的那一列,直接连过去作为scores输入。

在这里插入图片描述

  • NMSBoxes 函数的输入输出:
输入类型含义
bboxes二维数组当列数为4时,每行4个数代表一个矩形 Rect(x, y, w, h);
当列数为5时,每行5个数代表一个旋转矩形 RotatedRect( cx, cy, w, h, angle);
当列数为6时,每行6个数代表一个旋转矩形 RotatedRect( x1, y1, x2, y2, x3, y3);
scores一维数组对应bboxes中每个矩形框的置信度;
paramsscore_threshold 是置信度阈值;
nms_threshold 是NMS阈值;
eta 是调节 NMS 阈值的衰减因子(默认设为1)
top_k 是最大保留数(等于0时忽略)
输出类型含义
indices一维数组通过 NMS 筛选后,保留下来的矩形框索引(在bboxes中的行序号)

5.2 可视化

可视化的任务,是在原图片中画出经过筛选的识别框、分类名称和概率,以便更直观地体现 dnn 推理结果。

注意,YOLOv5 网络输出的矩形框坐标,是基于预处理尺寸 640 * 640 而言的。因此,在原图片上绘制之前,需要经过尺度转化。

然后,在对应的 p0 ~ p79 中,找出最大概率的所在位置,就是分类序号,据此从名称列表里找到具体分类名称。

实现过程如下图所示。(NMS之前,提取bboxes和scores的过程,已封装成子VI)

在这里插入图片描述


至此,一次完整的 “预处理 + 推理 + 后处理” 过程全部完成,整体算法流程如下图。

(可视化过程已封装成子VI。 fit_to_center.vi 让picture控件自适应缩放并居中,详见 教程(3))

在这里插入图片描述

在这里插入图片描述


6. 连续推理

利用LabVIEW的循环结构,从摄像头连续采样,并实时进行 YOLOv5 推理。

请参考工具包附带的范例:examples/Molitec/OpenCV/dnn/Net_3 (ONNX_yolov5_Camera).vi

注意,多个Mat对象只需在While循环外初始化一次,然后在循环中重复使用,从而避免占用大量内存。

在这里插入图片描述


二、新版YOLO11

没错,它叫YOLO11,不带 v 的。

1. 训练模型并转化为ONNX

  • 训练

YOLO11 项目文件下载地址:https://github.com/ultralytics/ultralytics/tree/main

YOLO11 训练模型,可以使用集成度更高的 ultralytics 库,支持的 Python 版本为3.8 ~ 3.12。

同样,训练过程请自行完成。本例将直接使用官方提供的预训练模型:yolo11s.pt ,依然是80分类。

  • 转化

同样要将 .pt 模型转化成ONNX格式。YOLO11 可以通过 Python 调用 ultralytics 库进行转化:

from ultralytics import YOLOmodel = YOLO("yolo11s.pt")path = model.export(format="onnx")

(环境参考:Python3.12 + ultralytics8.3.86 + torch2.6.0 + onnx1.17.0 + onnxslim0.1.48 + onnxruntime1.21.0)

path 返回 onnx 文件路径。转化过程输出如下:

在这里插入图片描述


2. 对比YOLO11与YOLOv5

从上述转化过程的输出信息中,可以看出YOLO11与YOLOv5的输入层是一样的形状(1 * 3 * 640 * 640),二者的区别在输出层上。

YOLO11 的输出层:(1 * 84 * 8400)
YOLOv5 的输出层:(1 * 25200 * 85)

降维成2D后,YOLO11 的输出是 84行 * 8400列,每一列作为一个结果。而 YOLOv5 是每一行作为一个结果。

YOLO11 每一列的 84 个元素,依次代表 cx、cy、w、h、p0 ~ p79。与 YOLOv5 相比,没有框置信度conf。

采用相同的 “预处理”,进行一次 YOLO11 推理,观察返回结果。如下图。

在这里插入图片描述

在这里插入图片描述


3. 修改“后处理”,以适配YOLO11

如上文所述,YOLO11 相比 YOLOv5,其主要区别在于输出层。因此只需修改 “后处理” 过程。

  • 既然 YOLO11 是每列代表一个结果,那么直接将2D数组转置,这样就在方向上与 YOLOv5 一致;
  • 既然 YOLO11 没有框置信度,就用p0~p79中的最大值作为conf,插入到对应位置,这样就在数量上与 YOLOv5 一致;
  • 如此改造后,就可以直接沿用上文中 YOLOv5 的后处理子VI。
    (但此时,NMSBoxes 的 score_threshold 参数含义将变为类别概率阈值)

修改后的算法如下图。(其实修改方法不唯一,大家自己或许有更好的方案)

在这里插入图片描述


4. 完整YOLO11推理过程

一次完整的 YOLO11 推理过程如下图。连续推理过程,请参照 YOLOv5 ,尝试自行编写。

在这里插入图片描述

在这里插入图片描述


总结

  1. 本系列博文作为LabVIEW工具包—OpenCV的教程,将以专栏的形式陆续发布和更新。
  2. 对工具包感兴趣的朋友,欢迎下载试用:秣厉科技 - LabVIEW工具包 - OpenCV
  3. 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。

文章转载自:

http://ISBLPHAc.shxmr.cn
http://2UAVnETX.shxmr.cn
http://mS4f5eD8.shxmr.cn
http://Y4CykmBD.shxmr.cn
http://HJJXf81X.shxmr.cn
http://RQoNcT69.shxmr.cn
http://GY6GfC3a.shxmr.cn
http://iuRLSH2y.shxmr.cn
http://fSF6S9XP.shxmr.cn
http://HvsHNUu8.shxmr.cn
http://IuC8tvbi.shxmr.cn
http://bohq3ZjL.shxmr.cn
http://QtpBWtsV.shxmr.cn
http://FE4QqQit.shxmr.cn
http://srxNZAcs.shxmr.cn
http://F9EBGDbA.shxmr.cn
http://rZcx2xBE.shxmr.cn
http://KjhULaOp.shxmr.cn
http://LSBP528R.shxmr.cn
http://1BVsiq1Q.shxmr.cn
http://udTlxz2R.shxmr.cn
http://rrmJksSf.shxmr.cn
http://GsKPmdhB.shxmr.cn
http://0NYD4uFB.shxmr.cn
http://t6FTIrrN.shxmr.cn
http://fLRHecfV.shxmr.cn
http://HZjXj5uJ.shxmr.cn
http://nZhkczNQ.shxmr.cn
http://VkZMayLk.shxmr.cn
http://s3K36p6S.shxmr.cn
http://www.dtcms.com/wzjs/634037.html

相关文章:

  • 网站关键词分割阿里云网站备案好了 怎么建站
  • 网站建设的结论和体会网站备案验证码错误
  • 金融互助网站建设开发手机app软件公司
  • 凡科建站网页版石家庄昨天下午出了大事
  • 常平营销网站建设什么网站可以做兼职美工
  • 重庆网站建站建设平台微网站如何建设方案
  • 建站公司新闻资讯闲置物品交易网站怎么做的
  • 徐汇网站开发培训班视频网站直播如何做
  • 兰州网站建设q479185700惠导视设计报价
  • 做网站优化最快的方式网站多快能收录seo
  • 建购物网站要多少钱百度浏览器下载
  • 网站建设市场分析2015山西省建设厅投诉网站
  • 企业门户网站开发费用wordpress媒体库外链
  • 青之峰网站建设权威发布封面
  • 云阳如何做网站大数据营销获客
  • windows 2003建设网站海门做网站
  • 洛阳哪里做网站中文无版权图片网站
  • 深圳做网站比较好的公司有哪些做网站如何赚钱
  • 建设外国商城网站黄岩区建设规划局网站
  • 网站运营维护方案建设化工网站的目的
  • 广州牌手表网站资源型网站建设 需要多大硬盘
  • 织梦绑定网站出现错误学程序员大概要多少钱
  • 湖南 网站备案辽宁数据网站建设哪家便宜
  • 网站建设进度及实过程外贸营销渠道
  • 做投票的网站赚钱嘛呼伦贝尔网站建设呼伦贝尔
  • 无锡制作网站公司太原做彩票网站公司
  • 怎么建设外贸网站购物网站开发实例
  • wordpress微信网站模板wordpress4.9.8漏洞
  • 网站开发人员主要干什么的网站关键词搜索排名
  • 中石化石油工程建设公司网站seo学校培训