# Auto Annotation

Magic annotation te ayuda a generar bounding boxes automáticamente usando modelos de IA, para que puedas etiquetar conjuntos de datos mucho más rápido.

Está diseñada para un flujo de trabajo práctico:

1. Configura el modelo y los prompts una sola vez
2. Auto-etiqueta una imagen para verificar la calidad
3. Auto-etiqueta por lotes todo el dataset
4. Revisa y corrige lo que esté mal

***

## Requisitos

{% hint style="info" %}
Magic annotation funciona más rápido con una GPU NVIDIA.

* Necesitarás un equipo con una [NVIDIA GPU](https://docs.augelab.com/spanish/introduccion/system-requirements)
* Instalar [CUDA y cuDNN](https://docs.augelab.com/spanish/primeros-pasos/installation-and-licensing#gpu-acceleration-cuda)
* Descargar los módulos de IA requeridos desde la ventana Module Downloader
  {% endhint %}

***

## Primera Vista

![Magic annotation entry point in the Classes panel](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-dec25ed8a3133d16f776a1c73b586e40b73b5ca3%2Fannotation-auto-annotation-entrypoint.jpg?alt=media)

(Abre Magic annotation con el botón ✨ (o pulsa T).)

Puedes abrir Magic annotation de dos maneras:

* Pulsa la tecla `T` para auto-anotar la imagen actual (usa tus ajustes guardados)
* Haz clic en el botón ✨ en el panel **Classes** para abrir el diálogo de ajustes **Magic annotation**

{% hint style="info" %}
La primera vez que uses Magic annotation, AugeLab Studio te pedirá configurar tus ajustes. Estos ajustes se guardan y puedes cambiarlos en cualquier momento haciendo clic en el botón ✨.
{% endhint %}

***

## Antes de Empezar (Recomendado)

Magic annotation necesita un dataset y una lista de clases.

1. Carga la carpeta de tu dataset en la Image Annotation Window
2. Carga (o crea) tu archivo `classes.names`

Si no has usado antes la Annotation Window, sigue primero la guía principal de etiquetado.

***

## Abrir el diálogo de Magic annotation

1. Abre **AI Tools** → **Image Annotation**
2. Carga tu dataset y el archivo de clases
3. En el panel **Classes**, haz clic en el botón ✨

Se abrirá el diálogo **Magic annotation Settings**.

![Magic annotation settings dialog](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-b8a08bfcb4c92d83817b6bd846fe7d94fab99515%2Fannotation-auto-annotation-dialog.jpg?alt=media)

***

## Paso 1 — Elegir un Modelo

En **Model Selection**, elige uno de los detectores soportados.

### Modelos con prompt de texto (recomendado para clases personalizadas)

Estos modelos detectan objetos usando las descripciones de tus clases (prompts de texto):

* **Grounding DINO Tiny**: buen valor por defecto, más rápido
* **Grounding DINO Base**: más preciso, más pesado (GPU recomendada)
* **OWLv2 Base Ensemble**: buen modelo general
* **OWLv2 Large Ensemble**: más preciso, más pesado (GPU recomendada)

Usa estos cuando tus clases no sean las clases COCO estándar o cuando quieras describir el objeto en lenguaje natural.

### Modelos YOLO (rápidos, pero la coincidencia de clases importa)

Los modelos YOLO aparecen cuando la función YOLO/OpenCV DNN está disponible:

* **YOLOv4 (COCO)**
* **YOLOv4 Tiny (COCO)**

Estos NO usan descripciones de texto. Usan los nombres de clase COCO.

{% hint style="warning" %}
Para los modelos YOLO (COCO), los nombres de clase COCO deben coincidir con los nombres de clase de tu dataset **exactamente**. Ejemplo: si tu clase es `person`, debe ser exactamente `person` (no `human`).
{% endhint %}

### Modelo YOLOv4 personalizado

Si tienes tu propio modelo YOLOv4, selecciona **Custom YOLOv4 Model** y proporciona:

* Archivo de pesos (`.weights`)
* Archivo de configuración (`.cfg`)
* Archivo de nombres (`.names`)

***

## Paso 2 — Ajustar Umbrales

### Confidence Threshold

Controla cuánta confianza debe tener una detección para convertirse en etiqueta.

* Valores más altos → menos cajas, pero normalmente más limpias
* Valores más bajos → más cajas, pero más falsos positivos

Un buen punto de partida es **30%**.

### Grounding DINO: Box Threshold y Text Threshold

Estos aparecen solo para modelos Grounding DINO:

* **Box Threshold**: cuán estricta debe ser la confianza de la caja
* **Text Threshold**: cuán estricta debe ser la coincidencia entre texto y objeto

Guía rápida:

* Si hay demasiadas cajas incorrectas → aumenta primero **Text Threshold**
* Si las cajas son imprecisas o muy anchas → aumenta **Box Threshold**
* Si no hay detecciones → baja los umbrales gradualmente

***

## Paso 3 — Escribir Mejores Descripciones de Clase (Modelos por prompt de texto)

Si seleccionaste un modelo por prompt de texto, verás una tabla **Class Descriptions**.

![Class descriptions table](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-1d3a4eb01f34e413904826d958ce2812d7277670%2Fannotation-auto-annotation-class-descriptions.jpg?alt=media)

(La tabla Class Descriptions se usa como prompts.)

Por qué importa: la descripción es el prompt que el modelo usa para encontrar tus objetos.

Buenas descripciones son:

* Visuales y específicas (color, forma, material)
* Basadas en tus imágenes reales (fondo, iluminación, orientación)

Ejemplos:

* En lugar de `bolt` → `silver bolt on a black conveyor belt`
* En lugar de `cup` → `white paper cup, top view`
* En lugar de `label` → `rectangular sticker label on a cardboard box`

También puedes usar:

* **Use Class Names** para restablecer los prompts a los nombres de clase
* **Clear All** para empezar desde cero

{% hint style="info" %}
Consejo: si dos clases se parecen, haz que la descripción enfatice lo que las diferencia. Ejemplo: `scratch on metal surface` vs `oil stain on metal surface`.
{% endhint %}

***

## Paso 4 — Elegir el Modo de Anotación (Importante)

Magic annotation soporta tres modos para manejar imágenes que ya tienen anotaciones:

* **Override**: reemplaza los archivos de anotación existentes
* **Add**: agrega nuevas detecciones a las anotaciones existentes
* **Skip**: no procesa imágenes que ya tienen anotaciones

Uso recomendado:

* Elige **Override** cuando empiezas desde cero o vas a re-etiquetar todo
* Elige **Add** cuando quieras complementar tus etiquetas existentes
* Elige **Skip** cuando estás puliendo un dataset parcialmente etiquetado y no quieres sobrescribir trabajo

***

## Ejecutar Magic annotation

### Annotate Current (una imagen)

Usa **Annotate Current** primero.

Esta es la forma más segura de verificar que:

* tus prompts son buenos
* los umbrales son razonables
* las cajas se ven correctas

Si los resultados no son buenos, ajusta prompts/umbrales y prueba de nuevo.

### Batch Annotate All (todo el dataset)

Cuando la imagen actual se vea bien, haz clic en **Batch Annotate All**.

Un diálogo de progreso mostrará:

* estado actual (carga del modelo / procesando)
* barra de progreso
* tiempo estimado restante (ETA)

Puedes cancelar en cualquier momento.

![Batch Magic annotation progress dialog](https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-be46f19d9a6128e516abdf6931d4fad39ebccbc5%2Fannotation-auto-annotation-batch-progress.jpg?alt=media)

(Proceso de Batch Magic annotation con ETA.)

***

## Revisar y Corregir Resultados

Magic annotation está pensado para acelerar el etiquetado, no para sustituir la revisión.

Después del auto-etiquetado:

1. Recorre rápidamente las imágenes para detectar fallos obvios
2. Corrige cajas incorrectas (clase equivocada, tamaño erróneo)
3. Elimina falsos positivos
4. Añade manualmente objetos que falten donde sea necesario

Si ves errores repetidos, detente y ajusta prompts/umbrales, luego vuelve a ejecutar.

***

Si tus modelos de IA no se comportan como esperas, usa estos ajustes rápidos para afinar el rendimiento.

<details>

<summary>🚫 "No anota nada" (Detecciones cero)</summary>

Cuando la IA es demasiado "tímida" para etiquetar, suele ser un problema de umbral o de la descripción.

* **Bajar Confidence:** Reduce un poco el **Confidence Threshold**.
* **Sensibilidad de texto:** Para Grounding DINO, baja el **Text Threshold** para que sea menos estricto con la coincidencia de palabras.
* **Sé específico:** En lugar de "part", prueba "silver metal bolt" o "red plastic cap". Las descripciones deben ser visuales.
* **Verifica listas:** Asegúrate de que tu lista de clases está cargada en los ajustes del nodo y no está vacía.

</details>

<details>

<summary>📦 "Demasiadas cajas erróneas" (Detecciones fantasmas)</summary>

Si la pantalla está llena de falsos positivos, necesitas aumentar la estricticidad del modelo.

* **Subir Confidence:** Incrementa el **Confidence Threshold** para filtrar conjeturas de baja certeza.
* **Estrictez de texto:** Aumenta el **Text Threshold** para forzar una coincidencia más cercana entre la imagen y tu prompt.
* **Quitar ambigüedad:** Evita prompts amplios como "object" o "item". Si la IA etiqueta sombras como "parts", describe específicamente colores o texturas únicas.

</details>

<details>

<summary>❓ "El modelo YOLO no detecta mi clase"</summary>

Los modelos YOLO estándar están pre-entrenados en datasets específicos.

* **COCO estándar:** Los modelos YOLO básicos solo reconocen las 80 categorías COCO. Tus etiquetas deben coincidir exactamente (p. ej., `person`, `cell phone`, `chair`, `bottle`).
* **Necesidades personalizadas:** Si necesitas detectar algo específico (como una "placa de circuito rayada"), cambia a un modelo por prompt de texto (por ejemplo, Grounding DINO) o entrena un **Custom YOLO**.

</details>

<details>

<summary>🐌 "El procesamiento es lento o va a tirones"</summary>

Los modelos de visión son costosos en cómputo.

* **Retraso en la primera ejecución:** Es normal que la primera ejecución sea lenta mientras los modelos se descargan e inicializan en memoria.
* **Tamaño del modelo:** Grounding DINO Base y OWLv2 Large dan mayor precisión pero son "pesados". Prueba una variante "Tiny" o "Small" para mayor velocidad.
* **Hardware:** Asegúrate de que AugeLab está utilizando tu **GPU**. Ejecutar modelos grandes en CPU provoca mucha latencia.

</details>

***

### 💡 ¿Sigues atascado?

Prueba el **AI Assistant** en AugeLab Studio. Describe tu vista de cámara específica y cómo se ven actualmente las cajas; a menudo puede sugerir el valor decimal exacto para tus umbrales.

¿Quieres que cree una tabla "Threshold Cheat Sheet" que explique exactamente qué hacen Confidence vs. Text thresholds?

***

## Notas

* Los ajustes de Magic annotation se guardan y se reutilizan cuando pulsas `T`.
* Si tu plan/licencia tiene límites para Magic annotation offline, la herramienta impedirá el procesamiento por lotes una vez alcanzado el límite.
