Commit 1d41673e4d71790b3556ef06242c5580f4b1fd50
1 parent
414f5587
完全版
Showing
2 changed files
with
145 additions
and
156 deletions
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/MutliSourceVideoProcess.cpp
... | ... | @@ -395,7 +395,7 @@ void CMutliSourceVideoProcess::FinishTask(const int taskID) |
395 | 395 | tasks[i].taskRealTimeCallbackFunc = nullptr; |
396 | 396 | |
397 | 397 | |
398 | - // m_snaphot_helper.finish_task_ss_analysis(taskID, m_hp_analysis_config, m_hcp_analysis_config, m_vehicle_analysis_config, m_hf_recg_config, m_hcf_recg_config, m_vcf_recg_config); //�Ƿ�����������ʶ��); | |
398 | + m_snaphot_helper.finish_task_ss_analysis(taskID, m_hp_analysis_config, m_hcp_analysis_config, m_vehicle_analysis_config, m_hf_recg_config, m_hcf_recg_config, m_vcf_recg_config); //�Ƿ�����������ʶ��); | |
399 | 399 | |
400 | 400 | if (tasks[i].folderName) |
401 | 401 | { | ... | ... |
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/snapshot_helper.cpp
... | ... | @@ -697,165 +697,154 @@ void snapshot_helper::finish_task_ss_analysis(int task_id, sy_command hp_analysi |
697 | 697 | } |
698 | 698 | } |
699 | 699 | |
700 | - // if (!vehicle_keys.empty()) | |
701 | - // { | |
702 | - // const int obj_batch_count = OBJ_BATCH_COUNT_VEHICLE / OBJ_SCALE; | |
703 | - // const int vehicle_batch_size = vehicle_keys.size(); | |
704 | - // int vehicle_batch_count = obj_batch_count; | |
705 | - // for (int i = 0; i <= (vehicle_batch_size / obj_batch_count); ++i) | |
706 | - // { | |
707 | - // if (i == (vehicle_batch_size / obj_batch_count)) | |
708 | - // vehicle_batch_count = vehicle_batch_size % obj_batch_count; | |
709 | - | |
710 | - // if (vehicle_batch_count == 0) continue; | |
711 | - | |
712 | - // sy_img* finish_vehicle_img = new sy_img[vehicle_batch_count]{}; | |
713 | - | |
714 | - // for (int j = 0; j < vehicle_batch_count; j++) | |
715 | - // { | |
716 | - // OBJ_KEY cur_obj_key = vehicle_keys[j]; | |
717 | - // finish_vehicle_img[j].set_data(VEHICLE_WIDTH, VEHICLE_HEIGHT, IMG_CHANNELS, (unsigned char*)snapShotInfo[cur_obj_key].snapShotLittle.frame); | |
718 | - // } | |
719 | - | |
720 | - // vc_result *vcresult = new vc_result[vehicle_batch_count]{}; | |
721 | - // vplate_result *vp_result = new vplate_result[vehicle_batch_count]{}; | |
722 | - // vr_result *vrresult = new vr_result[vehicle_batch_count]{}; | |
723 | - // if (vehicle_analysis_config == SY_CONFIG_OPEN) | |
724 | - // { | |
725 | - // { | |
726 | - // //TimeCounting t("VehicleColor_Process"); | |
727 | - // VehicleColor_Process(vc_handle, finish_vehicle_img, vehicle_batch_count, vcresult); | |
728 | - // } | |
729 | - | |
730 | - // { | |
731 | - // //TimeCounting t("VehiclePlateDetectRecog_Process"); | |
732 | - // VehiclePlateDetectRecog_Process(vp_handle, finish_vehicle_img, vehicle_batch_count, vp_result); | |
733 | - // } | |
734 | - | |
735 | - // { | |
736 | - // //TimeCounting t("VehicleRecog_Process"); | |
737 | - // // VehicleRecog_Process(finish_vehicle_img, vehicle_batch_count, vrresult, &vehicle_keys[0] + i*obj_batch_count); | |
738 | - // } | |
739 | - // } | |
740 | - | |
741 | - // int8 ** fea = nullptr; | |
742 | - // if (vcf_recg_config == SY_CONFIG_OPEN) | |
743 | - // { | |
700 | + if (!vehicle_keys.empty()) | |
701 | + { | |
702 | + const int obj_batch_count = OBJ_BATCH_COUNT_VEHICLE / OBJ_SCALE; | |
703 | + const int vehicle_batch_size = vehicle_keys.size(); | |
704 | + int vehicle_batch_count = obj_batch_count; | |
705 | + for (int i = 0; i <= (vehicle_batch_size / obj_batch_count); ++i) | |
706 | + { | |
707 | + if (i == (vehicle_batch_size / obj_batch_count)) | |
708 | + vehicle_batch_count = vehicle_batch_size % obj_batch_count; | |
709 | + | |
710 | + if (vehicle_batch_count == 0) continue; | |
711 | + | |
712 | + sy_img* finish_vehicle_img = new sy_img[vehicle_batch_count]{}; | |
713 | + | |
714 | + for (int j = 0; j < vehicle_batch_count; j++) | |
715 | + { | |
716 | + OBJ_KEY cur_obj_key = vehicle_keys[j]; | |
717 | + finish_vehicle_img[j].set_data(VEHICLE_WIDTH, VEHICLE_HEIGHT, IMG_CHANNELS, (unsigned char*)snapShotInfo[cur_obj_key].snapShotLittle.frame); | |
718 | + } | |
719 | + | |
720 | + vc_result *vcresult = new vc_result[vehicle_batch_count]{}; | |
721 | + vplate_result *vp_result = new vplate_result[vehicle_batch_count]{}; | |
722 | + vr_result *vrresult = new vr_result[vehicle_batch_count]{}; | |
723 | + if (vehicle_analysis_config == SY_CONFIG_OPEN) | |
724 | + { | |
725 | + VehicleColor_Process(vc_handle, finish_vehicle_img, vehicle_batch_count, vcresult); | |
726 | + VehiclePlateDetectRecog_Process(vp_handle, finish_vehicle_img, vehicle_batch_count, vp_result); | |
727 | + VehicleRecog_Process(finish_vehicle_img, vehicle_batch_count, vrresult, &vehicle_keys[0] + i*obj_batch_count); | |
728 | + } | |
729 | + | |
730 | + int8 ** fea = nullptr; | |
731 | + if (vcf_recg_config == SY_CONFIG_OPEN) | |
732 | + { | |
744 | 733 | |
745 | - // fea = new int8*[vehicle_batch_count] {}; | |
746 | - // for (int ii = 0; ii < vehicle_batch_count; ++ii) | |
747 | - // { | |
748 | - // fea[ii] = new int8[FEATURESIZE]{}; | |
749 | - // } | |
734 | + fea = new int8*[vehicle_batch_count] {}; | |
735 | + for (int ii = 0; ii < vehicle_batch_count; ++ii) | |
736 | + { | |
737 | + fea[ii] = new int8[FEATURESIZE]{}; | |
738 | + } | |
750 | 739 | |
751 | - // //TimeCounting t("vf_features_process"); | |
752 | - // vf_features_process(vf_handle, finish_vehicle_img, vehicle_batch_count, fea); | |
753 | - // } | |
740 | + //TimeCounting t("vf_features_process"); | |
741 | + vf_features_process(vf_handle, finish_vehicle_img, vehicle_batch_count, fea); | |
742 | + } | |
754 | 743 | |
755 | 744 | |
756 | - // int resIndex = 0; | |
757 | - // int feaIndex = 0; | |
758 | - // for (int vc_idx = 0; vc_idx < vehicle_batch_count; vc_idx++) | |
759 | - // { | |
760 | - // auto iter = snapShotInfo.find(vehicle_keys[vc_idx]); | |
761 | - | |
762 | - // if (iter == snapShotInfo.end()) | |
763 | - // resIndex++; //cout << iter_key.videoID << " " <<iter_key.objID << " cant find" << endl; | |
764 | - // else | |
765 | - // { | |
766 | - // vehicle_result curRes = {}; | |
767 | - // if (vehicle_analysis_config == SY_CONFIG_OPEN) | |
768 | - // { | |
769 | - // //VC | |
770 | - // memcpy(&curRes.vc_res, &vcresult[resIndex], sizeof(vc_result)); | |
771 | - | |
772 | - // //VP | |
773 | - // memcpy(&curRes.vp_res, &vp_result[resIndex], sizeof(vplate_result)); | |
774 | - | |
775 | - // //VR | |
776 | - // memcpy(&curRes.vr_res, &vrresult[resIndex], sizeof(vr_result)); | |
777 | - // resIndex++; | |
778 | - // } | |
779 | - | |
780 | - // if (vcf_recg_config == SY_CONFIG_OPEN) | |
781 | - // { | |
782 | - // //if (mp_head.find(vc_idx) != mp_head.end()) | |
783 | - // { | |
784 | - // int8 * feaRes = fea[feaIndex]; | |
785 | - // memcpy(curRes.feature, feaRes, FEATURESIZE * sizeof(int8)); | |
786 | - // ++feaIndex; | |
787 | - // } | |
788 | - // } | |
789 | - | |
790 | - // snapshot_res_callback(vehicle_keys[vc_idx], &curRes); | |
791 | - | |
792 | - // int count_vehicle_size = count_vehicle_v.size(); | |
793 | - // for (vector<OBJ_KEY>::iterator iter = count_vehicle_v.begin(); iter != count_vehicle_v.end(); ) | |
794 | - // { | |
795 | - // if (iter->videoID == vehicle_keys[vc_idx].videoID && iter->objID == vehicle_keys[vc_idx].objID) | |
796 | - // iter = count_vehicle_v.erase(iter); | |
797 | - // else | |
798 | - // { | |
799 | - // ++iter; | |
800 | - // } | |
801 | - // } | |
802 | - | |
803 | - // if (count_vehicle_v.size() == count_vehicle_size) //当前hp_keys[k] 不在count_person数组里 | |
804 | - // { | |
805 | - // save_snapshot(vehicle_keys[vc_idx]); | |
806 | - // } | |
807 | - | |
808 | - // if (iter->second.snapShotLittle.frame) | |
809 | - // { | |
810 | - // cudaFree(iter->second.snapShotLittle.frame); | |
811 | - // iter->second.snapShotLittle.frame = NULL; | |
812 | - // } | |
813 | - // snapShotInfo.erase(iter);//modified by dyq | |
814 | - // } | |
815 | - // } | |
816 | - | |
817 | - // vehicle_result_v.clear(); | |
818 | - // vector<vehicle_result>().swap(vehicle_result_v); | |
819 | - | |
820 | - | |
821 | - // if (fea != nullptr) | |
822 | - // { | |
823 | - // for (int ii = 0; ii < vehicle_batch_count; ++ii) | |
824 | - // { | |
825 | - // delete[] fea[ii]; | |
826 | - // } | |
827 | - // delete[] fea; | |
828 | - // fea = nullptr; | |
829 | - // } | |
830 | - // if (vcresult != NULL) | |
831 | - // { | |
832 | - // delete[] vcresult; | |
833 | - // vcresult = NULL; | |
834 | - // } | |
835 | - | |
836 | - // if (vp_result != NULL) | |
837 | - // { | |
838 | - // delete[] vp_result; | |
839 | - // vp_result = NULL; | |
840 | - // } | |
841 | - | |
842 | - // if (vrresult != NULL) | |
843 | - // { | |
844 | - // delete[] vrresult; | |
845 | - // vrresult = NULL; | |
846 | - // } | |
847 | - | |
848 | - // if (finish_vehicle_img != NULL) | |
849 | - // { | |
850 | - // delete[] finish_vehicle_img; | |
851 | - // finish_vehicle_img = NULL; | |
852 | - // } | |
853 | - | |
854 | - // vehicle_keys.erase(vehicle_keys.begin(), vehicle_keys.begin() + vehicle_batch_count); | |
855 | - // } | |
856 | - | |
857 | - // v_analysis = V_ANALYSIS_TYPE::VC_ANALYSIS; | |
858 | - // } | |
745 | + int resIndex = 0; | |
746 | + int feaIndex = 0; | |
747 | + for (int vc_idx = 0; vc_idx < vehicle_batch_count; vc_idx++) | |
748 | + { | |
749 | + auto iter = snapShotInfo.find(vehicle_keys[vc_idx]); | |
750 | + | |
751 | + if (iter == snapShotInfo.end()) | |
752 | + resIndex++; //cout << iter_key.videoID << " " <<iter_key.objID << " cant find" << endl; | |
753 | + else | |
754 | + { | |
755 | + vehicle_result curRes = {}; | |
756 | + if (vehicle_analysis_config == SY_CONFIG_OPEN) | |
757 | + { | |
758 | + //VC | |
759 | + memcpy(&curRes.vc_res, &vcresult[resIndex], sizeof(vc_result)); | |
760 | + | |
761 | + //VP | |
762 | + memcpy(&curRes.vp_res, &vp_result[resIndex], sizeof(vplate_result)); | |
763 | + | |
764 | + //VR | |
765 | + memcpy(&curRes.vr_res, &vrresult[resIndex], sizeof(vr_result)); | |
766 | + resIndex++; | |
767 | + } | |
768 | + | |
769 | + if (vcf_recg_config == SY_CONFIG_OPEN) | |
770 | + { | |
771 | + //if (mp_head.find(vc_idx) != mp_head.end()) | |
772 | + { | |
773 | + int8 * feaRes = fea[feaIndex]; | |
774 | + memcpy(curRes.feature, feaRes, FEATURESIZE * sizeof(int8)); | |
775 | + ++feaIndex; | |
776 | + } | |
777 | + } | |
778 | + | |
779 | + snapshot_res_callback(vehicle_keys[vc_idx], &curRes); | |
780 | + | |
781 | + int count_vehicle_size = count_vehicle_v.size(); | |
782 | + for (vector<OBJ_KEY>::iterator iter = count_vehicle_v.begin(); iter != count_vehicle_v.end(); ) | |
783 | + { | |
784 | + if (iter->videoID == vehicle_keys[vc_idx].videoID && iter->objID == vehicle_keys[vc_idx].objID) | |
785 | + iter = count_vehicle_v.erase(iter); | |
786 | + else | |
787 | + { | |
788 | + ++iter; | |
789 | + } | |
790 | + } | |
791 | + | |
792 | + if (count_vehicle_v.size() == count_vehicle_size) //当前hp_keys[k] 不在count_person数组里 | |
793 | + { | |
794 | + save_snapshot(vehicle_keys[vc_idx]); | |
795 | + } | |
796 | + | |
797 | + if (iter->second.snapShotLittle.frame) | |
798 | + { | |
799 | + cudaFree(iter->second.snapShotLittle.frame); | |
800 | + iter->second.snapShotLittle.frame = NULL; | |
801 | + } | |
802 | + snapShotInfo.erase(iter);//modified by dyq | |
803 | + } | |
804 | + } | |
805 | + | |
806 | + vehicle_result_v.clear(); | |
807 | + vector<vehicle_result>().swap(vehicle_result_v); | |
808 | + | |
809 | + | |
810 | + if (fea != nullptr) | |
811 | + { | |
812 | + for (int ii = 0; ii < vehicle_batch_count; ++ii) | |
813 | + { | |
814 | + delete[] fea[ii]; | |
815 | + } | |
816 | + delete[] fea; | |
817 | + fea = nullptr; | |
818 | + } | |
819 | + if (vcresult != NULL) | |
820 | + { | |
821 | + delete[] vcresult; | |
822 | + vcresult = NULL; | |
823 | + } | |
824 | + | |
825 | + if (vp_result != NULL) | |
826 | + { | |
827 | + delete[] vp_result; | |
828 | + vp_result = NULL; | |
829 | + } | |
830 | + | |
831 | + if (vrresult != NULL) | |
832 | + { | |
833 | + delete[] vrresult; | |
834 | + vrresult = NULL; | |
835 | + } | |
836 | + | |
837 | + if (finish_vehicle_img != NULL) | |
838 | + { | |
839 | + delete[] finish_vehicle_img; | |
840 | + finish_vehicle_img = NULL; | |
841 | + } | |
842 | + | |
843 | + vehicle_keys.erase(vehicle_keys.begin(), vehicle_keys.begin() + vehicle_batch_count); | |
844 | + } | |
845 | + | |
846 | + v_analysis = V_ANALYSIS_TYPE::VC_ANALYSIS; | |
847 | + } | |
859 | 848 | |
860 | 849 | if (!vehicle_else.empty()) |
861 | 850 | { | ... | ... |