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

Neural Rendering

A renderização neural substitui partes do pipeline gráfico por redes neurais para criar imagens e cenas 3D aprendidas a partir de fotos. Conheça os métodos e veja o código.

A renderização neural é a geração de imagens e vídeos com redes neurais que substituem ou complementam partes do pipeline tradicional de computação gráfica, mantendo o controlo sobre propriedades da cena, como o ponto de vista da câmara, a iluminação, a geometria e a aparência. A renderização convencional calcula uma imagem a partir de modelos 3D, materiais e fontes de luz criados manualmente, recorrendo à física do transporte da luz. A renderização neural, por sua vez, aprende alguns destes elementos a partir de fotografias e vídeos, ou aprende a produzir diretamente os píxeis finais. Enquanto área, a renderização neural combina aprendizagem automática generativa com conhecimento físico da computação gráfica, muitas vezes integrando a renderização diferenciável no treino da rede. A renderização neural permite obter capturas 3D fotorrealistas de locais reais, super-resolução com IA e geração de fotogramas em videojogos, bem como simulação para robótica e carros autónomos.

Como funciona a renderização neural#

O ramo mais influente aprende uma cena 3D a partir de fotografias comuns. Uma representação da cena, como uma rede neural, uma grelha de características aprendidas ou um conjunto de primitivas 3D, é renderizada numa imagem a partir da posição da câmara numa fotografia de treino por um renderizador diferenciável. Como é possível calcular o gradiente em cada etapa do renderizador, a diferença entre a imagem renderizada e a fotografia real pode ser propagada para trás, através da retropropagação, até cada parâmetro da cena. A repetição deste processo a partir de muitos pontos de vista reconstrói a cena com detalhe suficiente para renderizar pontos de vista que nenhuma câmara captou:

As poses das câmaras para as fotografias costumam ser obtidas com software de estrutura a partir do movimento, como o COLMAP, que corresponde características entre fotografias sobrepostas para determinar onde cada uma foi tirada.

Representações neurais de cenas#

Os campos de radiância neural (NeRF), introduzidos em 2020, armazenam uma cena nos pesos de um perceptrão multicamada que mapeia uma posição 3D e uma direção de observação para uma densidade e uma cor. Para renderizar um píxel, o NeRF amostra pontos ao longo do raio da câmara que o atravessa e combina as respetivas cores por renderização volumétrica: cada amostra contribui de acordo com a sua opacidade e com a quantidade de luz que sobrevive às amostras à sua frente. Este código em PyTorch treina um campo pequeno para reproduzir um píxel observado ao longo de um raio:

import torch
from torch import nn

# A tiny neural field that maps a 3D point to a density and an RGB color
torch.manual_seed(0)
field = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 4))
optimizer = torch.optim.Adam(field.parameters(), lr=0.01)

# 64 points along one camera ray, and the color a training photo shows for that pixel
depths = torch.linspace(2.0, 6.0, 64)
points = torch.stack([torch.zeros(64), torch.zeros(64), depths], dim=1)
observed = torch.tensor([0.9, 0.4, 0.1])

for step in range(200):
    density, color = field(points).split([1, 3], dim=1)
    # Volume rendering: each sample's opacity times the light that reaches it through the samples in front
    alpha = 1 - torch.exp(-nn.functional.softplus(density.squeeze(1)) * (depths[1] - depths[0]))
    transmittance = torch.cumprod(torch.cat([torch.ones(1), 1 - alpha[:-1]]), dim=0)
    pixel = (transmittance * alpha) @ torch.sigmoid(color)
    loss = ((pixel - observed) ** 2).sum()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    if step in (0, 199):
        print(f"step {step}: rendered {pixel.detach().numpy().round(2)}, loss {loss.item():.4f}")

Imprime step 0: rendered [0.71 0.37 0.56], loss 0.2496 e step 199: rendered [0.9 0.4 0.1], loss 0.0000. A rede não treinada renderiza uma cor arbitrária, e os gradientes que se propagam para trás através da equação de renderização ajustam os pesos até que o píxel renderizado corresponda à fotografia. Um NeRF real faz o mesmo para milhões de raios provenientes de dezenas a centenas de fotografias.

O NeRF original precisava de um a dois dias de treino por cena numa GPU NVIDIA V100, e cada imagem renderizada exigia entre 150 e 200 milhões de consultas à rede, cerca de 30 segundos por fotograma. O Instant NGP da NVIDIA substituiu a maior parte da rede por uma tabela hash multirresolução de características aprendidas, reduzindo o treino a segundos ou minutos e a renderização a dezenas de milissegundos a 1920×1080. Em 2023, o Gaussian splatting foi ainda mais longe: representou cenas com milhões de gaussianas 3D explícitas, rasterizadas em tempo real sem avaliar nenhuma rede durante a renderização; costuma ser incluído na renderização neural porque é otimizado da mesma forma.

Renderização neural no espaço da imagem#

Um segundo ramo mantém um renderizador convencional e usa redes para concluir ou ampliar os resultados. O DLSS da NVIDIA renderiza jogos com resolução reduzida, aumenta a resolução com modelos Transformer e, nas GPUs GeForce RTX Série 50, gera até cinco fotogramas por cada fotograma renderizado pelo jogo. Os renderizados com traçado de caminhos usam eliminadores de ruído aprendidos para produzir imagens nítidas a partir de poucas amostras de luz por píxel. Outros modelos sintetizam imagens a partir de layouts de cenas: o GauGAN da NVIDIA transformava um mapa semântico de céu, água e árvores numa paisagem fotorrealista, e os sistemas de avatares neurais renderizam o rosto de uma pessoa a partir de novos ângulos ou com nova iluminação.

  • Renderização diferenciável: um renderizador cuja saída permite calcular gradientes em relação às entradas. É o mecanismo que permite à renderização neural aprender a partir de imagens e também é usado sem redes neurais, por exemplo, para ajustar uma malha a fotografias.
  • Renderização inversa: recuperação da geometria, dos materiais e da iluminação a partir de imagens, muitas vezes com renderização diferenciável, para que os resultados possam ser editados e renderizados novamente.
  • Síntese de novas vistas: tarefa de produzir imagens a partir de pontos de vista não observados, abordada por NeRF e Gaussian splatting; a renderização neural engloba um conjunto mais amplo de técnicas.
  • IA generativa: os modelos de texto para imagem e de geração de vídeo criam conteúdo a partir de prompts, geralmente sem uma cena explícita que possa ser observada de uma posição de câmara escolhida.

Aplicações no mundo real#

  • Produção cinematográfica e virtual: os locais captados são reconstruídos como campos de radiância ou splats e renderizados a partir de novos percursos de câmara para efeitos visuais e pré-visualização.
  • Gémeos digitais e comércio eletrónico: as capturas de divisões, edifícios e produtos feitas com telemóveis transformam-se em vistas 3D que clientes e planeadores podem explorar num navegador ou num visor de realidade aumentada.
  • Robótica e veículos autónomos: as viagens registadas são reconstruídas e renderizadas novamente a partir de pontos de vista deslocados, gerando dados sintéticos para testar sistemas de perceção. As pessoas e os carros que se movem durante uma captura deixam artefactos semitransparentes; por isso, os pipelines mascaram-nos nas fotografias de treino, e os modelos de segmentação de instâncias YOLO26 geram automaticamente essas máscaras para cada fotograma. O Block-NeRF da Waymo reconstruiu um bairro inteiro de São Francisco a partir de 2,8 milhões de imagens, unindo uma grelha de NeRFs treinados separadamente.

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