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