# Object Detection

Esta función detecta objetos comunes en una imagen y devuelve resultados tanto visuales como estructurados. Úsala para localizar y contar elementos como personas, vehículos y muchas clases COCO. Ofrece configuración rápida para la confianza y la selección de clases, de modo que puedas adaptar la detección a tu escenario.

## 📥 Entradas

* `Image Any` — Imagen que deseas analizar.

## 📤 Salidas

* `Image Any` — Imagen anotada con cuadros de detección y etiquetas.
* `Object Count` — Número de objetos detectados.
* `Object Center Locations` — Ubicaciones (centros) de los objetos detectados (puede haber múltiples).
* `Object Sizes (w, h)` — Pares ancho/alto para cada objeto detectado (puede haber múltiples).
* `Object Class` — Nombres de clase para cada objeto detectado (puede haber múltiples).
* `Rectangles` — Coordenadas de los rectángulos delimitadores para cada detección (puede haber múltiples).

## 🕹️ Controles

* `Confidence Threshold %` — Control deslizante para fijar la confianza mínima necesaria para aceptar detecciones. Aumentarlo reduce los falsos positivos; bajarlo puede detectar más objetos pero con menor seguridad.
* `Select Detection Class` — Desplegable para elegir un grupo predefinido de clases (por ejemplo: All, Human, Animals, Indoor, Outdoor). Seleccionar un grupo más limitado acelera y enfoca la detección.

## ⚙️ Cómo funciona

* Al ejecutarse, el bloque procesa la imagen entrante con el detector interno y aplica el filtro de confianza y la selección de clases elegidas.
* Devuelve la imagen anotada junto con salidas estructuradas: conteo, posiciones centrales, tamaños, nombres de clase y coordenadas de rectángulos.
* Si el detector aún se está cargando, el bloque mostrará un mensaje informativo y esperará hasta que el detector esté listo antes de producir resultados.

## 🎯 Características

* Detección lista para usar para muchas clases comunes.
* Presets de grupos de clases para enfocarse rápidamente en personas, animales, objetos de interior, objetos de exterior o todas las clases.
* Salida visual anotada más salidas numéricas/estructuradas detalladas para automatización o registro.
* Controles sencillos para equilibrar sensibilidad de detección y seleccionar las clases deseadas.

## 📝 Instrucciones de uso

1. Conecta una cámara o fuente de imagen al input `Image Any`.
2. Elige un preset adecuado en `Select Detection Class` para limitar la detección a las clases relevantes.
3. Ajusta `Confidence Threshold %` para encontrar el equilibrio entre objetos perdidos y falsos positivos.
4. Usa las salidas para activar lógica posterior, seguimiento, visualización o almacenamiento.

## 💡 Tips y trucos

* Para entrada de cámara en vivo, usa uno de los bloques de entrada de imagen como `Camera USB`, `Camera IP (ONVIF)`, `Stream Reader` o `Load Image` para pruebas fuera de línea.
* Para visualizar las detecciones en la UI o en un panel, conecta la salida anotada a `Show Image` o dibuja superposiciones con `Draw Detections`.
* Para rastrear objetos entre fotogramas, alimenta las salidas de detección a `Object_Detection_Tracker` para obtener IDs estables y trayectorias.
* Si solo te importa un área específica, recorta la entrada primero con `Image ROI` o `Image ROI Select` para reducir detecciones falsas y mejorar el rendimiento.
* Con imágenes muy grandes, usa `Image Resize` o `Image Resizer` antes de detectar para acelerar el procesamiento.
* Guarda fotogramas o registros interesantes canalizando la imagen anotada a `Image Logger`, `Multi Image Write` o `Record Video` cuando aparezca un recuento o clase específica. Combínalo con bloques lógicos (por ejemplo `Logic Input` o comprobaciones por umbral) para guardar solo en eventos.
* Combina con bloques de análisis como `Measure Position Distance` o comprobaciones de ROI como `Check Area` para crear alertas o análisis (por ejemplo, contar personas en una zona o medir distancias).

## 🛠️ Solución de problemas

* Si ves demasiados falsos positivos: aumenta `Confidence Threshold %` o reduce el ámbito con `Select Detection Class`.
* Si la detección es lenta: redimensiona la entrada con `Image Resize` o reduce el número de clases buscando un grupo más pequeño.
* Si la imagen anotada aparece vacía pero otras salidas muestran detecciones: verifica que el bloque de visualización (por ejemplo `Show Image`) esté conectado y recibiendo la imagen anotada.
