> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/ai-blocks/object-detection-custom-cpu.md).

# Object Detection - Custom (CPU)

Este bloque de función te permite ejecutar un detector de objetos personalizado sobre una imagen de entrada usando tus propios archivos de weight, config y class. Usa los controles para cargar los archivos del modelo, elegir qué clases detectar y ajustar el umbral de confianza. El bloque devuelve una imagen de resultado visual y también datos estructurados de detección (conteos, ubicaciones, tamaños y etiquetas) para uso posterior.

## 📥 Entradas

`Image Any`\
Imagen que será procesada por el detector personalizado.

## 📤 Salidas

`Image Any`\
Imagen anotada con las detecciones (cajas/etiquetas) dibujadas.

`Object Count`\
Número de objetos detectados en el fotograma.

`Object Locations`\
Posiciones centrales de los objetos detectados (múltiples).

`Object Sizes (w, h)`\
Ancho y alto de cada objeto detectado (múltiples).

`Object Class`\
Nombres de las clases detectadas (múltiples).

`Rectangles`\
Coordenadas de las cajas delimitadoras para cada detección (múltiples).

## 🕹️ Controles

`Open Weight File`\
Botón para cargar el archivo de pesos del detector (por ejemplo, .weights).

`Open Config File`\
Botón para cargar el archivo de configuración del detector (por ejemplo, .cfg).

`Open Class File`\
Botón para cargar el archivo de nombres de clases (archivo de texto plano). Después de cargarlo, los nombres de las clases se llenan en la tabla.

`Class Names`\
Tabla que muestra las clases disponibles. Alterna las filas para seleccionar qué clases debe informar el detector.

`Confidence Threshold %`\
Deslizador para establecer la confianza mínima requerida para que se informe una detección. Aumenta el valor para reducir falsos positivos; disminúyelo para capturar detecciones más débiles.

## 🎯 Características

* Carga sencilla de recursos de modelo personalizados mediante botones de UI.
* Subconjunto de clases seleccionables para centrar la detección en objetos relevantes.
* Devuelve tanto salida visual como datos: imagen anotada, conteos, posiciones, tamaños, etiquetas de clase y rectángulos.
* Funcionamiento compatible con CPU para sistemas sin GPU.

## 📝 Instrucciones de uso

1. Haz clic en `Open Weight File` y selecciona tu archivo de pesos del detector.
2. Haz clic en `Open Config File` y selecciona el archivo de configuración correspondiente.
3. Haz clic en `Open Class File` y carga el archivo de texto con los nombres de las clases. La tabla `Class Names` se llenará.
4. Alterna las filas en `Class Names` para elegir qué clases quieres detectar.
5. Alimenta una imagen al puerto `Image Any`.
6. Ajusta `Confidence Threshold %` para controlar cuán estrictas deben ser las detecciones.
7. Lee los valores de salida o conecta bloques posteriores para reaccionar ante las detecciones.

## 📊 Qué hace el bloque al ejecutarse

* Procesa la imagen de entrada con el detector cargado usando las clases seleccionadas y el umbral de confianza establecido.
* Produce una imagen anotada en `Image Any` y datos de detección en las demás salidas para conteo, medición, seguimiento, registro o toma de decisiones.

## 💡 Consejos y trucos

* Si quieres inspeccionar visualmente los resultados en una ventana más grande, conecta la salida `Image Any` al bloque `Show Image`.
* Para dibujar superposiciones personalizadas o formatear las anotaciones de detección de otra forma, usa el bloque `Draw Detections` con las salidas `Rectangles` y de conteo.
* Para aumentar el rendimiento en imágenes grandes, inserta `Image Resizer` antes de este bloque para reducir la resolución; esto suele acelerar la detección con poco impacto en la precisión.
* Limita el área de búsqueda para acelerar y estabilizar resultados recortando con `Image ROI Select` o `Image ROI` antes de alimentar la imagen.
* Para mantener un registro de los fotogramas con detecciones, conecta la salida de imagen anotada a `Image Logger` o `Image Write`.
* En escenarios continuos donde quieras mantener identidades entre fotogramas, empareja este bloque con `Object_Detection_Tracker` usando las salidas de rectángulos y clases.
* Si necesitas un detector alternativo rápido para pruebas, compara resultados con los bloques `Object Detection` o `Object Detection (D-FINE)` (si están disponibles) para encontrar el mejor equilibrio entre velocidad y calidad.

## 🛠️ Solución de problemas

* No aparecen clases después de cargar el archivo de clases
  * Asegúrate de haber seleccionado el archivo correcto (texto plano con una clase por línea). Usa `Open Class File` de nuevo si es necesario.
* El detector informa demasiados falsos positivos
  * Aumenta `Confidence Threshold %`. También prueba redimensionar la imagen con `Image Resizer` o restringir el área con `Image ROI Select`.
* El detector no detecta objetos pequeños o lejanos
  * Reduce cuidadosamente `Confidence Threshold %`, o pasa una imagen de mayor resolución al bloque (evita tamaños extremadamente grandes — usa `Image Resizer` para equilibrar velocidad y detalle).
* Rendimiento lento en CPU
  * Reduce la resolución de entrada con `Image Resizer` o recorta la región de interés con `Image ROI Select`. Considera ejecutar la detección con menor frecuencia (por ejemplo, procesamiento por lotes).
* Necesitas actuar sobre las detecciones en otras partes del flujo
  * Usa las salidas numéricas y estructuradas (`Object Count`, `Object Locations`, `Rectangles`, `Object Class`) para alimentar bloques lógicos, de registro o de seguimiento como `Object_Detection_Tracker`.
