diff --git a/vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/VehiclePlate.cpp b/vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/VehiclePlate.cpp index c44d51e..9ec7c09 100644 --- a/vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/VehiclePlate.cpp +++ b/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) return SUCCESS; } -#include int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batchsize, vplate_result *&result) { /*��ʼ������ṹ��*/ @@ -42,26 +41,21 @@ int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batc } } - std::vector gpu_data; + sy_img cpu_batch_img[batchsize]; for (int i = 0; i < batchsize; i++) { if (batch_img[i].data_ == NULL) { cout << i << " data null" << endl; } - unsigned char * data_ = (unsigned char *)malloc(batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char)); - cudaMemcpy(data_, batch_img[i].data_, batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char), cudaMemcpyDeviceToHost); - gpu_data.push_back(batch_img[i].data_); - batch_img[i].data_ = data_; - - /*cv::Mat car(batch_img[i].h_, batch_img[i].w_, CV_8UC3, data_); - cv::imshow("car", car); - cv::waitKey(0);*/ + cpu_batch_img[i].data_ = (unsigned char *)malloc(batch_img[i].w_ *batch_img[i].h_ * batch_img[i].c_ * sizeof(unsigned char)); + 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); + cpu_batch_img[i].w_ = batch_img[i].w_; + cpu_batch_img[i].h_ = batch_img[i].h_; + cpu_batch_img[i].c_ = batch_img[i].c_; } - //cout << "error begin vpdr_batch" << endl; - int index_count = vpdr_batch(handle, batch_img, batchsize, all_result); - //cout << "end vpdr_batch" << endl; + int index_count = vpdr_batch(handle, cpu_batch_img, batchsize, all_result); for (int b = 0; b < batchsize; b++) { @@ -80,38 +74,15 @@ int VehiclePlateDetectRecog_Process(void * handle, sy_img * batch_img, int batc best_index = j; } } - /*{ - result[b].detect_score = all_result[b][best_index].detect_score; - result[b].num_score = all_result[b][best_index].num_score; - result[b].rect.left_ = all_result[b][best_index].rect.left_; - result[b].rect.height_ = all_result[b][best_index].rect.height_; - result[b].rect.top_ = all_result[b][best_index].rect.top_; - result[b].rect.width_ = all_result[b][best_index].rect.width_; - result[b].type = all_result[b][best_index].type; - - } -*/ - /*printf("b=%d\n", b); - for (int m = 0; m < PLATENUM; m++) - { - printf("%s", all_result[b].vehicle_plate_infos[best_index].recg[m].character); - } - printf("\n");*/ memcpy(&result[b], &all_result[b].vehicle_plate_infos[best_index], sizeof(vplate_result)); } - - //for (int i = 0; i