¡Hola, hola, Omesitos! Previamente habíamos visto: Descubre Ultralytics YOLO, modelos, soluciones y más para Visión por Computador 👁️ En donde abordamos lo que nos ofrece Ultralytics, tanto sus modelos, tareas, datasets, soluciones, entre otros. Pero lo vimos brevemente, por ello, en esta oportunidad, vamos a empezar con el apartado de Computer Vision Tasks de Ultralytics YOLO11, específicamente la detección de objetos con YOLOv11. Así que, ¡vamos a por ello!.
¿Qué es la detección de Objetos?
La detección de objetos es una tarea en la cual se identifica la localización y clase a la que pertenecen objetos en una imagen, video o videostream. Para llevarlo a cabo se necesita de un modelo o detector, el cual será capaz de devolver el cuadro delimitador (bounding box) y etiquetas de las clases de cada objeto detectado.
🔧 Instalación de Ultralytics
Para llevar a cabo esta práctica debemos instalar Ultralytics, a través de:
pip install ultralytics
Puedes verificar su instalación y versión con: pip freeze
Nota: A continuación te dejo la programación usada en el video. Si quieres ver el paso a paso explicado con más detalle, ¡no te pierdas el video completo!
🖼️ Detección de objetos sobre imágenes con YOLOv11 de Ultralytics
from ultralytics import YOLO # Cargamos el modelo YOLO model = YOLO("yolo11n.pt") # Especificar la imagen o su URL source = "https://omes-va.com/wp-content/uploads/2025/02/Datasets_720x405.jpg" #source = ["./Inputs/001_image.jpg", "./Inputs/002_image.jpg", "./Inputs/003_image.jpg", "./Inputs/004_image.jpg"] # Realizamos la inferencia de YOLO results = model(source) #print(results) # Visualizar los resultados #results[0].show() for result in results: print("-----") print(result) print(result.boxes) result.show()
🖼️ Detección de objetos sobre imágenes leídas con OpenCV con YOLOv11 de Ultralytics
from ultralytics import YOLO import cv2 # Cargamos la imagen de entrada image = cv2.imread("./Inputs/001_image.jpg") # Cargamos el modelo YOLO model = YOLO("yolo11n.pt") # Realizamos la inferencia sobre la imagen results = model(image) for result in results: print(result) # Extraemos los nombres de las clases detectadas names = [result.names[int(label)] for label in result.boxes.cls] print(names) # Extraemos las coordenadas de las cajas delimitadoras xyxys = result.boxes.xyxy for i, xyxy in enumerate(xyxys): x1, y1 = int(xyxy[0]), int(xyxy[1]) x2, y2 = int(xyxy[2]), int(xyxy[3]) cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 255), 2) cv2.putText(image, names[i], (x1, y1 -5), 1, 1.1, (0, 255, 255), 2) cv2.imshow("Image", image) cv2.waitKey(0) cv2.destroyAllWindows()
🎞️ Detección de objetos sobre un video de Youtube con YOLOv11 de Ultralytics
from ultralytics import YOLO import cv2 import imutils # Cargamos el modelo YOLO model = YOLO("yolo11n.pt") # Especificar la URL del video source = "https://www.youtube.com/watch?v=SWo_7mELz-o&t" # Realizamos la inferencia de YOLO results = model(source, stream=True) for result in results: annotated_frame = result.plot() annotated_frame = imutils.resize(annotated_frame, width=640) # Display the annotated frame cv2.imshow("YOLO Inference", annotated_frame) # El ciclo se rompe al presionar "Esc" if cv2.waitKey(1) & 0xFF == 27: break cv2.destroyAllWindows()
🎞️ Detección de objetos sobre videos con YOLOv11 de Ultralytics
from ultralytics import YOLO import cv2 # Cargamos el modelo YOLO model = YOLO("yolo11n.pt") # Cargamos el video de entrada video_path = "./Inputs/people_walking.mp4" cap = cv2.VideoCapture(0) while cap.isOpened(): # Leemos el frame del video ret, frame = cap.read() if not ret: break # Realizamos la inferencia de YOLO sobre el frame results = model(frame) # Extraemos los resultados annotated_frame = results[0].plot() print(annotated_frame) # Visualizamos los resultados cv2.imshow("YOLO Inference", annotated_frame) # El ciclo se rompe al presionar "Esc" if cv2.waitKey(1) & 0xFF == 27: break cap.release() cv2.destroyAllWindows()
Y eso ha sido todo por este post, Omesitos.
Espero que les haya sido útil y que se animen a probar los detectores de objetos que nos ofrece Ultralytics usando YOLOv11. 📌 Por cierto, no olvides revisar el video si quieres ver todo el paso a paso en acción.
¡Nos vemos en el siguiente post!