基于node.js人脸识别之人脸对比
基于node.js人脸识别之人脸对比
Node.js简介
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。
Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
百度AI开放平台


在百度AI开放平台使用百度的人脸识别能力三个核心步骤 【 获取接口权限 → 准备接口调用工具 → 进行接口调用】
以下过程将做具体的阐述和对在操作过程中出现的问题和需要注意的地方加以强调:
1. 获取接口权限(获取接口权限是调用接口的前提)
首先进入百度云的人脸识别控制台(进入控制台需要提前注册使用密码或手机短信进行登录)
https://console.bce.baidu.com/ai/?_=1528192333418&fromai=1#/ai/face/overview/index
- 创建人脸识别应用
账号登录成功,首先创建应用,填写【应用名称】和【应用描述】,即可创建应用,需要注意的是这二者缺一不可;

- 创建完毕点击返回应用列表

此时应用列表中就会出现百度分配的AppID、API Key以及Secret Key

2.准备接口调用工具(建议使用postman进行快速接口调用)
下载地址如下:
安装后直接进入主页面:

如下图,这就是Postman的主界面

3. 进行调用接口
在postman上可以快速进行接口请求,调用人脸识别接口需要输入正确的接口地址,提前准备人脸图片,具体步骤如下:
获取调用接口所需的Access Token
人脸识别在线接口主要针对HTTP API调用者,,调用API时必须在URL中带上accesss_token参数,获取Access Token的流程如下:
A、如果您使用的是mac电脑可以将此示例代码复制到“终端”上直接获取token。示例代码如下:
#!/bin/bash curl -i -k'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API Key】&client_secret=【Seceret Key】
B、非Mac电脑操作流程如下,参考文档:http://ai.baidu.com/docs#/Auth/top
- 获取Access Token
请求URL数据格式
向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:
·grant_type: 必须参数,固定为client_credentials;
·client_id: 必须参数,应用的API Key;
·client_secret: 必须参数,应用的Secret Key;
例如:

服务器返回的JSON文本参数如下:
·access_token: 要获取的Access Token;
·expires_in: Access Token的有效期(秒为单位,一般为1个月);
·其他参数忽略,暂时不用;
例如:
{
"refresh_token": "25.8d95acbaffb7dfbd2d35f22af01e0a90.315360000.1890703481.282335-17377713",
"expires_in": 2592000,
"session_key": "9mzdXvbx0cCZTvSy1c64dXBKfGXAerzJuT77zTuaQ7W2xAlxINIEk8srP8gUpXE5WhauCZ/Pn02x9iiW2XH6jWwDfFnHWA==",
"access_token": "24.e3d102c0ec5d28013199e56208c1286f.2592000.1577935481.282335-17377713",
"scope": "public brain_all_scope vis-faceverify_faceverify_h5-face-liveness vis-faceverify_FACE_V3 vis-faceverify_idl_face_merge brain_cvpaas-app-scope wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理",
"session_secret": "bce96d5ad901ad5d904915afeeafd6ac"
}
若请求错误,服务器将返回的JSON文本包含以下参数:
·error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
·error_description: 错误描述信息,帮助理解和解决发生的错误。
例如认证失败返回:
{
"error": "invalid_client",
"error_description": "unknown client id"
}
保存获取到的Access Token,在调用接口时会用到。

- 输入请求地址
可直接复制的请求地址:“https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=【在第一步中获取的access-token】”
注:需要将请求格式切换为“Post”

- 修改请求头(header)
Key栏输入:Content-Type
Value栏输入:application/x-www-form-urlencoded

- 输入请求参数(body)
先选择“x-www-form-urlencoded”,然后参考下图输入参数:
image_type=BASE64
image=图片的base64转码后的结果(此处要使用即将注册到人脸库的人脸图片),转码工具:https://tool.css-js.com/base64.html(注意:在base64转码工具中,要取消默认选项“包含头”)
group_id=gropu001(可自定义:由数字、字母、下划线组成)
user_id=0001(可自定义:由数字、字母、下划线组成)





转码工具的使用:

在body中选择raw,在下面输入如下格式的代码:

准备工作完成后点击send,会出现对比出来的分值(无错误的情况下)如果分数值大于85,则说明是同一人,反之亦然。

如果操作不正确,可能会出现如下错误:

如果出现此类错误,具体可查询以下错误码:

至此本次基于node.js人脸识别之人脸对比全部完成。
其他可参考链接:https://blog.csdn.net/Hydra_xyc/article/details/80835389
小组成员:张佳晨、冉瑞婷、刘丹、张莹、庄子悦
基于node.js人脸识别之人脸对比的更多相关文章
- 基于Node.js的强大爬虫 能直接发布抓取的文章哦
基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什 ...
- java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对
java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.ht ...
- NodeBB – 基于 Node.js 的开源论坛系统
NodeBB 是一个更好的论坛平台,专门为现代网络打造.它是免费的,易于使用. NodeBB 论坛软件是基于 Node.js 开发,支持 Redis 或 MongoDB 的数据库.它利用 Web So ...
- 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese
- Fenix – 基于 Node.js 的桌面静态 Web 服务器
Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...
- 基于Node.js + jade + Mongoose 模仿gokk.tv
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 ...
- 基于Node.js的实时推送 juggernaut
基于Node.js的实时推送 juggernaut Juggernaut 基于 Node.js 构建.为浏览器和服务器端提供一个实时的连接,可在客户端和服务器端进行数据的实时推送,适合多角色游戏.聊天 ...
- 基于node.js构建微服务中的mock服务
缘起 由于现在微服务越来越火了,越来越多的微服务融入到了日常开发当中.在开发微服务的时候,经常会遇到一个问题由于依赖于其他服务,导致你的进度受到阻碍.使你不得不先mock出你期望调用依赖服务的输出,来 ...
随机推荐
- 集群式Quartz定时任务框架实践
在日常开发汇总,经常会遇到需要定时任务的场景,简单的,可以使用Spring的定时任务调度框架,也可以使用Quartz.无论使用哪种,都需要解决一个问题,那就是集群问题.一般情况下,定时任务能且仅能运行 ...
- HyperLedger Fabric 1.4 生产环境动态添加组织及节点
网易云课堂视频在线教学,地址:https://study.163.com/course/introduction/1209401942.htm 1.1 操作概述 在“kafka生产环境部署” ...
- super()派生使用中的常见两个错误
""" super()派生可以继承父类的属性 --super()派生继承父类的语法是:super().__init__() --super().__init__()中的_ ...
- c++之基础数据类型
c++规定了在创建一个变量或者常量时,必须先要指定相应的数据类型,否发无法将变量分配给内存. 1.整型 数据类型 占用空间 取值范围 short 2字节 -2^15-2^15-1 int 4字节 -2 ...
- 电商设计V1(一):软件工程设计
软件工程设计的方式方法 多视图法: 全面分析软件方方面面的问题 尽早地发现和排除项目风险与不确定因素 从不同角度去展现要设计的软件系统 为项目进行不同的干系人提供指导: 逻辑架构描述系统功能,并指导系 ...
- cmake常用命令总结
最近研究了下cmake,总结了一些常用命令,方便以后快速查找. project(projectname [CXX] [C] [Java]): 设置工程名. set(VAR [VALUE] [CACHE ...
- Csharp: TreeList Drag and Drop
/// <summary> /// https://www.codeproject.com/articles/3225/treelistview /// https://www.codep ...
- 计算属性computed
computed 在Vue中有多种方法为视图设置值: 1.使用指令直接将数据值绑定到视图 2.使用简单的表达式对内容进行简单的转换 3.使用过滤器对内容进行简单的转换 除此之外,我们还可以使用计算属性 ...
- 【转】浅谈命令查询职责分离(CQRS)模式
原文链接:https://www.cnblogs.com/yangecnu/p/Introduction-CQRS.html 在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查 ...
- 从eslint规则学点JavaScript知识
在知识星球陆续发了些eslint小知识,意在通过eslint知识去了解规则内部的原理,汇总在此: prefer-const 含义:始终用const定义你从不修改的变量,如果会被修改则使用let,永不使 ...