Découvrez comment les champs de radiance neuronaux (NeRF) synthétisent des scènes 3D à partir d'images 2D. Apprenez à améliorer l'entraînement NeRF à l'aide Ultralytics pour une segmentation précise.
Les champs de rayonnement neuronal (NeRF) représentent une avancée révolutionnaire dans le domaine de la vision par ordinateur (CV) et de l' IA générative. Ils sont conçus pour synthétiser des scènes 3D photoréalistes à partir d'un ensemble clairsemé d'images 2D. Contrairement aux approches traditionnelles de modélisation 3D qui s'appuient sur des structures géométriques explicites telles que des polygones, des maillages ou des nuages de points, un NeRF utilise un réseau neuronal (NN) pour apprendre une représentation « implicite » d'une scène. En mappant les coordonnées spatiales et les directions de vision à des valeurs de couleur et de densité, les NeRF peuvent rendre des points de vue novateurs avec une fidélité exceptionnelle, capturant avec précision des effets visuels complexes tels que les reflets, la transparence et l'éclairage variable, qui sont souvent difficiles à reproduire avec la photogrammétrie standard .
À la base, un NeRF modélise une scène comme une fonction volumétrique continue. Cette fonction est généralement paramétrée par un réseau d'apprentissage profond (DL) entièrement connecté. Le processus commence par le ray marching, où des rayons sont projetés à partir d'une caméra virtuelle à travers chaque pixel du plan d'image souhaité dans l'espace 3D.
Pour les points échantillonnés le long de chaque rayon, le réseau prend une entrée 5D — comprenant la position spatiale 3D ($x, y, z$) et la direction de vision 2D ($\theta, \phi$) — et produit la couleur émise et la densité volumique (opacité) à ce point. À l'aide de techniques issues du rendu volumique, ces valeurs échantillonnées sont accumulées pour calculer la couleur finale du pixel. Le réseau est entraîné en minimisant la différence entre les pixels rendus et les pixels réels des données d'entraînement d'origine , optimisant ainsi efficacement les pondérations du modèle afin de mémoriser les propriétés visuelles de la scène .
La technologie NeRF est rapidement passée de la recherche universitaire à des outils pratiques, ayant un impact sur diverses industries en comblant le fossé entre la photographie statique et les environnements 3D interactifs.
Il est utile de distinguer NeRF des autres technologies 3D et de vision afin de comprendre son utilité spécifique.
La formation d'un NeRF de haute qualité nécessite souvent des données propres. Le bruit de fond ou les objets en mouvement peuvent provoquer des artefacts de « ghosting » dans le rendu final. Pour atténuer ce phénomène, les développeurs utilisent souvent des modèles de segmentation d'instances pour masquer automatiquement le sujet d'intérêt avant de former le NeRF.
Ultralytics et Python permettent une intégration transparente de la segmentation dans ce flux de travail de prétraitement. L'exemple suivant montre comment utiliser YOLO26 pour générer des masques pour un ensemble d'images, en les préparant pour la reconstruction 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.")
En combinant la précision de la segmentation avec la puissance générative des NeRF, les ingénieurs peuvent créer des pipelines robustes pour la génération de données synthétiques, permettant la création d'échantillons d'entraînement illimités pour d'autres tâches en aval.