Segmentação semântica com imagens sintéticas (2017)

Atualizado em Updated

ANÁLISE DE PAPER

Em 2017, 100 imagens do Blender por classe elevaram a segmentação no PASCAL VOC de 52,80% para 55,47% de mIoU. O que isso prova e o que ficou aberto.

Em 2017, Goyal, Rajpura, Bojinov e Hegde mostraram que acrescentar imagens renderizadas no Blender a um dataset de segmentação semântica melhorou o resultado no PASCAL VOC 2012. O ganho foi modesto e desigual entre as classes, e o experimento é pequeno. Por isso mesmo é um bom caso para ler com cuidado.

O que o paper fez

O objetivo era reduzir o custo de anotar pixel a pixel. Os autores partiram de dois ingredientes:

  • Imagens reais com anotação fraca: 10 mil imagens do PASCAL VOC com caixas delimitadoras, convertidas em máscaras aproximadas por CRF (um método de refinamento). É o conjunto “Weak(10k)”.
  • Imagens sintéticas: 2 mil imagens renderizadas no Blender (motor Cycles), 100 por classe, com modelos 3D do ShapeNet sobre fundos do banco SUN. Os objetos entram com escala, rotação e posição aleatórias e iluminação direcional. A máscara sai da própria cena.

O modelo é a FCN-8s, pré-treinada no ImageNet. Primeiro ela foi ajustada com as 10 mil imagens de anotação fraca (o baseline). Depois, só algumas camadas finais foram ajustadas com as imagens sintéticas, com taxa de aprendizado menor, para aproveitar sobretudo a forma dos objetos. A avaliação usa o conjunto de validação do PASCAL VOC 2012 (1.449 imagens).

O que os resultados mostram

  • Média: o baseline de anotação fraca fez 52,80% de mIoU. Com as 2 mil imagens sintéticas, 55,47% (+2,67 pontos).
  • Por classe, o ganho é desigual. Carro subiu de 51,15% para 61,83% e garrafa de 47,25% para 55,52%, além de vasos de planta, sofá e mesa. Já TV caiu de 27,99% para 22,06% e pessoa de 66,01% para 63,43%. Segundo os autores, classes com poucos modelos 3D disponíveis (bicicleta, cachorro, pessoa, TV) tiveram pior resultado.
  • Treinar com uma classe só pode ajudar ou atrapalhar. Com 100 imagens sintéticas de carro, a média foi a 53,38% e o carro a 69,31%. Com 100 de avião, a média caiu para 46,42%, abaixo do baseline.
  • Combinar com anotação forte: com as 1,5 mil imagens de anotação pixel a pixel, mais as de anotação fraca e as sintéticas, o resultado foi 58,27%. Já anotação forte mais sintéticas, sem as de anotação fraca, deu 5,08%, que os autores atribuem ao efeito negativo das imagens não fotorrealistas sobre a anotação forte.
  • Para referência, os autores citam 62,2% de mIoU no conjunto de teste do PASCAL para a FCN-8s treinada com o dataset aumentado de anotação forte de 8,5 mil imagens, e consideram o 55,47% razoável com 12 mil imagens no total.

O limite: um experimento pequeno

  • O baseline não é “só dado real”. O ponto de partida já usa rótulos aproximados gerados por CRF. O ganho é sobre esse baseline, e as bordas das máscaras do CRF são parte do que as imagens sintéticas ajudaram a limpar, segundo os autores.
  • Uma arquitetura de 2015, um dataset, um treino. O paper não reporta repetições com sementes diferentes nem intervalo de confiança, e a diferença da média é de 2,67 pontos.
  • Os resultados por classe são irregulares. Três das 21 classes caíram (TV, pessoa e, por 0,18 ponto, cachorro). As outras 18 subiram, várias por menos de dois pontos, e os maiores ganhos estão em poucas classes (carro, garrafa, vaso de planta, motocicleta).
  • A avaliação é no conjunto de validação, que é o mesmo usado para comparar as variantes.
  • Os autores reconhecem os limites do realismo: as imagens não são fotorrealistas, não têm texturas ricas, fundos relevantes nem várias classes por imagem. Eles sugerem como trabalho futuro modelos mais ricos, fundos relevantes, escala relativa e oclusões.

O que muda com uma cena controlada

Esta seção é leitura nossa. O paper já usa o que torna a cena controlada útil: a máscara nasce junto com a imagem, sem estimativa posterior. O que dá para fazer diferente hoje:

  • Controlar a cobertura por classe, com a proporção declarada, em vez de 100 imagens iguais para todas as classes. O resultado por classe mostra por que isso importa.
  • Tornar a escolha do modelo 3D e do fundo explícita, já que os autores atribuem os piores resultados a classes com poucos modelos.
  • Registrar os parâmetros, para que o mesmo conjunto possa ser gerado de novo e comparado.

Nada disso garante ganho. O resultado de 2017 mostra que o ganho depende da classe, do modelo e do baseline, e só um teste no seu conjunto real diz se ele aparece no seu caso.

O mesmo cuidado de leitura vale para o estudo do MIT sobre dados gerados por GAN, que não compara simulação e IA generativa, como se costuma dizer.

O que levar para o seu projeto

  • Meça por classe, não só na média. Aqui a média subiu 2,67 pontos, e pessoa e TV ficaram piores.
  • Teste sintético por classe antes de somar tudo. Cem imagens de uma classe elevaram a média em um caso e a derrubaram em outro.
  • Cuide da combinação com anotação forte. O paper mostra uma combinação com resultado muito ruim. Teste a mistura de dados no seu pipeline antes de assumir que somar ajuda.

Quer testar aumento de dataset com imagens sintéticas no seu caso? Conte para nós em uma conversa de diagnóstico. Se dado sintético não for o caminho, dizemos isso também.

Fontes

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *