百度云【人脸识别】

布满荆棘的人生 2023-10-08 23:13 160阅读 0赞

目录

1:百度云【人脸识别云服务】

2:Java-SDK文档

3:项目中测试


1:百度云【人脸识别云服务】

cec175d38446473980b40dde8c39a62d.png

人脸识别云服务

包含实名认证、人脸对比、人脸搜索、活体检测等能力。灵活应用于金融、泛安防等行业场景,满足身份核验、人脸考勤、闸机通行等业务需求

1.1:产品列表

d46422d0371d42ec9dbe3c665f9a2198.png

1.2:应用场景

c4c60d0dc168431b942c18d8f2507d96.png

a403b1e23477459c97eb2d5dfc967d92.png

1f8aa37bb6164a4d93d4f76ee513589f.png

38a56c51173b4840a5573edbba8178d3.png

c0172e124bc342a88731e602b656e9c4.png

2f8a10744d714f75a0247929ff06ef1e.png

208ec346dc254acab68b069c317cc738.png

25e9f37ae6304dba83bcf67b4de802fe.png

1.3:特色优势

ac69e5291dbe4a4d928c8b54aaaed860.png

全线免费试用

公有云API最高可享10 QPS无限量免费调用,人脸离线采集SDK永久免费

稳定服务保障

提供企业级稳定、精确的大流量服务,拥有毫秒级识别响应能力、弹性灵活的高并发承载,可靠性保障高达99.99%

算法世界领先

基于百度专业的深度学习算法和海量数据训练,人脸识别算法在最权威的公开评测比赛中排名世界领先

1.4:支持与交流

630380014ac44029bab96b1251a7ab71.png

1.5:相关推荐

260cad82a981458cb9744dbb9ec8dac0.png

2:Java-SDK文档

b3c42f6366de4a1f811e3c351fa870bf.png

简介

Hi,您好,欢迎使用百度人脸识别服务。

本文档主要针对Java开发者,描述百度人脸识别接口服务的相关技术内容。如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

  • 在百度云控制台内提交工单,咨询问题类型请选择人工智能服务
  • 如有疑问,进入AI社区交流:人脸识别技术交流平台_百度AI开发者社区





















接口名称 接口能力简要描述
人脸检测 检测人脸并定位,返回五官关键点,及人脸各属性值
人脸比对 返回两两比对的人脸相似值
人脸查找 在一个人脸集合中找到找到相似的人脸,由一系列接口组成,包括人脸识别、人脸认证、人脸库管理相关接口(人脸注册、人脸更新、人脸删除、用户信息查询、组列表查询、组内用户列表查询、组间复制用户、组内删除用户)

历史版本










































































































上线日期 版本号 更新内容
2019.4.17 4.11.1 人脸v3文档更新,新增N:M接口
2018.6.1 4.4.0 更新视频活体接口参数名
2018.5.10 4.3.2 修复h5视频活体检测接口问题
2018.5.10 4.3.1 修复人脸活体检测接口问题
2018.4.28 4.3.0 人脸接口更新为v3版本
2018.4.3 4.2.0 新增人脸在线活体检测、身份验证接口
2018.1.11 4.1.0 新增人脸比对M:N接口
2017.12.22 4.0.0 接口统一升级
2017.11.14 3.3.2 人脸检测接口升级v2版本
2017.10.18 3.2.1 使用proxy问题修复
2017.8.25 3.0.0 更新sdk打包方式:所有AI服务集成一个SDK
2017.7.14 1.3.6 更新SDK打包方式
2017.4.27 1.3.4 人脸比对、识别、认证和人脸库设置接口升级为v2版本
2017.4.20 1.3.3 AI SDK同步版本更新
2017.4.13 1.3.2 AI SDK同步版本更新
2017.3.23 1.3 兼容Android环境
2017.3.2 1.2 上线人脸查找接口,增加对图片参数要求限制的检查,增加设置超时接口
2017.1.20 1.1 上线人脸比对接口,同时修复部分云用户调用不成功的错误
2017.1.6 1.0 初始版本,上线人脸属性识别接口

支持 JAVA版本:1.7+

使用maven依赖

添加以下依赖即可。其中版本号可在maven官网查询

  1. <dependency>
  2. <groupId>com.baidu.aip</groupId>
  3. <artifactId>java-sdk</artifactId>
  4. <version>${version}</version>
  5. </dependency>

新建AipFace

AipFace是人脸识别的Java客户端,为使用人脸识别的开发人员提供了一系列的交互方法。

用户可以参考如下代码新建一个AipFace,初始化完成后建议单例使用,避免重复获取access_token:

  1. public class Sample {
  2. //设置APPID/AK/SK
  3. public static final String APP_ID = "你的 App ID";
  4. public static final String API_KEY = "你的 Api Key";
  5. public static final String SECRET_KEY = "你的 Secret Key";
  6. public static void main(String[] args) {
  7. // 初始化一个AipFace
  8. AipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);
  9. // 可选:设置网络连接参数
  10. client.setConnectionTimeoutInMillis(2000);
  11. client.setSocketTimeoutInMillis(60000);
  12. // 可选:设置代理服务器地址, http和socket二选一,或者均不设置
  13. client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
  14. client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理
  15. // 调用接口
  16. String image = "取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串";
  17. String imageType = "BASE64";
  18. // 人脸检测
  19. JSONObject res = client.detect(image, imageType, options);
  20. System.out.println(res.toString(2));
  21. }
  22. }

配置AipFace

如果用户需要配置AipFace的一些细节参数,可以在构造AipFace之后调用接口设置参数,目前只支持以下参数:


























接口 说明
setConnectionTimeoutInMillis 建立连接的超时时间(单位:毫秒)
setSocketTimeoutInMillis 通过打开的连接传输数据的超时时间(单位:毫秒)
setHttpProxy 设置http代理服务器
setSocketProxy 设置socket代理服务器 (http和socket类型代理服务器只能二选一)

接口说明

人脸检测

人脸检测:检测图片中的人脸并标记出位置信息;

  1. public void sample(AipFace client) {
  2. // 传入可选参数调用接口
  3. HashMap<String, String> options = new HashMap<String, String>();
  4. options.put("face_field", "age");
  5. options.put("max_face_num", "2");
  6. options.put("face_type", "LIVE");
  7. options.put("liveness_control", "LOW");
  8. String image = "取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串";
  9. String imageType = "BASE64";
  10. // 人脸检测
  11. JSONObject res = client.detect(image, imageType, options);
  12. System.out.println(res.toString(2));
  13. }

人脸检测 请求参数详情























































参数名称 是否必选 类型 默认值 说明
image String 图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断
image_type String 图片类型
BASE64:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M;
URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长);
FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。
face_field String 包括age,beauty,expression,face_shape,gender,glasses,landmark,landmark150,quality,eye_status,emotion,face_type信息
逗号分隔. 默认只返回face_token、人脸框、概率和旋转角度
max_face_num String 1 最多处理人脸的数目,默认值为1,仅检测图片中面积最大的那个人脸;最大值10,检测图片中面积最大的几张人脸。
face_type String 人脸的类型 LIVE表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等IDCARD表示身份证芯片照:二代身份证内置芯片中的人像照片 WATERMARK表示带水印证件照:一般为带水印的小图,如公安网小图 CERT表示证件照片:如拍摄的身份证、工卡、护照、学生证等证件图片 默认LIVE
liveness_control String NONE 活体检测控制 NONE: 不进行控制 LOW:较低的活体要求(高通过率 低攻击拒绝率) NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率) HIGH: 较高的活体要求(高攻击拒绝率 低通过率) 默认NONE

人脸检测 返回数据参数详情










































































































































































































































































































































字段 必选 类型 说明
face_num int 检测到的图片中的人脸数量
face_list array 人脸信息列表,具体包含的参数参考下面的列表。
+face_token string 人脸图片的唯一标识
+location array 人脸在图片中的位置
++left double 人脸区域离左边界的距离
++top double 人脸区域离上边界的距离
++width double 人脸区域的宽度
++height double 人脸区域的高度
++rotation int64 人脸框相对于竖直方向的顺时针旋转角,[-180,180]
+face_probability double 人脸置信度,范围【0~1】,代表这是一张人脸的概率,0最小、1最大。
+angel array 人脸旋转角度参数
++yaw double 三维旋转之左右旋转角[-90(左), 90(右)]
++pitch double 三维旋转之俯仰角度[-90(上), 90(下)]
++roll double 平面内旋转角[-180(逆时针), 180(顺时针)]
+age double 年龄 ,当face_field包含age时返回
+beauty int64 美丑打分,范围0-100,越大表示越美。当face_fields包含beauty时返回
+expression array 表情,当 face_field包含expression时返回
++type string none:不笑;smile:微笑;laugh:大笑
++probability double 表情置信度,范围【0~1】,0最小、1最大。
+face_shape array 脸型,当face_field包含face_shape时返回
++type double square: 正方形 triangle:三角形 oval: 椭圆 heart: 心形 round: 圆形
++probability double 置信度,范围【0~1】,代表这是人脸形状判断正确的概率,0最小、1最大。
+gender array 性别,face_field包含gender时返回
++type string male:男性 female:女性
++probability double 性别置信度,范围【0~1】,0代表概率最小、1代表最大。
+glasses array 是否带眼镜,face_field包含glasses时返回
++type string none:无眼镜,common:普通眼镜,sun:墨镜
++probability double 眼镜置信度,范围【0~1】,0代表概率最小、1代表最大。
+eye_status array 双眼状态(睁开/闭合) face_field包含eye_status时返回
++left_eye double 左眼状态 [0,1]取值,越接近0闭合的可能性越大
++right_eye double 右眼状态 [0,1]取值,越接近0闭合的可能性越大
+emotion array 情绪 face_field包含emotion时返回
++type string angry:愤怒 disgust:厌恶 fear:恐惧 happy:高兴
sad:伤心 surprise:惊讶 neutral:无情绪
++probability double 情绪置信度,范围0~1
++probability double 人种置信度,范围【0~1】,0代表概率最小、1代表最大。
+face_type array 真实人脸/卡通人脸 face_field包含face_type时返回
++type string human: 真实人脸 cartoon: 卡通人脸
++probability double 人脸类型判断正确的置信度,范围【0~1】,0代表概率最小、1代表最大。
+landmark array 4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_field包含landmark时返回
+landmark72 array 72个特征点位置 face_field包含landmark时返回
+landmark150 array 150个特征点位置 face_field包含landmark150时返回
+quality array 人脸质量信息。face_field包含quality时返回
++occlusion array 人脸各部分遮挡的概率,范围[0~1],0表示完整,1表示不完整
+++left_eye double 左眼遮挡比例,[0-1] ,1表示完全遮挡
+++right_eye double 右眼遮挡比例,[0-1] , 1表示完全遮挡
+++nose double 鼻子遮挡比例,[0-1] , 1表示完全遮挡
+++mouth double 嘴巴遮挡比例,[0-1] , 1表示完全遮挡
+++left_cheek double 左脸颊遮挡比例,[0-1] , 1表示完全遮挡
+++right_cheek double 右脸颊遮挡比例,[0-1] , 1表示完全遮挡
+++chin double 下巴遮挡比例,,[0-1] , 1表示完全遮挡
++blur double 人脸模糊程度,范围[0~1],0表示清晰,1表示模糊
++illumination double 取值范围在[0~255], 表示脸部区域的光照程度 越大表示光照越好
++completeness int64 人脸完整度,0或1, 0为人脸溢出图像边界,1为人脸都在图像边界内

人脸检测 返回示例b9a697b07f674dbf901f26a9996ed4b0.png

3:项目中测试

消费者服务用来调用接口模块,消费提供者模块的实现

b9273ce5d47842ba999fa4e84805ea1c.png

在App项目中导入自动配置模块依赖

  1. <dependency>
  2. <groupId>com.czxy.tanhua</groupId>
  3. <artifactId>tanhua-autoconfig</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. </dependency>

test类:注入人脸模板:faceTemplate

  1. @RunWith(SpringRunner.class)
  2. @SpringBootTest(classes = AppServiceApplication.class)
  3. public class TestFaceApi {
  4. @Resource
  5. private FaceTemplate faceTemplate;
  6. @Test
  7. public void testFaceApi(){
  8. String url1 ="https://tudou-01.oss-cn-shanghai.aliyuncs.com/avatar/1680232548883.png";
  9. boolean flag = faceTemplate.FaceUtils(url1);
  10. if (flag){
  11. System.out.println("人脸成功");
  12. }else {
  13. System.out.println("人脸失败");
  14. }
  15. }
  16. }

这个测试启动:会启动App服务的启动类,加载自动装配和yml文件中的配置信息

6ad8fb917381469bb6a6d267a28eb14c.png

自动装配模块properties会加载aip:

ea651294ba25476a8ccc19a723b6c1fd.png

模板识别template提供给别人调用:

  1. package com.czxy.tanhua.autoconfig.template;
  2. import com.baidu.aip.face.AipFace;
  3. import com.czxy.tanhua.autoconfig.properties.FaceProperties;
  4. import org.json.JSONObject;
  5. import org.springframework.stereotype.Component;
  6. import javax.annotation.Resource;
  7. import java.util.HashMap;
  8. /**
  9. * @Author 爱吃豆的土豆、
  10. * @Date 2023/3/31 10:27
  11. */
  12. @Component
  13. public class FaceTemplate {
  14. @Resource
  15. private AipFace aipFace;
  16. private FaceProperties faceProperties;
  17. public FaceTemplate(FaceProperties faceProperties){
  18. this.faceProperties = faceProperties;
  19. }
  20. public boolean FaceUtils(String imageurl){
  21. String imageType = "URL";
  22. // 传入可选参数调用接口
  23. HashMap<String, String> options = new HashMap<String, String>();
  24. options.put("face_field", "age");
  25. options.put("max_face_num", "2");
  26. options.put("face_type", "LIVE");
  27. // options.put("liveness_control", "LOW");
  28. // 人脸检测
  29. JSONObject res = aipFace.detect(imageurl, imageType, options);
  30. Integer error_code = (Integer) res.get("error_code");
  31. return error_code == 0;
  32. }
  33. }

发表评论

表情:
评论列表 (有 0 条评论,160人围观)

还没有评论,来说两句吧...

相关阅读