/* * File: pedestrian_vehicle_trespass.hpp * Created Date: Tuesday February 22nd 2022 * Author: yangzilong (yangzilong@objecteye.com) * Description: * ----- * Last Modified: Tuesday, 22nd February 2022 4:35:04 pm * Modified By: yangzilong (yangzilong@objecteye.com>) * ----- * Copyright 2022 */ #pragma once #include "opencv2/highgui/highgui.hpp" #include #include #include #include "../util/vpc_util.h" #include "../ai_platform/task_param_manager.h" #include "ai_engine_header.h" class DeviceMemory; namespace ai_engine_module { namespace pedestrian_vehicle_trespass { class PedestrianVehicleTrespass { /** * @brief * 1. move able */ public: PedestrianVehicleTrespass(); ~PedestrianVehicleTrespass(); void pedestrianvehicletrespass_init_region(const string &task_id, const algorithm_type_t algor_type, const int width, const int height); bool update_mstreams(const std::vector &tasks_id, vector det_input_images, const std::vector &det_result, const vector> &delete_objs); vector get_results_by_id(const obj_key_t &id, bool do_erase = true); PedestrianVehicleTrespass(const PedestrianVehicleTrespass &) = delete; PedestrianVehicleTrespass &operator=(const PedestrianVehicleTrespass &) = delete; PedestrianVehicleTrespass(PedestrianVehicleTrespass &&) = default; PedestrianVehicleTrespass &operator=(PedestrianVehicleTrespass &&) = default; private: bool in_rect_analysis(const obj_key_t &id, const box_t &cur_bos); task_param_manager *task_param_manager_; std::map > obj_to_alarm_boxes_; std::map obj_to_position_; // 保存物体上一帧的位置,基于非法闯入判断逻辑,上一帧在框外,下一帧闯入禁区 std::map trespass_regions; }; } // namespace pedestrian_vehicle_trespass } // namespace ai_engine_module