Python —— 解析Yolov5 - detect.py
Yolov5自带detect.py加入cv2简单操作
说明:im0为mat的原图
detect.py参数解析
1、运行detect.py的两种方式:
(1)、使用命令:
python detect.py --source ./testfiles/img1.jpg --weights runs/train/base/weights/best.pt --conf 0.4
(2)、在ide或无参命令运行detect.py文件
该方式将方式一的命令参数直接在detect.py中修改后执行
2、参数解析
parser = argparse.ArgumentParser()# 指定需要推理的.pt模型parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'weights/yolov5s.pt', help='model path or triton URL')# 输入源(文件/目录/url/glob/screen/摄像头(0/webcam)),通常输入mp4或摄像头parser.add_argument('--source', type=str, default=ROOT / '0', help='file/dir/URL/glob/screen/0(webcam)')##举例1 - 本地mp4作为输入视频:parser.add_argument('--source', type=str, default=ROOT / 'test.mp4', help='file/dir/URL/glob/screen/0(webcam)')##举例2 - 将桌面xy从100,100位置起、宽高均为400作为输入视频:parser.add_argument('--source', type=str, default=ROOT / 'screen 100 100 400 400', help='file/dir/URL/glob/screen/0(webcam)')##举例3 - 将usb摄像头作为输入视频:(注:多屏时百度搜索LoadScreenshots查看解决方案)parser.add_argument('--source', type=str, default=ROOT / '0', help='file/dir/URL/glob/screen/0(webcam)')# 配置文件的一个路径,配置文件里面包含了下载路径和一些数据集基本信息。# 训练模型时编写的data/yaml文件;默认也可以parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='(optional) dataset.yaml path')# 模型在推理图片前会把图片resize成640的size,之后再扔进网络里。并非最终得到尺寸结果。parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640], help='inference size h,w')# 置信度阈值(根据数据集情况自行调整)# 网络对检测目标相信的程度,若设置“0”则网络只要认为预测的目标有一点点概率是正确的目标都会给框出来。parser.add_argument('--conf-thres', type=float, default=0.5, help='confidence threshold')# 调节IoU阈值:IoU可以理解预测框和真实框的交并比。parser.add_argument('--iou-thres', type=float, default=0.45, help='NMS IoU threshold')# 最大检测数量。parser.add_argument('--max-det', type=int, default=1000, help='maximum detections per image')# 指定使用cpu或gpu进行推理,并可指定GPU数量。parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')# 推理过程中是否实时显示检测结果。[store_true隐藏、store_false显示]parser.add_argument('--view-img', action='store_false', help='show results')# 推理结果是否保存成一个.txt格式文件。[store_true不保存、store_false保存]parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')# 推理结果是否以.txt格式保存目标置信度。[store_true不保存、store_false保存]parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')# 是否把模型推理到的物体裁剪到crops文件夹。[store_true不裁剪、store_false裁剪]parser.add_argument('--save-crop', action='store_true', help='save cropped prediction boxes')# 是否不保存推理结果文件,输出为图片或视频文件。[store_true保存、store_false不保存]parser.add_argument('--nosave', action='store_true', help='do not save images/videos')# 推理类别,默认为所有类别。该类别为训练模型时设置的data/xx.yaml中的names类别。parser.add_argument('--classes', nargs='+',type=int, help='filter by class: --classes 0, or --classes 0 2 3')# 增强版的nmsparser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')# 也是一种增强方式parser.add_argument('--augment', action='store_true', help='augmented inference')# 是否将特征图可视化,若开启则exp文件夹下又多一些文件parser.add_argument('--visualize', action='store_true', help='visualize features')# 若开启则对所有模型进行strip_optimizer操作,去除pt文件中的优化器等信息。[store_true不开启、store_false开启]parser.add_argument('--update', action='store_true', help='update all models')# 设置推理结果保存的路径parser.add_argument('--project', default=ROOT / 'runs/detect', help='save results to project/name')# 设置推理结果保存的文件夹名称parser.add_argument('--name', default='exp', help='save results to project/name')# 设置每次预测模型的结果是否保存在原来的文件夹。[store_true不指定、store_false指定]# 若指定则本次推理结果还是保存在上一次保存的文件夹中;若不指定就是每次预测结果保存一个新的文件夹下parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')# 调节预测框线条粗细parser.add_argument('--line-thickness', default=3, type=int, help='bounding box thickness (pixels)')# 推理结果是否隐藏标签parser.add_argument('--hide-labels', default=False, action='store_true', help='hide labels')# 推理结果是否隐藏置信度parser.add_argument('--hide-conf', default=False, action='store_true', help='hide confidences')# 否使用FP16半精度推理。[store_true不使用、store_false使用]# 低精度技术 (high speed reduced precision)。在training阶段,梯度的更新往往是很微小的,需要相对较高的精度,一般要用到FP32以上。在inference的时候,精度要求没有那么高,一般F16(半精度)就可以,甚至可以用INT8(8位整型),精度影响不会很大。同时低精度的模型占用空间更小了,有利于部署在嵌入式模型里面。parser.add_argument('--half', action='store_true', help='use FP16 half-precision inference')# 是否使用OpenCV DNN进行ONNX推理。[store_true禁用、store_false开启]parser.add_argument('--dnn', action='store_true', help='use OpenCV DNN for ONNX inference')# 输入视频帧率步长,1为正常速度parser.add_argument('--vid-stride', type=int, default=1, help='video frame-rate stride')
笔者
笔者 - jxd
Python —— 解析Yolov5 - detect.py相关推荐
- yolov5——detect.py代码【注释、详解、使用教程】
yolov5--detect.py代码[注释.详解.使用教程] yolov5--detect.py代码[注释.详解.使用教程] 1. 函数parse_opt() 2. 函数main() 3. 函数ru ...
- 【yolov5检测代码简化】Yolov5 detect.py推理代码简化,输入图片,输出图片和结果
前言 最近的项目里有yolov5的嵌入,需求是只需要推理,模型文件是已有的,输入需要是图片(原yolov5是输入路径),输出结果的图片和标签.这样的话需要对原来的代码进行一些简化和变更. 路径 模型这 ...
- YOLOv5的Tricks | 【Trick13】YOLOv5的detect.py脚本的解析与简化
如有错误,恳请指出. 在之前介绍了一堆yolov5的训练技巧,train.py脚本也介绍得差不多了.之后还有detect和val两个脚本文件,还想把它们总结完. 在之前测试yolov5训练好的模型时, ...
- YOLOV5检测代码detect.py注释与解析
YOLOv5代码注释版更新啦,注释的是最近的2021.07.14的版本,且注释更全 github: https://github.com/Laughing-q/yolov5_annotations Y ...
- YoLoV5学习(4)--detect.py程序(预测图片、视频、网络流)逐段讲解~
本章博客主要分析YoloV5代码中的detect程序代码,按照程序运行步骤顺序主要分为3大部分. 1.包与库的导入 1.1 导入安装好的python库.torch库等等 其中:argparse模块.o ...
- YOLO系列 --- YOLOV7算法(二):YOLO V7算法detect.py代码解析
YOLO系列 - YOLOV7算法(二):YOLO V7算法detect.py代码解析 parser = argparse.ArgumentParser()parser.add_argument('- ...
- 使用YOLOV5-6.2预训练模型(yolov5s)进行detect的详细说明(detect.py)文件解析
目录 准备 源文件和预训练文件下载 python版本以及torch版本说明: 文件目录说明 测试文件 detect.py使用 测试单张图片 测试一个文件夹里的图片 准备 源文件和预训练文件下载 下载链 ...
- yolov5 检测detect.py笔记
参考 https://github.com/ultralytics/yolov5 带你一行行读懂yolov5代码,yolov5源码 试运行 安装环境 (yolo) ┌──(venv)─(***㉿kal ...
- 爆改YOLOV7的detect.py制作成API接口供其他python程序调用(超低延时)
一.前言 YOLO系列框架凭借其超高的运行流畅度和不俗的准确率,一直被广泛地应用到各个领域. 刚刚推出不久的YOLOV7在5 FPS到160 FPS范围内的速度和精度达到了新的高度,并在GPU V10 ...
最新文章
- IOS个人开发者账号注册
- Flash/Flex学习笔记(2):捕获摄像头
- python中取整数的几种方法
- java finalize逃脱_finalize(),析构函数(finalization)
- svn 版本控制操作命令
- linux内核源码分析--内核启动之,Linux内核源码分析之setup_arch (二)
- Python小练习——电影数据集TMDB预处理
- 验证性因子分析(一)
- 解决jy61陀螺仪传感器读数跳动的问题
- 文本数据挖掘一般步骤
- Linux运维高级工程师要掌握的技能
- vue中文本超出省略号
- 随机变量与随机过程详解
- Oracle的学习详解
- android判断app前后台状态
- PHP学习案例二 商品价格计算
- 被爬虫盯上的50家网站
- Mysql全套看这一篇就够了特别详细
- Layui弹出层的三项选择
- 【pen200-lab】10.11.1.120