initial commit
This commit is contained in:
commit
e505acdb29
41 changed files with 2922 additions and 0 deletions
65
include/gaze_estimator.hpp
Normal file
65
include/gaze_estimator.hpp
Normal file
|
@ -0,0 +1,65 @@
|
|||
#ifndef GAZE_ESTIMATOR_HPP
|
||||
#define GAZE_ESTIMATOR_HPP
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
#include "data.hpp"
|
||||
#include "face_detector.hpp"
|
||||
#include "normalizer.hpp"
|
||||
#include "gaze_predictor.hpp"
|
||||
|
||||
namespace opengaze{
|
||||
|
||||
class GazeEstimator {
|
||||
public:
|
||||
GazeEstimator();
|
||||
~GazeEstimator();
|
||||
|
||||
/**
|
||||
* On the current implementation, we only has the "MPIIGaze" method which uses the input face/eye image
|
||||
* and output gaze direction directly. It is an appearance-based method. The "OpenFace" can also output
|
||||
* the gaze vector according to the pupil detection results. However, "OpenFace" implementation is not
|
||||
* included inside our OpenGaze toolkit yet.
|
||||
*/
|
||||
enum Method{MPIIGaze, OpenFace};
|
||||
/**
|
||||
* for the "MPIIGaze" method, the input image can be face or eye. The full-face patch model can output
|
||||
* more accurate gaze prediction than the eye image model, while the eye image base model is much faster.
|
||||
*/
|
||||
enum InputType{face, eye};
|
||||
|
||||
/**
|
||||
* the main function to estimate the gaze.
|
||||
* It performs the face and facial landmarks detection, head pose estimation and then gaze prediction.
|
||||
* @param input_image input scene image
|
||||
* @param output data structure for output
|
||||
*/
|
||||
void estimateGaze(cv::Mat input_image, std::vector<opengaze::Sample> &output);
|
||||
void getImagePatch(cv::Mat input_image, std::vector<opengaze::Sample> &outputs);
|
||||
void setCameraParameters(cv::Mat camera_matrix, cv::Mat camera_dist);
|
||||
void setRootPath(std::string root_path);
|
||||
void setMethod(Method, std::vector<std::string> arguments);
|
||||
void initialFaceDetector(int number_users);
|
||||
|
||||
Method method_type_;
|
||||
InputType input_type_; // the input type
|
||||
|
||||
private:
|
||||
// class instances
|
||||
FaceDetector face_detector_;
|
||||
Normalizer normalizer_;
|
||||
GazePredictor gaze_predictor_;
|
||||
// camera intrinsic matrix
|
||||
cv::Mat camera_matrix_;
|
||||
// camera distortion matrix
|
||||
cv::Mat camera_dist_;
|
||||
// the root pat is used for load configuration file and models
|
||||
std::string root_path_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //GAZE_ESTIMATOR_HPP
|
Loading…
Add table
Add a link
Reference in a new issue