Мы уже недавно писали о том, как ИИ помогает корректировать фигуру на фото. Тогда речь шла о проекте от Alibaba, который в целом неплохо справлялся с задачей, но имел ощутимый недостаток: если тело становилось стройнее, фон по краям мог “поехать”.
Новый проект от китайских исследователей предлагает альтернативный метод изменения формы человеческого тела на изображениях с использованием скоординированной сети двойного нейронного кодировщика, управляемой параметрической моделью. Она позволяет пользователям корректировать вес, рост и пропорции тела через интерактивный графический интерфейс.
![Изменение формы тела с помощью ползунков по трём параметрам Изменение формы тела с помощью ползунков по трём параметрам](https://habrastorage.org/getpro/habr/upload_files/cde/d2a/903/cded2a9034f9ef0c7c112bfccd9525de.jpeg)
Новый проект позволяет реалистично изменять рост, вес и пропорции тела, а также способен заполнить фон, который остаётся после изменения фигуры. Он также имеет улучшения по сравнению с известным параметрическим методом изменения формы тела: теперь не требуется активное вмешательство человека в процесс преобразования.
Новая архитектура под названием NeuralReshaper подгоняет фигуру на фотографии под параметрический трехмерный шаблон, а затем производит искажения на шаблоне, чтобы адаптировать фигуру на фото под новые параметры. Система может выполнять трансформацию как одетых людей, так и полуодетых (например, в купальниках).
![](https://habrastorage.org/getpro/habr/upload_files/1cc/6b0/f5c/1cc6b0f5cf6457891b55149983b97945.jpeg)
Подобные преобразования сейчас вызывают большой интерес в сфере моды. На данный момент создан ряд платформ на основе StyleGAN/CycleGAN и общих нейронных сетей для виртуальных примерочных, где можно адаптировать предметы одежды под фигуру на фотографии пользователей.
Модель SMPL
NeuralReshaper использует линейную модель Skinned Multi-Person Linear Model (SMPL), разработанную Институтом интеллектуальных систем Макса Планка и известной компанией VFX Industrial Light and Magic в 2015 году.
![Трёхмерные модели SMPL Трёхмерные модели SMPL](https://habrastorage.org/getpro/habr/upload_files/ec3/f38/292/ec3f38292645c9c72ac50d8a0be788ae.jpeg)
На первом этапе процесса модель SMPL генерируется из исходного изображения, для которого требуется выполнить преобразования. Адаптация модели SMPL к изображению выполняется по методике восстановления сетки человека (HMR), предложенной университетами Германии и США в 2018 году.
![](https://habrastorage.org/getpro/habr/upload_files/d3d/047/d53/d3d047d53a6247b910789890103c67f6.jpeg)
На данном этапе рассчитываются три параметра деформации (вес, рост, пропорции тела) и учитываются параметры камеры, такие как фокусное расстояние. Двухмерные ключевые точки и выравнивание силуэта позволяют создать точный силуэт фигуры для последующего деформирования.
![Этапы подгонки СМПЛ: слева исходное изображение; далее идёт результат оптимизации; на третьей картинке располагается результат прямого вывода из предварительно обученной модели сквозного восстановления формы и позы человека; на четвёртой показан результат после оптимизации ключевых точек 2D; и, наконец, на пятой показана завершенная подгонка после оптимизации силуэта. Этапы подгонки СМПЛ: слева исходное изображение; далее идёт результат оптимизации; на третьей картинке располагается результат прямого вывода из предварительно обученной модели сквозного восстановления формы и позы человека; на четвёртой показан результат после оптимизации ключевых точек 2D; и, наконец, на пятой показана завершенная подгонка после оптимизации силуэта.](https://habrastorage.org/getpro/habr/upload_files/a2e/02f/e4f/a2e02fe4fd62ff7eed822bf352bcdb63.jpeg)
Затем трехмерная фигура помещается на изображение, чтобы создать плотное поле деформации. Этот процесс занимает около 30 секунд для каждого изображения.
Архитектура NeuralReshaper
NeuralReshaper запускает тандем из двух нейронных сетей: кодировщика переднего плана, который генерирует трансформированную форму тела, и кодировщика фона, который фокусируется на заполнении «освободившихся» областей фона (например, когда тело становится стройнее).
![](https://habrastorage.org/getpro/habr/upload_files/ccf/6ca/075/ccf6ca075a4d7f0a946341df803f5ae3.jpeg)
Фреймворк U-net объединяет выходные данные функций двух кодировщиков перед передачей результата в унифицированный кодировщик, который в конечном итоге создает новое изображение из двух входных данных. Архитектура поддерживает новый механизм, управляемый деформацией, для обеспечения интеграции.
Обучение и эксперименты
NeuralReshaper реализован в PyTorch на графическом процессоре NVIDIA 1080ti с 11 ГБ видеопамяти. Нейросеть обучалась в течение 100 эпох под оптимизатором Адам, при этом генератор был настроен на целевую потерю 0,0001, а дискриминатор — на целевую потерю 0,0004. Обучение проводилось пакетами по 8 образцов для проприетарного набора данных и по 2 образца для обучения на наборе данных DeepFashion.
![Слева исходные изображения, справа после обработки NeuralReshaper. Слева исходные изображения, справа после обработки NeuralReshaper.](https://habrastorage.org/getpro/habr/upload_files/3c1/0e6/2fe/3c10e62fe8cb74c9100a91c697e4c00c.jpeg)
Ниже приведены несколько примеров из набора данных DeepFashion, обученных для NeuralReshaper. Исходные изображения расположены слева.
![](https://habrastorage.org/getpro/habr/upload_files/075/c46/97c/075c4697c9610f0e3ee48bbcfd4a98f9.jpeg)
Преобразования для набора из обычных частных фотоснимков более сложны, поскольку часто требуют дозаполнения сложных фонов:
![](https://habrastorage.org/getpro/habr/upload_files/61e/d96/952/61ed96952be9fc878630df1ae00cae6e.jpeg)
![](https://habrastorage.org/getpro/habr/upload_files/ca1/254/c7f/ca1254c7f8f6be9b2f4e141bdcc797a6.jpeg)
![](https://habrastorage.org/getpro/habr/upload_files/05c/304/c22/05c304c22a2ff96c083444ede3b1a9df.jpeg)
Параметрическая необходимость
Трансформации фигуры на снимках с неоднородным фоном представляют большую сложность. Многие преобразующие среды GAN и кодировщики могут использовать парные изображения (например, разнообразные проекты, где эскиз преобразуется в фото или наоборот). Но в случае коррекции фигуры используются пары картинок с изображением одних и тех же людей, но в разных физических конфигурациях, например изображения «до и после» в рекламе диеты или пластической хирургии. Такие данные трудно получить или сгенерировать.
С другой стороны, преобразующие сети GAN могут обучаться на гораздо более разнообразных данных и выполнять преобразования, ища неявные пути от исходника к желаемому виду (в данном случае «толстый», «худой», «высокий» , так далее.). Однако этот подход в настоящее время слишком ограничен для тонкой настройки изменения формы тела.
Подходы Neural Radiance Fields ( NeRF ) продвинулись гораздо дальше в моделировании всего тела, чем большинство систем на основе GAN, хотя и остаются ресурсоёмкими, ограниченными по возможностям редактирования типов тела и зависимыми от фона.
Скрытым пространством GAN трудно управлять. Сами по себе VAE еще не решают проблем воспроизведения всего тела, а способность NeRF последовательно и реалистично реконструировать человеческие тела все еще находится в зачаточном состоянии. Таким образом, включение «традиционных» методологий CGI, таких как SMPL, похоже, пока всё ещё необходимо для сбора и консолидации признаков, классов и скрытых кодов.