From 1407bc38061566ffe8d5cab0645540bfa7f19972 Mon Sep 17 00:00:00 2001 From: rglkt <835993649@qq.com> Date: Fri, 8 Apr 2022 09:28:35 +0800 Subject: [PATCH 1/8] set common default stride as 32 --- models/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/common.py b/models/common.py index 5a83bce33fc8..63f5c5559a15 100644 --- a/models/common.py +++ b/models/common.py @@ -296,7 +296,7 @@ def __init__(self, weights='yolov5s.pt', device=torch.device('cpu'), dnn=False, super().__init__() w = str(weights[0] if isinstance(weights, list) else weights) pt, jit, onnx, xml, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs = self.model_type(w) # get backend - stride, names = 64, [f'class{i}' for i in range(1000)] # assign defaults + stride, names = 32, [f'class{i}' for i in range(1000)] # assign defaults w = attempt_download(w) # download if not local fp16 &= (pt or jit or onnx or engine) and device.type != 'cpu' # FP16 if data: # data.yaml path (optional) From 0b5f24931c93a96c30aed511a97cdb14174f8279 Mon Sep 17 00:00:00 2001 From: rglkt <835993649@qq.com> Date: Fri, 8 Apr 2022 11:38:49 +0800 Subject: [PATCH 2/8] restore default stride, and set it on argument optional --- models/common.py | 2 +- val.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/models/common.py b/models/common.py index 63f5c5559a15..5a83bce33fc8 100644 --- a/models/common.py +++ b/models/common.py @@ -296,7 +296,7 @@ def __init__(self, weights='yolov5s.pt', device=torch.device('cpu'), dnn=False, super().__init__() w = str(weights[0] if isinstance(weights, list) else weights) pt, jit, onnx, xml, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs = self.model_type(w) # get backend - stride, names = 32, [f'class{i}' for i in range(1000)] # assign defaults + stride, names = 64, [f'class{i}' for i in range(1000)] # assign defaults w = attempt_download(w) # download if not local fp16 &= (pt or jit or onnx or engine) and device.type != 'cpu' # FP16 if data: # data.yaml path (optional) diff --git a/val.py b/val.py index 48f396626b54..9e6e63b2097f 100644 --- a/val.py +++ b/val.py @@ -139,6 +139,8 @@ def run( # Load model model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half) stride, pt, jit, engine = model.stride, model.pt, model.jit, model.engine + if opt.stride > 0: + stride = opt.stride imgsz = check_img_size(imgsz, s=stride) # check image size half = model.fp16 # FP16 supported on limited backends with CUDA if engine: @@ -354,6 +356,7 @@ def parse_opt(): parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment') 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('--stride', type=int, default=-1, help='set stride for the model,-1 for auto caculate') opt = parser.parse_args() opt.data = check_yaml(opt.data) # check YAML opt.save_json |= opt.data.endswith('coco.yaml') From 811fabda49300f85c1491c1978a1b2e35aa8f0f6 Mon Sep 17 00:00:00 2001 From: rglkt <835993649@qq.com> Date: Fri, 8 Apr 2022 12:00:11 +0800 Subject: [PATCH 3/8] fix wrong use of opt --- val.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/val.py b/val.py index 9e6e63b2097f..ec7aaf397413 100644 --- a/val.py +++ b/val.py @@ -138,9 +138,8 @@ def run( # Load model model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half) + model.stride = stride if stride > 0 else model.stride stride, pt, jit, engine = model.stride, model.pt, model.jit, model.engine - if opt.stride > 0: - stride = opt.stride imgsz = check_img_size(imgsz, s=stride) # check image size half = model.fp16 # FP16 supported on limited backends with CUDA if engine: From c56957fa262bb8a655efcebea7b6d4316613b28a Mon Sep 17 00:00:00 2001 From: rglkt <835993649@qq.com> Date: Fri, 8 Apr 2022 12:06:28 +0800 Subject: [PATCH 4/8] fix missing parameter of stride --- val.py | 1 + 1 file changed, 1 insertion(+) diff --git a/val.py b/val.py index ec7aaf397413..3e05933be7f3 100644 --- a/val.py +++ b/val.py @@ -122,6 +122,7 @@ def run( plots=True, callbacks=Callbacks(), compute_loss=None, + stride = -1, ): # Initialize/load model and set device training = model is not None From 99a647325a64d3ace38aa6837347597fa0d260ad Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 04:06:54 +0000 Subject: [PATCH 5/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- val.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/val.py b/val.py index 3e05933be7f3..769b89d0ad24 100644 --- a/val.py +++ b/val.py @@ -122,7 +122,7 @@ def run( plots=True, callbacks=Callbacks(), compute_loss=None, - stride = -1, + stride=-1, ): # Initialize/load model and set device training = model is not None From af0e3663302f6482d54863ed80dc25b521ed2290 Mon Sep 17 00:00:00 2001 From: rglkt <835993649@qq.com> Date: Fri, 8 Apr 2022 12:07:26 +0800 Subject: [PATCH 6/8] fix format of parameters --- val.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/val.py b/val.py index 3e05933be7f3..769b89d0ad24 100644 --- a/val.py +++ b/val.py @@ -122,7 +122,7 @@ def run( plots=True, callbacks=Callbacks(), compute_loss=None, - stride = -1, + stride=-1, ): # Initialize/load model and set device training = model is not None From 7d50c7bd6bbc1ce7076a91c08ea9c7f7a0f3ef32 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sat, 9 Apr 2022 19:01:15 +0200 Subject: [PATCH 7/8] Update val.py --- val.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/val.py b/val.py index 769b89d0ad24..5841437051c2 100644 --- a/val.py +++ b/val.py @@ -11,7 +11,7 @@ yolov5s.onnx # ONNX Runtime or OpenCV DNN with --dnn yolov5s.xml # OpenVINO yolov5s.engine # TensorRT - yolov5s.mlmodel # CoreML (MacOS-only) + yolov5s.mlmodel # CoreML (macOS-only) yolov5s_saved_model # TensorFlow SavedModel yolov5s.pb # TensorFlow GraphDef yolov5s.tflite # TensorFlow Lite @@ -122,7 +122,6 @@ def run( plots=True, callbacks=Callbacks(), compute_loss=None, - stride=-1, ): # Initialize/load model and set device training = model is not None @@ -139,7 +138,6 @@ def run( # Load model model = DetectMultiBackend(weights, device=device, dnn=dnn, data=data, fp16=half) - model.stride = stride if stride > 0 else model.stride stride, pt, jit, engine = model.stride, model.pt, model.jit, model.engine imgsz = check_img_size(imgsz, s=stride) # check image size half = model.fp16 # FP16 supported on limited backends with CUDA @@ -356,7 +354,6 @@ def parse_opt(): parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment') 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('--stride', type=int, default=-1, help='set stride for the model,-1 for auto caculate') opt = parser.parse_args() opt.data = check_yaml(opt.data) # check YAML opt.save_json |= opt.data.endswith('coco.yaml') From 5bc7188923e8c6290d8fa4eb97c38f57e85f1e2e Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sat, 9 Apr 2022 19:02:07 +0200 Subject: [PATCH 8/8] Update common.py --- models/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/common.py b/models/common.py index 49175f76a53a..6ab82ab51ff4 100644 --- a/models/common.py +++ b/models/common.py @@ -296,7 +296,7 @@ def __init__(self, weights='yolov5s.pt', device=torch.device('cpu'), dnn=False, super().__init__() w = str(weights[0] if isinstance(weights, list) else weights) pt, jit, onnx, xml, engine, coreml, saved_model, pb, tflite, edgetpu, tfjs = self.model_type(w) # get backend - stride, names = 64, [f'class{i}' for i in range(1000)] # assign defaults + stride, names = 32, [f'class{i}' for i in range(1000)] # assign defaults w = attempt_download(w) # download if not local fp16 &= (pt or jit or onnx or engine) and device.type != 'cpu' # FP16 if data: # data.yaml path (optional)