项目作者: jmatak

项目描述 :
Transfer learning on head pose estimation problem enhanced by neural architecture search.
高级语言: Python
项目地址: git://github.com/jmatak/HeadPoseNAS.git
创建时间: 2020-05-07T21:20:14Z
项目社区:https://github.com/jmatak/HeadPoseNAS

开源协议:MIT License

下载


HeadPoseNAS

[Master’s thesis] Transfer learning for Head pose estimation, enhanced by neural architecture search.

Author: Josip Matak

Image demo

Example 1 Example 2
Example 3 Example 4

Abstract

Estimating head pose is a useful practice in many industries, especially those of a medi-cal, technical, or automotive nature. Precision and speed of execution are the key things thatmake these methods useful in real-world practice.The solution to this task is offered by the current hot topic in deep learning, a machinelearning subset. The main contribution of this paper is the transfer learning technique andseveral different search methods for the best neural network architecture, built from prede-fined blocks. The results presented in the paper suggest that features extracted from the facerecognition method are sufficient for estimating head pose. Also, deep model architectureoptimization methods have shown improvements in execution speed and precision by opti-mizing the multi-criterion objective function. Although this is a task that requires time andmemory resources, automated search allows users to change the main focus of research intodifferent problems in the same domain.

Platform

  • Tensorflow 1.14, Numpy, OpenCV
  • NVIDIA GeForce RTX 2070 SUPER
  • Ubuntu 18.04

Dependencies

  1. absl-py==0.9.0
  2. astor==0.8.1
  3. cma==3.0.3
  4. gast==0.3.3
  5. google-pasta==0.2.0
  6. grpcio==1.29.0
  7. h5py==2.10.0
  8. importlib-metadata==1.6.1
  9. Keras-Applications==1.0.8
  10. Keras-Preprocessing==1.1.2
  11. Markdown==3.2.2
  12. numpy==1.19.0
  13. opencv-python==4.2.0.34
  14. pandas==1.0.5
  15. protobuf==3.12.2
  16. Py-BOBYQA==1.2
  17. pyswarm==0.6
  18. python-dateutil==2.8.1
  19. pytz==2020.1
  20. scipy==1.5.0
  21. six==1.15.0
  22. tensorboard==1.14.0
  23. tensorflow-estimator==1.14.0
  24. tensorflow-gpu==1.14.0
  25. termcolor==1.1.0
  26. tqdm==4.46.1
  27. Werkzeug==1.0.1
  28. wrapt==1.12.1
  29. zipp==3.1.0

Reproducing results

1. Data pre-processing

Ensure to download datasets below and put them in dataset folder

Unzip the files, run extract_pose.py for each folder, and prepare_dataset.py for each extracted numpy saved array. Then, run split_dataset.py to split training dataset 30-70.

For lazy

Or if you are lazy enough, run loader.sh.

2. Training and testing

To train and generate models with evolutionary algorithms follow next procedure

  1. python3 search.py --alg cmaes|genetic|bobyqa|pso|random

Depending on the wanted algorithm