Video Analysis底层库拆分,sdk的go封装
zhangmeng
2019-10-19 3a7c04c33a2418109a53bd84e7d16dc83fbc19da
unknown face track bug fixed
2个文件已修改
34 ■■■■■ 已修改文件
csrc/buz/face/face.cpp 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
csrc/buz/face/face.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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, &param);
        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;
csrc/buz/face/face.h
@@ -35,7 +35,6 @@
        int featLen_;
        unsigned char *feat_;
        // face track
        THFT_Param *param_track_;
        cFaceInfo *finfo_;
    };
}