From b2195bcdfbb2d226590cc225dd753144f77fe837 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Mon, 19 Sep 2022 12:48:30 +0200 Subject: [PATCH 1/3] Segmentation `polygons2masks_overlap()` in `np.int32` May resolve https://github.com/ultralytics/yolov5/issues/9461 WARNING: Masks should be uint8 for fastest speed, change needs profiling results to determine impact. @AyushExel @Laughing-q Signed-off-by: Glenn Jocher --- utils/segment/dataloaders.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/segment/dataloaders.py b/utils/segment/dataloaders.py index d137caa5ab27..67cbf247923e 100644 --- a/utils/segment/dataloaders.py +++ b/utils/segment/dataloaders.py @@ -308,7 +308,7 @@ def polygons2masks(img_size, polygons, color, downsample_ratio=1): def polygons2masks_overlap(img_size, segments, downsample_ratio=1): """Return a (640, 640) overlap mask.""" - masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), dtype=np.uint8) + masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), dtype=np.int32) areas = [] ms = [] for si in range(len(segments)): From c9d12aecc2cc760f744337faf0fd6a66306769b8 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Tue, 20 Sep 2022 12:10:18 +0200 Subject: [PATCH 2/3] Update dataloaders.py Signed-off-by: Glenn Jocher --- utils/segment/dataloaders.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/segment/dataloaders.py b/utils/segment/dataloaders.py index 67cbf247923e..d91623387493 100644 --- a/utils/segment/dataloaders.py +++ b/utils/segment/dataloaders.py @@ -308,7 +308,8 @@ def polygons2masks(img_size, polygons, color, downsample_ratio=1): def polygons2masks_overlap(img_size, segments, downsample_ratio=1): """Return a (640, 640) overlap mask.""" - masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), dtype=np.int32) + masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), + dtype=np.int32 if len(segments) > 255 else np.uint8) areas = [] ms = [] for si in range(len(segments)): From 5d85094c4269e814d80534d4374dcf397f383b7b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 20 Sep 2022 10:11:20 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- utils/segment/dataloaders.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/segment/dataloaders.py b/utils/segment/dataloaders.py index d91623387493..49575f065752 100644 --- a/utils/segment/dataloaders.py +++ b/utils/segment/dataloaders.py @@ -308,8 +308,8 @@ def polygons2masks(img_size, polygons, color, downsample_ratio=1): def polygons2masks_overlap(img_size, segments, downsample_ratio=1): """Return a (640, 640) overlap mask.""" - masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), - dtype=np.int32 if len(segments) > 255 else np.uint8) + masks = np.zeros((img_size[0] // downsample_ratio, img_size[1] // downsample_ratio), + dtype=np.int32 if len(segments) > 255 else np.uint8) areas = [] ms = [] for si in range(len(segments)):