FX-STAR / Optim_Hopenet

Deep Head(face) Pose Estimation
42 stars 23 forks source link

Optim_Hopenet Head Pose Estimation

Environment

Optim_net

net struct

Backbone: MobileNetv2, MobileNetv3 (Implement in gluon-cv)

Preparation

assume you are in the directory $Optim_Hopenet/.

  1. download 300W_LP and AFLW_2000-3D
  2. unzip
  3. get 'pitch, yaw ,roll ' from annotation file
    # change the dataset path to your path
    python data/gen_pose.py

Train

python train.py --bs 128 --lr 0.001 --alpha 1 --lr_type cos --version small --width_mult 1 --use_fc 1 --net v3 --gpu 0 --prefix test
Backone MAE(alpha=1) MAE(alpha=2) Mb
MobileFaceNet 6.760 6.876 4.1
MobileNetv2 6.510 6.549 9.8
MobileNetv3 small 6.660 6.706 7.5
MobileNetv3 large 6.293 6.145 17.5

Test

python test.py --test_type image --image test_res/test.jpg

Convert2Caffe

test: python mxnet2caffe/inference.py

References:

@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}
}