やったこと
face2face-demoをpre-trainedモデルを使って動かしてみました。
自分で学習はさせていないので、とりあえずサクッと動かしてみたい人用です。
face2faceとは
face2faceは、pix2pixを顔の表情に応用したもの。
学習データは以下のようにしている。と思われる。
- 入力: 元の画像から顔の特徴を抜き出した画像
- 出力: 元の画像
ここでいう画像とは、動画をフレームごとに区切ったもののこと。
実際に動かす
このページのデモを動かす部分だけ見ていく。
事前準備
今回はcondaコマンドで環境を整えるので、Anacondaをインストールしておく。
1. リポジトリをclone
git clone git@github.com:datitran/face2face-demo.git
次の2でopencv3のインストールに失敗するので、修正したほうのリポジトリ(issue9ブランチ)を使う。
mergeしてもらえました。
2. condaで環境を作る
cd face2face-demo
conda env create -f environment.yml
source activate face2face-demo
3. pre-trainedモデルをダウンロード・解凍
facial landmarkのpre-trainedモデルとface2faceのpre-trainedモデルをダウンロード・解凍して現在いるリポジトリ直下に配置。
face2faceのpre-trainedモデルはface2face-reduced-modelというディレクトリをつくってそこに移す。
mkdir face2face-reduced-model
mv frozen_model.pb face2face-reduced-model
4. 実行
python run_webcam.py --source 0 --show 0 --landmark-model shape_predictor_68_face_landmarks.dat --tf-model face2face-reduced-model/frozen_model.pb
ubuntuの場合はusbカメラをつけておく。
課題
- ubuntuを使ってもgpuで動いてくれない。
tensorflowをtensorflow-gpuにしたり、自分でdlibをbuildしたり、cudnnのバージョンを5にしたり、すぐ思いつく部分は一通り試してみたがgpuが動いてくれない。
多分仕様的には動くはず?なので、動いた方は教えていただけると助かります。