Как использовать


Шаг №1


Работа с программой FakeApp. Шаг №1 — Извлечение данных

После открытия FakeApp, первый шаг, который вам будет необходимо сделать – это извлечение. Во время шага «извлечение» лица вырезаются из ваших тренировочных изображений и выравниваются.

Подготовка тренировочной информации

Необходимо подготовить два комплекта тренировочных изображений. В комплекте «А» будет оригинальное лицо, которое вы хотите заменить. В комплекте «Б» будет лицо, которое вы вставите в комплект «А». Помните, что «А» — оригинал, «Б» — желаемое лицо.

Вы должны собрать как минимум несколько сотен изображений Лица «А» и Лица «Б». В идеале, лица должны быть похожими. Легче всего поменять лица, если Лицо «А», оригинал, смотрит вперёд всё время. Тогда всё, чему нужно будет научить компьютер – это как нарисовать Лицо «Б» смотрящим вперёд. Однако, так как большинство лиц двигаются во время видео, этот случай маловероятен, так что будет нужно предоставить фото с различных углов и с различным освещением, чтобы научить компьютерную модель предугадывать вид лица в различных условиях.

Вы можете извлечь изображения из сегментов видео, используя PotPlayer, как описано выше, чтобы сгенерировать изображения с различными углами и выражениями лица. Вы должны избегать изображений, где лица закрыты волосами, очками, руками или другими препятствиями. Мы также рекомендуем вам убрать все изображения с более чем одним лицом. Также вы можете отредактировать изображения с более чем одним лицом, удалив все другие, ненужные вам, лица.

Важно иметь хорошо составленный комплект информации. Разнообразие и качество важнее большого количества тренировочных изображений.

Измените размер всех ваших изображений, используя Lightning Image Resizer, как описано выше, или другой метод, до размера 1280×720 или меньше. Позднее, если случатся проблемы с памятью во время извлечения, вы можете снизить размер до 900×900 или меньше.

Подготовка целевого видеоклипа

Скорее всего, у вас будет определённый видеоклип для Лица «А», которое вы хотите заменить. Убедитесь, что вы включили изображения из этого клипа в ваш тренировочный комплект. Некоторые тренируют компьютерную модель на множестве общих изображений лица, прежде чем тренировать на определённом клипе.

Для вашей первой попытки вы должны просто извлечь все кадры из целевого клипа и использовать их как тренировочную информацию для Лица «А». Вы должны начать с короткого клипа длиной около 10 секунд. Если вы установили FFmpeg и обновили PATH, как описано в статье, вы можете извлечь абсолютно все кадры для замены из этого видеоклипа, используя FFmpeg.

Введите «cmd» в окно поиска Windows. Нажмите Enter, чтобы открыть командную строку.

Введите «cd \» без кавычек, чтобы вернуть корневую директорию C:\. Введите «cd папка», где папка – имя полного пути до вашего видеоклипа. В показанном выше примере файл видео назван clip.mp4 и находится в C:\proj. Находясь в директории с видеофайлом, введите:

ffmpeg -i имя клипа -vf fps=фреймрейт "имя изображения%04d.jpg"

Здесь имя клипа – имя видеофайла, фреймрейт – частота кадров извлечения (используйте 25, если неуверены), и имя изображения – префиксное имя для вашей серии изображений. “%04d означает, что файлы изображений сформируют серию, заполненную нулями, чтобы получить 4 десятичных места, таких как name0001.jpg, name0002.jpg, name0003.jpg, и так далее.

Наблюдайте за прогрессом извлечения кадров.

Измените размер всех ваших изображений, используя Lightning Image Resizer, как описано выше, или другой метод, до размера 1280×720 или меньше. Позднее, если случатся проблемы с памятью во время извлечения, вы можете снизить размер до 900×900 или меньше.

Извлечение оригинального лица

Скопируйте все изменённые изображения для Лица «А» в директорию C:\fakes\data_A. Эта директория должна уже быть создана, если вы установили FakeApp, согласно указаниям выше. Убедитесь, что в этой директории нет других изображений

ЗАМЕЧАНИЕ: настоятельно рекомендуем вам закрыть все другие программы во время работы FakeApp.

Запустите FakeApp с помощью fakeapp.bat. Нажмите на вкладку Extract.

В диалоговом окне Data path, обозначенном «1» на примере выше, введите «C:/fakes/data_A/» без кавычек. Заметьте, что слеши здесь вправо, а не как обычно в Windows, влево. Также заметьте, что здесь есть слеш в конце. В окне, обозначенном «2», вы можете определить тип файла jpg или png, в зависимости от того, что вы использовали для тренировочного комплекта информации.

Можете попробовать png изображения, и, если будут ошибки, используйте jpg изображения.

Убедитесь, что все изображения в вашем тренировочном комплекте корректного типа. В окне «3» можете определить, одно лицо на изображениях или несколько. Рекомендуем оставить здесь значение «false», и для начала использовать только тренировочные комплекты с одним лицом.

В окне «4» вы можете определить, что вы хотите использовать для обработки изображений: GPU или CPU. Если ваш компьютер соответствует минимальным системным требованиям, вам следует оставить эту опцию по умолчанию, так как с GPU будет намного быстрее. Однако, CPU также могут проводить процессы Extract и Convert за разумные периоды времени.

Нажмите кнопку Start.

Появится новое командное окно. Если вы видите что-то похожее на окно выше, вы успешно извлекли лица для вашей тренировочной информации. В примере выше было всего 2 изображения, весь процесс может занять 10-30 минут, в зависимости от количества изображений и спецификаций вашего компьютера. RuntimeError в первой строке – это нормально, эта ошибка появляется всегда. Иногда алгоритм будет не в силах обнаружить лицо. Это будет отмечено в командной строке, и процесс перейдёт к следующему изображению. Это не проблема, если ваш тренировочный комплект информации большой.

Если увидите такое сообщение, как показано выше, извлечение лиц закончилось неудачно из-за ошибки «недостаточно памяти». Вам нужно уменьшить размер тренировочных изображений и попробовать ещё раз. Рекомендуется использовать наибольший размер изображений, с которым справляется ваша память, так что не снижайте размер слишком сильно. Вы можете снизить размер примерно до 900×900. С этим размером у большинства пользователей получается удачный исход.

Если вы видите ошибку о torch._C import, как показано выше, необходимо установить обновлённую версию Visual C++ Redistributable.

Извлечение желаемого лица

Скопируйте все изменённые изображения для Лица «Б» в директорию C:\fakes\data_B. Повторите всё по инструкции выше, но замените текст в диалоговом окне во вкладке Extract на корректный путь к data_b со слешами вправо.

Чистка извлечённой информации

Когда вы успешно извлекли оба комплекта информации, вручную проверьте извлечённые изображения лиц, чтобы убрать неудачные. Будет новая папка «aligned» в C:\fakes\data_A\aligned и C:\fakes\data_B\aligned. Уберите (удалите файлы) все очевидные ошибки в обнаружении лиц. Уберите лица, частично закрытые и имеющие крайние условия освещения. Важно иметь чистый комплект тренировочной информации для наилучших результатов.