SMERF: Campo de Radiância Transmissível e Eficiente em Memória
(smerf-3d.github.io)- SMERF é um método de síntese de vistas para explorar grandes cenas 3D em tempo real no navegador, visando áreas de até 300m² e resolução volumétrica de 3.5mm³
- A cena é dividida em vários submodelos independentes, e apenas os modelos necessários são selecionados conforme a origem da câmera, reduzindo o custo computacional e o uso de memória durante a renderização
- Primeiro, um campo de radiância offline Zip-NeRF é treinado; depois, ele é destilado em SMERF usando previsões de RGB e diferenças nos pesos de renderização volumétrica para elevar a qualidade
- Na síntese em tempo real de novas vistas, mostrou melhora de 0.78dB em benchmark padrão e de 1.78dB em cenas grandes, além de renderizar quadros centenas de vezes mais rápido que os modelos de campo de radiância mais recentes
- Suporta navegação 6DOF baseada em navegador, permitindo explorar grandes cenas em tempo real mesmo em dispositivos de consumo como smartphones e notebooks comuns
Gargalo da exploração em tempo real de cenas grandes
- As técnicas de síntese de vistas em tempo real avançaram rapidamente, tornando possível renderizar cenas quase fotográficas mesmo em taxas de quadros interativas
- Ainda assim, permanece um trade-off claro entre representações explícitas de cena, que se adaptam bem à rasterização, e campos neurais (neural fields) baseados em ray marching
- Os métodos mais recentes de campos neurais superam as representações explícitas em qualidade, mas têm custo computacional alto para aplicações em tempo real
- SMERF é uma abordagem de síntese de vistas voltada a atingir um dos mais altos níveis de precisão entre os métodos em tempo real para cenas grandes
- Espaços de até 300m²
- Resolução volumétrica de 3.5mm³
- Exploração 6DOF dentro do navegador
- Renderização em tempo real em smartphones e notebooks comuns
Representação baseada em submodelos e aprendizado por destilação
- Grandes cenas com vários cômodos são representadas ao serem divididas em vários submodelos independentes, garantindo capacidade de representação
- Cada submodelo é atribuído a uma região diferente da cena
- Durante a renderização, os submodelos a usar são escolhidos de acordo com a origem da câmera
- Para lidar com efeitos complexos dependentes do ponto de vista, cada submodelo também inclui cópias de parâmetros deferred MLP alinhados em grade
- Esses parâmetros são interpolados trilinearmente com base na origem da câmera
- Cada submodelo representa a cena inteira, mas modela em alta resolução apenas as células de grade associadas a ele
- Isso é implementado por um método de contração das coordenadas locais de cada submodelo
- A fidelidade da imagem é aumentada por destilação (distillation)
- Primeiro, é treinado o campo de radiância offline de última geração Zip-NeRF
- As previsões de cor RGB do modelo professor são usadas como sinal de supervisão para o SMERF
- Os valores de densidade volumétrica do professor pré-treinado são usados para minimizar a diferença entre os pesos de renderização volumétrica do professor e do aluno
Resultados de desempenho e materiais públicos
- O SMERF supera o estado da arte anterior na síntese em tempo real de novas vistas
- Melhora de 0.78dB em benchmark padrão
- Melhora de 1.78dB em cenas grandes
- Renderização de quadros centenas de vezes mais rápida que os modelos de campo de radiância mais recentes
- A demonstração do visualizador interativo em tempo real inclui as cenas Berlin, NYC, Alameda, London, Gardenvase, Bicycle, Kitchen Lego, Stump, Office Bonsai, Full Living Room, Kitchen Counter, Treehill & Flower
- Estão disponíveis Paper, Video e Code
- O modelo SMERF é destilado a partir de checkpoints do Zip-NeRF treinados nas cenas Mip-NeRF 360 e Zip-NeRF
- Os dois datasets e checkpoints são disponibilizados sob licença CC-BY 4.0
- Os checkpoints do Mip-NeRF 360 são usados para resultados quantitativos e qualitativos, e os checkpoints do Zip-NeRF são treinados por 50,000 steps
- Os dados fisheye do Zip-NeRF incluem Alameda, Berlin, London e NYC, são usados para resultados qualitativos e são treinados por 100,000 steps
- Os dados undistorted do Zip-NeRF são usados para resultados quantitativos e são treinados por 100,000 steps
1 comentários
Opiniões no Hacker News
No demo de Berlin, o espelho na parede do banheiro parece dar para a cozinha do cômodo ao lado
O algoritmo de estimativa de profundidade parece usar paralaxe, e isso parece acontecer porque ele confunde o espelho com uma janela
Do lado da cozinha, surge uma massa borrada, como se a parte de trás do espelho invadisse a cozinha, mas dá para ver os dois cômodos através desse borrão
Foi bem assustador, como se eu tivesse virado um fantasma atravessando paredes
Isso imita com precisão o efeito da luz da janela refletida no metal, e também dá para ver o cômodo inteiro “para fora” de dentro da geladeira
O espelho de corpo inteiro no quarto da mesma cena é parecido: há um cômodo espelhado virtual criado atrás do espelho, o que dá uma sensação de profundidade ao olhar para dentro
É um resultado muito legal e peculiar dessa tecnologia
Meu Deus, isso é realmente impressionante
Dá para imaginar a Matterport pegando isso e impulsionando a tecnologia, ou então uma startup surgindo para chacoalhar o mercado imobiliário
É difícil acreditar que rode tão suavemente em um smartphone
Como feedback, acho que seria mais natural ter um modo de movimentação usando a bússola e o giroscópio do celular
Foi um pouco estranho operar com os dedos e entender como se mover nas dimensões xyz
Como outros disseram, um modo VR seria incrível
O motivo de usarem fotos cuidadosamente encenadas e selecionadas é fazer as pessoas irem ver o imóvel pessoalmente
Acho difícil alguém se apaixonar por uma casa só por tê-la visto em realidade virtual
Acho que a experiência de navegação pode melhorar
É um problema para resolver em outro dia
Roda impressionantemente bem até em um S21 FE de 2 anos
A forma como ele faz streaming de mais imagens conforme você explora o espaço foi realmente impressionante, e o reflexo da TV no demo de Berlin também ficou excelente
Mas demorou bastante para carregar todas as imagens, e a cena não foi renderizada até que cerca de 40 imagens iniciais tivessem sido todas carregadas
Fiquei curioso se seria possível começar uma renderização parcial conforme as imagens chegam, ou se é necessário esperar por tudo antes da primeira renderização grande
A versão anterior desta abordagem, MERF, armazenava vetores de características em imagens PNG, mas aqui isso foi substituído por arrays binários
Infelizmente, para renderizar o primeiro frame, é preciso carregar todos esses arrays
Ainda assim, como você apontou, o tamanho grande do payload do SMERF é um ponto fraco
Se encontrarmos uma forma de comprimir 10 vezes, a experiência será completamente diferente
Realmente impressionante. Tenho algumas perguntas com base no demo fulllivingroom
Pessoalmente, prefiro o modo FPS
Essa cena faz parte do benchmark mip-NeRF 360 e pode ser baixada no site do projeto: https://jonbarron.info/mipnerf360/
Para o treinamento, usamos 8x V100 ou 16x A100
Não tenho uma divisão detalhada, mas é mais ou menos 50/50
Acho que um hacker motivado poderia modificar o código JavaScript e testar por conta própria
Se abrir o DevTools do navegador, todo o código está lá
São tempos interessantes
https://twitter.com/gracia_vr/status/1731731549886787634
https://www.gracia.ai
“Researchers create open-source platform for Neural Radiance Field development” (2023)
https://news.ycombinator.com/item?id=36966076
Included Methods e Third-party Methods do NeRF Studio:
https://docs.nerf.studio/#supported-methods
Neural Radiance Field:
https://en.wikipedia.org/wiki/Neural_radiance_field
Venho acompanhando essa tecnologia pelo Two Minute Papers e estou ansioso pelo dia em que poderei usá-la pessoalmente
Meu avô faleceu há 2 anos e, olhando para trás, acabei tirando fotos dele como se fossem para usar em um demo como este
Belo trabalho
Um dia isso será possível
Um trabalho realmente impressionante, e é incrível estar vendo isso no navegador do celular
No desktop, ao ver a cena de NYC na qualidade máxima, fiquei surpreso porque, por exemplo, a qualidade dos objetos sobre o balcão e as prateleiras era bem baixa
Então abri o modelo Lego e ele era muito detalhado, então não parece ser uma limitação do método em si
Fiquei curioso se isso se deve à qualidade das fotos de entrada ou a algum outro motivo
Quanto maior o espaço, mais voxels são necessários para manter uma resolução fixa, por exemplo 1 mm^3
A partir de certo ponto, é preciso abrir mão da resolução espacial para representar cenas maiores
A segunda limitação é o modelo professor usado na destilação
Zip-NeRF(https://jonbarron.info/zipnerf/) é bom, mas não é perfeito
O limite superior da qualidade de reconstrução do SMERF é determinado pelo Zip-NeRF, que é o professor
Parece haver um mercado para corretores de imóveis enviarem fotos e criarem um walkthrough de casas à venda
Fico me perguntando se existe uma cadeia de ferramentas open source para capturar, processar e hospedar walkthroughs 3D navegáveis desse tipo
Algo como um Matterport open source, por exemplo
O fluxo atual é capturar com uma DSLR, estimar os parâmetros da câmera com o COLMAP, treinar um modelo professor em uma base de código, treinar o SMERF na nossa base de código e renderizar o modelo em um visualizador web
Soa como uma oportunidade
Reúna os dados agora e, quando ferramentas melhores surgirem, processe-os então
Guias de captura para fotogrametria e NeRF geralmente se aplicam diretamente ao que é preciso fazer
O que se vê nessas coisas é algo muito preciso, mais próximo de uma única imagem 3D navegável
O que ainda não vi são detecção de características e objetos, bloqueio e extração
Se codecs mais eficientes e aptos a streaming se tornarem necessários, espero que estruturas fáceis de analisar também passem a ser naturalmente exigidas
Há boas pesquisas em andamento nessa área, mas ainda há um longo caminho pela frente
O SMERF trata de “síntese de vistas” para renderizar imagens realistas, e não tenta fazer compreensão semântica nem segmentação
Encontrei procurando por “nerf sam segment 3d” no DuckDuckGo
O SMERF aborda outro problema, mas certamente há formas de integrar informações semânticas e detecção