¡Hola, hola, Omesitos! En el último post y video sobre Ultralytics vimos como aplicar la Clasificación de imágenes. Vimos que los modelos de Ultralytics fueron entrenados con el ImageNet, por lo que se pueden identificar 1000 clases o categorías. En esta ocasión vamos a usar los modelos de YOLO para entrenar nuestro propio modelo personalizado, que permitirá clasificar posturas de yoga (aunque podrías aplicarlo en tus propios proyectos), para ello vamos a usar: Ultralytics, Roboflow y Google Colab. Así que… ¡vamos a por ello!
🧠 ¿Cómo crear tu propio modelo personalizado de clasificación de imágenes con YOLOv11?
En este tutorial trabajamos con Ultralytics, Roboflow y Google Colab para crear un modelo de clasificación, que pueda identificar distintas posturas de yoga. A continuación, te comparto el código base que se explicó en el video.
📌 Nota importante: Esta sección contiene únicamente la programación empleada. Si deseas una explicación paso a paso con mayor detalle, no olvides revisar el video completo disponible en el canal.
1. Instalación de librerías necesarias 🛠️
!pip install roboflow ultralytics
2. Descarga de dataset personalizado desde Roboflow 🗂️
Puedes acceder al dataset usado en el video a través de este link.
from roboflow import Roboflow
rf = Roboflow(api_key="YOUR-API-KEY") # ⚠️ Reemplaza con tu propia API KEY
project = rf.workspace("upi-awhgd").project("train-7-pose")
version = project.version(1)
dataset = version.download("folder")
3. Carga del modelo base YOLOv11 de Ultralytics 🤖
Recuerda que puedes escoger cualquier modelo de segmentación que ofrece Ultralytics. En este ejemplo he escogido el modelo medium.
from ultralytics import YOLO
model = YOLO("yolo11m-cls.pt")
4. Entrenamiento del modelo personalizado 🤖🏋️
data_path = "/content/train-7-pose-1"
results = model.train(data=data_path,
epochs=20)
5. ¡A hacer predicciones! 🤖
# Cargamos el modelo ya entrenado
custom_model = YOLO("/content/runs/classify/train/weights/best.pt")
# Realizamos predicciones sobre algunas imágenes
res = custom_model("/content/train-7-pose-1/test/warrior pose")
# Visualizamos los resultados
for r in res:
r.show()
🎥 Bonus: Prueba tu modelo en video en vivo (Webcam)
from ultralytics import YOLO
import cv2
# Cargamos el modelo YOLO
model = YOLO("best.pt")
# Cargamos el video de entrada
video_path = "./video_001.mp4"
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
# Leemos el frame del video
ret, frame = cap.read()
if not ret:
break
frame[:180, :300] = (255, 0, 255)
# Realizamos la inferencia de YOLO sobre el frame
results = model(frame)
# Extraemos los resultados
annotated_frame = results[0].plot()
# 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 te haya sido útil y que te animes a crear tu propio clasificador de imágenes con YOLOv11.
Si quieres ver el proceso paso a paso y en acción, no te olvides de visitar el video completo en el canal. 🎥
¡Cuídate mucho y nos vemos en el siguiente tutorial!


