Commit b6e71beb2708712aaf2eba28977da8a970bb79f5

Authored by Hu Chunming
1 parent 3c2078c9

初步调通jni,定时抓拍功能暂未实现;初始化中缺少人脸检测初始化

.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;