Benchmarks de Visão Computacional

O que são “benchmarks de visão computacional” (e o que eles não são)

Um benchmark em visão computacional é mais do que um conjunto de dados. Normalmente, é um pacote de:

  • Uma definição de tarefa (por exemplo, classificação de imagens, detecção de objetos, segmentação semântica)
  • Dados (imagens/vídeos + anotações)
  • Um protocolo (divisões treino/val/teste, dados externos permitidos, regras do servidor de avaliação)
  • Métricas (como as previsões são pontuadas e agregadas)
  • Uma cultura de reporte (rankings/leaderboards, workshops de desafios, baselines canônicos)

Benchmarks são essenciais para comparar métodos e impulsionar o progresso, mas não são um substituto completo do desempenho no mundo real. Eles frequentemente medem desempenho sob uma distribuição específica, uma taxonomia de rótulos e um protocolo de avaliação — condições que podem não corresponder ao ambiente de produção. Entender o que um benchmark mede e como ele mede é tão importante quanto a pontuação em si.

Este artigo apresenta os principais conjuntos de dados de benchmark e suítes de desafios, organizados por tarefa, e explica métricas, protocolos e ressalvas comuns, como viés de conjunto de dados e overfitting ao leaderboard. Para aprofundamentos em suítes individuais, veja Conjunto de Dados COCO e ImageNet.

Ingredientes comuns de avaliação

Divisões e servidores de teste

A maioria dos benchmarks fornece:

  • Conjunto de treino: usado para ajustar os parâmetros do modelo.
  • Conjunto de validação: usado para seleção de modelo e Ajuste de Hiperparâmetros.
  • Conjunto de teste: mantido separado; às vezes os rótulos são privados e acessados via um servidor de avaliação.

Conjuntos de teste ocultos reduzem o overfitting direto, mas ainda pode ocorrer “overfitting suave” quando pesquisadores submetem repetidamente variantes e ajustam ao leaderboard.

O que torna uma avaliação “justa”?

Uma comparação justa normalmente exige:

  • Mesmo espaço de rótulos (categorias e definições)
  • Mesmas regras de acesso aos dados (por exemplo, se dados externos são permitidos)
  • Mesma resolução de entrada e protocolo em tempo de teste (escala única vs múltiplas escalas)
  • Mesma implementação da métrica (diferenças sutis podem alterar números)

Benchmarks de classificação

Benchmarks de classificação de imagens avaliam se um modelo consegue atribuir um rótulo a uma imagem (rótulo único ou múltiplos rótulos). Eles são frequentemente usados para medir a qualidade de representações, a eficácia do pré-treinamento e o reconhecimento visual geral.

ImageNet / ILSVRC

  • Tarefa: Classificação de imagens em grande escala (tradicionalmente 1.000 classes no ILSVRC).
  • Mede: Reconhecimento amplo centrado em objetos; historicamente usado para validar avanços de arquitetura em Redes Neurais e Aprendizado por Transferência.
  • Métricas:
    • Acurácia Top-1 (Top-1 accuracy): fração em que a classe de maior probabilidade está correta.
    • Acurácia Top-5 (Top-5 accuracy): o rótulo correto aparece entre as 5 previsões principais.
  • Notas de protocolo:
    • A configuração clássica do ILSVRC tem uma taxonomia fixa e imagens curadas.
    • A prática moderna frequentemente usa ImageNet como pré-treinamento para tarefas downstream, não apenas como uma pontuação isolada.
  • Principais ressalvas:
    • O enquadramento centrado em objetos e a composição do conjunto de dados podem induzir viés de conjunto de dados (estilos fotográficos comuns, pontos de vista).
    • Existem ruído de rótulos e categorias ambíguas; o desempenho pode ser sensível à limpeza de rótulos e a variantes de avaliação.

(Veja ImageNet para detalhes.)

CIFAR-10/100 (e básicos de pequena escala)

  • Tarefa: classificação de imagens 32×32.
  • Mede: iteração rápida e experimentos controlados (otimização, regularização).
  • Métricas: acurácia.
  • Ressalvas:
    • Imagens pequenas e diversidade limitada tornam-no menos preditivo para problemas modernos do mundo real com alta resolução.
    • Muitos métodos “saturam” o CIFAR, incentivando a migração para benchmarks mais difíceis ou mais realistas.

Classificação fine-grained e de cauda longa (exemplos)

  • iNaturalist: classificação fine-grained de espécies com distribuições de cauda longa.
  • CUB-200 (aves), Stanford Cars, FGVC Aircraft: categorias fine-grained em que pistas visuais sutis importam.
  • O que medem: aprendizado robusto de características sob desbalanceamento de classes e diferenças sutis entre classes.
  • Problemas comuns: desbalanceamento severo pode tornar a acurácia geral enganosa; a média por classe frequentemente é mais informativa.

Benchmarks de detecção de objetos

A detecção de objetos avalia se um modelo consegue localizar e classificar objetos por meio de caixas delimitadoras (bounding boxes). Esses benchmarks são centrais para robótica, direção autônoma e compreensão de conteúdo.

PASCAL VOC (VOC2007/VOC2012)

  • Tarefa: detecção de objetos (20 classes), além de segmentação no VOC.
  • Mede: desempenho “canônico” inicial em detecção; historicamente importante para a família R-CNN.
  • Métricas:
    • VOC2007 frequentemente reportava AP@0.5 IoU (às vezes chamado AP50).
  • Notas de protocolo:
    • O conjunto menor de rótulos e cenas mais simples do VOC o tornam menos desafiador do que benchmarks mais recentes.
  • Ressalvas:
    • AP em um único limiar de IoU (0,5) pode recompensar localização frouxa; benchmarks modernos enfatizam localização mais estrita.

COCO (Common Objects in Context)

  • Tarefa: detecção, segmentação por instância, keypoints, segmentação panóptica.
  • Mede: desempenho em cenas confusas, com muitos objetos e instâncias pequenas.
  • Métricas (detecção):
    • AP (mAP no estilo COCO) médio ao longo de limiares de IoU 0.50:0.95 (passo 0,05).
    • AP50, AP75: AP com IoU 0,50 e 0,75.
    • APs/APm/APl: AP para objetos pequenos/médios/grandes.
  • Notas de protocolo:
    • O AP do COCO é mais estrito e mais informativo do que AP50 sozinho.
    • A avaliação oficial usa código padronizado (pycocotools), o que melhora a comparabilidade.
  • Ressalvas:
    • O desempenho pode ser muito sensível a escolhas em tempo de teste (inferência multi-escala, variantes de NMS, calibração de pontuação).
    • O regime de “objetos pequenos” pode amplificar ruído de anotação e efeitos de resolução.

(Veja Conjunto de Dados COCO para detalhes.)

Open Images, Objects365, LVIS (escalando categorias e a cauda longa)

  • Open Images:
    • Detecção em grande escala com muitas classes; inclui relações e rótulos hierárquicos.
    • Frequentemente usa variantes de AP; a anotação pode ser esparsa (nem todos os objetos são rotulados exaustivamente).
  • Objects365:
    • Detecção de vocabulário amplo projetada para melhorar a cobertura de objetos gerais.
  • LVIS:
    • Foca em categorias de instâncias de cauda longa com mais classes do que o COCO.
    • Comumente reporta AP e às vezes AP para categorias raras/comuns/frequentes.
  • Ressalva principal (especialmente Open Images/LVIS):
    • Anotações incompletas: um objeto não anotado pode ser tratado como “fundo”, penalizando detecções corretas, a menos que a avaliação trate isso explicitamente.

Benchmarks de segmentação

A segmentação avalia entendimento em nível de pixel. Há três tarefas estreitamente relacionadas:

  • Segmentação semântica (semantic segmentation): atribuir uma classe a cada pixel (todos os pixels de “pessoa” compartilham um rótulo).
  • Segmentação por instância (instance segmentation): separar instâncias individuais de objetos (pessoa #1 vs pessoa #2).
  • Segmentação panóptica (panoptic segmentation): tarefa unificada: classes “stuff” (céu, estrada) + instâncias “thing” (carros, pessoas).

Segmentação semântica: Cityscapes, ADE20K, VOC

  • Cityscapes
    • Domínio: cenas urbanas de rua (direção autônoma).
    • Mede: qualidade fina de contornos, ambientes estruturados, geometria de câmera consistente.
    • Métrica: mIoU (mean Intersection-over-Union) entre classes.
    • Ressalva: forte especificidade de domínio (cidades europeias, ponto de vista de condução); pode não generalizar para outros ambientes sem Adaptação de Domínio (Domain Adaptation).
  • ADE20K
    • Domínio: cenas diversas com muitas classes.
    • Mede: parsing de cena amplo além de direção; maior diversidade de “stuff”.
    • Métrica: mIoU (frequentemente).
  • Segmentação PASCAL VOC
    • Conjunto menor de rótulos; baseline historicamente importante.
    • Métrica: mIoU.

Lembrete de IoU:
Para uma classe (c), ( IoU_c = \frac{TP_c}{TP_c + FP_c + FN_c} ). A média de IoU calcula a média entre classes (tipicamente sem ponderação), então classes raras importam.

Segmentação por instância: COCO, LVIS

  • Segmentação por instância no COCO
    • Métrica: mask AP (mesmo AP do COCO, mas o IoU é calculado sobre máscaras em vez de caixas).
  • Segmentação por instância no LVIS
    • Métrica: mask AP com reporte de cauda longa (rara/comum/frequente).
  • Ressalvas:
    • Qualidade de anotação de máscaras e ambiguidade de contornos afetam os limites superiores.
    • Modelos podem “jogar” com AP via calibração de pontuação e módulos de refinamento de máscara.

Segmentação panóptica: COCO Panoptic, Cityscapes Panoptic

  • O que mede: entendimento unificado da cena, equilibrando “stuff” e “things”.
  • Métrica: Qualidade Panóptica (Panoptic Quality, PQ), que combina qualidade de segmentação e reconhecimento:
    • Aproximadamente: ( PQ = SQ \times RQ )
    • Onde SQ reflete o IoU de segmentos correspondidos e RQ reflete uma qualidade de detecção do tipo F1.
  • Ressalva:
    • PQ depende de heurísticas de correspondência e definições de classe; pode ser menos intuitiva para depurar do que mIoU ou AP.

Benchmarks de pose humana / keypoints

A detecção de keypoints prevê localizações de articulações humanas (ou de animais).

COCO Keypoints, MPII, Human3.6M

  • COCO Keypoints
    • Estimativa de pose multi-pessoa em cenários do mundo real.
    • Métrica: AP baseado em OKS (Object Keypoint Similarity), análogo ao IoU, mas para keypoints.
  • MPII Human Pose
    • Benchmark clássico de pose single-person/multi-person.
  • Human3.6M
    • Conjunto de dados indoor controlado para estimativa de pose 3D; métricas frequentemente incluem MPJPE (mean per-joint position error).
  • Ressalvas:
    • Convenções de rotulagem de oclusão e keypoints “invisíveis” variam.
    • Cenários do mundo real vs laboratório podem produzir grandes lacunas de generalização.

Benchmarks de vídeo (reconhecimento, detecção, segmentação, rastreamento)

Vídeo adiciona estrutura temporal: movimento, oclusão e contexto de longo alcance. Benchmarks variam amplamente em densidade de anotação e definição de tarefa.

Reconhecimento de ações: Kinetics, Something-Something, UCF101/HMDB51

  • Kinetics (400/600/700)
    • Tarefa: classificar clipes curtos em categorias de ação.
    • Métrica: acurácia Top-1 / Top-5.
    • Mede: reconhecimento amplo de ações; pré-treinamento em grande escala para modelos de vídeo.
  • Something-Something
    • Enfatiza raciocínio temporal (temporal reasoning) (por exemplo, “moving something closer to something”).
    • Menos solucionável por pistas de aparência de um único frame.
  • UCF101 / HMDB51
    • Menores e mais antigos; ainda usados para comparações rápidas e ablações.
  • Ressalvas:
    • Muitos conjuntos de dados contêm vazamento de contexto (o fundo se correlaciona com o rótulo).
    • Estratégias de amostragem de clipes (número de frames, stride) podem alterar resultados de forma significativa.

Detecção espaço-temporal: AVA

  • AVA
    • Tarefa: localizar pessoas e rotular suas ações no tempo e no espaço.
    • Métrica: mAP ao longo de classes de ação (frequentemente com limiares de IoU).
  • Ressalvas:
    • Esparsidade de anotação (por exemplo, rotulagem a 1 Hz) complica avaliação e escolhas de treinamento.

Segmentação de objetos em vídeo e segmentação por instância em vídeo: DAVIS, YouTube-VOS, YouTube-VIS

  • DAVIS
    • Anotações de alta qualidade para segmentação de objetos em vídeo.
    • Métricas frequentemente incluem similaridade de região e acurácia de contorno (comumente reportadas como J&F).
  • YouTube-VOS
    • Segmentação de objetos em vídeo em grande escala com vídeos diversos.
  • YouTube-VIS
    • Segmentação por instância em vídeo: detectar, segmentar e rastrear instâncias ao longo dos frames.
    • Métricas estendem medidas do tipo AP para “tubos”/trilhas de vídeo.
  • Ressalvas:
    • A avaliação depende fortemente de regras de rastreamento/associação e consistência de anotação entre frames.

Rastreamento de múltiplos objetos: MOTChallenge, GOT-10k, LaSOT

  • MOTChallenge (MOT17/MOT20)
    • Tarefa: rastrear múltiplas pessoas ao longo do tempo.
    • Métricas comuns:
      • MOTA (medida agregada de erro),
      • IDF1 (preservação de identidade),
      • HOTA (equilibra detecção e associação).
  • GOT-10k, LaSOT
    • Mais focados em rastreamento de objeto único (SOT), com protocolos diferentes.
  • Ressalvas:
    • Métricas podem fazer trade-off de maneiras não óbvias (um rastreador pode melhorar MOTA enquanto piora IDF1).
    • Qualidade do detector e lógica de rastreamento se misturam; o reporte deve esclarecer a configuração.

Exemplos práticos de métricas

Exemplo: acurácia Top-k para classificação

import torch

def topk_accuracy(logits, targets, ks=(1,5)):
    # logits: [B, C], targets: [B]
    with torch.no_grad():
        maxk = max(ks)
        _, pred = logits.topk(maxk, dim=1)  # [B, maxk]
        correct = pred.eq(targets.view(-1, 1))
        out = {}
        for k in ks:
            out[f"top{k}"] = correct[:, :k].any(dim=1).float().mean().item()
        return out

Exemplo: AP no estilo COCO para detecção (conceitual)

Na prática, a avaliação do COCO é padronizada via pycocotools. Um fluxo de trabalho típico é:

  1. Escrever previsões no formato COCO JSON (caixas, pontuações, category_id).
  2. Executar o avaliador oficial para calcular AP ao longo de limiares de IoU e tamanhos de objeto.
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval

coco_gt = COCO("instances_val2017.json")
coco_dt = coco_gt.loadRes("my_detections.json")

evaluator = COCOeval(coco_gt, coco_dt, iouType="bbox")
evaluator.evaluate()
evaluator.accumulate()
evaluator.summarize()   # prints AP, AP50, AP75, APs, APm, APl, etc.

Usar o código oficial é importante porque pequenas diferenças de implementação (intervalos de área, tratamento de crowd, regiões ignoradas) podem alterar o AP final.

Diferenças de protocolo que comumente confundem as pessoas

AP50 vs COCO AP (0.50:0.95)

  • AP50 (estilo VOC) é mais fácil: uma caixa com IoU 0,51 conta como correta.
  • COCO AP recompensa localização precisa ao fazer a média de muitos limiares de IoU.

Implicação prática: um método pode parecer forte em AP50 e ainda assim mediano em COCO AP, especialmente se suas caixas estiverem levemente desalinhadas ou se ele tiver dificuldade com objetos pequenos.

Inferência em escala única vs múltiplas escalas

Alguns leaderboards permitem:

  • testes multi-escala
  • aumento em tempo de teste (test-time augmentation, TTA) (espelhamentos, cortes)
  • ensembles

Isso pode aumentar pontuações, mas complica comparações de “métodos”. Bons artigos separam claramente:

  • qualidade do modelo (modelo único, escala padrão)
  • desempenho em nível de sistema (TTA/ensembles, mais computação)

Dados externos e pré-treinamento

Sistemas modernos de visão frequentemente usam pré-treinamento em grande escala (supervisionado ou Aprendizado Auto-Supervisionado (Self-Supervised Learning)). Muitos benchmarks permitem dados externos, mas os resultados então refletem uma combinação de:

  • arquitetura
  • receita de treinamento
  • escala de dados e curadoria

Ao comparar métodos, verifique se as “regras” do benchmark estão alinhadas com o que está sendo alegado.

Principais ressalvas e modos de falha

Viés de conjunto de dados e correlações espúrias

Benchmarks são amostras do mundo, não o mundo:

  • Estilo de imagem, geografia, ponto de vista da câmera e contexto cultural podem enviesar resultados.
  • Modelos podem explorar pistas espúrias (fundo, texto, coocorrências típicas).

Essa é uma razão central pela qual avaliações cruzadas entre conjuntos e testes de robustez importam (veja Generalização Fora da Distribuição (Out-of-Distribution Generalization)).

Ambiguidade de anotação e ruído de rótulo

Mesmo conjuntos de dados “padrão ouro” têm:

  • fronteiras de classe ambíguas (“copo” vs “caneca”)
  • fronteiras de instância inconsistentes
  • rótulos ausentes (especialmente em conjuntos de vocabulário amplo)

Ruído pode mudar o teto efetivo e pode recompensar métodos que se ajustam a peculiaridades de anotação em vez de à semântica real.

Overfitting ao leaderboard

Mesmo com um conjunto de teste oculto, comunidades podem fazer overfitting via:

  • submissões repetidas,
  • ajuste fino à métrica,
  • seleção tendenciosa de checkpoints e seeds,
  • exploração de brechas na avaliação.

Isso se relaciona de perto a Vazamento de Dados (Data Leakage) em espírito: informação sobre a distribuição de teste vaza por meio de ciclos de iteração.

Miopia de métrica (otimizar o que é fácil de medir)

Benchmarks frequentemente submedem:

  • calibração e incerteza (veja Calibração (Calibration))
  • latência/throughput e uso de memória
  • robustez a corrupções, oclusão, eventos raros
  • justiça e desempenho por subgrupos

Um detector com AP maior pode ser pior em um pipeline crítico de segurança se for mais lento, menos calibrado ou frágil sob mudança de distribuição.

Saturação e retornos decrescentes

Quando um benchmark se torna “resolvido” (pontuações se agrupam perto do topo), ganhos incrementais podem:

  • depender fortemente de computação,
  • refletir ensembling/TTA,
  • ou ficar dentro do ruído entre execuções.

Nesse estágio, é comum migrar para configurações mais difíceis: reconhecimento de cauda longa, tarefas de vocabulário aberto ou testes de estresse.

Como benchmarks se conectam a aplicações reais

Benchmarks são frequentemente usados de três formas práticas:

  1. Seleção de modelo: escolher arquiteturas/receitas com boa chance de funcionar bem downstream.
  2. Ablação e diagnóstico: entender qual componente ajuda (backbone, augmentation, loss).
  3. Comunicação: fornecer uma linguagem compartilhada para progresso.

Um exemplo prático:

  • Você pode pré-treinar um backbone no ImageNet, avaliar qualidade de representação em um benchmark de detecção como COCO e então validar desempenho de domínio em um conjunto-alvo (por exemplo, imagens médicas). Isso reduz o risco de implantar um modelo que funciona bem apenas na distribuição do benchmark.

Boas práticas para usar benchmarks de visão computacional

  • Combine o benchmark com a tarefa de produção: cenas de rua → Cityscapes/BDD-like; detecção geral → COCO/Open Images; cauda longa → LVIS/iNaturalist.
  • Reporte o protocolo completo: dados usados, resolução, augmentation, pré-treinamento, TTA, ensembling, número de seeds.
  • Use código de avaliação padronizado sempre que possível (API do COCO, scripts oficiais).
  • Olhe além de um único número:
    • Para COCO: reporte AP, AP50/AP75 e detalhamentos pequeno/médio/grande.
    • Para segmentação: inclua IoU por classe ou desempenho em classes raras quando relevante.
  • Teste robustez: adicione avaliações de corrupção e shift quando o risco for alto (frequentemente discutido sob robustez e testes OOD).
  • Evite “caçar leaderboard”: mantenha um conjunto interno realmente separado para teste e valide entre conjuntos quando possível.

Resumo

Benchmarks de visão computacional — VOC, COCO, ImageNet e muitas suítes específicas por tarefa para segmentação, pose e vídeo — fornecem formas padronizadas de medir progresso. As habilidades mais importantes para usá-los bem são:

  • saber qual tarefa e métrica um benchmark realmente mede,
  • respeitar diferenças de protocolo (divisões, regras de dados externos, configurações de inferência),
  • e considerar ressalvas como viés de conjunto de dados, ruído de anotação e overfitting ao leaderboard.

Usados com cuidado, benchmarks são ferramentas científicas poderosas; usados de forma descuidada, podem produzir conclusões enganosas sobre capacidade no mundo real.