---
comments: true
description: Aprende a utilizar Ultralytics YOLO para el seguimiento de objetos en flujos de video. Guías para usar diferentes rastreadores y personalizar la configuración del rastreador.
keywords: Ultralytics, YOLO, seguimiento de objetos, flujos de video, BoT-SORT, ByteTrack, guía de Python, guía de CLI
---

# Seguimiento de Múltiples Objetos con Ultralytics YOLO

<img width="1024" src="https://user-images.githubusercontent.com/26833433/243418637-1d6250fd-1515-4c10-a844-a32818ae6d46.png" alt="Ejemplos de seguimiento de múltiples objetos">

El seguimiento de objetos en el ámbito del análisis de video es una tarea crítica que no solo identifica la ubicación y clase de objetos dentro del cuadro, sino que también mantiene una ID única para cada objeto detectado a medida que avanza el video. Las aplicaciones son ilimitadas, desde vigilancia y seguridad hasta análisis deportivos en tiempo real.

## ¿Por Qué Elegir Ultralytics YOLO para el Seguimiento de Objetos?

La salida de los rastreadores de Ultralytics es consistente con la detección de objetos estándar, pero con el valor añadido de las IDs de objetos. Esto facilita el seguimiento de objetos en flujos de video y la realización de análisis posteriores. Aquí tienes algunas razones por las que deberías considerar usar Ultralytics YOLO para tus necesidades de seguimiento de objetos:

- **Eficiencia:** Procesa flujos de video en tiempo real sin comprometer la precisión.
- **Flexibilidad:** Soporta múltiples algoritmos de seguimiento y configuraciones.
- **Facilidad de Uso:** API simple de Python y opciones CLI para una rápida integración y despliegue.
- **Personalización:** Fácil de usar con modelos YOLO entrenados a medida, permitiendo la integración en aplicaciones específicas del dominio.

<p align="center">
  <br>
  <iframe width="720" height="405" src="https://www.youtube.com/embed/hHyHmOtmEgs?si=VNZtXmm45Nb9s-N-"
    title="Reproductor de video de YouTube" frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    allowfullscreen>
  </iframe>
  <br>
  <strong>Ver:</strong> Detección de Objetos y Seguimiento con Ultralytics YOLOv8.
</p>

## Aplicaciones en el Mundo Real

|                                                           Transporte                                                           |                                                      Venta al por Menor                                                       |                                                        Acuicultura                                                         |
|:------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------:|
| ![Seguimiento de Vehículos](https://github.com/RizwanMunawar/ultralytics/assets/62513924/ee6e6038-383b-4f21-ac29-b2a1c7d386ab) | ![Seguimiento de Personas](https://github.com/RizwanMunawar/ultralytics/assets/62513924/93bb4ee2-77a0-4e4e-8eb6-eb8f527f0527) | ![Seguimiento de Peces](https://github.com/RizwanMunawar/ultralytics/assets/62513924/a5146d0f-bfa8-4e0a-b7df-3c1446cd8142) |
|                                                    Seguimiento de Vehículos                                                    |                                                    Seguimiento de Personas                                                    |                                                    Seguimiento de Peces                                                    |

## Características a Simple Vista

Ultralytics YOLO extiende sus características de detección de objetos para proporcionar un seguimiento de objetos robusto y versátil:

- **Seguimiento en Tiempo Real:** Rastrea sin problemas los objetos en videos de alta frecuencia de cuadros.
- **Soporte de Múltiples Rastreadores:** Elige entre una variedad de algoritmos de seguimiento establecidos.
- **Configuraciones de Rastreador Personalizables:** Adapta el algoritmo de seguimiento para satisfacer requisitos específicos ajustando diversos parámetros.

## Rastreadores Disponibles

Ultralytics YOLO soporta los siguientes algoritmos de seguimiento. Pueden ser habilitados pasando el archivo de configuración YAML relevante como `tracker=tracker_type.yaml`:

* [BoT-SORT](https://github.com/NirAharon/BoT-SORT) - Usa `botsort.yaml` para habilitar este rastreador.
* [ByteTrack](https://github.com/ifzhang/ByteTrack) - Usa `bytetrack.yaml` para habilitar este rastreador.

El rastreador predeterminado es BoT-SORT.

## Seguimiento

Para ejecutar el rastreador en flujos de video, usa un modelo Detect, Segment o Pose entrenado tales como YOLOv8n, YOLOv8n-seg y YOLOv8n-pose.

!!! ejemplo ""

    === "Python"

        ```python
        from ultralytics import YOLO

        # Cargar un modelo oficial o personalizado
        model = YOLO('yolov8n.pt')  # Cargar un modelo oficial Detect
        model = YOLO('yolov8n-seg.pt')  # Cargar un modelo oficial Segment
        model = YOLO('yolov8n-pose.pt')  # Cargar un modelo oficial Pose
        model = YOLO('path/to/best.pt')  # Cargar un modelo entrenado a medida

        # Realizar el seguimiento con el modelo
        results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)  # Seguimiento con el rastreador predeterminado
        results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")  # Seguimiento con el rastreador ByteTrack
        ```

    === "CLI"

        ```bash
        # Realizar seguimiento con varios modelos usando la interfaz de línea de comandos
        yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo oficial Detect
        yolo track model=yolov8n-seg.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo oficial Segment
        yolo track model=yolov8n-pose.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo oficial Pose
        yolo track model=path/to/best.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo entrenado a medida

        # Realizar seguimiento usando el rastreador ByteTrack
        yolo track model=path/to/best.pt tracker="bytetrack.yaml"
        ```

Como se puede ver en el uso anterior, el seguimiento está disponible para todos los modelos Detect, Segment y Pose ejecutados en videos o fuentes de transmisión.

## Configuración

### Argumentos de Seguimiento

La configuración de seguimiento comparte propiedades con el modo Predict, como `conf`, `iou` y `show`. Para configuraciones adicionales, consulta la página del modelo [Predict](https://docs.ultralytics.com/modes/predict/).

!!! ejemplo ""

    === "Python"

        ```python
        from ultralytics import YOLO

        # Configurar los parámetros de seguimiento y ejecutar el rastreador
        model = YOLO('yolov8n.pt')
        results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.3, iou=0.5, show=True)
        ```

    === "CLI"

        ```bash
        # Configurar parámetros de seguimiento y ejecutar el rastreador usando la interfaz de línea de comandos
        yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
        ```

### Selección de Rastreador

Ultralytics también te permite usar un archivo de configuración de rastreador modificado. Para hacerlo, simplemente haz una copia de un archivo de configuración de rastreador (por ejemplo, `custom_tracker.yaml`) de [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers) y modifica cualquier configuración (excepto el `tracker_type`) según tus necesidades.

!!! ejemplo ""

    === "Python"

        ```python
        from ultralytics import YOLO

        # Cargar el modelo y ejecutar el rastreador con un archivo de configuración personalizado
        model = YOLO('yolov8n.pt')
        results = model.track(source="https://youtu.be/LNwODJXcvt4", tracker='custom_tracker.yaml')
        ```

    === "CLI"

        ```bash
        # Cargar el modelo y ejecutar el rastreador con un archivo de configuración personalizado usando la interfaz de línea de comandos
        yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
        ```

Para obtener una lista completa de los argumentos de seguimiento, consulta la página [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers).

## Ejemplos en Python

### Bucle de Seguimiento Persistente

Aquí hay un script en Python que utiliza OpenCV (`cv2`) y YOLOv8 para ejecutar el seguimiento de objetos en fotogramas de video. Este script aún asume que ya has instalado los paquetes necesarios (`opencv-python` y `ultralytics`). El argumento `persist=True` le indica al rastreador que la imagen o fotograma actual es el siguiente en una secuencia y que espera rastros de la imagen anterior en la imagen actual.

!!! ejemplo "Bucle de transmisión en vivo con seguimiento"

    ```python
    import cv2
    from ultralytics import YOLO

    # Cargar el modelo YOLOv8
    model = YOLO('yolov8n.pt')

    # Abrir el archivo de video
    video_path = "path/to/video.mp4"
    cap = cv2.VideoCapture(video_path)

    # Bucle a través de los fotogramas del video
    while cap.isOpened():
        # Leer un fotograma del video
        success, frame = cap.read()

        if success:
            # Ejecutar seguimiento YOLOv8 en el fotograma, persistiendo los rastreos entre fotogramas
            results = model.track(frame, persist=True)

            # Visualizar los resultados en el fotograma
            annotated_frame = results[0].plot()

            # Mostrar el fotograma anotado
            cv2.imshow("Seguimiento YOLOv8", annotated_frame)

            # Romper el bucle si se presiona 'q'
            if cv2.waitKey(1) & 0xFF == ord("q"):
                break
        else:
            # Romper el bucle si se alcanza el final del video
            break

    # Liberar el objeto de captura de video y cerrar la ventana de visualización
    cap.release()
    cv2.destroyAllWindows()
    ```

Toma en cuenta el cambio de `model(frame)` a `model.track(frame)`, que habilita el seguimiento de objetos en lugar de simplemente la detección. Este script modificado ejecutará el rastreador en cada fotograma del video, visualizará los resultados y los mostrará en una ventana. El bucle puede ser terminado presionando 'q'.

## Contribuir con Nuevos Rastreadores

¿Eres experto en seguimiento de múltiples objetos y has implementado o adaptado exitosamente un algoritmo de seguimiento con Ultralytics YOLO? Te invitamos a contribuir en nuestra sección de Rastreadores en [ultralytics/cfg/trackers](https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/trackers)! Tus aplicaciones en el mundo real y soluciones podrían ser invaluables para los usuarios que trabajan en tareas de seguimiento.

Al contribuir en esta sección, ayudarás a ampliar el alcance de las soluciones de seguimiento disponibles dentro del marco de trabajo de Ultralytics YOLO, añadiendo otra capa de funcionalidad y utilidad para la comunidad.

Para iniciar tu contribución, por favor consulta nuestra [Guía de Contribución](https://docs.ultralytics.com/help/contributing) para obtener instrucciones completas sobre cómo enviar una Solicitud de Extracción (PR) 🛠️. ¡Estamos emocionados de ver lo que traes a la mesa!

Juntos, vamos a mejorar las capacidades de seguimiento del ecosistema Ultralytics YOLO 🙏!
