From b7340a34ff68f018a4aa0e7aada3b7feaabd2fe1 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 22 十月 2019 14:52:49 +0800
Subject: [PATCH] 增加人脸跟踪检测的通道分辨率调整接口face_track_resize

---
 csrc/buz/face/face.cpp                 |   17 +++++++++++++++++
 sdk/face/lib/gpu/libTHFacialPos_lmp.so |    0 
 csrc/buz/face/face.h                   |    1 +
 sdk/face/lib/gpu/libTHFaceDetect.so    |    0 
 sdk/face/lib/gpu/libTHFacialPos.so     |    0 
 csdk.h                                 |    2 +-
 csdk.cpp                               |    6 +++++-
 sdk/face/lib/gpu/libTHDetect_dpbin.so  |    0 
 gosdk.go                               |    6 ++++++
 sdk/face/include/THFaceTracking_i.h    |   15 +++++++++++++++
 sdk/face/lib/gpu/libTHFaceTracking.so  |    0 
 sdk/face/lib/gpu/libTHFacialPos_con.so |    0 
 12 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/csdk.cpp b/csdk.cpp
index bda8823..b1caa41 100644
--- a/csdk.cpp
+++ b/csdk.cpp
@@ -31,12 +31,16 @@
 }
 
 int c_api_face_tracker_init(const int tm, const int gi, const int wid, const int hei,
-                              const int maxFaces, const int detinterval, const int sampleSize){
+                            const int maxFaces, const int detinterval, const int sampleSize){
     if (!face) face = new sdkface();
     if (face) printf("create sdk face success\n");
     return face->init_face_tracker(tm, gi, wid, hei, maxFaces, detinterval, sampleSize);
 }
 
+int c_api_face_track_resize(const int chan, const int wid, const int hei){
+    return face->face_track_resize(chan, wid, hei);
+}
+
 YoloHandle c_api_yolo_init(
     const char *fcfg, const char *fweights, const char *fname,
     const int gpu_index){
diff --git a/csdk.h b/csdk.h
index fb9f25e..a7f67ec 100644
--- a/csdk.h
+++ b/csdk.h
@@ -18,7 +18,7 @@
 int c_api_face_extractor_init(const int tm, const int gi);
 int c_api_face_tracker_init(const int tm, const int gi, const int wid, const int hei,
                               const int maxFaces, const int detinterval, const int sampleSize);
-
+int c_api_face_track_resize(const int chan, const int w, const int h);
 YoloHandle c_api_yolo_init(
     const char *fcfg, const char *fweights, const char *fname,
     const int gpu_index);
diff --git a/csrc/buz/face/face.cpp b/csrc/buz/face/face.cpp
index 100d243..aa101a0 100644
--- a/csrc/buz/face/face.cpp
+++ b/csrc/buz/face/face.cpp
@@ -199,4 +199,21 @@
         }
         return nNum;
     }
+
+    //THFACETRACKING_API int	THFT_Reset(short nChannelID, THFT_Param* pParam);
+    int sdkface::face_track_resize(const int chan, const int w, const int h){
+        THFT_Param tmpParam;
+        tmpParam.nDeviceID = param.nDeviceID;
+        tmpParam.nImageWidth = w;
+        tmpParam.nImageHeight = h;
+        tmpParam.nMaxFaceNum = param.nMaxFaceNum;
+        tmpParam.nSampleSize = param.nSampleSize;
+        tmpParam.nDetectionIntervalFrame = param.nDetectionIntervalFrame;
+
+        printf("chan %d size: %dx%d", chan, w, h);
+
+        auto flag = THFT_Reset(chan, &tmpParam);
+
+        return flag;
+    }
 }
\ No newline at end of file
diff --git a/csrc/buz/face/face.h b/csrc/buz/face/face.h
index 83b9368..bd10636 100644
--- a/csrc/buz/face/face.h
+++ b/csrc/buz/face/face.h
@@ -27,6 +27,7 @@
         int init_face_tracker(const int tm, const int gi,const int w, const int h,
                               const int maxFaces, const int detinterval, const int sampleSize);
         int face_track(const cIMAGE *img, const int chan, void **fInfo, int *fcnt);
+        int face_track_resize(const int chan, const int w, const int h);
     private: 
         VecFunc dtors_;
         // face detect
diff --git a/gosdk.go b/gosdk.go
index f8c5861..42b4dcd 100644
--- a/gosdk.go
+++ b/gosdk.go
@@ -69,6 +69,12 @@
 	C.c_api_face_tracker_init(C.int(tm), C.int(gi), C.int(w), C.int(h), C.int(maxFaces), C.int(interval), C.int(sample))
 }
 
+// ResizeFaceTracker init face tracker
+func ResizeFaceTracker(ch, w, h int) int {
+
+	return int(C.c_api_face_track_resize(C.int(ch), C.int(w), C.int(h)))
+}
+
 // Free free sdk
 func Free() {
 	C.c_api_release()
diff --git a/sdk/face/include/THFaceTracking_i.h b/sdk/face/include/THFaceTracking_i.h
index 895631a..201b7df 100644
--- a/sdk/face/include/THFaceTracking_i.h
+++ b/sdk/face/include/THFaceTracking_i.h
@@ -176,5 +176,20 @@
 	3.if image has face(s),face number less than or equal to nMaxFaceNums
 */
 
+THFACETRACKING_API int	THFT_Reset(short nChannelID, THFT_Param* pParam);
+/*
+The THFT_Reset function will reset parameters for an algorithm channel
+
+Parameters:
+	nChannelID[input],channel ID(from 0 to nChannelNum-1)
+	pParam[input],algorithm channel parameter.
+Return Values:
+	If the function succeeds, the return value is 0.
+	If the function fails, the return value is  negative;
+error code:
+	-99,invalid license.
+Remarks:
+	NULL
+*/
 
 #endif
diff --git a/sdk/face/lib/gpu/libTHDetect_dpbin.so b/sdk/face/lib/gpu/libTHDetect_dpbin.so
old mode 100644
new mode 100755
Binary files differ
diff --git a/sdk/face/lib/gpu/libTHFaceDetect.so b/sdk/face/lib/gpu/libTHFaceDetect.so
old mode 100644
new mode 100755
index 1cc5988..705eb86
--- a/sdk/face/lib/gpu/libTHFaceDetect.so
+++ b/sdk/face/lib/gpu/libTHFaceDetect.so
Binary files differ
diff --git a/sdk/face/lib/gpu/libTHFaceTracking.so b/sdk/face/lib/gpu/libTHFaceTracking.so
old mode 100644
new mode 100755
index 5f48464..3581385
--- a/sdk/face/lib/gpu/libTHFaceTracking.so
+++ b/sdk/face/lib/gpu/libTHFaceTracking.so
Binary files differ
diff --git a/sdk/face/lib/gpu/libTHFacialPos.so b/sdk/face/lib/gpu/libTHFacialPos.so
old mode 100644
new mode 100755
index b74530f..c71b3fc
--- a/sdk/face/lib/gpu/libTHFacialPos.so
+++ b/sdk/face/lib/gpu/libTHFacialPos.so
Binary files differ
diff --git a/sdk/face/lib/gpu/libTHFacialPos_con.so b/sdk/face/lib/gpu/libTHFacialPos_con.so
old mode 100644
new mode 100755
Binary files differ
diff --git a/sdk/face/lib/gpu/libTHFacialPos_lmp.so b/sdk/face/lib/gpu/libTHFacialPos_lmp.so
old mode 100644
new mode 100755
Binary files differ

--
Gitblit v1.8.0