Виртуальная примерка 3D модели одежды на видео (что-то в духе Clometrica)
Пример вывода
Для установки и запуска демо можно использовать файл demo.ipynb. Загрузите его на Colab и выполните.
- Clone repository
!git clone https://github.com/cr00z/virtual-tryon
!cp -r virtual-tryon/* .
- Install detectron2 (for bbox detection)
!pip install 'git+https://github.com/facebookresearch/detectron2.git'
- 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
- 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"
- Install Mesh
!sudo apt-get --yes install libboost-dev
!pip install 'git+https://github.com/MPI-IS/mesh.git'
- 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
- 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 модели одежды
- перепозированный меш одежды рендерится (отрисовывается) поверх картинки
Изучить материалы.Скачать и настроить датасет с 3D-одеждой (лучше оба), которая позволяет менять свою позу.Придумать решение проблемы адаптации формы одежды под конкретное тело человека.Запустить и добиться корректности работы хотя бы 1-го метода предсказания 3D позы человека по видео.Реализовать конвертацию формата 3D позы человека в 3D позу меша одежды.Реализовать рендеринг (отрисовку) 3D модели одежды поверх видео.
- Статьи на русском про 3DML:
- Рассказ про моделирование 3D одежды:
- Модель камеры:
- Библиотеки:
- SMPL:
- Предсказание 3D-позы:
- Датасеты мешей одежды: