Skip to content

Виртуальная примерка 3D модели одежды на видео (что-то в духе Clometrica)

Notifications You must be signed in to change notification settings

cr00z/virtual-tryon

Repository files navigation

Virtual try-on

Виртуальная примерка 3D модели одежды на видео (что-то в духе Clometrica)

Output

Пример вывода

Описание

demo2

demo1

Установка (Colab)

Для установки и запуска демо можно использовать файл demo.ipynb. Загрузите его на Colab и выполните.

  1. Clone repository
!git clone https://github.com/cr00z/virtual-tryon
!cp -r virtual-tryon/* .
  1. Install detectron2 (for bbox detection)
!pip install 'git+https://github.com/facebookresearch/detectron2.git'
  1. Install opendr
!sudo apt-get --yes install libglu1-mesa-dev freeglut3-dev mesa-common-dev
!sudo apt-get --yes install libosmesa6-dev
!pip install opendr
  1. Install pytorch3d (for rendering)

I ran on version 0.6.1, the old version 0.3.0 is installed on the colab by default, so we install from github

Achtung! May take up to 10-20 minutes, please wait!

%%time
pip -v install "git+https://github.com/facebookresearch/pytorch3d.git"
  1. Install Mesh
!sudo apt-get --yes install libboost-dev
!pip install 'git+https://github.com/MPI-IS/mesh.git'
  1. Download extra data

Download the neutral SMPL model from http://smplify.is.tue.mpg.de/ and place it in the assets folder.

!echo "Download the neutral SMPL model"
!wget https://github.com/classner/up/raw/master/models/3D/basicModel_neutral_lbs_10_207_0_v1.0.0.pkl -P assets

!echo "Downloading extra data from SPIN"
!wget http://visiondata.cis.upenn.edu/spin/data.tar.gz && tar -xvf data.tar.gz && rm data.tar.gz && mv data/smpl_mean_params.npz assets && rm -rf data

!echo "Downloading pretrained model"
!wget https://dl.fbaipublicfiles.com/eft/2020_05_31-00_50_43-best-51.749683916568756.pt -P assets

!echo "Download garment fts from MultiGarmentNetwork"
!wget https://github.com/bharat-b7/MultiGarmentNetwork/raw/master/assets/garment_fts.pkl -P assets
  1. Download Multi-Garment dataset
!wget https://datasets.d2.mpi-inf.mpg.de/MultiGarmentNetwork/Multi-Garmentdataset.zip
!unzip Multi-Garmentdataset.zip

Запуск

В файле main.py отредактировать путь к входному видеофайлу:

input_path = './sample_data/single_totalbody.mp4'

Run it:

!python main.py

Как забрать выходной файл output/out.mp4 через блокнот:

from IPython.display import FileLink
FileLink(r'output/out.mp4')

Основная часть (пайплайн):

  • берется готовый меш одежды
  • на вход приходит видео человека в полный рост (перед зеркалом/снятого от 3-го лица)
  • предсказывается 3D-поза человека по этому видео (покадрово)
  • далее на каждом кадре видео:
    • поза конвертируется в нужный формат для перепозирования 3D модели одежды
    • перепозированный меш одежды рендерится (отрисовывается) поверх картинки

Задача:

  1. Изучить материалы.
  2. Скачать и настроить датасет с 3D-одеждой (лучше оба), которая позволяет менять свою позу.
  3. Придумать решение проблемы адаптации формы одежды под конкретное тело человека.
  4. Запустить и добиться корректности работы хотя бы 1-го метода предсказания 3D позы человека по видео.
  5. Реализовать конвертацию формата 3D позы человека в 3D позу меша одежды.
  6. Реализовать рендеринг (отрисовку) 3D модели одежды поверх видео.

Полезные ссылки:

  1. Статьи на русском про 3DML:
  2. Рассказ про моделирование 3D одежды:
  3. Модель камеры:
  4. Библиотеки:
  5. SMPL:
  6. Предсказание 3D-позы:
  7. Датасеты мешей одежды:

About

Виртуальная примерка 3D модели одежды на видео (что-то в духе Clometrica)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published