Rastreamento de Objetos

Visão geral

O rastreamento de objetos (object tracking) estima a localização (por exemplo, caixa delimitadora (bounding box) ou máscara (mask)) e, com frequência, a identidade (identity) de um ou mais objetos ao longo do tempo em um vídeo. Diferentemente da Detecção de Objetos por quadro, o rastreamento precisa conectar observações entre quadros, mantendo trajetórias consistentes apesar de desafios como:

  • Oclusão (occlusion) (objetos parcialmente/totalmente ocultos)
  • Movimento (motion) (movimento rápido, mudanças bruscas de direção, movimento de câmera)
  • Mudanças de aparência (appearance changes) (pose, iluminação, escala, desfoque)
  • Aglomeração e interações (crowding and interactions) (objetos se sobrepõem ou trocam de posição)

O rastreamento é um bloco fundamental em Compreensão de Vídeo, viabilizando tarefas posteriores como análise de comportamento, analítica de tráfego e raciocínio multiagente.

Configurações do problema e saídas

Rastreamento de Objeto Único (Single-Object Tracking, SOT)

Objetivo: Rastrear um alvo dado uma inicialização (geralmente uma caixa delimitadora) no primeiro quadro.

  • Entrada: Vídeo + região inicial do alvo
  • Saída: Localização do alvo por quadro (caixa/máscara), às vezes com uma pontuação de confiança
  • Uso típico: Rastreamento com humano no loop, acompanhamento por drone, sobreposições de RA

Métodos de SOT frequentemente se concentram em seguir de forma robusta o mesmo alvo mesmo quando existem distrações com aparência semelhante.

Rastreamento de Múltiplos Objetos (Multi-Object Tracking, MOT)

Objetivo: Rastrear múltiplos objetos e manter IDs consistentes ao longo do tempo.

  • Entrada: Vídeo (às vezes com categorias conhecidas como “pessoa”, “carro”)
  • Saída: Um conjunto de trilhas, cada uma sendo uma sequência temporalmente ordenada de estados (caixa/máscara + ID)

O MOT adiciona uma dificuldade-chave além do SOT: manutenção de identidade. Quando dois pedestres se cruzam, um rastreador deve evitar trocar seus IDs.

Rastreamento online vs. offline

  • Rastreamento online: Processa quadros sequencialmente sem informação futura (baixa latência; usado em robótica, analítica em tempo real).
  • Rastreamento offline (em lote): Pode usar quadros futuros para suavização e associação global (frequentemente maior precisão; usado em pós-processamento e pipelines de anotação de vídeo).

Rastreamento de curto prazo vs. longo prazo

  • Curto prazo: Assume que o alvo geralmente está visível; foca em localização precisa.
  • Longo prazo: Deve lidar com desaparecimento do alvo e redetecção (por exemplo, pessoa sai e reentra na cena).

Representação: caixas, máscaras, pontos-chave

  • Rastreamento por caixa delimitadora: Mais comum em benchmarks de MOT.
  • Rastreamento por segmentação: Rastreia máscaras precisas em nível de pixel (útil para edição de vídeo, manipulação robótica).
  • Rastreamento de pose/pontos-chave: Rastreia estruturas articuladas (humanos/animais) usando pontos-chave.

Ideia central: rastreamento por detecção (tracking-by-detection) (o paradigma dominante em MOT)

A maioria dos sistemas modernos de MOT segue rastreamento por detecção (tracking-by-detection):

  1. Execute um detector de objetos em cada quadro (por exemplo, detector de pessoas).
  2. Prediga onde as trilhas existentes devem estar no novo quadro (modelo de movimento).
  3. Combine detecções com trilhas preditas (associação de dados (data association)).
  4. Atualize os estados das trilhas; crie novas trilhas; encerre trilhas perdidas.

Essa decomposição é popular porque a qualidade de detecção melhorou dramaticamente com aprendizado profundo, e a associação pode ser projetada para velocidade e robustez.

Exemplo prático: rastrear carros em um cruzamento

  • O detector produz caixas para carros a cada quadro.
  • O rastreador prediz a próxima posição de cada carro usando sua velocidade.
  • A associação combina detecções com posições preditas.
  • Os IDs persistem mesmo quando carros passam brevemente atrás de um ônibus (oclusão).

A saída pode se parecer com:

  • Trilha #12: (x, y, w, h) ao longo dos quadros 1…240
  • Trilha #27: (x, y, w, h) ao longo dos quadros 40…240

Fundamentos probabilísticos: modelos de espaço de estados e filtragem bayesiana

Muitos rastreadores modelam um objeto com um estado (state) oculto (x_t) (por exemplo, posição e velocidade) e observações (observations) ruidosas (z_t) (detecções):

  • Dinâmica (modelo de movimento): (x_t = f(x_{t-1}) + \text{process noise})
  • Modelo de medição: (z_t = h(x_t) + \text{measurement noise})

O rastreador estima recursivamente o posterior (p(x_t \mid z_{1:t})), que é a ideia central por trás da filtragem bayesiana (Bayesian filtering) (veja também Filtragem Bayesiana).

Filtros de Kalman (rastreamento linear-gaussiano)

O Filtro de Kalman (Kalman Filter) é uma escolha clássica quando:

  • os modelos de movimento/medição são aproximadamente lineares, e
  • o ruído é aproximadamente gaussiano.

Em MOT, um estado comum é:

[ x = [c_x, c_y, w, h, \dot{c_x}, \dot{c_y}, \dot{w}, \dot{h}] ]

A filtragem de Kalman fornece:

  • Predição: estado esperado seguinte + incerteza
  • Atualização: fundir detecção com predição com base na incerteza

Essa incerteza permite gating (gating) (rejeição de correspondências improváveis) usando distância de Mahalanobis (Mahalanobis distance).

Filtros de Kalman Estendido/Unscented

Quando o movimento é não linear (por exemplo, veículos fazendo curvas), variantes do Kalman linearizam ou aproximam dinâmicas não lineares:

  • EKF: linearização via jacobianos
  • UKF: aproximação por pontos sigma (sigma-point)

Filtros de partículas (incerteza não gaussiana ou multimodal)

Um Filtro de Partículas (Particle Filter) representa o posterior com amostras ponderadas. Ele pode lidar com:

  • movimento não linear,
  • ruído não gaussiano,
  • distribuições multimodais (por exemplo, localização ambígua do alvo durante oclusão).

Filtros de partículas são comuns em robótica e cenários de SOT com pistas complexas de aparência, mas podem ser computacionalmente mais pesados do que filtros de Kalman.

Associação de dados: conectando detecções a trilhas

Em MOT, o desafio central é a atribuição (assignment): qual detecção pertence a qual trilha existente?

Estratégias comuns de associação

  • Correspondência gulosa (greedy matching): rápida, mas pode ser subótima em cenas lotadas.
  • Correspondência bipartida global: resolver uma atribuição de custo mínimo com o Algoritmo Húngaro (Hungarian Algorithm).
  • Abordagens probabilísticas de múltiplas hipóteses: JPDA/MHT mantêm múltiplas associações possíveis (precisas, porém custosas).

Construindo o custo de associação

A associação tipicamente combina movimento e aparência:

  • Consistência de movimento
    • Interseção sobre União (Intersection-over-Union, IoU) entre a caixa predita e a detecção
    • Distância de Mahalanobis usando a incerteza do Kalman
  • Similaridade de aparência
    • distância cosseno (cosine distance) entre vetores de embedding (embedding vectors) de um modelo de reidentificação (ReID, re-identification) (veja Reidentificação de Pessoas)
  • Outras pistas
    • consistência de rótulo de classe (pessoa vs carro)
    • mudanças de tamanho/forma
    • pistas de profundidade (se disponíveis)

Um custo típico pode ser:

[ \text{cost}(i,j) = \alpha \cdot (1-\text{IoU}) + (1-\alpha)\cdot \text{appearance_distance} ]

Gerenciamento de trilhas (nascimento, confirmação, morte)

Sistemas reais devem decidir quando:

  • iniciar uma nova trilha (detecção não associada)
  • confirmá-la (após N correspondências consistentes para reduzir falsos positivos)
  • marcar como perdida (trilha temporariamente não associada durante oclusão)
  • encerrar (perdida por tempo demais)

Essa lógica influencia fortemente a estabilidade de IDs e a criação de trilhas falsas.

Pseudo-código mínimo: loop de MOT no estilo SORT

# Pseudocode: tracking-by-detection with Kalman + Hungarian assignment

tracks = []  # each track has: kalman_state, id, age, hits, time_since_update

for frame in video:
    detections = detector(frame)  # list of boxes with scores

    # 1) Predict step for all existing tracks
    for trk in tracks:
        trk.predict()  # Kalman predict; updates predicted box and covariance

    # 2) Compute association cost matrix (e.g., 1 - IoU)
    cost = compute_cost_matrix(tracks, detections)

    # 3) Solve assignment
    matches, unmatched_tracks, unmatched_dets = hungarian_assign(cost, threshold=0.7)

    # 4) Update matched tracks with detections
    for t_idx, d_idx in matches:
        tracks[t_idx].update(detections[d_idx])  # Kalman update + appearance update

    # 5) Handle unmatched tracks (mark lost)
    for t_idx in unmatched_tracks:
        tracks[t_idx].mark_missed()

    # 6) Create new tracks from unmatched detections
    for d_idx in unmatched_dets:
        if detections[d_idx].score > 0.5:
            tracks.append(new_track(detections[d_idx]))

    # 7) Prune dead tracks
    tracks = [t for t in tracks if not t.is_dead()]

Este template fundamenta muitas baselines clássicas de MOT: SORT (movimento + IoU) e DeepSORT (adiciona embeddings profundos de aparência).

Abordagens de aprendizado profundo

O aprendizado profundo entra no rastreamento de duas formas principais:

  1. melhores características (features) para associação/localização
  2. modelos de ponta a ponta (end-to-end) que unificam detecção e rastreamento

SOT profundo: aprender a localizar um alvo dado

Muitos rastreadores de SOT aprendem uma função de similaridade entre:

  • um template do alvo (do primeiro quadro), e
  • regiões de busca em quadros posteriores.

Famílias comuns:

  • rastreadores siameses (Siamese trackers) (veja Redes Siamesas (Siamese Networks)): aprendem embeddings e correlação cruzada para encontrar o alvo de forma eficiente.
  • rastreadores baseados em Transformer (Transformer-based trackers) (veja Arquitetura Transformer (Transformer Architecture)): modelam contexto global e lidam melhor com distrações/oclusão, geralmente com maior custo computacional.
  • filtros de correlação discriminativos (Discriminative correlation filters, DCF): mais antigos, porém eficientes; às vezes combinados com características profundas.

Modo de falha do SOT: deriva (drift) — o rastreador gradualmente “gruda” no objeto/região de fundo errados.

MOT profundo: melhorando associação e robustez

Direções representativas (conceitualmente, não exaustivas):

  • Baselines de movimento + associação
    • SORT: Kalman + correspondência por IoU
    • DeepSORT: adiciona embeddings de aparência aprendidos
  • Melhorias de associação centradas na detecção
    • Abordagens que associam detecções de alta confiança e de baixa confiança podem reduzir correspondências perdidas durante falhas breves do detector.
  • Detecção e embedding conjuntas
    • Redes que produzem tanto detecções quanto um embedding de identidade em uma única passagem direta (útil para eficiência).
  • Transformers de ponta a ponta para rastreamento
    • Modelos que propagam consultas de objetos entre quadros, produzindo identidades de trilha mais diretamente (frequentemente chamados de “MOT transformers” na literatura).

Rastreamento com máscaras (segmentação de instâncias em vídeo (video instance segmentation))

Quando é necessário rastreamento em nível de pixel (pixel-level), rastreadores conectam máscaras de instâncias entre quadros:

  • a associação usa IoU de máscara e/ou embeddings
  • o movimento pode ser estimado via Fluxo Óptico (Optical Flow) ou propagação aprendida

Isso é comum em edição de vídeo, manipulação autônoma e composição de RA.

Desafios práticos e truques de engenharia

Tratamento de oclusão

Durante oclusão:

  • confiar mais na predição de movimento e na incerteza (a covariância do Kalman cresce)
  • manter trilhas “vivas” por uma janela de tolerância (por exemplo, 30 quadros)
  • reidentificar quando o objeto reaparece usando embeddings de aparência

Um bom sistema de MOT evita tanto:

  • fragmentação (fragmentation) (um objeto real vira muitas trilhas curtas)
  • trocas de ID (ID switches) (duas trilhas trocam identidades)

Movimento de câmera e compensação de ego-movimento (ego-motion)

Em vídeos com câmera em movimento (dashcams, drones), modelos simples de velocidade constante em coordenadas de imagem podem falhar. Opções:

  • estabilizar quadros ou compensar com homografia (homography) estimada
  • incorporar IMU/odometria (odometry) se disponível
  • usar modelos de movimento aprendidos ou características de fluxo

Restrições de tempo real

Para implantação:

  • detectores dominam o tempo de execução; escolha um ponto adequado de velocidade/precisão
  • a associação geralmente é barata (Húngaro é (O(n^3)), mas (n) por quadro costuma ser gerenciável)
  • embeddings adicionam custo; batching e backbones (backbones) leves ajudam

Mudança de domínio (domain shift)

Rastreadores treinados em filmagens de benchmark podem degradar em novos ambientes (cenas noturnas, câmeras térmicas). Mitigações práticas:

  • ajustar finamente (fine-tune) detector/ReID com dados do domínio
  • usar aumento de dados (data augmentation) que imite as condições-alvo (desfoque, pouca luz)
  • calibrar limiares de confiança e lógica de confirmação de trilha

Métricas de avaliação e benchmarks

A avaliação de rastreamento é sutil porque você se importa com:

  1. qualidade de detecção ao longo do tempo
  2. consistência de identidade

Métricas CLEAR MOT: MOTA e MOTP

MOTA (Multiple Object Tracking Accuracy) combina três fontes de erro:

[ \text{MOTA} = 1 - \frac{\text{FN} + \text{FP} + \text{IDSW}}{\text{GT}} ]

  • FN: objetos perdidos
  • FP: falsos positivos
  • IDSW: trocas de identidade
  • GT: número de objetos de verdade de terreno (ground truth) ao longo dos quadros

Observações:

  • MOTA pode se tornar negativo se os erros excederem GT.
  • Como mistura múltiplos fatores, melhorias na detecção podem dominar mudanças na estabilidade de ID.

MOTP mede a precisão de localização (por exemplo, IoU média das caixas correspondidas). Na prática, benchmarks mais novos frequentemente enfatizam métricas de ID com mais força do que MOTP.

Métricas de identidade: IDF1

IDF1 mede quão bem as identidades são preservadas:

[ \text{IDF1} = \frac{2\cdot \text{IDTP}}{2\cdot \text{IDTP} + \text{IDFP} + \text{IDFN}} ]

Ela recompensa trilhas longas e consistentes e penaliza fragmentação de ID e efeitos de troca de identidade mais diretamente do que MOTA.

HOTA: balanceando detecção e associação

HOTA (Higher Order Tracking Accuracy) foi introduzida para equilibrar melhor:

  • acurácia de detecção e
  • acurácia de associação

Em vez de colapsar todos os erros em um termo linear (como MOTA), HOTA avalia a qualidade da associação ao longo de limiares de IoU e fornece uma visão mais interpretável do trade-off detecção–associação.

Métricas específicas de SOT

Benchmarks de objeto único frequentemente usam:

  • Precisão (Precision) (erro da localização do centro com limiar)
  • Sucesso / AUC (área do gráfico de sucesso baseado em IoU)
  • EAO (Expected Average Overlap) em alguns desafios de rastreamento

Benchmarks (exemplos)

Conjuntos de dados comumente referenciados incluem:

  • MOTChallenge (MOT de pedestres)
  • KITTI tracking (cenas de direção)
  • BDD100K tracking (direção diversa)
  • OTB / LaSOT (focados em SOT)

Ao comparar resultados, sempre verifique:

  • se o método é online vs offline
  • qualidade do detector e dados de treino (enorme fator de confusão)
  • se são usadas detecções públicas ou detectores privados

Aplicações

O rastreamento de objetos é amplamente implantado em diversos domínios:

  • Direção autônoma e robótica: rastrear veículos, pedestres, ciclistas para predição e planejamento.
  • Vigilância por vídeo e analítica de varejo: contagem de pessoas, tempo de permanência, estimativa de filas.
  • Analítica esportiva: rastreamento de jogadores e bola, análise tática, extração de melhores momentos.
  • Interação humano-computador e AR/VR: ancoragem estável de sobreposições, rastreamento de mãos/objetos.
  • Imagem médica e científica: rastreamento de células em microscopia, rastreamento de partículas em experimentos.
  • Edição de vídeo e efeitos visuais (VFX): auxílio à rotoscopia (rotoscoping), seleção de objetos entre quadros.

Modos de falha comuns e checklist de depuração

Modos de falha típicos

  • Trocas de ID: dois objetos semelhantes cruzam caminhos.
  • Deriva (SOT): o rastreador lentamente se desloca para o fundo/distração.
  • Fragmentação: falhas do detector causam trilhas quebradas.
  • Trilhas duplicadas: um objeto recebe múltiplos IDs (frequentemente devido a falha de associação).

Passos práticos de depuração

  • Visualize correspondências quadro a quadro (mostre caixas preditas, detecções, atribuições).
  • Inspecione custos de associação (IoU vs aparência): os gates estão rigorosos demais?
  • Ajuste:
    • limiares de pontuação de detecção (estratégias que associam pontuações altas vs baixas podem ajudar)
    • janelas de confirmação e encerramento de trilha
    • ruído do modelo de movimento (covariância de processo/medição)
  • Avalie separadamente:
    • desempenho de detecção (mAP)
    • desempenho de associação (IDF1/HOTA)

Resumo

O rastreamento de objetos conecta observações de objetos ao longo do tempo, estimando trajetórias e identidades sob oclusão, movimento e variação de aparência. Sistemas modernos comumente usam rastreamento por detecção com modelos probabilísticos de movimento (frequentemente filtragem de Kalman), associação de dados (correspondência Húngara com custos de movimento + aparência) e redes profundas para detecção e embeddings de ReID. A avaliação vai além da acurácia por quadro: métricas como MOTA, IDF1 e HOTA capturam o equilíbrio crítico entre qualidade de detecção e consistência de identidade.

Se você está construindo um rastreador prático, comece com um detector forte, adicione uma estratégia robusta de associação e avalie com métricas sensíveis a identidade — então itere sobre os modos de falha que você observar no seu domínio-alvo.