신경 방사 필드(NeRF)가 2D 이미지로부터 3D 장면을 합성하는 방식을 탐구하세요. 정밀한 분할을 위해 Ultralytics 활용하여 NeRF 훈련을 향상시키는 방법을 배우세요.
신경 방사 필드(NeRF)는 컴퓨터 비전(CV) 및 생성형 AI 분야에서 획기적인 발전을 이루었으며, 희소 2D 이미지 집합으로부터 사실적인 3D 장면을 합성하도록 설계되었습니다. 다각형, 메쉬 또는 포인트 클라우드와 같은 명시적 기하학적 구조에 의존하는 기존 3D 모델링 접근법과 달리, NeRF는 신경망(NN) 을 사용하여 장면의 "암시적" 표현을 학습합니다. 공간 좌표와 시점을 색상 및 밀도 값에 매핑함으로써, NeRF는 반사, 투명도, 음영과 같은 복잡한 시각 효과를 정확히 포착하며 탁월한 충실도로 새로운 시점을 렌더링할 수 있습니다. 공간 좌표와 시점을 색상과 밀도 값으로 매핑함으로써, NeRF는 표준 사진측량법으로는 재현하기 어려운 반사, 투명도, 가변 조명과 같은 복잡한 시각 효과를 정확히 포착하며 탁월한 충실도로 새로운 시점을 렌더링할 수 있습니다.
본질적으로 NeRF는 장면을 연속적인 체적 함수로 모델링합니다. 이 함수는 일반적으로 완전 연결된 딥 러닝(DL) 네트워크로 매개변수화됩니다. 이 과정은 레이 마칭으로 시작되며, 여기서 가상 카메라로부터 원하는 이미지 평면의 각 픽셀을 통해 3차원 공간으로 광선이 투사됩니다.
각 광선 상에서 샘플링된 점에 대해, 네트워크는 3차원 공간 위치($x, y, z$)와 2차원 시선 방향($\theta, \phi$)으로 구성된 5차원 입력을 받아 해당 지점에서 방출되는 색상과 부피 밀도(불투명도)를 출력합니다. 볼륨 렌더링 기법을 기반으로, 이러한 샘플링된 값들은 픽셀의 최종 색상을 계산하기 위해 누적됩니다. 네트워크는 렌더링된 픽셀과 원본 훈련 데이터의 실제 픽셀 간 차이를 최소화함으로써 훈련되며, 이는 효과적으로 모델 가중치를 최적화하여 장면의 시각적 특성을 기억하도록 합니다.
NeRF 기술은 학계 연구에서 실용적인 도구로 빠르게 전환되며, 정적 사진과 상호작용 가능한 3D 환경 간의 격차를 해소함으로써 다양한 산업에 영향을 미치고 있습니다.
NeRF의 구체적인 유용성을 이해하기 위해서는 다른 3D 및 비전 기술과 구분하는 것이 도움이 됩니다.
고품질 NeRF 훈련에는 종종 깨끗한 데이터가 필요합니다. 배경 잡음이나 움직이는 물체는 최종 렌더링에서 "고스팅" 아티팩트를 유발할 수 있습니다. 이를 완화하기 위해 개발자들은 종종 인스턴스 분할 모델을 사용하여 NeRF 훈련 전에 관심 대상물을 자동으로 마스크 처리합니다.
Ultralytics Python 통해 세분화를 이 전처리 워크플로에 원활하게 통합할 수 있습니다. 다음 예시는 YOLO26을 사용하여 일련의 이미지에 대한 마스크를 생성하고 이를 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.")
분할의 정밀도와 NeRF의 생성 능력을 결합함으로써, 엔지니어들은 합성 데이터 생성을 위한 견고한 파이프라인을 구축할 수 있으며, 이를 통해 다른 다운스트림 작업을 위한 무제한 훈련 샘플 생성이 가능해집니다.