¡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!
