본문으로 건너뛰기

NVIDIA Omniverse NuRec로 차량 플랫폼별 인식 확장

NuRec가 기존 주행 장면을 목표 차량 rig의 카메라 시점으로 바꿔 carline별 perception 학습 데이터를 만듭니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

차량 플랫폼이 바뀌면 카메라 위치, calibration, 시야각, 가림 영역과 차체 형상이 달라져 같은 perception stack도 객체 인식 결과가 달라질 수 있습니다. NVIDIA Omniverse NuRec는 기존 차량으로 기록한 주행 데이터를 3D Gaussian Splatting으로 재구성한 뒤 목표 차량의 rig와 카메라 모델을 적용해 새로운 시점의 영상을 렌더링합니다. 개발자는 목표 rig 궤적을 만들고, 먼저 희소 프레임으로 pose와 시야를 확인한 다음 전체 시퀀스를 생성하며, NVIDIA Harmonizer로 neural rendering artifact와 색·톤 불일치를 보정합니다. NVIDIA는 내부 automated driving program에서 새 카메라 configuration을 대상으로 NuRec 합성 데이터 학습 후 zero-shot baseline 대비 object-detection precision과 recall의 상대적 증가를 측정했지만, 본문에는 구체적인 수치가 공개되지 않았습니다. 실제 주행 데이터가 부족한 초기 차량 개발 단계에서 기존 장면을 재사용해 목표 carline용 학습 데이터를 준비하되, 렌더링 품질과 calibration을 별도로 확인해야 하는 방식입니다.

빠른 이해

새로운 점

기존 차량에서 수집한 주행 장면을 목표 carline의 카메라 rig로 재렌더링해, 목표 차량이 준비되기 전 perception 학습 데이터를 구성하는 workflow입니다.

핵심 메커니즘

기존 synchronized camera video와 calibration·egomotion·object-track metadata를 NCore V4로 변환하고 auxiliary segmentation·depth·ego mask를 생성한 뒤 NuRec가 장면을 3D Gaussian으로 재구성합니다. 목표 rig의 extrinsics, intrinsics, field of view와 lens model로 custom trajectory를 만들고 sparse render에서 camera pose와 timestamp를 확인한 다음 전체 target view를 출력합니다. Harmonizer가 프레임의 artifact와 시간적 색·톤 불일치를 후처리하고, 정제된 시퀀스를 carline별 perception model 학습 데이터로 사용합니다.

섹션별 상세

01

차량별 인식 차이

자율주행 perception stack은 탑재 차량의 센서 배치와 차체 조건에 맞춰 작동하므로 SUV에서 sedan으로 software를 옮기면 동일한 장면도 프레임 안 위치와 가시성이 달라집니다. 카메라의 placement, calibration, field of view, occlusion, timing, coverage가 함께 변하면서 traffic light, curb, coverage 가장자리의 pedestrian이 다른 형태로 기록됩니다. 새 carline마다 실제 주행 데이터를 수집하고 라벨링하려면 비용이 크고, 차량이 출시되기 전에는 목표 fleet 자체가 없을 수 있습니다. NuRec는 기존 주행 장면을 재구성해 목표 rig의 시점으로 다시 렌더링하므로 전체 목표 데이터셋이 준비되기 전부터 약한 영역과 추가 실수집이 필요한 공백을 확인하게 합니다.
02

NuRec의 장면 재구성

NuRec는 기존 차량의 센서 데이터로 실제 주행 환경을 3D Gaussian Splatting 장면으로 재구성하고, 지정된 camera model을 Gaussian에 투영해 목표 차량의 새로운 camera stream을 만듭니다. gsplat 기반 Novel-View Synthesis에서 camera extrinsics, intrinsics, field of view와 pinhole·fisheye·f-theta lens model을 바꿀 수 있어 목표 센서가 원본 카메라와 일대일로 대응하지 않아도 됩니다. 재구성 장면에는 원래 rig trajectory, per-camera calibration, dynamic object track과 map data가 남아 있어 새 영상의 objects, lanes, traffic lights, road boundaries 라벨을 정렬하거나 변환하는 데 활용됩니다. 다만 관측 trajectory에서 지나치게 멀거나 원본 카메라 coverage가 부족한 방향을 바라보는 목표 카메라는 낮은 품질의 렌더를 만들 수 있습니다.
python
import osfrom huggingface_hub import login, snapshot_download login(token=os.getenv("HF_TOKEN")) # Download one reconstructed scene (USDZ) from the 26.04 releasesnapshot_download( repo_id="nvidia/PhysicalAI-Autonomous-Vehicles-NuRec", repo_type="dataset", allow_patterns="sample_set/26.04_release//*",)

Hugging Face 인증 후 Physical AI NuRec Dataset의 26.04 release에서 USDZ 장면을 내려받습니다.

03

목표 rig 렌더링

Physical AI NuRec Dataset은 1,500개가 넘는 neural-reconstructed driving scene을 제공하며 각 장면은 약 20초 길이이고 6개 camera view에서 재구성됩니다. 개발자는 Hugging Face license를 수락하고 token으로 인증한 뒤 USDZ 장면과 sample target rig를 내려받아 rig JSON의 camera name, resolution, lens parameter, camera-to-rig pose를 설정합니다. 먼저 export-custom-rig-trajectory로 목표 카메라 궤적을 만들고, --camera-id와 --frame-step=30을 사용한 sparse render로 pose, field of view, timestamp를 확인한 후 검사를 통과한 카메라에 --frame-step=1을 적용해 전체 시퀀스를 생성합니다. rig에 카메라를 추가할 때는 고유한 이름과 width, height, lens model, intrinsic parameter, nominalSensor2Rig_FLU transform을 지정해야 하며, logical camera ID는 콜론이 밑줄로 정규화된 형태를 사용합니다.
bash
docker run --rm --gpus all --shm-size=64g \ -v "$SCENE_DIR":/inputs/scene:ro \ -v "$RIG_DIR":/inputs/rig:ro \ -v "$OUTPUT_DIR":/outputs \ "$NUREC_IMAGE" export-custom-rig-trajectory \ --artifact-path="/inputs/scene/$SCENE_FILE" \ --rig-json="/inputs/rig/$RIG_FILE" \ --output=/outputs/custom_rig_trajectories.json

재구성된 장면과 목표 rig JSON을 입력해 목표 카메라 궤적을 생성합니다.

bash
docker run --rm --gpus all --shm-size=64g \ -v "$SCENE_DIR":/inputs/scene:ro \ -v "$OUTPUT_DIR":/outputs \ "$NUREC_IMAGE" render \ --artifact-path="/inputs/scene/$SCENE_FILE" \ --output-dir=/outputs/smoke \ --custom-rig-trajectory=/outputs/custom_rig_trajectories.json \ --no-replicate-training-views \ --renderer=default \ --image-format=png \ --frame-step=30 \ --image-scale=1 \ --frame-naming=frame-end-timestamp \ --camera-id=camera_front_synthetic_120fov

목표 카메라 하나를 30프레임 간격으로 먼저 렌더링해 pose, 시야각, timestamp를 확인합니다.

04

Harmonizer 후처리

Neural rendering은 view-dependent artifact, 색과 tone의 불일치, dynamic object의 부정확한 재구성을 남길 수 있어 렌더 프레임을 그대로 학습에 넣기 어렵습니다. NVIDIA Harmonizer는 한 camera sequence씩 입력받아 시간적 일관성을 고려한 post-processing을 수행하고, diffusion_harmonizer.pkl checkpoint와 timestep=250, resolution=1024 설정으로 출력 프레임을 생성합니다. 본문 Figure 3에서는 raw NuRec render와 Harmonizer 결과를 나란히 비교하며 sky artifact 감소와 시각적 일관성 개선을 제시합니다. 그러나 Harmonizer는 잘못된 calibration을 고치거나 재구성되지 않은 장면 coverage를 복구하지 않으므로 목표 카메라 검사를 대신하지 않습니다.
05

학습 효과와 자동화

NuRec-rendered dataset은 새 carline용 perception training pipeline에 넣기 전에 실제 차량에서 수집한 camera data와 같은 방식으로 품질을 확인해야 합니다. NVIDIA 내부 automated driving program은 다른 차량의 drive library만 있고 목표 carline data가 없는 상황에서 이 workflow를 평가했으며, NuRec 합성 데이터로 학습한 뒤 zero-shot baseline과 비교해 object-detection precision과 recall의 상대적 증가를 측정했습니다. 수치 자체는 본문 Figure 4에 그래프로 제시되고 구체적인 값은 텍스트에 적히지 않았습니다. NVIDIA/nurec-skills는 physical-ai-datasets로 장면을 찾고, nre로 렌더링하며, nurec-fixer로 결과를 다듬는 agent skill을 묶어 coding agent가 sparse smoke test와 camera·windshield 검사를 거친 뒤 전체 렌더로 진행하도록 구성합니다.
06

실제 주행 데이터 변환

직접 기록한 drive를 NuRec에 넣으려면 같은 recording에서 동기화된 video와 metadata를 확보하고, calibration_estimate.parquet, egomotion_estimate.parquet, object_fused.parquet를 영상과 동일한 recording interval에 맞춰 준비해야 합니다. companion converter는 영상의 encoded camera image와 exposure interval을 CameraSensorComponent로, lens와 intrinsics를 IntrinsicsComponent로, camera-to-rig와 vehicle motion을 PosesComponent로, object track을 CuboidsComponent로 옮겨 NCore V4 sequence를 작성합니다. 좌표계는 rig의 +X forward, +Y left, +Z up을 따르고 timestamp는 integer microseconds, distance는 meters로 저장하며 pose 계산은 float64로 수행하고 첫 rig pose가 identity가 되도록 local world frame을 재설정합니다. 변환 뒤 validator와 NCore viewer로 manifest와 camera archive를 확인하고, mask2former·depthanythingv2·ego-mask를 사용해 segmentation, metric depth, ego-vehicle exclusion mask auxiliary data를 생성해야 camera-only reconstruction 입력이 완성됩니다.
bash
docker run --rm --gpus all --shm-size=2g \ --env NGC_API_KEY \--volume "$NCORE_DIR:/workdir/dataset" \ "$NUREC_AUX_IMAGE" ncore-aux-data \ --dataset-path="/workdir/dataset/$SEQUENCE_ID.json" \ --output-dir=/workdir/dataset \ --segmentation-backend=mask2former \ --depth-backend=depthanythingv2 \ --max-depth-m=80 \ --ego-mask \ --no-lidar-seg-camvis \ --no-seg-logits \ --zarr-store-type=itar \ --store-meta \ --num-threads=auto

NCore 시퀀스에서 의미론적 분할, 깊이, ego mask auxiliary data를 생성합니다.

용어 해설

3D Gaussian Splatting
센서로 수집한 장면을 3차원 Gaussian들의 집합으로 표현하고, 각 Gaussian을 카메라 모델에 투영해 새로운 시점의 영상을 렌더링하는 기법입니다. NuRec는 이를 사용해 실제 주행 장면을 재구성하고 목표 차량의 카메라 위치와 시야에 맞는 합성 영상을 생성합니다.
새 시점 합성(Novel-View Synthesis)
이미 관측된 장면 표현과 카메라 파라미터를 이용해 기존 촬영 위치에 없던 시점의 영상을 만드는 과정입니다. NuRec는 카메라의 extrinsics, intrinsics, field of view, lens model을 바꿔 목표 차량의 센서 스트림을 생성합니다.
카메라 외부 파라미터(Camera Extrinsics)
카메라와 차량 rig 사이의 위치·자세 관계를 나타내는 값입니다. 목표 카메라의 extrinsics를 같은 rig 좌표계로 표현하면 기존에 재구성한 주행 장면을 새로운 차량 플랫폼의 시점으로 렌더링할 수 있습니다.
NCore 데이터 형식(NCore)
카메라 영상, 노출 시간, calibration, pose, mask, cuboid 같은 자율주행 데이터를 공통 구조로 저장하는 형식입니다. 변환 과정에서 원천 데이터를 NCore V4 구성요소로 매핑하고, 이후 auxiliary data 생성과 NuRec 재구성에 사용합니다.
의미론적 분할(Semantic Segmentation)
영상의 각 픽셀에 도로, 차량, 보행자 같은 의미 클래스를 할당하는 처리입니다. 이 워크플로에서는 mask2former backend가 카메라별 class mask를 생성해 카메라 전용 NuRec 재구성 입력을 보완합니다.
미터 단위 깊이(Metric Depth)
영상 속 각 픽셀과 카메라 사이의 거리를 실제 길이 단위로 추정한 값입니다. depthanythingv2 backend가 최대 80m 범위의 depth auxiliary data를 만들며, 재구성 과정에서 장면의 공간 정보를 보완합니다.

기술

  • NVIDIA Omniverse NuRec
  • 3D Gaussian Splatting
  • gsplat
  • NVIDIA Harmonizer
  • Hugging Face
  • Docker
  • NVIDIA NGC
  • NVIDIA/nurec-skills
  • NCore V4
  • mask2former
  • depthanythingv2
  • DiffusionHarmonizer
  • USDZ
  • Parquet
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

수집 2026. 09. 01.출처 타입 WEB

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.