|
|
|
@ -870,27 +870,9 @@ class CopyPaste(BaseMixTransform): |
|
|
|
|
|
|
|
|
|
def __call__(self, labels): |
|
|
|
|
"""Applies pre-processing transforms and copy_paste transforms to labels data.""" |
|
|
|
|
if len(labels["instances"].segments) == 0 or self.p == 0: |
|
|
|
|
if len(labels["instances"].segments) == 0: |
|
|
|
|
return labels |
|
|
|
|
# Get index of one or three other images |
|
|
|
|
indexes = self.get_indexes() |
|
|
|
|
if isinstance(indexes, int): |
|
|
|
|
indexes = [indexes] |
|
|
|
|
|
|
|
|
|
# Get images information will be used for Mosaic or MixUp |
|
|
|
|
mix_labels = [self.dataset.get_image_and_label(i) for i in indexes] |
|
|
|
|
|
|
|
|
|
if self.pre_transform is not None: |
|
|
|
|
for i, data in enumerate(mix_labels): |
|
|
|
|
mix_labels[i] = self.pre_transform(data) |
|
|
|
|
labels["mix_labels"] = mix_labels |
|
|
|
|
|
|
|
|
|
# Update cls and texts |
|
|
|
|
labels = self._update_label_text(labels) |
|
|
|
|
# Mosaic or MixUp |
|
|
|
|
labels = self._mix_transform(labels) |
|
|
|
|
labels.pop("mix_labels", None) |
|
|
|
|
return labels |
|
|
|
|
return super().__call__(labels) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FlipCopyPaste: |
|
|
|
|