Расширение универсальности IDM-VTON с помощью заземленного сегмента Anything
Введение
Последние несколько лет мы живем в золотой век преобразования текста в изображение. С момента первого выпуска Stable Diffusion для сообщества открытого исходного кода возможности этой технологии резко возросли, поскольку она интегрировалась во все более и более разнообразные конвейеры, чтобы воспользоваться преимуществами инновационной модели компьютерного зрения. От ControlNets до LoRA, Gaussian Splatting и мгновенного захвата стиля — очевидно, что эта инновация будет только расширяться.
В этой статье мы рассмотрим новый захватывающий проект «Улучшение диффузионных моделей для аутентичной виртуальной примерки» или IDM-VTON. Этот проект является одним из последних и лучших конвейеров на основе Stable Diffusion, предназначенных для создания реальной утилиты для творческой модели: примерки одежды. Благодаря невероятному конвейеру теперь можно украсить практически любую человеческую фигуру практически любым предметом одежды, который только можно вообразить. В ближайшем будущем мы можем ожидать увидеть эту технологию на розничных веб-сайтах повсюду, поскольку процесс совершения покупок развивается благодаря невероятному искусственному интеллекту.
Идя немного дальше, после того, как мы представили конвейер в общих чертах, мы также хотим представить новое улучшение, которое мы внесли в конвейер, добавив в конвейер маскировки что-либо заземленный сегмент.
Предварительные условия
- Базовые знания в области машинного обучения: понимание таких концепций компьютерного зрения, как сегментация и ограничивающие рамки.
- Python и PyTorch: знание программирования на Python и PyTorch для реализации моделей.
- Зависимости: установите такие библиотеки, как
torch
,torchvision
иsegment-anything
(если они предусмотрены). - Подготовка набора данных: доступ к помеченным или немаркированным наборам данных изображений для задач сегментации.
- Аппаратное обеспечение: система с поддержкой графического процессора для эффективного обучения и вывода.
Что такое ИДМ-ВТОН?
По своей сути IDM-VTON — это конвейер виртуального облачения фигуры в одежду с использованием двух изображений. По их собственным словам, виртуальная примерка «отображает образ человека, носящего выбранную одежду, с учетом пары изображений, изображающих человека и одежду соответственно» (Источник).
Архитектуру модели мы можем видеть на рисунке выше. Он состоит из параллельного конвейера двух настроенных Diffusion UNet, TyonNet и GarmentNet, а также модуля адаптера подсказки изображения (IP-адаптера). TryonNet — это основная сеть UNet, обрабатывающая изображения человека. Тем временем IP-адаптер кодирует высокоуровневую семантику изображения одежды, которая позже будет использоваться в TryonNet. Одновременно GarmentNet кодирует низкоуровневые характеристики изображения одежды.
В качестве входных данных для TryonNet UNet модель объединяет зашумленные латентные данные для модели человека с маской, извлеченной из его одежды, и представлением DensePose. TryonNet использует теперь объединенные скрытые данные с предоставленной пользователем подробной подписью к одежде [V] в качестве входных данных для TryonNet. Параллельно с этим GarmentNet принимает в качестве входных данных только подробную подпись.
Для достижения окончательного результата, на полпути через этапы распространения в TryonNet, конвейер объединяет промежуточные функции TryonNet и GarmentNet, чтобы передать их на уровень самообслуживания. Окончательный результат получается после объединения функций текстового кодировщика и IP-адаптера со слоем перекрестного внимания.
Что позволяет нам сделать ИДМ-ВТОН?
Короче говоря, ИДМ-ВТОН давайте виртуально примерим одежду. Этот процесс невероятно надежен и универсален, и с его помощью можно применить любую одежду для верхней части туловища (рубашки, блузки и т. д.) к любой фигуре. Благодаря сложному конвейеру, который мы описали выше, исходная поза и общие черты входного объекта сохраняются под новой одеждой. Хотя этот процесс все еще довольно медленный из-за вычислительных требований диффузионного моделирования, он по-прежнему предлагает впечатляющую альтернативу физической примерке одежды. Мы можем ожидать, что эта технология будет распространяться в культуре розничной торговли, поскольку эксплуатационные расходы со временем снижаются.
Улучшение ИДМ-ВТОН
В этой демонстрации мы хотим продемонстрировать некоторые небольшие улучшения, которые мы добавили в приложение IDM-VTON Gradio. В частности, мы расширили возможности модели одевать актеров не только на верхнюю часть тела, но и на все тело, за исключением обуви и головных уборов.
Чтобы сделать это возможным, мы интегрировали IDM-VTON с невероятным проектом Grounded Segment Anything. В этом проекте используется GroundingDINO с функцией Segment Anything, чтобы можно было сегментировать, маскировать и обнаруживать что-либо на любом изображении, используя только текстовые подсказки.
На практике Grounded Segment Anything позволяет автоматически одевать нижнюю часть тела человека, распространяя действие автоматической маскировки на всю одежду на теле. Исходный метод маскировки, используемый в IDM-VTON, просто маскирует верхнюю часть тела и дает довольно большие потери в отношении того, насколько точно он соответствует контуру фигуры. Заземленный сегмент. Любая маскировка значительно более точна и точна к телу.
В демо-версии мы добавили Grounded Segment Anything для работы с исходным методом маскировки. Используйте переключатель Grounded Segment Anything в левом нижнем углу приложения, чтобы включить его при запуске демо-версии.
ИДМ-ВТОН Демо
Настраивать
Как только ваша машина заработает, мы можем приступить к настройке среды. Сначала скопируйте и вставьте каждую строку из следующей ячейки по отдельности в свой терминал. Это необходимо для установки переменных среды.
export AM_I_DOCKER=False
export BUILD_WITH_CUDA=True
export CUDA_HOME=/usr/local/cuda-11.6/
После этого мы можем скопировать весь следующий блок кода и вставить его в терминал. Это позволит установить все необходимые библиотеки для запуска этого приложения и загрузить некоторые необходимые контрольные точки.
## Install packages
pip uninstall -y jax jaxlib tensorflow
git clone https://github.com/IDEA-Research/Grounded-Segment-Anything
cp -r Grounded-Segment-Anything/segment_anything ./
cp -r Grounded-Segment-Anything/GroundingDino ./
python -m pip install -e segment_anything
pip install --no-build-isolation -e GroundingDINO
pip install -r requirements.txt
## Get models
wget https://huggingface.co/spaces/abhishek/StableSAM/resolve/main/sam_vit_h_4b8939.pth
wget -qq -O ckpt/densepose/model_final_162be9.pkl https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/densepose/model_final_162be9.pkl
wget -qq -O ckpt/humanparsing/parsing_atr.onnx https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/humanparsing/parsing_atr.onnx
wget -qq -O ckpt/humanparsing/parsing_lip.onnx https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/humanparsing/parsing_lip.onnx
wget -O ckpt/openpose/ckpts/body_pose_model.pth https://huggingface.co/spaces/yisol/IDM-VTON/resolve/main/ckpt/openpose/ckpts/body_pose_model.pth
Как только они завершат свою работу, мы сможем приступить к запуску приложения.
Демонстрация приложения IDM-VTON
Запустить демонстрацию можно с помощью следующего вызова либо в ячейке кода, либо в том же терминале, который мы использовали. Ячейка кода в блокноте у нас уже заполнена, поэтому мы можем запустить ее, чтобы продолжить.
!python app.py
Щелкните общую ссылку Gradio, чтобы открыть приложение на веб-странице. Отсюда мы теперь можем загрузить изображения нашей одежды и человеческих фигур на страницу, чтобы запустить IDM-VTON! Следует отметить, что мы немного изменили настройки по умолчанию по сравнению с исходной версией, в частности, сократив количество шагов вывода и добавив параметры для любого заземленного сегмента, а также для поиска дополнительных мест на теле для рисования. Grounded Segment Anything расширит возможности модели на все тело объекта и позволит нам одевать его в более разнообразную одежду. Вот пример, который мы сделали, используя образцы изображений из оригинальной демо-версии и, пытаясь найти абсурдный выбор одежды, костюм клоуна:
Пример галереи, созданной с помощью IDM-VTON и Grounded Segment Anything
Обязательно попробуйте его в самых разных позах и типах телосложения! Это невероятно универсально.
Заключительные мысли
Огромный потенциал IDM-VTON очевиден сразу. Быстро приближаются дни, когда мы сможем виртуально примерить любую одежду перед покупкой, и эта технология представляет собой заметный шаг на пути к этому развитию. Мы с нетерпением ждем продолжения работы над аналогичными проектами в будущем!