Blame view

src/reprocessing_module/snapshot_reprocessing.h 3.4 KB
09c2d08c   Hu Chunming   arm交付版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
  /*
   * @Author: yangzilong
   * @Date: 2021-12-17 20:27:57
   * @Last Modified by: yangzilong
   * @Email: yangzilong@objecteye.com
   * @Description:
   */
  #pragma once
  
  #include "../ai_platform/det_obj_header.h"
  #include <vector>
  #include <string>
  #include <map>
  #include <bitset>
  #include "../ai_platform/task_param_manager.h"
  #include "../ai_platform/header.h"
  #include "../util/vpc_util.h"
  
  // #define EXPANSION_PROPORTION 0.1
  #define EXPANSION_PROPORTION 0.25 
  #define FACE_EXPANSION_PROPORTION 0.5
  #define IMG_CHANNELS 3
  
  using namespace std;
  
  class DeviceMemory;
  
  typedef struct multi_obj_data_t{
  	long long id;
  	DeviceMemory *memPtr;
  	std::vector<video_object_info> objs;
  	string task_id;
  } multi_obj_data_t;
  
  
  struct OBJ_VALUE {
  	bool finishTracker;  //轨迹结束可以保存了
  	int frameCount;
  	bool isupdate;
  	int lost;
  	vpc_img_info snapShot;
  	vpc_img_info snapShotLittle;
  	sy_rect obj_pos;
  	double confidence;	   		//	置信度
  	float last_area;
  	float max_area;
  	OBJ_INDEX index;
  
  	bitset< EDGESIZE >  flags;   //标志位,标记快照框应该如何判断,left:0  top:1  right:2  bottom:3
  	sy_point landmark_point[25];//人脸关键点位置信息
  	sy_rect position;  			//检测实际目标框
  	//-added by zsh 220719 人脸姿态角-
  	float roll = 0.0; 
  	float yaw = 0.0;												
  	float pitch = 0.0;
  	//-------------------------------
e7cda3c8   Zhao Shuaihua   增加轨迹多图缓存、抓拍
57
  };
09c2d08c   Hu Chunming   arm交付版
58
  
e7cda3c8   Zhao Shuaihua   增加轨迹多图缓存、抓拍
59
60
61
  struct OBJ_VALUES {
  	OBJ_VALUE snapShots[3]; //缓存三张抓拍图 0-轨迹首张 1-轨迹最佳 2-轨迹末张
  	bool exists[3] = {false, false, false}; //标识对应抓拍图是否存在
09c2d08c   Hu Chunming   arm交付版
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
  };
  
  class snapshot_reprocessing
  {
  public:
  	//更新最优快照
  	snapshot_reprocessing(int devId);
  	~snapshot_reprocessing();
  
  	vector<multi_obj_data_t> get_vehicle_snapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result>& ol_det_result, int skip_frame);
  
  	void screen_effective_snapshot(vector<onelevel_det_result> &_onelevel_det_result);
  	void filter_vehicle(vector<onelevel_det_result> &_onelevel_det_result);
  
  	void update_bestsnapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result> &ol_det_result, vector<vector<int>>& delete_object_id);
  	map<OBJ_KEY, OBJ_VALUE> get_total_snapshot_info();
  
  	int update_face_bestsnapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result> &ol_det_result, vector<vector<int>>& delete_object_id);
  	map<OBJ_KEY, OBJ_VALUE> get_total_face_snapshot_info();
  
2c2868df   Zhao Shuaihua   结果整理,推送抓拍图
82
  	void update_village_bestsnapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result> &ol_det_result, vector<vector<int>>& delete_object_id);
e7cda3c8   Zhao Shuaihua   增加轨迹多图缓存、抓拍
83
  	map<OBJ_KEY, OBJ_VALUES> get_total_village_snapshot_info();
2c2868df   Zhao Shuaihua   结果整理,推送抓拍图
84
  
28ca1c66   Zhao Shuaihua   代码优化
85
86
  	void release_finished_locus_snapshot(const string taskid, const int objid = -1, bool bRelease = true);   //-1为删除该路所有任务的快照图
  	void release_village_finished_locus_snapshot(const string taskid, const int objid = -1, bool bRelease = true);
09c2d08c   Hu Chunming   arm交付版
87
88
89
90
91
92
93
94
  
  private:
  	bool best_snapshot_judge_algor(const OBJ_KEY& obj_key, const OBJ_VALUE& obj_value, int left, int top, int width, int height, int image_width, int image_height);
  	bool best_face_snapshot_judge_algor_v2(const OBJ_KEY& obj_key, const OBJ_VALUE& obj_value, int left, int top, int width, int height, int image_width, int image_height, float roll, float yaw, float pitch);
  
  private:
  	map<OBJ_KEY, OBJ_VALUE> total_snapshot_info;
  	map<OBJ_KEY, OBJ_VALUE> total_face_snapshot_info;
e7cda3c8   Zhao Shuaihua   增加轨迹多图缓存、抓拍
95
  	map<OBJ_KEY, OBJ_VALUES> total_village_snapshot_info;
09c2d08c   Hu Chunming   arm交付版
96
97
98
99
  
  	map<string, set<int>> algor_index_table;
  	task_param_manager *m_task_param_manager;
  };