initial commit
This commit is contained in:
commit
e505acdb29
41 changed files with 2922 additions and 0 deletions
88
include/data.hpp
Normal file
88
include/data.hpp
Normal file
|
@ -0,0 +1,88 @@
|
|||
#ifndef DATA_HPP
|
||||
#define DATA_HPP
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
|
||||
namespace opengaze{
|
||||
|
||||
/**
|
||||
* face and facial landmark detection data
|
||||
* @param face_id personal id from tracking across frames
|
||||
* @param certainty detection score, 1 is the best, -1 is the worst
|
||||
* @param landmarks detected six facial landmarks as four eye corners and two mouth corners
|
||||
* @param face_bb detected face bounding box
|
||||
*/
|
||||
struct FaceData
|
||||
{
|
||||
unsigned long face_id;
|
||||
double certainty;
|
||||
cv::Point2f landmarks[6];
|
||||
cv::Rect_<int> face_bb;
|
||||
};
|
||||
/**
|
||||
* eye image related data
|
||||
* @param leye_pos/reye_pose 3D eyeball center position for left and right eyes in the original camera coordinate system
|
||||
* @param leye_img/reye_img eye image
|
||||
* @param leye_rot/reye_rot rotation matrix during the data normalization procedure
|
||||
*/
|
||||
struct EyeData
|
||||
{
|
||||
// cv::Mat head_r, head_t;
|
||||
cv::Mat leye_pos, reye_pos; //
|
||||
|
||||
// normalized eyes
|
||||
cv::Mat leye_img, reye_img;
|
||||
cv::Mat leye_rot, reye_rot;
|
||||
};
|
||||
/**
|
||||
* face patch data related to data normalization
|
||||
* @param head_r head pose as center of the face
|
||||
* @param head_t head translation as center of the face
|
||||
* @param face_rot rotation matrix during the data normalization procedure
|
||||
* @param face_center 3D face center in the original camera coordinate system
|
||||
* @param debug_img use for debug to show the normalized face image
|
||||
* @param face_patch normalized face image
|
||||
*/
|
||||
struct FacePatchData
|
||||
{
|
||||
cv::Mat head_r, head_t;
|
||||
cv::Mat face_rot;
|
||||
cv::Mat face_center;
|
||||
cv::Mat debug_img;
|
||||
cv::Mat face_patch;
|
||||
};
|
||||
/**
|
||||
* gaze data
|
||||
* @param lgaze3d/lgaze3d gaze directions of left and right eyes in the camera coordinate system
|
||||
* @param gaze3d gaze direction estimated from face patch in the in the camera coordinate system
|
||||
* @param lgaze2d/rgaze2d projected gaze positions on the screen coordinate from left and right eyes
|
||||
* @param gaze2d projected gaze positions from face patch on the screen coordinate
|
||||
*/
|
||||
struct GazeData
|
||||
{
|
||||
cv::Vec3f lgaze3d, rgaze3d;
|
||||
cv::Vec3f gaze3d;
|
||||
cv::Point2f lgaze2d, rgaze2d;
|
||||
cv::Point2f gaze2d;
|
||||
};
|
||||
/**
|
||||
* The general output data structure
|
||||
* @param face_data store face and facial landmark detection data
|
||||
* @param eye_data store data related to eye image input
|
||||
* @param face_patch_data normalized face path data
|
||||
* @param gaze_data gaze data in 2D and 3D spaces
|
||||
*/
|
||||
struct Sample
|
||||
{
|
||||
FaceData face_data;
|
||||
EyeData eye_data;
|
||||
FacePatchData face_patch_data;
|
||||
GazeData gaze_data;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //DATA_HPP
|
Loading…
Add table
Add a link
Reference in a new issue