initial commit
This commit is contained in:
commit
e505acdb29
41 changed files with 2922 additions and 0 deletions
72
include/face_detector.hpp
Normal file
72
include/face_detector.hpp
Normal file
|
@ -0,0 +1,72 @@
|
|||
#ifndef FACE_DETECTOR_HPP
|
||||
#define FACE_DETECTOR_HPP
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
#if USE_DLIB
|
||||
// if we use dlib
|
||||
#include <dlib/opencv.h>
|
||||
#include <dlib/image_processing/frontal_face_detector.h>
|
||||
#include <dlib/image_processing/render_face_detections.h>
|
||||
#include <dlib/image_processing.h>
|
||||
#include <dlib/gui_widgets.h>
|
||||
#include <dlib/image_io.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include "data.hpp"
|
||||
|
||||
namespace opengaze{
|
||||
|
||||
class FaceDetector {
|
||||
public:
|
||||
FaceDetector();
|
||||
~FaceDetector();
|
||||
|
||||
/**
|
||||
* face and facial landmark detection selection
|
||||
* The current implementation is only OpenFace. OpenFace use dlib for face detection
|
||||
*/
|
||||
enum Method{OpenFace, OpenCV, Dlib};
|
||||
|
||||
/**
|
||||
* main function to detect and track face and facial landmarks
|
||||
* @param input_img input image
|
||||
* @param output output data structure
|
||||
*/
|
||||
void track_faces(cv::Mat input_img, std::vector<opengaze::Sample> &output);
|
||||
|
||||
void reset();
|
||||
void setMethodType(Method method_type) {method_type_ = method_type;}
|
||||
Method getMethodType() {return method_type_;}
|
||||
void initialize(int number_users);
|
||||
|
||||
private:
|
||||
Method method_type_;
|
||||
|
||||
#if USE_DLIB
|
||||
dlib::frontal_face_detector dlib_detector_;
|
||||
dlib::shape_predictor dlib_sp_;
|
||||
#endif
|
||||
|
||||
// parameters for OpenFace
|
||||
std::vector<bool> active_models_;
|
||||
unsigned long num_faces_max_;
|
||||
int detection_skip_frames_, tracking_loss_limit_;
|
||||
float detection_resize_rate_;
|
||||
float nonoverlap_threshold_;
|
||||
double certainty_threshold_;
|
||||
int landmark_indices_[6];
|
||||
int frame_counter_;
|
||||
unsigned long current_face_id_;
|
||||
std::vector<unsigned long> face_ids_;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //FACE_DETECTOR_HPP
|
Loading…
Add table
Add a link
Reference in a new issue