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

Watch: How to Run Ultralytics Solutions from the Command Line (CLI) | Ultralytics YOLO26 🚀
Soluciones#
Esta es nuestra lista seleccionada de soluciones de Ultralytics que puedes utilizar para crear proyectos increíbles de visión artificial.
- Análisis: realiza un análisis exhaustivo de los datos para descubrir patrones y tomar decisiones fundamentadas, aprovechando YOLO26 para análisis descriptivos, predictivos y prescriptivos.
- Cálculo de distancias: calcula las distancias entre objetos utilizando 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 lograr límites de objetos precisos y una supervisión continua.
- Inferencia en directo con Streamlit: aprovecha la potencia de YOLO26 para realizar detección de objetos en tiempo real directamente desde tu navegador web mediante una interfaz de Streamlit fácil de usar.
- Desenfoque de objetos: aplica desenfoque a los objetos mediante 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 utilizando YOLO26 para lograr una detección precisa en distintas áreas.
- Recorte de objetos: domina el recorte de objetos con YOLO26 para extraer objetos con precisión de imágenes y vídeos.
- Gestión de aparcamientos: organiza y dirige el flujo de vehículos en zonas de aparcamiento con YOLO26, optimizando el uso del espacio y la experiencia del usuario.
- Gestión de colas: implementa sistemas eficientes de gestión de colas para reducir los tiempos de espera y mejorar la productividad mediante YOLO26.
- Sistema de alarma de seguridad: crea un sistema de alarma de seguridad con YOLO26 que active alertas al detectar objetos nuevos. Personaliza el sistema para adaptarlo a tus necesidades específicas.
- Búsqueda por similitud: habilita la recuperación inteligente de imágenes combinando embeddings de OpenAI CLIP con una búsqueda por similitud coseno, lo que permite realizar consultas en lenguaje natural como "persona sujetando una bolsa" o "vehículos en movimiento".
- Estimación de velocidad: estima la velocidad de los objetos mediante YOLO26 y técnicas de seguimiento de objetos, algo fundamental para aplicaciones como los vehículos autónomos y la supervisión del tráfico.
- Seguimiento de objetos en una zona: aprende a seguir objetos dentro de zonas específicas de los fotogramas de vídeo mediante YOLO26 para lograr una supervisión precisa y eficiente.
- Asignación de objetos con la vista VisionEye: desarrolla sistemas que imiten el enfoque del ojo humano sobre objetos específicos, mejorando la capacidad del ordenador para distinguir y priorizar detalles.
- Supervisión de entrenamientos: descubre cómo supervisar entrenamientos mediante YOLO26. Aprende a seguir y analizar diversas rutinas de fitness en tiempo real.
Argumentos de las soluciones#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta al archivo del modelo YOLO de Ultralytics. |
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 asigne nombres de región a listas de puntos para varias regiones (solo RegionCounter). Cuando None, las soluciones que requieren una región recurren a una región predeterminada. |
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 utilizará para el mapa de calor. |
line_width | int | 2 | Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución. |
verbose | bool | True | Activa el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. 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 las plazas 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 utilizados para supervisar entrenamientos. Estos puntos clave corresponden a articulaciones o partes del cuerpo, como hombros, codos y muñecas, para ejercicios como flexiones, dominadas, sentadillas y ejercicios abdominales. |
down_angle | int | 90 | Umbral de ángulo para la pose «abajo». |
blur_ratio | float | 0.5 | Ajusta el porcentaje de intensidad del desenfoque, con valores en el rango 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Nombre del directorio donde se almacenan 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 en el que la solución VisionEye seguirá los objetos y dibujará las trayectorias. |
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 de Solutions (CLI). |
figsize | tuple[float, float] | (12.8, 7.2) | Tamaño de las figuras para gráficos analíticos, como mapas de calor o gráficos. |
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 seguirán 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 | Límite máximo de velocidad en las superposiciones visuales (utilizado en las alertas). |
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. |
Las soluciones reenvían algunos de sus argumentos a track, concretamente tracker, conf, iou, classes y device.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza para 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 superpuestas. |
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 (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo. |
Puedes utilizar show_conf, show_labels y otros argumentos mencionados para personalizar la visualización.
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o 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 las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados. |
Uso de SolutionAnnotator#
Todas las soluciones de Ultralytics utilizan la clase independiente SolutionAnnotator, que amplía la clase principal Annotator, y disponen de los siguientes métodos:
| Método | Tipo de retorno | Descripción |
|---|---|---|
draw_region() | None | Dibuja una región utilizando los puntos, colores y el grosor especificados. |
queue_counts_display() | None | Muestra los recuentos de la cola en la región especificada. |
display_analytics() | None | Muestra las estadísticas generales de 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 una caja de texto etiquetada en la imagen. |
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 | Anota las cajas delimitadoras con etiquetas de clase de objeto. |
sweep_annotator() | None | Visualiza una línea de barrido vertical y una etiqueta opcional. |
visioneye() | None | Asigna y conecta los centroides de los objetos con un punto visual en forma de «ojo». |
adaptive_label() | None | Dibuja una etiqueta de 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, # display the output
region=region_points, # pass region points
model="yolo26n.pt", # model="yolo26n-obb.pt" for object counting with OBB model.
# classes=[0, 2], # count specific classes i.e. person and car with COCO pretrained model.
# tracker="botsort.yaml" # Choose trackers i.e "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_countEl objeto SolutionResults tiene 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, int] | Diccionario que registra los recuentos de objetos que entran y salen por clase para análisis avanzados. |
queue_count | int | Número de objetos que se encuentran actualmente dentro de una cola o zona de espera predefinida (adecuado para la gestión de colas). |
workout_count | list[int] | Recuentos de repeticiones de ejercicios por seguimiento de AI Gym (una entrada por cada individuo seguido actualmente). |
workout_angle | list[float] | Ángulos de ejercicio por seguimiento de AI Gym (una entrada por cada individuo seguido actualmente). |
workout_stage | list[str] | Fase actual del entrenamiento por seguimiento de AI Gym (una entrada por cada individuo seguido actualmente). |
pixels_distance | float | Distancia en píxeles entre dos objetos o puntos, por ejemplo, cajas delimitadoras (adecuada para el cálculo de 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 un correo electrónico de notificación o alerta (adecuado para una alarma de seguridad). |
total_tracks | int | Número total de seguimientos de objetos únicos observados durante el análisis del vídeo. |
region_counts | Dict[str, int] | Recuentos de objetos dentro de regiones o zonas definidas por el usuario. |
speed_dict | Dict[str, float] | Diccionario por seguimiento de las velocidades de objetos calculadas, útil para el análisis de la velocidad. |
total_crop_objects | int | Número total de imágenes de objetos recortadas generadas por la solución ObjectCropper. |
speed | Dict[str, float] | Diccionario que contiene 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 soluciones se pueden utilizar directamente a través de la interfaz de línea de comandos.
Sintaxis
yolo SOLUTIONS SOLUTION_NAME ARGS
- SOLUTIONS es una palabra clave obligatoria.
- SOLUTION_NAME es 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 anular 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 soluciones#
¡Damos la bienvenida a las contribuciones de la comunidad! Si dominas algún aspecto concreto de Ultralytics YOLO que aún no esté cubierto en nuestras soluciones, te animamos a compartir tus conocimientos. Escribir una guía es una forma estupenda de contribuir a la comunidad y ayudarnos a hacer que nuestra documentación sea más completa y fácil de usar.
Para empezar, lee nuestra Guía de contribución para consultar las directrices sobre cómo abrir una solicitud de cambios (PR) 🛠️. ¡Esperamos con interés tus contribuciones!
¡Trabajemos juntos para hacer que el ecosistema de Ultralytics YOLO sea más sólido y versátil 🙏!
Preguntas frecuentes#
Ultralytics YOLO26 puede utilizarse para contar objetos en tiempo real aprovechando sus avanzadas capacidades de detección de objetos. Puedes seguir nuestra guía detallada sobre Conteo de objetos para configurar YOLO26 para el análisis de transmisiones de vídeo en directo. Solo tienes que instalar YOLO26, cargar el modelo y procesar los fotogramas del vídeo para contar objetos dinámicamente.
Ultralytics YOLO26 mejora los sistemas de seguridad al ofrecer detección de objetos y mecanismos de alerta en tiempo real. Con YOLO26, puedes crear un sistema de alarma de seguridad que active alertas cuando se detecten nuevos objetos en la zona vigilada. Aprende a configurar un Sistema de alarma de seguridad con YOLO26 para llevar a cabo una supervisión de seguridad sólida.
Ultralytics YOLO26 puede mejorar considerablemente los sistemas de gestión de colas al contar y rastrear con precisión a las personas que esperan, lo que ayuda a reducir los tiempos de espera y optimizar la eficiencia del servicio. Sigue nuestra guía detallada sobre Gestión de colas para aprender a implementar YOLO26 en la supervisión y el análisis eficaces de colas.
Sí, Ultralytics YOLO26 puede utilizarse 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 de los ejercicios. Consulta nuestra guía sobre Supervisión de entrenamientos para aprender a configurar un sistema de supervisión de entrenamientos basado en IA mediante YOLO26.
Ultralytics YOLO26 puede generar mapas de calor para visualizar la intensidad de los datos en un área 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. Obtén más información sobre cómo crear y usar Mapas de calor con YOLO26 para realizar análisis y visualizaciones de datos exhaustivos.