/************************************************************************* * * DeepCam CONFIDENTIAL * FILE: dtracker.h * * [2018] - [2019] DeepCam, LLC and DeepCam NOTICE: * All information contained herein is, and remains the property of DeepCam LLC. * The intellectual and technical concepts contained herein are proprietary to DeepCam * and may be covered by U.S. and Foreign Patents,patents in process, and are protected by * trade secret or copyright law. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * DeepCam, LLC. * * * Written: Delong Qi * Date: 17/12/2018 * Mail: delong.qi@deepcam.com */ #ifndef __DTRACKER_H #define __DTRACKER_H #include #include #include #include #include "yoloV5-face.h" struct TrackerBox { int ID; int age; int quality; int confidence; int frameCount; cv::Rect tbox; std::vector lmks; }; class DTracker { public: int init(std::string face_model); std::vector track(cv::Mat &image,float scale = 0.33); int destroy(); private: float IoU(const cv::Rect &boxA, const cv::Rect &boxB); int check_status(); bool check_edge(cv::Mat &image, cv::Rect &bbox, float ratio = 6.0); int detect(cv::Mat &image,float scale); private: int trackerAge; float scale = 1.0f; int num_threads = 3; unsigned int frameCount; unsigned int currFaceID; cv::Mat detect_img; int trackerBufferLen = 4; std::vector faceTrackers; }; #endif