Нейросеть превратила двумерные наброски в объемные модели

Разработчики из Китая и Канады создали алгоритм, способный превращать двумерные наброски в трехмерные модели. После создания модели пользователь может доработать ее, нарисовав новые линии, после чего алгоритм поменяет модель соответствующим образом. Разработка будет представлена на конференции SIGGRAPH Asia 2018.

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

Группе исследователей под руководством Вэньпин Ван (Wenping Wang) из Гонконгского университета удалось разработать алгоритм, способный создавать 3D-модели из набросков объектов разного типа. Отличие нового алгоритма от многих аналогичных работ заключается в том, что разработчики решили проводить превращение 2D-рисунка в 3D-модель не напрямую, а через промежуточный этап. Алгоритм состоит из двух сверточных нейросетей, которые последовательно обрабатывают исходный набросок.

Сначала набросок подается на нейросеть DFNet, которая превращает размечает на нем карту распределения кривизны. После этого карта вместе с исходным наброском подается на вторую сеть GeomNet, которая создает карту глубины и распределение нормалей к поверхности. Также она присваивает каждой точки индекс уверенности прогноза, который отражает неоднозначность, возникающую при преобразовании двумерного изображение в трехмерное. Пользователь может убрать эту неоднозначность, дорисовав в соответствующих частях наброска дополнительные линии, проясняющие строение объемной модели. В одном из режимов пользователь может нарисовать сразу несколько набросков одного и того же объекта с разных ракурсов, после чего алгоритм объединит их в одну 3D-модель.

Для обучения алгоритма разработчики создали специальный датасет на основе 70 3D-моделей. Для каждой из моделей были рассчитаны карты распределения кривизны, глубин и нормалей к поверхности, а также было сделано множество набросков, сгенерированных разработанным другими исследователями алгоритмом. В результате они получили 260 тысяч обучающих примеров, которые позволили натренировать обе нейросети. Разработчики показали, что алгоритм может создавать модели для объектов разных типов:

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

Григорий Копиев