Soluciones de Ultralytics: aprovecha YOLO26 para resolver problemas del mundo real#
Las soluciones de Ultralytics ofrecen aplicaciones innovadoras de los modelos YOLO con soluciones para el mundo real, como el recuento de objetos, el desenfoque y los sistemas de seguridad. Mejoran la eficiencia y la precisión en diversos sectores. Descubre el potencial de YOLO26 para crear implementaciones prácticas y de gran impacto.

Ver: Cómo ejecutar soluciones de Ultralytics desde la línea de comandos (CLI) | Ultralytics YOLO26 🚀
Soluciones#
Esta es nuestra selección de soluciones de Ultralytics con las que puedes crear proyectos increíbles de visión artificial.
- Analítica: realiza análisis de datos exhaustivos para descubrir patrones y tomar decisiones fundamentadas, aprovechando YOLO26 para la analítica descriptiva, predictiva y prescriptiva.
- Cálculo de distancias: calcula distancias entre objetos mediante los centroides de sus cajas delimitadoras en YOLO26, algo esencial para el análisis espacial.
- Mapas de calor: utiliza mapas de calor de detección para visualizar la intensidad de los datos en una matriz y obtener información clara en tareas de visión artificial.
- Segmentación de instancias con seguimiento de objetos: implementa la segmentación de instancias y el seguimiento de objetos con YOLO26 para delimitar objetos con precisión y supervisarlos de forma continua.
- Inferencia en directo con Streamlit: aprovecha la potencia de YOLO26 para realizar detección de objetos en tiempo real directamente en el navegador con una interfaz de Streamlit fácil de usar.
- Desenfoque de objetos: aplica desenfoque a los objetos con YOLO26 para proteger la privacidad al procesar imágenes y vídeos.
- Recuento de objetos: aprende a contar objetos en tiempo real con YOLO26. Adquiere los conocimientos necesarios para contar objetos con precisión en secuencias de vídeo en directo.
- Recuento de objetos en regiones: cuenta objetos en regiones específicas con YOLO26 para detectarlos con precisión en distintas zonas.
- Recorte de objetos: domina el recorte de objetos con YOLO26 para extraerlos con precisión de imágenes y vídeos.
- Gestión de aparcamientos: organiza y dirige el flujo de vehículos en aparcamientos con YOLO26, optimizando el uso del espacio y la experiencia de los usuarios.
- Gestión de colas: implementa sistemas eficientes de gestión de colas para reducir los tiempos de espera y mejorar la productividad con YOLO26.
- Sistema de alarma de seguridad: crea con YOLO26 un sistema de alarma de seguridad que envíe alertas al detectar objetos nuevos. Personaliza el sistema según tus necesidades.
- Búsqueda por similitud: permite recuperar imágenes de forma inteligente combinando embeddings de OpenAI CLIP con una búsqueda por similitud coseno, para admitir consultas en lenguaje natural como «persona con una bolsa» o «vehículos en movimiento».
- Estimación de velocidad: estima la velocidad de los objetos con YOLO26 y técnicas de seguimiento de objetos, algo fundamental en aplicaciones como los vehículos autónomos y la supervisión del tráfico.
- Seguimiento de objetos en una zona: aprende a realizar un seguimiento preciso y eficiente de objetos dentro de zonas específicas de los fotogramas de vídeo con YOLO26.
- Mapeo de objetos con VisionEye View: desarrolla sistemas que imitan la atención del ojo humano hacia objetos específicos y mejoran la capacidad del ordenador para distinguir y priorizar detalles.
- Supervisión de entrenamientos: descubre cómo supervisar entrenamientos con YOLO26. Aprende a seguir y analizar en tiempo real distintas rutinas de ejercicio.
Argumentos de Solutions#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo Ultralytics YOLO. |
region | list o dict | None | Puntos que definen la región de interés, ya sea una lista de tuplas (x, y) o un diccionario que asigna nombres de región a listas de puntos para varias regiones (solo RegionCounter). Si None, las soluciones que requieren una región usan una región predeterminada predefinida. |
show_in | bool | True | Indicador que controla si se muestran los recuentos de entradas en la secuencia de vídeo. |
show_out | bool | True | Indicador que controla si se muestran los recuentos de salidas en la secuencia de vídeo. |
analytics_type | str | 'line' | Tipo de gráfico, es decir, line, bar, area o pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mapa de colores que se usa para el mapa de calor. |
line_width | int | 2 | Grosor de línea de los cuadros, puntos clave y recuentos que dibuja la solución. |
verbose | bool | True | Activa el registro por fotograma de la forma de entrada, los recuentos por clase y la velocidad de procesamiento de la solución. La llamada de seguimiento en sí siempre es silenciosa. |
json_file | str | None | Ruta al archivo JSON que contiene todos los datos de coordenadas de aparcamiento. |
up_angle | float | 145.0 | Umbral de ángulo para la pose «arriba». |
kpts | list[int] | [6, 8, 10] | Lista de tres índices de puntos clave que se usan para supervisar entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, en ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales. |
down_angle | float | 90.0 | Umbral de ángulo para la pose «abajo». |
blur_ratio | float | 0.5 | Ajusta el porcentaje de intensidad del desenfoque, con valores dentro del intervalo 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nombre del directorio donde se guardan las detecciones recortadas. |
records | int | 5 | Número total de detecciones necesario para activar un correo electrónico con el sistema de alarma de seguridad. |
vision_point | tuple[int, int] | (20, 20) | Punto desde el que la visión artificial seguirá los objetos y dibujará trayectorias mediante VisionEye Solution. |
source | str | None | Ruta a la fuente de entrada (vídeo, RTSP, etc.). Solo se puede utilizar con la interfaz de línea de comandos (CLI) de Solutions. |
figsize | tuple[float, float] | (12.8, 7.2) | Tamaño de las figuras en pulgadas para los gráficos de Analytics; (12.8, 7.2) genera un fotograma de 1280×720. |
fps | float | 30.0 | Fotogramas por segundo utilizados para los cálculos de velocidad. |
max_hist | int | 5 | Número máximo de puntos históricos que se registran por objeto para calcular la velocidad y la dirección. |
meter_per_pixel | float | 0.05 | Factor de escala utilizado para convertir la distancia en píxeles a unidades del mundo real. |
max_speed | int | 120 | Velocidad máxima en km/h; las velocidades estimadas superiores se limitan a este valor. |
data | str | 'images' | Ruta al directorio de imágenes utilizado para la búsqueda por similitud. |
imgsz | int | 640 | Tamaño de la imagen de entrada para la inferencia del modelo. |
Solutions pasa los siguientes argumentos de inferencia y seguimiento a model.track().
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Especifica el algoritmo de seguimiento que se va a usar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza de las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite elegir entre CPU, una GPU concreta u otros dispositivos de cálculo para ejecutar el modelo. |
imgsz | int or tuple | 640 | Tamaño de imagen de destino para la inferencia: un entero para una imagen cuadrada o una pareja (height, width). Las dimensiones se ajustan al stride del modelo. |
max_det | int | 300 | Número máximo de detecciones que se conservan por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas. |
quantize | int or str | None | Precisión de inferencia: 16 (FP16) o 32/unset (FP32) para los modelos PyTorch y TorchScript fuera de CPU; los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. Sustituye al argumento obsoleto half. |
Puedes usar show_conf, show_labels y los demás argumentos mencionados para personalizar la visualización.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o los vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
show_conf | bool | True | Muestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección. |
show_labels | bool | True | Muestra etiquetas para cada detección en la salida visual. Facilita la identificación inmediata de los objetos detectados. |
Uso de SolutionAnnotator#
Todas las soluciones de Ultralytics usan la clase independiente SolutionAnnotator, que amplía la clase principal Annotator y ofrece los métodos siguientes:
| Método | Tipo de retorno | Descripción |
|---|---|---|
draw_region() | None | Dibuja una región con los puntos, colores y el grosor especificados. |
queue_counts_display() | None | Muestra el recuento de la cola en la región especificada. |
display_analytics() | None | Muestra estadísticas generales sobre la gestión del aparcamiento. |
estimate_pose_angle() | float | Calcula el ángulo entre tres puntos de la pose de un objeto. |
draw_specific_kpts() | np.ndarray | Dibuja puntos clave específicos en la imagen. |
plot_workout_information() | int | Dibuja en la imagen un cuadro de texto con una etiqueta. |
plot_angle_and_count_and_stage() | None | Visualiza el ángulo, el recuento de pasos y la fase para supervisar entrenamientos. |
plot_distance_and_line() | None | Muestra la distancia entre centroides y los conecta con una línea. |
display_objects_labels() | None | Añade etiquetas de clase de objeto a las cajas delimitadoras. |
sweep_annotator() | None | Visualiza una línea de barrido vertical y una etiqueta opcional. |
visioneye() | None | Relaciona los centroides de los objetos con un punto visual de «ojo» y los conecta a él. |
adaptive_label() | None | Dibuja una etiqueta con fondo circular o rectangular en el centro de una caja delimitadora. |
Trabajar con SolutionResults#
Salvo Similarity Search, cada llamada a una solución devuelve un objeto SolutionResults.
- Para el recuento de objetos, los resultados incluyen
in_count,out_countyclasswise_count.
import cv2
from ultralytics import solutions
im0 = cv2.imread("path/to/img")
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(
show=True, # mostrar el resultado
region=region_points, # pasar los puntos de la región
model="yolo26n.pt", # model="yolo26n-obb.pt" para contar objetos con un modelo OBB.
# classes=[0, 2], # contar clases específicas, p. ej., personas y coches con el modelo preentrenado de COCO.
# tracker="botsort.yaml" # Elegir trackers, p. ej., "bytetrack.yaml"
)
results = counter(im0)
print(results.in_count) # display in_counts
print(results.out_count) # display out_counts
print(results.classwise_count) # display classwise_countLos objetos SolutionResults tienen los siguientes atributos:
| Atributo | Tipo | Descripción |
|---|---|---|
plot_im | np.ndarray | Imagen con superposiciones visuales, como recuentos, efectos de desenfoque o mejoras específicas de la solución. |
in_count | int | Número total de objetos detectados que entran en la zona definida de la secuencia de vídeo. |
out_count | int | Número total de objetos detectados que salen de la zona definida de la secuencia de vídeo. |
classwise_count | dict[str, dict[str, int] | int] | Recuentos por clase: {"IN": int, "OUT": int} para ObjectCounter y Heatmap, o un int para Analytics. |
queue_count | int | Número de objetos que hay actualmente en una cola o zona de espera predefinida (adecuado para la gestión de colas). |
workout_count | list[int] | Recuentos de repeticiones por seguimiento de AI Gym (una entrada por cada persona seguida en ese momento). |
workout_angle | list[float] | Ángulos de ejercicio por seguimiento de AI Gym (una entrada por cada persona seguida en ese momento). |
workout_stage | list[str] | Fase actual del entrenamiento por seguimiento de AI Gym (una entrada por cada persona seguida en ese momento). |
pixels_distance | float | Distancia en píxeles entre dos objetos o puntos, como las cajas delimitadoras. (Adecuado para calcular distancias). |
available_slots | int | Número de plazas libres en una zona supervisada (adecuado para la gestión de aparcamientos). |
filled_slots | int | Número de plazas ocupadas en una zona supervisada. (Adecuado para la gestión de aparcamientos) |
email_sent | bool | Indica si se ha enviado correctamente una notificación o un correo electrónico de alerta (adecuado para una alarma de seguridad). |
total_tracks | int | Número total de seguimientos únicos de objetos observados durante el análisis de vídeo. |
region_counts | Dict[str, int] | Recuentos de objetos dentro de regiones o zonas definidas por el usuario. |
speed_dict | Dict[int, int] | Diccionario por seguimiento de las velocidades estimadas de los objetos en km/h por SpeedEstimator, útil para analizar la velocidad. |
total_crop_objects | int | Número total de imágenes de objetos recortadas que genera la solución ObjectCropper. |
speed | Dict[str, float] | Diccionario con métricas de rendimiento del seguimiento y del procesamiento de la solución. |
Para obtener más información, consulta la documentación de la clase SolutionResults.
Uso de Solutions mediante CLI#
La mayoría de las Solutions se pueden usar directamente desde la interfaz de línea de comandos.
Sintaxis
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONS es una palabra clave obligatoria.
- SOLUTION_NAME puede ser uno de los siguientes:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye', 'region', 'security', 'parking']. - ARGS (opcional) son pares personalizados de
arg=value, comoshow_in=True, para sustituir la configuración predeterminada.
yolo solutions count show=True # for object counting
yolo solutions count source="path/to/video.mp4" # specify video file pathContribuye a nuestras Solutions#
¡Damos la bienvenida a las contribuciones de la comunidad! Si dominas algún aspecto de Ultralytics YOLO que todavía no esté cubierto en nuestras Solutions, te animamos a compartir tus conocimientos. Escribir una guía es una forma estupenda de contribuir a la comunidad y ayudarnos a que nuestra documentación sea más completa y fácil de usar.
Para empezar, lee nuestra Guía de contribución, donde encontrarás las pautas para abrir una solicitud de cambios (PR) 🛠️. ¡Esperamos tus contribuciones!
¡Trabajemos juntos para que el ecosistema Ultralytics YOLO sea más sólido y versátil 🙏!
Preguntas frecuentes#
Ultralytics YOLO26 permite contar objetos en tiempo real gracias a sus avanzadas capacidades de detección de objetos. Puedes seguir nuestra guía detallada sobre el recuento de objetos para configurar YOLO26 y analizar flujos de vídeo en directo. Solo tienes que instalar YOLO26, cargar tu modelo y procesar los fotogramas del vídeo para contar objetos de forma dinámica.
Ultralytics YOLO26 mejora los sistemas de seguridad al ofrecer detección de objetos en tiempo real y mecanismos de alerta. Con YOLO26, puedes crear un sistema de alarma de seguridad que active alertas cuando se detecten objetos nuevos en la zona vigilada. Descubre cómo configurar un sistema de alarma de seguridad con YOLO26 para una vigilancia de seguridad sólida.
Ultralytics YOLO26 puede mejorar considerablemente los sistemas de gestión de colas al contar y seguir con precisión a las personas en las colas, lo que ayuda a reducir los tiempos de espera y optimizar la eficiencia del servicio. Sigue nuestra guía detallada sobre la gestión de colas para aprender a implementar YOLO26 y supervisar y analizar colas de forma eficaz.
Sí, Ultralytics YOLO26 se puede usar eficazmente para supervisar entrenamientos mediante el seguimiento y el análisis de rutinas de ejercicio en tiempo real. Esto permite evaluar con precisión la técnica y el rendimiento del ejercicio. Consulta nuestra guía sobre la supervisión de entrenamientos para aprender a configurar un sistema de supervisión de entrenamientos basado en IA con YOLO26.
Ultralytics YOLO26 puede generar mapas de calor para visualizar la intensidad de los datos en una zona determinada y destacar las regiones con mayor actividad o interés. Esta función resulta especialmente útil para comprender patrones y tendencias en diversas tareas de visión artificial. Descubre cómo crear y usar mapas de calor con YOLO26 para realizar análisis y visualizaciones de datos exhaustivos.