1.如何运行detect.py文件
模型的测试运行detect.py文件即可,会把data/image里面的图片和视频跑一遍,把跑的结果放到runs/detect/exp里面。当然这些路径都是可以改的,这些都会在修改全职的部分细说。
如果想调用本地的摄像头进行实时运行,需要先找到utils文件夹下的datasets.py文件,在279行把这两处改成str类型
2.对所有参数的解释
所有参数的作用都写在了如下代码的上方注释中了:
#导入模型权值,有yolov5(s/m/l/x).pt 与yolov5(s/m/l/x)6.pt八种,从s到x模型大小递增,模型效果递增,需要把.pt文件下载到根目录下
parser.add_argument('--weights', nargs='+', type=str, default='yolov5m.pt', help='model.pt path(s)')
#导入数据,可以是图片也可以是视频的地址,改为‘0’并且修改dataset.py里面的一行信息可以调用本地摄像头
parser.add_argument('--source', type=str, default='data/images', help='source') # file/folder, 0 for webcam
#图片的大小,官方建议yolov5().pt的四个模型的图片大小设置为640,yolov5()6.pt的四个模型的图片大小设置为1280
parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
#设置置信度的最低标准,这里为0.25也就是说只要这个物体的置信度大于0.25就把它再图片上框出来
parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')
#当两个框的IOU大于这个数值的时候,把这两个框看成同一个框来处理
parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
#设置跑的设备,默认为空,会自己找到合适的
parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
#下面都是没有default缺省值的了,都得传一个参数,传进去之后才能执行某些功能
#只要传入--view-img这个参数,就会设置为true,在屏幕上实时显示运行到的那一帧,参数写入方法见文档
parser.add_argument('--view-img', action='store_true', help='display results')
#保存运行的结果到一个txt文件里面
parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
#保存置信度到一个txt文件里面
parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
#不要保存图片和视频
parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
#只保留某些类的框,可以在后面加上一个或者多个标签,假如0是汽车,传入参数classes 0就是只保留检测结果为汽车的部分
parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 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('--update', action='store_true', help='update all models')
#把结果保存的地址
parser.add_argument('--project', default='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')