倚老卖老什么意思| 澈字五行属什么| 西游记主题曲叫什么| 孕妇用什么牙膏比较好| 脚痛什么原因引起的| 心电图窦性心动过缓是什么意思| 喝豆浆拉肚子什么原因| 将军指什么生肖| 生源地是什么意思| 娇韵诗属于什么档次| 7月18日什么星座| 哮喘是什么| 气血两虚是什么意思| 六月六是什么节日| 人体缺钾是什么症状| 静脉曲张什么症状| 为什么睾丸一边大一边小| 女生喜欢吃酸说明什么| 62年属什么| 一个山一个鬼念什么| 社日是什么意思| 十月份是什么季节| 爱豆是什么意思| 上火嗓子疼吃什么药| 薄荷泡水喝有什么好处| 为什么会心梗| 牙齿疼是什么原因引起的| 犀利是什么意思| 劳苦功高是什么意思| 什么样子| 脚腕筋疼是什么原因| 人的脾脏起什么作用| 长期熬夜有什么危害| 桂圆什么时候成熟| 为什么会得玫瑰糠疹| 为什么吃辣的就拉肚子| 玩得什么| 四九城是什么意思| 肺部有阴影是什么原因| 户籍信息是什么| 四大发明有什么| 湿疹是什么原因造成的| 肠胃感冒吃什么药最好| 腰间盘膨出和突出有什么区别| 梦见自己准备结婚是什么意思| 杨紫属什么生肖| 沙雕是什么意思| 河南有什么特产| 什么叫增值税| 宇五行属性是什么| 徒劳无功是什么意思| 宫腔镜是检查什么的| 乙肝表面抗原携带者什么意思| 调御丈夫是什么意思| 妊娠高血压什么症状| 手指甲紫色是什么原因| 什么是丹毒| 后装治疗是什么意思| 红是什么生肖| 长期做梦是什么原因| 经常耳鸣是什么原因引起的| 梦见狮子是什么预兆| 六畜兴旺是什么生肖| 什么是超纤皮| 息风止痉是什么意思| 爱情公寓6什么时候上映| 牛奶什么时候喝好| 相性是什么意思| 咖啡有什么好处和坏处| 球蛋白的功效与作用是什么| 低压高什么症状| 月经期间同房有什么危害| kda是什么单位| 洗牙为什么要验血| 什么情况下会得荨麻疹| 听吧新征程号角吹响是什么歌| 什么是交际花| 梦见棉花是什么意思| abc是什么药| 唐朝以后是什么朝代| 好强的女人是什么性格| 剧透是什么意思| 酸枣仁配什么治疗失眠| 冷的什么| 窦缓是什么意思| 苦口婆心是什么生肖| 花枝招展是什么意思| 腿肿脚肿是什么原因引起的| 中国最厉害的武器是什么| 英语介词是什么意思| 职业测试你适合什么工作| 排卵期一般在什么时候| 肺部炎症用什么药最好| 腮腺炎的症状是什么| 肝脏是什么功能| 可吸收线是什么颜色| 咳嗽吃什么水果好| 用凝胶排出豆腐渣一样的东西是什么原因| 阴唇肥大有什么影响| 为什么喝中药越来越胖| 女性提高免疫力吃什么| 樱花什么时候开花| 无印良品属于什么档次| 为什么来姨妈会拉肚子| 猫头鹰属于什么科| 3月12是什么星座| 检查贫血做什么检查| 男朋友过生日送什么礼物最有意义| 析是什么意思| 头晕呕吐吃什么药| 天指什么生肖| 维生素D有什么食物| 嘴唇发紫是什么原因引起的| 十月底是什么星座| 18岁属什么生肖| 守字五行属什么| 嘴角边长痘痘是什么原因| 间质瘤是什么性质的瘤| 10个月的宝宝吃什么辅食最好| 葳是什么意思| pre什么意思| 大腿淤青是什么原因| 维c吃多了有什么副作用| 新百伦鞋子什么档次| 犬吠是什么意思| 四川有什么好玩的| 恶魔是什么意思| top1什么意思| 湿气重是什么原因引起的| 景气是什么意思| 萎缩性胃炎可以吃什么水果| 牛肉和什么炒最好吃| alaska是什么意思| 怀孕了吃什么| 911是什么电话| 痄腮是什么意思| 疼和痛有什么区别| 站桩有什么好处| 十月是什么月| 8月2日是什么星座| 闭门思过是什么意思| 乳酪是什么东西| 绿茶用什么茶具泡好| 改朝换代是什么意思| 喝酒前吃什么| 无间是什么意思| 心脏检查挂什么科| 太阳穴凹陷是什么原因| 河蟹吃什么食物| c2是什么意思| 棘手是什么意思| 9月20号是什么星座| 雄五行属什么| 发烧骨头疼是什么原因| 三月20号是什么星座| 七月开什么花| 王力是什么字| 被告不出庭有什么后果| 试孕纸什么时候测最准| 一日三餐是什么意思| 211和985是什么意思| 干你什么事| 天刑是什么意思| 713是什么星座| 现在有什么赚钱的路子| 血管炎不能吃什么食物| 肾结石能吃什么| 助产学是干什么的| 当今社会什么行业前途比较好| 浅蓝色裙子配什么颜色上衣好看| 生活质量是什么意思| 鼻炎吃什么药| 不遗余力的遗是什么意思| 音爆是什么| 右肺上叶为什么恶性多| 月经不调去医院要做什么检查| 女性肾功能不好有什么症状| 磋商是什么意思| 天灾人祸什么意思| 溢脂性皮炎用什么药| 猪肉馅饺子配什么菜| 磨砂皮是什么皮| 水由什么组成| 垂直同步有什么用| 辛是什么味道| 丙五行属什么| b2c模式是什么意思| 大腿正面是什么经络| ins是什么软件| 立场是什么意思| 总胆固醇高有什么危害| 脱臼是指什么从什么中滑脱| 29周岁属什么生肖| 神经系统是由什么组成的| 国家专项是什么意思| 女生排卵期是什么时候| 南极和北极有什么区别| 大姨妈来了不能吃什么东西| 自求多福什么意思| 凸起的痣是什么痣| dic是什么意思| 怀孕第一天有什么症状| 老头疼是什么原因导致的| 阉鸡是什么鸡| 50年是什么婚姻| 月经不调是什么原因| 所以我求求你别让我离开你是什么歌| 明是什么生肖| 什么止咳效果最好最快| 林冲为什么叫豹子头| 7月18日是什么日子| 鼻塞吃什么药| 头皮发麻是什么原因| 什么药可以延长时间| 三分三是什么药| 尿酸ua偏高是什么意思| 什么人从来不看医生| 什么电视剧好看| 4.28是什么星座| 舒化奶适合什么人喝| 鹭鸶是什么动物| 红薯的别名叫什么| 测测你天生靠什么吃饭| 双是什么意思| 现实是什么意思| 来姨妈不能吃什么水果| 素股是什么意思| 血糖高的人吃什么主食| 酱油什么时候发明的| 手足口病吃什么药好得快| 部分空蝶鞍是什么意思| 小儿支气管炎咳嗽吃什么药好得快| 赵本山是什么学历| 什么是体外射精| 阴道发热是什么原因| 生抽是什么| ec是什么意思| 穿刺手术是什么意思| 侍郎是什么官| 结节低回声是什么意思| 梦到前女友是什么意思| 血卡是什么| 解脲支原体阳性是什么病| 91年出生属什么生肖| kaiser是什么品牌| 脑内小缺血灶是什么意思| 慢性鼻炎用什么药| 癣用什么药膏| 什么是头七| 黑玫瑰代表什么意思| 查肾结石挂什么科| 皮肤变黄是什么原因| 白眼球有红血丝是什么原因| 前列腺炎吃什么消炎药好| 女性分泌物发黄是什么原因| 手指甲有竖纹是什么原因| 肝在什么位置图片| 月经量少是什么原因啊| 骨化性肌炎是什么病| 特别想睡觉是什么原因| 大便出血是什么原因| 人性是什么意思| 男生喜欢什么礼物| 子宫是什么| 百度
资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

重庆一学校无垃圾桶 每个学生书包都携带环保袋

版本日志

版本 日期 更新说明
v1.0.0 2018.09.21 Linux SDK初版,包括离线人脸采集、特征抽取、人脸比对、人脸属性等功能

目录

1、简介
   1.1 产品概述
   1.2 规格信息
   1.3 兼容性
   1.4 授权方式
   1.5 产品定价
2、SDK详细介绍
   2.1 名词解释
   2.2 SDK简介
   2.3 SDK文件结构
   2.4 激活工具
   2.5 Demo示例工程
   2.6 特征抽取模型选择
3、功能接口
   3.1 人脸检测及设置
       3.1.1 人脸检测track接口(传入图片)
       3.1.2 人脸检测track接口(传入二进制图片buffer)
       3.1.3 人脸检测track_max_face接口
       3.1.4 人脸检测track_max_face接口(传入二进制图片buffer)
       3.1.5 人脸检测设置接口
       3.1.6 USB摄像头检测
       3.1.7 人脸检测track接口(传入opencv的mat)
   3.2 人脸对比及识别接口
       3.2.1 人脸对比接口
       3.2.2 人脸对比接口(传入二进制图片buffer)
   3.3 特征值提取接口
       3.3.1 特征值提取接口(通过传入图片)
       3.3.2 特征值提取接口(通过传入二进制图片buffer)
       3.3.3 特征值提取接口(通过传入opencv的视频帧)
       3.3.4 特征值比对接口
   3.4 属性及质量接口
   	   3.4.1 人脸属性(通过传入图片)
   	   3.4.2 人脸属性(通过传入二进制图片buffer)
   	   3.4.3 人脸质量接口(通过传入图片)
   	   3.4.4 人脸质量接口(通过传入二进制图片buffer)
4、错误码及错误信息
5、常见问题

1、简介

1.1 产品概述

人脸离线识别SDK,包含人脸采集、活体检测、人脸对比/识别、人脸库管理等能力,并全部离线化、本地化。此SDK一经授权激活,可完全在无网环境下工作,所有数据皆在设备本地运行处理,可根据业务需要进行灵活的上层业务开发。核心能力分布如下图所示,后文会详细介绍。

适用场景特点

  • 网络:无网、局域网等情况,无法连接公网。如政府单位、金融保险、教育机构等。
  • 安全:行业特点所带来的人脸数据敏感性,即使可以连接公网也不可请求。
  • 速度:由于各地网络线路、机房部署等诸多原因,网络请求速度存在不可控因素。
  • 稳定:需要尽可能避免网络抖动、机房故障等影响,进一步控制可用性影响因素。

1.2 规格信息

  • 包大小:~500M
  • 最小人脸检测大小:50px * 50px
  • 可识别人脸角度:yaw ≤ ±30°, pitch ≤ ±30°
  • 检测速度:100ms 720p*
  • 追踪速度:30ms 720p*
  • 人脸检测耗时:~= 100ms

备注:以上指标,由最新版SDK运行在真实设备上,采用真实数据集所得,但算法性能受实际运行设备、实际数据集等情况影响,以上数字仅供参考。

  • 提供一个鉴权激活工具:tool_ubuntu.sh、tool_centos.sh,可根据平台选择对应的sh文件运行

1.3 兼容性

  • Centos6.3 gcc4.8.2 以及 Ubuntu16.04 gcc5.4.0上编译
  • 推荐基于vs2015进行开发

1.4 授权方式

按设备授权

离线识别SDK授权方式为以设备维度为主,每台硬件设备需要一个独立的授权,此授权的校验是基于设备的硬件指纹(指纹的获取SDK初始化时会自动读取并展示),被授权的设备,将在有效期内可以运行SDK。

重新拉取授权的情况:设备授权不变,仅需要重新激活而已。

  • 删除SDK或基于SDK开发的应用
  • 重新安装Windows系统

授权失效的情况:需要重新购买序列号,之前的序列号失效。

  • 激活一台设备后,此设备硬件变更
  • 硬件损坏

序列号

序列号为管理授权的依据。每台被授权的设备,都将对应一个序列号,用于标识对应的设备信息及授权记录。序列号的形式为16位随机英文数字组合,如:3G59-M5JK-889A-7LQA。您在管理后台购买SDK授权时,购买成功后系统将会发放对应数量的序列号。序列号不限制平台版本,任何开发平台的离线SDK,都可以使用此序列号激活。序列号不限制账号,可供任何设备激活使用。

激活

已购买的序列号,是用于激活的唯一凭证,激活流程主要是将序列号与具体的硬件进行绑定(硬件指纹),从而生成对应硬件设备的授权文件(License),SDK运行前,将会校验授权文件是否和实际硬件信息相匹配。

注意:激活时,设备系统时间需要和当前时间一致,如果差距太大(例如偏差5min以上),激活则无法完成。

联网激活

此种激活方式,适用于设备可首次联网的情况,优势在于激活过程极为简单。您只需将SDK安装到需要激活的设备上,然后填写已经购买的序列号,在界面上点击激活即可(为使用方便,我们为您设计了一个简单的激活用户界面)

  1. 获取序列号:从管理后台购买获取序列号。
  2. SDK中填写序列号:将序列号填写到SDK的可视化界面中。
  3. 启动激活:点击「激活」按钮。
  4. SDK自动激活:SDK自动拉取授权文件并完成授权,激活完毕。

如激活成功,将会立即在界面上有明确的弹窗提示,请留意查看;如激活失败,也会反馈具体的错误信息。

离线激活

此种激活方式,适用于设备完全不可联网的情况,优势在于可避免联网激活,满足业务对网络的严格要求,以及设备批量注册需求。您需要在后台配置好硬件指纹并完成和序列号的绑定,然后将授权文件放到SDK的指定位置。

  1. 获取序列号:从管理后台购买获取序列号。
  2. 采集硬件指纹:将SDK置于设备上,运行激活程序,获取硬件指纹。
  3. 配置授权:在后台将硬件指纹绑定到具体序列号上。
  4. 下载授权文件:绑定成功后下载授权文件。
  5. 设备激活:将授权文件放到SDK中,并初始化SDK完成授权。

授权有效期

申请通过后,每个账户给2个测试序列号,用于激活及SDK试用,有效期为自激活日期后的3个月。这两个序列号在有效期内完全免费,您可以用于进行产品试用。试用期到期后也可以在后台申请延期,填写具体延期理由即可。

正式购买

正式购买的序列号,试用期限为永久有效。此「永久」是指绑定到具体设备维度,但如已绑定的硬件设备变更后,授权则可能会失效。

1.5 定价方式

离线SDK的授权基于设备维度,每个序列号仅可以授权一台设备。每个账号购买的序列号会累计计算,累计购买量越多,单价越便宜。具体如下所示:

累计购买授权数量 每个授权单价
0~1000 299元/个
1001~5000 249元/个
>5000 199元/个

立即去购买

2、SDK详细介绍

2.1 名词解释

名词 定义
SDK Linux离线人脸识别sdk
gcc Linux平台下c++代码编译器
License 人脸识别激活所需要的激活文件,可利用激活工具生成
key 人脸激活所需的序列号,可从百度官网申请及购买(ai.baidu.com)
feature 人脸特征值,用来表示人脸特征的512个浮点值
face_token 对应人脸图片的唯一编码,若一个人上传了2张不同图片,则可能有2个不同的face_token,它和图片一一对应

2.2 SDK简介

本SDK适应于Linux(Centos、Ubuntu)平台下的人脸识别系统,分别在Centos6.3 gcc4.8.2 以及Ubuntu16.04 gcc5.4.0上编译(其他版本或平台的linux不保证兼容)。SDK采用动态库so方式提供给开发者,另外随sdk附带一个鉴权激活工具(可运行脚本 tool-ubuntu.sh或tool-centos运行,这2文件分别对应不同的OS),通过该激活工具可生成正常接入SDK的激活license文件(生成两个文件license.ini和license.key)达到通过鉴权,正常使用SDK的目的。

2.3 SDK文件结构

Sdk提供动态库BaiduFaceApi.so及头文件baidu_face_api.h。另外有附带的demo例子代码test-face-api以及鉴权激活工具tool。在此之外,还附带支撑sdk使用的人脸识别模型文件等在文件夹face-resource中,该文件夹在test-face-api例子工程里面(该文件夹存放路径请参考test-face-api,默认存放路径为您要开发的可执行文件路径同一目录下。若存放不对,可能会影响sdk正常使用,另外请勿删除该文件夹)。

为运行您开发的可执行文件,需要用到一些底层的库文件支持,相关库文件在test-face-api的lib3目录中(主要有opencv库,ffmpeg库,json,curl库等)。此外,随工程还有一些编译用的Makefile文件及sh脚本文件等,可通过Makefile编译工程,sh脚本文件运行编译的可执行文件。Makefile文件分别命名为Makefile_centos6.3及Makefile_ubuntu,若要编译相应平台版本,请把他重命名为Makefile。

2.4 激活工具(tool)

在百度官网申请系列号Key后,在test-face-api工程下有个tool_ubuntu.sh和tool_centos.sh。可根据您的OS平台选择对应sh文件运行,在运行之前,先修改脚本文件的最后一行,把如05QU-ATMA-SCWY-CAUB字样的key修改为您在百度官网申请到的key,然后再运行sh脚本文件(若是centos平台,输入sh tool_centos.sh即可)。激活成功后会在激活目录生成license.ini以及license.key文件,这2个文件是作为sdk通过鉴权使用的配置文件,请勿删除。

如果你不方便使用网络,可以通过离线激活进行操作:

通过如上的激活工具,获取到设备指纹信息,通过序列号管理后台找到需要绑定的序列号,选择「离线激活」,填入指纹设备信息,即可下载获取到license.ini文件和license.key文件,把这2个文件拷贝到test-face-api目录下,运行可执行文件亦可通过鉴权。

2.5 Demo示例工程

Demo示例工程代码在test-face-api中的cpp目录里面,其中的test_face.cpp里面有入口方法main(),展示了如何集成百度人脸识别离线SDK。即正确编写Makefile文件及引入头文件include以及对应的一些库文件。另外为了示例视频人脸跟踪等,用到了一些opencv的库文件以及一些实现demo的支持文件,如json等。(这些支持文件均为代码开源或是开源库)

在test-face-api中的test_face.cpp的main()方法中,有使用sdk的各个接口方法示例。接入sdk及其简单,分3步3行代码。如下:

BaiduFace *api = new BaiduFaceApi(); 
// 第一步:实例化人脸SDK

api->sdk_init();                     
// 第二步:初始化人脸SDK

std::string res = api->face_attr(“方法的传入参数,此处省略”);
// 第三步,调用功能接口,user_add为人脸注册接口,res为调用功能接口后的返回。

如上,即为调用sdk功能的最简单3步3行代码,当然调用SDK后,在程序退出后,需要释放sdk防止内存泄漏,需要删除SDK实例化的指针delete api;

示例工程中:分别有以下几个示例cpp文件对应几个常用sdk的调用demo。

文件名 功能
setting.cpp 人脸检测、识别等参数设置
compare.cpp 人脸1:1比对、1:N 搜索,人脸特征值提取,特征值对比等
liveness.cpp USB摄像头视频信息人脸实时检测,图片检测人脸信息等
cv_help.cpp 绘制人脸跟踪框、人脸关键点位等的工具类

2.6 特征抽取模型选择

模型介绍

v1.1版本起,SDK提供生活照和证件照两种特征抽取模型,主要适用场景如下:

  • 生活照模型:如手机拍摄的图片、较为清晰的证件照片、USB镜头实时采集的图片、网络摄像头实时采集的图片等。
  • 证件照模型:如身份证芯片照、各类证件照(工卡、学生卡、会员卡照片等)、人脸的像素普遍小于80px的图片等。

使用方法

在SDK初始化方法中控制:sdk_init(true); //传入true为使用证件照模型,传入fasle为普通生活照模型

注意事项

温馨提示:一经选择一个模型,则所有业务流程的特征抽取处理,都会使用此模型,两个模型不可同时作用。如业务中设计证件照的特征抽取,请务必选择使用证件照模型

3、功能接口

SDK实现的主要功能有人脸实时跟踪检测、人脸特征值提取、1:1人脸对比、特征值的比对和通过USB或笔记本自带摄像头检测视频帧,返回识别出的人脸信息等,另外支持对人脸检测进行设置,达到根据设置进行识别的目的。各接口功能及传入参数和返回结果(返回结果一般为json格式的字符串)描述如下:

3.1 人脸检测及设置

3.1.1 人脸检测track接口(传入图片)

方法名

track

方法说明

人脸检测,返回人脸信息

请求信息

参数 必须 类型 描述
out std::vector 返回的检测到的人脸图片信息结构体
std::vector *& out 通过传入TrackFaceInfo的结构体指针引用,在检测到人脸信息后,用该引用返回人脸信息。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息)landmarks为检测到的人脸关键点,一般为144个。score为人脸打分headPose的向量组为人脸x,y,z的三个角度
image string 人脸图片信息,根据image_type,传入图片内容
img_type int 传入的图片类型。为1时候表示base64编码的图片,为2时候表示传入图片的本地路径。BASE64:图片的base64值;FACE_FILE:图片的本地文件路径地址;
maxTrackObjNum int 最多检测人脸数量,默认为1,最大不超过5

返回信息

返回结果为int,表示检测到几个人脸信息,1为1个人,0为没检测到人脸。

3.1.2 人脸检测track接口(传入二进制图片buffer)

方法名

track_by_buf

方法说明

人脸检测,返回人脸信息

请求信息

参数 必须 类型 描述
out std::vector 返回的检测到的人脸图片信息结构体
std::vector *& out 通过传入TrackFaceInfo的结构体指针引用,在检测到人脸信息后,用该引用返回人脸信息。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息)landmarks为检测到的人脸关键点,一般为144个。score为人脸打分headPose的向量组为人脸x,y,z的三个角度
image Unsigned char * 人脸图片信息,二进制图片buffer内容
size int 二进制图片的大小
maxTrackObjNum int 最多检测人脸数量,默认为1,最大不超过5

返回信息

返回结果为int,表示检测到几个人脸信息,1为1个人,0为没检测到人脸。

3.1.3 人脸检测track_max_face接口

方法名

track_max_face

方法说明

检测最大人脸。

请求信息

参数 必须 类型 描述
out std::vector<TrackFaceInfo> 返回的检测到的人脸图片信息结构体
std::vector *& out 通过传入TrackFaceInfo的结构体指针引用,在检测到人脸信息后,用该引用返回人脸信息。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息);landmarks为检测到的人脸关键点,一般为144个;score为人脸打分;headPose的向量组为人脸x,y,z的三个角度
image string 图片信息(数据大小应小于10M)
image_type int 为1时候表示base64编码的图片;为2时候表示传入图片的本地路径。BASE64:图片的base64值;FACE_FILE:图片的本地文件路径地址;

返回信息

返回结果为int,表示检测到几个人脸信息,1为1个人,0为没检测到人脸。

3.1.4 人脸检测track_max_face接口(传入二进制图片buffer)

方法名

track_max_face_by_buf

方法说明

检测最大人脸。

请求信息

参数 必须 类型 描述
out std::vector<TrackFaceInfo> 返回的检测到的人脸图片信息结构体
std::vector *& out 通过传入TrackFaceInfo的结构体指针引用,在检测到人脸信息后,用该引用返回人脸信息。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息);landmarks为检测到的人脸关键点,一般为144个;score为人脸打分;headPose的向量组为人脸x,y,z的三个角度
image Unsigned char * 人脸图片信息,二进制图片buffer内容
size int 二进制图片的大小

返回信息

返回结果为int,表示检测到几个人脸信息,1为1个人,0为没检测到人脸。

3.1.5 人脸检测设置接口

请参考SDK工程中的代码示例及头文件baidu_face_api.h中的定义及setting.cpp里的代码注释。

3.1.6 USB摄像头检测

请参考TestFaceApi中的示例liveness.cpp中的usb_track_face_info,该方法中用到了人脸检测track视频帧,接口如下3.1.7:

3.1.7 人脸检测track接口(传入opencv的mat)

方法名

Track

方法说明

人脸检测,返回人脸信息。

请求信息

参数 必须 类型 描述
out std::vector<TrackFaceInfo> 返回的检测到的人脸图片信息结构体
std::vector *& out 通过传入TrackFaceInfo的结构体指针引用,在检测到人脸信息后,用该引用返回人脸信息。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息);landmarks为检测到的人脸关键点,一般为144个;score为人脸打分;headPose的向量组为人脸x,y,z的三个角度
Mat Opencv格式的单帧图片mat 人脸图片信息
maxTrackObjNum int 最多检测人脸数量。默认为1,最大不超过5

返回信息

返回结果为TrackedFaceInfo的向量指针,向量组为0时候表示没检测到人脸。TrackedFaceInfo结构体为检测到的人脸信息,其中:box为检测到的人脸框(为FaceInfo结构体,包含人脸框大小,中心点坐标,人脸宽度等信息);landmarks为检测到的人脸关键点,一般为144个;score为人脸打分;headPose的向量组为人脸x,y,z的三个角度。

3.2 人脸对比及识别接口

3.2.1 人脸对比接口

方法名

match

方法说明

人脸对比接口(本接口中的image_type为1表示base64图片编码,为2表示文件路径,为3表示face_token)

请求信息

参数 必须 类型 示例描述
image1 string 需要对比的第一张图片,小于10M
imgae1_type int 图片1类型,必选择以下三种形式之一
BASE64:图片的base64值;
FACE_FILE:图片的本地文件路径地址;
FACE_TOKEN:face_token 人脸标识;
image2 string 需要对比的第二张图片,小于10M
image2_type int 图片2类型,必选择以下三种形式之一
BASE64:图片的base64值;
FACE_FILE:图片的本地文件路径地址;
FACE_TOKEN:face_token 人脸标识;

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
log_id string 请求日志标识
result array 识别结果列表
score string 相似度分值,0-100,百分制,保留后2位小数点

3.2.2 人脸对比接口(传入二进制图片buffer)

方法名

match_by_buf

方法说明

人脸对比接口(传入二进制图片buffer)

请求信息

参数 必须 类型 示例描述
image1 Unsigned char * 需要对比的第一张图片,小于10M
size int 图片1的大小
image2 Unsigned char * 需要对比的第二张图片,小于10M
size int 图片2的大小

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
log_id string 请求日志标识
result array 识别结果列表
score string 相似度分值,0-100,百分制,保留后2位小数点

3.3 特征值提取接口

3.3.1 特征值提取接口(通过传入图片)

方法名

get_face_feature

方法说明

提取人脸特征值,为512个浮点值,已加密 (本接口image_type 为1表示base64图片编码 为2表示文件路径)

请求信息

参数 必须 类型 示例描述
image string 需要检测的人脸图片,小于10M, 图片类型根据image_type参数定
imgae_type int 图片类型,必选择以下2种形式之一。
image_type为1代表BASE64,为2代表FACE_FILE。
BASE64:图片的base64值;
FACE_FILE:图片的本地文件路径地址;
feature const float* 通过传入const float*指针的引用,来返回提取的人脸特征值

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

int类型的特征抽取向量数。正常提取成功则返回特征值向量个数(512),若不为512则为返回的错误码.

3.3.2 特征值提取接口(通过传入二进制图片buffer)

方法名

get_face_feature_by_buf

方法说明

提取人脸特征值,为512个浮点值,已加密 (传入二进制图片buffer)

请求信息

参数 必须 类型 示例描述
image Unsigned char* 需要检测的人脸图片,小于10M
size int 二进制图片大小
feature const float* 通过传入const float*指针的引用,来返回提取的人脸特征值

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

int类型的特征抽取向量数。正常提取成功则返回特征值向量个数(512),若不为512则为返回的错误码.

3.3.3 特征值提取接口(通过传入opencv的视频帧)

方法名

get_face_feature

方法说明

提取人脸特征值,为512个浮点值,已加密 (本接口image_type 为1表示base64图片编码 为2表示文件路径)

请求信息

参数 必须 类型 示例描述
Mat string 需要提取特征值的OpenCV视频帧(单帧)
feature const float* 通过传入const float*指针的引用,来返回提取的人脸特征值

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

int类型的特征抽取向量数。正常提取成功则返回特征值向量个数(512),若不为512则为返回的错误码.

3.3.4 特征值比对接口

方法名

compare_feature

方法说明

对人脸特征值进行比较,可返回人脸特征相似分值(百分制)

请求信息

参数 必须 类型 示例描述
feature1 std::vector 512个浮点型的特征值,传入const的特征值引用
feature2 std::vector 512个浮点型的特征值,传入const的特征值引用

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

相似度结果:float类型,百分制的分值

3.4 属性及质量检测接口

3.4.1 人脸属性(通过传入图片)

方法名

face_attr

方法说明

人脸属性检测接口(本接口 image_type 为1表示base64图片编码 为2表示文件路径)

请求信息

参数 必须 类型 示例描述
image string 需要检测的人脸图片,小于10M, 图片类型根据image_type参数定
imgae_type int 图片类型,必选择以下2种形式之一。
Image_type为1代表BASE64为2代表FACE_FILE。
BASE64:图片的base64值;
FACE_FILE:图片的本地文件路径地址;

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
age(年龄) int 人脸年龄范围0-100,若为-1表示不完整的人脸。
race(种族) int 正常人脸标注 0:黄种人 1:白种人 2:黑人 3:阿拉伯人,不完整的人脸标注-1
expression(表情) int 0:中性表情,1:微笑,2:大笑
gender(性别) int 0: 女 female,1: 男 male,-1: 婴儿或不好辨别性别
glasses(是否戴眼镜) int 0:不带眼镜 no glasses,1:普通透明眼镜 glasses,2:太阳镜 sunGlasses

3.4.2 人脸属性(通过传入二进制图片buffer)

方法名

face_attr_by_buf

方法说明

人脸属性检测接口

请求信息

参数 必须 类型 示例描述
image unsigned char * 需要检测的图片,小于10M,二进制图片buffer
size int 二进制图片大小

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
age(年龄) int 人脸年龄范围0-100,若为-1表示不完整的人脸。
race(种族) int 正常人脸标注 0:黄种人 1:白种人 2:黑人 3:阿拉伯人,不完整的人脸标注-1
expression(表情) int 0:中性表情,1:微笑,2:大笑
gender(性别) int 0: 女 female,1: 男 male,-1: 婴儿或不好辨别性别
glasses(是否戴眼镜) int 0:不带眼镜 no glasses,1:普通透明眼镜 glasses,2:太阳镜 sunGlasses

3.4.3 人脸质量接口(通过传入图片)

方法名

face_quality

方法说明

人脸质量检测接口

请求信息

参数 必须 类型 示例描述
image string 需要检测的人脸图片,小于10M, 图片类型根据image_type参数定
imgae_type int 图片类型,必选择以下2种形式之一。
Image_type为1代表BASE64为2代表FACE_FILE。
BASE64:图片的base64值;
FACE_FILE:图片的本地文件路径地址;

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
bluriness float 光照
illum float 模糊度
occl_l_eye float 左眼遮挡度
occl_r_eye float 右眼遮挡度
occl_nose float 鼻子遮挡度
occl_mouth float 嘴巴遮挡度
occl_l_contour float 左脸遮挡度
occl_r_contour float 右脸遮挡度
occl_chin float 下巴遮挡度

3.4.4 人脸质量接口(通过传入二进制图片buffer)

方法名

face_quality_by_buf

方法说明

人脸质量检测接口

请求信息

参数 必须 类型 示例描述
image unsigned char * 需要检测的图片,小于10M,二进制图片buffer
size int 二进制图片大小

返回信息

errno信息:

  • errno=0 : Success
  • errno>0 : 错误码对应的详细msg

data信息:

字段 类型 说明
bluriness float 光照
illum float 模糊度
occl_l_eye float 左眼遮挡度
occl_r_eye float 右眼遮挡度
occl_nose float 鼻子遮挡度
occl_mouth float 嘴巴遮挡度
occl_l_contour float 左脸遮挡度
occl_r_contour float 右脸遮挡度
occl_chin float 下巴遮挡度

4、错误码及错误信息

错误码 错误内容 错误描述
0 SUCCESS 成功
1 SYSTEM ERROR 系统错误
2 UNKNOWN ERROR 未知错误
1001 NOT_AUTH 授权校验失败
1002 REQUEST PARAMS ERROR 请求参数错误
1003 DB_OP_FAILED 数据库操作失败
1004 NO_DATA 没有数据
1005 RECORD_UNEXIST 记录不存在
1006 RECORD_ALREADY_EXIST 记录已经存在
1007 FILE_NOT_EXIST 文件不存在
1008 GET_FEATURE_FAIL 提取特征值失败
1009 FILE_TOO_BIG 文件太大
1010 FACE_RESOURCE_NOT_EXIST 人脸资源文件不存在
1011 FEATURE_LEN_ERROR 特征值长度错误
1012 DETECT_NO_FACE 未检测到人脸

5、常见问题

Q:激活工具激活时候,提示timeout或者unsupport protocl
A:若提示timeout,请确认设备是否能联网;若提示unsupport protocl,请确认是否安装了openssl。

Q:工程运行过程中,提示face-resource不存在
A:SDK需要一些模型文件,在demo工程的face-resource文件夹中,该文件夹需要放置在exe所在路径的上级目录下。若放置不正确,可能出现找不到模型文件,没法进行人脸识别。

Q:工程激活过程中,提示segment fault
A:这是因为工程若没有激活,便直接执行脚本文件运行可执行文件,请先完成激活操作。

Q:激活后是否可以把激活文件license.ini和license.key拷贝到其他设备运行?
A:不能,离线sdk和设备绑定,每个设备对应一个key和一个license文件,换设备无法运行。

上一篇
Win-SDK-C#(历史版本)
下一篇
人脸注册工具平台
干咳嗽是什么原因 什么手机拍照效果最好 生长发育科检查些什么 什么炒肉好吃 瑞舒伐他汀钙片什么时候吃
什么是鸡奸 red是什么颜色 灼口综合症吃什么药 人为什么会长痔疮 脾肾气虚的症状是什么
一年四季是什么生肖 罗非鱼长什么样 什么什么之财 白细胞低代表什么意思 百香果的籽有什么功效
阳萎是什么 拿到offer是什么意思 熬夜吃什么补回来 滋润是什么意思 消防队属于什么单位
庄周梦蝶什么意思jinxinzhichuang.com 海螺姑娘是什么意思hcv8jop6ns6r.cn 乳腺点状强回声是什么意思hcv9jop3ns3r.cn 逆光是什么意思hcv7jop9ns3r.cn 手关节痛是什么原因hanqikai.com
冰箱什么牌子的好hcv8jop8ns4r.cn 夏季喝什么汤好hcv7jop9ns0r.cn 马路杀手是什么意思hcv8jop3ns6r.cn 什么药治肠炎效果最好youbangsi.com 梦见香蕉是什么意思hcv9jop1ns8r.cn
鱼休子是什么0297y7.com 游坦之练的什么武功hcv9jop7ns0r.cn 探病买什么水果hcv8jop4ns5r.cn 怀孕日期是从什么时候开始算hcv8jop6ns5r.cn 扶山是什么意思hcv8jop0ns9r.cn
孕妇为什么不能吃韭菜wuhaiwuya.com 硬水是什么hcv7jop5ns2r.cn 龙涎香是什么东西hcv8jop4ns6r.cn 离宅是什么意思hcv9jop0ns5r.cn 戊肝抗体igg阳性是什么意思creativexi.com
百度