Алгоритм «идеального воспроизведения» для создания портретного рисунка

глубокое обучение

「完美复刻」的人物肖像画生成算法 U^2-Net

Введение

Привет, меня зовут Джек.

предложено в этом годуU^2-Net Обнаружение значимостиАлгоритм, который взорвал Reddit и Twitter, известен как «самый сильный на земле» алгоритм сегментации статического фона в 2020 году. Вы можете увидеть эффект:

「完美复刻」的人物肖像画生成算法 U^2-Net

Вы думали, что сегодня мы будем говорить о разделении?неправильный!

U^2-NetСнова через два дняновая жизнь, основанный на сетевой архитектуре U^2-Net, реализуетГенерация портретов, детали воспроизведены "отлично".

「完美复刻」的人物肖像画生成算法 U^2-Net

Я проверил эффект на моей «фотографии с кривой шеей».

「完美复刻」的人物肖像画生成算法 U^2-Net

Не меняйте старые правила десять тысяч лет и продолжайте учить от руки.

Принцип алгоритма, построение среды, реализация эффекта,Поезда, все ниже!

2. U^2-Net

Вдохновленный сетью U-Net, U^2-Net также представляет собой сетевую структуру, аналогичную Encoder-Decoder.

Исходя из этого, исследователи предлагают новый остаточный U-блок (ReSidual U-block, RSU), который объединяет особенности рецептивных полей разного размера для захвата большего количества контекстуальной информации разного масштаба.

Сравнение структуры сети RSU и существующих сверточных блоков выглядит следующим образом:

「完美复刻」的人物肖像画生成算法 U^2-Net

Самая правая структура — это RSU-L, где L представляет количество уровней в кодере, C_in и C_out представляют входные и выходные каналы соответственно, а M представляет количество каналов на внутреннем уровне RSU.

В частности, RSU имеет три основных компонента: входной сверточный слой, симметричную структуру кодера-декодера, подобную U-Net, высотой L и невязку, которая объединяет локальные и многомасштабные признаки путем суммирования соединений.

Чтобы лучше понять концепцию дизайна, исследователи сравнили RSU с исходным остаточным блоком на рисунке ниже.

「完美复刻」的人物肖像画生成算法 U^2-Net

Результаты показывают, что самая большая разница между RSU и исходным остаточным блоком заключается в том, что RSU заменяет обычную однопотоковую свертку структурой, подобной U-Net, и заменяет исходный признак локальным признаком, преобразованным слоем веса.

В частности, благодаря U-образной структуре RSU имеет относительно меньшие вычислительные затраты, поскольку большинство операций применяется к картам объектов с пониженной дискретизацией. На следующем рисунке показана кривая вычислительных затрат RSU и других модулей извлечения признаков:

「完美复刻」的人物肖像画生成算法 U^2-Net

Общая сетевая архитектура U^2-Net выглядит следующим образом:

「完美复刻」的人物肖像画生成算法 U^2-Net

U^2-Net в основном состоит из трех частей:

  • 6-ступенчатый энкодер;
  • 5-ступенчатый декодер;
  • Модуль слияния карт важности, связанный с этапом декодера и конечным этапом кодера.

После разговора о структуре сети давайте посмотрим на функцию потерь.Исследователи использовали тщательно контролируемый алгоритм, аналогичный общему обнаружению вложенных краев (HED):

「完美复刻」的人物肖像画生成算法 U^2-Net

Среди них, M=6, Sup1, Sup2, ..., Sup6 стадии U^2-Net.

「完美复刻」的人物肖像画生成算法 U^2-NetВыходные карты значимости для Sup1, Sup2, ..., Sup6「完美复刻」的人物肖像画生成算法 U^2-Netфункция потерь.

「完美复刻」的人物肖像画生成算法 U^2-NetВывод карты заметности для окончательного слияния「完美复刻」的人物肖像画生成算法 U^2-Netфункция потерь.

「完美复刻」的人物肖像画生成算法 U^2-Netвеса для каждой функции потерь.

Для каждого l используйте стандартную бинарную функцию кросс-энтропийных потерь:

「完美复刻」的人物肖像画生成算法 U^2-Net

Среди них (r, c) — координаты пикселя, (H, W) — размеры изображения, высота и ширина.

「完美复刻」的人物肖像画生成算法 U^2-NetПредставлять значения пикселей GT и прогнозируемые карты значимости соответственно.

В целом, дизайн U^2-Net создает глубокую архитектуру с богатыми многомасштабными функциями и низкими затратами на вычисления и память.

Для получения более подробной информации вы можете прочитать статью напрямую:

АР Вест V.org/PDF/2005.09…

3. Проверка эффекта

Адрес проекта на гитхабе:GitHub.com/Натан UA/U-…

Шаг 1: Настройте тестовую среду.

Это очень просто, никаких специальных библиотек нет, достаточно установить базовые сторонние библиотеки, такие как Pytorch, Numpy и Skimage.

Шаг 2: Загрузите файл веса обученной модели.

мне нужноПрограмма и файл весовВсе упаковано, слишком хлопотно, можно скачать и пользоваться напрямую.

Адрес загрузки (код извлечения: jack):

disk.baidu.com/yes/1 могу я спросить APU0 Гонконг…

Шаг 3: В каталоге проекта запустите программу.

python u2net_portrait_test.py

В u2net_portrait_test.py вы можете просмотреть путь к входному и выходному изображениям:

「完美复刻」的人物肖像画生成算法 U^2-Net

Наконец, посмотрите на эффект операции:

「完美复刻」的人物肖像画生成算法 U^2-Net

В-четвертых, болтовня

На этом все~ Я Джек, увидимся в следующем выпуске.

Статья постоянно обновляется, вы можете найти [JackCui-AI] в общедоступной учетной записи WeChat, чтобы прочитать ее впервые, эта статья GitHubGitHub.com/Джек-Чери — это…Он был включен, и есть полные тестовые сайты для интервью с крупными заводами.Добро пожаловать в Star.