Yolov5保姆级别源码讲解之-推理部分detect.py文件
Posted Crypto Ascetic
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yolov5保姆级别源码讲解之-推理部分detect.py文件相关的知识,希望对你有一定的参考价值。
推理部分之detect.py文件讲解
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
以上是关于Yolov5保姆级别源码讲解之-推理部分detect.py文件的主要内容,如果未能解决你的问题,请参考以下文章
YOLOv5源码逐行超详细注释与解读——验证部分val(test).py
YOLOv5源码逐行超详细注释与解读——训练部分train.py
GitHub YOLOv5 开源代码项目系列讲解------源码下载环境配置及运行