百度云AI

news2024/11/26 6:24:40

百度云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 {
    //人脸注册
    @Test
    public 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
}

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

人脸检测

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

    //人脸检测
    @Test
    public 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
}

人脸搜索

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

    //人脸搜索
    @Test
    public 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
}

人脸更新

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


    //人脸更新
    @Test
    public 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.coloradmin.cn/o/1456904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CI/CD部署

什么是CI&#xff0c;什么是CD CI和CD是软件开发中持续集成和持续交付的缩写。 CI代表持续集成&#xff08;Continuous Integration&#xff09;&#xff0c;是一种实践&#xff0c;旨在通过自动化构建、测试和代码静态分析等过程&#xff0c;频繁地将代码变更合并到共享存储…

ArcGIS API for JavaScript 4.X 本地部署(js,字体)

0 目录&#xff08;4.19&#xff09; /4.19/ 1 修改文件 1.1 init.js 编辑器打开/4.19/init.js搜索文本[HOSTNAME_AND_PATH_TO_JSAPI]&#xff0c;然后将其连同前面的https://替换为http://ip地址/4.19&#xff0c;可以是localhost&#xff0c;只能本机引用 替换后&#xff…

【软考高级信息系统项目管理师--第二十章:高级项目管理】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;软考高级–信息系统项目管理师 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 第二十章&#xff1a;高级项目管理 项目集管理项目组合管理组织级项目管理OPM&…

AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】

文章目录 背景什么是提示工程&#xff1f;从零开始&#xff1a;准备工作设计提示调用大语言模型 实际应用示例文字创作助手代码生成持续优化与迭代数据隐私与安全性可解释性与透明度总结 AI提示工程实战&#xff1a;从零开始利用提示工程学习应用大语言模型【文末送书-19】⛳粉…

【软考问题】-- 10 - 知识精讲 - 项目风险管理

一、基本问题 1&#xff1a;按照可预测性&#xff0c;风险分哪三类&#xff1f; &#xff08;1&#xff09;已知风险&#xff1a;如项目目标不明确&#xff0c; 过分乐观的进度计划&#xff0c; 设计或施工变更和材料价格波动等。&#xff08;2&#xff09;可预测风险&#xff…

跟着pink老师前端入门教程(JavaScript)-day01

一、计算机编程基础 &#xff08;一&#xff09;编程语言 1、编程 编程&#xff1a;就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码&#xff0c;并最终得到结果的过程。 计算机程序&#xff1a;就是计算机所执行的一系列的指令集合&#xff0c;而程序全部…

spfa的特殊用法

spfa通常用来求带有负权边的最短路问题&#xff0c;但是它还有两种特别的用法——求负环和求差分约束 求负环 我们回顾spfa算法&#xff0c;本质上是一个点的距离被更新以后再用它去更新其他的点。将被更新的点放入队列中&#xff0c;这样一直更新&#xff0c;直到没有任何点…

Stable Diffusion系列(六):原理剖析——从文字到图片的神奇魔法(潜空间篇)

文章目录 LDM概述原理模型架构自编码器模型扩散模型条件引导模型图像生成过程 实验结果指标定义IS&#xff08;越大越好&#xff09;FID&#xff08;越小越好&#xff09; 训练成本与采样质量分析不带条件的图片生成基于文本的图片生成基于语义框的图片生成基于语义图的图片生成…

金蝶云星空——用递归SQL查询物料分组

应用场景&#xff1a; 金蝶物料分组为树形结构&#xff0c;需要根据SQL查询同步到第三方系统中。 技术实现 用递归CTE按照树状结构展开物料分组 with cte as( select 0 as 物料分组层级,t1.FID,case when isnull(t1.FFULLPARENTID,) then .CAST(t1.FID AS VARCHAR(…

K8s进阶之路-核心概念/架构:

架构&#xff1a;Master/Node Master组件--主控节点{ 负责集群管理&#xff08;接收用户事件转化成任务分散到node节点上&#xff09;} Apiserver&#xff1a; 资源操作的唯一入口&#xff0c;提供认证、授权、API注册和发现等机制 Scheduler &#xff1a; 负责集群资源调度&am…

K8s进阶之路-安装部署K8s

参考&#xff1a;&#xff08;部署过程参考的下面红色字体文档链接就可以&#xff0c;步骤很详细&#xff0c;重点部分在下面做了标注&#xff09; 安装部署K8S集群文档&#xff1a; 使用kubeadm方式搭建K8S集群 GitBook 本机&#xff1a; master&#xff1a;10.0.0.13 maste…

三防工业平板丨亿道加固平板定制丨三防平板电脑丨提升后勤管理

企业的后勤管理对于运作高效的商业模式至关重要。随着科技的不断发展&#xff0c;加固平板成为提升企业后勤水平的一项关键措施。本文将探讨加固平板在企业后勤管理中的应用和优势&#xff0c;并阐述如何利用这一技术提升企业的运营效率和竞争力。 一、三防加固平板的定义和功能…

通用二进制方式安装MySQL8.0.x

一、必要说明 1、系统&#xff1a;openEuler操作系统 2、版本&#xff1a;MySQL - 8.0.36 3、下载地址&#xff1a;https://dev.mysql.com/get/Downloads/MySQL-8.0 二、安装步骤 1、下载glibc版本的Mysql [rootnode2 ~]# wget -c https://dev.mysql.com/get/Downloads/MySQ…

《乱弹篇(十六)知不言》

日本电影《我的男人》&#xff0c;是伦理情色类型片。故事讲述&#xff0c;一个小姑娘在地震后失去了亲人&#xff0c;她被远房亲戚&#xff08;一位消防员收养&#xff09;。 图&#xff1a;来源电影《我的男人》广告 两人一起生活&#xff0c;难免日久生情&#xff0c;于是便…

【Jvm】运行时数据区域(Runtime Data Area)原理及应用场景

文章目录 前言&#xff1a;Jvm 整体组成 一.JDK的内存区域变迁Java8虚拟机启动参数 二.堆0.堆的概念1.堆的内存分区2.堆与GC2.1.堆的分代结构2.2.堆的分代GC2.3.堆的GC案例2.4.堆垃圾回收方式 3.什么是内存泄露4.堆栈的区别5.堆、方法区 和 栈的关系 三.虚拟机栈0.虚拟机栈概念…

Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)

目录 今天开始进入Redis系列学习分享1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Re…

防御保护--防火墙综合实验

防御保护--防火墙综合实验 一、实验需求二、实验配置1.配置IP地址及划分安全区域2.FW2和FW4组成主备模式的双机热备2.1 检查双机热备状态 3.DMZ区存在两台服务器&#xff0c;现在要求生产区的设备仅能在办公时间访问&#xff0c;办公区的设备全天都可以访问3.1 测试&#xff1a…

计算机专业必看的几部电影

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;…

区块链游戏解说: DeFi Kingdoms

数据源&#xff1a; DeFi Kingdoms Dashboard 作者&#xff1a;lesleyfootprint.network 编译&#xff1a;mingfootprint.network 什么是 DeFi Kingdoms DeFi Kingdoms 是一个跨链奇幻 RPG 游戏&#xff0c;拥有精美的像素艺术&#xff0c;将资源加密并与 DeFi 协议集成&am…

vue3 之 商城项目—封装SKU组件

认识SKU组件 SKU组件的作用 产出当前用户选择的商品规格&#xff0c;为加入购物车操作提供数据信息&#xff0c;在选择的过程中&#xff0c;组件的选中状态要进行更新&#xff0c;组件还要提示用户当前规格是否禁用&#xff0c;每次选择都要产出对应的sku数据 SKU组件的使用 …