【avatarify】Webカメラ映像を別人になりすましてみる【Mac編】

今や使ったことない人の方が少ないのではないかと思われるくらい普及したZOOMなどのオンライン会議ツールですが、

githubで公開されているavatarifyというソフトウェアを使ってビデオ会議で別人になりすましてみました。

この記事ではMacOSでのavatarifyの使い方をまとめています。windowsを使いの方はすみません。そのうちまとめます。。

avatarrifyを使ってみた結果

今回は日本の総理大臣であり、日本の顔、安倍晋三さんになりすましてみました。

自分の顔の動きに合わせて安倍さんが動いています。すごいですね!これでZOOMに出た日には話題になること間違いなしです!

要件

まず、今流行りの技術であるディープラーニングを使っているので、GPUの使えるハイパワーなPCが必要です。ただし、これは無料で使えるクラウドサーバーで代用できるので問題ありません(後にくわしく書かれています)

ちなみにですが、動かすのは全部コマンドを使ってやるので、プログラミングの知識がある程度必要になってきます。初心者の方には少し難しいかもしれません。

>>ターミナル・コマンドプロンプトとは何か【Windowsでプログラミングを始める人へ】

Macでの使い方

Macでは基本的にGPUがないので、クラウドサーバーなどで処理をしてTCPで送信する必要があります。

なのですが、GoogleのColab(無料)で誰でも使えるようにコードを公開してくれています。Colabなら無料で使えるので、これでやってみましょう。(ただし時間制限がある)

普通にGPUサーバーでやりたいような方は自分で調べればわかりますよね笑。

実際に動かしてみましょう

クライアント側(mac)

avatarifyのインストール

ターミナルで以下を実行します。(ディレクトリは作業したい場所に移動してから)

git clone https://github.com/alievk/avatarify.git //avatarifyをクローン
cd avatarify
sh bash scripts/install_mac.sh //インストールスクリプトを実行

クライアント側はこれで準備完了です

サーバー側(Colab)

avatarify用のColabコードはこちらです。

基本的に上から順番にSHIFT + Enterで実行していくだけでいいですが、

途中でngrokというサービスに登録して、アクセストークンを入力する必要があるので、そこだけ自分で書き換えてください。

ngrokのAuthtoken
ngrokの画面
Open ngrok tunnelというところは書き換える必要がある
ここを書き換える

実行する

Start the clientというところまで実行すれば、Macのターミナルで実行するコマンドが表示されます(下記画像参照)

これを先ほどクライアント側で実行したターミナルにコピペして、実行します

(先ほどクライアント側の項目でavatifyをインストールしたディレクトリで実行します)

Start the clientに出てくるコマンドをターミナルで実行する

うまくいけば、新しくウィンドウが出てきて、avatarifyが実行できます!

上手く動かなかったという場合は、Colabの時間制限で何もしてない状態に戻っている可能性があるので、もう一回Colabを最初から実行しなおしてみてください。

好きな画像を使う

avatarifyは画像から顔を認識して、あなたの顔の表情に合わせて画像を変形させます。なので、画像1枚でその人になりすませる優れものなんです。

方法ですが、avatarifyをインストールしたディレクトリのavatarify/avatars/に画像を追加してください。(ただし追加した後はavatarifyを起動しなしてください)

最初からモナリザやハリーポッター、アインシュタインの画像があるのでそれと同じように画像を置いておけば大丈夫です。

画像として、以下の条件が推奨されています

  • 画像は正方形にトリミングしてください
  • 顔は近すぎず、遠すぎず、初期画像を参考にしてください
  • 背景は一様な画像にしてください、人工物感が少なくなります

Zoomなどのビデオ会議ツールに出る方法

こちらのCamTwist(Macでしか使えません)というソフトを使ってavatarifyの画面を入力カメラとして生成し、Zoomにカメラと認識させます

CamTwistを実行したら、以下のように設定します

  • Step1でDesktop+ を選択
  • SettingsでConfine to Application Windowにチェックし、python(avatarify)を選択
CamTwistの設定

あとはZoomを起動し、zoomの設定からカメラ入力をCamTwistに切り替えれば完了です!

こういうツールがもっと身近に使える時代がきたら、もっと楽しそうですね。私も自分で開発できるように頑張ります!

>>超初心者向けgitコマンドの使い方

>>ターミナル・コマンドプロンプトとは何か【Windowsでプログラミングを始める人へ】