From d96d9a3e2b46651d5c645751b11bcece506991a1 Mon Sep 17 00:00:00 2001 From: jcmayoral Date: Thu, 30 Sep 2021 17:46:27 +0200 Subject: [PATCH 1/3] typo --- models/__pycache__/models.cpython-39.pyc | Bin 0 -> 18036 bytes models/models.py | 10 +++------- 2 files changed, 3 insertions(+), 7 deletions(-) create mode 100644 models/__pycache__/models.cpython-39.pyc diff --git a/models/__pycache__/models.cpython-39.pyc b/models/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..061ac1472ed5cacb01963df587b727d62029bec7 GIT binary patch literal 18036 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 V Date: Thu, 30 Sep 2021 17:59:02 +0200 Subject: [PATCH 2/3] fix plot for 4 channel images --- utils/plots.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/plots.py b/utils/plots.py index c90a96b8..6312b8e2 100644 --- a/utils/plots.py +++ b/utils/plots.py @@ -137,11 +137,14 @@ def plot_images(images, targets, paths=None, fname='images.jpg', names=None, max for i, img in enumerate(images): if i == max_subplots: # if last batch has fewer images than we expect break - block_x = int(w * (i // ns)) block_y = int(h * (i % ns)) img = img.transpose(1, 2, 0) + #IF Image has 4 channels convert to plot + if img.shape[2] == 4: + img = cv2.cvtColor(img, cv2.COLOR_BGRA2RGB) + if scale_factor < 1: img = cv2.resize(img, (w, h)) From dfefb6076d743d246d56f0df5dad7f6782f2590a Mon Sep 17 00:00:00 2001 From: jcmayoral Date: Mon, 11 Oct 2021 14:38:10 +0200 Subject: [PATCH 3/3] some fixes --- data/hyp.scratch.s.yaml | 2 +- data/hyp.scratch.yaml | 20 ++++++++++---------- utils/datasets.py | 2 +- utils/parse_config.py | 2 +- utils/plots.py | 1 + 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/data/hyp.scratch.s.yaml b/data/hyp.scratch.s.yaml index 04b17a12..dfdc9bee 100644 --- a/data/hyp.scratch.s.yaml +++ b/data/hyp.scratch.s.yaml @@ -2,7 +2,7 @@ lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3) lrf: 0.1 # final OneCycleLR learning rate (lr0 * lrf) momentum: 0.937 # SGD momentum/Adam beta1 weight_decay: 0.0005 # optimizer weight decay 5e-4 -warmup_epochs: 3.0 # warmup epochs (fractions ok) +warmup_epochs: 0.0 # warmup epochs (fractions ok) warmup_momentum: 0.8 # warmup initial momentum warmup_bias_lr: 0.1 # warmup initial bias lr box: 0.05 # box loss gain diff --git a/data/hyp.scratch.yaml b/data/hyp.scratch.yaml index 13dcc961..1a5bacc2 100644 --- a/data/hyp.scratch.yaml +++ b/data/hyp.scratch.yaml @@ -1,16 +1,16 @@ -lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3) -lrf: 0.1 # final OneCycleLR learning rate (lr0 * lrf) -momentum: 0.937 # SGD momentum/Adam beta1 +lr0: 0.001 # initial learning rate (SGD=1E-2, Adam=1E-3) +lrf: 0.01 # final OneCycleLR learning rate (lr0 * lrf) +momentum: 0.80 # SGD momentum/Adam beta1 weight_decay: 0.0005 # optimizer weight decay 5e-4 -warmup_epochs: 3.0 # warmup epochs (fractions ok) +warmup_epochs: 4.0 # warmup epochs (fractions ok) warmup_momentum: 0.8 # warmup initial momentum warmup_bias_lr: 0.1 # warmup initial bias lr -box: 0.05 # box loss gain -cls: 0.3 # cls loss gain +box: 0.006 # box loss gain +cls: 0.006 # cls loss gain cls_pw: 1.0 # cls BCELoss positive_weight -obj: 0.7 # obj loss gain (scale with pixels) +obj: 0.07 # obj loss gain (scale with pixels) obj_pw: 1.0 # obj BCELoss positive_weight -iou_t: 0.20 # IoU training threshold +iou_t: 0.10 # IoU training threshold anchor_t: 4.0 # anchor-multiple threshold # anchors: 3 # anchors per output layer (0 to ignore) fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5) @@ -22,7 +22,7 @@ translate: 0.1 # image translation (+/- fraction) scale: 0.9 # image scale (+/- gain) shear: 0.0 # image shear (+/- deg) perspective: 0.0 # image perspective (+/- fraction), range 0-0.001 -flipud: 0.0 # image flip up-down (probability) +flipud: 0.50 # image flip up-down (probability) fliplr: 0.5 # image flip left-right (probability) mosaic: 1.0 # image mosaic (probability) -mixup: 0.0 # image mixup (probability) +mixup: 0.5 # image mixup (probability) diff --git a/utils/datasets.py b/utils/datasets.py index d104af11..6e20e14b 100644 --- a/utils/datasets.py +++ b/utils/datasets.py @@ -924,7 +924,7 @@ def load_image(self, index): img = self.imgs[index] if img is None: # not cached path = self.img_files[index] - img = cv2.imread(path) # BGR + img = cv2.imread(path, cv2.IMREAD_UNCHANGED) # BGR assert img is not None, 'Image Not Found ' + path h0, w0 = img.shape[:2] # orig hw r = self.img_size / max(h0, w0) # resize image to img_size diff --git a/utils/parse_config.py b/utils/parse_config.py index d6cbfdd8..f9dc32de 100644 --- a/utils/parse_config.py +++ b/utils/parse_config.py @@ -21,7 +21,7 @@ def parse_model_cfg(path): mdefs[-1]['type'] = line[1:-1].rstrip() if mdefs[-1]['type'] == 'convolutional': mdefs[-1]['batch_normalize'] = 0 # pre-populate with zeros (may be overwritten later) - + else: key, val = line.split("=") key = key.rstrip() diff --git a/utils/plots.py b/utils/plots.py index 6312b8e2..d63ca645 100644 --- a/utils/plots.py +++ b/utils/plots.py @@ -90,6 +90,7 @@ def output_to_target(output, width, height): # Convert model output to target format [batch_id, class_id, x, y, w, h, conf] if isinstance(output, torch.Tensor): output = output.cpu().numpy() + output = output.cpu().numpy() targets = [] for i, o in enumerate(output):