¡Hola, hola, Omesitos! En el último post y video sobre Ultralytics vimos como aplicar la Segmentación de Instancias, gracias a los modelos preentrenados de YOLO11, los cuales, al igual que en la detección de objetos, fueron entrenados con el COCO Dataset, el cual contiene 80 clases. En esta ocasión vamos a ver como podemos crear nuestro propio modelo para segmentar distintas áreas de una cancha de fútbol, para ello vamos a usar Ultralytics, Roboflow y Google Colab. Así que… ¡vamos a por ello!
🧠 ¿Cómo crear tu propio modelo personalizado de segmentación de instancias con YOLOv11?
En este tutorial trabajamos con Ultralytics, Roboflow y Google Colab para crear un modelo de segmentación, que pueda rodear a distintos objetos o áreas. 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("sahil-kenia-lmrjp").project("football-pitch-segmentation-jslvy") version = project.version(3) dataset = version.download("yolov11")
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-seg.pt")
4. Entrenamiento del modelo personalizado 🤖🏋️
data_path = "/content/football-pitch-segmentation-3/data.yaml" results = model.train(data=data_path, epochs=15, imgsz=640)
5. ¡A hacer predicciones! 🤖
# Cargamos el modelo ya entrenado custom_model = YOLO("/content/runs/segment/train/weights/best.pt") # Realizamos predicciones sobre algunas imágenes res = custom_model("/content/football-pitch-segmentation-3/test/images") # 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_soccer.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 # 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 segmentador de instancias 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!