Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Neural Style Transfer

A transferência de estilo neural redesenha o conteúdo de uma foto no estilo de outra imagem, combinando estatísticas de características de CNN. Abrange o método de Gatys, modelos rápidos e usos.

A transferência de estilo neural (NST) é uma técnica de visão computacional que representa o conteúdo de uma imagem, como uma fotografia de uma rua, no estilo visual de outra, como uma pintura, fazendo corresponder as características internas de uma rede neuronal convolucional (CNN) pré-treinada. O conteúdo é captado pelos mapas de características de uma camada profunda, que registam o que aparece e onde. O estilo é captado pelas correlações entre canais de características, que registam texturas, cores e pinceladas, mas descartam a sua disposição. Leon Gatys, Alexander Ecker e Matthias Bethge, da Universidade de Tübingen, apresentaram o método em agosto de 2015 no artigo A Neural Algorithm of Artistic Style, e a aplicação Prisma levou-o aos utilizadores de smartphones no ano seguinte.

Como funciona o método original#

O método de Gatys usa a VGG-19, uma CNN treinada com ImageNet, como extrator de características fixo e altera os píxeis da imagem de saída, não os pesos da rede. Duas funções de perda orientam o resultado:

  • Perda de conteúdo: A diferença ao quadrado entre os mapas de características da imagem de saída e os da fotografia de conteúdo numa camada profunda, conv4_2, que mantém os objetos e a disposição reconhecíveis.
  • Perda de estilo: A diferença ao quadrado entre as matrizes de Gram em cinco camadas, de conv1_1 a conv5_1. Para uma camada com C canais, a matriz de Gram é uma tabela C x C cuja entrada (i, j) mede a intensidade com que os canais i e j respondem em conjunto, somada sobre todas as posições da imagem.

Minimiza-se uma soma ponderada das duas perdas com o algoritmo de otimização L-BFGS, e a retropropagação propaga o gradiente pela rede congelada até aos píxeis:

Como a matriz de Gram soma as posições, quase não se altera quando a disposição da imagem muda. Trocar os quadrantes de uma fotografia demonstra isto com a ResNet-18 do torchvision, uma CNN para ImageNet mais pequena do que a VGG-19, em PyTorch:

import torch
from skimage import data
from torchvision.models import ResNet18_Weights, resnet18

weights = ResNet18_Weights.DEFAULT
cnn = resnet18(weights=weights).eval()
early_layers = torch.nn.Sequential(cnn.conv1, cnn.bn1, cnn.relu, cnn.maxpool, cnn.layer1)
preprocess = weights.transforms()

photo = torch.tensor(data.astronaut()).permute(2, 0, 1)  # 3 x 512 x 512
rearranged = torch.roll(photo, shifts=(256, 256), dims=(1, 2))  # same pixels, quadrants swapped


def content_and_style(image):
    """Return an early CNN layer's feature map (content) and its Gram matrix (style)."""
    with torch.no_grad():
        features = early_layers(preprocess(image)[None])[0].flatten(1)  # channels x positions
    return features, features @ features.T / features.shape[1]


(content_a, style_a), (content_b, style_b) = content_and_style(photo), content_and_style(rearranged)
print(f"Content change: {(content_a - content_b).norm() / content_a.norm():.0%}")
print(f"Style change:   {(style_a - style_b).norm() / style_a.norm():.0%}")

Trocar os quadrantes altera o mapa de características em 96%, mas a matriz de Gram apenas em 7%; os 7% restantes resultam das novas junções e do recorte central, que mantém uma parte diferente de cada imagem. É por isso que a perda de estilo copia as pinceladas e a paleta de uma pintura sem copiar a posição de cada elemento.

Transferência de estilo rápida e arbitrária#

Otimizar cada imagem exige centenas de iterações; por isso, trabalhos posteriores transferiram a otimização para o treino. Em 2016, Justin Johnson, Alexandre Alahi e Li Fei-Fei, de Stanford, treinaram uma rede feed-forward por estilo com as mesmas perdas, produzindo resultados cerca de três ordens de grandeza mais rápidos, e aplicaram as mesmas perdas percetuais à super-resolução. Dmitry Ulyanov e colegas descobriram que substituir a normalização por lotes pela normalização por instância nessas redes melhorava a qualidade da estilização. A normalização adaptativa por instância (AdaIN, 2017), de Xun Huang e Serge Belongie, funciona com qualquer estilo sem novo treino: ajusta a média e o desvio-padrão de cada canal de características do conteúdo para corresponder aos da imagem de estilo e, depois, descodifica; o processo decorre em tempo real.

Transferência de estilo para modelos de visão robustos#

Robert Geirhos e colegas usaram AdaIN para mostrar que as CNNs treinadas com ImageNet dependem mais da textura do que da forma: uma ResNet-50 classifica como elefante uma imagem de um gato com textura de pele de elefante, um caso de aprendizagem de atalhos. A equipa criou o Stylized-ImageNet ao aplicar a cada imagem do ImageNet o estilo de uma pintura aleatória da coleção Painter by Numbers, com 79.434 pinturas; uma ResNet-50 treinada com esse conjunto passou a depender da forma. Usar essa rede baseada na forma como backbone de um modelo Faster R-CNN de deteção de objetos elevou o mAP50 no Pascal VOC 2007 de 70,7 para 75,1 e no MS COCO de 52,3 para 55,2.

A mesma ideia funciona como aumento de dados para conjuntos de dados de deteção, porque a transferência de estilo mantém cada objeto no mesmo sítio. Uma cópia estilizada de uma imagem rotulada reutiliza as caixas delimitadoras originais; por isso, num conjunto de dados de deteção Ultralytics YOLO26, só precisa de uma cópia do ficheiro de rótulos original com o novo nome da imagem.

  • Redes adversariais generativas (GANs): O CycleGAN aprende um mapeamento entre coleções inteiras de imagens, como fotografias e pinturas de Monet, em vez de corresponder às estatísticas de uma única imagem de estilo.
  • Aprendizagem por transferência: Ajusta por fine-tuning pesos pré-treinados para uma nova tarefa. A NST nunca atualiza os pesos da rede e usa-a apenas para medir as perdas.
  • Modelos de difusão: Reestilizam imagens a partir de uma instrução de texto ou de uma imagem de referência, regenerando-as; este processo pode alterar formas e detalhes, além do estilo.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina