Адаптация стека автономного вождения (AV) к новой платформе (carline) — от внедорожника к седану — требует учета изменений в геометрии кузова, калибровке сенсоров, полях обзора и окклюзиях. Сбор и разметка новых реальных датасетов для каждой модификации дороги и часто невозможны на ранних этапах разработки. NVIDIA Omniverse NuRec решает эту задачу, позволяя реконструировать реальные сцены вождения с помощью 3D Gaussian Splatting и рендерить их с точки зрения целевой конфигурации сенсоров.
01Архитектура решения: от реального заезда к синтетическому датасету
Процесс адаптации перцепции строится на четырех ключевых этапах. Сначала загружается реконструированная сцена из датасета Physical AI NuRec. Затем, используя файл конфигурации целевого сенсора (rig), выполняется рендеринг новых видов (novel-view synthesis). Полученные кадры очищаются и стабилизируются с помощью NVIDIA Harmonizer. Итоговый набор данных используется для дообучения или валидации модели перцепции.
Датасет NuRec содержит более 1500 нейронно-реконструированных сцен, каждая длительностью около 20 секунд. Исходные данные собирались с нескольких камер. Важно, что реконструкция сохраняет траектории, калибровки и динамические объекты, что позволяет точно переносить разметку на новые виды.
02Шаг 1: Подготовка окружения и загрузка сцены
Для работы требуется доступ к Hugging Face и Docker. Датасет является gated, поэтому необходимо авторизоваться с помощью токена. Рекомендуется использовать фиксированную версию контейнера для воспроизводимости.
Сначала клонируйте репозиторий с навыками (skills) для автоматизации процесса:
git clone https://github.com/NVIDIA/nurec-skills.gitЗатем авторизуйтесь в Hugging Face и скачайте конкретную сцену. В примере используется UUID сцены из релиза 26.04:
import os
from huggingface_hub import login, snapshot_download
login(token=os.getenv("HF_TOKEN"))
snapshot_download(
repo_id="nvidia/PhysicalAI-Autonomous-Vehicles-NuRec",
repo_type="dataset",
allow_patterns="sample_set/26.04_release//*",
local_dir="./nurec_scene"
) 03Шаг 2: Конфигурация целевого сенсора (Rig)
Файл rig (например, minimal-synthetic-target-rig.json) определяет параметры виртуальных камер. Каждая запись в секции sensors содержит имя камеры, разрешение, модель линзы, внутренние параметры (intrinsics) и трансформацию от камеры к rig (camera-to-rig pose).
Имя камеры преобразуется в логический ID. Например, camera:front:synthetic:120fov становится camera_front_synthetic_120fov. Для добавления новой камеры достаточно добавить новый entry с уникальным именем и параметрами.
Установите переменные окружения для путей к сцене, rig и выходной директории:
export SCENE_DIR=/absolute/path/to/scene
export SCENE_FILE=.usdz
export RIG_DIR=/absolute/path/to/rig
export RIG_FILE=minimal-synthetic-target-rig.json
export OUTPUT_DIR=/absolute/path/to/output
mkdir -p "$OUTPUT_DIR" 04Шаг 3: Рендеринг с помощью NuRec Container
NVIDIA рекомендует использовать фиксированный образ контейнера nre-ga для обеспечения стабильности. Сначала экспортируйте траекторию целевой камеры, затем выполните рендеринг.
Зафиксируйте версию образа и скачайте его:
export NUREC_IMAGE='nvcr.io/nvidia/nre/nre-ga:26.04.01@sha256:97f43e7130c5636ce3e80ea3184d97f56a87fdd989b05cce42230881dbdea284'
docker pull "$NUREC_IMAGE"Экспорт траектории целевой камеры:
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Валидационный рендеринг одной камеры (например, передней):
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" render \
--trajectory-path=/outputs/custom_rig_trajectories.json \
--camera-id=camera_front_synthetic_120fov \
--output-dir=/outputs/frames--shm-size=64g установлен корректно, а GPU поддерживает необходимые вычислительные мощности для 3D Gaussian Splatting.05Шаг 4: Постобработка с NVIDIA Harmonizer
Сырой рендеринг может содержать артефакты и временную нестабильность. NVIDIA Harmonizer используется для временной согласованности (temporal consistency) и улучшения качества кадров. Этот шаг критичен для обучения моделей перцепции, так как шумные данные могут привести к снижению точности детекции объектов.
06Кому подойдёт / что запустится
- Разработчики AV-стеков: Для быстрой адаптации моделей перцепции к новым платформам (carlines) без сбора новых реальных данных.
- Инженеры по данным: Для генерации синтетических данных с точной геометрией и калибровкой сенсоров.
Источник: NVIDIA Developer ↗
