有关方法和定量结果的详细信息,请检查CVPR会议论文paper.
### Installconda create -n deep-head-pose python=3.6
conda activate deep-head-pose
pip install -r requirements.txt
下载300W-LP数据集以及AFLW2000-3D数据集来重现实验操作
由于dataloader需要读取txt文件中的图片路径,先要通过代码提取出所有数据的路径,在更改好数据集路径后运行文件路径提取:
python code/dataset_300W.py
# Or
python code/dataset_AFLW.py
训练模型可以通过运行bash code/train_<model>.sh
实现,注意要指定数据集所在的路径,或者通过命令行进行训练:
python code/train_hopenet.py --data_dir PATH_OF_DATASET --filename_list LIST_FILE --dataset TYPE_OF_DATASET --lr LEARN_RATE --alpha ALPHA --gpu GPU_ID --num_epochs NUM_EPOCH --batch_size BATCH_SIZE
训练模型后需要进行测试,可以参考code/test_<model>.sh
,注意提取的snapshot的路径,通过命令行进行测试:
python test_hopenet.py --data_dir PATH_OF_DATASET --filename_list LIST_FILE --dataset TYPE_OF_DATASET --snapshot <SNAPSHOT_PATH>/<PKL_FILENAME>.pkl --gpu GPU_ID
使用dlib人脸检测在视频上进行测试(头部中心会跳动):
python code/test_on_video_dlib.py --snapshot PATH_OF_SNAPSHOT --face_model PATH_OF_DLIB_MODEL --video PATH_OF_VIDEO --output_string STRING_TO_APPEND_TO_OUTPUT --n_frames N_OF_FRAMES_TO_PROCESS --fps FPS_OF_SOURCE_VIDEO
也可以在单张图片上进行测试,作为我们实验结果展示的补充手段,方便进行快速的查看:
python code/test_on_image.py --snapshot PATH_OF_SNAPSHOT --input PATH_OF_IMAGE --out_dir PATH_OF_OUTPUT_DIR
官方的预训练模型的链接如下:
300W-LP, alpha 1, robust to image quality
我们进行实验,下面将展示从头开始训练出来的最好的模型以及对上述官方模型中的300W-LP, alpha 1进行再训练优化后的最好结果:
300W-LP,lr1e-6,alpha1,epoch5,pretrained
如果你应用Hopennet且觉得非常有效,请在使用处标明:
@InProceedings{Ruiz_2018_CVPR_Workshops,
author = {Ruiz, Nataniel and Chong, Eunji and Rehg, James M.},
title = {Fine-Grained Head Pose Estimation Without Keypoints},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2018}
}
Nataniel Ruiz, Eunji Chong, James M. Rehg
Georgia Institute of Technology