Descubra cómo Neural Radiance Fields (NeRF) sintetiza escenas 3D a partir de imágenes 2D. Aprenda a mejorar el entrenamiento de NeRF utilizando Ultralytics para una segmentación precisa.
Los campos de radiación neuronal (NeRF) representan un avance revolucionario en la visión por computadora (CV) y la IA generativa, diseñados para sintetizar escenas 3D fotorrealistas a partir de un conjunto disperso de imágenes 2D. A diferencia de los enfoques tradicionales de modelado 3D que se basan en estructuras geométricas explícitas como polígonos, mallas o nubes de puntos, un NeRF utiliza una red neuronal (NN) para aprender una representación «implícita» de una escena. Al asignar coordenadas espaciales y direcciones de visión a valores de color y densidad, los NeRF pueden renderizar nuevos puntos de vista con una fidelidad excepcional, capturando con precisión efectos visuales complejos como reflejos, transparencia e iluminación variable, que a menudo son difíciles de reproducir con la fotogrametría estándar .
En esencia, un NeRF modela una escena como una función volumétrica continua. Esta función suele parametrizarse mediante una red de aprendizaje profundo (DL) totalmente conectada. El proceso comienza con el ray marching, en el que se proyectan rayos desde una cámara virtual a través de cada píxel del plano de imagen deseado en el espacio 3D.
Para los puntos muestreados a lo largo de cada rayo, la red toma una entrada de 5D, que comprende la ubicación espacial 3D ($x, y, z$) y la dirección de visión 2D ($\theta, \phi$), y genera el color emitido y la densidad de volumen (opacidad) en ese punto. Utilizando técnicas basadas en el renderizado de volúmenes, estos valores muestreados se acumulan para calcular el color final del píxel. La red se entrena minimizando la diferencia entre los píxeles renderizados y los píxeles reales de los datos de entrenamiento originales , optimizando eficazmente los pesos del modelo para memorizar las propiedades visuales de la escena .
La tecnología NeRF ha pasado rápidamente de la investigación académica a las herramientas prácticas, lo que ha tenido un impacto en diversas industrias al salvar la distancia entre la fotografía estática y los entornos 3D interactivos.
Es útil distinguir NeRF de otras tecnologías 3D y de visión para comprender su utilidad específica.
El entrenamiento de un NeRF de alta calidad a menudo requiere datos limpios. El ruido de fondo o los objetos en movimiento pueden causar artefactos de «imágenes fantasma» en el renderizado final. Para mitigar esto, los desarrolladores suelen utilizar modelos de segmentación de instancias para enmascarar automáticamente el sujeto de interés antes de entrenar el NeRF.
La Ultralytics y la Python permiten una integración perfecta de la segmentación en este flujo de trabajo de preprocesamiento. El siguiente ejemplo muestra cómo utilizar YOLO26 para generar máscaras para un conjunto de imágenes, preparándolas para la reconstrucción 3D.
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference to detect and segment objects
# Saving results creates masks useful for NeRF preprocessing
results = model("scene_image.jpg", save=True)
# Access the binary masks for the detected objects
masks = results[0].masks.data
print(f"Generated {len(masks)} masks for NeRF training.")
Al combinar la precisión de la segmentación con el poder generativo de los NeRF, los ingenieros pueden crear sólidas líneas de trabajo para la generación de datos sintéticos, lo que permite la creación de muestras de entrenamiento ilimitadas para otras tareas posteriores.