From 77d6fea30f59ca75f3d5293cf2ca9c93ec7bf417 Mon Sep 17 00:00:00 2001 From: ktro2828 Date: Thu, 30 Jan 2025 22:20:34 +0900 Subject: [PATCH 1/2] fix: update to expect the RLE mask shape with (width, height) order Signed-off-by: ktro2828 --- t4_devkit/schema/tables/object_ann.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t4_devkit/schema/tables/object_ann.py b/t4_devkit/schema/tables/object_ann.py index 37b6c07..4a49889 100644 --- a/t4_devkit/schema/tables/object_ann.py +++ b/t4_devkit/schema/tables/object_ann.py @@ -44,7 +44,7 @@ def decode(self) -> NDArrayU8: """ counts = base64.b64decode(self.counts) data = {"counts": counts, "size": self.size} - return cocomask.decode(data) + return cocomask.decode(data).T @define(slots=False) From 780b812be4452359cee9c0cb619e1bb887077185 Mon Sep 17 00:00:00 2001 From: ktro2828 Date: Thu, 30 Jan 2025 22:21:20 +0900 Subject: [PATCH 2/2] fix: avoid rendering error for segmentation mask Signed-off-by: ktro2828 --- t4_devkit/viewer/rendering_data/segmentation.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/t4_devkit/viewer/rendering_data/segmentation.py b/t4_devkit/viewer/rendering_data/segmentation.py index 4b74ff8..3f717f8 100644 --- a/t4_devkit/viewer/rendering_data/segmentation.py +++ b/t4_devkit/viewer/rendering_data/segmentation.py @@ -48,8 +48,7 @@ def append(self, mask: NDArrayU8, class_id: int, uuid: str | None = None) -> Non else: if self.size != mask.shape: raise ValueError( - f"All masks must be the same size. Expected: {self.size}, " - f"but got {mask.shape}." + f"All masks must be the same size. Expected: {self.size}, but got {mask.shape}." ) self.masks.append(mask) self.class_ids.append(class_id) @@ -66,7 +65,7 @@ def as_segmentation_image(self) -> rr.SegmentationImage: TODO: Add support of instance segmentation. """ - image = np.full(self.size, -1, dtype=np.int64) + image = np.zeros(self.size, dtype=np.uint8) for mask, class_id in zip(self.masks, self.class_ids, strict=True): image[mask == 1] = class_id