0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
1
2
3
4
5
6
7
8
9
10
11
|
/*
* @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>
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
12
13
14
15
16
|
#include <string>
#include <map>
#include <bitset>
#include "../ai_platform/task_param_manager.h"
#include "../ai_platform/header.h"
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
17
|
#include "../util/vpc_util.h"
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
18
19
20
21
22
23
|
// #define EXPANSION_PROPORTION 0.1
#define EXPANSION_PROPORTION 0.25
#define FACE_EXPANSION_PROPORTION 0.5
#define IMG_CHANNELS 3
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
24
|
using namespace std;
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
25
26
27
28
29
30
31
32
33
34
|
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;
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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;
//-------------------------------
|
8072fc32
Hu Chunming
代码同步初步完成,人脸检测模型还不兼容
|
57
|
};
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
58
|
|
8072fc32
Hu Chunming
代码同步初步完成,人脸检测模型还不兼容
|
59
60
61
|
struct OBJ_VALUES {
OBJ_VALUE snapShots[3]; //缓存三张抓拍图 0-轨迹首张 1-轨迹最佳 2-轨迹末张
bool exists[3] = {false, false, false}; //标识对应抓拍图是否存在
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
62
63
|
};
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
64
65
66
67
|
class snapshot_reprocessing
{
public:
//更新最优快照
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
68
69
|
snapshot_reprocessing(int devId);
~snapshot_reprocessing();
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
70
71
72
|
vector<multi_obj_data_t> get_vehicle_snapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result>& ol_det_result, int skip_frame);
|
9b4d4adf
Hu Chunming
添加定时抓拍;
|
73
74
|
void screen_effective_snapshot(vector<onelevel_det_result> &_onelevel_det_result);
void filter_vehicle(vector<onelevel_det_result> &_onelevel_det_result);
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
75
76
77
78
|
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();
|
8072fc32
Hu Chunming
代码同步初步完成,人脸检测模型还不兼容
|
79
80
81
82
83
84
85
86
87
|
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();
void update_village_bestsnapshot(vector<DeviceMemory*> vec_devMem, vector<onelevel_det_result> &ol_det_result, vector<vector<int>>& delete_object_id);
map<OBJ_KEY, OBJ_VALUES> get_total_village_snapshot_info();
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);
void release_finished_face_locus_snapshot(const string taskid, const int objid = -1, bool bRelease = true);
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
88
89
90
|
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);
|
8072fc32
Hu Chunming
代码同步初步完成,人脸检测模型还不兼容
|
91
|
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);
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
92
|
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
93
|
private:
|
d7bafd67
Hu Chunming
添加最优快照截取模式
|
94
|
map<OBJ_KEY, OBJ_VALUE> total_snapshot_info;
|
8072fc32
Hu Chunming
代码同步初步完成,人脸检测模型还不兼容
|
95
96
|
map<OBJ_KEY, OBJ_VALUE> total_face_snapshot_info;
map<OBJ_KEY, OBJ_VALUES> total_village_snapshot_info;
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
97
98
99
|
map<string, set<int>> algor_index_table;
task_param_manager *m_task_param_manager;
|
0b4cd5d5
Hu Chunming
完成轨迹定时抓拍
|
100
|
};
|