SAM 3 para imágenes aéreas
Tutorial en español: SAM 3 de Meta segmenta edificios, vías y árboles con una frase corta, sin reentrenar el modelo.
SAM3, Segmentación, Teledetección, PyTorch, Python, OpenEarthMap

Créditos
Imagen de demostración de Segment Anything, de Meta AI: no es una salida de este proyecto.
El detalle
Un notebook de Jupyter en español que corre SAM 3, el modelo de segmentación que Meta publicó en noviembre de 2025, sobre una sola tesela de OpenEarthMap: aachen_10, de Aachen (Alemania), de 1000 × 1000 píxeles.
Le escribes una frase corta en inglés, como "buildings" o "road", y devuelve máscaras sin reentrenar el modelo.
Son siete ejemplos sobre esa misma imagen: el prompt básico, siete prompts comparados, umbrales, otros elementos (vías, árboles, vegetación, agua, carros y cultivos), exportación de máscaras, distribución de scores e inferencia por tiles.
La palabra que eliges pesa: en la misma escena, "dwelling" marcó 18 objetos, "roof" 10 y "construction" ninguno. Las máscaras salen en PNG, sin georreferencia, y todavía no hay un caso latinoamericano. La tesela viene de GeoNRW, con licencia DL-DE-BY-2.0.
Características
- Segmentación con frases cortas de texto:
- con "buildings", SAM 3 marcó 11 objetos en la tesela de 1000 × 1000 px
- Sin reentrenar:
- carga los pesos de facebook/sam3 desde Hugging Face y solo hace inferencia
- Siete prompts comparados sobre la misma escena, de "house" y "roof" a "informal settlement"
- Otros elementos:
- vías, árboles, vegetación, carros y campos de cultivo; con "water" no marcó nada en esta tesela
- Umbrales y distribución de scores:
- cuántas detecciones sobreviven a cada corte
- Exporta las máscaras en PNG, binarias o por instancia, sin georreferencia
- Inferencia por tiles de 256 px con 32 px de solape, probada sobre la misma tesela
- Notebook de Jupyter con 7 ejemplos y sus salidas guardadas, corrido en Kaggle
Stack tecnológico
- Python 3.11 en un notebook de Kaggle con GPU
- PyTorch 2.7.0 con CUDA 12.6
- SAM 3 de Meta: repo facebookresearch/sam3 y pesos facebook/sam3 en Hugging Face (el notebook es anterior a SAM 3.1, de marzo de 2026)
- Pillow, NumPy, pandas y matplotlib
- Jupyter Notebook
- OpenEarthMap: tesela aachen_10, fuente GeoNRW (DL-DE-BY-2.0)
Lo difícil
- Acceso al modelo: hay que pedir acceso a facebook/sam3 en Hugging Face y esperar a que lo aprueben
- GPU: el notebook corrió en una GPU de Kaggle; el README recomienda 16 GB de VRAM, pero no está medido
- El umbral que ya viene puesto: Sam3Processor descarta todo score de 0,5 o menos antes de devolver resultados, así que los umbrales de 0 a 0,5 dieron los mismos 11 objetos
- Prompts que no encuentran nada: "construction" e "informal settlement" devolvieron 0 objetos en la misma escena
- Reproducirlo fuera de Kaggle: la ruta de la imagen está fija en /kaggle/input
- Sin probar todavía: imágenes multiespectrales y otras resoluciones espaciales; se usó una sola tesela RGB
Lo aprendido
- SAM 3 corre sin reentrenar sobre una imagen vista desde arriba y devuelve máscaras con una frase corta; qué tan buenas son no se midió contra las etiquetas de OpenEarthMap
- La elección del prompt es crítica: siete formas de nombrar una construcción dieron entre 0 y 18 objetos sobre la misma tesela
- SAM 3 no entiende el contexto geoespacial y el flujo del notebook no conserva la georreferencia: para llevar las máscaras a un SIG falta otro paso, por ejemplo el módulo samgeo3 de segment-geospatial