Авторы: Жюльен Валентин и Софиен Буазиз

Репозиторий Github: https://github.com/tensorflow/graphics

В последние несколько лет наблюдается рост новых дифференцируемых графических слоев, которые можно вставлять в архитектуры нейронных сетей. От пространственных преобразователей до дифференцируемых графических рендеров - эти новые слои используют знания, полученные за годы исследований компьютерного зрения и графики, для создания новых и более эффективных сетевых архитектур. Явное моделирование геометрических априорных значений и ограничений в нейронных сетях открывает двери для архитектур, которые можно обучать надежно, эффективно и, что более важно, в режиме самоконтроля.

На высоком уровне конвейер компьютерной графики требует трехмерных объектов и их абсолютного позиционирования в сцене, описания материала, из которого они сделаны, источников света и камеры. Это описание сцены затем интерпретируется средством визуализации для создания синтетической визуализации.

Для сравнения, система компьютерного зрения будет начинать с изображения и пытаться вывести параметры сцены. Это позволяет предсказать, какие объекты находятся в сцене, из каких материалов они сделаны, а также их положение и ориентацию в трехмерном пространстве.

Обучающие системы машинного обучения, способные решать эти сложные задачи трехмерного зрения, чаще всего требуют больших объемов данных. Поскольку маркировка данных - дорогостоящий и сложный процесс, важно иметь механизмы для разработки моделей машинного обучения, которые могут понимать трехмерный мир при обучении без особого надзора. Сочетание методов компьютерного зрения и компьютерной графики дает уникальную возможность использовать огромные объемы легко доступных немаркированных данных. Как показано на изображении ниже, это может быть достигнуто, например, с использованием анализа путем синтеза, когда система технического зрения извлекает параметры сцены, а графическая система воспроизводит изображение на их основе. Если рендеринг соответствует исходному изображению, система технического зрения точно извлекла параметры сцены. В этой настройке компьютерное зрение и компьютерная графика идут рука об руку, образуя единую систему машинного обучения, подобную автоэнкодеру, которую можно обучать самостоятельно.

Дифференцируемые графические слои

Далее мы рассмотрим некоторые функции, доступные в TensorFlow Graphics. Этот тур не является исчерпывающим; для получения дополнительной информации посетите наш Github, чтобы узнать о новых возможностях, предоставляемых TensorFlow Graphics.

Преобразования

Преобразования объектов управляют положением объектов в пространстве. На рисунке ниже формализм ось-угол используется для поворота куба. Ось вращения направлена ​​вверх, а угол положительный, заставляя куб вращаться против часовой стрелки. В этом примере Colab мы показываем, как можно обучить формализм вращения в нейронной сети, которая обучена как предсказывать вращение, так и перемещение наблюдаемого объекта. Эта задача лежит в основе многих приложений, включая роботов, которые сосредоточены на взаимодействии со своей средой. В этих сценариях захват объектов (например, за ручку) роботизированной рукой требует точной оценки положения этих объектов по отношению к руке.

Моделирование камер

Модели камер играют фундаментальную роль в компьютерном зрении, поскольку они сильно влияют на внешний вид трехмерных объектов, проецируемых на плоскость изображения. Как можно увидеть ниже, куб кажется увеличивающимся и уменьшающимся в масштабе, в то время как на самом деле изменения происходят только из-за изменений фокусного расстояния. Попробуйте этот пример Colab, чтобы получить более подробную информацию о моделях камер и конкретный пример того, как их использовать в TensorFlow.

Материалы

Материальные модели определяют, как свет взаимодействует с объектами, чтобы придать им уникальный внешний вид. Например, некоторые материалы, такие как гипс, равномерно отражают свет во всех направлениях, тогда как другие, такие как зеркала, являются чисто зеркальными. В этой интерактивной записной книжке Colab вы узнаете, как сгенерировать следующие визуализации с помощью Tensorflow Graphics. У вас также будет возможность поиграть с параметрами материала и света, чтобы понять, как они взаимодействуют. Точное прогнозирование свойств материала является фундаментальным для многих задач. Например, это может позволить пользователям бросать виртуальную мебель в свое окружение и фотореалистично сочетать предметы с их интерьером, давая пользователям точное представление о том, как будет выглядеть этот предмет мебели.

Геометрия - трехмерные свертки и объединение

В последние годы датчики, передающие трехмерные данные в виде облаков точек или сеток, становятся частью нашей повседневной жизни - от датчиков глубины для смартфонов до лидаров самоуправляемых автомобилей. Из-за их нерегулярной структуры свертки на этих представлениях значительно труднее реализовать по сравнению с изображениями, которые предлагают регулярную структуру сетки. TensorFlow Graphics поставляется с двумя трехмерными сверточными слоями и одним трехмерным объединяющим слоем, что позволяет, например, обучать сети выполнять семантическую классификацию частей на сетках, как показано ниже и продемонстрировано в этой записной книжке Colab.

TensorBoard 3d

Визуальная отладка - отличный способ оценить, идет ли эксперимент в правильном направлении. С этой целью TensorFlow Graphics поставляется с плагином TensorBoard для интерактивной визуализации трехмерных сеток и облаков точек.

Начать

Первый выпуск TensorFlow Graphics совместим с TensorFlow 1.13.1 и выше. Вы найдете API и инструкции по установке библиотеки, посетив https://www.tensorflow.org/graphics.

Благодарности

Создание графики TensorFlow было коллективным усилием. Особая благодарность Джему Кескину, Павлу Пидлипенскому, Амиш Макадиа и Авниш Суд, которые внесли значительный вклад.