Commit 5a4c4dc0574b3f73c620ca789cb2d3082c001dc7
1 parent
404df7cd
va库代码移到本项目中
Showing
6 changed files
with
220 additions
and
269 deletions
src/PicAnalysis.cpp
@@ -38,10 +38,6 @@ int PicAnalysis::init(VillageParam param) { | @@ -38,10 +38,6 @@ int PicAnalysis::init(VillageParam param) { | ||
38 | vehicle_analysis_param.devId = dev_id; | 38 | vehicle_analysis_param.devId = dev_id; |
39 | vehicle_analysis_param.sdk_root = param.sdk_path; | 39 | vehicle_analysis_param.sdk_root = param.sdk_path; |
40 | vehicle_analysis_param.max_batch_size = 16; | 40 | vehicle_analysis_param.max_batch_size = 16; |
41 | - vehicle_analysis_param.log_level = param.log_level; | ||
42 | - vehicle_analysis_param.log_path = param.log_path; | ||
43 | - vehicle_analysis_param.log_days = param.log_days; | ||
44 | - vehicle_analysis_param.log_mem = param.log_mem; | ||
45 | ret = m_vehicle_analysis.init(vehicle_analysis_param); | 41 | ret = m_vehicle_analysis.init(vehicle_analysis_param); |
46 | if(0 != ret){ | 42 | if(0 != ret){ |
47 | return -1; | 43 | return -1; |
src/ai_engine_module/VehicleAnalysis.cpp
1 | #include "VehicleAnalysis.h" | 1 | #include "VehicleAnalysis.h" |
2 | 2 | ||
3 | +#include "VehicleAnalysisDevice.h" | ||
4 | + | ||
3 | 5 | ||
4 | VehicleAnalysis::VehicleAnalysis() { | 6 | VehicleAnalysis::VehicleAnalysis() { |
5 | cout << va_get_version() << endl; | 7 | cout << va_get_version() << endl; |
@@ -59,11 +61,6 @@ int VehicleAnalysis::init(VehicleAnalysisParam tParam) { | @@ -59,11 +61,6 @@ int VehicleAnalysis::init(VehicleAnalysisParam tParam) { | ||
59 | param.dbPath= (char*)dbPath.data(); | 61 | param.dbPath= (char*)dbPath.data(); |
60 | param.models_Path= (char*)models_path.data(); //所有模型的地址 | 62 | param.models_Path= (char*)models_path.data(); //所有模型的地址 |
61 | 63 | ||
62 | - param.log_level = tParam.log_level; | ||
63 | - param.log_path = tParam.log_path; | ||
64 | - param.log_days = tParam.log_days; | ||
65 | - param.log_mem = tParam.log_mem; | ||
66 | - | ||
67 | LOG_INFO("va_init start"); | 64 | LOG_INFO("va_init start"); |
68 | // 内部有 ctx | 65 | // 内部有 ctx |
69 | int ret = va_init(&m_handle, param); | 66 | int ret = va_init(&m_handle, param); |
src/ai_engine_module/VehicleAnalysis.h
@@ -15,10 +15,6 @@ struct VehicleAnalysisParam { | @@ -15,10 +15,6 @@ struct VehicleAnalysisParam { | ||
15 | int devId; | 15 | int devId; |
16 | std::string sdk_root; | 16 | std::string sdk_root; |
17 | int max_batch_size; | 17 | int max_batch_size; |
18 | - int log_level{2}; | ||
19 | - int log_days{30}; //日志保存周期 | ||
20 | - std::string log_path{"logs"}; //日志文件路径 | ||
21 | - unsigned long log_mem{64 * 1024 * 1024}; //每个日志最大大小 | ||
22 | }; | 18 | }; |
23 | 19 | ||
24 | struct VehicleAnalysisResult{ | 20 | struct VehicleAnalysisResult{ |
src/ai_engine_module/VehicleAnalysisDevice.cpp
@@ -27,7 +27,7 @@ | @@ -27,7 +27,7 @@ | ||
27 | #include "head_shoulder_det.h"//ͷ�磨����������ˣ� | 27 | #include "head_shoulder_det.h"//ͷ�磨����������ˣ� |
28 | 28 | ||
29 | 29 | ||
30 | -// #include "VehicleAnalysisDevice.h" | 30 | +#include "VehicleAnalysisDevice.h" |
31 | 31 | ||
32 | #include "include.h" | 32 | #include "include.h" |
33 | 33 | ||
@@ -41,7 +41,6 @@ | @@ -41,7 +41,6 @@ | ||
41 | #define FEATURESIZE 256 //�������� | 41 | #define FEATURESIZE 256 //�������� |
42 | 42 | ||
43 | 43 | ||
44 | - | ||
45 | #define VR_HEAD_THRE 0.7 //��ͷ����ʶ����ֵ | 44 | #define VR_HEAD_THRE 0.7 //��ͷ����ʶ����ֵ |
46 | #define VR_REAR_THRE 0.8 //��β����ʶ����ֵ | 45 | #define VR_REAR_THRE 0.8 //��β����ʶ����ֵ |
47 | #define VR_CLS_THRE 0.25 //������������ֵ | 46 | #define VR_CLS_THRE 0.25 //������������ֵ |
@@ -49,8 +48,6 @@ | @@ -49,8 +48,6 @@ | ||
49 | #define VR_LOGO_THRE 0.9 //��logo����ֵ | 48 | #define VR_LOGO_THRE 0.9 //��logo����ֵ |
50 | #define VR_15CLS_THRE 0.8 //����15�������ֵ | 49 | #define VR_15CLS_THRE 0.8 //����15�������ֵ |
51 | 50 | ||
52 | -#define IF_DEBUG_INFO 0 //�Ƿ��ӡdebug��Ϣ | ||
53 | - | ||
54 | #define VERSION_WUXI 0 //�л����а汾�������汾�������汾��ֻ��topn���������������Ͳ���ʶ�𣬵�Ҫ���ӳ���15������������ȱʧ�ij����͡� | 51 | #define VERSION_WUXI 0 //�л����а汾�������汾�������汾��ֻ��topn���������������Ͳ���ʶ�𣬵�Ҫ���ӳ���15������������ȱʧ�ij����͡� |
55 | #define VR_WUXI_LOGO 1 //�����汾���Ƿ�����logo������ | 52 | #define VR_WUXI_LOGO 1 //�����汾���Ƿ�����logo������ |
56 | #define VPT_TOPN 10 //�˳���ȡtopn���з��� | 53 | #define VPT_TOPN 10 //�˳���ȡtopn���з��� |
@@ -60,8 +57,6 @@ | @@ -60,8 +57,6 @@ | ||
60 | using namespace std; | 57 | using namespace std; |
61 | 58 | ||
62 | 59 | ||
63 | -//static int va_acl_flag=0; | ||
64 | - | ||
65 | typedef struct va_handle | 60 | typedef struct va_handle |
66 | { | 61 | { |
67 | void* vpt_handle; | 62 | void* vpt_handle; |
@@ -121,33 +116,14 @@ const char * va_get_version() | @@ -121,33 +116,14 @@ const char * va_get_version() | ||
121 | return "sy_va_version:1.2.0.20231129.atlas310p.arm.withOfflineAuthorization"; | 116 | return "sy_va_version:1.2.0.20231129.atlas310p.arm.withOfflineAuthorization"; |
122 | } | 117 | } |
123 | 118 | ||
124 | - | ||
125 | -int va_acl_init() | ||
126 | -{ | ||
127 | - if(IF_DEBUG_INFO) { | ||
128 | - LOG_INFO("start aclInit "); | ||
129 | - } | ||
130 | - ACL_CALL(aclInit(nullptr), ACL_ERROR_NONE, SY_FAILED); | ||
131 | - if(IF_DEBUG_INFO){ | ||
132 | - LOG_DEBUG("end aclInit "); | ||
133 | - } | ||
134 | - | ||
135 | - return SUCCESS; | ||
136 | -} | ||
137 | - | ||
138 | int va_init(void ** handle, va_param param) | 119 | int va_init(void ** handle, va_param param) |
139 | { | 120 | { |
140 | - string log_path = param.log_path + "/va.log"; | ||
141 | - | ||
142 | - set_default_logger(LogLevel(param.log_level), "PicAnalysis", log_path.c_str(), param.log_mem, param.log_days); | ||
143 | - | ||
144 | va_handle *tools=new va_handle(); | 121 | va_handle *tools=new va_handle(); |
145 | *handle=(void *)tools; | 122 | *handle=(void *)tools; |
146 | 123 | ||
147 | int ret = SUCCESS; | 124 | int ret = SUCCESS; |
148 | tools->param = param; | 125 | tools->param = param; |
149 | 126 | ||
150 | - | ||
151 | string str1=tools->param.models_Path; | 127 | string str1=tools->param.models_Path; |
152 | 128 | ||
153 | 129 | ||
@@ -654,41 +630,12 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -654,41 +630,12 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
654 | result[b].count=0; | 630 | result[b].count=0; |
655 | for(int c=0;c<VD_MAXDETECTCOUNT;c++) | 631 | for(int c=0;c<VD_MAXDETECTCOUNT;c++) |
656 | { | 632 | { |
657 | - | ||
658 | - //1.vd | ||
659 | - result[b].info[c].vehicle_body_detect_res.rect = rect_init; | ||
660 | - result[b].info[c].vehicle_body_detect_res.score = 0; | ||
661 | - | ||
662 | - result[b].info[c].vehicle_detect_res.rect = rect_init; | ||
663 | - result[b].info[c].vehicle_detect_res.score = 0; | ||
664 | - | ||
665 | - result[b].info[c].vehicle_win_detect_res.rect = rect_init; | ||
666 | - result[b].info[c].vehicle_win_detect_res.score = 0; | ||
667 | - | ||
668 | - //3.vc����ɫ | ||
669 | - result[b].info[c].vehicle_color_res.index = -1; | ||
670 | - result[b].info[c].vehicle_color_res.score = 0; | ||
671 | - //result[b].info[c].vehicle_fea_res.feature[FEATURESIZE + 8] = 0;//20201201wh�������ij���ɫ��Ϣ | ||
672 | - | ||
673 | //4.vr���� | 633 | //4.vr���� |
674 | memset(result[b].info[c].vehicle_recg_res.vehicle_brand, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_brand)); | 634 | memset(result[b].info[c].vehicle_recg_res.vehicle_brand, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_brand)); |
675 | memset(result[b].info[c].vehicle_recg_res.vehicle_subbrand, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_subbrand)); | 635 | memset(result[b].info[c].vehicle_recg_res.vehicle_subbrand, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_subbrand)); |
676 | memset(result[b].info[c].vehicle_recg_res.vehicle_issue_year, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_issue_year)); | 636 | memset(result[b].info[c].vehicle_recg_res.vehicle_issue_year, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_issue_year)); |
677 | memset(result[b].info[c].vehicle_recg_res.vehicle_type, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_type)); | 637 | memset(result[b].info[c].vehicle_recg_res.vehicle_type, '\0', sizeof(result[b].info[c].vehicle_recg_res.vehicle_type)); |
678 | memset(result[b].info[c].vehicle_recg_res.freight_ton, '\0', sizeof(result[b].info[c].vehicle_recg_res.freight_ton)); | 638 | memset(result[b].info[c].vehicle_recg_res.freight_ton, '\0', sizeof(result[b].info[c].vehicle_recg_res.freight_ton)); |
679 | - result[b].info[c].vehicle_recg_res.name_score = 0; | ||
680 | - result[b].info[c].vehicle_recg_res.index = -1; | ||
681 | - //result[b].info[c].vehicle_fea_res.feature[FEATURESIZE +9] = 0;//20201201wh��������vr��Ϣ | ||
682 | - //result[b].info[c].vehicle_fea_res.feature[FEATURESIZE +10] = 0;//20201201wh��������vr��Ϣ | ||
683 | - | ||
684 | - | ||
685 | - //5.���Ƽ��ʶ�� | ||
686 | - result[b].info[c].vehicle_plate_det_recg_res.special_type = 0;//������������20200225 | ||
687 | - result[b].info[c].vehicle_plate_det_recg_res.type = -1; | ||
688 | - result[b].info[c].vehicle_plate_det_recg_res.num_score = 0; | ||
689 | - result[b].info[c].vehicle_plate_det_recg_res.detect_score = 0; | ||
690 | - | ||
691 | - result[b].info[c].vehicle_plate_det_recg_res.rect = rect_init; | ||
692 | 639 | ||
693 | for(int p=0;p<PLATENUM;p++) | 640 | for(int p=0;p<PLATENUM;p++) |
694 | { | 641 | { |
@@ -700,69 +647,13 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -700,69 +647,13 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
700 | { | 647 | { |
701 | result[b].info[c].vehicle_fea_res.feature[FEATURESIZE*2+p] = 0; | 648 | result[b].info[c].vehicle_fea_res.feature[FEATURESIZE*2+p] = 0; |
702 | } | 649 | } |
703 | - | ||
704 | - //6.������ | ||
705 | - result[b].info[c].vehicle_pendant_det_res.count=0; | ||
706 | - for(int p=0; p<VPD_MAXNUM; p++) | ||
707 | - { | ||
708 | - //result[b].info[c].vehicle_pendant_det_res.vpd_res[p].rect = vpd_result_[win_idx].vpd_res[p].rect; | ||
709 | - result[b].info[c].vehicle_pendant_det_res.vpd_res[p].rect = rect_init; | ||
710 | - result[b].info[c].vehicle_pendant_det_res.vpd_res[p].confidence = 0; | ||
711 | - result[b].info[c].vehicle_pendant_det_res.vpd_res[p].index = -1; | ||
712 | - result[b].info[c].vehicle_pendant_det_res.vpd_res[p].driver_copilot_info = 0; //wh20210618����������������֮�� | ||
713 | - //memset(result[b].info[c].vehicle_pendant_det_res.vpd_res[p].feature,0,sizeof(float)*VPD_FACE_FEATURESIZE);//wh20210618������������������ | ||
714 | - } | ||
715 | - //result[b].info[c].vehicle_fea_res.feature[FEATURESIZE +11] = 0;//20201201wh��������vpd��Ϣ | ||
716 | - | ||
717 | - //7.vid���� | ||
718 | - result[b].info[c].vehicle_illegal_det_res.driver.person.status = UNCERTAINTY; | ||
719 | - result[b].info[c].vehicle_illegal_det_res.driver.person.confidence = 0; | ||
720 | - result[b].info[c].vehicle_illegal_det_res.driver.belt.status = UNCERTAINTY; | ||
721 | - result[b].info[c].vehicle_illegal_det_res.driver.belt.confidence = 0; | ||
722 | - result[b].info[c].vehicle_illegal_det_res.driver.smoke.status = UNCERTAINTY; | ||
723 | - result[b].info[c].vehicle_illegal_det_res.driver.smoke.confidence = 0; | ||
724 | - result[b].info[c].vehicle_illegal_det_res.driver.phone.status = UNCERTAINTY; | ||
725 | - result[b].info[c].vehicle_illegal_det_res.driver.phone.confidence = 0; | ||
726 | - result[b].info[c].vehicle_illegal_det_res.driver.call.status = UNCERTAINTY; | ||
727 | - result[b].info[c].vehicle_illegal_det_res.driver.call.confidence = 0; | ||
728 | - | ||
729 | - result[b].info[c].vehicle_illegal_det_res.copilot.person.status = UNCERTAINTY; | ||
730 | - result[b].info[c].vehicle_illegal_det_res.copilot.person.confidence = 0; | ||
731 | - result[b].info[c].vehicle_illegal_det_res.copilot.belt.status = UNCERTAINTY; | ||
732 | - result[b].info[c].vehicle_illegal_det_res.copilot.belt.confidence = 0; | ||
733 | - result[b].info[c].vehicle_illegal_det_res.copilot.smoke.status = UNCERTAINTY; | ||
734 | - result[b].info[c].vehicle_illegal_det_res.copilot.smoke.confidence = 0; | ||
735 | - result[b].info[c].vehicle_illegal_det_res.copilot.phone.status = UNCERTAINTY; | ||
736 | - result[b].info[c].vehicle_illegal_det_res.copilot.phone.confidence = 0; | ||
737 | - result[b].info[c].vehicle_illegal_det_res.copilot.call.status = UNCERTAINTY; | ||
738 | - result[b].info[c].vehicle_illegal_det_res.copilot.call.confidence = 0; | ||
739 | 650 | ||
740 | //8.vf������ | 651 | //8.vf������ |
741 | memset(result[b].info[c].vehicle_fea_res.feature,0,sizeof(float)*VA_FEATURESIZE); | 652 | memset(result[b].info[c].vehicle_fea_res.feature,0,sizeof(float)*VA_FEATURESIZE); |
742 | 653 | ||
743 | - //mat | ||
744 | - result[b].info[c].mta_res.motor_driver_helmeted.status=-1; | ||
745 | - result[b].info[c].mta_res.motor_driver_helmeted.confidence=0; | ||
746 | - result[b].info[c].mta_res.motor_manned.status=-1; | ||
747 | - result[b].info[c].mta_res.motor_manned.confidence=0; | ||
748 | - result[b].info[c].mta_res.tricycle_manned.status=-1; | ||
749 | - result[b].info[c].mta_res.tricycle_manned.confidence=0; | ||
750 | - | ||
751 | - result[b].info[c].mta_res.motor_driver_hs_rect.rect = rect_init; | ||
752 | - result[b].info[c].mta_res.motor_driver_hs_rect.score=0; | ||
753 | - | ||
754 | - //���˷���manned_analysis | ||
755 | - //result[b].info[c].manned_res.status = 0; | ||
756 | - //result[b].info[c].manned_res.confidence = 0; | ||
757 | - result[b].info[c].manned_res.hs_count = 0; | ||
758 | - memset(result[b].info[c].manned_res.hs_rect,0,sizeof(vd_result)*10); | ||
759 | - | ||
760 | } | 654 | } |
761 | }//end result��ֵ | 655 | }//end result��ֵ |
762 | - | ||
763 | - | ||
764 | - | ||
765 | - | 656 | + |
766 | 657 | ||
767 | //��ͷ��β�����ı�ǩ | 658 | //��ͷ��β�����ı�ǩ |
768 | int car_body_num=0;//body������� | 659 | int car_body_num=0;//body������� |
@@ -1093,8 +984,6 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1093,8 +984,6 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1093 | 984 | ||
1094 | body_idx++; | 985 | body_idx++; |
1095 | } | 986 | } |
1096 | - | ||
1097 | - | ||
1098 | } | 987 | } |
1099 | } | 988 | } |
1100 | 989 | ||
@@ -1377,28 +1266,11 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1377,28 +1266,11 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1377 | 1266 | ||
1378 | if (vp_result[head_idx].count==0 || max_index == -1 )//û������ | 1267 | if (vp_result[head_idx].count==0 || max_index == -1 )//û������ |
1379 | { | 1268 | { |
1380 | - info_c.vehicle_plate_det_recg_res.special_type = 0;//���������20200225//���泵�ơ����ٳ��ơ���ʱ���ơ�0-common,1-low_speed_license_plate,2-temporary_license_plate. | ||
1381 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.score = 0; | ||
1382 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.type = -1; | ||
1383 | - | ||
1384 | - info_c.vehicle_plate_det_recg_res.type = 0; | ||
1385 | - info_c.vehicle_plate_det_recg_res.num_score = 0; | ||
1386 | - info_c.vehicle_plate_det_recg_res.detect_score = 0; | ||
1387 | - | ||
1388 | - info_c.vehicle_plate_det_recg_res.rect.left_ = 0; | ||
1389 | - info_c.vehicle_plate_det_recg_res.rect.top_ = 0; | ||
1390 | - info_c.vehicle_plate_det_recg_res.rect.width_ = 0; | ||
1391 | - info_c.vehicle_plate_det_recg_res.rect.height_ = 0; | ||
1392 | - | ||
1393 | for(int p=0;p<PLATENUM;p++) | 1269 | for(int p=0;p<PLATENUM;p++) |
1394 | { | 1270 | { |
1395 | - info_c.vehicle_plate_det_recg_res.recg[p].index = 0; | ||
1396 | - info_c.vehicle_plate_det_recg_res.recg[p].maxprob = 0; | ||
1397 | - //info_c.vehicle_plate_det_recg_res.recg[p].character = NULL; | ||
1398 | memset(info_c.vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(info_c.vehicle_plate_det_recg_res.recg[p].character)); | 1271 | memset(info_c.vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(info_c.vehicle_plate_det_recg_res.recg[p].character)); |
1399 | } | 1272 | } |
1400 | - | ||
1401 | - //20201201wh���������ӳ������� | 1273 | + |
1402 | for(int p=0;p<PLATENUM;p++) | 1274 | for(int p=0;p<PLATENUM;p++) |
1403 | { | 1275 | { |
1404 | info_c.vehicle_fea_res.feature[FEATURESIZE*2+p] = 0; | 1276 | info_c.vehicle_fea_res.feature[FEATURESIZE*2+p] = 0; |
@@ -1412,18 +1284,13 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1412,18 +1284,13 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1412 | info_c.vehicle_plate_det_recg_res.type = vp_result[head_idx].vehicle_plate_infos[max_index].type; | 1284 | info_c.vehicle_plate_det_recg_res.type = vp_result[head_idx].vehicle_plate_infos[max_index].type; |
1413 | info_c.vehicle_plate_det_recg_res.num_score = vp_result[head_idx].vehicle_plate_infos[max_index].num_score; | 1285 | info_c.vehicle_plate_det_recg_res.num_score = vp_result[head_idx].vehicle_plate_infos[max_index].num_score; |
1414 | info_c.vehicle_plate_det_recg_res.detect_score = vp_result[head_idx].vehicle_plate_infos[max_index].detect_score; | 1286 | info_c.vehicle_plate_det_recg_res.detect_score = vp_result[head_idx].vehicle_plate_infos[max_index].detect_score; |
1415 | - if (info_c.vehicle_plate_det_recg_res.detect_score > 0.1 && info_c.vehicle_plate_det_recg_res.stain_vp_result.type == 1) | ||
1416 | - { | ||
1417 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 2; | ||
1418 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1419 | - } | ||
1420 | - | ||
1421 | - | 1287 | + |
1422 | info_c.vehicle_plate_det_recg_res.rect.left_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[head_idx]+ info_c.vehicle_detect_res.rect.left_; | 1288 | info_c.vehicle_plate_det_recg_res.rect.left_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[head_idx]+ info_c.vehicle_detect_res.rect.left_; |
1423 | info_c.vehicle_plate_det_recg_res.rect.top_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[head_idx]+ info_c.vehicle_detect_res.rect.top_; | 1289 | info_c.vehicle_plate_det_recg_res.rect.top_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[head_idx]+ info_c.vehicle_detect_res.rect.top_; |
1424 | info_c.vehicle_plate_det_recg_res.rect.width_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.width_ * scale_w[head_idx]; | 1290 | info_c.vehicle_plate_det_recg_res.rect.width_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.width_ * scale_w[head_idx]; |
1425 | info_c.vehicle_plate_det_recg_res.rect.height_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.height_* scale_h[head_idx]; | 1291 | info_c.vehicle_plate_det_recg_res.rect.height_ = vp_result[head_idx].vehicle_plate_infos[max_index].rect.height_* scale_h[head_idx]; |
1426 | 1292 | ||
1293 | + int space_char_num = 0; | ||
1427 | for(int p=0;p<PLATENUM;p++) | 1294 | for(int p=0;p<PLATENUM;p++) |
1428 | { | 1295 | { |
1429 | info_c.vehicle_plate_det_recg_res.recg[p].index = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].index; | 1296 | info_c.vehicle_plate_det_recg_res.recg[p].index = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].index; |
@@ -1433,7 +1300,25 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1433,7 +1300,25 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1433 | info_c.vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[1]; | 1300 | info_c.vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[1]; |
1434 | info_c.vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[2]; | 1301 | info_c.vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[2]; |
1435 | info_c.vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[3]; | 1302 | info_c.vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[head_idx].vehicle_plate_infos[max_index].recg[p].character[3]; |
1436 | - } | 1303 | + |
1304 | + if (fabs(info_c.vehicle_plate_det_recg_res.recg[p].maxprob) < 0.0001) { | ||
1305 | + space_char_num++ ; | ||
1306 | + } | ||
1307 | + } | ||
1308 | + | ||
1309 | + auto plate_info = info_c.vehicle_plate_det_recg_res; | ||
1310 | + LOG_DEBUG(" 号牌号码:{}{}{}{}{}{}{}{}", plate_info.recg[0].character, plate_info.recg[1].character, plate_info.recg[2].character, plate_info.recg[3].character, plate_info.recg[4].character, plate_info.recg[5].character, plate_info.recg[6].character, plate_info.recg[7].character); | ||
1311 | + | ||
1312 | + if (info_c.vehicle_plate_det_recg_res.stain_vp_result.type == 0) | ||
1313 | + { | ||
1314 | + if (space_char_num == 0) { | ||
1315 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 1; | ||
1316 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1317 | + } else if (space_char_num > 0 && space_char_num < PLATENUM) { | ||
1318 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 2; | ||
1319 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1320 | + } | ||
1321 | + } | ||
1437 | 1322 | ||
1438 | //20201201wh���������ӳ�����Ϣ | 1323 | //20201201wh���������ӳ�����Ϣ |
1439 | for(int p=0;p<PLATENUM;p++) | 1324 | for(int p=0;p<PLATENUM;p++) |
@@ -1728,25 +1613,9 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1728,25 +1613,9 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1728 | } | 1613 | } |
1729 | 1614 | ||
1730 | if (vp_result[rear_idx].count==0 || vp_result[rear_idx].vehicle_plate_infos[max_index].rect.left_ == -1 )//û������ | 1615 | if (vp_result[rear_idx].count==0 || vp_result[rear_idx].vehicle_plate_infos[max_index].rect.left_ == -1 )//û������ |
1731 | - { | ||
1732 | - info_c.vehicle_plate_det_recg_res.special_type = 0;//���������20200225 | ||
1733 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.score = 0; | ||
1734 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.type = -1; | ||
1735 | - | ||
1736 | - info_c.vehicle_plate_det_recg_res.type = 0; | ||
1737 | - info_c.vehicle_plate_det_recg_res.num_score = 0; | ||
1738 | - info_c.vehicle_plate_det_recg_res.detect_score = 0; | ||
1739 | - | ||
1740 | - info_c.vehicle_plate_det_recg_res.rect.left_ = 0; | ||
1741 | - info_c.vehicle_plate_det_recg_res.rect.top_ = 0; | ||
1742 | - info_c.vehicle_plate_det_recg_res.rect.width_ = 0; | ||
1743 | - info_c.vehicle_plate_det_recg_res.rect.height_ = 0; | ||
1744 | - | 1616 | + { |
1745 | for(int p=0;p<PLATENUM;p++) | 1617 | for(int p=0;p<PLATENUM;p++) |
1746 | { | 1618 | { |
1747 | - info_c.vehicle_plate_det_recg_res.recg[p].index = 0; | ||
1748 | - info_c.vehicle_plate_det_recg_res.recg[p].maxprob = 0; | ||
1749 | - //info_c.vehicle_plate_det_recg_res.recg[p].character = NULL; | ||
1750 | memset(info_c.vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(info_c.vehicle_plate_det_recg_res.recg[p].character)); | 1619 | memset(info_c.vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(info_c.vehicle_plate_det_recg_res.recg[p].character)); |
1751 | } | 1620 | } |
1752 | 1621 | ||
@@ -1763,29 +1632,42 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -1763,29 +1632,42 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
1763 | info_c.vehicle_plate_det_recg_res.type = vp_result[rear_idx].vehicle_plate_infos[max_index].type; | 1632 | info_c.vehicle_plate_det_recg_res.type = vp_result[rear_idx].vehicle_plate_infos[max_index].type; |
1764 | info_c.vehicle_plate_det_recg_res.num_score = vp_result[rear_idx].vehicle_plate_infos[max_index].num_score; | 1633 | info_c.vehicle_plate_det_recg_res.num_score = vp_result[rear_idx].vehicle_plate_infos[max_index].num_score; |
1765 | info_c.vehicle_plate_det_recg_res.detect_score = vp_result[rear_idx].vehicle_plate_infos[max_index].detect_score; | 1634 | info_c.vehicle_plate_det_recg_res.detect_score = vp_result[rear_idx].vehicle_plate_infos[max_index].detect_score; |
1766 | - if (info_c.vehicle_plate_det_recg_res.detect_score > 0.1 && info_c.vehicle_plate_det_recg_res.stain_vp_result.type == 1) | ||
1767 | - { | ||
1768 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 2; | ||
1769 | - info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1770 | - } | ||
1771 | 1635 | ||
1772 | info_c.vehicle_plate_det_recg_res.rect.left_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[rear_idx] + info_c.vehicle_body_detect_res.rect.left_; | 1636 | info_c.vehicle_plate_det_recg_res.rect.left_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[rear_idx] + info_c.vehicle_body_detect_res.rect.left_; |
1773 | info_c.vehicle_plate_det_recg_res.rect.top_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[rear_idx] + info_c.vehicle_body_detect_res.rect.top_; | 1637 | info_c.vehicle_plate_det_recg_res.rect.top_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[rear_idx] + info_c.vehicle_body_detect_res.rect.top_; |
1774 | info_c.vehicle_plate_det_recg_res.rect.width_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.width_* scale_w[rear_idx]; | 1638 | info_c.vehicle_plate_det_recg_res.rect.width_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.width_* scale_w[rear_idx]; |
1775 | info_c.vehicle_plate_det_recg_res.rect.height_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.height_* scale_h[rear_idx]; | 1639 | info_c.vehicle_plate_det_recg_res.rect.height_ = vp_result[rear_idx].vehicle_plate_infos[max_index].rect.height_* scale_h[rear_idx]; |
1776 | 1640 | ||
1641 | + int space_char_num = 0; | ||
1777 | for(int p=0;p<PLATENUM;p++) | 1642 | for(int p=0;p<PLATENUM;p++) |
1778 | { | 1643 | { |
1779 | info_c.vehicle_plate_det_recg_res.recg[p].index = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].index; | 1644 | info_c.vehicle_plate_det_recg_res.recg[p].index = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].index; |
1780 | - | ||
1781 | info_c.vehicle_plate_det_recg_res.recg[p].maxprob = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].maxprob; | 1645 | info_c.vehicle_plate_det_recg_res.recg[p].maxprob = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].maxprob; |
1782 | //info_c.vehicle_plate_det_recg_res.recg[p].character = vp_result[idx][j].recg[p].character; | 1646 | //info_c.vehicle_plate_det_recg_res.recg[p].character = vp_result[idx][j].recg[p].character; |
1783 | info_c.vehicle_plate_det_recg_res.recg[p].character[0] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[0]; | 1647 | info_c.vehicle_plate_det_recg_res.recg[p].character[0] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[0]; |
1784 | info_c.vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[1]; | 1648 | info_c.vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[1]; |
1785 | info_c.vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[2]; | 1649 | info_c.vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[2]; |
1786 | info_c.vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[3]; | 1650 | info_c.vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].character[3]; |
1651 | + | ||
1652 | + if (fabs(info_c.vehicle_plate_det_recg_res.recg[p].maxprob) < 0.0001) { | ||
1653 | + space_char_num++ ; | ||
1654 | + } | ||
1787 | } | 1655 | } |
1788 | - //20201201���ӳ������ij�����Ϣ | 1656 | + |
1657 | + auto plate_info = info_c.vehicle_plate_det_recg_res; | ||
1658 | + LOG_DEBUG(" 号牌号码:{}{}{}{}{}{}{}{}", plate_info.recg[0].character, plate_info.recg[1].character, plate_info.recg[2].character, plate_info.recg[3].character, plate_info.recg[4].character, plate_info.recg[5].character, plate_info.recg[6].character, plate_info.recg[7].character); | ||
1659 | + | ||
1660 | + if (info_c.vehicle_plate_det_recg_res.stain_vp_result.type == 0) | ||
1661 | + { | ||
1662 | + if (space_char_num == 0) { | ||
1663 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 1; | ||
1664 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1665 | + } else if (space_char_num > 0 && space_char_num < PLATENUM) { | ||
1666 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 2; | ||
1667 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
1668 | + } | ||
1669 | + } | ||
1670 | + | ||
1789 | for(int p=0;p<PLATENUM;p++) | 1671 | for(int p=0;p<PLATENUM;p++) |
1790 | { | 1672 | { |
1791 | info_c.vehicle_fea_res.feature[FEATURESIZE*2+p] = (float)vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].index; | 1673 | info_c.vehicle_fea_res.feature[FEATURESIZE*2+p] = (float)vp_result[rear_idx].vehicle_plate_infos[max_index].recg[p].index; |
@@ -2019,9 +1901,11 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2019,9 +1901,11 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2019 | LOG_DEBUG("end 7.head win vf+vid ----- "); | 1901 | LOG_DEBUG("end 7.head win vf+vid ----- "); |
2020 | 1902 | ||
2021 | } | 1903 | } |
2022 | - //process_vidresult(handle, batch_size, result); | 1904 | + |
1905 | + LOG_DEBUG("process_vidresult_atlas"); | ||
2023 | process_vidresult_atlas(handle, batch_size, result); | 1906 | process_vidresult_atlas(handle, batch_size, result); |
2024 | 1907 | ||
1908 | + LOG_DEBUG("motor_num:{}", motor_num); | ||
2025 | if(motor_num>0) | 1909 | if(motor_num>0) |
2026 | { | 1910 | { |
2027 | //double t22 = msecond(); | 1911 | //double t22 = msecond(); |
@@ -2083,19 +1967,20 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2083,19 +1967,20 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2083 | { | 1967 | { |
2084 | for(int c=0;c<result[b].count;c++) | 1968 | for(int c=0;c<result[b].count;c++) |
2085 | { | 1969 | { |
2086 | - if(result[b].info[c].type == 2)///Ħ�� | ||
2087 | - { | 1970 | + auto& info_c = result[b].info[c]; |
1971 | + if(info_c.type == 2)///Ħ�� | ||
1972 | + { //摩托车 | ||
2088 | int res_index = hcp_result[motor_idx].res_objs[0].res_index;//��ȡĦ�г���ʻ�˵�head������ | 1973 | int res_index = hcp_result[motor_idx].res_objs[0].res_index;//��ȡĦ�г���ʻ�˵�head������ |
2089 | float res_socre = hcp_result[motor_idx].res_objs[0].res_prob; | 1974 | float res_socre = hcp_result[motor_idx].res_objs[0].res_prob; |
2090 | if(res_index == 4)//head������ͷ�� | 1975 | if(res_index == 4)//head������ͷ�� |
2091 | { | 1976 | { |
2092 | - result[b].info[c].mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_HELMETED;//��ͷ�� | ||
2093 | - result[b].info[c].mta_res.motor_driver_helmeted.confidence=res_socre; | 1977 | + info_c.mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_HELMETED;//��ͷ�� |
1978 | + info_c.mta_res.motor_driver_helmeted.confidence=res_socre; | ||
2094 | } | 1979 | } |
2095 | else | 1980 | else |
2096 | { | 1981 | { |
2097 | - result[b].info[c].mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_NOT_HELMETED;//δ��ͷ�� | ||
2098 | - result[b].info[c].mta_res.motor_driver_helmeted.confidence=res_socre; | 1982 | + info_c.mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_NOT_HELMETED;//δ��ͷ�� |
1983 | + info_c.mta_res.motor_driver_helmeted.confidence=res_socre; | ||
2099 | } | 1984 | } |
2100 | 1985 | ||
2101 | motor_idx++; | 1986 | motor_idx++; |
@@ -2113,6 +1998,7 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2113,6 +1998,7 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2113 | } | 1998 | } |
2114 | 1999 | ||
2115 | int tricycle_batch_size = tricycle_num + (car_body_num - head_num -rear_num);//type ==4��type = 3��Ŀ�� | 2000 | int tricycle_batch_size = tricycle_num + (car_body_num - head_num -rear_num);//type ==4��type = 3��Ŀ�� |
2001 | + LOG_DEBUG("tricycle_batch_size:{}", tricycle_batch_size); | ||
2116 | if(tricycle_batch_size>0) | 2002 | if(tricycle_batch_size>0) |
2117 | { | 2003 | { |
2118 | LOG_DEBUG("start :tricycle_img_data."); | 2004 | LOG_DEBUG("start :tricycle_img_data."); |
@@ -2186,7 +2072,8 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2186,7 +2072,8 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2186 | { | 2072 | { |
2187 | for(int c=0;c<result[b].count;c++) | 2073 | for(int c=0;c<result[b].count;c++) |
2188 | { | 2074 | { |
2189 | - if(result[b].info[c].type == 3 || result[b].info[c].type == 4)//��tricycle �� ���� | 2075 | + auto& info_c = result[b].info[c]; |
2076 | + if(info_c.type == 3 || info_c.type == 4)//��tricycle �� ���� | ||
2190 | { | 2077 | { |
2191 | //ͳ�Ʒ�����ߵij��� | 2078 | //ͳ�Ʒ�����ߵij��� |
2192 | int max_index = 0; | 2079 | int max_index = 0; |
@@ -2203,47 +2090,54 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2203,47 +2090,54 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2203 | 2090 | ||
2204 | if (vp_result[tricycle_idx].count==0 || max_index == -1 )//û������ | 2091 | if (vp_result[tricycle_idx].count==0 || max_index == -1 )//û������ |
2205 | { | 2092 | { |
2206 | - result[b].info[c].vehicle_plate_det_recg_res.special_type = 0;//���������20200225 | ||
2207 | - | ||
2208 | - result[b].info[c].vehicle_plate_det_recg_res.type = 0; | ||
2209 | - result[b].info[c].vehicle_plate_det_recg_res.num_score = 0; | ||
2210 | - result[b].info[c].vehicle_plate_det_recg_res.detect_score = 0; | ||
2211 | - | ||
2212 | - result[b].info[c].vehicle_plate_det_recg_res.rect.left_ = result[b].info[c].vehicle_body_detect_res.rect.left_; | ||
2213 | - result[b].info[c].vehicle_plate_det_recg_res.rect.top_ = result[b].info[c].vehicle_body_detect_res.rect.top_; | ||
2214 | - result[b].info[c].vehicle_plate_det_recg_res.rect.width_ = 0; | ||
2215 | - result[b].info[c].vehicle_plate_det_recg_res.rect.height_ = 0; | 2093 | + info_c.vehicle_plate_det_recg_res.rect.left_ = info_c.vehicle_body_detect_res.rect.left_; |
2094 | + info_c.vehicle_plate_det_recg_res.rect.top_ = info_c.vehicle_body_detect_res.rect.top_; | ||
2216 | 2095 | ||
2217 | for(int p=0;p<PLATENUM;p++) | 2096 | for(int p=0;p<PLATENUM;p++) |
2218 | { | 2097 | { |
2219 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].index = 0; | ||
2220 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].maxprob = 0; | ||
2221 | - //result[b].info[c].vehicle_plate_det_recg_res.recg[p].character = NULL; | ||
2222 | - memset(result[b].info[c].vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(result[b].info[c].vehicle_plate_det_recg_res.recg[p].character)); | 2098 | + memset(info_c.vehicle_plate_det_recg_res.recg[p].character, '\0', sizeof(info_c.vehicle_plate_det_recg_res.recg[p].character)); |
2223 | } | 2099 | } |
2224 | 2100 | ||
2225 | - } | ||
2226 | - else{ | ||
2227 | - result[b].info[c].vehicle_plate_det_recg_res.type = vp_result[tricycle_idx].vehicle_plate_infos[max_index].type; | ||
2228 | - result[b].info[c].vehicle_plate_det_recg_res.num_score = vp_result[tricycle_idx].vehicle_plate_infos[max_index].num_score; | ||
2229 | - result[b].info[c].vehicle_plate_det_recg_res.detect_score = vp_result[tricycle_idx].vehicle_plate_infos[max_index].detect_score; | 2101 | + } else{ |
2102 | + info_c.vehicle_plate_det_recg_res.type = vp_result[tricycle_idx].vehicle_plate_infos[max_index].type; | ||
2103 | + info_c.vehicle_plate_det_recg_res.num_score = vp_result[tricycle_idx].vehicle_plate_infos[max_index].num_score; | ||
2104 | + info_c.vehicle_plate_det_recg_res.detect_score = vp_result[tricycle_idx].vehicle_plate_infos[max_index].detect_score; | ||
2230 | 2105 | ||
2231 | - result[b].info[c].vehicle_plate_det_recg_res.rect.left_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[tricycle_idx] + result[b].info[c].vehicle_body_detect_res.rect.left_;//ӳ�䳵�� | ||
2232 | - result[b].info[c].vehicle_plate_det_recg_res.rect.top_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[tricycle_idx] + result[b].info[c].vehicle_body_detect_res.rect.top_;//ӳ�䳵�� | ||
2233 | - result[b].info[c].vehicle_plate_det_recg_res.rect.width_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.width_ * scale_w[tricycle_idx]; | ||
2234 | - result[b].info[c].vehicle_plate_det_recg_res.rect.height_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.height_ * scale_h[tricycle_idx]; | 2106 | + info_c.vehicle_plate_det_recg_res.rect.left_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.left_ * scale_w[tricycle_idx] + info_c.vehicle_body_detect_res.rect.left_;//ӳ�䳵�� |
2107 | + info_c.vehicle_plate_det_recg_res.rect.top_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.top_ * scale_h[tricycle_idx] + info_c.vehicle_body_detect_res.rect.top_;//ӳ�䳵�� | ||
2108 | + info_c.vehicle_plate_det_recg_res.rect.width_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.width_ * scale_w[tricycle_idx]; | ||
2109 | + info_c.vehicle_plate_det_recg_res.rect.height_ = vp_result[tricycle_idx].vehicle_plate_infos[max_index].rect.height_ * scale_h[tricycle_idx]; | ||
2235 | 2110 | ||
2111 | + int space_char_num = 0; | ||
2236 | for(int p=0;p<PLATENUM;p++) | 2112 | for(int p=0;p<PLATENUM;p++) |
2237 | { | 2113 | { |
2238 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].index = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].index; | ||
2239 | - | ||
2240 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].maxprob = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].maxprob; | ||
2241 | - //result[b].info[c].vehicle_plate_det_recg_res.recg[p].character = vp_result[idx][j].recg[p].character; | ||
2242 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].character[0] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[0]; | ||
2243 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[1]; | ||
2244 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[2]; | ||
2245 | - result[b].info[c].vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[3]; | ||
2246 | - } | 2114 | + info_c.vehicle_plate_det_recg_res.recg[p].index = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].index; |
2115 | + | ||
2116 | + info_c.vehicle_plate_det_recg_res.recg[p].maxprob = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].maxprob; | ||
2117 | + //info_c.vehicle_plate_det_recg_res.recg[p].character = vp_result[idx][j].recg[p].character; | ||
2118 | + info_c.vehicle_plate_det_recg_res.recg[p].character[0] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[0]; | ||
2119 | + info_c.vehicle_plate_det_recg_res.recg[p].character[1] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[1]; | ||
2120 | + info_c.vehicle_plate_det_recg_res.recg[p].character[2] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[2]; | ||
2121 | + info_c.vehicle_plate_det_recg_res.recg[p].character[3] = vp_result[tricycle_idx].vehicle_plate_infos[max_index].recg[p].character[3]; | ||
2122 | + | ||
2123 | + if (fabs(info_c.vehicle_plate_det_recg_res.recg[p].maxprob) < 0.0001) { | ||
2124 | + space_char_num++ ; | ||
2125 | + } | ||
2126 | + } | ||
2127 | + | ||
2128 | + auto plate_info = info_c.vehicle_plate_det_recg_res; | ||
2129 | + LOG_DEBUG(" 号牌号码:{}{}{}{}{}{}{}{}", plate_info.recg[0].character, plate_info.recg[1].character, plate_info.recg[2].character, plate_info.recg[3].character, plate_info.recg[4].character, plate_info.recg[5].character, plate_info.recg[6].character, plate_info.recg[7].character); | ||
2130 | + | ||
2131 | + if (info_c.vehicle_plate_det_recg_res.stain_vp_result.type == 0) | ||
2132 | + { | ||
2133 | + if (space_char_num == 0) { | ||
2134 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 1; | ||
2135 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
2136 | + } else if (space_char_num > 0 && space_char_num < PLATENUM) { | ||
2137 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.type = 2; | ||
2138 | + info_c.vehicle_plate_det_recg_res.stain_vp_result.score = info_c.vehicle_plate_det_recg_res.detect_score; | ||
2139 | + } | ||
2140 | + } | ||
2247 | } | 2141 | } |
2248 | 2142 | ||
2249 | tricycle_idx++; | 2143 | tricycle_idx++; |
@@ -2261,10 +2155,49 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | @@ -2261,10 +2155,49 @@ int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result * | ||
2261 | LOG_DEBUG("end tricycle 5.vp process----- "); | 2155 | LOG_DEBUG("end tricycle 5.vp process----- "); |
2262 | } | 2156 | } |
2263 | //end for 5.VP���Ƽ��ʶ��----------------------- | 2157 | //end for 5.VP���Ƽ��ʶ��----------------------- |
2264 | - | 2158 | + // if(tools->param.vehicle_plate_det_recg_config==SY_CONFIG_OPEN) |
2159 | + // { | ||
2160 | + // LOG_DEBUG("start tricycle hcp."); | ||
2161 | + // hcp_analysis_result * hcp_result = new hcp_analysis_result[tricycle_batch_size]; | ||
2162 | + // int ret = hcp_batch(tools->hcp_handle, tricycle_img_data, tricycle_batch_size, hcp_result); | ||
2163 | + | ||
2164 | + // //output Ħ�г���ʻ�˴�ͷ�� | ||
2165 | + // int tricycle_idx=0; | ||
2166 | + // for (int b = 0; b < batch_size; b++) | ||
2167 | + // { | ||
2168 | + // for(int c=0;c<result[b].count;c++) | ||
2169 | + // { | ||
2170 | + // auto& info_c = result[b].info[c]; | ||
2171 | + // if(info_c.type == 3 || info_c.type == 4) | ||
2172 | + // { //三轮车 | ||
2173 | + // int res_index = hcp_result[tricycle_idx].res_objs[0].res_index;//��ȡĦ�г���ʻ�˵�head������ | ||
2174 | + // float res_socre = hcp_result[tricycle_idx].res_objs[0].res_prob; | ||
2175 | + // if(res_index == 4)//head������ͷ�� | ||
2176 | + // { | ||
2177 | + // info_c.mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_HELMETED;//��ͷ�� | ||
2178 | + // info_c.mta_res.motor_driver_helmeted.confidence=res_socre; | ||
2179 | + // } | ||
2180 | + // else | ||
2181 | + // { | ||
2182 | + // info_c.mta_res.motor_driver_helmeted.status=MOTOR_DRIVER_NOT_HELMETED;//δ��ͷ�� | ||
2183 | + // info_c.mta_res.motor_driver_helmeted.confidence=res_socre; | ||
2184 | + // } | ||
2185 | + | ||
2186 | + // tricycle_idx++; | ||
2187 | + // } | ||
2188 | + // } | ||
2189 | + // } | ||
2190 | + | ||
2191 | + // if(hcp_result!= NULL) | ||
2192 | + // { | ||
2193 | + // delete[] hcp_result; | ||
2194 | + // hcp_result=NULL; | ||
2195 | + // } | ||
2196 | + | ||
2197 | + // LOG_DEBUG("end tricycle hcp."); | ||
2198 | + // } | ||
2265 | } | 2199 | } |
2266 | //end tricycle ���� | 2200 | //end tricycle ���� |
2267 | - | ||
2268 | 2201 | ||
2269 | 2202 | ||
2270 | //delete | 2203 | //delete |
@@ -2479,13 +2412,6 @@ void va_release(void ** handle) | @@ -2479,13 +2412,6 @@ void va_release(void ** handle) | ||
2479 | } | 2412 | } |
2480 | 2413 | ||
2481 | 2414 | ||
2482 | -void va_acl_release() | ||
2483 | -{ | ||
2484 | - aclFinalize(); | ||
2485 | -} | ||
2486 | - | ||
2487 | - | ||
2488 | - | ||
2489 | //1.��绰 | 2415 | //1.��绰 |
2490 | //������� | 2416 | //������� |
2491 | //-��Ӧ�����ˣ� | 2417 | //-��Ӧ�����ˣ� |
@@ -4059,34 +3985,4 @@ int vr_supplement(void *handle, sy_img * body_img_data, int batch_size,int car_b | @@ -4059,34 +3985,4 @@ int vr_supplement(void *handle, sy_img * body_img_data, int batch_size,int car_b | ||
4059 | 3985 | ||
4060 | return SUCCESS; | 3986 | return SUCCESS; |
4061 | 3987 | ||
4062 | -} | ||
4063 | - | ||
4064 | -//end for ����ʶ�����복logo�����ϲ���--------------------------- | ||
4065 | - | ||
4066 | - | ||
4067 | - | ||
4068 | - | ||
4069 | - | ||
4070 | - | ||
4071 | - | ||
4072 | -//===================== �������� =====================// | ||
4073 | - | ||
4074 | -int checkTime() | ||
4075 | -{ | ||
4076 | - struct tm* info; | ||
4077 | - int nYear, nMonth, nDay; | ||
4078 | - time_t raw; | ||
4079 | - time(&raw); | ||
4080 | - info = localtime(&raw); | ||
4081 | - nYear = info->tm_year + 1900; | ||
4082 | - nMonth = info->tm_mon + 1; | ||
4083 | - nDay = info->tm_mday; | ||
4084 | - if (nYear == 2019 && nMonth < 7) | ||
4085 | - return 1; | ||
4086 | - LOG_ERROR("Software license is out of time! Please contact software developers."); | ||
4087 | - //exit(0); | ||
4088 | - return -1; | ||
4089 | -} | ||
4090 | - | ||
4091 | - | ||
4092 | - | 3988 | +} |
4093 | \ No newline at end of file | 3989 | \ No newline at end of file |
src/ai_engine_module/VehicleAnalysisDevice.h
0 → 100644
1 | +#ifndef __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
2 | +#define __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
3 | + | ||
4 | +#include "vehicle_analysis.h" | ||
5 | + | ||
6 | +/************************************************************************* | ||
7 | +* function: va_init | ||
8 | +* purpose: init resources | ||
9 | +* param: | ||
10 | +[in] handle - handle | ||
11 | +[in] param - init param | ||
12 | +* return: success(0) or error code(<0) | ||
13 | +* notes: null | ||
14 | +*************************************************************************/ | ||
15 | +int va_init(void ** handle, va_param param); | ||
16 | + | ||
17 | +/************************************************************************* | ||
18 | +* function: va_release | ||
19 | +* purpose: release sources | ||
20 | +* param: | ||
21 | +[in] handle - handle | ||
22 | +* return: null | ||
23 | +* notes: null | ||
24 | +*************************************************************************/ | ||
25 | +void va_release(void ** handle); | ||
26 | + | ||
27 | +/************************************************************************* | ||
28 | +* function: va_get_version | ||
29 | +* purpose: get sdk version | ||
30 | +* param: null | ||
31 | +* return: null | ||
32 | +* notes: null | ||
33 | +*************************************************************************/ | ||
34 | +const char * va_get_version(); | ||
35 | + | ||
36 | +/************************************************************************* | ||
37 | +* function: va_batch | ||
38 | +* purpose: vehicle analysis batch | ||
39 | +* param: | ||
40 | +[in] handle - handle | ||
41 | +[in] img_data_array - data array | ||
42 | +[in] format - data format | ||
43 | +[in] batch_size - batch size | ||
44 | +[in] result - vehicle analysis result | ||
45 | +* return: success(0) or error code(<0) | ||
46 | +* notes: null | ||
47 | +*************************************************************************/ | ||
48 | +int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result *result); | ||
49 | +//img_data_array是device数据,batch_size==16时调用固定16模型,小于16时调用固定1模型。 | ||
50 | +int va_batch16_device(void * handle, sy_img * img_data_array, int batch_size, va_result *result); | ||
51 | + | ||
52 | + | ||
53 | + | ||
54 | +/************************************************************************* | ||
55 | +* FUNCTION: VA_ComputeSimilarity | ||
56 | +* PURPOSE: 比对相似度(通用) | ||
57 | +* PARAM: | ||
58 | +[in] Afea - 第一张图片特征 | ||
59 | +[in] Bfea - 第二张图片特征 | ||
60 | +[in] featuresize - 特征长度 | ||
61 | +* RETURN: 相似度 | ||
62 | +* NOTES: | ||
63 | +*************************************************************************/ | ||
64 | +float va_compute_similarity(float *Afea, float *Bfea, int featuresize); | ||
65 | + | ||
66 | +/************************************************************************* | ||
67 | +* FUNCTION: va_compute_similarity_byvafeature | ||
68 | +* PURPOSE: 比对相似度(针对va特征) | ||
69 | +* PARAM: | ||
70 | +[in] Afea - 第一张图片va特征 | ||
71 | +[in] Bfea - 第二张图片va特征 | ||
72 | +[in] featuresize - 特征长度VA_FEATURESIZE | ||
73 | +* RETURN: 相似度 | ||
74 | +* NOTES: | ||
75 | +*************************************************************************/ | ||
76 | +float va_compute_similarity_byvafeature(void * handle , float *Afea, float *Bfea, int featuresize); | ||
77 | + | ||
78 | + | ||
79 | +#endif // __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
0 | \ No newline at end of file | 80 | \ No newline at end of file |
src/ai_engine_module/VehicleAnalysisDevice.h0 deleted
1 | -#ifndef __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
2 | -#define __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
3 | - | ||
4 | -#include "vehicle_analysis.h" | ||
5 | - | ||
6 | -int va_init(void ** handle, va_param param); | ||
7 | - | ||
8 | -int va_batch(void * handle, sy_img * img_data_array, int batch_size, va_result *result); | ||
9 | - | ||
10 | -void va_release(void ** handle); | ||
11 | - | ||
12 | - | ||
13 | -#endif // __AI_ENGINE_MODULE_VEHICLE_ANALYSIS_DEVICE_H__ | ||
14 | \ No newline at end of file | 0 | \ No newline at end of file |