跟土堆学yolov5目标检测p3如何利用yolov5进行预测(二)detect.py参数解释

detect.py参数解释

def parse_opt():
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'yolov5s.pt', help='model path or triton URL')
    parser.add_argument('--source', type=str, default=ROOT / 'data/images', help='file/dir/URL/glob/screen/0(webcam)')
    parser.add_argument('--data', type=str, default=ROOT / 'data/coco128.yaml', help='(optional) dataset.yaml path')
    parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640], help='inference size h,w')
    parser.add_argument('--conf-thres', type=float, default=0.25, help='confidence threshold')
    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')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--view-img', action='store_true', help='show results')
    parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
    parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
    parser.add_argument('--save-crop', action='store_true', help='save cropped prediction boxes')
    parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
    parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --classes 0, or --classes 0 2 3')
    parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    parser.add_argument('--augment', action='store_true', help='augmented inference')
    parser.add_argument('--visualize', action='store_true', help='visualize features')
    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')
    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')
    parser.add_argument('--half', action='store_true', help='use FP16 half-precision inference')
    parser.add_argument('--dnn', action='store_true', help='use OpenCV DNN for ONNX inference')
    parser.add_argument('--vid-stride', type=int, default=1, help='video frame-rate stride')
    opt = parser.parse_args()
    opt.imgsz *= 2 if len(opt.imgsz) == 1 else 1  # expand
    print_args(vars(opt))
    return opt

parser.add_argument('--imgsz', '--img', '--img-size', nargs='+', type=int, default=[640], help='inference size h,w') 

--imgsz 因为yolov5s.pt是在640分辨率下训练的故设为640,如果使用yolov5s6.pt则需要修改为1280分辨率

 经过训练前后的图片大小不会改变,只是同等映射为640下训练

parser.add_argument('--conf-thres', type=float, default=0.25, help='confidence threshold')

--conf-thres 置信度设置,只有大于阈值的目标才会被显示

设置为0,所有框选都会被显示;(原图--置信度0--置信度0.25)

合适的数值作者认为是0.25,调参大师

parser.add_argument('--iou-thres', type=float, default=0.45, help='NMS IoU threshold')

 --iou-thres 交并比  non maximum suppression 非极大值抑制:避免重复判断

交并比大于阈值的被认为是同一个物体

 同一个人有三个框,选择最佳的框,采用iou的方法选取与真实标注框交并比最大的那个框

 

 大于iou的认为是同一个物体,就要nms取一个框,小于iou的认为是两个物体,不做处理。

两部分功能:1是过滤掉小于阈值的框

                      2是过滤掉重叠在一起检测一个目标的框

iou=0,0.45,1,值越大,重复的框越多,默认0.45

 

parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

 默认设置就好

parser.add_argument('--view-img', action='store_true', help='show results')

--view-img 直接显示结果

控制台运行

 显示结果  --view-img 会设置为true

 设置参数

 然后右击运行即可

parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')

--save-txt

 

0是人,5是bus 

parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --classes 0, or --classes 0 2 3')

--classes 过滤种类,比如只找人  --classes 0 

parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
parser.add_argument('--augment', action='store_true', help='augmented inference')

增强检测NMS,使得框右上角的置信度提高

parser.add_argument('--update', action='store_true', help='update all models')

--update 将不必要的模块关闭,节省内存消耗。比如检测图片时,不需要用到训练部分参数。

一般别动。

parser.add_argument('--project', default=ROOT / 'runs/detect', help='save results to project/name')

--project 结果保存位置,一般默认就好

parser.add_argument('--name', default='exp', help='save results to project/name')

--name  保存名字,位于--project下面,也是默认

parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')

--exis-ok 将文件始终保存在上面两个参数定义的文件夹下,即exp中,默认是按exp,exp2,exp3增加。

打个断点

debug看看各个参数赋值

对于一些配置文件中  required= true ,需要删除修改 为default = yolov5s.pt

参数最后都会放到 opt这个变量中

opt = parser.parse_args()

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值