There is a grand prize of 500€ for the first place and additional smaller prizes for others!
Description The goal of the challenge is to make a good-looking montage of images from database of videos to match an unknown target video! We will also look through best scoring videos and add points for creativity!
Good-looking face-alignment has been defined as a cost function that incentivizes keeping visual differences low between consecutive frames and faces aligned between target and produced outputs.
Let your creativity flow and make us laugh! :)
Please send your solutions to [email protected], more detailed format under Submitting.
- Processing all 240 frames in a single video should not take more than 1 minute.
- Building an index should not take more than 10 minutes.
- We will be running your solution in a standard p2.xlarge machine in AWS (CPU, GPU and memory constraints come from there).
- Challenge was made for Pycon Estonia 2019 on October 3rd, 2019.
- Participations after October 17th will not be considered valid.
- Veriff will announce the winners on October 24th.
You will need Python 3.6 or later.
In order to get started, clone current github repository for solution interface and set up Python development environment:
git clone https://github.com/Veriff/face_alignment_challenge.git
cd face_alignment_challenge
# You can set up an virtual environment here
python3 -m venv venv
. venv/bin/activate
# Install requirements
pip install -r requirements.txt
We recommend using a data/
directory within the root of this repositiory.
Alternative to using wget is to use AWS cli:
aws s3 cp s3://veriff-face-alignment-challenge/FILENAME .
wget https://veriff-face-alignment-challenge.s3-eu-west-1.amazonaws.com/small.zip
Contents:
train
├── Alison_Lohman_0.npz
├── ...
├── youtube_faces_with_keypoints_small.csv
test
├── Vicente_Fox_1.npz
├── ...
├── youtube_faces_with_keypoints_small.csv
wget https://veriff-face-alignment-challenge.s3-eu-west-1.amazonaws.com/large.zip
Contents:
large_train
├── Abdel_Aziz_Al-Hakim_0.npz
├── ...
├── youtube_faces_with_keypoints_large.csv
Move content of this directory to train/
:
mv large_train/* train
You can get running with:
# Help about the command line interface
python cli.py --help
# Build file index, takes about 20s
python cli.py index --videos data/train/youtube_faces_with_keypoints_large.csv
# Process a video, matching it against the index.
python cli.py process-video --videos data/train/youtube_faces_with_keypoints_large.csv PATH_TO_VIDEO_NPZ
We also provide a baseline model that you can try by adding --baseline
flag after cli.py
:
python cli.py --baseline index --videos data/train/youtube_faces_with_keypoints_large.csv
python cli.py --baseline --videos data/train/youtube_faces_with_keypoints_large.csv PATH_TO_VIDEO_NPZ
In processor.py
, you can find a Processor class that is abstraction for your solution.
Read through the comments and documentation in that class and add your own solution.
You can also find a baseline approach on solving the problem as BaselineProcessor, that does OK in face-alignment, but does not work well for frame difference part of the cost function. It is OK to use baseline approach as a starting point and improve upon it.
Please send your solutions to [email protected] as an attachement.
Please also add the following details in the e-mail as well:
Name:
Telephone number:
Short description:
Feedback about challenge (what was fun, what was frustrating etc.):