GitHub YOLOv5 开源代码项目系列讲解(三)------预测相关参数解释

2021-09-07 17:15:00 浏览数 (1)

本专栏将从安装到实例运用全方位系列讲解 GitHub YOLOv5 开源代码。 专栏地址:GitHub YOLOv5 开源代码项目系列讲解

目 录

1 总述

2 参数详解

2.1 --weights

2.2 --source

2.3 --img-size

2.4 --conf-thres

2.5 --iou-thres

2.6 --device

2.7 --view-img

2.8 --save-txt

2.9 --save-conf

2.10 --nosave

2.11 --classes

2.12 --agnostic-nms

2.13 --augment

2.14 --update

2.15 --project

2.16 --name

2.17 --exist-ok


1 总述

利用 yolov5 进行预测用到的是开源项目源码中的 detect.py

我们可对其 main 函数的红框部分进行调整参数。

2 参数详解

2.1 --weights

代码语言:javascript复制
parser.add_argument('--weights', nargs=' ', type=str, default='yolov5s.pt', help='model.pt path(s)')

用于设置权重,默认字符串型,default 用于指定网络模型,若没有即刻下载。

当然,避免超时报错,亦可提前下载:https://github.com/ultralytics/yolov5/releases/tag/v5.0,之后将模型文件放置到最外层文件夹即可。

2.2 --source

代码语言:javascript复制
parser.add_argument('--source', type=str, default='data/images', help='source')  # file/folder, 0 for webcam

用于直接给网络一个输入

具体而言,指定一个文件夹路径,会对文件夹下的图片、视频等进行检测,然后将检测结果保存;当然,也可仅指定一张图片或视频进行目标检测任务。

2.3 --img-size

代码语言:javascript复制
parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')

用于将 image resize 之后送到网络模型中。

值得注意的是,不会改变输入输出图片的像素大小。

2.4 --conf-thres

代码语言:javascript复制
parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')

用于对置信度阈值进行设置。

当大于 default 设定值时,才显示目标检测结果。

原图

default = 0:只要有一丁点概率就进行显示

default = 0.25:

default = 0.8:

2.5 --iou-thres

代码语言:javascript复制
parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')

用于对非极大值抑制值进行设置。

非极大值抑制(NMS,non maximum suppression )

交并化(IOU,Intersection over union)

计算公式及 IOU 等于不同值时的交并情况。

default 值用于设定框之间用过 IOU 值判断是否有交集产生。

default = 0:

default = 0.45:

default = 1:

2.6 --device

代码语言:javascript复制
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

用于设置运行 pytorch 框架的使用设备,是用 GPU cuda,还是 cpu,适用于设置这些内容的。

2.7 --view-img

代码语言:javascript复制
parser.add_argument('--view-img', action='store_true', help='display results')

用于设置实时显示结果。

此类参数被激活的条件是填入到 Edit Configuration --> Parameters 中,若有多个被激活参数,中间用空格隔开即可。

常用于实时显示视频中的目标检测效果

2.8 --save-txt

代码语言:javascript复制
parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')

用于设置是否保存结果的 txt 文件。

激活方法是将 "--save-txt" 填入到 Edit Configuration --> Parameters 中。

2.9 --save-conf

代码语言:javascript复制
parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')

用于设置是否保存置信度 。

激活后即可保存,激活方法同上。

2.10 --nosave

代码语言:javascript复制
parser.add_argument('--nosave', action='store_true', help='do not save images/videos')

激活后不保存检测结果到文件夹。

2.11 --classes

代码语言:javascript复制
parser.add_argument('--classes', nargs=' ', type=int, help='filter by class: --class 0, or --class 0 2 3')

用于指定多个赋值,可设定只检测标签数据集中的一种或几种标签。

eg. 当只检测 “person” 时,已知 “person” 在标签类别中属于第 “0” 类,故在 Edit Configuration --> Parameters 中填入 --classes 0。

2.12 --agnostic-nms

代码语言:javascript复制
parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')

用于设定是否激活非极大值抑制。

设定前

设定后

2.13 --augment

代码语言:javascript复制
parser.add_argument('--augment', action='store_true', help='augmented inference')

用于设定是否进行数据增强

激活增强前

激活增强后

2.14 --update

代码语言:javascript复制
parser.add_argument('--update', action='store_true', help='update all models')

用于把网络中一些不必要的部分去掉,只保留预测需要的东西。个人感觉一般不必考虑,意义不大。

2.15 --project

代码语言:javascript复制
parser.add_argument('--project', default='runs/detect', help='save results to project/name')

用于设定保存目标检测结果文件位置。

2.16 --name

代码语言:javascript复制
parser.add_argument('--name', default='exp', help='save results to project/name')

用于设置保存结果的名字。

2.17 --exist-ok

代码语言:javascript复制
parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')

用于设定预测结果的保存存在位置情况。

当不激活时为 false,在新命名的文件夹下保存。

当激活时为 true,在 name 指定文件夹下保存,源码中保存在 exp 文件夹下

以上就是预测相关参数解释的全部内容啦,感谢阅读

技术之路,共同进步!

0 人点赞