Skip to content

modosaic.segmentation.generators.impl.sam_b

modosaic.segmentation.generators.impl.sam_b

SAM

SAM()

Bases: SegmentationGenerator

Segment Anything ViT-B mask generator using a local checkpoint.

Load the local SAM checkpoint and automatic mask generator.

Source code in modosaic/segmentation/generators/impl/sam_b.py
20
21
22
23
def __init__(self):
    """Load the local SAM checkpoint and automatic mask generator."""
    super().__init__()
    self.generator = self._load_generator()

generate

generate(record)

Generate segmentation masks for one image record.

Source code in modosaic/segmentation/generators/impl/sam_b.py
57
58
59
60
61
62
63
64
65
66
67
68
69
@override
def generate(self, record: ImageRecord) -> list[np.ndarray]:
    """Generate segmentation masks for one image record."""
    logger.debug(f"Generating segmentation masks for record sample {record.sample_id}")
    img = ImageService.bytes_to_pil(record.image_bytes)
    np_img = np.array(img)
    masks = self.generator.generate(np_img)
    logger.debug(f"Generated {len(masks)} segmentation masks for record sample {record.sample_id}")

    return [
        mask["segmentation"].astype(np.float32)
        for mask in masks
    ]