From b022b91c0c6fa807424b6c12cc92ac5946838083 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 13 七月 2017 16:34:39 +0800 Subject: [PATCH] update pipeline --- RtspFace/PL_SensetimeFaceTrack.h | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 58 insertions(+), 21 deletions(-) diff --git a/RtspFace/PL_SensetimeFaceTrack.h b/RtspFace/PL_SensetimeFaceTrack.h index c3bf593..e17ad12 100644 --- a/RtspFace/PL_SensetimeFaceTrack.h +++ b/RtspFace/PL_SensetimeFaceTrack.h @@ -2,37 +2,52 @@ #define _PL_SENSETIMEFACETRACK_H_ #include "PipeLine.h" +#include "GraphicHelper.h" #include <vector> - -struct FacePoint -{ - int x; - int y; - - FacePoint() : x(0), y(0) { } -}; - -struct FaceRect -{ - FacePoint leftTop; - FacePoint rightBottom; - - FaceRect() : leftTop(), rightBottom() { } -}; +#include <cmath> struct SensetimeFaceFeature { - FaceRect rect; + 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; - std::vector<FacePoint> featurePoints; + PLGH_Path featurePoints; + + bool outOfFrame; SensetimeFaceFeature() : - rect(), id(0), yaw(0.0), pitch(0.0), roll(0.0), eyeDistance(0.0), featurePoints() + 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; @@ -44,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) { } }; @@ -63,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