Eliminar el ruido en el render volumétrico según Pixar
En esta figura, podemos observar claramente la mejor calidad de nuestro nuevo denoiser volumétrico en comparación con el denoiser de estudio actual. La salida de nuestro denoiser muestra una mayor nitidez y niveles más altos de detalle, especialmente notable alrededor de los bordes.
Algunos ejemplos incluyen una mayor nitidez en los límites de la nube rosa, los caracteres de fuego y el objeto a cuadros en el fondo. Estos resultados se obtienen a partir de pases de renderizado volumétrico, específicamente volúmenes FX densos y nieblas ligeras, en las películas Turning Red y Elemental de Disney y Pixar. ©Pixar
Qué es el denoising?
El denoising es un aspecto crucial de los pipelines de renderizado de producción que emplean Monte Carlo path tracing. Los denoisers basados en aprendizaje automático han demostrado ser eficaces para eliminar el ruido residual y generar imágenes limpias. Sin embargo, el denoising en el renderizado volumétrico presenta desafíos debido a la falta de características útiles y conjuntos de datos volumétricos a gran escala.
Como resultado, las secuencias denoiseadas a menudo presentan problemas como el exceso de desenfoque y el parpadeo temporal. En esta investigación, mejoramos el renderizador de producción para generar diversas características volumétricas potenciales que puedan mejorar la calidad del denoising. Empleamos un algoritmo de selección de características de vanguardia para identificar la combinación óptima de estas características.
Para entrenar el denoiser para uso en producción, reunimos miles de escenas volumétricas únicas de películas recientes y aumentamos los datos de entrada para crear un gran conjunto de datos de entrenamiento. Nuestra evaluación demuestra mejoras significativas en calidad en comparación con la versión actual en uso.
Formato de referencia ACM:
Zhu, S., Zhang, X., Röthlin, G., Papas, M., & Meyer, M. (2023). Denoising Production Volumetric Rendering. En Special Interest Group on Computer Graphics and Interactive Techniques Conference Talks (SIGGRAPH '23 Talks) (pp. 1-2). ACM.
Aprendizaje profundo en el Monte Carlo
El aprendizaje profundo ha surgido como el enfoque de vanguardia para el denoising Monte Carlo debido a su capacidad para generar imágenes nítidas y limpias.
Seleccionamos la Red Convolucional de Predicción de Kernel (KPCN, por sus siglas en inglés) propuesta por Bako et al. (2017) y Vogels et al. (2018) para implementar en nuestro estudio, ya que ofrece un rendimiento más robusto que la regresión directa del color de los píxeles. Además, modificamos la arquitectura neuronal incorporando U-Nets con predictores de kernel a nivel de escala, lo que resulta en un diseño más superficial y una inferencia más rápida.
Los buffers de características auxiliares, como el albedo, la profundidad y las normales, desempeñan un papel vital en el denoising basado en redes neuronales. Estas características son menos ruidosas y proporcionan información esencial sobre los colores y las formas de los objetos en la escena.
Sin embargo, seleccionar el conjunto óptimo de características auxiliares es un desafío debido a la alta dimensionalidad del espacio de búsqueda y las correlaciones mutuas entre las características. Para abordar este problema, adaptamos el marco propuesto por Zhang et al. (2022) a nuestras características candidatas, lo que nos permite entrenar un único denoiser de prueba y encontrar progresivamente soluciones cercanas a óptimas.
El conjunto de características seleccionadas se presenta en la Tabla 1. Además, podemos ajustar convenientemente el número de características seleccionadas en función de los requisitos de almacenamiento de producción, ajustando el parámetro de tamaño del algoritmo de selección de características. Por ejemplo, si un programa solo puede acomodar cuatro características auxiliares debido a limitaciones de espacio, podemos reducir la lista en consecuencia.
Función de pérdida: Siguiendo la tradición de KPCN, entrenamos la red neuronal utilizando una función de pérdida de reconstrucción. Específicamente, empleamos el Error Porcentual Absoluto Medio Simétrico (SMAPE, por sus siglas en inglés) para medir la diferencia entre la imagen denoiseada y la imagen de referencia. Además, introducimos una pérdida temporal en las derivadas de píxeles para penalizar las inconsistencias entre fotogramas sucesivos. Estas dos pérdidas se combinan mediante una suma ponderada.
Detalles de entrenamiento: Para el entrenamiento del denoiser, implementamos el marco KPCN utilizando TensorFlow. Los canales de entrada que contienen valores de Alto Rango Dinámico (HDR, por sus siglas en inglés) se someten a un preprocesamiento mediante una transformación de log-modulus para reducir el rango. El denoiser se entrena utilizando descenso de gradiente durante 15.2 millones de pasos, con una disminución de la tasa de aprendizaje a partir de 10^-4. El entrenamiento se realiza en una GPU Tesla V100 instalada en un clúster NVIDIA DGX.
Recopilación de datos de entrenamiento
Dado que no existe un conjunto de datos volumétricos a gran escala fácilmente disponible, creamos nuestro propio conjunto de datos de producción utilizando renderizados volumétricos de películas recientes de Disney y Pixar, como Turning Red, Lightyear y Elemental.
Seleccionamos manualmente más de 2.000 renderizados volumétricos únicos de cientos de tomas, que abarcan varios tipos de volumen, como volúmenes de efectos FX simulados, nubes y nieblas. Nuestro flujo de trabajo de producción implica renderizar volúmenes en un paso separado, con superficies mateadas y composición final de elementos.
Para cada vista de cámara seleccionada, renderizamos tanto el color como todas las características enumeradas en la Tabla 1. Además, establecemos tres niveles diferentes de varianza objetivo de píxeles en el muestreador adaptativo para generar entradas con múltiples niveles de ruido para la aumentación de datos de entrenamiento.
La imagen de referencia se renderiza entre 8K y 16K muestras por píxel, elegidas por el muestreador adaptativo. Para facilitar el denoising temporal entre fotogramas, siempre renderizamos dos imágenes consecutivas con un desplazamiento de medio píxel en la subpíxel para obtener una sobremuestra de alta calidad.