Reidentificação de Pessoas
Visão geral
Reidentificação de pessoas (Person ReID ou ReID) é a tarefa de visão computacional de corresponder o mesmo indivíduo em câmeras diferentes ou ao longo do tempo. Dadas uma ou mais imagens query (ou tracklets de vídeo) de uma pessoa, um sistema de ReID recupera ocorrências dessa pessoa em uma gallery capturada sob condições diferentes.
A ReID normalmente é resolvida aprendendo uma incorporação de aparência (appearance embedding): uma rede neural mapeia um recorte de imagem de uma pessoa para um vetor de características (por exemplo, 256–2048 dimensões). No momento da inferência, as pessoas são correspondidas comparando distâncias entre incorporações (por exemplo, distância cosseno). O sistema deve ser robusto a:
- Mudanças de ponto de vista (frente vs lado vs costas)
- Mudanças de iluminação (interno/externo, dia/noite)
- Oclusão (corpo parcial, aglomeração)
- Resolução e desfoque (câmeras de longo alcance)
- Fundo e estilo da câmera (calibração de cor do sensor diferente)
- Variação de pose e vestimenta (ReID de curto prazo vs longo prazo)
A ReID é um bloco fundamental para associação de identidade entre câmeras e aparece com frequência dentro de pipelines de rastreamento de múltiplos objetos (multi-object tracking, MOT) para manter identidades através de oclusões e reentradas. Veja também: Rastreamento de Objetos.
Como a ReID difere de “rastreamento” e “reconhecimento facial”
- Rastreamento de curto prazo frequentemente assume continuidade temporal dentro de uma câmera: a mesma pessoa aparece em quadros adjacentes com movimento suave. A ReID é projetada para funcionar mesmo quando essa suposição quebra (troca de câmera, lacunas longas, reentrada).
- Reconhecimento facial depende de características biométricas faciais relativamente estáveis. A ReID de pessoas frequentemente opera em cenários de longo alcance (far-field) em que rostos não são visíveis; por isso, utiliza roupas, forma do corpo, pistas de marcha e acessórios — que podem mudar ao longo do tempo.
Na prática, muitos sistemas reais combinam:
- Pistas de movimento (por exemplo, um filtro de Kalman) para rastreamento dentro da câmera
- Incorporações de ReID para associação baseada em aparência ao longo do tempo/entre câmeras
Formulações do problema
A ReID aparece em várias configurações intimamente relacionadas:
ReID baseada em imagem (quadro único)
Entrada: um recorte de pessoa (query).
Saída: lista ranqueada de recortes de pessoas correspondentes em uma gallery.
Esse é o cenário clássico de benchmark (por exemplo, Market-1501).
ReID baseada em vídeo (nível de tracklet)
Entrada: uma sequência de recortes de uma pessoa (um tracklet).
Saída: correspondências com outros tracklets.
A ReID em vídeo pode agregar informações ao longo do tempo (múltiplas poses, oclusões parciais) e costuma ser mais robusta.
Conjunto aberto vs conjunto fechado
- Conjunto fechado: toda identidade de query existe na gallery.
- Conjunto aberto: a query pode não existir na gallery (exige limiarização / rejeição).
Muitas implantações reais são de conjunto aberto.
Associação entre câmeras
Um sistema deve corresponder identidades entre diferentes visões de câmera, às vezes usando restrições de topologia de câmeras (por exemplo, entradas/saídas, tempos de deslocamento).
Pipeline típico de ReID
Um sistema de ReID em produção raramente é “apenas uma rede neural”. Em geral, é um pipeline com múltiplos componentes.
1) Detecção de pessoas e recorte
Antes da ReID, você precisa localizar pessoas em imagens/quadros:
- Detecção de pessoas (por exemplo, Faster R-CNN, variantes de YOLO) gera caixas delimitadoras.
- Opcionalmente, segmentação de instâncias (instance segmentation) ajuda a remover o fundo.
- Os recortes são redimensionados para um tamanho de entrada fixo (comumente 256×128 A×L).
Por que isso importa:
- Caixas ruins (muito folgadas, truncadas, pessoa errada) podem dominar os erros de ReID.
- Vazamento de fundo pode causar atalhos específicos da câmera (sobreajuste ao contexto da cena).
Em vídeo, você pode primeiro rastrear dentro de cada câmera para produzir tracklets (sequências curtas consistentes em identidade) e então fazer ReID no nível de tracklet.
Tópico relacionado: Rastreamento de Objetos.
2) Extração de características (modelo de incorporação)
Um modelo de incorporação de ReID mapeia um recorte para um vetor:
[ \mathbf{z} = f_\theta(\text{image}) \in \mathbb{R}^d ]
Modelos modernos comumente usam:
- Backbones de CNN (por exemplo, variantes de ResNet) com pooling global
- Cabeças baseadas em partes ou em atenção para enfatizar regiões discriminativas
- Backbones baseados em transformadores (ViT/Swin) em alguns sistemas recentes; veja Arquitetura Transformer
Ideias arquiteturais comuns:
- Características globais: representação agregada da pessoa inteira.
- Características baseadas em partes: dividir o mapa de características em faixas horizontais ou partes aprendidas (cabeça/tronco/pernas). Ajuda com oclusão e variação de pose.
- Alinhamento guiado por pose: usar pontos-chave para normalizar a pose (funciona bem quando os pontos-chave são confiáveis).
- Agregação temporal (ReID em vídeo): average pooling ao longo dos quadros, atenção sobre quadros ou modelos de sequência.
Aumento de dados (data augmentation) é crucial:
- Random erasing / cutout (simula oclusão)
- Color jitter (mudanças de iluminação)
- Random crop/flip (ruído de ponto de vista/caixa)
- Degradação de resolução (câmeras de longo alcance)
3) Objetivos de treinamento e aprendizado métrico
O treinamento de ReID normalmente combina classificação e aprendizado métrico (metric learning).
Classificação (perda de ID)
Trate cada identidade de treinamento como uma classe e treine com entropia cruzada softmax:
- Incentiva separabilidade entre identidades vistas durante o treinamento
- Produz incorporações que frequentemente transferem bem para recuperação
Perdas de aprendizado métrico
Modelam diretamente as distâncias das incorporações para que pares com a mesma ID fiquem próximos e pares com IDs diferentes fiquem distantes:
- Perda contrastiva (contrastive loss) (pares)
- Perda tripla (triplet loss) (âncora/positivo/negativo)
- Variantes como hard mining, batch-all, batch-hard, circle loss, perdas baseadas em proxy
Esses métodos se enquadram em Aprendizado Métrico e são intimamente relacionados ao Aprendizado Contrastivo.
Uma receita comum de treinamento:
- Usar uma cabeça de classificação para otimização estável
- Usar perda tripla (ou uma variante moderna) nas incorporações
- Minerar negativos difíceis dentro de um batch (com cuidado, para evitar problemas de ruído de rótulo)
Questões de câmera e de domínio
Um grande desafio prático é que câmeras geram mudanças de domínio (domain shifts) (temperatura de cor, ângulo, fundo). Técnicas incluem:
- Amostragem de batch consciente de câmera (garantir múltiplas câmeras por identidade por batch)
- Aumento de estilo (simular mudanças de cor da câmera)
- Adaptação de domínio / generalização de domínio; veja Adaptação de Domínio
4) Correspondência, recuperação e reordenação
No momento da inferência, a ReID normalmente é uma busca por vizinho mais próximo:
- Normalizar incorporações: (\hat{\mathbf{z}} = \mathbf{z} / |\mathbf{z}|)
- Comparar com similaridade cosseno ou distância Euclidiana (frequentemente equivalentes após normalização)
Para uma incorporação de query (q) e incorporações da gallery ({g_i}), ranquear por:
[ \text{score}(q, g_i) = q^\top g_i ]
Considerações práticas de recuperação
- Galleries grandes exigem busca rápida (vizinhos mais próximos aproximados).
- Sistemas podem manter uma gallery dinâmica que se atualiza ao longo do tempo.
Em alguns benchmarks e sistemas, a reordenação (re-ranking) melhora resultados:
- Usar consistência de vizinhos k-recíprocos para refinar posições no ranking (ajuda quando as incorporações estão ruidosas).
- A reordenação melhora métricas de recuperação, mas adiciona computação e complexidade.
Exemplo prático: correspondência entre câmeras em um prédio
Imagine um prédio de escritórios com 8 câmeras. Uma pessoa entra pela Câmera A e mais tarde aparece na Câmera F.
- Execute um detector em cada feed de câmera para obter recortes de pessoas.
- Extraia incorporações para cada recorte.
- Para cada nova detecção/tracklet na Câmera F, compare contra uma gallery de “identidades recentes” de outras câmeras.
- Aplique restrições (por exemplo, tempo mínimo de deslocamento entre câmeras) antes de aceitar uma correspondência.
Em código, o passo central de recuperação é simples:
import torch
import torch.nn.functional as F
def cosine_topk(query_emb, gallery_embs, k=5):
# query_emb: (d,)
# gallery_embs: (N, d)
q = F.normalize(query_emb, dim=0)
G = F.normalize(gallery_embs, dim=1)
scores = G @ q # (N,)
topk_scores, topk_idx = torch.topk(scores, k)
return topk_idx, topk_scores
O que torna um sistema real difícil é tudo ao redor dessa função:
- más detecções, oclusões, roupas semelhantes
- iluminação variável entre câmeras
- determinar quando rejeitar uma correspondência (limiarização de conjunto aberto)
- gerenciar ciclos de vida de identidades ao longo do tempo
ReID dentro do rastreamento de múltiplos objetos (MOT)
Em muitos sistemas de MOT, a associação combina:
- Modelo de movimento: prevê onde um objeto estará no próximo instante (por exemplo, filtro de Kalman)
- Modelo de aparência (ReID): ajuda quando o movimento é ambíguo (multidões, cruzamentos)
- Opcional: pistas de movimento de curto prazo como Fluxo Óptico
Um passo típico de associação em tracking-by-detection:
- Execute o detector a cada quadro → detecções.
- Projete trilhas existentes para frente com um modelo de movimento.
- Calcule uma matriz de custo entre trilhas e detecções:
- custo de movimento (por exemplo, distância de Mahalanobis entre caixas previstas e observadas)
- custo de aparência (por exemplo, distância cosseno entre incorporações de ReID)
- Resolva a atribuição (algoritmo Húngaro), então atualize as trilhas.
Esse é o desenho por trás de rastreadores populares como abordagens do tipo DeepSORT: incorporações de ReID reduzem trocas de identidade ao fornecer uma assinatura de aparência estável.
ReID no nível de tracklet também é comum:
- Primeiro construir tracklets curtos dentro de cada câmera.
- Depois associar tracklets ao longo do tempo/entre câmeras usando incorporações agregadas.
Avaliação: como a ReID é medida
Métricas comuns de ReID (recuperação)
- CMC (Cumulative Matching Characteristic): probabilidade de a correspondência correta aparecer no top-k (Rank-1, Rank-5 etc.).
- mAP (mean Average Precision): considera múltiplas correspondências verdadeiras na gallery e recompensa o ranqueamento correto ao longo de toda a lista.
mAP é especialmente importante em cenários realistas em que múltiplas imagens da mesma identidade existem.
Métricas de rastreamento e entre câmeras
Quando a ReID faz parte do rastreamento, você também se importa com consistência de identidade ao longo do tempo:
- IDF1, trocas de ID, HOTA (dependendo do benchmark/protocolo)
Essas métricas refletem como erros de ReID se propagam em fragmentação de trilhas ou trocas de identidade.
Conjuntos de dados e benchmarks (comumente referenciados)
Benchmarks comuns de ReID incluem:
- Market-1501: dataset clássico baseado em imagem, multicâmera.
- DukeMTMC-reID: amplamente usado (observação: disponibilidade/licenciamento mudou ao longo do tempo; muitos artigos ainda o reportam historicamente).
- CUHK03: inclui caixas rotuladas e detectadas; enfatiza ruído de detecção.
- MSMT17: grande escala, forte variação de iluminação e cena (mais difícil, mais realista).
- MARS: ReID baseada em vídeo (tracklets).
Ao ler artigos, preste atenção em:
- se a avaliação usa caixas detectadas ou rotuladas manualmente
- se a configuração é single-shot vs multi-shot
- se o protocolo é entre domínios (cross-domain) (treinar em um dataset, testar em outro)
Principais desafios e modos de falha
Aparência semelhante (o problema do “mesmo uniforme”)
Em muitos ambientes (uniformes, casacos de inverno), pessoas diferentes parecem quase idênticas no nível do corpo. Sistemas de ReID podem então depender de pistas fracas (sapatos, bolsas), que podem estar ausentes ou ocluídas.
Mitigações:
- Câmeras de maior resolução (se viável)
- Agregação de múltiplos quadros (ReID em vídeo)
- Combinar com biometria suave (atributos) quando apropriado e ético
Oclusão e observações parciais
Multidões causam caixas parciais: apenas a parte superior do corpo visível, ou uma pessoa atrás de uma coluna.
Mitigações:
- Características baseadas em partes e atenção
- Aumentos fortes de oclusão durante o treinamento (random erasing)
- Agregação de tracklets (usar os melhores quadros visíveis)
Mudança de domínio entre câmeras e implantações
Um modelo treinado em um conjunto de câmeras frequentemente piora ao ser aplicado em um novo local.
Mitigações:
- Adaptação de domínio e aumento por transferência de estilo
- Ajuste fino não supervisionado ou fracamente supervisionado
- Normalização / calibração específica por câmera
Mudanças de roupa (ReID de longo prazo)
A maioria das ReIDs clássicas assume lacunas curtas no tempo (mesmas roupas). Cenários de longo prazo (dias/semanas) são substancialmente mais difíceis.
Mitigações:
- Incorporar pistas de marcha ou forma do corpo (se disponível)
- Sensores multimodais (quando apropriado)
- Reformulação do problema: tratar como “associação suave” em vez de identidade definitiva
Dicas práticas de implementação
Trate a qualidade da detecção como preocupação de primeira linha
- Use um detector ajustado ao ponto de vista da sua câmera (aéreo vs frontal).
- Filtre caixas de baixa confiança ou muito pequenas; abaixo de certa resolução, a ReID fica instável.
- Considere incluir uma abordagem de supressão de fundo (background suppression) (segmentação ou caixas mais ajustadas).
Agregação de incorporações para estabilidade
Para vídeo/tracklets, use:
- média das incorporações ao longo dos quadros
- média ponderada por qualidade (dar maior peso a quadros mais nítidos e menos ocluídos)
Limiarização de conjunto aberto
Em sistemas reais, você frequentemente precisa de “nenhuma correspondência encontrada”.
- Calibre um limiar de similaridade usando dados de validação do domínio-alvo.
- Acompanhe a confiança ao longo do tempo (múltiplas correspondências consistentes são evidência mais forte do que uma só).
Recuperação eficiente em escala
Se a gallery é grande (centenas de milhares de incorporações):
- use busca de vizinhos mais próximos aproximados (por exemplo, FAISS)
- armazene incorporações em float16 quando aceitável
- remova periodicamente entradas antigas da gallery
Direções atuais de pesquisa (alto nível)
- ReID baseada em transformadores: melhor contexto global e atenção, especialmente para oclusões e relações entre partes.
- ReID auto-supervisionada / fracamente supervisionada: reduz dependência de rótulos de identidade caros; veja Aprendizado Auto-Supervisionado.
- Generalização de domínio: treinar modelos que transferem melhor para redes de câmeras não vistas.
- ReID multimodal: combinar RGB com profundidade/térmico quando disponível.
- Correspondência consciente de incerteza: prever a confiabilidade da incorporação para evitar incompatibilidades superconfiantes.
- Representações com preservação de privacidade: aprender características que suportem correspondência limitando o vazamento de atributos sensíveis (uma área ativa e importante).
Aplicações
Rastreamento entre câmeras e associação de identidade
- Prédios inteligentes: acompanhar padrões de movimento entre entradas/saídas
- Hubs de transporte: encontrar a trajetória de uma pessoa em múltiplas câmeras
- Perícia: recuperar todas as aparições de um indivíduo em gravações arquivadas
Análises em varejo e locais de eventos
- Estimar taxas de revisita (com cuidadosa conformidade de privacidade/legal)
- Entender fluxos de tráfego e pontos de congestionamento
Esportes e transmissão
- Rastreamento de jogadores quando números de camisa não estão visíveis
- Reidentificar atletas entre cortes de câmera
Em todos esses casos, a ReID frequentemente é usada como um sinal entre muitos, não como um oráculo de identidade independente.
Privacidade, ética e considerações de implantação
A ReID de pessoas possibilita capacidades poderosas de vigilância. O uso responsável exige:
- Conformidade legal (regras de consentimento e retenção dependentes da jurisdição)
- Controles de segurança (registro de acesso, criptografia, limites de retenção)
- Limitação clara de finalidade (evitar reaproveitamento além do uso declarado)
- Avaliação de viés e justiça (o desempenho pode variar por estilo de roupa, iluminação, tom de pele e posicionamento de câmera)
- Considerar alternativas menos invasivas (contagens agregadas, processamento no dispositivo ou anonimização)
Mesmo sistemas de ReID tecnicamente fortes podem ser prejudiciais se implantados sem salvaguardas.
Resumo
A reidentificação de pessoas é um problema de recuperação e correspondência centrado em aprender incorporações de aparência robustas que permaneçam estáveis entre visões de câmeras e ao longo do tempo. Um sistema típico combina:
- Detecção/recorte para obter imagens de pessoas
- Extração de características com redes profundas para produzir incorporações
- Aprendizado métrico e perdas de classificação para moldar o espaço de incorporações
- Correspondência por vizinho mais próximo (frequentemente com reordenação e restrições conscientes de domínio)
A ReID é especialmente importante em rastreamento de múltiplos objetos e associação de identidade entre câmeras, onde reduz trocas de identidade e permite vinculação de longo alcance que o rastreamento apenas por movimento não consegue lidar.