# Recopilación de dataset

La forma más rápida de construir un modelo de IA de alto rendimiento es capturar datos con un propósito. Esta página explica cómo recolectar imágenes y vídeos de alta calidad usando las herramientas nativas de AugeLab Studio.

{% hint style="info" %}
Puedes omitir esta sección si ya tienes una carpeta de imágenes/vídeos lista para anotar.
{% endhint %}

***

## Planificación de tu conjunto de datos

Es crucial planificar el conjunto de datos antes de la recolección. Un dataset bien estructurado conduce a un mejor rendimiento del modelo.

### 📊 ¿Cuánta data necesitas?

La cantidad de imágenes necesarias depende de cuánto cambie el entorno. Usa esta tabla como punto de partida para tu objetivo de recolección.

| Tipo de Proyecto           | Entorno                                                        | Imágenes recomendadas por clase\* |
| -------------------------- | -------------------------------------------------------------- | --------------------------------- |
| **Simple**                 | Iluminación controlada, cámara fija, 1-2 clases.               | **50 - 150**                      |
| **Industrial**             | Planta de producción, turnos cambiantes, cinta transportadora. | **200 - 500**                     |
| **Complejo**               | Iluminación variable, muchas clases, cámara en movimiento.     | **1,000+**                        |
| **Complejo al aire libre** | Escenas exteriores con cambios meteorológicos.                 | **2,000+**                        |
| **Evento raro**            | Detección de defectos o fugas poco frecuentes.                 | **50 Target / 100 Empty**         |

> \*Imágenes por clase se refiere al número de instancias anotadas de cada categoría de objeto, no solo al total de imágenes.

{% hint style="info" %}
Para mejores resultados, apunta a **diversidad** en ángulos, distancias e iluminación dentro de tu dataset.
{% endhint %}

{% hint style="warning" %}
El número de clases debe ser consistente a lo largo del dataset. Si no lo es, la **aumentación** puede ayudar a equilibrar las clases más adelante.
{% endhint %}

***

### 🏗️ Define los límites

Escribe esto antes de tomar la primera foto para asegurar que tu dataset sea **Representativo** y **Consistente**.

1. **Lista de clases**: ¿Qué objetos específicos vas a detectar?
2. **Especificaciones de la cámara**: ¿Cuál será el ángulo final de montaje, la distancia y el campo de visión (FoV)? ¿Una o varias cámaras?
3. **Variaciones**: ¿Habrá cambios de iluminación (brillos/sombras) o fondos desordenados?
4. **Negativos**: ¿Cómo se ve una escena “vacía”?
5. **Alcance**: ¿Qué objetos debe ignorar intencionalmente el modelo?

***

## Configuración de la cámara

Ya sea que uses una cámara USB, IP o industrial, asegúrate de optimizar los siguientes ajustes antes de la recolección:

* **Resolución**: Apunta entre 480p y 720p (640x480 es un estándar común). Las resoluciones más altas pueden reducirse después.
* **Tasa de frames**: 15–30 FPS es suficiente para la mayoría de tareas de detección de objetos.
* **Enfoque**: Ajusta a enfoque manual para evitar cambios durante la captura.
* **Exposición**: Usa exposición manual para mantener la iluminación consistente.
* **Guardar ajustes**: Guarda el perfil de configuración de la cámara; la mayoría permite presets para mantener coherencia entre sesiones.

## Recolección del conjunto de datos

Puedes capturar imágenes y vídeos para tu dataset de detección de objetos directamente dentro de AugeLab Studio usando las herramientas integradas. Esto garantiza compatibilidad y agiliza el proceso de anotación.

> Otra opción es descargar datasets públicos o usar cámaras/software externos, pero esto puede requerir pasos adicionales de formateo.

### Captura dentro de AugeLab Studio

El entorno Studio te permite usar triggers (botones, señales PLC o temporizadores) para automatizar la recolección.

### 1. Comienza desde el proyecto de ejemplo

AugeLab incluye una plantilla preconfigurada para esta tarea.

* Path: `File` → `Example Projects` (o "Example Scenarios")
* Project: **"Data Collection for AI Training"**

### 📸 Imágenes individuales: el bloque `Image Write`

Usa esto para cuadros estáticos de alta calidad. Es ideal para “misma escena, muchas posiciones”.

| Entrada/Ajuste     | Lógica                                                                                |
| ------------------ | ------------------------------------------------------------------------------------- |
| **Folder Path**    | Dónde se guardan las imágenes.                                                        |
| **Save (Trigger)** | Poner en `True` para capturar un fotograma. Emparejar con un botón o un temporizador. |
| **Compress Image** | **Checked** = `.jpg` (más pequeño)                                                    |

### 🎥 Movimiento continuo: el bloque `Record Video`

Ideal para cintas transportadoras o inspecciones rápidas donde luego extraerás frames.

| Entrada/Ajuste             | Lógica                                     |
| -------------------------- | ------------------------------------------ |
| **Video Quality**          | **Compressed** = `.mp4`                    |
| **Trigger Mode: Spacebar** | Pulsa Space para iniciar/detener.          |
| **Trigger Mode: Once**     | `Record=True` alterna la grabación on/off. |

> Planifica grabaciones cortas y enfocadas (10–60 s) en lugar de un archivo enorme. Esto facilita la extracción de frames.

***

## 📉 Captura de imágenes de fondo (negativas)

Un modelo robusto necesita saber qué no detectar. Debes capturar deliberadamente escenas “vacías”.

* **Qué capturar**: Cintas vacías, estaciones de trabajo vacías o objetos comunes no objetivo (soportes, herramientas).
* **Empty**: Existe un archivo de anotación, pero no contiene cajas.
* **Excluded**: No existe archivo de anotación.

***

## Conjuntos de datos públicos

Si necesitas complementar tus propios datos, considera estos datasets públicos:

* [COCO Dataset](https://cocodataset.org/#home): Dataset a gran escala para detección de objetos, segmentación y captions.
* [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/): Dataset estándar para detección de objetos y segmentación.
* [Open Images Dataset](https://storage.googleapis.com/openimages/web/index.html): Con \~9 millones de imágenes anotadas con etiquetas a nivel de imagen y bounding boxes.
* [ImageNet](http://www.image-net.org/): Gran base visual diseñada para investigación en reconocimiento visual.
* [Kaggle Datasets](https://www.kaggle.com/datasets): Varios datasets para machine learning, incluidos de detección de objetos.

## 📂 Estructura de carpetas y preparación

AugeLab Studio carga datasets por carpeta. Asegúrate de que tu estructura luzca así:

```
my_dataset/
  ├── 000001.jpg
  ├── 000002.jpg
  ├── background_01.png
  └── classes.names  <-- (Opcional, se creará durante la anotación)
```

***

## 🏁 Lista de verificación para la captura

| Verificación   | Requisito                                                                                |
| -------------- | ---------------------------------------------------------------------------------------- |
| **Calidad**    | Evita desenfoque por movimiento intenso o sobreexposición donde desaparezcan los bordes. |
| **Cobertura**  | Captura objetos en el centro, esquinas y bordes del marco.                               |
| **Escala**     | Coincide la distancia real entre cámara y objeto.                                        |
| **Desorden**   | Incluye los fondos desordenados que la cámara verá en producción.                        |
| **Resolución** | La mayoría de los modelos funcionan mejor entre 480p y 720p (640x480 promedio).          |
