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

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

推理部分之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.lryc.cn/news/19431.html

相关文章:

  • 无重叠区间-力扣435-java贪心策略
  • Python使用VTK对容积超声图像进行体绘制(三维重建)
  • JAVA设计模式之工厂模式讲解
  • 近万字概述L3及以上自动驾驶故障运行和故障安全机制
  • kafka入门到精通
  • es-09模糊查询
  • 57 - 深入解析任务调度
  • CAN总线开发一本全(3) - 微控制器集成的FlexCAN外设
  • Elasticsearch7.8.0版本进阶——段合并
  • Java版贪食蛇游戏
  • 2023年度数学建模竞赛汇总
  • 了解Python语言和版本
  • nvm (node版本管理工具)安装的详细步骤,并解决安装过程中遇到的问题
  • 朴素贝叶斯笔记
  • 【GUI】用于电动助力车性能分析的GUI(Matlab代码实现)
  • Android:反编译apk踩坑/apktool/dex2jar/JDGUI
  • React 跨域的配置
  • Elasticsearch7.8.0版本进阶——持久化变更
  • CF Edu 127 A-E vp补题
  • 剑指 Offer 05. 替换空格
  • 通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作
  • Python实现某du文库vip内容下载,保存成PDF
  • vue3.0 模板语法
  • 【GlobalMapper精品教程】054:标签(标注)功能案例详解
  • 超详细树状数组讲解(+例题:动态求连续区间和)
  • 【学习笔记】AGC055
  • 墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源
  • 5.2 Python if语句
  • ubuntu gerrit 配置
  • 运动蓝牙耳机什么牌子好,运动蓝牙耳机品牌推荐