82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
#ifndef __XM_FIRE_H__
|
|
#define __XM_FIRE_H__
|
|
|
|
#include "svp_comm.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define PROTO_CHANNEL 32
|
|
#define PROTO_HEIGHT 96
|
|
#define PROTO_WEIGHT 160
|
|
#define DFL_LEN 16
|
|
|
|
#define FIRE_FRAME_MAX_NUM 2
|
|
#define FIRE_SMOKE_CLASS 2
|
|
#define THRES_MIN_VAL 0
|
|
#define THRES_MAX_VAL 255
|
|
#define FIRE_THRES 10
|
|
#define SMOKE_THRES 5
|
|
#define SMOKE_RATIO_THRES 0.1f
|
|
#define TIMEOUT_THRES 1.0f
|
|
#define SMOKE_COUNT_TIMES ((1) / (2))
|
|
|
|
typedef struct {
|
|
xmedia_ive_sub_ctrl_s stSubCtrl;
|
|
xmedia_ive_dst_image_s pre_sub_img;
|
|
xmedia_ive_dst_image_s dst_sub_img;
|
|
xmedia_ive_dst_image_s dst_thre_img;
|
|
xmedia_ive_dst_image_s smoke_thre_img;
|
|
} ive_sub_attr;
|
|
|
|
typedef struct {
|
|
yolov8_detect_param* fire_info;
|
|
xmedia_svp_yolov8_output pre_result;
|
|
xmedia_svp_fire_attr fire_attr;
|
|
xmedia_u32 fire_pixel_count[FIRE_FRAME_MAX_NUM];
|
|
xmedia_u32 smoke_pixel_count[FIRE_FRAME_MAX_NUM];
|
|
|
|
xmedia_bool diff_flag;
|
|
xmedia_bool fire_alarm;
|
|
xmedia_bool smoke_alarm;
|
|
xmedia_bool smoke_gray;
|
|
|
|
xmedia_u32 mask_index;
|
|
|
|
xmedia_u32 smoke_frame_count;
|
|
xmedia_u32 smoke_bigger_frame;
|
|
xmedia_u32 smoke_loss_count;
|
|
xmedia_u32 smoke_apear_count;
|
|
xmedia_float smoke_change_ratio;
|
|
|
|
xmedia_u32 fire_loss_count;
|
|
xmedia_float fire_change_ratio;
|
|
xmedia_float fire_ratio_sum;
|
|
|
|
time_t fire_update_time; // the latest time of fire occur
|
|
time_t smoke_update_time; // the latest time of smoke occur
|
|
} svp_fire_information;
|
|
|
|
typedef struct {
|
|
svp_fire_information info;
|
|
xmedia_void *priv;
|
|
} svp_fire_context;
|
|
|
|
xmedia_s32 fire_init(xmedia_void *context, const xmedia_svp_task_cfg cfg);
|
|
|
|
xmedia_s32 fire_uninit(xmedia_void *context);
|
|
|
|
xmedia_s32 fire_set_attr(xmedia_void *context, const xmedia_svp_fire_attr *task_attr);
|
|
|
|
xmedia_s32 fire_get_attr(xmedia_void *context, xmedia_svp_fire_attr *task_attr);
|
|
|
|
xmedia_s32 fire_process(xmedia_void *context, const xmedia_svp_task_input *input, xmedia_svp_yolov8_output *output);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|