Icono del sitio OMES

⚽ Crea tu propio SEGMENTADOR y delimita lo que tú quieras con YOLO ¡Fácil y rápido!

⚽ Crea tu propio SEGMENTADOR y delimita lo que tú quieras con YOLO ¡Fácil y rápido!

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

Salir de la versión móvil