Pular para o conteúdo principal
PulsarKit

Remover o fundo sem Photoshop: o que a IA faz e onde ainda tem dificuldade

A remoção de fundo com IA ficou boa, mas ainda não faz milagre. Veja o que ela faz e onde exatamente ainda tem dificuldade.

Por PulsarKit · ·

O mesmo retrato duas vezes: à esquerda, em JPG, uma pessoa em um cômodo com janela, estante e planta; à direita, em PNG, a mesma pessoa recortada sobre um fundo transparente quadriculado

O modelo não detecta uma cor: ele identifica o elemento principal

Uma ferramenta construída em torno de um modelo de segmentação, como Remover fundo, analisa a fotografia inteira e decide, pixel por pixel, o que pertence ao elemento principal e o que conta como tudo o que está atrás dele. É uma abordagem diferente da técnica mais antiga, que remove uma cor específica indicada à ferramenta, como um fundo de estúdio verde ou branco liso. É isso que a ferramenta Fundo transparente continua fazendo, e bem, quando o fundo é de fato uma única cor lisa. Essa diferença explica por que esse tipo de ferramenta funciona com fotografias reais e complicadas, como uma pessoa em pé em um cômodo cheio de coisas ou um objeto sobre uma mesa bagunçada, em que não existe uma única cor uniforme para isolar e remover. Existe apenas um elemento principal, que precisa ser reconhecido como uma coisa só diante de todo o resto do quadro.

A parte difícil nunca foi o meio do elemento principal

Recortar o corpo largo e sólido de uma pessoa ou de um objeto é, para qualquer modelo moderno, a parte relativamente fácil desse problema. A parte difícil é a própria borda, e o cabelo é o exemplo mais claro do motivo. Um único fio costuma ser mais fino que um pixel da imagem e, nesse pixel, muitas vezes é metade elemento principal e metade fundo, e não claramente uma coisa ou outra. Esse é um problema diferente, e mais difícil, do que descobrir onde termina um objeto sólido. Um modelo pode acertar o corpo de uma pessoa e ainda assim deixar um contorno irregular e serrilhado em volta da cabeça, e é esse contorno que as pessoas notam primeiro.

O halo claro em volta do elemento principal é um artefato específico e bem conhecido

Um recorte fotografado contra um fundo branco de estúdio e depois colocado sobre um fundo escuro muitas vezes mostra um brilho claro e fraco em volta do cabelo e das bordas. Não é uma falha aleatória de renderização. Isso acontece porque um pixel de cabelo semitransparente, fotografado contra o branco, traz parte desse branco misturada diretamente na própria cor. Deixar esse pixel da borda semitransparente não basta, sozinho, para resolver. A cor do fundo precisa ser retirada matematicamente do valor de cor do pixel, desfazendo a mistura, e não apenas atenuada; senão, o branco continua aparecendo como um halo visível sobre qualquer fundo novo em que o recorte for colocado.

Precisão nas bordas custa tempo de verdade, e vale entender essa troca

Descobrir quanto de elemento principal e quanto de fundo se misturam em cada pixel da borda, e depois desfazer corretamente a mistura de cor em cada um deles, leva sensivelmente mais tempo de cálculo do que desfocar a máscara por igual em todo o contorno e dar o trabalho por encerrado. Um modo mais rápido, que pula essa análise da borda pixel por pixel, é uma escolha razoável para um resultado rápido e informal, em que alguns pixels de borda imperfeita não fazem diferença para o uso pretendido. O modo mais lento e cuidadoso compensa o tempo extra em um retrato ou em uma foto de produto, em que alguém vai olhar essas bordas de perto.

Um elemento principal com cor parecida com a do fundo continua sendo um caso difícil

Cabelo escuro fotografado contra uma parede escura, ou uma pessoa vestindo cores quase idênticas às do que está atrás dela, deixa para qualquer modelo de segmentação pouquíssima diferença de cor para medir na borda. As técnicas de refinamento de borda que funcionam tão bem em outros casos dependem, antes de tudo, de o elemento principal e o fundo terem cores diferentes. Esse continua sendo um caso difícil para todas as ferramentas da categoria, inclusive as pagas mais conhecidas, e esperar um resultado muito melhor só por trocar de serviço costuma ser a solução errada. Recortar mais perto do elemento principal com Recortar imagem, trocar o fundo antes do recorte ou simplesmente ter mais contraste na foto original ajuda muito mais do que testar outro modelo.

Para onde vai a foto e o que chega ao nosso servidor

A ferramenta Remover fundo funciona do mesmo jeito em qualquer dispositivo, tanto no notebook ou no computador de mesa quanto no celular ou no tablet, e nada é baixado para o navegador. A rede neural que encontra o elemento principal roda no nosso servidor. A página reduz a imagem a uma cópia de 1024 por 1024, envia só essa cópia por uma conexão criptografada e recebe a máscara de volta; o recorte, o refinamento das bordas, a cor de fundo e o PNG são feitos depois no navegador, a partir da própria foto, então o arquivo original nunca sai do seu dispositivo. A cópia reduzida é excluída assim que a máscara fica pronta, e a própria máscara, em cerca de duas horas; cada foto enviada assim conta para o limite por hora compartilhado pelas ferramentas que usam o nosso servidor. O motivo dessa divisão é simples. Rodar a rede dentro de uma aba exige baixar antes um arquivo de modelo grande e depois ocupar mais de 2 GB de memória enquanto ela trabalha: o navegador do celular fecha a aba muito antes disso, e muitos computadores levam meio minuto por foto ou falham com algumas placas de vídeo. No servidor, a máscara volta em poucos segundos em qualquer dispositivo. Uma cópia de 1024 por 1024 basta para esse trabalho, porque é o tamanho com que a rede trabalha de qualquer forma; o detalhe fino do cabelo e das bordas vem da etapa de refinamento, que lê a própria foto no seu navegador. O arquivo final é gravado a partir dos pixels brutos, então o modelo da câmera, o horário e a posição GPS registrados no original não passam para o PNG.

Configurações que importam mais do que trocar de modelo

Antes de testar outro serviço, ajuste os controles que este já oferece à foto que está na sua frente. Uma foto de produto para um anúncio de loja virtual geralmente pede “Fundo branco” em vez de transparência: os marketplaces tendem a exigir branco, e uma única área branca lisa gera um PNG muito menor do que um recorte com canal alfa. Um retrato que vai para um slide ou um cartaz pede “PNG transparente”, com “Detalhe da borda” em “Bordas precisas” e “Suavidade da borda” no padrão de dois pixels. Um gato, um cachorro ou um cabelo cacheado fica mais natural com a suavidade em seis ou mais, para que o contorno se dissolva no pelo ou nos cachos em vez de terminar em uma linha; um ícone ou um gráfico com cantos nítidos pede zero. “Rápido” serve para um rascunho, mas pula a etapa que desfaz a mistura de cor, então o halo claro descrito acima pode voltar sobre um fundo escuro. “Lado maior” limita o tamanho do resultado: os 2048 pixels do padrão bastam para telas e páginas da web, 4096 é para impressão em uma máquina com memória de sobra, e 1024 é a saída quando a aba não aguenta. Seja qual for a escolha, o arquivo volta como PNG, e até vinte fotos passam com as mesmas configurações para um único ZIP. Se o fundo já for uma única cor lisa, a ferramenta Fundo transparente é ainda mais rápida e não envia nada a servidor nenhum.

Ferramentas usadas neste artigo

Leia também