Crea tu propio clasificador de imágenes con YOLOv11 (Ejemplo con posturas de yoga 🧘)
¡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!