pix2pix demo that learns from facial landmarks and translates this into a face
pix2pix demo that learns from facial landmarks and translates this into a face
This is a pix2pix demo that learns from facial landmarks and translates this into a face. A webcam-enabled application is also provided that translates your face to the trained face in real-time.
# Clone this repo
git clone [email protected]:datitran/face2face-demo.git
# Create the conda environment from file (Mac OSX)
conda env create -f environment.yml
python generate_train_data.py --file angela_merkel_speech.mp4 --num 400 --landmark-model shape_predictor_68_face_landmarks.dat
Input:
file is the name of the video file from which you want to create the data set.num is the number of train data to be created.landmark-model is the facial landmark model that is used to detect the landmarks. A pre-trained facial landmark model is provided here.Output:
original and landmarks will be created.If you want to download my dataset, here is also the video file that I used and the generated training dataset (400 images already split into training and validation).
…
For more information around training, have a look at Christopher Hesse's pix2pix-tensorflow implementation.
First, we need to reduce the trained model so that we can use an image tensor as input:
python reduce_model.py --model-input face2face-model --model-output face2face-reduced-model
Input:
model-input is the model folder to be imported.model-output is the model (reduced) folder to be exported.Output:
Second, we freeze the reduced model to a single file.
python freeze_model.py --model-folder face2face-reduced-model
Input:
model-folder is the model folder of the reduced model.Output:
frozen_model.pb in the model folder.I have uploaded a pre-trained frozen model here. This model is trained on 400 images with epoch 200.
python run_webcam.py --source 0 --show 0 --landmark-model shape_predictor_68_face_landmarks.dat --tf-model face2face-reduced-model/frozen_model.pb
Input:
source is the device index of the camera (default=0).show is an option to either display the normal input (0) or the facial landmark (1) alongside the generated image (default=0).landmark-model is the facial landmark model that is used to detect the landmarks.tf-model is the frozen model file.Example:
Kudos to Christopher Hesse for his amazing pix2pix TensorFlow implementation and Gene Kogan for his inspirational workshop.
No open issues yet, or sync has not completed.