Commit e63aa283539301812c38acea4c8c75efc3be200b
1 parent
ba6761f1
修复jni值传递错误问题
Showing
1 changed file
with
254 additions
and
296 deletions
jni/VehicleNativeInterface.cpp
... | ... | @@ -14,8 +14,6 @@ |
14 | 14 | #include <opencv2/opencv.hpp> |
15 | 15 | #include "base64.h" |
16 | 16 | |
17 | -// #include "curl/curl.h" | |
18 | - | |
19 | 17 | //dvpp���� |
20 | 18 | #include "dvpp_process.h" |
21 | 19 | #include "utils.h" |
... | ... | @@ -90,9 +88,7 @@ using namespace std; |
90 | 88 | * �������� |
91 | 89 | * */ |
92 | 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 | 307 | std::cout << "village_pic_analysis " << std::endl; |
312 | 308 | |
313 | 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 | 312 | printf("jni info:village_pic_analysis failed."); |
317 | 313 | return -1; |
... | ... | @@ -319,302 +315,291 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI |
319 | 315 | cout << "result size:" << vec_result.size() << endl; |
320 | 316 | |
321 | 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 | 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 | 605 | ACL_CALL(aclrtSetCurrentContext(ctx), ACL_ERROR_NONE, FAILED); |
... | ... | @@ -623,7 +608,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI |
623 | 608 | (void) aclrtDestroyStream(stream); |
624 | 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 | 667 | break; |
683 | 668 | } |
684 | 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 | 671 | \ No newline at end of file | ... | ... |