mirror of
https://github.com/SikongJueluo/Mini-Nav.git
synced 2026-07-12 20:15:31 +08:00
feat(pipeline): add batch processing for scene graph construction
This commit is contained in:
@@ -4,7 +4,7 @@ from .feature_extractor import (
|
||||
extract_single_image_feature,
|
||||
infer_vector_dim,
|
||||
)
|
||||
from .image import segment_image, extract_masked_region
|
||||
from .image import extract_masked_region, segment_image, segment_image_dataset
|
||||
from .model import get_dino_dim, load_dino_model, load_hash_compressor, load_sam_model
|
||||
|
||||
__all__ = [
|
||||
@@ -14,6 +14,7 @@ __all__ = [
|
||||
"extract_single_image_feature",
|
||||
"extract_batch_features",
|
||||
"segment_image",
|
||||
"segment_image_dataset",
|
||||
"extract_masked_region",
|
||||
"load_dino_model",
|
||||
"load_sam_model",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from typing import Any
|
||||
from typing import Any, Sequence
|
||||
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
@@ -64,6 +64,26 @@ def segment_image(
|
||||
return sorted_masks[:max_masks]
|
||||
|
||||
|
||||
def segment_image_dataset(
|
||||
mask_generator: Any,
|
||||
images: Sequence[Image.Image],
|
||||
min_area: int = 32 * 32,
|
||||
max_masks: int = 5,
|
||||
points_per_batch: int = 64,
|
||||
) -> list[list[dict[str, Any]]]:
|
||||
image_list = list(images)
|
||||
return [
|
||||
segment_image(
|
||||
mask_generator,
|
||||
image,
|
||||
min_area=min_area,
|
||||
max_masks=max_masks,
|
||||
points_per_batch=points_per_batch,
|
||||
)
|
||||
for image in image_list
|
||||
]
|
||||
|
||||
|
||||
def _to_numpy_mask_array(mask_like: Any) -> np.ndarray | None:
|
||||
if mask_like is None:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user