You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

11 KiB

comments description keywords
true Aprenda a usar o Ultralytics YOLO para rastreamento de objetos em fluxos de vídeo. Guias para usar diferentes rastreadores e personalizar configurações de rastreador. Ultralytics, YOLO, rastreamento de objetos, fluxos de vídeo, BoT-SORT, ByteTrack, guia em Python, guia CLI

Rastreamento de Múltiplos Objetos com Ultralytics YOLO

Exemplos de rastreamento de múltiplos objetos

Rastreamento de objetos no âmbito da análise de vídeo é uma tarefa crucial que não apenas identifica a localização e classe dos objetos dentro do quadro, mas também mantém um ID único para cada objeto detectado à medida que o vídeo avança. As aplicações são ilimitadas — variando desde vigilância e segurança até análises esportivas em tempo real.

Por Que Escolher Ultralytics YOLO para Rastreamento de Objetos?

A saída dos rastreadores da Ultralytics é consistente com a detecção de objetos padrão, mas com o valor agregado dos IDs dos objetos. Isso facilita o rastreamento de objetos em fluxos de vídeo e a realização de análises subsequentes. Aqui está o porquê de considerar usar Ultralytics YOLO para suas necessidades de rastreamento de objetos:

  • Eficiência: Processa fluxos de vídeo em tempo real sem comprometer a precisão.
  • Flexibilidade: Suporta múltiplos algoritmos de rastreamento e configurações.
  • Facilidade de Uso: Simples API em Python e opções CLI para rápida integração e implantação.
  • Personalização: Fácil de usar com modelos YOLO treinados personalizados, permitindo integração em aplicações específicas de domínio.



Assistir: Detecção e Rastreamento de Objetos com Ultralytics YOLOv8.

Aplicações no Mundo Real

Transporte Varejo Aquicultura
Rastreamento de Veículos Rastreamento de Pessoas Rastreamento de Peixes
Rastreamento de Veículos Rastreamento de Pessoas Rastreamento de Peixes

Características em Destaque

Ultralytics YOLO estende suas funcionalidades de detecção de objetos para fornecer rastreamento de objetos robusto e versátil:

  • Rastreamento em Tempo Real: Acompanha objetos de forma contínua em vídeos de alta taxa de quadros.
  • Suporte a Múltiplos Rastreadores: Escolha dentre uma variedade de algoritmos de rastreamento estabelecidos.
  • Configurações de Rastreador Personalizáveis: Adapte o algoritmo de rastreamento para atender requisitos específicos ajustando vários parâmetros.

Rastreadores Disponíveis

Ultralytics YOLO suporta os seguintes algoritmos de rastreamento. Eles podem ser ativados passando o respectivo arquivo de configuração YAML, como tracker=tracker_type.yaml:

  • BoT-SORT - Use botsort.yaml para ativar este rastreador.
  • ByteTrack - Use bytetrack.yaml para ativar este rastreador.

O rastreador padrão é o BoT-SORT.

Rastreamento

Para executar o rastreador em fluxos de vídeo, use um modelo Detect, Segment ou Pose treinado, como YOLOv8n, YOLOv8n-seg e YOLOv8n-pose.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar um modelo oficial ou personalizado
    model = YOLO('yolov8n.pt')  # Carregar um modelo Detect oficial
    model = YOLO('yolov8n-seg.pt')  # Carregar um modelo Segment oficial
    model = YOLO('yolov8n-pose.pt')  # Carregar um modelo Pose oficial
    model = YOLO('caminho/para/melhor.pt')  # Carregar um modelo treinado personalizado

    # Realizar rastreamento com o modelo
    results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)  # Rastreamento com rastreador padrão
    results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")  # Rastreamento com o rastreador ByteTrack
    ```

=== "CLI"

    ```bash
    # Realizar rastreamento com vários modelos usando a interface de linha de comando
    yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo Detect oficial
    yolo track model=yolov8n-seg.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo Segment oficial
    yolo track model=yolov8n-pose.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo Pose oficial
    yolo track model=caminho/para/melhor.pt source="https://youtu.be/LNwODJXcvt4"  # Modelo treinado personalizado

    # Rastrear usando o rastreador ByteTrack
    yolo track model=caminho/para/melhor.pt tracker="bytetrack.yaml"
    ```

Como pode ser visto no uso acima, o rastreamento está disponível para todos os modelos Detect, Segment e Pose executados em vídeos ou fontes de streaming.

Configuração

Argumentos de Rastreamento

A configuração de rastreamento compartilha propriedades com o modo Predict, como conf, iou, e show. Para mais configurações, consulte a página de Predict model page.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Configurar os parâmetros de rastreamento e executar o 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 rastreamento e executar o rastreador usando a interface de linha de comando
    yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" conf=0.3, iou=0.5 show
    ```

Seleção de Rastreador

A Ultralytics também permite que você use um arquivo de configuração de rastreador modificado. Para fazer isso, simplesmente faça uma cópia de um arquivo de configuração de rastreador (por exemplo, custom_tracker.yaml) de ultralytics/cfg/trackers e modifique quaisquer configurações (exceto tracker_type) conforme suas necessidades.

!!! exemplo ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # Carregar o modelo e executar o rastreador com um arquivo de configuração personalizado
    model = YOLO('yolov8n.pt')
    results = model.track(source="https://youtu.be/LNwODJXcvt4", tracker='custom_tracker.yaml')
    ```

=== "CLI"

    ```bash
    # Carregar o modelo e executar o rastreador com um arquivo de configuração personalizado usando a interface de linha de comando
    yolo track model=yolov8n.pt source="https://youtu.be/LNwODJXcvt4" tracker='custom_tracker.yaml'
    ```

Para uma lista completa de argumentos de rastreamento, consulte a página ultralytics/cfg/trackers.

Exemplos em Python

Loop de Persistência de Rastreamentos

Aqui está um script em Python usando OpenCV (cv2) e YOLOv8 para executar rastreamento de objetos em quadros de vídeo. Este script ainda pressupõe que você já instalou os pacotes necessários (opencv-python e ultralytics). O argumento persist=True indica ao rastreador que a imagem ou quadro atual é o próximo de uma sequência e que espera rastreamentos da imagem anterior na imagem atual.

!!! exemplo "Loop de fluxo com rastreamento"

```python
import cv2
from ultralytics import YOLO

# Carregar o modelo YOLOv8
model = YOLO('yolov8n.pt')

# Abrir o arquivo de vídeo
video_path = "caminho/para/video.mp4"
cap = cv2.VideoCapture(video_path)

# Repetir através dos quadros de vídeo
while cap.isOpened():
    # Ler um quadro do vídeo
    success, frame = cap.read()

    if success:
        # Executar rastreamento YOLOv8 no quadro, persistindo rastreamentos entre quadros
        results = model.track(frame, persist=True)

        # Visualizar os resultados no quadro
        annotated_frame = results[0].plot()

        # Exibir o quadro anotado
        cv2.imshow("Rastreamento YOLOv8", annotated_frame)

        # Interromper o loop se 'q' for pressionado
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Interromper o loop se o fim do vídeo for atingido
        break

# Liberar o objeto de captura de vídeo e fechar a janela de exibição
cap.release()
cv2.destroyAllWindows()
```

Note a mudança de model(frame) para model.track(frame), que habilita o rastreamento de objetos ao invés de detecção simples. Este script modificado irá executar o rastreador em cada quadro do vídeo, visualizar os resultados e exibi-los em uma janela. O loop pode ser encerrado pressionando 'q'.

Contribuir com Novos Rastreadores

Você é proficiente em rastreamento de múltiplos objetos e implementou ou adaptou com sucesso um algoritmo de rastreamento com Ultralytics YOLO? Convidamos você a contribuir para nossa seção de Rastreadores em ultralytics/cfg/trackers! Suas aplicações do mundo real e soluções podem ser inestimáveis para usuários trabalhando em tarefas de rastreamento.

Ao contribuir para esta seção, você ajuda a expandir o escopo de soluções de rastreamento disponíveis dentro do framework Ultralytics YOLO, adicionando outra camada de funcionalidade e utilidade para a comunidade.

Para iniciar sua contribuição, por favor, consulte nosso Guia de Contribuição para instruções completas sobre como enviar um Pedido de Pull (PR) 🛠. Estamos ansiosos para ver o que você traz para a mesa!

Juntos, vamos aprimorar as capacidades de rastreamento do ecossistema Ultralytics YOLO 🙏!