From e465984927353ef5922b5c1fe9f7dd1cf29e9094 Mon Sep 17 00:00:00 2001 From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 26 七月 2017 10:05:06 +0800 Subject: [PATCH] --- RtspFace/PL_SensetimeFaceTrack.h | 75 ++++++++++++++++++++++++++++++++++++- 1 files changed, 73 insertions(+), 2 deletions(-) diff --git a/RtspFace/PL_SensetimeFaceTrack.h b/RtspFace/PL_SensetimeFaceTrack.h index 48030e8..e17ad12 100644 --- a/RtspFace/PL_SensetimeFaceTrack.h +++ b/RtspFace/PL_SensetimeFaceTrack.h @@ -2,6 +2,55 @@ #define _PL_SENSETIMEFACETRACK_H_ #include "PipeLine.h" +#include "GraphicHelper.h" +#include <vector> +#include <cmath> + +struct SensetimeFaceFeature +{ + PLGH_Rect rect; + int id; + + float score; + + /* Camera vision vector point to face + * * * * + * * * * + * * * * + */ + float yaw; + + /* Camera vision vector point to face + * * * * + * * * * + * * * * + */ + float pitch; + + /* Camera vision vector point to face + * * * * + * * * * + * * * * + */ + float roll; + + float eyeDistance; + PLGH_Path featurePoints; + + bool outOfFrame; + + SensetimeFaceFeature() : + rect(), id(0), score(0.0), yaw(0.0), pitch(0.0), roll(0.0), eyeDistance(0.0), featurePoints(), + outOfFrame(false) + {} + + bool test_face_in_cone(float _yaw, float _pitch, float _roll) const + { + return (std::abs(yaw) < _yaw && std::abs(pitch) < _pitch && std::abs(roll) < _roll); + } +}; + +typedef std::vector<SensetimeFaceFeature> st_ff_vect_t; struct SensetimeFaceTrackConfig { @@ -10,11 +59,30 @@ int detect_face_cnt_limit; // -1 bool draw_face_rect; bool draw_face_feature_point; - bool generate_face_feature; // for PL_SensetimeFaceFeatureEmit + bool generate_face_feature; + bool generate_face_point; + int explode_feature_rect_x; + int explode_feature_rect_y; + bool clamp_feature_rect; // clamp fr width and height + int doTrackPerFrame; + + std::string license_file_path; + std::string license_str; + + float visionConeAngle; + + bool evenWidthHeight; + float score_min; + SensetimeFaceTrackConfig() : point_size(21), point_size_config(-1), detect_face_cnt_limit(-1), - draw_face_rect(true), draw_face_feature_point(true), generate_face_feature(false) + draw_face_rect(true), draw_face_feature_point(true), generate_face_feature(false), generate_face_point(false), + explode_feature_rect_x(0), explode_feature_rect_y(0), + clamp_feature_rect(false), doTrackPerFrame(1), + license_file_path(), license_str(), + visionConeAngle(90.1), evenWidthHeight(true), + score_min(0.0f) { } }; @@ -29,6 +97,9 @@ virtual bool pay(const PipeMaterial& pm); virtual bool gain(PipeMaterial& pm); + +private: + static bool pay_breaker_MBFT_YUV(const PipeMaterial* pm, void* args); private: void* internal; -- Gitblit v1.8.0