DFace SDK  2.0.0
LTM
DfaceDB类 参考abstract

DFaceDB人脸数据库API抽象层(DfaceDB) 非关系nosql人脸数据库(单文件),支持动态添加属性,适应任意应用场景,内置图灵完备微内核虚拟机,支持脚本导入导出数据 更多...

#include <dface_database.h>

Public 成员函数

virtual bool openDB (const std::string &db_file)=0
 
virtual bool closeDB ()=0
 
virtual bool dbExsitCollection (const string &collection_name)=0
 
virtual bool dbCreateCollection (const string &collection_name)=0
 
virtual int insertFace (const std::string &collection_name, const std::vector< float > &feature, const std::string &additional_json_str="")=0
 
virtual int fetchFaceById (const std::string &collection_name, const int id, std::vector< float > &out_feature, std::string &out_json_str)=0
 
virtual bool deleteFaceById (const std::string &collection_name, const int id)=0
 
virtual int fetchAllFace2Memory (const std::string &collection_name, std::vector< int > &out_idx, std::vector< std::vector< float >> &out_feature, std::string condition_func_str="")=0
 
virtual int totalCollectionRecord (const std::string &collection_name)=0
 
virtual int insert (const std::string &collection_name, const std::string &json_str)=0
 
virtual int fetchById (const std::string &collection_name, const int id, std::string &out_json_str)=0
 
virtual bool deleteById (const std::string &collection_name, const int id)=0
 
virtual int fetchAll (const std::string &collection_name, std::vector< std::string > &out_json, std::string condition_func_str="")=0
 

详细描述

DFaceDB人脸数据库API抽象层(DfaceDB) 非关系nosql人脸数据库(单文件),支持动态添加属性,适应任意应用场景,内置图灵完备微内核虚拟机,支持脚本导入导出数据

成员函数说明

virtual bool DfaceDB::closeDB ( )
pure virtual

关闭数据库

返回
是否关闭成功
注解
(程序退出,关闭数据库)
virtual bool DfaceDB::dbCreateCollection ( const string &  collection_name)
pure virtual

在数据库中创建集合(数据表)

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
返回
是否创建成功
注解
()
virtual bool DfaceDB::dbExsitCollection ( const string &  collection_name)
pure virtual

查询数据库是否存在某个集合(数据表)

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
返回
是否存在
注解
()
virtual bool DfaceDB::deleteById ( const std::string &  collection_name,
const int  id 
)
pure virtual

删除数据

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]id数据id
返回
是否删除成功
注解
()
virtual bool DfaceDB::deleteFaceById ( const std::string &  collection_name,
const int  id 
)
pure virtual

删除人脸数据

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]id人脸id(插入数据库返回的id)
返回
是否删除成功
注解
()
virtual int DfaceDB::fetchAll ( const std::string &  collection_name,
std::vector< std::string > &  out_json,
std::string  condition_func_str = "" 
)
pure virtual

查询某个集合的所有记录

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[out]out_json[out]输出的json字符串数组
[in]condition_func_str条件查询函数脚本字符串
脚本类似于PHP,一般通用格式:
function($rec){ if( $rec.__id == 800 ){ return TRUE; } return FALSE; }
返回
加载记录数
注解
()
virtual int DfaceDB::fetchAllFace2Memory ( const std::string &  collection_name,
std::vector< int > &  out_idx,
std::vector< std::vector< float >> &  out_feature,
std::string  condition_func_str = "" 
)
pure virtual

从数据库加载某个集合的所有人脸数据到内存中

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[out]out_idx[out]输出的人脸id数组
[out]out_feature[out]输出的人脸特征数组
[in]condition_func_str条件查询函数脚本字符串
脚本类似于PHP,一般通用格式:
function($rec){ if( $rec.__id == 800 ){ return TRUE; } return FALSE; }
返回
加载记录数
注解
()
virtual int DfaceDB::fetchById ( const std::string &  collection_name,
const int  id,
std::string &  out_json_str 
)
pure virtual

查询数据

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]id数据id
[out]out_feature[out]输出的的人脸特征
[out]out_json_str[out]输出的json字符串
返回
查询返回的条数
注解
(如果返回0,则表示查询结果为空)
virtual int DfaceDB::fetchFaceById ( const std::string &  collection_name,
const int  id,
std::vector< float > &  out_feature,
std::string &  out_json_str 
)
pure virtual

查询人脸数据

参数
collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]id人脸数据id(插入数据库返回的id)
[out]out_feature[out]输出的的人脸特征
[out]out_json_str[out]输出的json字符串
返回
查询返回的条数
注解
(如果返回0,则表示查询结果为空)
virtual int DfaceDB::insert ( const std::string &  collection_name,
const std::string &  json_str 
)
pure virtual

插入数据

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]json_str数据json字符串,系统会自动解析json字符串,以动态字段的形式添加到集合中
例如: {"name":"xiaokong", "age":25, "sex": 0}
c/c++ json库推荐 ArduinoJson (https://github.com/bblanchon/ArduinoJson), 非常适合嵌入式物联网的json库
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(json);
const char* sensor = root["sensor"];
long time = root["time"];
返回
返回插入数据库后对应的id
注解
(如果返回-1,则表示插入失败)
virtual int DfaceDB::insertFace ( const std::string &  collection_name,
const std::vector< float > &  feature,
const std::string &  additional_json_str = "" 
)
pure virtual

插入人脸数据

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
[in]feature人脸特征(512或128个浮点数)
[in]additional_json_str额外的json字符串,系统会自动解析json字符串,以动态字段的形式添加到集合中
例如: {"name":"xiaokong", "age":25, "sex": 0}
c/c++ json库推荐 ArduinoJson (https://github.com/bblanchon/ArduinoJson), 非常适合嵌入式物联网的json库
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(json);
const char* sensor = root["sensor"];
long time = root["time"];
返回
返回插入数据库后对应的id
注解
(如果返回-1,则表示插入失败)
virtual bool DfaceDB::openDB ( const std::string &  db_file)
pure virtual

打开数据库

参数
[in]db_file数据库文件路径
返回
是否打开成功
注解
(如果数据库文件不存在,系统会自动创建)
virtual int DfaceDB::totalCollectionRecord ( const std::string &  collection_name)
pure virtual

查询某个集合的总记录数

参数
[in]collection_name集合名称(类似于数据表),可以任意字符串,例如 white_list(白名单), black_list(黑名单), vip等
返回
总记录数
注解
()

该类的文档由以下文件生成: