From 3a7c04c33a2418109a53bd84e7d16dc83fbc19da Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期六, 19 十月 2019 15:52:16 +0800 Subject: [PATCH] unknown face track bug fixed --- csrc/buz/face/face.cpp | 33 ++++++++++++++------------------- csrc/buz/face/face.h | 1 - 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/csrc/buz/face/face.cpp b/csrc/buz/face/face.cpp index 93896b3..33a6bcb 100644 --- a/csrc/buz/face/face.cpp +++ b/csrc/buz/face/face.cpp @@ -16,7 +16,6 @@ :fpos_(NULL) ,featLen_(0) ,feat_(NULL) - ,param_track_(NULL) ,finfo_(NULL) {} @@ -27,7 +26,6 @@ if (fpos_) free(fpos_); if (feat_) free(feat_); - if (param_track_) free(param_track_); if (finfo_) free(finfo_); } @@ -160,35 +158,32 @@ return result; } ///////////////////////////////////////////////////// +static THFT_Param param; int sdkface::init_face_tracker(const int tm, const int gi,const int w, const int h, - const int maxFaces, const int detinterval, const int sampleSize){ - if (param_track_) return -1; - param_track_ = (THFT_Param*)malloc(sizeof(THFT_Param)); - - param_track_->nDeviceID = gi; - param_track_->nImageWidth = w; - param_track_->nImageHeight = h; - param_track_->nMaxFaceNum = maxFaces; - param_track_->nSampleSize = sampleSize > 0 ? sampleSize : w/2; - param_track_->nDetectionIntervalFrame = detinterval; - printf("gi: %d size: %dx%d maxface: %d, sample: %d, interval: %d\n", - gi, w, h, maxFaces, sampleSize, detinterval); - - auto nNum = THFT_Create(tm, param_track_); + const int maxFaces, const int detinterval, const int sampleSize){ + param.nDeviceID = gi; + param.nImageWidth = w; + param.nImageHeight = h; + param.nMaxFaceNum = maxFaces; + param.nSampleSize = sampleSize > 0 ? sampleSize : w/2; + param.nDetectionIntervalFrame = detinterval; + + printf("threads %d gi: %d size: %dx%d maxface: %d, sample: %d, interval: %d\n", + tm, gi, w, h, maxFaces, sampleSize, detinterval); + + auto nNum = THFT_Create(tm, ¶m); if(nNum != tm){ printf("create face detector failed!\n"); }else{ dtors_.emplace_back([]{THFT_Release();}); } return nNum; - } int sdkface::face_track(const cIMAGE *img, const int chan, void **fInfo, int *fcnt){ - if (!param_track_) return -1; if (!finfo_){ - finfo_ = (cFaceInfo*)malloc(param_track_->nMaxFaceNum * sizeof(cFaceInfo)); + finfo_ = (cFaceInfo*)malloc(param.nMaxFaceNum * sizeof(cFaceInfo)); } *fcnt = 0; diff --git a/csrc/buz/face/face.h b/csrc/buz/face/face.h index ef28b28..83b9368 100644 --- a/csrc/buz/face/face.h +++ b/csrc/buz/face/face.h @@ -35,7 +35,6 @@ int featLen_; unsigned char *feat_; // face track - THFT_Param *param_track_; cFaceInfo *finfo_; }; } -- Gitblit v1.8.0