AI・機械学習

[ディープフェイク]簡単にフェイク動画作成ができるWebアプリを作ってみた[DeepFaces/FaceSwap]

更新日:

概要

巷で有名になっているフェイク動画をWebアプリで簡単に作成できるサービスを実装してみました。
https://swappie-app.com
動画では安倍総理と鶴竜関の顔をアプリを使って入れ替えています。

はじめに

このウェブサービスSwappieはDeepFakesと呼ばれるディープラーニングを用いた画像生成技術を利用した顔交換動画(フェイク動画)作成サービスです。
顔を入れ替えたい動画とハメ込みたい動画の2本を用意して、アップロードするだけでサーバー上でDeepFakeが実行されフェイク動画を作成することができます。

ネットやニュースでフェイク動画やフェイクポルノについて聞いたことはあるけど、実際にどうなの?っていう人向けに簡単に試してもらいたいと思いサービスを立ち上げてみました。
この記事で、サービスの紹介とDeepFakesについて簡単に説明をしたいと思います。

ディープフェイクとは

「ディープフェイク」とは、異なる人物の画像や動画を元にディープラーニングで顔の表情や角度を学習させて、顔を入れ替える技術ことです。
簡単に言うと、AIを使った動画のアイコラ作成技術です。

ディープフェイクはCycleGANという技術をベースに開発されています。CycleGANは実際には画像処理において活躍している技術で、画家の作風を変えたり、シマウマを馬に変えたり、夏の風景を冬の風景と入れ替えたりする研究結果が公表されており、今回は顔と顔の入れ替えに利用されています。

処理内容

処理の手順を簡単に整理すると、以下のようになります。

1.動画をフレームごとの静止画に分解
2.静止画から顔を抽出
3.抽出した顔を学習
4.学習した顔をはめ込み
5.静止画から動画を作成

2番目の顔の抽出をOpenCVを使ってやっているので、画質が粗かったり顔がはっきり写っていないと顔の抽出がうまくいかないです。

動画作成

顔の動画と入れ替えたい動画を用意してアップするとサーバーで学習が走り、1時間ほどで動画を生成することができます。

課題

いくつか課題があったのでまとめてみました。

課題1

動画に複数人写っている場合、全ての人の顔が入れ替わってしまう。動画の中心に近い人物の顔だけ抽出するようなアルゴリズムに書き換えないとダメですね。。。
この動画だと鶴竜関だけでなくアナウンサーまで安倍総理の顔に入れ替わってしまっています。

課題2

同時に学習サーバーを起動できない。
これは自宅のGPU搭載のオンプレサーバーを利用している為、学習サーバーで1動画ずつしか作成することができないので誰かが動画を学習している間はずっと待機になってしまいます。
現在のサービス仕様だとユーザ数が増えた時にサービスをスケールすることができないので、学習済のモデルを利用できるようなサービスを検討しています。

課題3

肌の色が違うと不自然に合成される。入れ替える顔の色が極端に違うと、はめ込んだときに肌の色の違いが不自然になってしまいます。入れ替える人物の肌の色に合わせる画像処理を加える必要がありそうです。

終わりに

Youtubeにフェイク動画を色々あげているのチャンネル登録お願いいたします。
チャンネル名 Face Swappie
https://www.youtube.com/channel/UCO_5F4CxJAFTshY0CoseY1A?view_as=subscriber

-AI・機械学習

Copyright© AIなんて気合いダッ! , 2019 All Rights Reserved Powered by AFFINGER5.