Object Tracking
O rastreamento de objetos associa detecções entre quadros de vídeo e mantém um ID persistente em cada objeto durante o movimento e as oclusões. Saiba como os rastreadores funcionam e veja o código.
O rastreamento de objetos é uma tarefa de visão computacional que localiza objetos em quadros de vídeo sucessivos e conecta essas localizações em trajetórias, atribuindo a cada objeto um ID persistente. Um carro que entra no quadro como ID 7 continua sendo ID 7 enquanto se move, vira e passa brevemente atrás de um ônibus, permitindo que o sistema o conte uma vez, meça sua velocidade e estime para onde está indo. O rastreamento de objeto único acompanha um alvo escolhido no primeiro quadro, enquanto o rastreamento de múltiplos objetos (MOT), a forma mais comum na prática, acompanha simultaneamente todos os objetos das classes de interesse.
Como funciona o rastreamento de objetos#
A maioria dos rastreadores de múltiplos objetos usa rastreamento por detecção: um modelo de detecção de objetos encontra objetos em cada quadro e um rastreador conecta essas detecções ao longo do tempo. As ferramentas do rastreador incluem um modelo de movimento, geralmente um filtro de Kalman, a sobreposição de caixas medida pela interseção sobre união (IoU), embeddings de aparência opcionais de um modelo de reidentificação de objetos (Re-ID) e um algoritmo de atribuição linear, como o algoritmo húngaro. A cada quadro, ele executa quatro etapas:
- Prever: Partindo da hipótese de velocidade constante, o filtro de Kalman prevê onde a caixa de cada trajetória existente aparecerá no novo quadro.
- Pontuar: O rastreador cria uma matriz de custos entre as trajetórias previstas e as novas detecções, com base na IoU, no movimento e, em alguns rastreadores, na similaridade de aparência.
- Atribuir: O algoritmo seleciona as correspondências um a um de menor custo.
- Gerenciar trajetórias: As trajetórias correspondentes atualizam seu estado; as detecções não correspondentes com alta confiança iniciam novas trajetórias, e as trajetórias sem correspondência são mantidas como "perdidas" por um buffer de quadros para que possam ser recuperadas após uma oclusão.
A etapa do ciclo de vida é o que mantém os IDs estáveis quando as detecções desaparecem por alguns quadros:
O projeto principal remonta ao SORT, de 2016, que usava apenas um filtro de Kalman, custos de IoU e o algoritmo húngaro. O DeepSORT adicionou características de aparência para recuperar identidades após oclusões, e o ByteTrack melhorou a revocação ao também combinar detecções de baixa confiança, muitas vezes de objetos parcialmente ocluídos, em uma segunda passagem. Rastreadores posteriores adicionaram compensação do movimento da câmera para câmeras móveis e regras de associação mais elaboradas para multidões.
Rastreamento versus detecção#
Um detector não mantém estado: processa cada quadro independentemente, então o carro do quadro 1 e o carro do quadro 2 são detecções sem relação entre si. O rastreamento adiciona estado que transporta identidades de um quadro para outro, algo de que dependem a contagem, o tempo de permanência e a estimativa de velocidade. O rastreamento também difere do rastreamento de pontos e do fluxo óptico, que acompanham pixels ou pontos de superfície individuais sem agrupá-los em objetos rotulados.
O modo de rastreamento do Ultralytics YOLO adiciona esse estado a qualquer modelo de detecção YOLO26, de segmentação, de pose ou de caixa orientada, com seis rastreadores integrados, incluindo ByteTrack, BoT-SORT e o padrão, TrackTrack:
from ultralytics import YOLO
# Load a YOLO26 detector; track() pairs it with a tracker that assigns persistent IDs
model = YOLO("yolo26n.pt")
detections, track_ids = 0, set()
for result in model.track(
"https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov", stream=True
):
detections += len(result.boxes)
if result.boxes.is_track:
track_ids.update(result.boxes.id.int().tolist())
print(f"Detections summed over all frames: {detections}")
print(f"Unique tracked objects: {len(track_ids)}")A contagem de IDs únicos é menor que a soma das detecções porque cada ID representa um objeto em todos os quadros em que aparece.
Aplicações no mundo real#
- Monitoramento de tráfego e estimativa de velocidade: Rastrear cada veículo entre quadros permite fazer contagens, analisar o fluxo por faixa e estimar velocidades com base na distância percorrida pela trajetória por segundo.
- Análise de varejo: Câmeras de lojas rastreiam clientes para medir o fluxo de pessoas, o tamanho das filas e o tempo de permanência diante dos expositores, sem contar a mesma pessoa duas vezes.
- Análise esportiva: Emissoras e treinadores rastreiam jogadores e a bola para calcular a distância percorrida, a velocidade e as formações das equipes.
- Veículos autônomos e robótica: Sistemas de percepção rastreiam pedestres e veículos para estimar suas velocidades e prever onde estarão no segundo seguinte.
Como medir a qualidade do rastreamento#
Os rastreadores são comparados em benchmarks como MOT17, MOT20, para multidões densas, e DanceTrack, para pessoas com aparência semelhante que se movem de forma imprevisível. MOTA reúne falsos negativos, falsos positivos e mudanças de identidade em uma pontuação dominada pela qualidade da detecção; IDF1 mede com que consistência cada objeto verdadeiro mantém um único ID; e HOTA equilibra os dois aspectos pela média geométrica da precisão da detecção e da precisão da associação.










