В Facebook появилась возможность конвертировать свою 2D фотографию в 3D с помощью функционала 3D Photos. Внутри 3D Photos — сверточная нейросеть, которая принимает на вход 2D фото и генерирует карту глубины этого фото.
Функционал 3D Photos от Facebook запустили в 2018. 3D Photos требовал наличие в смартфоне режима “портретного снимка” c двойной камерой. Такой характеристикой обладают исключительно смартфоне последних поколений. Из-за этого функионалом не могли пользоваться владельцы телефонов без фронтальной камеры. В обновленном 3D Photos функция доступна для владельцев любых смартфонов. Модель восстанавливает 3D структуру любого изображения: от недавно сделанного до изображения десятилетней давности.
Архитектура модели основана на CNN. Сверточная нейросеть принимает на вход RGB изображение. На выходе модель для каждого пикселя предсказывает его расстояние до камеры. Сеть состоит из набора параметризованных блоков. Размеры блоков подбирали с помощью автоматического поиска. Веса обученной нейросети квантизировали, чтобы обеспечить высокую производительность модели в продакшене.
Блоки в нейросети
Модель в 3D Photos использует архитектуру блоков, которая вдохновлена FBNet. FBNet — это фреймворк для оптимизации структуры сверточной сети под мобильные или другие девайсы с ограниченными ресурсами. Блок состоит из point-wise свертки, опционального апсемплинга, K x K свертки и дополнительной point-wise свертки. Сама архитектура нейросети напоминает U-net. Кодировщик и декодировщик нейросети состоят из 5 шагов.