Commit 99b9185314da079deb28d82afe51042079782197
1 parent
f79fec75
代码优化
Showing
2 changed files
with
12 additions
and
48 deletions
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/VehiclePlate.cpp
... | ... | @@ -29,7 +29,6 @@ int VehiclePlateDetectRecog_Init(void *&handle, int gpuid, char* auth_license) |
29 | 29 | return SUCCESS; |
30 | 30 | } |
31 | 31 | |
32 | -#include <fstream> | |
33 | 32 | int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batchsize, vplate_result *&result) |
34 | 33 | { |
35 | 34 | /*��ʼ������ṹ��*/ |
... | ... | @@ -42,26 +41,21 @@ int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batc |
42 | 41 | } |
43 | 42 | } |
44 | 43 | |
45 | - std::vector<unsigned char *> gpu_data; | |
44 | + sy_img cpu_batch_img[batchsize]; | |
46 | 45 | for (int i = 0; i < batchsize; i++) |
47 | 46 | { |
48 | 47 | if (batch_img[i].data_ == NULL) |
49 | 48 | { |
50 | 49 | cout << i << " data null" << endl; |
51 | 50 | } |
52 | - unsigned char * data_ = (unsigned char *)malloc(batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char)); | |
53 | - cudaMemcpy(data_, batch_img[i].data_, batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char), cudaMemcpyDeviceToHost); | |
54 | - gpu_data.push_back(batch_img[i].data_); | |
55 | - batch_img[i].data_ = data_; | |
56 | - | |
57 | - /*cv::Mat car(batch_img[i].h_, batch_img[i].w_, CV_8UC3, data_); | |
58 | - cv::imshow("car", car); | |
59 | - cv::waitKey(0);*/ | |
51 | + cpu_batch_img[i].data_ = (unsigned char *)malloc(batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char)); | |
52 | + cudaMemcpy(cpu_batch_img[i].data_, batch_img[i].data_, batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char), cudaMemcpyDeviceToHost); | |
53 | + cpu_batch_img[i].w_ = batch_img[i].w_; | |
54 | + cpu_batch_img[i].h_ = batch_img[i].h_; | |
55 | + cpu_batch_img[i].c_ = batch_img[i].c_; | |
60 | 56 | } |
61 | 57 | |
62 | - //cout << "error begin vpdr_batch" << endl; | |
63 | - int index_count = vpdr_batch(handle, batch_img, batchsize, all_result); | |
64 | - //cout << "end vpdr_batch" << endl; | |
58 | + int index_count = vpdr_batch(handle, cpu_batch_img, batchsize, all_result); | |
65 | 59 | |
66 | 60 | for (int b = 0; b < batchsize; b++) |
67 | 61 | { |
... | ... | @@ -80,38 +74,15 @@ int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batc |
80 | 74 | best_index = j; |
81 | 75 | } |
82 | 76 | } |
83 | - /*{ | |
84 | - result[b].detect_score = all_result[b][best_index].detect_score; | |
85 | - result[b].num_score = all_result[b][best_index].num_score; | |
86 | - result[b].rect.left_ = all_result[b][best_index].rect.left_; | |
87 | - result[b].rect.height_ = all_result[b][best_index].rect.height_; | |
88 | - result[b].rect.top_ = all_result[b][best_index].rect.top_; | |
89 | - result[b].rect.width_ = all_result[b][best_index].rect.width_; | |
90 | - result[b].type = all_result[b][best_index].type; | |
91 | - | |
92 | - } | |
93 | -*/ | |
94 | - /*printf("b=%d\n", b); | |
95 | - for (int m = 0; m < PLATENUM; m++) | |
96 | - { | |
97 | - printf("%s", all_result[b].vehicle_plate_infos[best_index].recg[m].character); | |
98 | - } | |
99 | - printf("\n");*/ | |
100 | 77 | |
101 | 78 | memcpy(&result[b], &all_result[b].vehicle_plate_infos[best_index], sizeof(vplate_result)); |
102 | 79 | } |
103 | 80 | |
104 | - | |
105 | - //for (int i = 0; i<batchsize; i++) | |
106 | - //{ | |
107 | - // if (all_result[i] != NULL) | |
108 | - // delete[] all_result[i]; | |
109 | - //} | |
110 | - for (int i = 0; i < batchsize; i++) | |
111 | - { | |
112 | - free(batch_img[i].data_); | |
113 | - batch_img[i].data_ = gpu_data[i]; | |
81 | + for (int i = 0; i < batchsize; i++) { | |
82 | + free(cpu_batch_img[i].data_); | |
83 | + cpu_batch_img[i].data_ = nullptr; | |
114 | 84 | } |
85 | + | |
115 | 86 | if (all_result != NULL) |
116 | 87 | delete [] all_result; |
117 | 88 | ... | ... |
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/snapshot_helper.cpp
... | ... | @@ -709,8 +709,7 @@ void snapshot_helper::finish_task_ss_analysis(int task_id, sy_command hp_analysi |
709 | 709 | |
710 | 710 | if (vehicle_batch_count == 0) continue; |
711 | 711 | |
712 | - sy_img* finish_vehicle_img = new sy_img[vehicle_batch_count]{}; | |
713 | - | |
712 | + sy_img finish_vehicle_img[vehicle_batch_count]; | |
714 | 713 | for (int j = 0; j < vehicle_batch_count; j++) |
715 | 714 | { |
716 | 715 | OBJ_KEY cur_obj_key = vehicle_keys[j]; |
... | ... | @@ -834,12 +833,6 @@ void snapshot_helper::finish_task_ss_analysis(int task_id, sy_command hp_analysi |
834 | 833 | vrresult = NULL; |
835 | 834 | } |
836 | 835 | |
837 | - if (finish_vehicle_img != NULL) | |
838 | - { | |
839 | - delete[] finish_vehicle_img; | |
840 | - finish_vehicle_img = NULL; | |
841 | - } | |
842 | - | |
843 | 836 | vehicle_keys.erase(vehicle_keys.begin(), vehicle_keys.begin() + vehicle_batch_count); |
844 | 837 | } |
845 | 838 | ... | ... |