117 lines
2.4 KiB
C
117 lines
2.4 KiB
C
#ifndef __DATA_BASE__
|
|
#define __DATA_BASE__
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
#include "sqlite3.h"
|
|
#include "xmedia_type.h"
|
|
#include "xmedia_svp.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define MALLOC_FAILED 3
|
|
#define INIT_FAILED 4
|
|
#define DOT_FAILED 5
|
|
#define SQL_ERROR 6
|
|
#define MATCH_FAILED 7
|
|
#define PUSH_FAILED 8
|
|
|
|
#define SQL_COL_NUM 2
|
|
#define SQL_ROW_NUM 10
|
|
|
|
#define MAX_ROWS 30
|
|
#define MAX_COLS 512
|
|
#define MATCH_THRES 0.003
|
|
#define MAX_SIZE 1000
|
|
|
|
#define MAX_TABLE_NAME_LEN 100
|
|
|
|
#define MAX_NAME_LEN 100
|
|
#define MAX_INDEX_LEN 4
|
|
|
|
#define MAX_DB_NUM 2
|
|
|
|
#define NAME_LEN 20
|
|
#define MAX_NAME_LEN 100
|
|
#define MAX_FEATURE_LEN 10800
|
|
|
|
#define MAX_MATCH_NUM 10
|
|
|
|
typedef struct {
|
|
xmedia_double data[MAX_ROWS][MAX_COLS];
|
|
xmedia_s32 row_num;
|
|
xmedia_s32 col_num;
|
|
} matrix_data;
|
|
|
|
typedef struct {
|
|
xmedia_double data[MAX_COLS][MAX_ROWS];
|
|
xmedia_s32 row_num;
|
|
xmedia_s32 col_num;
|
|
} t_matrix_data;
|
|
|
|
typedef struct {
|
|
xmedia_double data[MAX_ROWS][MAX_ROWS];
|
|
xmedia_s32 row_num;
|
|
xmedia_s32 col_num;
|
|
} r_matrix_data;
|
|
|
|
typedef struct {
|
|
xmedia_s32 val;
|
|
xmedia_char sql_table[MAX_TABLE_NAME_LEN];
|
|
xmedia_s32 sql_col_num;
|
|
|
|
xmedia_s32 matrix_row_num;
|
|
xmedia_s32 matrix_col_num;
|
|
xmedia_char *file_name;
|
|
xmedia_double match_thres;
|
|
} config_info;
|
|
|
|
typedef struct {
|
|
matrix_data *o_matrix;
|
|
t_matrix_data *t_matrix;
|
|
r_matrix_data *r_matrix;
|
|
} face_feature_db;
|
|
|
|
typedef struct {
|
|
xmedia_char *add_person_name;
|
|
xmedia_double add_person_feature[MAX_COLS];
|
|
} add_person_info;
|
|
|
|
typedef struct {
|
|
xmedia_s32 face_num;
|
|
xmedia_s32 match_num;
|
|
xmedia_s32 match_col[MAX_MATCH_NUM];
|
|
xmedia_char match_name[MAX_MATCH_NUM][MAX_NAME_LEN];
|
|
} db_match_result;
|
|
|
|
typedef struct {
|
|
sqlite3* sql3_db;
|
|
face_feature_db *feature_db;
|
|
xmedia_bool use_flag;
|
|
xmedia_bool db_empty_flag;
|
|
xmedia_double match_thres;
|
|
xmedia_char *filepath;
|
|
} db_attr;
|
|
|
|
xmedia_s32 svp_init_database(db_attr **fr_db_attr, config_info *cfg);
|
|
|
|
xmedia_s32 svp_deinit_database(db_attr *fr_db_attr);
|
|
|
|
xmedia_s32 svp_get_match_result(db_attr *fr_db_attr, xmedia_svp_fr_output *face_matrix, db_match_result *result);
|
|
|
|
xmedia_s32 svp_add_someone_to_database(db_attr *fr_db_attr, add_person_info *person_info);
|
|
|
|
xmedia_s32 svp_delete_someone_from_database(db_attr *fr_db_attr, xmedia_char *name);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|