Что нового?

Welcome to Все о цифровых товарах продажа цифровых товаров - All about digital goods selling digital goods - Управляющий партнер юридической группы Golo Ltd - Managing partner of the Golo Ltd legal group

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, and so, so much more. It's also quick and totally free, so what are you waiting for?

Ask question

Ask Questions and Get Answers from Our Community

Answer

Answer Questions and Become an Expert on Your Topic

Contact Staff

Our Experts are Ready to Answer your Questions

Deepfake DeepFake-туториал: создаем собственный дипфейк в DeepFaceLab

АртемийЛебедев

Квартирмейстер
Premium
Регистрация
2 Сен 2020
Сообщения
13
Реакции
1
Баллы
8
Адрес
https://www.artlebedev.ru/
Веб-сайт
www.tema.ru
Credits
335
Native language | Родной язык
Русский
Рассказываем о технологии DeepFake и шаг за шагом учимся делать дипфейки в DeepFaceLab – нейросетевой программе, меняющей лица в видеороликах.




Как увидеть ссылки? | How to see hidden links? – технология синтеза изображения, основанная на искусственном интеллекте и используемая для замены элементов изображения на желаемые образы. Если вы не слышали о дипфейках, посмотрите нижеприведенный видеоролик, в котором актер Как увидеть ссылки? | How to see hidden links? читает стихотворение «Пожалейте бедного пародиста» в двадцати лицах знаменитостей.

Название технологии – объединение терминов «Как увидеть ссылки? | How to see hidden links?» (англ. Deep Learning) и «подделка» (англ. Fake). В большинстве случаев в основе метода лежат Как увидеть ссылки? | How to see hidden links? (GAN). Одна часть алгоритма учится на фотографиях объекта и создает изображение, Как увидеть ссылки? | How to see hidden links?, пока та не начнет путать копию с оригиналом.

В следующем видео показаны процессы, происходящие за кулисами обучения нейросети. Как пишет автор проекта Как увидеть ссылки? | How to see hidden links?, на итоговое видео было потрачено более 250 часов работы. При этом использовались 1200 часов съемочных материалов и 300 тыс. изображений. Объем сгенерированных данных составил приблизительно 1 Тб.

Области применения технологии​


Уже имеются целые Как увидеть ссылки? | How to see hidden links?- и Как увидеть ссылки? | How to see hidden links?-каналы c дипфейк-роликами. Технология DeepFake может применяться для самых разных целей.

Кинопроизводство. Производство фильмов сегодня – крайне затратный процесс с арендой камер, студий и оплатой работы актеров. Развитие технологии DeepFake позволит сократить затраты на съемочный процесс, монтаж и спецэффекты.

Локализация рекламы. Достаточно записать один рекламный ролик со знаменитостью, после чего лицо знаменитости можно переносить в видео с местными актерами, произносящими рекламные слоганы на родном языке. Так можно добиться эффекта, как будто знаменитость говорит на языке страны дистрибуции продукта.

Виртуальная и дополненная реальности. Технология переноса мимики может применяться для создания цифровых двойников в играх и виртуальной (или дополненной) реальности. Источниками лица могут служить сами участники игры или иного пространства. Это повышает эмоциональное вовлечение в продукт.

Очевидно, что технология должна использоваться с особой осторожностью. Злоумышленниками могут преследоваться цели компрометирования личности или создания Как увидеть ссылки? | How to see hidden links?. В начале октября 2019 года члены Комитета по разведке Сената США Как увидеть ссылки? | How to see hidden links? крупные технологические компании разработать план для борьбы с дипфейками. Ранее, в сентябре этого года, Google Как увидеть ссылки? | How to see hidden links?.

Отметим, что данная публикация подготовлена исключительно в исследовательских целях.

Создадим собственный DeepFake​


Для синтеза дипфейка мы будем использовать популярную библиотеку Как увидеть ссылки? | How to see hidden links?. Библиотека стремительно развивается, сейчас существует несколько релизов:

  1. Как увидеть ссылки? | How to see hidden links? – последний релиз, для загрузки требуется торрент-клиент.
  2. Как увидеть ссылки? | How to see hidden links? – можно использовать удаленные вычислительные мощности.
  3. Как увидеть ссылки? | How to see hidden links?

Ниже описан базовый процесс создания дипфейка на примере Windows с использованием более старой версии программы, чем доступна сейчас.

Важно понимать, что на качество результата влияет множество свойств исходных файлов (разрешение и длительность видеофайлов, разнообразность мимики персонажей, освещение и т. д.). За любыми подробностями и деталями настроек перенаправляем к оригинальному репозиторию.

Системные требования для DeepFaceLab​


Минимальные системные требования для работы с инструментом:


Рекомендуемые системные требования:

  • Процессор с поддержкой Как увидеть ссылки? | How to see hidden links?-инструкций.
  • Оперативная память объемом не менее 8 Гб.
  • Видеокарта NVIDIA с объемом видеопамяти не менее 6 Гб.

Установка DeepFaceLab​


Рассматриваемая сборка программы доступна на необновляемой Как увидеть ссылки? | How to see hidden links? (требуется VPN, форум трекера также пригодится в случае трудностей при установке и запуске, есть Как увидеть ссылки? | How to see hidden links?). Размер сборок – порядка 1 Гб.

Имеются три вида прекомпилированных сборок для ОС Windows:

  1. DeepFaceLabCUDA9.2SSE – для видеокарт NVIDIA (вплоть до GTX1080) и любых 64-битных CPU.
  2. DeepFaceLabCUDA10.1AVX – для видеокарт NVIDIA (вплоть до RTX) и CPU с поддержкой Как увидеть ссылки? | How to see hidden links?.
  3. DeepFaceLabOpenCLSSE – для видеокарт AMD/IntelHD и любых 64-битных CPU.
 

АртемийЛебедев

Квартирмейстер
Premium
Регистрация
2 Сен 2020
Сообщения
13
Реакции
1
Баллы
8
Адрес
https://www.artlebedev.ru/
Веб-сайт
www.tema.ru
Credits
335
Native language | Родной язык
Русский

Алгоритм работы с DeepFaceLab​


Предварительно договоримся о терминологии:

  1. src (сокр. от англ. source) – лицо, которое будет использоваться для замены,
  2. dst (сокр. от англ. destination) – лицо, которое будет заменяться.

Архив сборки нужно распаковать как можно ближе к корню системного диска. После распаковки в каталоге DeepFaceLab вы найдете множество bat-файлов.

Местом хранения модели служит директория workspace. В ней будут содержаться видео, фотографии и файлы самой программы. Вы можете переименовывать каталог для сохранения резервных копий.

Как вы могли заметить, bat-файлы имеют в начале имени номер. Каждый номер соответствует определенному шагу выполнения алгоритма. Некоторые пункты опциональны. Пройдемся по этой последовательности.

1. Очистка рабочего каталога​


На первом шаге запуском 1) clear workspace.bat и нажатием пробела очищаем лишнее содержимое папки workspace. Одновременно создаются необходимые директории.

Сразу после распаковки в workspace уже содержатся примеры видеороликов для теста. В соответствии с описанной терминологией вы можете заменить их видеофайлами с теми же названиями data_src и data_dst. Максимально поддерживаемое разрешение – 1080p. Приведенные в документации примеры расширений файлов: mp4, avi, mkv.

2. Извлечение кадров из видеофайла источника​


На втором шаге извлекаем изображения из src-файла (2) extract images from video data_src.bat). Для этого запускаем bat-файл, получаем приглашение для указания Как увидеть ссылки? | How to see hidden links?:
Enter FPS ( ?:help skip:fullfps ) :

Пропускаем пункт, нажав Enter, чтобы извлечь все кадры.
Output image format? ( jpg png ?:help skip:png ) : ?

В формат png файлы извлекаются без потерь качества, но на порядок медленнее и с большим объемом, чем в jpg. После задания настроек кадры извлекаются в каталог data_src.

3. Извлечение кадров сцены для переноса лица​


При необходимости обрезаем видео с помощью 3.1) cut video (drop video on me).bat. Перетаскиваем файл data_dst поверх bat-файла. Указываем временные метки, номер дорожки (если их несколько), битрейт выходного файла. Появляется дополнительный файл с суффиксом _cut.

Запускаем 3.2) extract images from video data_dst FULL FPS.bat для извлечения кадров dst-сцены.

4. Составление выборки лиц источника​


Теперь необходимо детектировать лица на src-кадрах. Получаемая выборка будет храниться по адресу workspace\data_src\aligned. Этому пункту соответствует множество bat-файлов, начинающихся с 4) data_src extract faces и имеющих разные дополнения после:

  • Тип детектора лица: MT – чуть более быстрый, но производит больше ложных лиц или S3FD – рекомендованный, Как увидеть ссылки? | How to see hidden links?.
  • Вариант использования GPU: ALL (задействовать все видеокарты), Best (использовать лучшую). Выбирайте второй вариант, если у вас есть и внешняя, и встроенная видеокарты, и вам нужно параллельно работать в офисных приложениях.
  • Запись работы детекторов (DEBUG). Каждый кадр с выделенными контурами лиц записывается по адресу workspace\data_src\aligned_debug.

Пример вывода программы при запуске на видеокарте NVIDIA GeForce 940MX:
Performing 1st pass...
Running on GeForce 940MX. Recommended to close all programs using this device.
Using TensorFlow backend.
100%|################################################################################| 655/655 [03:32<00:00, 3.08it/s]
Performing 2nd pass...
Running on GeForce 940MX. Recommended to close all programs using this device.
Using TensorFlow backend.
100%|##########################################################################################################################################################| 655/655 [13:28<00:00, 1.23s/it]
Performing 3rd pass...
Running on CPU0.
Running on CPU1.
Running on CPU2.
Running on CPU3.
Running on CPU4.
Running on CPU5.
Running on CPU6.
Running on CPU7.
100%|#########################################################################################################################################################| 655/655 [00:05<00:00, 112.98it/s]
-------------------------
Images found: 655
Faces detected: 654
-------------------------
Done.

Bat-файл с параметром MANUAL применяется для ручного переизвлечения уже извлеченных лиц в случае ошибок на этапе 4.2.other) data_src util add landmarks debug images.bat.
 

АртемийЛебедев

Квартирмейстер
Premium
Регистрация
2 Сен 2020
Сообщения
13
Реакции
1
Баллы
8
Адрес
https://www.artlebedev.ru/
Веб-сайт
www.tema.ru
Credits
335
Native language | Родной язык
Русский

4.1. Удаляем большие группы некорректных кадров​


Запускаем 4.1) data_src check result.bat, просматриваем результаты в обозревателе Как увидеть ссылки? | How to see hidden links? (при закрытии запускайте этот bat-файл).

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

4.2. Сортировка и удаление прочих некорректных кадров​


Файлы с именами, начинающимися с 4.2, служат для сортировки и выявления групп некорректных кадров. Не закрывая обозреватель, последовательно запускайте bat-файлы и удаляйте группы некорректных кадров (обычно находятся в конце).

  • 4.2.1) data_src sort by blur.bat сортирует кадры по резкости, удаляем кадры с нечеткими лицами.
  • 4.2.2) data_src sort by similar histogram.bat группирует кадры по содержанию, позволяет удалять ненужные лица группами.
  • 4.2.4) data_src sort by dissimilar histogram.bat оставляет ближе к концу списка те изображения, у которых больше всего схожих (обычно это лица анфас). По усмотрению можно удалить часть конца списка, чтобы не проводить обучение на идентичных лицах.
  • Опционально: 4.2.5) data_src sort by face pitch.bat сортирует лица так, чтобы в начале списка лицо смотрело вниз, а в конце – вверх.
  • Опционально: 4.2.5) data_src sort by face yaw.bat сортирует лица по взгляду слева направо.
  • Рекомендованный пункт: 4.2.6) data_src sort by final.bat делает финальную выборку целевого количества (по умолчанию 2000). Применяйте только после очистки набора предыдущими инструментами.

Дополнительные сортировочные bat-файлы, названия которых начинаются с 4.2.other, сортируют изображения по количеству черных пикселей, числу лиц в кадре (нужны кадры только с одним лицом) и т. д.

5. Составление выборки лиц принимающей сцены​


Следующие операции с некоторыми отличиями идентичны выборке лиц источника. Главным отличием является то, что для принимающей сцены важно определить dst-лица во всех кадрах, содержащих лицо, даже мутные. Иначе в этих кадрах не будет произведено замены на источник.

Опция +manual fix позволяет вручную указать контуры лица на кадрах, где лицо не было определено. При этом в конце извлечения файлов открыто окно ручного исправления контуров. Элементы управления описаны вверху окна (вызываются клавишей H).

Запуск 5.1) data_dst check results debug.bat позволяет посмотреть все dst-кадры c наложенными поверх них предсказанными контурами лица. Удалите лица прочих, неосновных персонажей.

6. Тренировка​


Обучение нейросети – самая времязатратная часть, длящаяся часы и сутки. Для тренировки необходимо выбрать одну из моделей. Выбор и качество результата определяются объемом памяти видеокарты:

  • ≥ 512 Мб → SAE. Наиболее гибкая модель с возможностью переносить стиль лица и освещение.
  • ≥ 2 Гб → H64. Наименее требовательная модель.
  • ≥ 3 Гб → H128. Аналогична модели H64, но с лучшим разрешением.
  • ≥ 5 Гб → DF – умная тренировка лиц, исключающая фон вокруг лица, или LIAEF128 – модель аналогична DF, но пытается морфировать исходное лицо в целевое, сохраняя черты исходного лица.
  • ≥ 6 Гб → AVATAR – модель для управления чужим лицом, требуются квадратные видеоролики или SAE HD – для самых последних видеокарт.

В руководстве не описана еще одна модель, присутствующая в наборе (Quick96), но она успешно запустилась при тренировке на видеокарте с 2 Гб памяти.

При первом запуске программа попросит указать параметры, применяемые при последующих запусках (при нажатии Enter используются значения по умолчанию). Большинство параметров понятно интуитивно, прочие – описаны в руководстве.

Отключите любые программы, использующие видеопамять. Если в процессе тренировки в консоли было выведено много текста, содержащего слова Memory Error, Allocation или OOM, то на вашем GPU модель не запустилась, и ее нужно урезать. Необходимо скорректировать опции моделей.

При корректных условиях параллельно с консолью откроется окно Training preview, в котором будет отображаться процесс обучения и кривая ошибки. Снижение кривой отражает прогресс тренировки. Кнопка p (английская раскладка) обновляет предпросмотр.

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

7. Наложение лиц​


Теперь у нас есть результат обучения. Необходимо совместить src-лица и кадры dst-сцены. Из списка bat-файлов выбираем ту модель, на которой происходила тренировка. Возможно несколько режимов наложения, по умолчанию Как увидеть ссылки? | How to see hidden links?. В качестве остальных параметров для первой пробы можно использовать параметры по умолчанию (по нажатию Enter) и варьировать их, если вас не устроит результат наложения.

8. Склейка в видео​


Следующие bat-файлы склеивают картинки в видео с той же частотой кадров и звуком, что и data_dst (поэтому файл должен оставаться в папке workspace). Итоговый файл будет сохранен под именем result. Готово! Ниже представлен пример, полученный для тестовых видео.



Если результат вас не удовлетворил, попробуйте разные опции наложения, либо продолжите тренировку для повышения четкости, используйте другую модель, другое видео с исходным лицом. О неописанных особенностях работы с библиотекой, прочих советах и хитростях читайте в Как увидеть ссылки? | How to see hidden links?.

Планируете протестировать DeepFake? Делитесь результатами ;)

 
shape1
shape2
shape3
shape4
shape7
shape8