本专栏将从安装到实例运用全方位系列讲解 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 文件夹下
以上就是预测相关参数解释的全部内容啦,感谢阅读!