Commit e63aa283539301812c38acea4c8c75efc3be200b
1 parent
ba6761f1
修复jni值传递错误问题
Showing
1 changed file
with
254 additions
and
296 deletions
jni/VehicleNativeInterface.cpp
@@ -14,8 +14,6 @@ | @@ -14,8 +14,6 @@ | ||
14 | #include <opencv2/opencv.hpp> | 14 | #include <opencv2/opencv.hpp> |
15 | #include "base64.h" | 15 | #include "base64.h" |
16 | 16 | ||
17 | -// #include "curl/curl.h" | ||
18 | - | ||
19 | //dvpp���� | 17 | //dvpp���� |
20 | #include "dvpp_process.h" | 18 | #include "dvpp_process.h" |
21 | #include "utils.h" | 19 | #include "utils.h" |
@@ -90,9 +88,7 @@ using namespace std; | @@ -90,9 +88,7 @@ using namespace std; | ||
90 | * �������� | 88 | * �������� |
91 | * */ | 89 | * */ |
92 | sy_format getImgByteType(int type); | 90 | sy_format getImgByteType(int type); |
93 | -// size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata); | ||
94 | -// //function to retrieve the image as cv::Mat data type | ||
95 | -// cv::Mat curlImg(const char *img_url, int timeout); | 91 | + |
96 | 92 | ||
97 | /** | 93 | /** |
98 | * ȫ�ֱ��� | 94 | * ȫ�ֱ��� |
@@ -311,7 +307,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -311,7 +307,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
311 | std::cout << "village_pic_analysis " << std::endl; | 307 | std::cout << "village_pic_analysis " << std::endl; |
312 | 308 | ||
313 | std::vector<AnalysisResult> vec_result = village_pic_analysis(vaHandle, batch_img, batchSize); | 309 | std::vector<AnalysisResult> vec_result = village_pic_analysis(vaHandle, batch_img, batchSize); |
314 | - if (vec_result.size() <= 0) | 310 | + if (vec_result.size() <= 0 || vec_result.size() != batchSize) |
315 | { | 311 | { |
316 | printf("jni info:village_pic_analysis failed."); | 312 | printf("jni info:village_pic_analysis failed."); |
317 | return -1; | 313 | return -1; |
@@ -319,302 +315,291 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -319,302 +315,291 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
319 | cout << "result size:" << vec_result.size() << endl; | 315 | cout << "result size:" << vec_result.size() << endl; |
320 | 316 | ||
321 | t3 = msecond(); | 317 | t3 = msecond(); |
322 | - //printf("va jni info:process time: %.2f\n", (t3 - t2)); | ||
323 | - | ||
324 | - | ||
325 | - for (int b = 0; b < batchSize; b++) | ||
326 | - { | ||
327 | - | ||
328 | - //printf("VAJNI_TEST begin reult: %d, count: %d\n", b, result[b].count); | ||
329 | - for (int c = 0; c < vec_result[b].info.size(); c++) | ||
330 | - { | ||
331 | - //std::cout << "obj_quality_idx=" << result[b].info[c].obj_quality_idx << std::endl; //聚档数据类型�?-无效数据�?-低质数据�?-优质数据 | ||
332 | - | ||
333 | - std::string str_vehicle_type; | ||
334 | - int vehicle_type = vec_result[b].info[c].type; | ||
335 | - //std::cout << "vehicle_type=" << vehicle_type << std::endl; | ||
336 | - if (vehicle_type == 0)str_vehicle_type = "head"; | ||
337 | - else if (vehicle_type == 1)str_vehicle_type = "rear"; | ||
338 | - else if (vehicle_type == 2)str_vehicle_type = "motor"; | ||
339 | - else if (vehicle_type == 3)str_vehicle_type = "tricycle"; | ||
340 | - else if (vehicle_type == 4)str_vehicle_type = "body"; | ||
341 | - //std::cout << "vehicle_type info:" << str_vehicle_type << std::endl; | ||
342 | - } | ||
343 | - } | ||
344 | - | ||
345 | 318 | ||
346 | - if (ret == SUCCESS) | 319 | + std::cout << "struct " << std::endl; |
320 | + // getClass | ||
321 | + jclass cls_vehicleAnalysisResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleAnalysisResultParam"); | ||
322 | + jclass cls_VehicleInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleInfoParam"); | ||
323 | + jclass cls_LineInfo = env->FindClass("com/objecteye/pojo/vehicle/LineInfoParam"); | ||
324 | + jclass cls_SegInfo = env->FindClass("com/objecteye/pojo/vehicle/SegInfoParam"); | ||
325 | + | ||
326 | + jclass cls_VehicleDetectResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleDetectResultParam"); | ||
327 | + jclass cls_VehicleColorResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleColorResultParam"); | ||
328 | + jclass cls_VehicleRecgResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultParam"); | ||
329 | + //jclass cls_VehicleRecgTopnResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultTopnParam");//wh20210527������topn�ӿ� | ||
330 | + jclass cls_VplateResult = env->FindClass("com/objecteye/pojo/vehicle/VehiclePlateResultParam"); | ||
331 | + jclass cls_VehiclePendantDetResult = env->FindClass("com/objecteye/pojo/vehicle/VehiclePendantDetectResultParam"); | ||
332 | + jclass cls_VehicleIllegalDetResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam"); | ||
333 | + jclass cls_VehicleFeaResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleFeatureResultParam"); | ||
334 | + jclass cls_SyRect = env->FindClass("com/objecteye/pojo/common/SyRectParam"); | ||
335 | + jclass cls_VplateNum = env->FindClass("com/objecteye/pojo/vehicle/VehiclePlateNumParam"); | ||
336 | + jclass cls_VehiclePendantDetInfo = env->FindClass("com/objecteye/pojo/vehicle/VehiclePendantDetectInfoParam"); | ||
337 | + jclass cls_VehicleIllegalDetInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam"); | ||
338 | + jclass cls_VehicleIllegalDetDetails = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam"); | ||
339 | + //jclass cls_VehicleSpecialInformationParam = env->FindClass("com/objecteye/pojo/vehicle/VehicleSpecialInformationParam"); | ||
340 | + //jclass cls_VehicleSpecialResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleSpecialResultParam"); | ||
341 | + //jclass cls_MucktruckcoverResult = env->FindClass("com/objecteye/pojo/vehicle/MucktruckcoverResultParam"); | ||
342 | + jclass cls_MtaResult = env->FindClass("com/objecteye/pojo/vehicle/MtaResultParam"); | ||
343 | + jclass cls_MtaDetailsParam = env->FindClass("com/objecteye/pojo/vehicle/MtaDetailsParam"); | ||
344 | + //jclass cls_StainVplateResultParam = env->FindClass("com/objecteye/pojo/vehicle/StainVplateResultParam"); | ||
345 | + jclass cls_MannedResultParam = env->FindClass("com/objecteye/pojo/vehicle/MannedResultParam"); | ||
346 | + | ||
347 | + //jclass cls_VehiclePoseResultParam = env->FindClass("com/objecteye/pojo/vehicle/VehiclePoseResultParam");//wh20210601������pose��� | ||
348 | + | ||
349 | + jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam"); | ||
350 | + | ||
351 | + | ||
352 | + //getmethodId | ||
353 | + jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;[Lcom/objecteye/pojo/vehicle/LineInfoParam;[Lcom/objecteye/pojo/vehicle/SegInfoParam;I)V"); | ||
354 | + | ||
355 | + jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;IIIFIIIIIIFII)V"); | ||
356 | + | ||
357 | + jmethodID mid_VehicleDetectResult = env->GetMethodID(cls_VehicleDetectResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F)V"); | ||
358 | + jmethodID mid_VehicleColorResult = env->GetMethodID(cls_VehicleColorResult, "<init>", "(FI)V"); | ||
359 | + //jmethodID mid_VehicleRecgTopnResult = env->GetMethodID(cls_VehicleRecgTopnResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;I)V");//wh20210527������topn�ӿ� | ||
360 | + jmethodID mid_VehicleRecgResult = env->GetMethodID(cls_VehicleRecgResult, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;F)V"); | ||
361 | + jmethodID mid_VplateResult = env->GetMethodID(cls_VplateResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F[Lcom/objecteye/pojo/vehicle/VehiclePlateNumParam;FII)V"); | ||
362 | + jmethodID mid_VehiclePendantDetResult = env->GetMethodID(cls_VehiclePendantDetResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehiclePendantDetectInfoParam;I)V"); | ||
363 | + jmethodID mid_VehicleIllegalDetResult = env->GetMethodID(cls_VehicleIllegalDetResult, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam;)V"); | ||
364 | + jmethodID mid_VehicleFeaResult = env->GetMethodID(cls_VehicleFeaResult, "<init>", "([F)V"); | ||
365 | + jmethodID mid_SyRect = env->GetMethodID(cls_SyRect, "<init>", "(IIII)V"); | ||
366 | + jmethodID mid_VplateNum = env->GetMethodID(cls_VplateNum, "<init>", "(Ljava/lang/String;F)V"); | ||
367 | + | ||
368 | + | ||
369 | + jmethodID mid_VehiclePendantDetInfo = env->GetMethodID(cls_VehiclePendantDetInfo, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;IFII)V"); | ||
370 | + jmethodID mid_VehicleIllegalDetInfo = env->GetMethodID(cls_VehicleIllegalDetInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;)V"); | ||
371 | + jmethodID mid_VehicleIllegalDetDetails = env->GetMethodID(cls_VehicleIllegalDetDetails, "<init>", "(IF)V"); | ||
372 | + //jmethodID mid_VehicleSpecialInformationParam = env->GetMethodID(cls_VehicleSpecialInformationParam, "<init>", "(FI)V"); | ||
373 | + //jmethodID mid_VehicleSpecialResult = env->GetMethodID(cls_VehicleSpecialResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleSpecialInformationParam;I)V"); | ||
374 | + jmethodID mid_MtaResult = env->GetMethodID(cls_MtaResult, "<init>", "(Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;)V"); | ||
375 | + jmethodID mid_MtaDetailsParam = env->GetMethodID(cls_MtaDetailsParam, "<init>", "(IF)V"); | ||
376 | + //jmethodID mid_StainVplateResultParam = env->GetMethodID(cls_StainVplateResultParam, "<init>", "(FI)V"); | ||
377 | + //jmethodID mid_MucktruckcoverResult = env->GetMethodID(cls_MucktruckcoverResult, "<init>", "(IF)V"); | ||
378 | + jmethodID mid_MannedResult = env->GetMethodID(cls_MannedResultParam, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;I)V");//wh20220222 | ||
379 | + jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose��� | ||
380 | + //jmethodID mid_VehiclePoseResult = env->GetMethodID(cls_VehiclePoseResultParam, "<init>", "([Lcom/objecteye/pojo/common/SyPointParam;[F[FDDD)V"); | ||
381 | + | ||
382 | + jmethodID mid_LineInfo = env->GetMethodID(cls_LineInfo, "<init>", "([Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
383 | + jmethodID mid_SegInfo = env->GetMethodID(cls_SegInfo, "<init>", "([Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
384 | + | ||
385 | + //set value to param | ||
386 | + std::cout << "vehicleInfoArray " << std::endl; | ||
387 | + | ||
388 | + for (size_t i = 0; i < batchSize; i++) | ||
347 | { | 389 | { |
348 | - // getClass | ||
349 | - jclass cls_vehicleAnalysisResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleAnalysisResultParam"); | ||
350 | - jclass cls_VehicleInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleInfoParam"); | ||
351 | - jclass cls_LineInfo = env->FindClass("com/objecteye/pojo/vehicle/LineInfoParam"); | ||
352 | - jclass cls_SegInfo = env->FindClass("com/objecteye/pojo/vehicle/SegInfoParam"); | ||
353 | - | ||
354 | - jclass cls_VehicleDetectResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleDetectResultParam"); | ||
355 | - jclass cls_VehicleColorResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleColorResultParam"); | ||
356 | - jclass cls_VehicleRecgResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultParam"); | ||
357 | - //jclass cls_VehicleRecgTopnResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleRecognizeResultTopnParam");//wh20210527������topn�ӿ� | ||
358 | - jclass cls_VplateResult = env->FindClass("com/objecteye/pojo/vehicle/VehiclePlateResultParam"); | ||
359 | - jclass cls_VehiclePendantDetResult = env->FindClass("com/objecteye/pojo/vehicle/VehiclePendantDetectResultParam"); | ||
360 | - jclass cls_VehicleIllegalDetResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam"); | ||
361 | - jclass cls_VehicleFeaResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleFeatureResultParam"); | ||
362 | - jclass cls_SyRect = env->FindClass("com/objecteye/pojo/common/SyRectParam"); | ||
363 | - jclass cls_VplateNum = env->FindClass("com/objecteye/pojo/vehicle/VehiclePlateNumParam"); | ||
364 | - jclass cls_VehiclePendantDetInfo = env->FindClass("com/objecteye/pojo/vehicle/VehiclePendantDetectInfoParam"); | ||
365 | - jclass cls_VehicleIllegalDetInfo = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam"); | ||
366 | - jclass cls_VehicleIllegalDetDetails = env->FindClass("com/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam"); | ||
367 | - //jclass cls_VehicleSpecialInformationParam = env->FindClass("com/objecteye/pojo/vehicle/VehicleSpecialInformationParam"); | ||
368 | - //jclass cls_VehicleSpecialResult = env->FindClass("com/objecteye/pojo/vehicle/VehicleSpecialResultParam"); | ||
369 | - //jclass cls_MucktruckcoverResult = env->FindClass("com/objecteye/pojo/vehicle/MucktruckcoverResultParam"); | ||
370 | - jclass cls_MtaResult = env->FindClass("com/objecteye/pojo/vehicle/MtaResultParam"); | ||
371 | - jclass cls_MtaDetailsParam = env->FindClass("com/objecteye/pojo/vehicle/MtaDetailsParam"); | ||
372 | - //jclass cls_StainVplateResultParam = env->FindClass("com/objecteye/pojo/vehicle/StainVplateResultParam"); | ||
373 | - jclass cls_MannedResultParam = env->FindClass("com/objecteye/pojo/vehicle/MannedResultParam"); | ||
374 | - | ||
375 | - //jclass cls_VehiclePoseResultParam = env->FindClass("com/objecteye/pojo/vehicle/VehiclePoseResultParam");//wh20210601������pose��� | ||
376 | - | ||
377 | - jclass cls_SyPoint = env->FindClass("com/objecteye/pojo/common/SyPointParam"); | ||
378 | - | ||
379 | - | ||
380 | - //getmethodId | ||
381 | - jmethodID mid_vehicleAnalysisResult = env->GetMethodID(cls_vehicleAnalysisResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleInfoParam;com/objecteye/pojo/vehicle/LineInfoParam;com/objecteye/pojo/vehicle/SegInfoParam;I)V"); | ||
382 | - | ||
383 | - jmethodID mid_VehicleInfo = env->GetMethodID(cls_VehicleInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleColorResultParam;Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;Lcom/objecteye/pojo/vehicle/VehiclePlateResultParam;Lcom/objecteye/pojo/vehicle/VehiclePendantDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectResultParam;Lcom/objecteye/pojo/vehicle/VehicleFeatureResultParam;Lcom/objecteye/pojo/vehicle/MtaResultParam;Lcom/objecteye/pojo/vehicle/MannedResultParam;I;I;I;F;I;I;I;I;I;I;F;I;I)V"); | ||
384 | - | ||
385 | - jmethodID mid_VehicleDetectResult = env->GetMethodID(cls_VehicleDetectResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F)V"); | ||
386 | - jmethodID mid_VehicleColorResult = env->GetMethodID(cls_VehicleColorResult, "<init>", "(FI)V"); | ||
387 | - //jmethodID mid_VehicleRecgTopnResult = env->GetMethodID(cls_VehicleRecgTopnResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleRecognizeResultParam;I)V");//wh20210527������topn�ӿ� | ||
388 | - jmethodID mid_VehicleRecgResult = env->GetMethodID(cls_VehicleRecgResult, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;F)V"); | ||
389 | - jmethodID mid_VplateResult = env->GetMethodID(cls_VplateResult, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;F[Lcom/objecteye/pojo/vehicle/VehiclePlateNumParam;FII)V"); | ||
390 | - jmethodID mid_VehiclePendantDetResult = env->GetMethodID(cls_VehiclePendantDetResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehiclePendantDetectInfoParam;I)V"); | ||
391 | - jmethodID mid_VehicleIllegalDetResult = env->GetMethodID(cls_VehicleIllegalDetResult, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectInfoParam;)V"); | ||
392 | - jmethodID mid_VehicleFeaResult = env->GetMethodID(cls_VehicleFeaResult, "<init>", "([F)V"); | ||
393 | - jmethodID mid_SyRect = env->GetMethodID(cls_SyRect, "<init>", "(IIII)V"); | ||
394 | - jmethodID mid_VplateNum = env->GetMethodID(cls_VplateNum, "<init>", "(Ljava/lang/String;F)V"); | ||
395 | - //jmethodID mid_VehiclePendantDetInfo = env->GetMethodID(cls_VehiclePendantDetInfo, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;IFI[F)V"); | ||
396 | - //wh20210916����� | ||
397 | - jmethodID mid_VehiclePendantDetInfo = env->GetMethodID(cls_VehiclePendantDetInfo, "<init>", "(Lcom/objecteye/pojo/common/SyRectParam;IFI)V"); | ||
398 | - jmethodID mid_VehicleIllegalDetInfo = env->GetMethodID(cls_VehicleIllegalDetInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleIllegalDetectDetailsParam;)V"); | ||
399 | - jmethodID mid_VehicleIllegalDetDetails = env->GetMethodID(cls_VehicleIllegalDetDetails, "<init>", "(IF)V"); | ||
400 | - //jmethodID mid_VehicleSpecialInformationParam = env->GetMethodID(cls_VehicleSpecialInformationParam, "<init>", "(FI)V"); | ||
401 | - //jmethodID mid_VehicleSpecialResult = env->GetMethodID(cls_VehicleSpecialResult, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleSpecialInformationParam;I)V"); | ||
402 | - jmethodID mid_MtaResult = env->GetMethodID(cls_MtaResult, "<init>", "(Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/MtaDetailsParam;Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;)V"); | ||
403 | - jmethodID mid_MtaDetailsParam = env->GetMethodID(cls_MtaDetailsParam, "<init>", "(IF)V"); | ||
404 | - //jmethodID mid_StainVplateResultParam = env->GetMethodID(cls_StainVplateResultParam, "<init>", "(FI)V"); | ||
405 | - //jmethodID mid_MucktruckcoverResult = env->GetMethodID(cls_MucktruckcoverResult, "<init>", "(IF)V"); | ||
406 | - jmethodID mid_MannedResult = env->GetMethodID(cls_MannedResultParam, "<init>", "([Lcom/objecteye/pojo/vehicle/VehicleDetectResultParam;I)V");//wh20220222 | ||
407 | - jmethodID mid_SyPoint = env->GetMethodID(cls_SyPoint, "<init>", "(II)V");//wh20210601������pose��� | ||
408 | - //jmethodID mid_VehiclePoseResult = env->GetMethodID(cls_VehiclePoseResultParam, "<init>", "([Lcom/objecteye/pojo/common/SyPointParam;[F[FDDD)V"); | ||
409 | - | ||
410 | - jmethodID mid_LineInfo = env->GetMethodID(cls_LineInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
411 | - jmethodID mid_SegInfo = env->GetMethodID(cls_SegInfo, "<init>", "(Lcom/objecteye/pojo/vehicle/SyPointParam;I)V"); | ||
412 | - | ||
413 | - //set value to param | ||
414 | - std::cout << "vehicleInfoArray " << std::endl; | ||
415 | - | ||
416 | - for (size_t i = 0; i < batchSize; i++) | ||
417 | - { | ||
418 | - jobjectArray vehicleInfoArray = env->NewObjectArray(vec_result[i].info.size(), cls_VehicleInfo, NULL); | ||
419 | - for (int j = 0; j < vec_result[i].info.size(); j++) | ||
420 | - { //vehicleDetectRes | ||
421 | - auto vehicle_info = vec_result[i].info[j]; | ||
422 | - jobject vehicle_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_detect_res.rect.left_, vehicle_info.vehicle_detect_res.rect.top_, vehicle_info.vehicle_detect_res.rect.width_, vehicle_info.vehicle_detect_res.rect.height_); | ||
423 | - jobject vehicleDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_detect_res_syRect_rect, vehicle_info.vehicle_detect_res.score); | ||
424 | - //vehicleWinDetectRes | ||
425 | - jobject vehicle_win_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_win_detect_res.rect.left_, vehicle_info.vehicle_win_detect_res.rect.top_, vehicle_info.vehicle_win_detect_res.rect.width_, vehicle_info.vehicle_win_detect_res.rect.height_); | ||
426 | - jobject vehicleWinDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_win_detect_res_syRect_rect, vehicle_info.vehicle_win_detect_res.score); | ||
427 | - //vehicleBodyDetectRes | ||
428 | - jobject vehicle_body_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_body_detect_res.rect.left_, vehicle_info.vehicle_body_detect_res.rect.top_, vehicle_info.vehicle_body_detect_res.rect.width_, vehicle_info.vehicle_body_detect_res.rect.height_); | ||
429 | - jobject vehicleBodyDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_body_detect_res_syRect_rect, vehicle_info.vehicle_body_detect_res.score); | ||
430 | - //vehicleColorRes | ||
431 | - jobject vehicleColorResult = NULL; | ||
432 | - if (global_vehicle_color_config == SY_CONFIG_OPEN) | ||
433 | - { | ||
434 | - vehicleColorResult = env->NewObject(cls_VehicleColorResult, mid_VehicleColorResult, vehicle_info.vehicle_color_res.score, vehicle_info.vehicle_color_res.index); | ||
435 | - } | 390 | + jobjectArray vehicleInfoArray = env->NewObjectArray(vec_result[i].info.size(), cls_VehicleInfo, NULL); |
391 | + for (int j = 0; j < vec_result[i].info.size(); j++) | ||
392 | + { //vehicleDetectRes | ||
393 | + std::cout << "vehicleDetectRes" << std::endl; | ||
394 | + auto vehicle_info = vec_result[i].info[j]; | ||
395 | + jobject vehicle_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_detect_res.rect.left_, vehicle_info.vehicle_detect_res.rect.top_, vehicle_info.vehicle_detect_res.rect.width_, vehicle_info.vehicle_detect_res.rect.height_); | ||
396 | + jobject vehicleDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_detect_res_syRect_rect, vehicle_info.vehicle_detect_res.score); | ||
397 | + //vehicleWinDetectRes | ||
398 | + jobject vehicle_win_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_win_detect_res.rect.left_, vehicle_info.vehicle_win_detect_res.rect.top_, vehicle_info.vehicle_win_detect_res.rect.width_, vehicle_info.vehicle_win_detect_res.rect.height_); | ||
399 | + jobject vehicleWinDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_win_detect_res_syRect_rect, vehicle_info.vehicle_win_detect_res.score); | ||
400 | + //vehicleBodyDetectRes | ||
401 | + jobject vehicle_body_detect_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_body_detect_res.rect.left_, vehicle_info.vehicle_body_detect_res.rect.top_, vehicle_info.vehicle_body_detect_res.rect.width_, vehicle_info.vehicle_body_detect_res.rect.height_); | ||
402 | + jobject vehicleBodyDetectResult = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, vehicle_body_detect_res_syRect_rect, vehicle_info.vehicle_body_detect_res.score); | ||
403 | + //vehicleColorRes | ||
404 | + jobject vehicleColorResult = NULL; | ||
405 | + if (global_vehicle_color_config == SY_CONFIG_OPEN) | ||
406 | + { | ||
407 | + std::cout << "vehicleColorResult" << std::endl; | ||
408 | + vehicleColorResult = env->NewObject(cls_VehicleColorResult, mid_VehicleColorResult, vehicle_info.vehicle_color_res.score, vehicle_info.vehicle_color_res.index); | ||
409 | + } | ||
436 | 410 | ||
437 | - //vehicleRecgRes //0618 atlas�Ļ�top1�Ľӿ� | ||
438 | - jobject vehicleRecgResult = NULL; | ||
439 | - if (global_vehicle_recg_config == SY_CONFIG_OPEN) | ||
440 | - { | ||
441 | - jstring vehicleBrand = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_brand); | ||
442 | - jstring vehicleSubbrand = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_subbrand); | ||
443 | - jstring vehicleIssueYear = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_issue_year); | ||
444 | - jstring vehicleType = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_type); | ||
445 | - jstring freightTon = env->NewStringUTF(vehicle_info.vehicle_recg_res.freight_ton); | ||
446 | - vehicleRecgResult = env->NewObject(cls_VehicleRecgResult, mid_VehicleRecgResult, vehicleBrand, vehicleSubbrand, vehicleIssueYear, vehicleType, freightTon, vehicle_info.vehicle_recg_res.name_score); | ||
447 | - } | 411 | + //vehicleRecgRes //0618 atlas�Ļ�top1�Ľӿ� |
412 | + jobject vehicleRecgResult = NULL; | ||
413 | + if (global_vehicle_recg_config == SY_CONFIG_OPEN) | ||
414 | + { | ||
415 | + std::cout << "vehicleRecgResult" << std::endl; | ||
416 | + jstring vehicleBrand = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_brand); | ||
417 | + jstring vehicleSubbrand = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_subbrand); | ||
418 | + jstring vehicleIssueYear = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_issue_year); | ||
419 | + jstring vehicleType = env->NewStringUTF(vehicle_info.vehicle_recg_res.vehicle_type); | ||
420 | + jstring freightTon = env->NewStringUTF(vehicle_info.vehicle_recg_res.freight_ton); | ||
421 | + vehicleRecgResult = env->NewObject(cls_VehicleRecgResult, mid_VehicleRecgResult, vehicleBrand, vehicleSubbrand, vehicleIssueYear, vehicleType, freightTon, vehicle_info.vehicle_recg_res.name_score); | ||
422 | + } | ||
448 | 423 | ||
449 | - //vehiclePlateDetRecgRes | ||
450 | - jobject vplateResult = NULL; | ||
451 | - jobject vehicle_plate_det_recg_res_syRect_rect = NULL; | ||
452 | - jobjectArray vplateNumArray = NULL; | ||
453 | - if (global_vehicle_plate_det_recg_config == SY_CONFIG_OPEN) | 424 | + //vehiclePlateDetRecgRes |
425 | + jobject vplateResult = NULL; | ||
426 | + jobject vehicle_plate_det_recg_res_syRect_rect = NULL; | ||
427 | + jobjectArray vplateNumArray = NULL; | ||
428 | + if (global_vehicle_plate_det_recg_config == SY_CONFIG_OPEN) | ||
429 | + { | ||
430 | + std::cout << "vehicle_plate_det_recg_res_syRect_rect" << std::endl; | ||
431 | + vehicle_plate_det_recg_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_plate_det_recg_res.rect.left_, vehicle_info.vehicle_plate_det_recg_res.rect.top_, vehicle_info.vehicle_plate_det_recg_res.rect.width_, vehicle_info.vehicle_plate_det_recg_res.rect.height_); | ||
432 | + vplateNumArray = env->NewObjectArray(PLATENUM, cls_VplateNum, NULL); | ||
433 | + for (size_t k = 0; k < PLATENUM; k++) | ||
454 | { | 434 | { |
455 | - vehicle_plate_det_recg_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.vehicle_plate_det_recg_res.rect.left_, vehicle_info.vehicle_plate_det_recg_res.rect.top_, vehicle_info.vehicle_plate_det_recg_res.rect.width_, vehicle_info.vehicle_plate_det_recg_res.rect.height_); | ||
456 | - vplateNumArray = env->NewObjectArray(PLATENUM, cls_VplateNum, NULL); | ||
457 | - for (size_t k = 0; k < PLATENUM; k++) | ||
458 | - { | ||
459 | - jstring character = env->NewStringUTF(vehicle_info.vehicle_plate_det_recg_res.recg[k].character); | ||
460 | - jobject vplateNum = env->NewObject(cls_VplateNum, mid_VplateNum, character, vehicle_info.vehicle_plate_det_recg_res.recg[k].maxprob); | ||
461 | - env->SetObjectArrayElement(vplateNumArray, k, vplateNum); | ||
462 | - } | 435 | + jstring character = env->NewStringUTF(vehicle_info.vehicle_plate_det_recg_res.recg[k].character); |
436 | + jobject vplateNum = env->NewObject(cls_VplateNum, mid_VplateNum, character, vehicle_info.vehicle_plate_det_recg_res.recg[k].maxprob); | ||
437 | + env->SetObjectArrayElement(vplateNumArray, k, vplateNum); | ||
463 | } | 438 | } |
439 | + } | ||
464 | 440 | ||
465 | - vplateResult = env->NewObject(cls_VplateResult, mid_VplateResult, vehicle_plate_det_recg_res_syRect_rect, vehicle_info.vehicle_plate_det_recg_res.detect_score, vplateNumArray, vehicle_info.vehicle_plate_det_recg_res.num_score, vehicle_info.vehicle_plate_det_recg_res.type, vehicle_info.vehicle_plate_det_recg_res.special_type); | 441 | + vplateResult = env->NewObject(cls_VplateResult, mid_VplateResult, vehicle_plate_det_recg_res_syRect_rect, vehicle_info.vehicle_plate_det_recg_res.detect_score, vplateNumArray, vehicle_info.vehicle_plate_det_recg_res.num_score, vehicle_info.vehicle_plate_det_recg_res.type, vehicle_info.vehicle_plate_det_recg_res.special_type); |
466 | 442 | ||
467 | - //vehiclePendantDetRes | ||
468 | - jobject vehiclePendantDetResult = NULL; | ||
469 | - if (global_vehicle_pendant_det_config == SY_CONFIG_OPEN) | ||
470 | - { | ||
471 | - jobjectArray vehiclePendantDetInfoArray = env->NewObjectArray(vehicle_info.vehicle_pendant_det_res.size(), cls_VehiclePendantDetInfo, NULL); | ||
472 | - for (size_t m = 0; m < vehicle_info.vehicle_pendant_det_res.size(); m++) | ||
473 | - { | ||
474 | - auto one_pendant_res = vehicle_info.vehicle_pendant_det_res[m]; | ||
475 | - jobject vehicle_pendant_det_res_vpd_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, one_pendant_res.rect.left_, | ||
476 | - one_pendant_res.rect.top_, one_pendant_res.rect.width_, one_pendant_res.rect.height_); | ||
477 | - | ||
478 | - jobject vehiclePendantDetInfo = env->NewObject(cls_VehiclePendantDetInfo, mid_VehiclePendantDetInfo, vehicle_pendant_det_res_vpd_res_syRect_rect, one_pendant_res.index, one_pendant_res.confidence, one_pendant_res.driver_copilot_info, one_pendant_res.iColor); | ||
479 | - | ||
480 | - env->SetObjectArrayElement(vehiclePendantDetInfoArray, m, vehiclePendantDetInfo); | ||
481 | - } | ||
482 | - vehiclePendantDetResult = env->NewObject(cls_VehiclePendantDetResult, mid_VehiclePendantDetResult, vehiclePendantDetInfoArray, vehicle_info.vehicle_pendant_det_res.size()); | ||
483 | - } | 443 | + std::cout << "vplateResult end" << std::endl; |
484 | 444 | ||
485 | - //vehicleIllegalDetRes | ||
486 | - jobject vehicleIllegalDetResult = NULL; | ||
487 | - if (global_vehicle_illegal_config == SY_CONFIG_OPEN) | 445 | + //vehiclePendantDetRes |
446 | + jobject vehiclePendantDetResult = NULL; | ||
447 | + if (global_vehicle_pendant_det_config == SY_CONFIG_OPEN) | ||
448 | + { | ||
449 | + jobjectArray vehiclePendantDetInfoArray = env->NewObjectArray(vehicle_info.vehicle_pendant_det_res.size(), cls_VehiclePendantDetInfo, NULL); | ||
450 | + for (size_t m = 0; m < vehicle_info.vehicle_pendant_det_res.size(); m++) | ||
488 | { | 451 | { |
489 | - jobject vehicleIllegalDetDetails_driver_belt = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.belt.status, vehicle_info.vehicle_illegal_det_res.driver.belt.confidence); | ||
490 | - jobject vehicleIllegalDetDetails_driver_smoke = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.smoke.status, vehicle_info.vehicle_illegal_det_res.driver.smoke.confidence); | ||
491 | - jobject vehicleIllegalDetDetails_driver_call = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.call.status, vehicle_info.vehicle_illegal_det_res.driver.call.confidence); | ||
492 | - jobject vehicleIllegalDetDetails_driver_phone = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.phone.status, vehicle_info.vehicle_illegal_det_res.driver.phone.confidence); | ||
493 | - jobject vehicleIllegalDetDetails_driver_person = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.person.status, vehicle_info.vehicle_illegal_det_res.driver.person.confidence); | ||
494 | - jobject vehicleIllegalDetDetails_copilot_belt = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.belt.status, vehicle_info.vehicle_illegal_det_res.copilot.belt.confidence); | ||
495 | - jobject vehicleIllegalDetDetails_copilot_smoke = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.smoke.status, vehicle_info.vehicle_illegal_det_res.copilot.smoke.confidence); | ||
496 | - jobject vehicleIllegalDetDetails_copilot_call = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.call.status, vehicle_info.vehicle_illegal_det_res.copilot.call.confidence); | ||
497 | - jobject vehicleIllegalDetDetails_copilot_phone = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.phone.status, vehicle_info.vehicle_illegal_det_res.copilot.phone.confidence); | ||
498 | - jobject vehicleIllegalDetDetails_copilot_person = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.person.status, vehicle_info.vehicle_illegal_det_res.copilot.person.confidence); | ||
499 | - | ||
500 | - jobject vehicleIllegalDetInfo_driver = env->NewObject(cls_VehicleIllegalDetInfo, mid_VehicleIllegalDetInfo, vehicleIllegalDetDetails_driver_belt, vehicleIllegalDetDetails_driver_smoke, vehicleIllegalDetDetails_driver_phone, vehicleIllegalDetDetails_driver_call, vehicleIllegalDetDetails_driver_person); | ||
501 | - jobject vehicleIllegalDetInfo_copilot = env->NewObject(cls_VehicleIllegalDetInfo, mid_VehicleIllegalDetInfo, vehicleIllegalDetDetails_copilot_belt, vehicleIllegalDetDetails_copilot_smoke, vehicleIllegalDetDetails_copilot_phone, vehicleIllegalDetDetails_copilot_call, vehicleIllegalDetDetails_copilot_person); | ||
502 | - vehicleIllegalDetResult = env->NewObject(cls_VehicleIllegalDetResult, mid_VehicleIllegalDetResult, vehicleIllegalDetInfo_driver, vehicleIllegalDetInfo_copilot); | 452 | + auto one_pendant_res = vehicle_info.vehicle_pendant_det_res[m]; |
453 | + jobject vehicle_pendant_det_res_vpd_res_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, one_pendant_res.rect.left_, | ||
454 | + one_pendant_res.rect.top_, one_pendant_res.rect.width_, one_pendant_res.rect.height_); | ||
455 | + | ||
456 | + jobject vehiclePendantDetInfo = env->NewObject(cls_VehiclePendantDetInfo, mid_VehiclePendantDetInfo, vehicle_pendant_det_res_vpd_res_syRect_rect, one_pendant_res.index, one_pendant_res.confidence, one_pendant_res.driver_copilot_info, one_pendant_res.iColor); | ||
457 | + | ||
458 | + env->SetObjectArrayElement(vehiclePendantDetInfoArray, m, vehiclePendantDetInfo); | ||
503 | } | 459 | } |
460 | + vehiclePendantDetResult = env->NewObject(cls_VehiclePendantDetResult, mid_VehiclePendantDetResult, vehiclePendantDetInfoArray, vehicle_info.vehicle_pendant_det_res.size()); | ||
461 | + } | ||
504 | 462 | ||
505 | - //vehicleFeaRes | ||
506 | - jobject vehicleFeaResult = NULL; | ||
507 | - if (global_vehicle_feature_config == SY_CONFIG_OPEN) | ||
508 | - { | ||
509 | - jfloatArray feature = env->NewFloatArray(VA_FEATURESIZE); | ||
510 | - env->SetFloatArrayRegion(feature, 0, VA_FEATURESIZE, vehicle_info.vehicle_fea_res.feature); | ||
511 | - vehicleFeaResult = env->NewObject(cls_VehicleFeaResult, mid_VehicleFeaResult, feature); | ||
512 | - } | 463 | + std::cout << "vehiclePendantDetResult" << std::endl; |
464 | + | ||
465 | + //vehicleIllegalDetRes | ||
466 | + jobject vehicleIllegalDetResult = NULL; | ||
467 | + if (global_vehicle_illegal_config == SY_CONFIG_OPEN) | ||
468 | + { | ||
469 | + jobject vehicleIllegalDetDetails_driver_belt = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.belt.status, vehicle_info.vehicle_illegal_det_res.driver.belt.confidence); | ||
470 | + jobject vehicleIllegalDetDetails_driver_smoke = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.smoke.status, vehicle_info.vehicle_illegal_det_res.driver.smoke.confidence); | ||
471 | + jobject vehicleIllegalDetDetails_driver_call = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.call.status, vehicle_info.vehicle_illegal_det_res.driver.call.confidence); | ||
472 | + jobject vehicleIllegalDetDetails_driver_phone = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.phone.status, vehicle_info.vehicle_illegal_det_res.driver.phone.confidence); | ||
473 | + jobject vehicleIllegalDetDetails_driver_person = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.driver.person.status, vehicle_info.vehicle_illegal_det_res.driver.person.confidence); | ||
474 | + jobject vehicleIllegalDetDetails_copilot_belt = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.belt.status, vehicle_info.vehicle_illegal_det_res.copilot.belt.confidence); | ||
475 | + jobject vehicleIllegalDetDetails_copilot_smoke = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.smoke.status, vehicle_info.vehicle_illegal_det_res.copilot.smoke.confidence); | ||
476 | + jobject vehicleIllegalDetDetails_copilot_call = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.call.status, vehicle_info.vehicle_illegal_det_res.copilot.call.confidence); | ||
477 | + jobject vehicleIllegalDetDetails_copilot_phone = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.phone.status, vehicle_info.vehicle_illegal_det_res.copilot.phone.confidence); | ||
478 | + jobject vehicleIllegalDetDetails_copilot_person = env->NewObject(cls_VehicleIllegalDetDetails, mid_VehicleIllegalDetDetails, vehicle_info.vehicle_illegal_det_res.copilot.person.status, vehicle_info.vehicle_illegal_det_res.copilot.person.confidence); | ||
479 | + | ||
480 | + jobject vehicleIllegalDetInfo_driver = env->NewObject(cls_VehicleIllegalDetInfo, mid_VehicleIllegalDetInfo, vehicleIllegalDetDetails_driver_belt, vehicleIllegalDetDetails_driver_smoke, vehicleIllegalDetDetails_driver_phone, vehicleIllegalDetDetails_driver_call, vehicleIllegalDetDetails_driver_person); | ||
481 | + jobject vehicleIllegalDetInfo_copilot = env->NewObject(cls_VehicleIllegalDetInfo, mid_VehicleIllegalDetInfo, vehicleIllegalDetDetails_copilot_belt, vehicleIllegalDetDetails_copilot_smoke, vehicleIllegalDetDetails_copilot_phone, vehicleIllegalDetDetails_copilot_call, vehicleIllegalDetDetails_copilot_person); | ||
482 | + vehicleIllegalDetResult = env->NewObject(cls_VehicleIllegalDetResult, mid_VehicleIllegalDetResult, vehicleIllegalDetInfo_driver, vehicleIllegalDetInfo_copilot); | ||
483 | + } | ||
484 | + | ||
485 | + //vehicleFeaRes | ||
486 | + jobject vehicleFeaResult = NULL; | ||
487 | + if (global_vehicle_feature_config == SY_CONFIG_OPEN) | ||
488 | + { | ||
489 | + jfloatArray feature = env->NewFloatArray(VA_FEATURESIZE); | ||
490 | + env->SetFloatArrayRegion(feature, 0, VA_FEATURESIZE, vehicle_info.vehicle_fea_res.feature); | ||
491 | + vehicleFeaResult = env->NewObject(cls_VehicleFeaResult, mid_VehicleFeaResult, feature); | ||
492 | + } | ||
513 | 493 | ||
514 | - //MtaResultParam | ||
515 | - jobject mtaResult = NULL; | ||
516 | - if (global_vehicle_motor_tricycle_analysis_config == SY_CONFIG_OPEN) | 494 | + //MtaResultParam |
495 | + jobject mtaResult = NULL; | ||
496 | + if (global_vehicle_motor_tricycle_analysis_config == SY_CONFIG_OPEN) | ||
497 | + { | ||
498 | + jobject mtaDetailsParam_motor_driver_helmeted = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.motor_driver_helmeted.status, vehicle_info.mta_res.motor_driver_helmeted.confidence); | ||
499 | + jobject mtaDetailsParam_motor_manned = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.motor_manned.status, vehicle_info.mta_res.motor_manned.confidence); | ||
500 | + jobject mtaDetailsParam_tricycle_manned = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.tricycle_manned.status, vehicle_info.mta_res.tricycle_manned.confidence); | ||
501 | + jobject mtaDetailsParam_motor_driver_hs_rect = NULL; | ||
502 | + //if (global_vehicle_motor_hs_output_config == SY_CONFIG_OPEN) | ||
517 | { | 503 | { |
518 | - jobject mtaDetailsParam_motor_driver_helmeted = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.motor_driver_helmeted.status, vehicle_info.mta_res.motor_driver_helmeted.confidence); | ||
519 | - jobject mtaDetailsParam_motor_manned = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.motor_manned.status, vehicle_info.mta_res.motor_manned.confidence); | ||
520 | - jobject mtaDetailsParam_tricycle_manned = env->NewObject(cls_MtaDetailsParam, mid_MtaDetailsParam, vehicle_info.mta_res.tricycle_manned.status, vehicle_info.mta_res.tricycle_manned.confidence); | ||
521 | - jobject mtaDetailsParam_motor_driver_hs_rect = NULL; | ||
522 | - //if (global_vehicle_motor_hs_output_config == SY_CONFIG_OPEN) | ||
523 | - { | ||
524 | - jobject mtaDetailsParam_motor_driver_hs_rect_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.mta_res.motor_driver_hs_rect.rect.left_, vehicle_info.mta_res.motor_driver_hs_rect.rect.top_, vehicle_info.mta_res.motor_driver_hs_rect.rect.width_, vehicle_info.mta_res.motor_driver_hs_rect.rect.height_); | ||
525 | - mtaDetailsParam_motor_driver_hs_rect = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, mtaDetailsParam_motor_driver_hs_rect_syRect_rect, vehicle_info.mta_res.motor_driver_hs_rect.score); | ||
526 | - } | ||
527 | - mtaResult = env->NewObject(cls_MtaResult, mid_MtaResult, mtaDetailsParam_motor_driver_helmeted, mtaDetailsParam_motor_manned, mtaDetailsParam_tricycle_manned, mtaDetailsParam_motor_driver_hs_rect); | 504 | + jobject mtaDetailsParam_motor_driver_hs_rect_syRect_rect = env->NewObject(cls_SyRect, mid_SyRect, vehicle_info.mta_res.motor_driver_hs_rect.rect.left_, vehicle_info.mta_res.motor_driver_hs_rect.rect.top_, vehicle_info.mta_res.motor_driver_hs_rect.rect.width_, vehicle_info.mta_res.motor_driver_hs_rect.rect.height_); |
505 | + mtaDetailsParam_motor_driver_hs_rect = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, mtaDetailsParam_motor_driver_hs_rect_syRect_rect, vehicle_info.mta_res.motor_driver_hs_rect.score); | ||
528 | } | 506 | } |
507 | + mtaResult = env->NewObject(cls_MtaResult, mid_MtaResult, mtaDetailsParam_motor_driver_helmeted, mtaDetailsParam_motor_manned, mtaDetailsParam_tricycle_manned, mtaDetailsParam_motor_driver_hs_rect); | ||
508 | + } | ||
529 | 509 | ||
530 | - //LorryMannedResultParam | ||
531 | - jobject MannedResult = NULL; | ||
532 | - if (global_vehicle_manned_config == SY_CONFIG_OPEN) | ||
533 | - { | ||
534 | - int MannedResHsCount = vehicle_info.manned_res.hs_count; | 510 | + //LorryMannedResultParam |
511 | + jobject MannedResult = NULL; | ||
512 | + if (global_vehicle_manned_config == SY_CONFIG_OPEN) | ||
513 | + { | ||
514 | + int MannedResHsCount = vehicle_info.manned_res.hs_count; | ||
535 | 515 | ||
536 | - jobjectArray hsDetectResultArray = env->NewObjectArray(MannedResHsCount, cls_VehicleDetectResult, NULL); | 516 | + jobjectArray hsDetectResultArray = env->NewObjectArray(MannedResHsCount, cls_VehicleDetectResult, NULL); |
537 | for (size_t m = 0; m < MannedResHsCount; m++) | 517 | for (size_t m = 0; m < MannedResHsCount; m++) |
538 | - { | ||
539 | - jobject Manned_hsDetect_syRect = env->NewObject(cls_SyRect, mid_SyRect, | ||
540 | - vehicle_info.manned_res.hs_rect[m].rect.left_, | ||
541 | - vehicle_info.manned_res.hs_rect[m].rect.top_, | ||
542 | - vehicle_info.manned_res.hs_rect[m].rect.width_, | ||
543 | - vehicle_info.manned_res.hs_rect[m].rect.height_); | ||
544 | - | ||
545 | - jobject Manned_hsDetect = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, Manned_hsDetect_syRect, vehicle_info.manned_res.hs_rect[m].score); | 518 | + { |
519 | + jobject Manned_hsDetect_syRect = env->NewObject(cls_SyRect, mid_SyRect, | ||
520 | + vehicle_info.manned_res.hs_rect[m].rect.left_, | ||
521 | + vehicle_info.manned_res.hs_rect[m].rect.top_, | ||
522 | + vehicle_info.manned_res.hs_rect[m].rect.width_, | ||
523 | + vehicle_info.manned_res.hs_rect[m].rect.height_); | ||
546 | 524 | ||
547 | - env->SetObjectArrayElement(hsDetectResultArray, m, Manned_hsDetect); | ||
548 | - } | 525 | + jobject Manned_hsDetect = env->NewObject(cls_VehicleDetectResult, mid_VehicleDetectResult, Manned_hsDetect_syRect, vehicle_info.manned_res.hs_rect[m].score); |
549 | 526 | ||
550 | - MannedResult = env->NewObject(cls_MannedResultParam, mid_MannedResult, | ||
551 | - hsDetectResultArray, | ||
552 | - MannedResHsCount); | 527 | + env->SetObjectArrayElement(hsDetectResultArray, m, Manned_hsDetect); |
553 | } | 528 | } |
554 | 529 | ||
555 | - jint type = vehicle_info.type; | ||
556 | - jint vpt_type = vehicle_info.vpt_type; | ||
557 | - jint rainshed = vehicle_info.rainshed; //是否安装雨棚, 0 有雨棚 1 无雨棚 | ||
558 | - jfloat rainshed_prob = vehicle_info.rainshed_prob; | ||
559 | - jint truck_manned = vehicle_info.truck_manned; | ||
560 | - jint motor_manned = vehicle_info.motor_manned; | ||
561 | - jint human_upper_color = vehicle_info.human_upper_color; | ||
562 | - jint human_lower_color = vehicle_info.human_lower_color; | ||
563 | - jint reverse_driving = vehicle_info.reverse_driving; // 0 正常行驶 1 逆行 -1 未知 | ||
564 | - jint phoning = vehicle_info.phoning; // 骑车打电话 | ||
565 | - jfloat phoning_prob = vehicle_info.phoning_prob; | ||
566 | - jint cross_line = vehicle_info.cross_line; // 压实线, 1 黄实线 2 白实线 -1 其他 | ||
567 | - jint cross_diversion_line = vehicle_info.cross_diversion_line; // 压导流线 1 压了 -1 未压 | ||
568 | - | ||
569 | - jobject vehicleInfo = env->NewObject(cls_VehicleInfo, mid_VehicleInfo, vehicleDetectResult, vehicleWinDetectResult, vehicleBodyDetectResult, vehicleColorResult, vehicleRecgResult, vplateResult, vehiclePendantDetResult, vehicleIllegalDetResult, vehicleFeaResult,mtaResult, MannedResult, type, vpt_type, rainshed, rainshed_prob, truck_manned, motor_manned, human_upper_color, reverse_driving, phoning, phoning_prob, cross_line, cross_diversion_line); | ||
570 | - | ||
571 | - env->SetObjectArrayElement(vehicleInfoArray, j, vehicleInfo); | 530 | + MannedResult = env->NewObject(cls_MannedResultParam, mid_MannedResult, |
531 | + hsDetectResultArray, | ||
532 | + MannedResHsCount); | ||
572 | } | 533 | } |
573 | 534 | ||
574 | - std::cout << "line info " << std::endl; | 535 | + std::cout << "type" << std::endl; |
536 | + jint type = vehicle_info.type; | ||
537 | + jint vpt_type = vehicle_info.vpt_type; | ||
538 | + jint rainshed = vehicle_info.rainshed; //是否安装雨棚, 0 有雨棚 1 无雨棚 | ||
539 | + jfloat rainshed_prob = vehicle_info.rainshed_prob; | ||
540 | + jint truck_manned = vehicle_info.truck_manned; | ||
541 | + jint motor_manned = vehicle_info.motor_manned; | ||
542 | + jint human_upper_color = vehicle_info.human_upper_color; | ||
543 | + jint human_lower_color = vehicle_info.human_lower_color; | ||
544 | + jint reverse_driving = vehicle_info.reverse_driving; // 0 正常行驶 1 逆行 -1 未知 | ||
545 | + jint phoning = vehicle_info.phoning; // 骑车打电话 | ||
546 | + jfloat phoning_prob = vehicle_info.phoning_prob; | ||
547 | + jint cross_line = vehicle_info.cross_line; // 压实线, 1 黄实线 2 白实线 -1 其他 | ||
548 | + jint cross_diversion_line = vehicle_info.cross_diversion_line; // 压导流线 1 压了 -1 未压 | ||
575 | 549 | ||
576 | - // 道路标志线 | ||
577 | - jobjectArray LineInfoArray = env->NewObjectArray(vec_result[i].vec_line.size(), cls_LineInfo, NULL); | ||
578 | - for (int j = 0; j < vec_result[i].vec_line.size(); j++) | ||
579 | - { | ||
580 | - auto line_info = vec_result[i].vec_line[j]; | ||
581 | - jobjectArray ptArray = env->NewObjectArray(line_info.vec_pt.size(), cls_LineInfo, NULL); | ||
582 | - for (int k = 0; k < line_info.vec_pt.size(); k++) | ||
583 | - { | ||
584 | - auto pt = line_info.vec_pt[k]; | ||
585 | - jobject line_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x, pt.y); | ||
586 | - env->SetObjectArrayElement(ptArray, k, line_info_point); | ||
587 | - } | 550 | + jobject vehicleInfo = env->NewObject(cls_VehicleInfo, mid_VehicleInfo, vehicleDetectResult, vehicleWinDetectResult, vehicleBodyDetectResult, vehicleColorResult, vehicleRecgResult, vplateResult, vehiclePendantDetResult, vehicleIllegalDetResult, vehicleFeaResult,mtaResult, MannedResult, type, vpt_type, rainshed, rainshed_prob, truck_manned, motor_manned, human_upper_color, human_lower_color, reverse_driving, phoning, phoning_prob, cross_line, cross_diversion_line); |
588 | 551 | ||
589 | - jobject one_line_info = env->NewObject(cls_LineInfo, mid_LineInfo, ptArray, line_info.line_type); | 552 | + std::cout << "vehicleInfo end" << std::endl; |
590 | 553 | ||
591 | - env->SetObjectArrayElement(LineInfoArray, j, one_line_info); | ||
592 | - } | 554 | + env->SetObjectArrayElement(vehicleInfoArray, j, vehicleInfo); |
555 | + | ||
556 | + std::cout << "SetObjectArrayElement" << std::endl; | ||
557 | + } | ||
593 | 558 | ||
594 | - std::cout << "road info " << std::endl; | 559 | + std::cout << "line info " << std::endl; |
595 | 560 | ||
596 | - // 道路 | ||
597 | - jobjectArray RoadInfoArray = env->NewObjectArray(vec_result[i].vec_road.size(), cls_SegInfo, NULL); | ||
598 | - for (int j = 0; j < vec_result[i].vec_road.size(); j++) | 561 | + // 道路标志线 |
562 | + jobjectArray LineInfoArray = env->NewObjectArray(vec_result[i].vec_line.size(), cls_LineInfo, NULL); | ||
563 | + for (int j = 0; j < vec_result[i].vec_line.size(); j++) | ||
564 | + { | ||
565 | + auto line_info = vec_result[i].vec_line[j]; | ||
566 | + jobjectArray ptArray = env->NewObjectArray(line_info.vec_pt.size(), cls_SyPoint, NULL); | ||
567 | + for (int k = 0; k < line_info.vec_pt.size(); k++) | ||
599 | { | 568 | { |
600 | - auto road_info = vec_result[i].vec_road[j]; | ||
601 | - jobjectArray ptArray = env->NewObjectArray(road_info.vec_pt.size(), cls_SyPoint, NULL); | ||
602 | - for (int k = 0; k < road_info.vec_pt.size(); k++) | ||
603 | - { | ||
604 | - auto pt = road_info.vec_pt[k]; | ||
605 | - jobject road_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x, pt.y); | ||
606 | - env->SetObjectArrayElement(ptArray, k, road_info_point); | ||
607 | - } | 569 | + auto pt = line_info.vec_pt[k]; |
570 | + jobject line_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x, pt.y); | ||
571 | + env->SetObjectArrayElement(ptArray, k, line_info_point); | ||
572 | + } | ||
608 | 573 | ||
609 | - jobject one_road_info = env->NewObject(cls_SegInfo, mid_SegInfo, ptArray, road_info.seg_type); | 574 | + jobject one_line_info = env->NewObject(cls_LineInfo, mid_LineInfo, ptArray, line_info.line_type); |
610 | 575 | ||
611 | - env->SetObjectArrayElement(RoadInfoArray, j, one_road_info); | 576 | + env->SetObjectArrayElement(LineInfoArray, j, one_line_info); |
577 | + } | ||
578 | + | ||
579 | + std::cout << "road info " << std::endl; | ||
580 | + | ||
581 | + // 道路 | ||
582 | + jobjectArray RoadInfoArray = env->NewObjectArray(vec_result[i].vec_road.size(), cls_SegInfo, NULL); | ||
583 | + for (int j = 0; j < vec_result[i].vec_road.size(); j++) | ||
584 | + { | ||
585 | + auto road_info = vec_result[i].vec_road[j]; | ||
586 | + jobjectArray ptArray = env->NewObjectArray(road_info.vec_pt.size(), cls_SyPoint, NULL); | ||
587 | + for (int k = 0; k < road_info.vec_pt.size(); k++) | ||
588 | + { | ||
589 | + auto pt = road_info.vec_pt[k]; | ||
590 | + jobject road_info_point = env->NewObject(cls_SyPoint, mid_SyPoint, pt.x, pt.y); | ||
591 | + env->SetObjectArrayElement(ptArray, k, road_info_point); | ||
612 | } | 592 | } |
613 | 593 | ||
614 | - jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, LineInfoArray, RoadInfoArray, vec_result[i].info.size()); | ||
615 | - env->SetObjectArrayElement(vehicleAnalysisResultParams, i, vehicleAnalysisResult); | 594 | + jobject one_road_info = env->NewObject(cls_SegInfo, mid_SegInfo, ptArray, road_info.seg_type); |
595 | + | ||
596 | + env->SetObjectArrayElement(RoadInfoArray, j, one_road_info); | ||
616 | } | 597 | } |
617 | - | 598 | + |
599 | + std::cout << "add new " << std::endl; | ||
600 | + | ||
601 | + jobject vehicleAnalysisResult = env->NewObject(cls_vehicleAnalysisResult, mid_vehicleAnalysisResult, vehicleInfoArray, LineInfoArray, RoadInfoArray, vec_result[i].info.size()); | ||
602 | + env->SetObjectArrayElement(vehicleAnalysisResultParams, i, vehicleAnalysisResult); | ||
618 | } | 603 | } |
619 | 604 | ||
620 | ACL_CALL(aclrtSetCurrentContext(ctx), ACL_ERROR_NONE, FAILED); | 605 | ACL_CALL(aclrtSetCurrentContext(ctx), ACL_ERROR_NONE, FAILED); |
@@ -623,7 +608,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | @@ -623,7 +608,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI | ||
623 | (void) aclrtDestroyStream(stream); | 608 | (void) aclrtDestroyStream(stream); |
624 | aclrtDestroyContext(ctx); | 609 | aclrtDestroyContext(ctx); |
625 | 610 | ||
626 | - return ret; | 611 | + return SUCCESS; |
627 | } | 612 | } |
628 | 613 | ||
629 | /* | 614 | /* |
@@ -682,31 +667,4 @@ sy_format getImgByteType(int type) | @@ -682,31 +667,4 @@ sy_format getImgByteType(int type) | ||
682 | break; | 667 | break; |
683 | } | 668 | } |
684 | return syFormat; | 669 | return syFormat; |
685 | -} | ||
686 | - | ||
687 | -// //curl writefunction to be passed as a parameter | ||
688 | -// // we can't ever expect to get the whole image in one piece, | ||
689 | -// // every router / hub is entitled to fragment it into parts | ||
690 | -// // (like 1-8k at a time), | ||
691 | -// // so insert the part at the end of our stream. | ||
692 | -// size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata) | ||
693 | -// { | ||
694 | -// vector<uchar> *stream = (vector<uchar>*)userdata; | ||
695 | -// size_t count = size * nmemb; | ||
696 | -// stream->insert(stream->end(), ptr, ptr + count); | ||
697 | -// return count; | ||
698 | -// } | ||
699 | - | ||
700 | -// //function to retrieve the image as cv::Mat data type | ||
701 | -// cv::Mat curlImg(const char *img_url, int timeout = 10) | ||
702 | -// { | ||
703 | -// vector<uchar> stream; | ||
704 | -// CURL *curl = curl_easy_init(); | ||
705 | -// curl_easy_setopt(curl, CURLOPT_URL, img_url); //the img url | ||
706 | -// curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // pass the writefunction | ||
707 | -// curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream); // pass the stream ptr to the writefunction | ||
708 | -// curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); // timeout if curl_easy hangs, | ||
709 | -// CURLcode res = curl_easy_perform(curl); // start curl | ||
710 | -// curl_easy_cleanup(curl); // cleanup | ||
711 | -// return cv::imdecode(stream, -1); // 'keep-as-is' | ||
712 | -// } | 670 | +} |
713 | \ No newline at end of file | 671 | \ No newline at end of file |