Как приложение Kaolin может создавать синтетические наборы данных в стиле проигрывателя из ваших файлов в долларах США за считанные минуты

Обзор

Интерес к глубокому 3D-обучению растет с головокружительной скоростью. С PyTorch3D, Kaolin, Open3D, потоком статей из SIGGRAPH, CVPR и ECCV, а также промышленными кейсами, появившимися от Tesla, Amazon и BMW, и это лишь некоторые из них. Ясно, что революция пространственных вычислений уже происходит. Кроме того, движение ИИ, ориентированный на данные, вызвало интерес к загрузке CV-приложений с помощью моделирования. Понимание того, как обрабатывать моноскопические камеры, стереоскопические камеры, 360-градусные камеры, LiDAR, структурированные световые сканы, геопространственные данные, аэрофотоснимки, а часто и то, как объединять их вместе, становится важным навыком.

NVIDIA создает обширную и расширяемую коллекцию инструментов и приложений для плавного, высокоточного моделирования и проектирования внутри NVIDIA Omniverse. Omniverse — это больше, чем ставка NVIDIA на Метавселенную. Они готовятся стать основным набором инструментов для будущего с ненасытной потребностью в 3D-контенте, проникая на растущие рынки игр, промышленной визуализации, визуальных эффектов, автоматизации, пространственной торговли, моделирования и почти всех других отраслей под солнцем. .

Они называют это Omniverse, потому что в основе их ценностного предложения лежит функциональная совместимость и сотрудничество. Это обеспечивается Omniverse Connect, набором расширений, которые позволяют различным 3D-приложениям обмениваться данными с Omniverse в режиме реального времени. Список коннекторов включает Unreal Engine, 3DS Max, Maya, Revit и многое другое каждый день. Ключевым компонентом этой функции является сильная зависимость от стандартов, в частности MDL, PhysX и доллара США Pixar, которые, по словам генерального директора NVIDIA Дженсена Хуанга, станут HTML для Метавселенной.

Без сомнения, их ценностное предложение для Omniverse как единственного источника правды для всей экосистемы 3D-активов было бы очень ценным, если бы оно действительно могло это сделать. NVIDIA вкладывает массу ресурсов в реализацию своего потенциала. Время покажет. А пока давайте посмотрим, как Omniverse, в частности приложение Kaolin, можно использовать сегодня для создания синтетических данных для разработки собственных приложений компьютерного зрения.

Каолин

Kaolin — это высокоуровневая библиотека Python для глубокого 3D-обучения от NVIDIA, созданная на основе PyTorch. Он предоставляет дифференцируемые средства рендеринга, инструменты растеризации, помощники для управления сетками, вершинами, гранями, UV-картами и текстурами, общие функции потерь, такие как Chamfer Distance и IoU, файловый ввод-вывод, преобразование для различных трехмерных представлений, графические свертки, структурированные облака точек и намного больше.

Не путать с библиотекой Kaolin. Приложение Kaolin является дополнением к библиотеке Kaolin и частью набора приложений Omniverse. На сегодняшний день он состоит из трех основных функций:

  • Визуализатор набора данных — просмотр и проверка коллекции моделей долларов США в 3D-интерфейсе.
  • Генератор данных — создание синтетических обучающих данных для приложений компьютерного зрения из коллекции файлов USD. Включает аннотаторы для сегментации, ограничивающие рамки 2D и 3D, нормали, облака точек и многое другое.
  • Визуализатор обучения — просмотр результатов обучения сеток, облаков точек и других структур трехмерных данных во время сеансов глубокого обучения.

Рабочий процесс высокого уровня для использования приложения Kaolin выглядит следующим образом:

  1. Проверьте свою коллекцию 3D-объектов с помощью визуализатора набора данных.
  2. Создайте набор данных с помощью Генератора данных.
  3. Обучите модель набора данных с помощью библиотеки Kaolin.
  4. Визуализируйте результаты тренировок в 3D с помощью Визуализатора тренировок.

Надеюсь, все сойдется вместе, когда я пройдусь по примеру. Прежде всего, давайте загрузим некоторые 3D-ресурсы для работы.

Открытый конструктор Lowe

Lowe’s (да, хозяйственный магазин) делает ставку на Метавселенную. Недавно они опубликовали Lowe’s Open Builder, набор данных из более чем 500 3D-ресурсов в формате GLB и USDZ, который каждый может скачать и использовать бесплатно (условия использования читайте здесь). Он включает в себя шкафы, столешницы, раковины, лампы, коврики, кастрюли, столы, полки и многие другие товары, которые вы можете найти в магазине Lowe’s. Веб-сайт упрощает поиск, проверку и загрузку моделей, поэтому мы будем использовать некоторые из этих активов для наших экспериментов с каолином. Найдите хотя бы один, который вам нравится, и загрузите файл USDZ.

Визуализатор набора данных

Теперь у нас есть наши активы, давайте воспользуемся приложением Kaolin для их просмотра. Визуализатор набора данных может искать в данном каталоге любые файлы .usd, .usda или .usdc и автоматически загружать их в средство просмотра. Его основная цель — быстро проверить коллекции 3D-ресурсов, чтобы понять и выявить возможные проблемы с обучением.

На данный момент он не поддерживает файлы .usdz, но есть простой обходной путь. Если вы знакомы с форматом USD, вы, вероятно, знаете, что файл .usdz — это просто несжатый архив, который содержит некоторую форму файла USD и его медиаактивы (подробнее о спецификации USDZ здесь). Поэтому вы можете просто использовать 7zip, unzip или другую архивационную утилиту для извлечения каждого загруженного вами файла .usdz. Продолжайте и разархивируйте каждый загруженный вами файл .usdz в отдельный каталог с помощью утилиты архивации, подходящей для вашей системы. Внутри вы должны увидеть файл .usdc и несколько текстур в папке. Теперь открытие родительского каталога в визуализаторе набора данных должно успешно загрузить эти модели. Он рекурсивно ищет в указанном каталоге любые файлы .usd, .usda или .usdc.

Следующее видео познакомит вас с использованием визуализатора набора данных.

Это приложение имеет всего несколько простых опций. Вы можете изменить количество объектов, повернуть их, отрегулировать расстояние, просмотреть их с нормализованными размерами или в обычном масштабе, а также отрегулировать ось вверх. Используйте этот визуализатор, чтобы увидеть, например, правильно ли масштаб и ориентация ваших моделей. Если флажок «нормализовать размер» не установлен, книжный шкаф и ваза должны сильно отличаться по размеру. Если флажок установлен, они должны отображаться примерно одинакового размера. Если активы не выглядят вертикально, проверьте также ось вверх. Возможно, вам потребуется настроить свойство «upAxis» файла USD. Все эти активы должны хорошо выглядеть с осью Y вверх.

Генератор данных

Теперь, когда мы знаем, что наши активы имеют правильный размер и полностью текстурированы, мы можем сгенерировать с их помощью некоторые обучающие данные. Вкладка «Генератор данных» создана именно для этого. Эта функция предназначена для быстрой последовательности изображений коллекции активов в стиле поворотного стола с дополнительной опциональной рандомизацией освещения, положения камеры и материалов.

В настоящее время Генератор данных поддерживает следующие типы меток:

  • RGB
  • Глубина
  • Нормали
  • Семантическая сегментация
  • Сегментация экземпляра
  • 2D ограничивающие рамки (узкие или свободные)
  • 3D ограничивающие рамки
  • Облака точек
  • Позы камеры

Следующее видео познакомит вас с использованием Генератора данных.

С помощью генератора данных в Omniverse Kaolin вы можете обучать модели машинного обучения классификации, обнаружению объектов, семантической сегментации/сегментации экземпляров, оценке глубины, пониманию 3D-сцены, 3D-реконструкции и многому другому. Однако вы можете спросить себя: зачем мне генерировать обучающие данные 3D-моделей? В то время как доменная брешь делает использование синтетических данных для реальных приложений нетривиальной задачей, с каждым днем ​​появляется все больше и больше примеров того, как синтетические данные раскрывают возможности, для которых ранее было невозможно или трудно получить реальные данные. Достаточно взглянуть на недавние усилия компаний Tesla, OpenAI, Amazon и Meta (которая недавно приобрела стартап по синтетическим данным AI.Reverie), и это лишь некоторые из них. Его также можно использовать для ускорения разработки прототипов приложений компьютерного зрения без каких-либо инвестиций в оборудование или маркировку.

Визуализатор обучения

Как следует из названия, визуализатор обучения полезен для мониторинга обучения моделей машинного обучения в режиме реального времени. Вы можете задаться вопросом: «Разве не для этого предназначен Tensorboard?» В то время как Tensorboard незаменим для мониторинга потерь, веса и журналов выходных данных, Training Visualizer поддерживает рендеринг ваших 3D-данных с трассировкой лучей в реальном времени. Вы также можете прокручивать итерации обучения, визуализируя, как топология модели и текстуры развиваются в процессе обучения.

Следующее видео познакомит вас с использованием Training Visualizer.

На этом этапе у вас есть два варианта: вы можете либо а) попытаться обучить модель на ваших данных с помощью библиотеки Kaolin, либо б) скачать журнал обучения, который я создал, чтобы сразу же опробовать визуализатор обучения.

Вариант А: установить Каолин

Для обучения модели нам потребуется установить библиотеку Kaolin. Если вы любите приключения, следуйте инструкциям по установке и переходите к Учебнику по растеризатору DIB-R. Короче говоря, это деформирует шаблонную сетку (в данном случае сферу) для приближения к 3D-модели посредством оптимизации с использованием только входных изображений, масок и поз. Вы можете заменить rendered_path на путь к только что созданному набору обучающих данных. Когда вы закончите, откройте вывод в logs_path в Training Visualizer.

Вариант Б. Загрузите журнал тренировок

Если вы хотите, чтобы все было просто, не стесняйтесь скачать этот журнал тренировки, чтобы просмотреть результаты самостоятельно. Извлеките папку из этого файла, а затем откройте ее в визуализаторе обучения (обязательно откройте папку верхнего уровня, потому что приложение может быть привередливым в отношении структуры папок). Вы должны увидеть результаты, как на видео выше.

Заключение

Надеюсь, это помогло вам использовать Omniverse и приложение Kaolin для создания помеченных синтетических наборов данных 3D-моделей USD для глубокого 3D-обучения. Это быстрый и эффективный способ создания наборов данных для компьютерного зрения и экспериментов по глубокому 3D-обучению. Если вы хотите провести более сложную симуляцию для обучения машинному обучению, вы также можете попробовать SDK Omniverse Replicator.

Если все пойдет хорошо, я опубликую следующую статью с подробным описанием того, как использовать Kaolin Wisp, недавно анонсированный набор инструментов, созданный на основе библиотеки Kaolin специально для методов нейронного рендеринга, чтобы вы могли обучать NeRF на этих данных. что мы создали. Следите за обновлениями!