百度云AI

百度云AI概述

  • Face++
  • 腾讯优图
  • 科大讯飞

百度人脸识别基于深度学习的人脸识别方案,准确识别图片中的人脸信息,提供如下功能:

  • 人脸检测:精准定位图中人脸,获得眼、口、鼻等72个关键点位置,分析性别、年龄、表情等多种人脸属性
  • 人脸对比:对比两张人脸的相似度,并给出相似度评分,从而判断是否同一个人
  • 人脸搜索:针对一张人脸照片,在指定人脸集合中搜索,找出最相似的一张脸或多张人脸,并给出相似度分值
  • 活体检测:提供离线/在线方式的活体检测能力,判断操作用户是否为真人,有效抵御照片、视频、模具等作弊攻击
  • 视频流人脸采集:设备端离线实时监测视频流中的人脸,同时支持处理静态图片或者视频流,输出人脸图片并进行图片质量控制

百度云AI的开发步骤

  1. 注册账号创建应用
  2. 搭建工程导入依赖
  3. 人脸注册
  4. 人脸识别

百度云AI的注册与认证

(1)注册百度云帐号

https://login.bce.baidu.com/new-reg?tpl=bceplat&from=portal

在这里插入图片描述
激活人脸识别,并创建应用
在这里插入图片描述
应用创建完成之后,进入刚刚创建的应用获取开发所需的AppID,API Key,Secret Key。
在这里插入图片描述

百度云API的入门

搭建环境

创建工程并导入依赖:

<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.8.0</version>
</dependency>

人脸注册

用于从人脸库中新增用户,可以设定多个用户所在组,及组内用户的人脸图片
典型应用场景:构建您的人脸库,如会员人脸注册,已有用户补全人脸信息等。

public class FaceTest {//人脸注册@Testpublic void testFaceRegister() throws Exception {//创建java代码和百度云交互的clent对象AipFace client = new AipFace("你的AppID", "你的API Key", "你的Secret Key");//传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();options.put("quality_control", "NORMAL"); //设置质量控制参数,可选值为NORMAL(默认)NONE、LOW。HIGH模式会进行更严格的人脸质量检测,若检测不通过,则会返回不通过的错误码。options.put("liveness_control", "LOW");//设置活体检测参数,可选值为NONE(默认)LOW、NORMAL、HIGH。NONE模式不进行活体检测,直接返回结果。LOW模式会进行非常简单的活体检测,FAST模式会进行快速的活体检测,FAST模式会更关注速度,而可能增加误识率。HIGH模式会进行非常严格的活体检测,String imageType = "BASE64";String groupId = "yu";String userId = "0001";
//构造base64图片字符串String path = "C:\\Users\\ZZZYY\\3D Objects\\gx.jpg";byte[] bytes = Files.readAllBytes(Paths.get(path));String image = Base64Util.encode(bytes);
// 人脸注册/*** @param image 本地图片路径,支持jpg、png、gif、bmp,不支持base64。*              imageType 可选值为BASE64、URL,不填默认为BASE64。*              groupId 用户组ID,必填。*              userId 用户ID,必填。*              options 可选参数,json格式。*/JSONObject res = client.addUser(image, imageType, groupId, userId, options);System.out.println(res.toString(2));}
}

人脸注册 请求参数详情
在这里插入图片描述
人脸注册 返回数据参数详情
在这里插入图片描述
运行控制台输出

{"result": {"face_token": "6dd622d4ac489e3***","location": {"top": 186.57,"left": 215.43,"rotation": 1,"width": 285,"height": 302}},"log_id": 2227089050,"error_msg": "SUCCESS","cached": 0,"error_code": 0,"timestamp": 1707968227
}

查看人脸库
在这里插入图片描述

人脸检测

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

    //人脸检测@Testpublic void testFaceDetect() throws IOException {String path = "C:\\Users\\ZZZYY\\3D Objects\\logo.png";byte[] bytes = Files.readAllBytes(Paths.get(path));String image = Base64Util.encode(bytes);String imageType = "BASE64";HashMap<String, String> subOptions = new HashMap<String, String>();subOptions.put("max_face_num", "10");//人脸检测JSONObject res = client.detect(image, imageType, subOptions);System.out.println(res.toString(2));}
}

人脸检测 请求参数详情
在这里插入图片描述
人脸检测 返回数据参数详情
在这里插入图片描述
在这里插入图片描述
运行控制台输出

{"result": null,"log_id": 124186657,"error_msg": "pic not has face","cached": 0,"error_code": 222202,"timestamp": 1707969724
}

换张有人脸图,在运行输出

{"result": {"face_num": 1,"face_list": [{"angle": {"roll": -12.3,"pitch": 1.94,"yaw": -0.55},"face_token": "6bca071e248a56e212*****","location": {"top": 170.58,"left": 214.3,"rotation": -9,"width": 181,"height": 185},"face_probability": 1}]},"log_id": 363572715,"error_msg": "SUCCESS","cached": 0,"error_code": 0,"timestamp": 1707969963
}

人脸搜索

在指定人脸集合中,找到最相似的人脸

    //人脸搜索@Testpublic void testFaceSearch() throws IOException {String path = "C:\Users\ZZZYY\3D Objects\cgx.jpeg";byte[] bytes = Files.readAllBytes(Paths.get(path));String image = Base64Util.encode(bytes);String imageType = "BASE64";HashMap<String, String> options = new HashMap<String, String>();options.put("user_top_num", "1");//人脸搜索JSONObject res = client.search(image, imageType, "yu", options);System.out.println(res.toString(2));}
}

人脸搜索 请求参数详情
在这里插入图片描述
人脸搜索 返回数据参数详情
在这里插入图片描述
运行控制台输出
score:相识度90

{"result": {"face_token": "6bca071e248a56e212eedae76a331c34","user_list": [{"score": 90.101455688477,"group_id": "yu","user_id": "0001","user_info": ""}]},"log_id": 1674136859,"error_msg": "SUCCESS","cached": 0,"error_code": 0,"timestamp": 1707971274
}

换张彭于晏的照片
score:相识度33

{"result": {"face_token": "a9d9b891693df035877b3c79d271acc6","user_list": [{"score": 33.696895599365,"group_id": "yu","user_id": "0001","user_info": ""}]},"log_id": 1872494893,"error_msg": "SUCCESS","cached": 0,"error_code": 0,"timestamp": 1707971472
}

人脸更新

用于对人脸库中指定用户,更新其下的人脸图像。

//人脸更新@Testpublic void testFaceUpdate() throws Exception {//传入可选参数调用接口HashMap<String, String> options = new HashMap<String, String>();options.put("quality_control", "NORMAL");options.put("liveness_control", "LOW");String imageType = "BASE64";String groupId = "yu";String userId = "0001";
//构造base64图片字符串String path = "C:\\Users\\ZZZYY\\3D Objects\\cgx.jpeg";byte[] bytes = Files.readAllBytes(Paths.get(path));String image = Base64Util.encode(bytes);
//人脸注册JSONObject res = client.updateUser(image, imageType, groupId, userId, options);System.out.println(res.toString(2));}
}

人脸更新 请求参数详情

在这里插入图片描述
人脸更新 返回数据参数详情
在这里插入图片描述
运行控制台输出

{"result": {"face_token": "936a8e9cefe780d1299e77923e870775","location": {"top": 126.09,"left": 230.77,"rotation": 3,"width": 218,"height": 216}},"log_id": 3066523716,"error_msg": "SUCCESS","cached": 0,"error_code": 0,"timestamp": 1707972666
}

查看人脸库
在这里插入图片描述

结语

在这个信息化快速发展的时代,百度云AI的人脸识别技术如同一把钥匙,为我们打开了智能世界的大门。从核心技术到应用场景,再到未来的发展蓝图,每一项创新都体现了科技的力量。


让我们期待,在不久的将来,这项技术能够带给我们更多的惊喜,让我们的生活更加智能、便捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/522670.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测——摩托车头盔检测数据集

一、简介 首先&#xff0c;摩托车作为一种交通工具&#xff0c;具有高速、开放和稳定性差的特点&#xff0c;其事故发生率高&#xff0c;伤亡率排在机动车辆损伤的首位。因此&#xff0c;摩托车乘员头盔对于保护驾乘人员头部安全至关重要。在驾乘突发状况、人体受冲击时&#…

外呼营销的出单成本

在虚拟通信里面&#xff0c;需要不断降低投诉骚扰营销。企业通过呼叫中心电话营销来销售产品&#xff0c;随着市场的管控越来越严格&#xff0c;那就是需要计算出呼叫意向客户的成本。 前期成本是企业引入呼叫中心系统的成本&#xff0c;主要取决于呼叫中心系统的类型。本地自建…

浏览器一键重新发起请求

一、需求场景 在前端开发过程中&#xff0c;经常会需要重新请求后台进行代码调试&#xff0c;之前的常规方法是刷新浏览器页面或者点击页面进行交互&#xff0c;这样对多个请求的场景就很方便&#xff0c;但是往往很多时候我们只是单纯的想重新发起一个请求&#xff08;多个请求…

Python实现归并排序算法

Python实现归并排序算法 以下是 Python 中的归并排序算法实现示例&#xff1a; def merge_sort(arr):if len(arr) > 1:mid len(arr) // 2 # 计算中间索引left_half arr[:mid] # 划分左半部分right_half arr[mid:] # 划分右半部分# 递归调用对左右两半进行排序me…

探讨2024年AI辅助研发的趋势

一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为当今时代最具变革性的技术之一。AI的广泛应用正在重塑各行各业&#xff0c;其中&#xff0c;AI辅助研发作为科技和工业领域的一大创新热点&#xff0c;正引领着研发模式的深刻变革。从医药…

宠物空气净化器值得入手吗?选购宠物空气净化器关注哪些方面?

一开始养猫时&#xff0c;每天看着可爱的猫咪在家里快乐奔跑&#xff0c;让人心情愉悦。然而&#xff0c;作为铲屎官都知道&#xff0c;猫咪会掉毛&#xff0c;特别是在换毛期间&#xff0c;地板、沙发上都会有一大堆猫毛&#xff0c;甚至衣服也可能沾满猫毛。养猫家庭中&#…

【性能】JDK和Jmeter的安装与配置

一、JDK环境配置 1. 下载JDK 官网下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 选择对应系统的安装包&#xff0c;下载后安装&#xff0c;安装中记录JDK安装的地址&#xff0c;之后一直点击下一…

【Qt】不透明指针(Opaque Pointer)在Qt源码中的应用

目录 什么是不透明指针&#xff08;Opaque Pointer&#xff09;不透明指针在Qt代码中的应用Qt中与不透明指针相关的一些宏 什么是不透明指针&#xff08;Opaque Pointer&#xff09; GeeksforGeeks中给的定义如下&#xff1a; An opaque pointer is a pointer that points to …

并发安全问题(超卖问题)

一&#xff0c;问题解析 超买问题就是&#xff0c;原本库存中有200件库存&#xff0c;结果由于并发问题售出了300件这就是炒卖问题对于买东西无非就是 查询商品&#xff0c;判断库存是否充足&#xff0c;如果充足则下单成功。 这里采用的是先查询&#xff0c;再判断&#xff0c…

【漏洞复现】锐捷 EWEB auth 远程命令执行漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

WEB接口测试之Jmeter接口测试自动化 (二)(数据分离)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

TCP重传机制、滑动窗口、拥塞控制

一、总述 TCP&#xff0c;Transmission Control Protocol&#xff0c;是一个面向连接、基于流式传输的可靠传输协议&#xff0c;考虑到的内容很多&#xff0c;比如数据包的丢失、损坏、分片和乱序等&#xff0c;TCP协议通过多种不同的机制来实现可靠传输。今天&#xff0c;重点…