Skip to content

modosaic.segmentation.postprocessor

modosaic.segmentation.postprocessor

SegmentationPostprocessor

SegmentationPostprocessor(alpha=0.55, seed=0)

Bases: ModalityPostprocessor[list[ndarray]]

Postprocessor that saves segmentation overlays and instance maps.

Attributes:

Name Type Description
alpha float

Overlay alpha used for mask previews.

seed int

Seed used for deterministic mask colors.

Initialize the postprocessor.

Parameters:

Name Type Description Default
alpha float

Overlay alpha used for mask previews.

0.55
seed int

Seed used for deterministic mask colors.

0
Source code in modosaic/segmentation/postprocessor.py
27
28
29
30
31
32
33
34
35
def __init__(self, alpha: float = 0.55, seed: int = 0) -> None:
    """Initialize the postprocessor.

    Args:
        alpha: Overlay alpha used for mask previews.
        seed: Seed used for deterministic mask colors.
    """
    self.alpha = alpha
    self.seed = seed

modality property

modality

Return the segmentation modality.

process

process(record, generated)

Create segmentation overlay and instance-map artifacts.

Source code in modosaic/segmentation/postprocessor.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@override
def process(self, record: ImageRecord, generated: list[np.ndarray]) -> list[ExperimentArtifact[Any]]:
    """Create segmentation overlay and instance-map artifacts."""
    logger.debug(
        f"Post-processing {len(generated)} segmentation masks for record sample {record.sample_id}"
    )
    image = ImageService.bytes_to_pil(record.image_bytes)
    H, W = image.size[1], image.size[0]
    overlay = SegmentationVisualizationService.overlay_masks(
        image,
        generated,
        alpha=self.alpha,
        seed=self.seed,
    )
    instance_map = SegmentationVisualizationService.instance_map_from_masks(
        generated,
        H,
        W,
    )

    return [
        ExperimentArtifact.image(self.sample_path(record, ".png"), overlay),
        ExperimentArtifact.array(self.sample_path(record, ".npy"), instance_map),
    ]