Commit b6e71beb2708712aaf2eba28977da8a970bb79f5
1 parent
3c2078c9
初步调通jni,定时抓拍功能暂未实现;初始化中缺少人脸检测初始化
Showing
4 changed files
with
294 additions
and
152 deletions
.vscode/c_cpp_properties.json
0 → 100644
1 | +{ | ||
2 | + "configurations": [ | ||
3 | + { | ||
4 | + "name": "linux-gcc-x64", | ||
5 | + "includePath": [ | ||
6 | + "${workspaceFolder}/**" | ||
7 | + ], | ||
8 | + "compilerPath": "/usr/bin/gcc", | ||
9 | + "cStandard": "${default}", | ||
10 | + "cppStandard": "${default}", | ||
11 | + "intelliSenseMode": "linux-gcc-x64", | ||
12 | + "compilerArgs": [ | ||
13 | + "" | ||
14 | + ] | ||
15 | + } | ||
16 | + ], | ||
17 | + "version": 4 | ||
18 | +} | ||
0 | \ No newline at end of file | 19 | \ No newline at end of file |
.vscode/settings.json
1 | { | 1 | { |
2 | - "files.associations": { | ||
3 | - "iostream": "cpp", | ||
4 | - "array": "cpp", | ||
5 | - "atomic": "cpp", | ||
6 | - "hash_map": "cpp", | ||
7 | - "hash_set": "cpp", | ||
8 | - "bit": "cpp", | ||
9 | - "*.tcc": "cpp", | ||
10 | - "cctype": "cpp", | ||
11 | - "chrono": "cpp", | ||
12 | - "clocale": "cpp", | ||
13 | - "cmath": "cpp", | ||
14 | - "complex": "cpp", | ||
15 | - "condition_variable": "cpp", | ||
16 | - "cstdarg": "cpp", | ||
17 | - "cstddef": "cpp", | ||
18 | - "cstdint": "cpp", | ||
19 | - "cstdio": "cpp", | ||
20 | - "cstdlib": "cpp", | ||
21 | - "cstring": "cpp", | ||
22 | - "ctime": "cpp", | ||
23 | - "cwchar": "cpp", | ||
24 | - "cwctype": "cpp", | ||
25 | - "deque": "cpp", | ||
26 | - "list": "cpp", | ||
27 | - "map": "cpp", | ||
28 | - "set": "cpp", | ||
29 | - "unordered_map": "cpp", | ||
30 | - "unordered_set": "cpp", | ||
31 | - "vector": "cpp", | ||
32 | - "exception": "cpp", | ||
33 | - "algorithm": "cpp", | ||
34 | - "functional": "cpp", | ||
35 | - "iterator": "cpp", | ||
36 | - "memory": "cpp", | ||
37 | - "memory_resource": "cpp", | ||
38 | - "numeric": "cpp", | ||
39 | - "optional": "cpp", | ||
40 | - "random": "cpp", | ||
41 | - "ratio": "cpp", | ||
42 | - "string": "cpp", | ||
43 | - "string_view": "cpp", | ||
44 | - "system_error": "cpp", | ||
45 | - "tuple": "cpp", | ||
46 | - "type_traits": "cpp", | ||
47 | - "utility": "cpp", | ||
48 | - "fstream": "cpp", | ||
49 | - "initializer_list": "cpp", | ||
50 | - "iomanip": "cpp", | ||
51 | - "iosfwd": "cpp", | ||
52 | - "istream": "cpp", | ||
53 | - "limits": "cpp", | ||
54 | - "mutex": "cpp", | ||
55 | - "new": "cpp", | ||
56 | - "ostream": "cpp", | ||
57 | - "sstream": "cpp", | ||
58 | - "stdexcept": "cpp", | ||
59 | - "streambuf": "cpp", | ||
60 | - "thread": "cpp", | ||
61 | - "cinttypes": "cpp", | ||
62 | - "typeinfo": "cpp", | ||
63 | - "bitset": "cpp", | ||
64 | - "regex": "cpp", | ||
65 | - "shared_mutex": "cpp", | ||
66 | - "variant": "cpp", | ||
67 | - "future": "cpp", | ||
68 | - "typeindex": "cpp", | ||
69 | - "codecvt": "cpp", | ||
70 | - "*.cpp1": "cpp" | ||
71 | - } | 2 | + "files.associations": { |
3 | + "iostream": "cpp", | ||
4 | + "array": "cpp", | ||
5 | + "atomic": "cpp", | ||
6 | + "hash_map": "cpp", | ||
7 | + "hash_set": "cpp", | ||
8 | + "bit": "cpp", | ||
9 | + "*.tcc": "cpp", | ||
10 | + "cctype": "cpp", | ||
11 | + "chrono": "cpp", | ||
12 | + "clocale": "cpp", | ||
13 | + "cmath": "cpp", | ||
14 | + "complex": "cpp", | ||
15 | + "condition_variable": "cpp", | ||
16 | + "cstdarg": "cpp", | ||
17 | + "cstddef": "cpp", | ||
18 | + "cstdint": "cpp", | ||
19 | + "cstdio": "cpp", | ||
20 | + "cstdlib": "cpp", | ||
21 | + "cstring": "cpp", | ||
22 | + "ctime": "cpp", | ||
23 | + "cwchar": "cpp", | ||
24 | + "cwctype": "cpp", | ||
25 | + "deque": "cpp", | ||
26 | + "list": "cpp", | ||
27 | + "map": "cpp", | ||
28 | + "set": "cpp", | ||
29 | + "unordered_map": "cpp", | ||
30 | + "unordered_set": "cpp", | ||
31 | + "vector": "cpp", | ||
32 | + "exception": "cpp", | ||
33 | + "algorithm": "cpp", | ||
34 | + "functional": "cpp", | ||
35 | + "iterator": "cpp", | ||
36 | + "memory": "cpp", | ||
37 | + "memory_resource": "cpp", | ||
38 | + "numeric": "cpp", | ||
39 | + "optional": "cpp", | ||
40 | + "random": "cpp", | ||
41 | + "ratio": "cpp", | ||
42 | + "string": "cpp", | ||
43 | + "string_view": "cpp", | ||
44 | + "system_error": "cpp", | ||
45 | + "tuple": "cpp", | ||
46 | + "type_traits": "cpp", | ||
47 | + "utility": "cpp", | ||
48 | + "fstream": "cpp", | ||
49 | + "initializer_list": "cpp", | ||
50 | + "iomanip": "cpp", | ||
51 | + "iosfwd": "cpp", | ||
52 | + "istream": "cpp", | ||
53 | + "limits": "cpp", | ||
54 | + "mutex": "cpp", | ||
55 | + "new": "cpp", | ||
56 | + "ostream": "cpp", | ||
57 | + "sstream": "cpp", | ||
58 | + "stdexcept": "cpp", | ||
59 | + "streambuf": "cpp", | ||
60 | + "thread": "cpp", | ||
61 | + "cinttypes": "cpp", | ||
62 | + "typeinfo": "cpp", | ||
63 | + "bitset": "cpp", | ||
64 | + "regex": "cpp", | ||
65 | + "shared_mutex": "cpp", | ||
66 | + "variant": "cpp", | ||
67 | + "future": "cpp", | ||
68 | + "typeindex": "cpp", | ||
69 | + "codecvt": "cpp", | ||
70 | + "*.cpp1": "cpp" | ||
71 | + }, | ||
72 | + "C_Cpp_Runner.cCompilerPath": "gcc", | ||
73 | + "C_Cpp_Runner.cppCompilerPath": "g++", | ||
74 | + "C_Cpp_Runner.debuggerPath": "gdb", | ||
75 | + "C_Cpp_Runner.cStandard": "", | ||
76 | + "C_Cpp_Runner.cppStandard": "", | ||
77 | + "C_Cpp_Runner.msvcBatchPath": "", | ||
78 | + "C_Cpp_Runner.useMsvc": false, | ||
79 | + "C_Cpp_Runner.warnings": [ | ||
80 | + "-Wall", | ||
81 | + "-Wextra", | ||
82 | + "-Wpedantic", | ||
83 | + "-Wshadow", | ||
84 | + "-Wformat=2", | ||
85 | + "-Wcast-align", | ||
86 | + "-Wconversion", | ||
87 | + "-Wsign-conversion", | ||
88 | + "-Wnull-dereference" | ||
89 | + ], | ||
90 | + "C_Cpp_Runner.msvcWarnings": [ | ||
91 | + "/W4", | ||
92 | + "/permissive-", | ||
93 | + "/w14242", | ||
94 | + "/w14287", | ||
95 | + "/w14296", | ||
96 | + "/w14311", | ||
97 | + "/w14826", | ||
98 | + "/w44062", | ||
99 | + "/w44242", | ||
100 | + "/w14905", | ||
101 | + "/w14906", | ||
102 | + "/w14263", | ||
103 | + "/w44265", | ||
104 | + "/w14928" | ||
105 | + ], | ||
106 | + "C_Cpp_Runner.enableWarnings": true, | ||
107 | + "C_Cpp_Runner.warningsAsError": false, | ||
108 | + "C_Cpp_Runner.compilerArgs": [], | ||
109 | + "C_Cpp_Runner.linkerArgs": [], | ||
110 | + "C_Cpp_Runner.includePaths": [], | ||
111 | + "C_Cpp_Runner.includeSearch": [ | ||
112 | + "*", | ||
113 | + "**/*" | ||
114 | + ], | ||
115 | + "C_Cpp_Runner.excludeSearch": [ | ||
116 | + "**/build", | ||
117 | + "**/build/**", | ||
118 | + "**/.*", | ||
119 | + "**/.*/**", | ||
120 | + "**/.vscode", | ||
121 | + "**/.vscode/**" | ||
122 | + ], | ||
123 | + "C_Cpp_Runner.useAddressSanitizer": false, | ||
124 | + "C_Cpp_Runner.useUndefinedSanitizer": false, | ||
125 | + "C_Cpp_Runner.useLeakSanitizer": false, | ||
126 | + "C_Cpp_Runner.showCompilationTime": false, | ||
127 | + "C_Cpp_Runner.useLinkTimeOptimization": false, | ||
128 | + "C_Cpp_Runner.msvcSecureNoWarnings": false | ||
72 | } | 129 | } |
73 | \ No newline at end of file | 130 | \ No newline at end of file |
src/ai_platform/header.h
@@ -480,6 +480,15 @@ typedef struct algor_config_param_snapshot { | @@ -480,6 +480,15 @@ typedef struct algor_config_param_snapshot { | ||
480 | #endif | 480 | #endif |
481 | 481 | ||
482 | 482 | ||
483 | +//共性算法适配使用 | ||
484 | +#ifndef __SY_DIRECTION__ | ||
485 | +#define __SY_DIRECTION__ | ||
486 | +typedef struct sy_direction { | ||
487 | + sy_point p1; | ||
488 | + sy_point p2; | ||
489 | +} sy_direction; | ||
490 | +#endif | ||
491 | + | ||
483 | #ifndef __UNIVERSAL_ADAPTATON__ | 492 | #ifndef __UNIVERSAL_ADAPTATON__ |
484 | #define __UNIVERSAL_ADAPTATON__ | 493 | #define __UNIVERSAL_ADAPTATON__ |
485 | #define ROI_MAX_POINT 50 | 494 | #define ROI_MAX_POINT 50 |
@@ -487,7 +496,7 @@ typedef struct algor_config_param_snapshot { | @@ -487,7 +496,7 @@ typedef struct algor_config_param_snapshot { | ||
487 | typedef struct universal_algor_adapt_param { | 496 | typedef struct universal_algor_adapt_param { |
488 | sy_point points[ROI_MAX_POINT]; | 497 | sy_point points[ROI_MAX_POINT]; |
489 | int points_count; //多边形顶点数量(不超过ROI_MAX_POINT) | 498 | int points_count; //多边形顶点数量(不超过ROI_MAX_POINT) |
490 | - // sy_direction direction[MAX_DIRECTION_LINE]; | 499 | + sy_direction direction[MAX_DIRECTION_LINE]; |
491 | int line_count; //拌线数量(不超过MAX_DIRECTION_LINE) | 500 | int line_count; //拌线数量(不超过MAX_DIRECTION_LINE) |
492 | 501 | ||
493 | universal_algor_adapt_param() | 502 | universal_algor_adapt_param() |
src/tsl_aiplatform_jni/AiEngineNativeInterface.cpp
@@ -8,6 +8,9 @@ | @@ -8,6 +8,9 @@ | ||
8 | #include <string.h> | 8 | #include <string.h> |
9 | using namespace std; | 9 | using namespace std; |
10 | 10 | ||
11 | +#define SUCCESS 0 //成功 | ||
12 | +#define FAILED -1 //失败 | ||
13 | + | ||
11 | /** | 14 | /** |
12 | * */ | 15 | * */ |
13 | JavaVM *g_jvm = NULL; | 16 | JavaVM *g_jvm = NULL; |
@@ -244,7 +247,7 @@ bool gb28181_request_stream_callback(const char *task_id){ | @@ -244,7 +247,7 @@ bool gb28181_request_stream_callback(const char *task_id){ | ||
244 | JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInterface_addTask(JNIEnv *env, jobject obj, | 247 | JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInterface_addTask(JNIEnv *env, jobject obj, |
245 | jlong handle, | 248 | jlong handle, |
246 | jobject taskParam) { | 249 | jobject taskParam) { |
247 | - int code = 0; | 250 | + int code = SUCCESS; |
248 | 251 | ||
249 | // getFieldID | 252 | // getFieldID |
250 | jclass cls_taskParam = env->GetObjectClass(taskParam); | 253 | jclass cls_taskParam = env->GetObjectClass(taskParam); |
@@ -258,6 +261,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -258,6 +261,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
258 | jfieldID fid_taskParam_port = env->GetFieldID(cls_taskParam, "port", "I"); | 261 | jfieldID fid_taskParam_port = env->GetFieldID(cls_taskParam, "port", "I"); |
259 | jfieldID fid_taskParam_protocal = env->GetFieldID(cls_taskParam, "protocal", "I"); | 262 | jfieldID fid_taskParam_protocal = env->GetFieldID(cls_taskParam, "protocal", "I"); |
260 | 263 | ||
264 | + jfieldID fid_taskParam_iDino = env->GetFieldID(cls_taskParam, "iDino", "I"); | ||
265 | + | ||
261 | // getObjectField | 266 | // getObjectField |
262 | jstring str_taskParam_ipcUrl = (jstring)env->GetObjectField(taskParam, fid_taskParam_ipcUrl); | 267 | jstring str_taskParam_ipcUrl = (jstring)env->GetObjectField(taskParam, fid_taskParam_ipcUrl); |
263 | const char *taskParam_ipcUrl = env->GetStringUTFChars(str_taskParam_ipcUrl, JNI_FALSE); | 268 | const char *taskParam_ipcUrl = env->GetStringUTFChars(str_taskParam_ipcUrl, JNI_FALSE); |
@@ -265,17 +270,20 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -265,17 +270,20 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
265 | jstring str_taskParam_taskId = (jstring)env->GetObjectField(taskParam, fid_taskParam_taskId); | 270 | jstring str_taskParam_taskId = (jstring)env->GetObjectField(taskParam, fid_taskParam_taskId); |
266 | const char *taskParam_taskId = env->GetStringUTFChars(str_taskParam_taskId, JNI_FALSE); | 271 | const char *taskParam_taskId = env->GetStringUTFChars(str_taskParam_taskId, JNI_FALSE); |
267 | jobject taskParam_algorConfigParams = env->GetObjectField(taskParam, fid_taskParam_algorConfigParams); | 272 | jobject taskParam_algorConfigParams = env->GetObjectField(taskParam, fid_taskParam_algorConfigParams); |
268 | - | 273 | + |
269 | jint taskParam_dec_type = env->GetIntField(taskParam, fid_taskParam_dec_type); | 274 | jint taskParam_dec_type = env->GetIntField(taskParam, fid_taskParam_dec_type); |
270 | jint taskParam_port = env->GetIntField(taskParam, fid_taskParam_port); | 275 | jint taskParam_port = env->GetIntField(taskParam, fid_taskParam_port); |
271 | jint taskParam_protocal = env->GetIntField(taskParam, fid_taskParam_protocal); | 276 | jint taskParam_protocal = env->GetIntField(taskParam, fid_taskParam_protocal); |
272 | 277 | ||
278 | + jint taskParam_iDino = env->GetIntField(taskParam, fid_taskParam_iDino); | ||
279 | + | ||
273 | jclass cls_syRectParam = env->FindClass("com/objecteye/pojo/common/SyRectParam"); | 280 | jclass cls_syRectParam = env->FindClass("com/objecteye/pojo/common/SyRectParam"); |
274 | jfieldID fid_syRectParam_left = env->GetFieldID(cls_syRectParam, "left", "I"); | 281 | jfieldID fid_syRectParam_left = env->GetFieldID(cls_syRectParam, "left", "I"); |
275 | jfieldID fid_syRectParam_top = env->GetFieldID(cls_syRectParam, "top", "I"); | 282 | jfieldID fid_syRectParam_top = env->GetFieldID(cls_syRectParam, "top", "I"); |
276 | jfieldID fid_syRectParam_width = env->GetFieldID(cls_syRectParam, "width", "I"); | 283 | jfieldID fid_syRectParam_width = env->GetFieldID(cls_syRectParam, "width", "I"); |
277 | jfieldID fid_syRectParam_height = env->GetFieldID(cls_syRectParam, "height", "I"); | 284 | jfieldID fid_syRectParam_height = env->GetFieldID(cls_syRectParam, "height", "I"); |
278 | 285 | ||
286 | + | ||
279 | // java to C++ | 287 | // java to C++ |
280 | task_param mTaskParam; | 288 | task_param mTaskParam; |
281 | mTaskParam.ipc_url = taskParam_ipcUrl; | 289 | mTaskParam.ipc_url = taskParam_ipcUrl; |
@@ -291,9 +299,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -291,9 +299,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
291 | map<int, char *> psnapshot_little_AlgorConfigParamResSnapshotFolderMap; | 299 | map<int, char *> psnapshot_little_AlgorConfigParamResSnapshotFolderMap; |
292 | map<int, jstring> snapshot_AlgorConfigParamResSnapshotFolderMap; | 300 | map<int, jstring> snapshot_AlgorConfigParamResSnapshotFolderMap; |
293 | map<int, char *> psnapshot_AlgorConfigParamResSnapshotFolderMap; | 301 | map<int, char *> psnapshot_AlgorConfigParamResSnapshotFolderMap; |
294 | - map<int, jstring> snapshot_AlgorConfigParamResVideoFolderMap; | ||
295 | - map<int, char *> psnapshot_AlgorConfigParamResVideoFolderMap; | ||
296 | - | 302 | + |
297 | jclass cls_arraylist = env->FindClass("java/util/ArrayList"); | 303 | jclass cls_arraylist = env->FindClass("java/util/ArrayList"); |
298 | // method in class ArrayList | 304 | // method in class ArrayList |
299 | jmethodID mid_arraylist_get = env->GetMethodID(cls_arraylist, "get", "(I)Ljava/lang/Object;"); | 305 | jmethodID mid_arraylist_get = env->GetMethodID(cls_arraylist, "get", "(I)Ljava/lang/Object;"); |
@@ -312,26 +318,24 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -312,26 +318,24 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
312 | 318 | ||
313 | jclass cls_AlgorConfigParam = env->GetObjectClass(algorConfigParam_algorInitParam); | 319 | jclass cls_AlgorConfigParam = env->GetObjectClass(algorConfigParam_algorInitParam); |
314 | 320 | ||
321 | + | ||
315 | /* assign public variables. */ | 322 | /* assign public variables. */ |
316 | - auto algor_basic_param = new algor_basic_config_param_t; | ||
317 | { | 323 | { |
318 | jfieldID fid_ssAlgorConfigParam_algorRect = | 324 | jfieldID fid_ssAlgorConfigParam_algorRect = |
319 | env->GetFieldID(cls_AlgorConfigParam, "algor_valid_rect", "Lcom/objecteye/pojo/common/SyRectParam;"); | 325 | env->GetFieldID(cls_AlgorConfigParam, "algor_valid_rect", "Lcom/objecteye/pojo/common/SyRectParam;"); |
320 | jobject ssAlgorConfigParam_algorRect = | 326 | jobject ssAlgorConfigParam_algorRect = |
321 | env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_algorRect); | 327 | env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_algorRect); |
322 | - | 328 | + |
323 | jint ssAlgorConfigParam_algorRect_left = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_left); | 329 | jint ssAlgorConfigParam_algorRect_left = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_left); |
324 | jint ssAlgorConfigParam_algorRect_top = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_top); | 330 | jint ssAlgorConfigParam_algorRect_top = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_top); |
325 | jint ssAlgorConfigParam_algorRect_width = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_width); | 331 | jint ssAlgorConfigParam_algorRect_width = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_width); |
326 | jint ssAlgorConfigParam_algorRect_height = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_height); | 332 | jint ssAlgorConfigParam_algorRect_height = env->GetIntField(ssAlgorConfigParam_algorRect, fid_syRectParam_height); |
327 | - | 333 | + |
328 | jfieldID fid_ssAlgorConfigParam_snapshotLittleFolder = | 334 | jfieldID fid_ssAlgorConfigParam_snapshotLittleFolder = |
329 | env->GetFieldID(cls_AlgorConfigParam, "result_folder_little", "Ljava/lang/String;"); | 335 | env->GetFieldID(cls_AlgorConfigParam, "result_folder_little", "Ljava/lang/String;"); |
330 | jfieldID fid_ssAlgorConfigParam_snapshotFolder = | 336 | jfieldID fid_ssAlgorConfigParam_snapshotFolder = |
331 | env->GetFieldID(cls_AlgorConfigParam, "result_folder", "Ljava/lang/String;"); | 337 | env->GetFieldID(cls_AlgorConfigParam, "result_folder", "Ljava/lang/String;"); |
332 | - jfieldID fid_ssAlgorConfigParam_videoFolder = | ||
333 | - env->GetFieldID(cls_AlgorConfigParam, "video_folder", "Ljava/lang/String;"); //视频存储地址 | ||
334 | - | 338 | + |
335 | snapshot_little_AlgorConfigParamResSnapshotFolderMap[i] = | 339 | snapshot_little_AlgorConfigParamResSnapshotFolderMap[i] = |
336 | (jstring)env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_snapshotLittleFolder); | 340 | (jstring)env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_snapshotLittleFolder); |
337 | psnapshot_little_AlgorConfigParamResSnapshotFolderMap[i] = | 341 | psnapshot_little_AlgorConfigParamResSnapshotFolderMap[i] = |
@@ -340,13 +344,24 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -340,13 +344,24 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
340 | (jstring)env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_snapshotFolder); | 344 | (jstring)env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_snapshotFolder); |
341 | psnapshot_AlgorConfigParamResSnapshotFolderMap[i] = | 345 | psnapshot_AlgorConfigParamResSnapshotFolderMap[i] = |
342 | (char *)env->GetStringUTFChars(snapshot_AlgorConfigParamResSnapshotFolderMap[i], JNI_FALSE); | 346 | (char *)env->GetStringUTFChars(snapshot_AlgorConfigParamResSnapshotFolderMap[i], JNI_FALSE); |
343 | - snapshot_AlgorConfigParamResVideoFolderMap[i] = | ||
344 | - (jstring)env->GetObjectField(algorConfigParam_algorInitParam, fid_ssAlgorConfigParam_videoFolder); | ||
345 | - psnapshot_AlgorConfigParamResVideoFolderMap[i] = | ||
346 | - (char *)env->GetStringUTFChars(snapshot_AlgorConfigParamResVideoFolderMap[i], JNI_FALSE); | ||
347 | - | 347 | + |
348 | + // 共性算法适配部分 | ||
349 | + jfieldID fid_poly_points_count = env->GetFieldID(cls_AlgorConfigParam, "poly_points_count", "I"); | ||
350 | + jint j_poly_points_count = env->GetIntField(algorConfigParam_algorInitParam, fid_poly_points_count); | ||
351 | + | ||
352 | + jfieldID fid_poly = env->GetFieldID(cls_AlgorConfigParam, "poly_points", "[I"); | ||
353 | + jintArray j_poly_points = (jintArray)env->GetObjectField(algorConfigParam_algorInitParam, fid_poly); | ||
354 | + jint *poly_points = (jint *)env->GetIntArrayElements(j_poly_points, 0); | ||
355 | + | ||
356 | + jfieldID fid_line_count = env->GetFieldID(cls_AlgorConfigParam, "line_count", "I"); | ||
357 | + jint j_line_count = env->GetIntField(algorConfigParam_algorInitParam, fid_line_count); | ||
358 | + | ||
359 | + jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "lines", "[I"); | ||
360 | + jintArray j_lines = (jintArray)env->GetObjectField(algorConfigParam_algorInitParam, fid); | ||
361 | + jint *lines = (jint *)env->GetIntArrayElements(j_lines, 0); | ||
362 | + | ||
348 | auto algor_init_config_param = new algor_init_config_param_t; | 363 | auto algor_init_config_param = new algor_init_config_param_t; |
349 | - | 364 | + auto algor_basic_param = new algor_basic_config_param_t; |
350 | 365 | ||
351 | algor_basic_param->algor_valid_rect.top_ = ssAlgorConfigParam_algorRect_top; | 366 | algor_basic_param->algor_valid_rect.top_ = ssAlgorConfigParam_algorRect_top; |
352 | algor_basic_param->algor_valid_rect.left_ = ssAlgorConfigParam_algorRect_left; | 367 | algor_basic_param->algor_valid_rect.left_ = ssAlgorConfigParam_algorRect_left; |
@@ -355,7 +370,30 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -355,7 +370,30 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
355 | 370 | ||
356 | algor_basic_param->result_folder = psnapshot_AlgorConfigParamResSnapshotFolderMap[i]; | 371 | algor_basic_param->result_folder = psnapshot_AlgorConfigParamResSnapshotFolderMap[i]; |
357 | algor_basic_param->result_folder_little = psnapshot_little_AlgorConfigParamResSnapshotFolderMap[i]; | 372 | algor_basic_param->result_folder_little = psnapshot_little_AlgorConfigParamResSnapshotFolderMap[i]; |
358 | - algor_basic_param->video_folder = psnapshot_AlgorConfigParamResVideoFolderMap[i]; | 373 | + |
374 | + // 共性算法适配部分 | ||
375 | + algor_basic_param->adapt_param = new universal_algor_adapt_param; | ||
376 | + auto adapt_param = (universal_algor_adapt_param *)algor_basic_param->adapt_param; | ||
377 | + for (size_t i = 0; i < (int)j_poly_points_count; i++) { | ||
378 | + adapt_param->points[i].x_ = (int)poly_points[i * 2]; | ||
379 | + adapt_param->points[i].y_ = (int)poly_points[i * 2 + 1]; | ||
380 | + } | ||
381 | + adapt_param->points_count = (int)j_poly_points_count; | ||
382 | + | ||
383 | + for (size_t i = 0; i < (int)j_line_count; i++) { | ||
384 | + adapt_param->direction[i].p1.x_ = (int)lines[i * 4]; | ||
385 | + adapt_param->direction[i].p1.y_ = (int)lines[i * 4 + 1]; | ||
386 | + adapt_param->direction[i].p2.x_ = (int)lines[i * 4 + 2]; | ||
387 | + adapt_param->direction[i].p2.y_ = (int)lines[i * 4 + 3]; | ||
388 | + } | ||
389 | + adapt_param->line_count = (int)j_line_count; | ||
390 | + | ||
391 | + printf("[%s:%d] points_count %d line_count %d\n", __FILE__, __LINE__, (int)j_poly_points_count, (int)j_line_count); | ||
392 | + for (size_t i = 0; i < (int)j_poly_points_count; i++) | ||
393 | + printf(" i %d point (%d %d)\n", i, adapt_param->points[i].x_, adapt_param->points[i].y_); | ||
394 | + for (size_t i = 0; i < (int)j_line_count; i++) | ||
395 | + printf(" i %d point (%d %d)\n", i, adapt_param->direction[i].p1.x_, adapt_param->direction[i].p1.y_, | ||
396 | + adapt_param->direction[i].p2.x_, adapt_param->direction[i].p2.y_); | ||
359 | 397 | ||
360 | algor_init_config_param->basic_param = algor_basic_param; | 398 | algor_init_config_param->basic_param = algor_basic_param; |
361 | mTaskParam.algor_config_params[i].algor_init_config_param = algor_init_config_param; | 399 | mTaskParam.algor_config_params[i].algor_init_config_param = algor_init_config_param; |
@@ -364,9 +402,11 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -364,9 +402,11 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
364 | 402 | ||
365 | switch (static_cast<algorithm_type_t>(algorConfigParam_algorType)) { | 403 | switch (static_cast<algorithm_type_t>(algorConfigParam_algorType)) { |
366 | case algorithm_type_t::FACE_SNAPSHOT: | 404 | case algorithm_type_t::FACE_SNAPSHOT: |
367 | - // printf("FACE_SNAPSHOT result_folder: %s result_folder_little: %s \n", algor_basic_param->result_folder, algor_basic_param->result_folder_little); | ||
368 | case algorithm_type_t::HUMAN_SNAPSHOT: | 405 | case algorithm_type_t::HUMAN_SNAPSHOT: |
369 | case algorithm_type_t::VEHICLE_SNAPSHOT: | 406 | case algorithm_type_t::VEHICLE_SNAPSHOT: |
407 | + // case algorithm_type_t::HUMAN_TIMING_SNAPSHOT: | ||
408 | + // case algorithm_type_t::VEHICLE_TIMING_SNAPSHOT: | ||
409 | + // case algorithm_type_t::NONMOTOR_VEHICLE_TIMING_SNAPSHOT: | ||
370 | case algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT: { | 410 | case algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT: { |
371 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "threshold", "F"); | 411 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "threshold", "F"); |
372 | jfieldID fid_snap_frame_interval = env->GetFieldID(cls_AlgorConfigParam, "snap_frame_interval", "I"); | 412 | jfieldID fid_snap_frame_interval = env->GetFieldID(cls_AlgorConfigParam, "snap_frame_interval", "I"); |
@@ -380,55 +420,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -380,55 +420,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
380 | algor_param->threshold = (float)j_threshold; | 420 | algor_param->threshold = (float)j_threshold; |
381 | algor_param->snap_frame_interval = (int)j_snap_frame_interval; | 421 | algor_param->snap_frame_interval = (int)j_snap_frame_interval; |
382 | } break; | 422 | } break; |
383 | - | ||
384 | - //农村违法分析 | ||
385 | - case algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET: | ||
386 | - case algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN: | ||
387 | - case algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE: | ||
388 | - case algorithm_type_t::NONMOTOR_VEHICLE_REFIT: | ||
389 | - case algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS: | ||
390 | - case algorithm_type_t::NONMOTOR_IN_VEHICLELANE: | ||
391 | - case algorithm_type_t::NONMOTOR_CEOSSPARKLINE: | ||
392 | - case algorithm_type_t::NONMOTOR_WRONGDIRECTION: | ||
393 | - case algorithm_type_t::PERSON_IN_VEHICLELANE: | ||
394 | - case algorithm_type_t::PERSON_CROSS: | ||
395 | - case algorithm_type_t::PERSON_RUNNING_REDLIGHTS: | ||
396 | - case algorithm_type_t::TRICYCLE_MANNED: | ||
397 | - case algorithm_type_t::VEHICLE_WRONGDIRECTION: | ||
398 | - case algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND: | ||
399 | - case algorithm_type_t::VEHICLE_NOTGIVEWAY: | ||
400 | - case algorithm_type_t::VEHICLE_NOTDECELERATION: | ||
401 | - case algorithm_type_t::TRUCK_MANNED: { | ||
402 | - jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "hs_threshold", "I"); | ||
403 | - jint j_hs_threshold = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
404 | - fid = env->GetFieldID(cls_AlgorConfigParam, "m_frame", "I"); | ||
405 | - jint j_m_frame = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
406 | - fid = env->GetFieldID(cls_AlgorConfigParam, "n_frame", "I"); | ||
407 | - jint j_n_frame = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
408 | - fid = env->GetFieldID(cls_AlgorConfigParam, "obj_min_width", "I"); | ||
409 | - jint j_min_width = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
410 | - fid = env->GetFieldID(cls_AlgorConfigParam, "obj_min_height", "I"); | ||
411 | - jint j_min_height = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
412 | - fid = env->GetFieldID(cls_AlgorConfigParam, "obj_confidence_threshold", "F"); | ||
413 | - jfloat j_confidence_threshold = env->GetFloatField(algorConfigParam_algorInitParam, fid); | ||
414 | - std::printf("%s:%d i is %d mn is [%d %d] threshold is %d\n", __FILE__, __LINE__, i, (int)j_m_frame, | ||
415 | - (int)j_n_frame, (int)j_hs_threshold); | ||
416 | - | ||
417 | - typedef algor_config_param_manned_incident algor_config_param_type; | ||
418 | - mTaskParam.algor_config_params[i].algor_init_config_param->algor_param = new algor_config_param_type; | ||
419 | - auto algor_param = | ||
420 | - (algor_config_param_type *)mTaskParam.algor_config_params[i].algor_init_config_param->algor_param; | ||
421 | - | ||
422 | - algor_param->m = (int)j_m_frame; | ||
423 | - algor_param->n = (int)j_n_frame; | ||
424 | - algor_param->hs_count_threshold = (int)j_hs_threshold; | ||
425 | - | ||
426 | - algor_param->obj_min_width = (int)j_min_width; | ||
427 | - algor_param->obj_min_height = (int)j_min_height; | ||
428 | - algor_param->obj_confidence_threshold = (float)j_confidence_threshold; | ||
429 | - } break; | ||
430 | - | ||
431 | - | 423 | + case algorithm_type_t::HUMAN_REGION_GATHER: |
424 | + case algorithm_type_t::HUMAN_DENSITY: | ||
425 | + case algorithm_type_t::VEHICLE_GATHER: | ||
432 | case algorithm_type_t::HUMAN_GATHER: { | 426 | case algorithm_type_t::HUMAN_GATHER: { |
433 | 427 | ||
434 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "frame_stride", "I"); | 428 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "frame_stride", "I"); |
@@ -500,8 +494,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -500,8 +494,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
500 | algor_param->n = (int)j_n_frame; | 494 | algor_param->n = (int)j_n_frame; |
501 | algor_param->threshold = (float)j_threshold; | 495 | algor_param->threshold = (float)j_threshold; |
502 | 496 | ||
503 | - std::printf("%s:%d i is %d mn is [%d %d] threshold is %f\n", __FILE__, __LINE__, i, algor_param->m, | ||
504 | - algor_param->n, algor_param->threshold); | 497 | + // std::printf("%s:%d i is %d mn is [%d %d] threshold is %f\n", __FILE__, __LINE__, i, algor_param->m, |
498 | + // algor_param->n, algor_param->threshold); | ||
505 | } break; | 499 | } break; |
506 | case algorithm_type_t::PEDESTRIAN_FIGHT: { | 500 | case algorithm_type_t::PEDESTRIAN_FIGHT: { |
507 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "threshold", "F"); | 501 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "threshold", "F"); |
@@ -639,8 +633,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -639,8 +633,8 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
639 | (algor_config_param_type *)mTaskParam.algor_config_params[i].algor_init_config_param->algor_param; | 633 | (algor_config_param_type *)mTaskParam.algor_config_params[i].algor_init_config_param->algor_param; |
640 | 634 | ||
641 | algor_param->px1 = (int)j_px1; | 635 | algor_param->px1 = (int)j_px1; |
642 | - algor_param->px2 = (int)j_px2; | ||
643 | algor_param->py1 = (int)j_py1; | 636 | algor_param->py1 = (int)j_py1; |
637 | + algor_param->px2 = (int)j_px2; | ||
644 | algor_param->py2 = (int)j_py2; | 638 | algor_param->py2 = (int)j_py2; |
645 | algor_param->conf_threshold = (float)j_confidence_threshold; | 639 | algor_param->conf_threshold = (float)j_confidence_threshold; |
646 | algor_param->minmum_width = std::max(0, (int)j_min_width); | 640 | algor_param->minmum_width = std::max(0, (int)j_min_width); |
@@ -649,6 +643,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -649,6 +643,9 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
649 | } break; | 643 | } break; |
650 | 644 | ||
651 | case algorithm_type_t::PEDESTRIAN_TRESPASS: | 645 | case algorithm_type_t::PEDESTRIAN_TRESPASS: |
646 | + case algorithm_type_t::HUMAN_LEAVE_REGION: | ||
647 | + case algorithm_type_t::HUMAN_REGION_DISMISS: | ||
648 | + case algorithm_type_t::HUMAN_REGION_FAST_MOVING: | ||
652 | case algorithm_type_t::VEHICLE_TRESPASS: { | 649 | case algorithm_type_t::VEHICLE_TRESPASS: { |
653 | 650 | ||
654 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "points_count", "I"); | 651 | jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "points_count", "I"); |
@@ -673,16 +670,6 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -673,16 +670,6 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
673 | jint *points = (jint *)env->GetIntArrayElements(j_points, 0); | 670 | jint *points = (jint *)env->GetIntArrayElements(j_points, 0); |
674 | 671 | ||
675 | for (size_t i = 0; i < (int)j_points_count; i++) { | 672 | for (size_t i = 0; i < (int)j_points_count; i++) { |
676 | - /* | ||
677 | - jobject obj_pointConfigParam = env->CallObjectMethod(j_points, mid_arraylist_points_get, i); | ||
678 | - jclass cls_pointConfigParam = env->GetObjectClass(obj_pointConfigParam); | ||
679 | - printf("33333333333"); | ||
680 | - jfieldID fid_pointConfigParam_x = env->GetFieldID(cls_pointConfigParam, "x", "I"); | ||
681 | - jint point_x = env->GetIntField(obj_pointConfigParam, fid_pointConfigParam_x); | ||
682 | - | ||
683 | - jfieldID fid_pointConfigParam_y = env->GetFieldID(cls_pointConfigParam, "y", "I"); | ||
684 | - jint point_y = env->GetIntField(obj_pointConfigParam, fid_pointConfigParam_y); | ||
685 | - */ | ||
686 | algor_param->points[i].x_ = (int)points[i * 2]; | 673 | algor_param->points[i].x_ = (int)points[i * 2]; |
687 | algor_param->points[i].y_ = (int)points[i * 2 + 1]; | 674 | algor_param->points[i].y_ = (int)points[i * 2 + 1]; |
688 | } | 675 | } |
@@ -699,6 +686,77 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | @@ -699,6 +686,77 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_TSLAiEngineNativeInter | ||
699 | printf(" i %d point (%d %d)\n", i, algor_param->points[i].x_, algor_param->points[i].y_); | 686 | printf(" i %d point (%d %d)\n", i, algor_param->points[i].x_, algor_param->points[i].y_); |
700 | } break; | 687 | } break; |
701 | 688 | ||
689 | + case algorithm_type_t::HUMAN_LINGER: | ||
690 | + case algorithm_type_t::VEHICLE_ILLEGAL_PARKING: | ||
691 | + { | ||
692 | + jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "duration", "I"); | ||
693 | + jint j_duration = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
694 | + | ||
695 | + fid = env->GetFieldID(cls_AlgorConfigParam, "min_width", "I"); | ||
696 | + jint j_min_width = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
697 | + | ||
698 | + fid = env->GetFieldID(cls_AlgorConfigParam, "min_height", "I"); | ||
699 | + jint j_min_height = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
700 | + | ||
701 | + fid = env->GetFieldID(cls_AlgorConfigParam, "confidence_threshold", "F"); | ||
702 | + jfloat j_confidence_threshold = env->GetFloatField(algorConfigParam_algorInitParam, fid); | ||
703 | + | ||
704 | + using algor_config_param_type = algor_config_param_behavior; | ||
705 | + mTaskParam.algor_config_params[i].algor_init_config_param->algor_param = new algor_config_param_type; | ||
706 | + auto algor_param = | ||
707 | + (algor_config_param_type *)mTaskParam.algor_config_params[i].algor_init_config_param->algor_param; | ||
708 | + | ||
709 | + | ||
710 | + algor_param->conf_threshold = (float)j_confidence_threshold; | ||
711 | + algor_param->minmum_width = std::max(0, (int)j_min_width); | ||
712 | + algor_param->minmum_height = std::max(0, (int)j_min_height); | ||
713 | + algor_param->duration = std::max(0, (int)j_duration); | ||
714 | + | ||
715 | + } break; | ||
716 | + | ||
717 | + case algorithm_type_t::VEHICLE_ILLEGAL_CROSSING_LINE: | ||
718 | + case algorithm_type_t::HUMAN_CROSSING_LINE: | ||
719 | + case algorithm_type_t::HUMAN_CLIMB: { | ||
720 | + | ||
721 | + jfieldID fid = env->GetFieldID(cls_AlgorConfigParam, "px1", "I"); | ||
722 | + jint j_px1 = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
723 | + | ||
724 | + fid = env->GetFieldID(cls_AlgorConfigParam, "py1", "I"); | ||
725 | + jint j_py1 = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
726 | + | ||
727 | + fid = env->GetFieldID(cls_AlgorConfigParam, "px2", "I"); | ||
728 | + jint j_px2 = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
729 | + | ||
730 | + fid = env->GetFieldID(cls_AlgorConfigParam, "py2", "I"); | ||
731 | + jint j_py2 = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
732 | + | ||
733 | + fid = env->GetFieldID(cls_AlgorConfigParam, "min_width", "I"); | ||
734 | + jint j_min_width = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
735 | + | ||
736 | + fid = env->GetFieldID(cls_AlgorConfigParam, "min_height", "I"); | ||
737 | + jint j_min_height = env->GetIntField(algorConfigParam_algorInitParam, fid); | ||
738 | + | ||
739 | + fid = env->GetFieldID(cls_AlgorConfigParam, "confidence_threshold", "F"); | ||
740 | + jfloat j_confidence_threshold = env->GetFloatField(algorConfigParam_algorInitParam, fid); | ||
741 | + | ||
742 | + std::printf( | ||
743 | + "[%s:%d] point [(%d, %d), (%d, %d)] minimum wh [%d %d] minimum_threshold %.2f\n", | ||
744 | + __FILE__, __LINE__, (int)j_px1, (int)j_py1, (int)j_px2, (int)j_py2, (int)j_min_width, (int)j_min_height, (float)j_confidence_threshold); | ||
745 | + | ||
746 | + using algor_config_param_type = algor_config_param_illegal_crossing_line; | ||
747 | + mTaskParam.algor_config_params[i].algor_init_config_param->algor_param = new algor_config_param_type; | ||
748 | + auto algor_param = | ||
749 | + (algor_config_param_type *)mTaskParam.algor_config_params[i].algor_init_config_param->algor_param; | ||
750 | + | ||
751 | + algor_param->p1.x_ = (int)j_px1; | ||
752 | + algor_param->p1.y_ = (int)j_py1; | ||
753 | + algor_param->p2.x_ = (int)j_px2; | ||
754 | + algor_param->p2.y_ = (int)j_py2; | ||
755 | + algor_param->conf_threshold = (float)j_confidence_threshold; | ||
756 | + algor_param->minmum_width = std::max(0, (int)j_min_width); | ||
757 | + algor_param->minmum_height = std::max(0, (int)j_min_height); | ||
758 | + } break; | ||
759 | + | ||
702 | default: { | 760 | default: { |
703 | fprintf(stderr, "%s:%d Add Task Failed (Invalid algorithm type). \n", __FILE__, __LINE__); | 761 | fprintf(stderr, "%s:%d Add Task Failed (Invalid algorithm type). \n", __FILE__, __LINE__); |
704 | code = -1; | 762 | code = -1; |