Python —— 解析Yolov5 - detect.py

这篇具有很好参考价值的文章主要介绍了Python —— 解析Yolov5 - detect.py。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Yolov5自带detect.py加入cv2简单操作

     说明:im0为mat的原图

python调用yolov5的detect,Python,python,YOLO,人工智能


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中修改后执行

文章来源地址https://www.toymoban.com/news/detail-523807.html

     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')
	
	# 增强版的nms
	parser.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的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yolov5的推理输出detect.py部分

        推理阶段是整个检测模型完成后,要对模型进行测试的部分。很重要的一部分,只有了解了这个部分,才能在比赛或者项目提交中很好的输出自己模型的检测结果。同时,推理输出对模型部署在不同的环境下也是十分重要的。 源码:https://github.com/ultralytics/yolov5 版本

    2024年02月04日
    浏览(41)
  • 魔改并封装 YoloV5 Version7 的 detect.py 成 API接口以供 python 程序使用

    YoloV5 作为 YoloV4 之后的改进型,在算法上做出了优化,检测的性能得到了一定的提升。其特点之一就是权重文件非常的小,可以在一些配置更低的移动设备上运行,且提高速度的同时准确度更高。具体的性能见下图[^1]。本次使用的是最新推出的 YoloV5 Version7 版本。 GitHub 地址

    2024年01月17日
    浏览(45)
  • yolov5——detect.py代码【注释、详解、使用教程】

    根据目前的最新版本的yolov5代码做出注释和详解以及使用教程,对了目前已经是v6,不知道你看博客的时候是什么版本呢,总的来说越来越先进越来越完善,越来越适合无脑啊哈哈哈,没你说哈IIII crop文件夹下的文件 labels下面的文件

    2024年02月02日
    浏览(53)
  • YOLOv5-6.x源码分析(一)---- detect.py

    这算是我的第一个正式博客文章吧,在准备动手写内容的时候,都有点无从下手的感觉。anyway,以后应该会写的越来越娴熟的。 YOLO系列我已经用了接近一年了吧,从去年暑假开始学习,打算入坑深度学习,其中跑过demo,自己用Flask搭配YOLOv5写过网页端实时检测,还看过源码

    2024年02月16日
    浏览(37)
  • Yolov5-detect.py代码简化(便于移植)

    2024年02月06日
    浏览(46)
  • 【Yolov5】保姆级别源码讲解之-推理部分detect.py文件

    克隆一下yolov5的代码 配置好项目所需的依赖包 opt 为执行可以传递的参数 具体的参数如图所示,比较重要的参数 weights权重文件、–source 数据集合 – data 数据集的配置 weights 权重文件 – source 为需要推理的原图 data参数 数据配置 imgsz 参数是训练配置图片的大小 device 设备信

    2024年02月08日
    浏览(40)
  • yolov5画框重复、大框包小框问题解决,c++、python代码调用onnx

    yolov5在训练完成后,获取模型(pt)文件,或者转为onnx文件,对图片进行推理时,会出现以下情况,大框包小框,会导致,明明场景中只有一个目标物而识别出两个或者更多目标物,且画出的框均标记在目标物上,在单张图目标物较多的场景该现象更为严重,具体情况如下图

    2024年02月03日
    浏览(44)
  • 涨点技巧:Detect系列---Yolov5/Yolov7加入ASFF特征金字塔融合方法,涨点明显

    目录   1.ASFF介绍  2.ASFF加入Yolov5提升检测精度 2.1 ASFF加入common.py中: 2.2 ASFF加入yolo.py中:  2.3 修改yolov5s_asff.yaml 2.4 与cbam结合 进一步提升检测精度 🏆 🏆🏆🏆🏆🏆🏆Yolov5/Yolov7成长师🏆🏆🏆🏆🏆🏆🏆 🍉🍉进阶专栏Yolov5/Yolov7魔术师:http://t.csdn.cn/D4NqB 🍉🍉 ✨✨✨

    2023年04月08日
    浏览(46)
  • 树莓派yolov5简单调用

    yolov5下载并部署 参考博客 labelme注意事项 labelme包下载 labelme-master https://www.aliyundrive.com/s/bMeCNrwHuva 提取码: a43f 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 里面的train_txt.py是把json转txt的脚本,注意模型参数的yaml文

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包