#include "../ai_platform/stl_aiplatform.h" #include #include #include #include #include using namespace std; #ifdef POST_USE_RABBITMQ void init_mq_conn(void *handle) { for (auto key : {mq_type_t::ALARM_MQ, mq_type_t::GET_TASK_MQ, mq_type_t::HEART_BEAT_MQ, mq_type_t::SCREENSHORT_TASK_MQ, mq_type_t::TIMING_SCREENSHORT_TASK_MQ}) { rabbitmq_conn_params_t mq_conn_params; mq_conn_params.port = 5672; strcpy(mq_conn_params.ip, "192.168.60.126"); strcpy(mq_conn_params.uname, "admin"); strcpy(mq_conn_params.passwd, "123456"); strcpy(mq_conn_params.vhost, "/"); strcpy(mq_conn_params.exchange, "topExchange"); strcpy(mq_conn_params.exchange_type, "topic"); // mq_conn_params.port = 5673; // strcpy(mq_conn_params.ip, "192.168.10.187"); // strcpy(mq_conn_params.uname, "admin"); // strcpy(mq_conn_params.passwd, "admin123456"); // strcpy(mq_conn_params.vhost, "/"); // strcpy(mq_conn_params.exchange, "topExchange"); // strcpy(mq_conn_params.exchange_type, "topic"); switch (key) { case mq_type_t::ALARM_MQ: { strcpy(mq_conn_params.queue, "topic.queue.alarm"); strcpy(mq_conn_params.routing_key, "topic.queue.alarm.key"); } break; case mq_type_t::GET_TASK_MQ: { strcpy(mq_conn_params.queue, "tsl.test.queue.get"); strcpy(mq_conn_params.routing_key, "tsl.test.queue.get.key"); } break; case mq_type_t::HEART_BEAT_MQ: { strcpy(mq_conn_params.queue, "tsl.test.queue.hb"); strcpy(mq_conn_params.routing_key, "tsl.test.queue.hb.key"); } break; case mq_type_t::SCREENSHORT_TASK_MQ: { strcpy(mq_conn_params.queue, "video.screenshort.queue.get"); strcpy(mq_conn_params.routing_key, "video.screenshort.queue.key"); } break; case mq_type_t::TIMING_SCREENSHORT_TASK_MQ: { strcpy(mq_conn_params.queue, "video.timingscreenshort.queue.get"); strcpy(mq_conn_params.routing_key, "video.timingscreenshort.queue.key"); } break; } mq_conn_params.durable_exchange = true; mq_conn_params.durable_queue = true; if (0 != add_mq_conn(handle, key, mq_conn_params)) // 队列走接口创建 fprintf(stderr, "ip is %s port is %d\n", mq_conn_params.ip, mq_conn_params.port); } } #endif // #ifdef POST_USE_RABBITMQ void set_task_params(task_param &tparam, const unsigned &idx, const algorithm_type_t &algor_type) { auto algor_init_params = new algor_init_config_param_t; switch (algor_type) { case algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { // basic_params->algor_valid_rect.top_ = 0; // basic_params->algor_valid_rect.left_ = 0; // basic_params->algor_valid_rect.width_ = 1920; // basic_params->algor_valid_rect.height_ = 1080; basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_nohelmet"; basic_params->result_folder_little = "res/motor_nohelmet_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->hs_count_threshold = 2; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { // basic_params->algor_valid_rect.top_ = 0; // basic_params->algor_valid_rect.left_ = 0; // basic_params->algor_valid_rect.width_ = 1920; // basic_params->algor_valid_rect.height_ = 1080; basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_overman"; basic_params->result_folder_little = "res/motor_overman_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::TRICYCLE_MANNED: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->hs_count_threshold = 1; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/tricycle_manned"; basic_params->result_folder_little = "res/tricycle_manned_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::TRUCK_MANNED: { auto algor_params = new algor_config_param_manned_incident; { // algor_params->m = 10; // algor_params->n = 8; algor_params->m = 5; algor_params->n = 5; algor_params->hs_count_threshold = 1; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/truck_manned"; basic_params->result_folder_little = "res/truck_manned_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 75; algor_params->obj_min_width = 51; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_usephone"; basic_params->result_folder_little = "res/motor_usephone_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_VEHICLE_REFIT: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 75; algor_params->obj_min_width = 51; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_refit"; basic_params->result_folder_little = "res/motor_refit_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PERSON_RUNNING_REDLIGHTS: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->hs_count_threshold = 1; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/person_runred"; basic_params->result_folder_little = "res/person_runred_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->hs_count_threshold = 0; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_runred"; basic_params->result_folder_little = "res/motor_runred_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PERSON_IN_VEHICLELANE: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/person_vehiclelane"; basic_params->result_folder_little = "res/person_vehiclelane_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_IN_VEHICLELANE: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_vehiclelane"; basic_params->result_folder_little = "res/motor_vehiclelane_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_CEOSSPARKLINE: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_crossparkline"; basic_params->result_folder_little = "res/motor_crossparkline_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PERSON_CROSS: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/person_cross"; basic_params->result_folder_little = "res/person_cross_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_WRONGDIRECTION: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 6; algor_params->obj_min_width = 32; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/motor_wrongdirection"; basic_params->result_folder_little = "res/motor_wrongdirection_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_WRONGDIRECTION: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 5; algor_params->n = 5; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 60; algor_params->obj_min_width = 60; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/vehicle_wrongdirection"; basic_params->result_folder_little = "res/vehicle_wrongdirection_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_NOTGIVEWAY: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 40; algor_params->obj_min_width = 40; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/vehicle_notgiveway"; basic_params->result_folder_little = "res/vehicle_notgiveway_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 40; algor_params->obj_min_width = 40; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/vehicle_solid_turnaround"; basic_params->result_folder_little = "res/vehicle_solid_turnaround_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_NOTDECELERATION: { auto algor_params = new algor_config_param_manned_incident; { algor_params->m = 10; algor_params->n = 8; algor_params->obj_confidence_threshold = 0.5f; algor_params->obj_min_height = 40; algor_params->obj_min_width = 40; } auto basic_params = new algor_basic_config_param_t; { basic_params->video_folder = "res/video_recode"; basic_params->result_folder = "res/vehicle_not_deceleration"; basic_params->result_folder_little = "res/vehicle_not_deceleration_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::FACE_SNAPSHOT: { auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/face"; basic_params->result_folder_little = "res/face_little"; } auto algor_params = new algor_config_param_snapshot; { algor_params->threshold = 0.5f; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::HUMAN_SNAPSHOT: { auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/human"; basic_params->result_folder_little = "res/human_little"; } auto algor_params = new algor_config_param_snapshot; { algor_params->threshold = 0.5f; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PEDESTRIAN_FALL: { auto algor_params = new algor_config_param_pedestrian_fall; { algor_params->threshold = 0.7f; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/fall"; basic_params->result_folder_little = "res/fall_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PEDESTRIAN_FIGHT: { auto algor_params = new algor_config_param_pedestrian_fight; { algor_params->threshold = 0.7f; algor_params->iou_threshold = 0.1f; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/fight"; basic_params->result_folder_little = "res/fight_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::HUMAN_GATHER: { auto algor_params = new algor_config_param_human_gather; { algor_params->frame_stride = 1; // algor_params->human_count_threshold = 3; algor_params->human_count_threshold = 1; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/gather"; basic_params->result_folder_little = "res/gather_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NO_REFLECTIVE_CLOTHING: { auto algor_params = new algor_config_param_no_reflective_clothing; { algor_params->conf_threshold = 0.3f; algor_params->m = 10; algor_params->n = 6; algor_params->pedestrian_confidence_threshold = 0.3f; algor_params->pedestrian_min_height = 0; algor_params->pedestrian_min_width = 0; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/no_reflective_clothing"; basic_params->result_folder_little = "res/no_reflective_clothing_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NO_SAFETY_HELMET: { auto algor_params = new algor_config_param_no_safety_helmet; { algor_params->conf_threshold = 0.3f; algor_params->m = 10; algor_params->n = 6; algor_params->pedestrian_confidence_threshold = 0.3f; algor_params->pedestrian_min_height = 0; algor_params->pedestrian_min_width = 0; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/no_safety_helmet"; basic_params->result_folder_little = "res/no_safety_helmet_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::CALL_PHONE_DET: { auto algor_params = new algor_config_param_call_phone; { algor_params->conf_threshold = 0.3f; algor_params->m = 2; algor_params->n = 1; algor_params->pedestrian_confidence_threshold = 0.1f; algor_params->pedestrian_min_height = 0; algor_params->pedestrian_min_width = 0; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/call_phone"; basic_params->result_folder_little = "res/call_phone_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::SMOKING_DET: { auto algor_params = new algor_config_param_smoking; { algor_params->conf_threshold = 0.3f; algor_params->m = 10; algor_params->n = 1; algor_params->pedestrian_confidence_threshold = 0.3f; algor_params->pedestrian_min_height = 0; algor_params->pedestrian_min_width = 0; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/smoking"; basic_params->result_folder_little = "res/smoking_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_SNAPSHOT: { auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/vehicle"; basic_params->result_folder_little = "res/vehicle_little"; } auto algor_params = new algor_config_param_snapshot; algor_params->threshold = 0.5f; algor_params->snap_frame_interval = 5; algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT: { auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/nonmotor"; basic_params->result_folder_little = "res/nonmotor_little"; } auto algor_params = new algor_config_param_snapshot; { algor_params->threshold = 0.5f; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::TAKEAWAY_MEMBER_CLASSIFICATION: { auto algor_params = new algor_config_param_takeaway_member_classification; { algor_params->m = 10; algor_params->n = 2; algor_params->threshold = 0.7f; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/takeaway"; basic_params->result_folder_little = "res/takeaway_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PEDESTRIAN_RETROGRADE: { // 578 1300 600 auto algor_params = new algor_config_param_pedestrian_retrograde; { algor_params->conf_threshold = 0.5f; algor_params->minmum_height = 10; algor_params->minmum_width = 10; algor_params->direction = 0; algor_params->px1 = 578; algor_params->py1 = 600; algor_params->px2 = 1300; algor_params->py2 = 600; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/pedestrian_retrograde"; basic_params->result_folder_little = "res/pedestrian_retrograde_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_RETROGRADE: { // 578 1300 600 auto algor_params = new algor_config_param_pedestrian_retrograde; { algor_params->conf_threshold = 0.5f; algor_params->minmum_height = 10; algor_params->minmum_width = 10; algor_params->direction = 0; algor_params->px1 = 578; algor_params->py1 = 600; algor_params->px2 = 1300; algor_params->py2 = 600; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/vehicle_retrograde"; basic_params->result_folder_little = "res/vehicle_retrograde_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::PEDESTRIAN_TRESPASS: { // 578 1300 600 auto algor_params = new algor_config_param_pedestrian_trespass; { algor_params->conf_threshold = 0.5f; algor_params->minmum_height = 64; algor_params->minmum_width = 32; algor_params->points_count = 4; algor_params->points[0].x_ = 200; algor_params->points[0].y_ = 200; algor_params->points[1].x_ = 600; algor_params->points[1].y_ = 200; algor_params->points[2].x_ = 600; algor_params->points[2].y_ = 500; algor_params->points[3].x_ = 200; algor_params->points[3].y_ = 500; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/pedestrian_trespass"; basic_params->result_folder_little = "res/pedestrian_trespass_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VEHICLE_TRESPASS: { // 578 1300 600 auto algor_params = new algor_config_param_vehicle_trespass; { algor_params->conf_threshold = 0.5f; algor_params->minmum_height = 64; algor_params->minmum_width = 64; algor_params->points_count = 4; algor_params->points[0].x_ = 500; algor_params->points[0].y_ = 500; algor_params->points[1].x_ = 1500; algor_params->points[1].y_ = 500; algor_params->points[2].x_ = 1500; algor_params->points[2].y_ = 900; algor_params->points[3].x_ = 500; algor_params->points[3].y_ = 900; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; basic_params->algor_valid_rect.width_ = 1920; basic_params->algor_valid_rect.height_ = 1080; basic_params->result_folder = "res/vehicle_trespass"; basic_params->result_folder_little = "res/vehicle_trespass_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VIDEO_SNAPSHOT: { auto basic_params = new algor_basic_config_param_t; { basic_params->result_folder = "res/video_snapshot"; } algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::ROAD_WORK_DET: { auto algor_params = new algor_config_param_road_work; { algor_params->frame_stride = 5; algor_params->rblock_count_threshold = 3; // algor_params->frame_stride = 1; // algor_params->rblock_count_threshold = 1; } auto basic_params = new algor_basic_config_param_t; { basic_params->algor_valid_rect.top_ = 0; basic_params->algor_valid_rect.left_ = 0; // basic_params->algor_valid_rect.width_ = 1920; // basic_params->algor_valid_rect.height_ = 1080; basic_params->algor_valid_rect.width_ = 2560; basic_params->algor_valid_rect.height_ = 1440; basic_params->result_folder = "res/road_work"; basic_params->result_folder_little = "res/road_work_little"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; case algorithm_type_t::VIDEO_TIMING_SNAPSHOT: { auto algor_params = new algor_config_param_road_work; { algor_params->frame_stride = 5; } auto basic_params = new algor_basic_config_param_t; { basic_params->result_folder = "res/video_timing_snapshot"; } algor_init_params->algor_param = algor_params; algor_init_params->basic_param = basic_params; } break; default: { if (algor_init_params != nullptr) { delete algor_init_params; algor_init_params = nullptr; } return; } break; } tparam.algor_config_params[idx].algor_type = algor_type; tparam.algor_config_params[idx].algor_init_config_param = algor_init_params; } static long long get_cur_time(){ chrono::time_point tpMicro = chrono::time_point_cast(chrono::system_clock::now()); return tpMicro.time_since_epoch().count(); } static int nTaskId = 0; string createTask(void *handle, std::vector algor_vec, int gi, bool bFlag = true){ task_param tparam; switch(gi){ case 0: tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; break; case 1: tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; break; case 2: tparam.ipc_url = "rtsp://admin:ad123456@192.168.10.166:554/cam/realmonitor?channel=1&subtype=0"; break; case 3: tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; // tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/V5nXRHa?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiMTBjZjM4N2JjY2Y5NDg3YzhjNWYzNjE2M2ViMWUyNTJ8MXwwfDEiLCJ0IjoxfQ=="; break; case 4: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 5: tparam.ipc_url = "/data/share/data/公安局老桥头_CVR15F89410_1465819864_1B.mp4"; break; case 6: tparam.ipc_url = "/data/share/data/不带头盔2.mp4"; break; case 7: tparam.ipc_url = "/data/share/data/hczr1.mp4"; break; case 8: tparam.ipc_url = "/data/share/data/燕高路口高点_CVR_2015-12-30_09-00-00_2015-12-30.mp4"; break; case 9: // tparam.ipc_url = "/opt/share/data/1-00000002d55_h265.mp4"; tparam.ipc_url = "/data/share/data/duan1.mp4"; break; case 10: tparam.ipc_url = "/data/share/data/gs1-00000001.mp4"; break; case 11: tparam.ipc_url = "/data/share/data/98.mp4"; break; case 12: tparam.ipc_url = "/data/share/data/AV_12345_1_20230108110849847_D_1673147329847729.mp4"; break; case 13: tparam.ipc_url = "/data/share/data/nx_1-00000002.mp4"; break; case 14: tparam.ipc_url = "/data/share/data/nx1-0000001.mp4"; break; case 15: tparam.ipc_url = "/data/share/data/nx1-00000002.mp4"; break; case 16: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 17: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 18: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 19: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 20: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 21: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 22: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 23: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 24: tparam.ipc_url = "/data/share/data/Street.uvf"; break; case 25: // 公安内网 tparam.ipc_url = "rtsp://192.168.51.200:8554/320202202308231001001002"; break; case 26: // FFmpeg生成的解码错误数据流 tparam.ipc_url = "rtsp://192.168.10.4:8554/street"; break; default: tparam.ipc_url = "/opt/share/data/Street.uvf"; break; } tparam.algor_counts = algor_vec.size(); tparam.dec_type = 2; if (bFlag){ nTaskId = gi; } std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); tparam.task_id = task_id_str.c_str(); nTaskId++; tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; for (size_t idx = 0; idx < algor_vec.size(); ++idx) set_task_params(tparam, idx, algor_vec.at(idx)); const int result_code = add_task(handle, tparam); if (result_code != 0) printf("[Error]: "); printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); return task_id_str; } void test_snapshot(void *handle){ task_param tparam; tparam.ipc_url = "rtsp://admin:ad123456@192.168.60.165:554/cam/realmonitor?channel=1&subtype=0"; tparam.algor_counts = 1; tparam.dec_type = 2; std::string task_id_str = "test_task_id_default" ; tparam.task_id = task_id_str.c_str(); tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; set_task_params(tparam, 0, algorithm_type_t::VIDEO_SNAPSHOT); const int result_code = screenshot_task(handle, tparam); if (result_code != 0) printf("[Error]: "); printf("--- task_id: %s result code: %d\n", tparam.task_id, result_code); } void test_gpu(int gpuID){ tsl_aiplatform_param vptParam; vptParam.gpuid = gpuID; vptParam.trt_serialize_file = ""; vptParam.models_dir = "."; vptParam.log_days = 1; vptParam.log_level = AI_LOG_LEVEL_TRACE; // vptParam.log_level = AI_LOG_LEVEL_DEBUG; vptParam.log_mem = 64 * 1024 * 1024; // 64MB. vptParam.log_path = "logs/main.log"; vptParam.vpt_thred = 0.45; vptParam.rblock_thred = 0.4; void *handle; int flag = tsl_aiplatform_init(&handle, vptParam); if (0 != flag) { printf("Init Failed! Error Code: %d\n", flag); return; } else { printf("Init Success\n"); } #ifdef POST_USE_RABBITMQ init_mq_conn(handle); #endif // #ifdef POST_USE_RABBITMQ std::vector algor_vec = {algorithm_type_t::FACE_SNAPSHOT, algorithm_type_t::HUMAN_SNAPSHOT,algorithm_type_t::ROAD_WORK_DET, algorithm_type_t::PEDESTRIAN_RETROGRADE, algorithm_type_t::VEHICLE_RETROGRADE, algorithm_type_t::PEDESTRIAN_TRESPASS, algorithm_type_t::VEHICLE_TRESPASS, algorithm_type_t::VEHICLE_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_SNAPSHOT, algorithm_type_t::VIDEO_TIMING_SNAPSHOT , algorithm_type_t::VIDEO_SNAPSHOT, algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED}; std::vector algor_vec2 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS, algorithm_type_t::PERSON_IN_VEHICLELANE, algorithm_type_t::NONMOTOR_IN_VEHICLELANE, algorithm_type_t::NONMOTOR_CEOSSPARKLINE, algorithm_type_t::PERSON_CROSS, algorithm_type_t::NONMOTOR_WRONGDIRECTION, algorithm_type_t::VEHICLE_WRONGDIRECTION, algorithm_type_t::VEHICLE_NOTGIVEWAY, algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; // std::vector algor_vec3 = {algorithm_type_t::NONMOTOR_VEHICLE_NOHELMET, algorithm_type_t::NONMOTOR_VEHICLE_OVERMAN, algorithm_type_t::TRICYCLE_MANNED, algorithm_type_t::TRUCK_MANNED, algorithm_type_t::NONMOTOR_VEHICLE_USEPHONE, // algorithm_type_t::NONMOTOR_VEHICLE_REFIT, algorithm_type_t::PERSON_RUNNING_REDLIGHTS, algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS}; std::vector algor_vec3 = {algorithm_type_t::VEHICLE_SOLIDLINETURNAROUND, algorithm_type_t::VEHICLE_NOTDECELERATION}; /* int repeat_num = 1000; while(repeat_num--) { printf("============================:%d\n",repeat_num); string task_id = createTask(handle, algor_vec, 3 + gpuID * 10); string task_id1 = createTask(handle, algor_vec2, 5); string task_id2 = createTask(handle, algor_vec2, 6); */ // string task_id = createTask(handle, algor_vec, 3 + gpuID * 10); // string task_id1 = createTask(handle, algor_vec2, 5); // createTask(handle, algor_vec, 18, false); // createTask(handle, algor_vec, 20, false); // createTask(handle, algor_vec, 20, false); // createTask(handle, algor_vec, 20, false); // createTask(handle, algor_vec, 20, false); // createTask(handle, algor_vec, 0); // createTask(handle, algor_vec, 1); // createTask(handle, algor_vec, 2); // createTask(handle, algor_vec, 3); createTask(handle, algor_vec3, 4); createTask(handle, algor_vec3, 5); createTask(handle, algor_vec3, 6); createTask(handle, algor_vec3, 7); createTask(handle, algor_vec3, 8); // createTask(handle, algor_vec3, 9); // createTask(handle, algor_vec3, 10); // createTask(handle, algor_vec3, 11); // createTask(handle, algor_vec3, 12); // createTask(handle, algor_vec3, 13); // createTask(handle, algor_vec3, 14); // createTask(handle, algor_vec3, 15); // createTask(handle, algor_vec2, 16); // createTask(handle, algor_vec2, 17); // createTask(handle, algor_vec2, 18); // createTask(handle, algor_vec2, 19); // createTask(handle, algor_vec2, 20); // createTask(handle, algor_vec2, 21); // createTask(handle, algor_vec2, 22); // createTask(handle, algor_vec2, 23); // createTask(handle, algor_vec2, 24); /* createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 0, false); createTask(handle, algor_vec, 2, false); createTask(handle, algor_vec, 2, false); createTask(handle, algor_vec, 2, false); createTask(handle, algor_vec, 2, false); createTask(handle, algor_vec, 2, false); createTask(handle, algor_vec, 2, false); /* // test_snapshot(handle); sleep(60); //60s finish_task(handle, (char*)task_id2.data(), 0); finish_task(handle, (char*)task_id1.data(), 0); }*/ while (getchar() != 'q'); // finish_task(handle, (char*)task_id.data(), 0); // finish_task(handle, (char*)task_id1.data(), 0); tsl_aiplatform_release(&handle); } int main(int argc, char *argv[]) { printf("new test\n"); // if (argc < 4) { // fprintf(stderr, "./xxx 0 2 10 1 ## [start_ai_id, end_ai_id) repeat_num gpu_id\n"); // return -1; // } // //! load params. // int start_id = atoi(argv[1]); // int end_id = atoi(argv[2]); // int repeat_num = atoi(argv[3]); // int gpuID = atoi(argv[4]); test_gpu(0); // test_gpu(1); // test_gpu(2); // test_gpu(3); while (getchar() != 'q'); printf("Done.\n"); return 0; }