Detección de objetos con YOLOv8
YOLO de ultralytics, model.predict(), cuadros delimitadores, filtrado por confianza y entrenamiento personalizado.
Detección de objetos con YOLOv8 es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Clasificación frente a detección
La clasificación de imágenes indica qué aparece en una imagen. La detección de objetos va más allá: encuentra dónde está cada objeto y dibuja cajas delimitadoras y etiquetas. YOLO es el detector en tiempo real más popular.
¿Qué es YOLO?
YOLO (You Only Look Once) detecta todos los objetos en una única pasada hacia delante, lo que le permite ser lo bastante rápido para vídeo. YOLOv8, de Ultralytics, ofrece una API de Python clara para la inferencia y el entrenamiento.
pip install ultralyticsCarga de un modelo preentrenado
Importe YOLO y cargue un checkpoint. yolov8n.pt es el modelo nano: pequeño y rápido. Las variantes más grandes (s, m, l, x) intercambian velocidad por precisión. Los pesos se descargan automáticamente la primera vez que se utilizan.
from ultralytics import YOLO
model = YOLO("yolov8n.pt")Ejecución de la inferencia
Llame a model.predict (o simplemente a model(image)) sobre una ruta de imagen, una URL o un array. Devuelve una lista de Results, uno por cada imagen de entrada.
results = model.predict("street.jpg", conf=0.5)El umbral conf
El parámetro conf establece la confianza mínima necesaria para conservar una detección. Auméntelo para descartar cajas inciertas (menos falsos positivos); redúzcalo para detectar más objetos, con el riesgo de introducir ruido.
results = model.predict("street.jpg", conf=0.25) # more detections
results = model.predict("street.jpg", conf=0.7) # only confident onesLectura de las cajas
Cada resultado tiene un objeto boxes. boxes.xyxy proporciona las esquinas de la caja delimitadora como [x1, y1, x2, y2] (coordenadas de píxel de la esquina superior izquierda y la inferior derecha).
r = results[0]
print(r.boxes.xyxy) # tensor of [x1, y1, x2, y2] rowsClases y confianza
Además de las cajas, obtiene boxes.cls (índices de clase) y boxes.conf (puntuaciones de confianza). Asigne los índices a nombres mediante model.names.
for box in r.boxes:
cls_id = int(box.cls)
conf = float(box.conf)
name = model.names[cls_id]
print(name, round(conf, 2))Visualización de resultados
results[0].plot() devuelve un array de imagen anotado con las cajas y etiquetas dibujadas, listo para mostrarlo o guardarlo. Es muy útil para comprobar rápidamente las detecciones.
annotated = results[0].plot()
import cv2
cv2.imwrite("output.jpg", annotated)Detección en vídeo
Pase un archivo de vídeo o el índice de una webcam y YOLO procesará cada fotograma. Con stream=True, produce los resultados fotograma a fotograma y mantiene bajo el uso de memoria en vídeos largos.
for result in model.predict("clip.mp4", stream=True):
boxes = result.boxes
# process each frameEntrenamiento personalizado
Para detectar sus propias clases de objetos, entrene con un conjunto de datos etiquetado descrito mediante un archivo YAML. Llame a model.train con la configuración de datos, el número de épocas y el tamaño de imagen. YOLO ajusta los pesos preentrenados.
model = YOLO("yolov8n.pt")
model.train(
data="my_dataset.yaml",
epochs=50,
imgsz=640
)El YAML de datos
El YAML del conjunto de datos enumera las carpetas de imágenes de entrenamiento y validación, así como los nombres de las clases. YOLO espera que cada imagen tenga un archivo de etiquetas correspondiente con las coordenadas de las cajas normalizadas para cada objeto.
# my_dataset.yaml
# train: images/train
# val: images/val
# names:
# 0: helmet
# 1: vestComprobación rápida
Ponga a prueba sus conocimientos sobre YOLOv8.
Repaso: detección de objetos con YOLOv8
Cargó un detector preentrenado con YOLO("yolov8n.pt"), ejecutó model.predict(img, conf=0.5) y leyó las detecciones desde results[0].boxes.xyxy, .cls y .conf. Visualizó los resultados con results[0].plot() y ajustó el modelo para clases personalizadas mediante model.train con un YAML de datos.
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 53
- Lecciones
- 225
Preguntas frecuentes
¿La lección «Detección de objetos con YOLOv8» es gratis?
Sí — el texto completo de «Detección de objetos con YOLOv8» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Detección de objetos con YOLOv8»?
YOLO de ultralytics, model.predict(), cuadros delimitadores, filtrado por confianza y entrenamiento personalizado. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Detección de objetos con YOLOv8»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Tensores y Autograd de PyTorch
- Datasets y DataLoaders personalizados
- Construcción y entrenamiento de CNN con PyTorch
- Detección de objetos con YOLOv8