# Background Removal (BiRefNet)

Esta función realiza una segmentación de primer plano/fondo de alta calidad usando el modelo BiRefNet. Genera una máscara binaria y (opcionalmente) una visualización en superposición verde del primer plano detectado para que puedas inspeccionar los resultados rápidamente.

## 📥 Entradas (sockets) <a href="#inputs" id="inputs"></a>

`Image` Imagen RGB / BGR que se va a segmentar.

## 📤 Salidas (sockets) <a href="#outputs" id="outputs"></a>

`Overlay` Imagen con una superposición verde que muestra las regiones de primer plano segmentadas.

`Mask` Máscara de segmentación binaria (0 = fondo, 255 = primer plano).

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Overlay` Interruptor para habilitar o deshabilitar la salida de visualización en overlay (muestra la superposición verde sobre la imagen de entrada).

## 🎨 Características <a href="#features" id="features"></a>

* Segmentación de alta calidad adecuada para objetos con bordes complejos y transparencia parcial.
* Produce tanto una máscara binaria como una superposición visual para verificación rápida.
* Maneja automáticamente la carga del modelo y la selección del dispositivo (GPU si está disponible).
* Diseñado para trabajar con imágenes de cualquier tamaño (el procesamiento del modelo puede usar internamente una transformación de tamaño fijo para la inferencia).
* Requiere paquetes adicionales: transformers, torch, torchvision, pillow.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Conecta una fuente de imagen al `Image` input (por ejemplo: `Camera USB`, `Camera IP (ONVIF)`, `Load Image`).
2. Activa `Overlay` si quieres que se genere una superposición visual verde junto con la máscara binaria.
3. Inspecciona las salidas: usa `Overlay` para previsualizar visualmente los resultados y usa `Mask` para procesamiento posterior (mediciones, recorte, conteo, etc.).
4. Guarda o registra las salidas con `Image Write` o `Image Logger` si necesitas almacenar resultados.

## 📊 Evaluación <a href="#evaluation" id="evaluation"></a>

Al ejecutarse, este bloque devuelve una máscara binaria que indica los píxeles de primer plano y, opcionalmente, una imagen overlay donde las regiones de primer plano aparecen teñidas de verde. Usa la máscara para operaciones de imagen o mediciones posteriores.

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Preprocesa con `Image Resizer` o `Image Resize` para limitar el tamaño de entrada si tus imágenes son muy grandes. Esto reduce el uso de memoria y acelera el procesamiento.
* Elimina ruido o suaviza la entrada usando `Denoising` o `Blur` antes de la segmentación para reducir artefactos en la máscara.
* Para mayor contraste entre sujeto y fondo, prueba `Auto Contrast` o `Adjust Colors` antes de alimentar la imagen.
* Para eliminar pequeños agujeros o motas en la máscara, aplica el bloque `Morphological Transformations` sobre la salida `Mask`, y luego usa `Apply Mask` para obtener un recorte limpio.
* Si quieres una alternativa con menos dependencias o para comparar, prueba `Background Removal (RMBG-1.4)` y compara resultados.
* Visualiza resultados interactivamente con `Show Image`. Para registrar automáticamente, usa `Image Logger` o `Image Write`.
* Usa `Image ROI` / `Image ROI Select` antes de segmentar cuando necesites procesar solo una región específica (reduce procesamiento y suele mejorar resultados).

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Si el bloque indica dependencias faltantes, instala los paquetes requeridos (transformers, torch, torchvision, pillow) y reinicia el entorno.
* Si los resultados se ven ruidosos o incompletos, intenta preprocesar con `Image Resizer`, `Denoising` o `Auto Contrast`, y postprocesa la `Mask` con `Morphological Transformations`.
* Si el procesamiento es lento en imágenes grandes, reduce el tamaño de entrada con `Image Resizer` o usa una imagen fuente más pequeña antes de este bloque.
* Para inspeccionar resultados intermedios, conecta las salidas `Overlay` o `Mask` a `Show Image` o guárdalas con `Image Write`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/spanish/bloques-de-funcion/ai-blocks/background-removal-birefnet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
