
Do mundo real ao virtual: Xemelgos Dixitais con Ray-Ban Meta e Gaussian Splatting
No laboratorio de XR do departamento de e-learning do CESGA, estivemos a explorar formas innovadoras de crear xemelgos dixitais aproveitando o material tecnolóxico recentemente adquirido. Tradicionalmente, este o proceso de creación de xemelgos dixitais requiría fotogrametría complexa, modelado 3D manual ou instrumentación específica para recoller datos físicos. Porén, os avances actuais en visión artificial e gráficos 3D permiten automatizar e simplificar gran parte deste traballo.
Neste primeiro proxecto, capturamos escenas reais utilizando os lentes intelixentes Ray-Ban Meta. A partir do vídeo obtido, xeramos unha nube de puntos tridimensional e creamos un modelo baseado en Gaussian Splatting, unha técnica novedosa que supera en moitos aspectos á fotogrametría clásica, especialmente na fidelidade visual e rendemento en tempo real. Unha vez xerado e optimizado, integramos o modelo en Unity, onde pode ser complementado con animacións, interaccións ou datos en tempo real para dar lugar a experiencias inmersivas. Finalmente, visualizamos o noso xemelgo dixital en distintos formatos e dispositivos: desde navegadores web convencionais ata dispositivos de realidade virtual, incluíndo tamén teléfonos móbiles con funcións de realidade aumentada.
Neste artigo presentamos esta metodoloxía moderna de creación rápida de xemelgos dixitais a partir de vídeo, combinando dispositivos de captura portátiles e algoritmos avanzados de reconstrución 3D.
Captura da escena coas Ray-Ban Meta
O primeiro paso para construír un xemelgo dixital é recopilar datos precisos do obxecto ou espazo físico. Nesta metodoloxía empregamos as lentes Ray-Ban Meta smart glasses, desenvolvidas por Meta en colaboración con Ray-Ban, que incorporan unha cámara integrada para a captura de fotos e vídeos en primeira persoa. A súa principal vantaxe é permitir a gravación exactamente dende a perspectiva do usuario, sen necesidade de soster unha cámara ou escáner, o que facilita unha captura máis natural e continua da escena.
As Ray-Ban Meta smart glasses, desenvolvidas por Meta en colaboración con Ray-Ban, que incorporan unha cámara integrada para a captura de fotos e vídeos en primeira persoa

As Ray-Ban Meta de última xeración contan cunha cámara de 12 megapíxeles ultra-gran angular, capaz de gravar vídeo en 1080p durante varios minutos. Isto permite rexistrar imaxes panorámicas de alta calidade, ideais para reconstruír un xemelgo dixital realista. A óptica gran angular axuda a capturar unha ampla porción da escena en cada toma, garantindo un solapamento suficiente entre imaxes consecutivas, un factor clave para a reconstrución 3D posterior.
Para comezar a captura, gravamos un vídeo mentres nos movemos lentamente ao redor do obxecto que queremos capturar, mantendo unha distancia constante de entre 1 e 2 metros e evitando movementos bruscos ou xiros repentinos. O dispositivo mantense ao nivel dos ollos durante a maior parte do percorrido, pero tamén se gravan pasaxes máis baixos (aproximadamente á altura do peito) e máis altos (case ao nivel da cabeza) para obter distintas perspectivas. O paso debe ser pausado e uniforme, garantindo que cada parte do obxecto quede solapada en varias tomas e evitando cambios de iluminación repentinos ou zonas excesivamente escuras. O vídeo remata cunha última volta aínda máis lenta para capturar detalles finos e asegurar unha cobertura completa desde todos os ángulos.
Gravamos un vídeo da zona movéndonos lentamente ao redor do obxecto que queremos escanear.
Extracción de fotogramas e procesado das imaxes
Unha vez temos o vídeo tomado coas lentes, o seguinte paso é a extracción de fotogramas: do ficheiro de vídeo seleccionamos fotogramas individuais a intervalos regulares (por exemplo, 1 fotograma por segundo, dependendo da velocidade de desprazamento) para obter imaxes fixas. Deste xeito, dun paseo gravado de 3 minutos podemos extraer varios centos de imaxes estáticas. É importante que entre imaxes sucesivas haxa suficiente solapamento e continuidade, é dicir, que cada parte da escena apareza en múltiples fotos desde ángulos lixeiramente distintos. Este requisito cúmprese facilmente grazas ao gran angular da Ray-Ban Meta e ao movemento natural da cabeza do usuario: os fotogramas adxacentes do vídeo adoitan ter moitos detalles en común, o que permitirá identificalos máis tarde. Tamén se adoita descartar fotogramas borrosos ou repetitivos para quedar cun conxunto de imaxes de boa calidade que cubran ben toda a escena.

Usamos un script pensonalizado creado para extraer os frames do vídeo, neste caso 1 de cada 8.
O seguinte paso é empregar un software de fotogrametría para aliñar as imaxes e obter unha reconstrución inicial. Neste caso utilizamos RealityCapture (de Capturing Reality/Epic Games), unha ferramenta profesional moi eficiente para construír modelos 3D a partir de fotografías. O proceso de alignment en RealityCapture analiza todas as imaxes e atopa puntos en común entre elas (features ou puntos de interese), agrupándoas segundo corresponden ao mesmo punto físico visto desde diferentes tomas. O resultado é unha nube de puntos que representa eses puntos característicos detectados no espazo 3D, xunto coa estimación da posición e orientación de cada cámara no momento da captura. En esencia, RealityCapture identifica onde estaba situado o obxectivo da cámara para cada foto e cal é a estrutura básica da escena subxacente. Se todo vai ben, todas as imaxes formarán parte dun mesmo conxunto aliñado e veremos un enxame de puntiños no espazo formando unha versión esquelética do entorno real, coas cámaras dispostas arredor.
Reality Capture analiza todas as imaxes e atopa puntos en común entre elas, agrupándoas segundo corresponden ao mesmo punto físico visto desde diferentes tomas.
Con esta nube de puntos e as cámaras calibradas, xa temos a columna vertebral do noso xemelgo dixital. RealityCapture tamén permite xerar unha malla densa tradicional (millóns de puntos e polígonos) e texturas fotorealistas a partir das imaxes, seguindo o fluxo de fotogrametría clásica. Porén, neste proxecto imos desviarnos desa ruta convencional e aproveitar esa calibración inicial para aplicar unha técnica máis nova: Gaussian Splatting. Antes diso, exportamos desde RealityCapture os datos necesarios. Concretamente, gardamos nun ficheiro (por exemplo, CSV) os parámetros intrínsecos e extrínsecos de cada cámara, é dicir, as posicións, orientacións e parámetros ópticos calculados, e noutro ficheiro a nube de puntos. Estes datos servirannos de entrada no seguinte software a utilizar, PostShot.
Creación do modelo 3D con Gaussian Splatting
Unha vez temos as imaxes e a súa calibración, empregamos o software PostShot (Jawset) para crear o modelo 3D mediante Gaussian Splatting (GS). Pero, en que consiste exactamente esta técnica e por que está a chamar tanto a atención no mundo da visión artificial e gráficos 3D? En Gaussian Splatting, a escena represéntase non como a típica malla de triángulos, senón mediante un conxunto de Gaussians en 3D, basicamente pequenas “nubes” de densidade e cor no espazo tridimensional, centrados en determinados puntos. Estes millóns de Gaussians son elementos diferenciables e sumables: cando se proxectan nunha vista determinada, combínanse para reconstruír a imaxe desde ese ángulo.

Imaxe dos Gaussians ou Splats que forman o modelo resultante.
Esta aproximación presenta varias vantaxes importantes fronte á fotogrametría e modelado tradicionais. En primeiro lugar, evita ter que construír xeometría poligonal complicada: non hai que determinar caras nin UVs para texturas, senón que o propio conxunto de puntos continuos describe o aspecto do entorno. En segundo lugar, captura mellor os efectos de iluminación e transparencia presentes nas fotografías orixinais, xa que cada Gaussian pode almacenar información de cor e brillo que contribúe de forma volumétrica á imaxe final (por exemplo, reflexos ou áreas translúcidas pódense reproducir mellor que nunha malla estática). En terceiro lugar, e quizás o máis destacado, o método de Gaussian Splatting permite acadar rendemento en tempo real sen sacrificar calidade visual, algo que os métodos previos non lograran.
Unha vez entendido o concepto, vexamos o proceso práctico de creación do modelo 3D con GS usando PostShot. Este software proporciona un fluxo de traballo integrado para Gaussian Splatting. En primeiro lugar, importamos nel todos os nosos datos: as imaxes extraídas (ou fotogramas do vídeo) e os ficheiros de calibración (cámaras) e nube de puntos que exportamos de RealityCapture. PostShot é capaz de ler esa alineación previa e empregala como punto de partida para o adestramento do modelo Gaussian Splatting, o que mellora a calidade e mesmo permite ter escala métrica real na escena. Unha vez cargados os datos, iniciamos o proceso de adestramento en PostShot: internamente, o software crea unha representación inicial con gaussians situados nas posicións da nosa nube de puntos, e logo iterativamente axusta parámetros para minimizar o erro entre as vistas sintéticas do modelo e as fotografías orixinais. Este proceso de optimización corre totalmente na GPU e de forma bastante rápida; de feito, PostShot ofrece unha vista preliminar en tempo real durante o adestramento. Podemos orbitar a cámara virtual arredor do modelo mentres está aprendendo, e ver como pouco a pouco as manchas borrosas iniciais se van refinando ata reproducir todos os detalles da escena (como se a imaxe fose collendo foco progresivamente). En poucos minutos, dependendo do número de imaxes e complexidade, obtense un modelo de Gaussian Splatting adestrado que concorda coas nosas fotografías.
O proceso de adestramento do modelo en PostShot.
Un aspecto interesante é que PostShot realiza todo o procesado localmente no noso equipo, sen necesidade de subir imaxes á nube, garantindo así a privacidade dos datos. Unha vez satisfeito co resultado, o software permite exportar o modelo 3D resultante.
Alternativas a PostShot
Neste proxecto utilizamos o software PostShot por ser un dos mais avanzados que existen e pola súa carácterística de permitir ver o resultado do adestramento dos modelos en tempo real. Pero hai varias alternativas open source e multiplataforma coas que deberiamos obter os mesmos resultados:
- OpenSplat: Unha implementación libre e de código aberto de Gaussian Splatting 3D, escrita en C++, centrada en ser portátil, lixeira e rápida.
- GSplat: gsplat é unha biblioteca de código aberto para a rasterización de gausianas acelerada por CUDA, con bindings en Python.
- Scaniverse: Unha aplicación que recentemente incorporou soporte para Gaussian Splatting, permitindo aos usuarios crear escaneos 3D de alta calidade directamente desde os seus dispositivos móbiles. Ofrece procesamento local no dispositivo, garantindo a privacidade dos datos.
Limpeza e Optimización do modelo
O modelo de Gaussian Splatting obtido pode facilmente estar composto por varios millóns de puntos Gaussians, cada un contribuíndo lixeiramente á escena. Esta densidade é necesaria para reproducir todos os detalles e texturas con fidelidade fotográfica. Porén, para usalo en aplicacións interactivas (en tempo real e en dispositivos con capacidades limitadas) é aconsellable optimizalo e reducir a súa complexidade. Unha das primeiras técnicas de optimización é a limpeza de artefactos e puntos flotantes: ás veces o proceso de adestramento pode deixar pequenos splats illados no espazo (por ruído ou reflexos das imaxes) que apenas contribúen á calidade visual pero supoñen carga de cómputo. PostShot proporciona ferramentas para seleccionar e eliminar estes puntos innecesarios de forma sinxela, ou mesmo combinalos con puntos veciños. Deste xeito, o número total de splats diminúe e a carga de renderizado tamén.
Supersplat Editor
Outra ferramenta interesante para editar o noso Gaussian Splatting é Supersplat, que conta cun editor de código aberto para a edición e optimización de 3D Gaussian Splats, que funciona directamente no navegador sen necesidade de instalacións adicionais. Este editor pode instalarse tamén en local no noso equipo, evitando así a necesidade de subir os modelos a internet.
Optimización do modelo coa limpeza de artefactos e puntos flotantes que supoñen carga de cómputo.
Compresión do modelo.
Unha vez editado o modelo para eliminar as zonas non necesarias temos a opción adicional de comprimilo para que poida ser usado en dispositivos con pouca capacidade de cómputo, como teléfonos móbiles ou dispositivos de realidade virtual standalone.
A tecnoloxía de Gaussian Splatting é aínda relativamente nova e está en constante evolución. Continúan a aparecer novos formatos e métodos de compresión que buscan establecerse como estándar na representación e almacenamento de escenas 3D. Entre as opcións de compresión destacadas actualmente atópanse:
- Compresión de arquivos .ply: Ferramentas como SuperSplat permiten reducir significativamente o tamaño dos arquivos .ply. Este proceso implica eliminar datos redundantes e almacenar os elementos restantes en formatos de datos cuantizados, resultando nunha diminución considerable do tamaño do arquivo sen perder calidade visual.
- Formato .splat: Este formato busca optimizar a representación dos splats, almacenando a información de maneira máis eficiente e permitindo unha carga e renderización máis rápidas nos motores gráficos.
- Compresión .spz: Recentemente, Niantic introduciu o formato .spz, que pretende converterse no equivalente ao JPEG para os Gaussian Splatting. Este formato ofrece unha compresión avanzada, mantendo a calidade visual e facilitando a distribución dos modelos 3D en diversas plataformas.
A elección do método de compresión dependerá das necesidades específicas do proxecto, considerando factores como o tamaño do arquivo, a calidade visual requirida e a compatibilidade coas ferramentas de desenvolvemento utilizada
Integración motores 3D: Unity
Unha vez optimizado, importamos o modelo de Gaussian Splatting en Unity, un dos motores de tempo real máis empregados para desenvolvementos 3D. A importación realízase mediante un plugin específico capaz de interpretar o formato do modelo, xa que a día de hoxe, nin Unity nin Unreal ofrecen soporte nativo para GS. No noso caso, utilizamos o plugin UnityGaussianSplatting, creado por Aras Pranckevičius, que permite a visualización en tempo real de modelos de Gaussian Splatting en Unity.
Unha vez cargado o modelo en Unity ou Unreal Engine, o noso xemelgo dixital aparece na escena como un obxecto tridimensional máis (aínda que internamente non sexa unha malla convencional). Podemos entón comezar a engadir elementos interactivos e funcionais arredor del.
Despois de integrar e enriquecer a escena con novos elementos 3D, animacións e luces (tendo en conta as limitacións mencionadas), podemos exportala para ser utilizada en experiencias interactivas ou videoxogos, aproveitando as capacidades dos motores de renderizado en tempo real.
Visualización na web e en dispositivos de realidade extendida
Na Web.
Existen librarías como Three.js que, con extensións específicas, permiten representar a nube de Gaussians directamente no navegador. Isto facilita compartir o xemelgo dixital, xa que calquera usuario podería exploralo interactivamente simplemente accedendo a unha URL, sen instalar aplicacións nin posuír hardware especializado. No noso proxecto probamos un visor web no que o usuario pode rotar, facer zoom e activar/desactivar algúns elementos do xemelgo dixital. A experiencia web aínda que limitada polas restricións de GPU do navegador, demostrou que mesmo modelos GS complexos se poden visualizar de forma fluída en PCs modernos. Esta capacidade anticipa un futuro no que os catálogos virtuais, mapas urbanos en 3D ou visitas culturais se ofrezan en liña aproveitando Gaussian Splatting para un realismo sen precedentes.
Realidade Aumentada.
Unha das posibilidades de visualización mais destacada destes xemelgos dixitais ven da mán da realidade aumentada (RA). Esta tecnoloxía permite superpoñer elementos dixitais sobre o mundo real, ofrecendo unha experiencia inmersiva e interactiva. A visualización en RA pode realizarse de dúas maneiras principais:
- A través dunha URL (vía web): Mediante tecnoloxías web avanzadas, é posible acceder a experiencias de RA directamente desde o navegador, sen necesidade de instalar aplicacións adicionais. Isto facilita a difusión e accesibilidade dos xemelgos dixitais a un público máis amplo.
- Mediante unha aplicación nativa: O desenvolvemento de aplicacións específicas para dispositivos móbiles ou lentes de RA permite aproveitar ao máximo as capacidades de hardware, ofrecendo unha experiencia máis optimizada e con funcionalidades adicionais.
Visualización do modelo nun teléfono móbil con realidade aumentada.
No noso proxecto utilizamos a libraría GaussianSplats3D de Mark Kellogg https://github.com/mkkellogg/GaussianSplats3D que permite renderizar o modelo directamente nunha páxina web, engadindo ademais soporte de Realidade Aumentada.
A implementación de xemelgos dixitais en RA ofrece múltiples vantaxes en diversos campos, desde a educación ata a industria, permitindo unha interacción máis natural e enriquecedora co contido dixital.
Realidade Virtual.
A visualización dos xemelgos dixitais en realidade virtual (RV) ofrece unha experiencia inmersiva que permite aos usuarios interactuar de forma directa cos modelos tridimensionais. Nesta modalidade, o usuario pode empregar controladores ou as súas propias mans para rotar, redimensionar e desprazarse a través do modelo, explorando cada detalle desde múltiples perspectivas.
Para visualizar o noso modelo en Realidade Virtual utilizamos o visor Gracia que permite a importación de modelos de Gaussian Splatting para a súa visualización en dispositivos como Meta Quest 3. Cómpre salientar que os modelos baseados en Gaussian Splatting teñen un alto requirimento gráfico, especialmente cando se queren visualizar en realidade virtual. Para que poidan funcionar de forma fluída directamente nun dispositivo autónomo como as Meta Quest 3, é necesaria unha forte optimización e compresión do modelo. Dado que este proceso pode ser complexo e limitar a calidade visual, no noso caso optamos por unha solución máis sinxela: utilizamos a aplicación Gracia en Meta Quest 3 conectada a un PC, o que nos permite obter unha calidade gráfica superior mantendo unha experiencia inmersiva cómoda.
Visualización do modelo nunha contorna de Realidade Virtual, neste caso utilizando un dispositivo Meta Quest 3.
A implementación de técnicas como o 3D Gaussian Splatting facilita a creación de representacións fotorrealistas en RV, permitindo unha renderización eficiente en tempo real. Estas técnicas están a revolucionar a forma en que capturamos e visualizamos escenas 3D, mellorando a calidade e a interactividade das experiencias inmersivas.
Resumo e vindeiros proxectos
Neste primeiro proxecto do laboratorio de XR puidemos empregar parte do novo equipamento dispoñible no laboratorio, como as Meta Ray-Ban para a captura de vídeo, os visores Meta Quest 3 e Apple Vision Pro para a visualización inmersiva, así como un PC de altas prestacións cunha gráfica RTX 4090, clave para o adestramento dos modelos de Gaussian Splatting e renderizado dos modelos.

O dispositivo de VR Apple Vision Pro recentemente adquirido polo CESGA.
A partir desta base, seguiremos publicando neste blog de forma periódica os avances e proxectos de investigación que levamos a cabo nos eidos da realidade extendida, robótica e intelixencia artificial aplicada, co obxectivo principal de compartir coñecemento.
The English version of this post here.