Commit e63aa283539301812c38acea4c8c75efc3be200b

Authored by Hu Chunming
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