Система восприятия зависит от автомобиля, на котором работает. Если перенести один и тот же программный комплекс с внедорожника на седан или другую версию машины, изменятся расположение и калибровка сенсоров, поля зрения, зоны перекрытия, геометрия кузова, синхронизация и покрытие сцены. Светофор окажется в другой части кадра, бордюр может стать менее заметным, а пешеход на краю зоны обзора — менее однозначным.
Поэтому при расширении системы на новые конфигурации и варианты автомобилей разработчикам приходится учитывать эти различия, даже если сама система восприятия остаётся прежней.
Источник: developer.nvidia.com
Сбор и разметка нового набора реальных данных для каждой конфигурации автомобиля обходятся дорого и могут быть невозможны на ранних этапах разработки. Нового автопарка ещё может не существовать, а редкие условия не всегда удаётся записать. Данные реальных поездок по-прежнему нужны для привязки и проверки системы, но синтетические данные позволяют адаптировать модели до появления полного набора для целевого автомобиля.
Задача адаптации конфигурации автомобиля — подготовить ПО восприятия для машины, которой пока может не быть, и перенести его на разные варианты платформы без отдельного большого набора данных для каждого из них.
Как работает NuRec
NVIDIA Omniverse NuRec берёт записи реальных поездок, восстанавливает сцены и создаёт новые изображения с камер целевой конфигурации. Так существующие данные можно использовать, чтобы проверить, как система будет видеть дорогу с другого расположения сенсоров.
В материале описан процесс адаптации комплекса восприятия к новой сенсорной конфигурации по четырём шагам. Учебный пример использует сцены, восстановленные из набора данных NVIDIA Physical ИИ NuRec.
NuRec применяет 3D-гауссово представление точками для восстановления реального окружения по данным сенсоров и последующей визуализации в симуляции. Для адаптации конфигурации автомобиля он восстанавливает поездку, записанную существующим автомобилем, а затем создаёт новые видеопотоки с позиций камер целевой машины.
Рабочий процесс адаптации NuRec под линейку автомобилей. Восстановленная сцена USDZ визуализируется через сенсорную конфигурацию целевой линейки автомобилей, дорабатывается с помощью Harmonizer и используется для обучения систем восприятия
Источник: developer.nvidia.com
Для такой адаптации особенно полезны две возможности NuRec:
Рабочий процесс позволяет пропустить существующую восстановленную поездку через целевую сенсорную конфигурацию, улучшить получившиеся кадры и подготовить их для обучения модели восприятия.
Данные и целевая камера
Набор данных Physical ИИ NuRec на Hugging Face содержит более 1 500 восстановленных нейросетями сцен поездок. Каждая сцена длится около 20 секунд и собрана по шести ракурсам:
Доступ к набору NuRec ограничен. Пользователю нужно принять лицензию, авторизоваться с помощью токена Hugging Face и скачать одну сцену.
Если вы используете агента для программирования, NVIDIA рекомендует клонировать репозиторий NVIDIA/nurec-skills. В нём есть навыки для загрузки наборов данных Physical ИИ, визуализации через NuRec и обработки готовых кадров.
В учебнике применяется синтетическая целевая сенсорная конфигурация из открытого примера. Название камеры, её положение, разрешение и параметры объектива здесь служат примером.
В поставляемой конфигурации есть одна целевая камера, поэтому пример создаёт один поток. Каждая запись сенсора в файле конфигурации содержит разделённое двоеточиями имя камеры, разрешение изображения, модель объектива F-Theta, внутренние параметры и позу камеры относительно платформы.
NRE преобразует такое имя в логический идентификатор. Например, `camera:front:synthetic:120fov` становится `camera_front_synthetic_120fov`.
Чтобы добавить ещё одну целевую камеру, нужно внести новую запись в `rig.sensors`, указать уникальное имя, ширину и высоту изображения, модель объектива, внутренние параметры и преобразование `nominalSensor2Rig_FLU`.
Та же восстановленная с помощью NuRec сцена, визуализированная из исходной конфигурации камер и смещённой целевой конфигурации камер
Источник: developer.nvidia.com
Визуализация целевой конфигурации
NVIDIA рекомендует закрепить публичный контейнер NuRec на неизменяемом дайджесте и загрузить образ. Экспорт траектории и визуализацию нужно выполнять как две отдельные операции в контейнере.
Сначала экспортируется траектория целевой камеры. Затем выполняется разреженная визуализация одной камеры, чтобы проверить конфигурацию. В примере используется `camera_front_synthetic_120fov`, поскольку целевая камера направлена вперёд. Команда визуализации загружает экспортированный файл траектории и выбирает камеру через `--camera-id`.
Сцена USDZ восстановлена по шести исходным камерам, но целевая камера не обязана один в один соответствовать любой из них. У неё могут быть другие положение, ориентация, разрешение, поле зрения и калибровка. Главное, чтобы её поза была задана в той же системе координат платформы, а модель объектива поддерживалась экспортёром.
Камеры, расположенные далеко за пределами наблюдаемой траектории или направленные в области с недостаточным покрытием исходных сенсоров, могут давать менее качественную визуализацию.
В учебном примере используется передняя камера. Чтобы адаптировать, например, задний левый ракурс, сначала нужно добавить заднюю левую камеру в JSON-файл целевой конфигурации, указать её внешние параметры относительно платформы, снова экспортировать траекторию и передать нормализованный логический идентификатор через `--camera-id`.
После этого кадры проверяют на корректность позы, поля зрения и временных меток. Если разреженная визуализация прошла проверку, визуализируют всю последовательность с параметром `--frame-step=1` для всех целевых камер. Для каждой проверенной камеры в конфигурации повторяют параметр `--camera-id`.
Обработка кадров Harmonizer
Нейросетевая визуализация может оставлять артефакты, зависящие от ракурса, несогласованные цвет и тон, а также плохо восстанавливать динамические объекты.
NVIDIA Harmonizer — общедоступная модель последующей обработки с учётом времени. Она исправляет артефакты в NuRec и других нейросетевых визуализациях. Harmonizer улучшает визуальное качество, но не исправляет неверную калибровку, не восстанавливает отсутствующее покрытие сцены и не заменяет проверку целевой камеры.
Навык `nurec-fixer` из NVIDIA/nurec-skills включает настройку, инференс, оценку результата и необязательный файн-тюнинг Harmonizer. Перед загрузкой модели нужно проверить основную систему.
Затем необходимо принять лицензии моделей на Hugging Face, клонировать репозиторий Harmonizer, собрать образ среды выполнения и скачать опубликованные контрольные точки.
Последовательности камер обрабатываются по одной. Родительский каталог с визуализациями монтируется в контейнер, чтобы результат, записываемый рядом с входной папкой, сохранялся на основной системе.
Сравнение бок о бок исходных визуализаций NuRec и результата работы NVIDIA Harmonizer. Harmonizer уменьшает видимые артефакты неба и повышает визуальную согласованность (справа)
Источник: developer.nvidia.com
Проверка набора данных
После создания наборов данных NuRec для новой конфигурации автомобиля результат нужно проверить до подключения к процессу обучения восприятия. Такой набор следует рассматривать примерно так же, как реальные данные с камер автомобиля, а затем подготовить его под требования конкретной модели восприятия.
NVIDIA проверила этот процесс во внутренней программе автоматического вождения, где требовалась поддержка новой конфигурации камер. У команды уже была библиотека поездок с другого автомобиля, но данные целевой конфигурации автомобиля ещё не были доступны.
Репозиторий NVIDIA/nurec-skills упаковывает основные этапы в навыки для ИИ-агента. Навык `physical-ai-datasets` помогает находить и скачивать сцены, `nre` отвечает за визуализацию, а `nurec-fixer` — за обработку результата.
Для полного примера NVIDIA предлагает посмотреть видеозапись о навыках агента для нейросетевой реконструкции.
В открытом репозитории NVIDIA/nurec-skills также есть навыки для поиска наборов данных Physical ИИ, работы с NCore, запуска NuRec и применения DiffusionHarmonizer. Навык `nurec-carline-adaptation` добавляет совместимость и слой отслеживания происхождения данных, но не распространяет исходный код или модели NuRec.
После клонирования репозитория совместимому агенту для программирования можно поручить проверить USDZ и очищенную конфигурацию целевой сенсорной системы, показать точные локальные команды Docker, запустить разреженный тест одной камеры и остановиться до полной визуализации, если проверка камеры или лобового стекла завершится ошибкой.
Узнайте, как NVIDIA Omniverse NuRec использует 3D Gaussian Splatting для реконструкции реальных дорожных сцен и их визуализации в целях симуляции автономных транспортных средств
Источник: developer.nvidia.com
Подготовка исходных данных
Восстановление записанной поездки требует синхронизированных видео с одной и той же записывающей системы и соответствующих метаданных из той же записи. Исходные файлы нужно разложить в согласованную структуру.
Для конвертера и сценария реконструкции из учебника обязательны все три файла Parquet. Другие рабочие процессы NuRec могут поддерживать реконструкцию без траекторий объектов. Названия файлов и сериализация Parquet не являются требованиями NCore. Если те же сведения хранятся в JSON, базе данных или другом формате, открытый шаблон конвертера NCore можно адаптировать для чтения такого источника.
Процесс предполагает, что выбранные видео синхронизированы и охватывают один и тот же интервал записи. Данные калибровки должны описывать каждую выбранную камеру, данные эгомоушена — покрывать период от первой до последней экспозиции, а необходимые для этого сценария траектории объектов — пересекаться с тем же интервалом и использовать единую мировую систему координат.
После конвертации семантический валидатор проверяет эти взаимосвязи в созданной последовательности NCore.
Поставляемый вместе с материалом конвертер поддерживает схему из семи видео и трёх таблиц. Если файлы соответствуют ей, можно сразу запускать сопутствующий конвертер. Для других форматов потребуется отдельная копия открытого шаблона, которая читает конкретные исходные файлы и записывает данные в NCore.
Шаблон представляет собой каркас кода, а не универсальный конвертер. Модуль чтения должен сопоставить эквивалентные данные со следующими компонентами NCore:
При этом нужно соблюдать соглашения NCore о системах координат. Вычисления поз следует выполнять в формате `float64`, а локальную систему `world` перестроить так, чтобы первая поза сенсорной системы была единичной.
Для синхронизированных видео с постоянной частотой кадров, если временные метки кадров не записаны, номинальная временная метка кадра `i` рассчитывается по формуле из материала. При наличии временных меток экспозиции следует использовать их. Номинальная формула предполагает синхронность MP4-потоков.
Конвертер создаёт последовательность с профилем NCore `separate-sensors`. Он формирует отдельный архив компонентов камеры для каждой преобразованной камеры и общий архив для поз, внутренних параметров, масок и ограничивающих параллелепипедов. Фактические разрешение и интерпретация цвета каждой камеры сохраняются.
После запуска конвертера пути к результатам задаются в соответствии с его контрактом. Затем последовательность можно проверить в открытом просмотрщике NCore по адресу `http://localhost:8080`.
Структура NCore
Последовательность NCore V4 с профилем `separate-sensors` обычно включает:
Манифест и все указанные в нём архивы образуют одну логическую последовательность и должны храниться вместе.
Преобразованная последовательность NCore уже содержит измерения исходных сенсоров, калибровку, позы и траектории объектов. Но в ней ещё нет семантической сегментации, карты глубины и масок эгомоушена, необходимых для описанного сценария реконструкции только по данным камер.
Инструкции в `skills/nre` описывают этот этап, а документация по дополнительным данным NuRec определяет требуемые результаты. Открытый контейнер `nre-tools-ga` в NGC предоставляет приложение для инференса.
Для дополнительных данных используется переменная `NRE_AUX_IMAGE`: она помогает отличить контейнеры вспомогательных данных от отдельного образа `nre-ga` для обучения и визуализации. В образе 26.04 GA несколько инструментов доступны через одну точку входа, поэтому в процессе явно выбирается подкоманда `ncore-aux-data`.
Выбранные параметры имеют разные назначения, а таблица 3 в исходном материале связывает каждый параметр с создаваемым результатом. Если не указывать `--camera-id`, будут обработаны все камеры из `NCORE_SEQUENCE_JSON`. Для выбора отдельных камер нужно передать по одному аргументу `--camera-id=
После генерации вспомогательных данных каталог входных файлов для реконструкции получает структуру, описанную в учебнике.
Начать адаптацию восстановленной сцены к новой конфигурации автомобиля можно с открытых программных компонентов, контейнеров, наборов данных и артефактов моделей. Для их использования потребуются соответствующие учётные записи NVIDIA NGC или Hugging Face и принятие лицензий. Среда выполнения NuRec доступна в контейнере `nre-ga` на NGC.
Относительный прирост точности и полноты обнаружения объектов после обучения на синтетических данных, визуализированных с помощью NuRec, для целевой линейки автомобилей по сравнению с базовым уровнем zero-shot. VRU означает уязвимого участника дорожного движения
Источник: developer.nvidia.com
Ежедневные новости об ИИ
Каждый день отбираем важные новости об ИИ, роботах и метавселенных и рассказываем главное — без хайпа и воды. Если хотите понимать, что происходит в ИИ раньше остальных, — подписывайтесь.
Только важное — каждый день
В Telegram