Spaces:
Sleeping
Sleeping
| """SAM 2 Segmentation""" | |
| from core.config import settings | |
| import numpy as np | |
| class SAM2Segmenter: | |
| def __init__(self): | |
| self.predictor = None | |
| self.current_image = None | |
| def load_model(self): | |
| try: | |
| from sam2.build_sam import build_sam2 | |
| from sam2.sam2_image_predictor import SAM2ImagePredictor | |
| model = build_sam2("sam2_hiera_large.pt") | |
| self.predictor = SAM2ImagePredictor(model) | |
| except ImportError: | |
| print("SAM 2 not installed. Segmentation disabled.") | |
| def set_image(self, image): | |
| self.current_image = image | |
| if self.predictor: | |
| self.predictor.set_image(image) | |
| def segment_at_point(self, x: int, y: int) -> np.ndarray: | |
| if not self.predictor: | |
| return np.zeros((1, 1)) | |
| masks, scores, _ = self.predictor.predict( | |
| point_coords=[[x, y]], | |
| point_labels=[1], | |
| multimask_output=False | |
| ) | |
| return masks[0] | |
| sam2_segmenter = SAM2Segmenter() | |