【Yolov5】保姆级别源码讲解之-推理部分detect.py文件

news2024/10/2 20:25:16

推理部分之detect.py文件讲解

  • 1.下载Yolov5的源码
  • 2. 主函数讲解
  • 3.文件标头的注释
  • 4. main函数的
  • 5. run函数
    • 5.1 第一块参数部分
    • 5.2第二块,传入数据预处理
    • 5.3 第三块创建文件夹
    • 5.4 第四块 加载模型的权重
    • 5.5 第五块 Dataloader 加载模块
    • 5.6 第六块 推理部分 Run inference
    • 5.7 输出结果 Print results

1.下载Yolov5的源码

  • 克隆一下yolov5的代码
git clone https://github.com/huangfengge/yolov5
  • 配置好项目所需的依赖包
    在这里插入图片描述

2. 主函数讲解

opt 为执行可以传递的参数

if __name__ == '__main__':
    opt = parse_opt()
    main(opt)
  • 具体的参数如图所示,比较重要的参数 weights权重文件、–source 数据集合 – data 数据集的配置
    在这里插入图片描述
  • weights 权重文件
    在这里插入图片描述

– source 为需要推理的原图
在这里插入图片描述

  • data参数 数据配置
    在这里插入图片描述

  • imgsz 参数是训练配置图片的大小

  • device 设备信息,使用的Gpu还是cpu

  • 这些参数都可以通过命令进行传递
    在这里插入图片描述

cd /home/hfg/Soft/Idea_Project/deep/yolov5
python detect.py --weights yolov5s.pt --source data/images/bus.jpg 
  • 将推理结果放入runs/detect/exp3进行了保存
    在这里插入图片描述

3.文件标头的注释

  • 明显的示例告诉了我们的使用方法
    在这里插入图片描述

4. main函数的

  • 第一个方法检测了当前的依赖包是否安装
  • 进行了下一步的run函数
def main(opt):
    check_requirements(exclude=('tensorboard', 'thop'))  # 检测是否安装包
    run(**vars(opt))
  • requirements安装
    在这里插入图片描述- 里面定义了各个依赖包使用的版本在这里插入图片描述

5. run函数

  • run 函数一共分为7个部分

5.1 第一块参数部分

  • 如图所示我们可以看到传递的参数部分
    在这里插入图片描述

5.2第二块,传入数据预处理

  • 传入的可以是字符串图片名称,并对图片进行格式校验,可以支持的图片类型(如下图),如果是url地址或者文件地址进行下载操作。
    在这里插入图片描述
  • 可以支持的数据类型
    在这里插入图片描述
  • 下载文件的代码
    在这里插入图片描述

5.3 第三块创建文件夹

  • 是否将推理过程写入一个txt文件
    在这里插入图片描述
  • 因save-txt是默认为false,增加上表示true,这样就生成了一个labels 文件
python detect.py --weights yolov5s.pt --source data/images/bus.jpg --save-txt

在这里插入图片描述

  • 类型和坐标信息
    在这里插入图片描述

5.4 第四块 加载模型的权重

在这里插入图片描述

  • 选择当前训练设备的信息,gpu和cpu信息
    在这里插入图片描述
  • 模型框架 yolov5和pytorch

在这里插入图片描述

5.5 第五块 Dataloader 加载模块

  • 一般加载的都是image
    在这里插入图片描述
  • 可以配置图片的大小,如果是多个图片使用数组
    在这里插入图片描述

5.6 第六块 推理部分 Run inference

  • 热身先给cpu和gpu一张图片进行热身处理
  • 变量每个图片进行推理
  • 确定检测的坐标
    在这里插入图片描述
  • 热身处理在这里插入图片描述
  • 具体的画框在这里插入图片描述
  • 输出预测的结果进行保存
    在这里插入图片描述

5.7 输出结果 Print results

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 魔法方法之 __ slots __

python 魔法方法之 __ slots __ __ slots __ __slots__是python class的一个特殊attribute,能够节省内存空间。正常情况下,一个类的属性是以字典的形式来管理, 每个类都会有__ dict__ 方法。但是我们可以通过 设置 __ slots__ 来将类的属性构造成一个静…

input 子系统

简介 先来了解什么是输入设备? 常见的输入设备有键盘、 鼠标、 遥控杆、 书写板、 触摸屏等等,用户通过这些输入设备与 Linux 系统进行数据交换。 什么是输入系统? 输入设备种类繁多, 能否统一它们的接口? 既在驱动层面统一&…

springboot+vue邯郸地标美食导游平台

设计者应有软件程序开发方面的专业理论基础知识,有一定的分析和解决问题的能力,有一定的收集、整理、信息检索等方面的能力,善于综合、勤于思考,具有一丝不苟,精益求精,刻苦钻研的工作精神,勇于…

基于遗传算法的柔性生产调度研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…

S-Paper电子纸在生产车间中的应用

S-Paper电子纸在生产车间中的应用应用背景在传统的制造企业的生产流程中,生产线上的工件信息,加工信息等等在生产前都需要生产车间打印出来,然后再分发至生产线上对应的工件工位,纸张都是使用完后都是作废销毁,这样下来…

SQL零基础入门学习(九)

SQL零基础入门学习(八) SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序…

Xmake v2.7.7 发布,支持 Haiku 平台,改进 API 检测和 C++ Modules 支持

layout: post.cn title: “Xmake v2.7.7 发布,支持 Haiku 平台,改进 API 检测和 C Modules 支持” tags: xmake lua C/C package modules haiku cmodules categories: xmake Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没…

Android仿京东金融的数值滚动尺功能

自定义数值滚动尺,这个用的还是挺多的,例如京东金融的通过滚动尺选择金额等,而这次就是高仿京东金融的数值滚动尺。首先看看下效果图,如下:首先先给你们各个变量的含义,以免在后面的讲解中不知变量的意思,代码如下://最…

高/低压供配电系统设计——安科瑞变电站电力监控系统的应用

摘 要:在电力系统的运行过程中,变电站作为整个电力系统的核心,在保证电力系统可靠的运行方面起着至关重要的作用,基于此需对变电站监控系统的特点进行分析,结合变电站监控系统的功能需求,对变电站电力监控系…

载誉而归!昂视荣膺CAIMRS 2023「自动化创新奖」

2月24日,由中国工控网举办的第二十一届自动化及数字化年会在苏州希尔顿酒店隆重举行,昂视受邀参加本次活动。会上,中国工控网发布了第二十一届自动化及数字化年度自动化创新奖,昂视凭借LP8000系列超高精度3D激光轮廓仪斩获“自动化…

浅谈`AI`的那些事-环境搭建

人工智能(AI)-环境搭建 目录导航人工智能(AI)-环境搭建1. 为什么人工智能(AI)首选Python?2. python在AI上的优势2.1 python在AI上的优势2.1.1 语法简单,编码少。2.1.2 内置了几乎所有的AI项目库2.1.3 开源和可用于广泛编程2.2 python的特点3. PyTorch环境…

JVM详解——垃圾回收

如果有兴趣了解更多相关内容的话,可以看看我的个人网站:耶瞳空间 GC:垃圾收集(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存。不当的回收可能会导致程序或系统的不稳定甚至崩溃&…

PHP面向对象05:MVC和smarty

PHP面向对象05:MVC 和 smarty一、MVC思想二、MVC代码设计三、项目单一入口四、Smarty模板技术1. 模板技术原理2. Smarty简单使用3. Smarty配置五、Smarty模板变量六、Smarty内置函数七、Smarty外部函数一、MVC思想 MVC思想,是一种基于面向对象思想形成的…

如何将本地文件自动备份到百度网盘?

如何将本地文件自动备份到百度网盘?说到网盘的使用,大家第一个想到的肯定是百度网盘,百度网盘第一个提出网盘这个概念,相信很多小伙伴都是百度网盘的忠实用户,大家也非常喜欢使用百度网盘来存储文件。为什么百度网盘深…

Apache Hadoop生态部署-kafka单机安装

目录 Apache Hadoop生态-目录汇总-持续更新 一:安装包准备 二:安装与常用配置 2.1:下载解压安装包 2.2:配置环境变量 2.3:配置修改server.properties 三:维护kafka 3.1 编写维护脚本 3.2 启动kafk…

el-cascader 级联选择器懒加载的使用及回显 + 点击任意一级都能返回

需要实现的需求 数据渲染使用懒加载点击任意一级都可返回&#xff0c;不需要一直点到最后一级编辑或者查看功能&#xff0c;回显之前选择的数据 实例解析 dom 元素 <el-cascaderv-model"value":options"options":props"props":key"n…

华为服务器驱动下载及安装

1.服务器技术支持网站 https://support.xfusion.com/support/#/zh/home 2.选择软件下载 3.选择服务器型号 4.选择驱动 5.根据需求选择驱动 例如红帽7.4系统 6.安装驱动 自动安装驱动步骤&#xff1a; 1)使用BMC虚拟光驱挂载onboard_driver_xxx.iso: 2)mount /dev/sr0 /mnt …

【vue3】ref , reactive ,toRef ,toRefs 使用和理解

这篇文章是基于理解写的&#xff0c;仅助于理解&#xff0c;如有任何错误之处&#xff0c;感谢指正&#xff01; 文章目录一.ref的使用1. ref的功能主要有两个&#xff1a;2.使用ref注意事项二.reactive的使用三.使用ref 和 reactive 实现双向数据绑定四.toRef 和 toRefs 的使用…

ARM uboot 源码分析7 - uboot的命令体系

一、uboot 命令体系基础 1、使用 uboot 命令 (1) uboot 启动后进入命令行环境下&#xff0c;在此输入命令按回车结束&#xff0c;uboot 会收取这个命令然后解析&#xff0c;然后执行。 2、uboot 命令体系实现代码在哪里 (1) uboot 命令体系的实现代码在 uboot/common/cmd_xx…

PA的包络跟踪电源

对于传统PA&#xff0c;电源一般设计成固定电压供电&#xff0c;电压不可变化。这种设计对于GSM和GPRS等使用恒定包络GMSK调制的系统来说&#xff0c;PA的效率是比较高的。 ​但随着追求更高的数据吞吐量以及更高的频谱效率&#xff0c;在现代的通信系统中使用了更复杂的调制方…