|
|
|
|
@ -270,7 +270,7 @@ class CompiledMask:
|
|
|
|
|
if instance_ids is not None:
|
|
|
|
|
assert len(instance_ids) == len(instance_masks)
|
|
|
|
|
else:
|
|
|
|
|
instance_ids = [1 + i for i in range(len(instance_masks))]
|
|
|
|
|
instance_ids = range(1, len(instance_masks) + 1)
|
|
|
|
|
|
|
|
|
|
if instance_labels is not None:
|
|
|
|
|
assert len(instance_labels) == len(instance_masks)
|
|
|
|
|
@ -310,15 +310,13 @@ class CompiledMask:
|
|
|
|
|
def instance_count(self):
|
|
|
|
|
return int(self.instance_mask.max())
|
|
|
|
|
|
|
|
|
|
def get_instance_labels(self, class_count=None):
|
|
|
|
|
if class_count is None:
|
|
|
|
|
class_count = np.max(self.class_mask) + 1
|
|
|
|
|
|
|
|
|
|
m = self.class_mask * class_count + self.instance_mask
|
|
|
|
|
m = m.astype(int)
|
|
|
|
|
def get_instance_labels(self):
|
|
|
|
|
class_shift = 16
|
|
|
|
|
m = (self.class_mask.astype(np.uint32) << class_shift) \
|
|
|
|
|
+ self.instance_mask.astype(np.uint32)
|
|
|
|
|
keys = np.unique(m)
|
|
|
|
|
instance_labels = {k % class_count: k // class_count
|
|
|
|
|
for k in keys if k % class_count != 0
|
|
|
|
|
instance_labels = {k & ((1 << class_shift) - 1): k >> class_shift
|
|
|
|
|
for k in keys if k & ((1 << class_shift) - 1) != 0
|
|
|
|
|
}
|
|
|
|
|
return instance_labels
|
|
|
|
|
|
|
|
|
|
@ -783,4 +781,4 @@ class Transform(Extractor):
|
|
|
|
|
return self._extractor.categories()
|
|
|
|
|
|
|
|
|
|
def transform_item(self, item):
|
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
raise NotImplementedError()
|
|
|
|
|
|