Публикувано от Julien Valentin и Sofien Bouaziz

Хранилище на Github: https://github.com/tensorflow/graphics

През последните няколко години се наблюдава нарастване на новите диференцируеми графични слоеве, които могат да бъдат вмъкнати в архитектурите на невронни мрежи. От пространствени трансформатори до диференцируеми графични рендери, тези нови слоеве използват знанията, придобити през годините на компютърно зрение и графични изследвания, за да изградят нови и по-ефективни мрежови архитектури. Изричното моделиране на геометрични приоритети и ограничения в невронни мрежи отваря вратата към архитектури, които могат да бъдат обучени стабилно, ефективно и по-важното, по самоконтролиран начин.

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

За сравнение, система за компютърно зрение ще започне от изображение и ще се опита да направи извод за параметрите на сцената. Това позволява да се предвиди кои обекти са в сцената, от какви материали са направени и тяхната триизмерна позиция и ориентация.

Обучението на системи за машинно обучение, способни да решават тези сложни задачи за 3D визия, най-често изисква големи количества данни. Тъй като данните за етикетиране са скъп и сложен процес, важно е да има механизми за проектиране на модели за машинно обучение, които могат да разберат триизмерния свят, докато се обучават без много надзор. Комбинирането на техники за компютърно зрение и компютърна графика предоставя уникална възможност за използване на огромните количества лесно достъпни немаркирани данни. Както е илюстрирано на изображението по-долу, това може например да се постигне с помощта на анализ чрез синтез, при който визуалната система извлича параметрите на сцената и графичната система изобразява обратно изображение въз основа на тях. Ако изобразяването съвпада с оригиналното изображение, визуалната система е извлякла точно параметрите на сцената. В тази настройка компютърното зрение и компютърната графика вървят ръка за ръка, образувайки единна система за машинно обучение, подобна на автокодер, която може да се обучава по самоконтролиран начин.

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

По-долу ще разгледаме някои от функционалностите, налични в TensorFlow Graphics. Тази обиколка не е изчерпателна; за повече информация посетете нашия Github, за да откриете новите възможности, предоставени от TensorFlow Graphics.

Трансформации

Обектните трансформации контролират позицията на обектите в пространството. В илюстрацията по-долу формализмът ос-ъгъл се използва за завъртане на куб. Оста на въртене сочи нагоре и ъгълът е положителен, карайки куба да се върти обратно на часовниковата стрелка. В този „пример на Colab“ ние показваме как формализмите на въртене могат да бъдат обучени в невронна мрежа, която е обучена да предсказва както въртенето, така и транслацията на наблюдаван обект. Тази задача е в основата на много приложения, включително роботи, които се фокусират върху взаимодействието със своята среда. В тези сценарии хващането на предмети (напр. за дръжката им) с роботизирана ръка изисква прецизна оценка на позицията на тези обекти по отношение на ръката.

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

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

Материали

Материалните модели определят как светлината взаимодейства с обектите, за да им придаде уникален външен вид. Например някои материали като гипс отразяват светлината равномерно във всички посоки, докато други като огледалата са чисто огледални. В този интерактивен Бележник Colab ще научите как да генерирате следните изобразявания с помощта на Tensorflow Graphics. Освен това ще имате възможност да си поиграете с параметрите на материала и светлината, за да развиете добро усещане за това как си взаимодействат. Точното прогнозиране на свойствата на материала е от основно значение за много задачи. Например, може да позволи на потребителите да пускат виртуални мебели в своята среда и да накарат частите да се слеят фотореалистично с интериора им, давайки на потребителите точна представа за това как ще изглежда тази мебел.

Геометрия — 3D навивки и обединяване

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

TensorBoard 3d

Визуалното отстраняване на грешки е чудесен начин да прецените дали даден експеримент върви в правилната посока. За тази цел TensorFlow Graphics идва с плъгин TensorBoard за интерактивно визуализиране на 3D мрежи и облаци от точки.

Първи стъпки

Първата версия на поддръжката на TensorFlow Graphics е съвместима с TensorFlow 1.13.1 и по-нова версия. Ще намерите API и инструкции за инсталиране на библиотеката, като посетитеhttps://www.tensorflow.org/graphics.

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

Създаването на TensorFlow Graphics беше екипно усилие. Специални благодарности на Cem Keskin, Pavel Pidlypenskyi, Ameesh Makadia и Avneesh Sud, които всички направиха значителен принос.