基于node.js人脸识别之人脸对比

Node.js简介

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHPPythonPerlRuby 等服务端语言平起平坐的脚本语言。 发布于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进行快速接口调用)

下载地址如下:

Mac地址:http://face-private.su.bcebos.com/%E4%BA%BA%E8%84%B8%E5%91%A8%E5%B9%B4-postman/postman-mac.zip?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2018-06-06T02%3A31%3A38Z%2F-1%2Fhost%2Fdd7f7c69f4e3dc9931886be3d386f1ade5d6502769e1701da3bf9d07b60f9d51

Windows地址:http://face-private.su.bcebos.com/%E4%BA%BA%E8%84%B8%E5%91%A8%E5%B9%B4-postman/postman-win.zip?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2018-06-06T02%3A33%3A34Z%2F-1%2Fhost%2Faebbd11ab9637b23cc5c02c77b59a397beb42fd84aaa983c0cb57cd4234a8d42

安装后直接进入主页面:

如下图,这就是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;

例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=bDBSXAhG890GBdCia0G1eKiq&client_secret=gcecCObNozdTud1Zb4fVTcP0YYTWQiR0

服务器返回的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人脸识别之人脸对比的更多相关文章

  1. 基于Node.js的强大爬虫 能直接发布抓取的文章哦

    基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什 ...

  2. java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对

    java人脸识别 虹软ArcFace 2.0,java SDK使用.人脸识别-抽取人脸特征并做比对 虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.ht ...

  3. NodeBB – 基于 Node.js 的开源论坛系统

    NodeBB 是一个更好的论坛平台,专门为现代网络打造.它是免费的,易于使用. NodeBB 论坛软件是基于 Node.js 开发,支持 Redis 或 MongoDB 的数据库.它利用 Web So ...

  4. 基于 Node.js 平台,快速、开放、极简的 web 开发框架。

    资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...

  5. Pomelo:网易开源基于 Node.js 的游戏服务端框架

    Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese

  6. Fenix – 基于 Node.js 的桌面静态 Web 服务器

    Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...

  7. 基于Node.js + jade + Mongoose 模仿gokk.tv

    原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 ...

  8. 基于Node.js的实时推送 juggernaut

    基于Node.js的实时推送 juggernaut Juggernaut 基于 Node.js 构建.为浏览器和服务器端提供一个实时的连接,可在客户端和服务器端进行数据的实时推送,适合多角色游戏.聊天 ...

  9. 基于node.js构建微服务中的mock服务

    缘起 由于现在微服务越来越火了,越来越多的微服务融入到了日常开发当中.在开发微服务的时候,经常会遇到一个问题由于依赖于其他服务,导致你的进度受到阻碍.使你不得不先mock出你期望调用依赖服务的输出,来 ...

随机推荐

  1. 【Java Web开发学习】Spring消息-ActiveMQ发送消息

    ActiveMQ发送消息 转载:http://www.cnblogs.com/yangchongxing/p/9042401.html Java消息服务(Java Message Service, J ...

  2. Vue ---- vue的基本使用 文本/事件/属性指令 补充: js面向对象 js函数

    目录 日考题(知识点)

  3. srvany.exe读取配置文件问题

    使用instsrv.exe与srvany.exe将自己的程序弄成免登录系统就能自动启动了,然而程序运行需要读取相应的配置文件,所以程序是跑起来了,但不能正常使用,找了很久终于找到了答案.在之前的基础上 ...

  4. ssm整合——Mybatis配置(1)

    mybatis搭建-基于注解 1. 环境准备 1.1 新建maven的webapp项目 1.2 新建必要的目录和文件 1.3 文件配置 pom.xml junit默认创建是4.11,手动改成4.12 ...

  5. django甜甜的弹窗

    GitHub中甜甜的弹窗地址: https://github.com/lipis/bootstrap-sweetalert 直接简单粗暴选择右下角的download,下载到本地一份文件 小猿取经中的相 ...

  6. 在线HTTP POST/GET模拟请求api接口http请求测试工具https://post.jsonin.com/

    在线HTTP POST/GET模拟请求api接口http请求测试工具 在线POST/GET接口测试工具https://post.jsonin.com/ Json在线解析及格式化校验工具 https:/ ...

  7. 《Java练习题》Java编程题合集(全)

    前言:不仅仅要实现,更要提升性能,精益求精,用尽量少的时间复杂度和空间复杂度解决问题. 初学者: <Java练习题>习题集一   https://www.cnblogs.com/jssj/ ...

  8. 聊一聊 webpack 中的 preloading 和 Prefetching

    聊一聊 webpack 中的 preloading 和 Prefetching 提到 Preloading 和 Prefetching 就不得不先说一下代码分割,通过下面的例子我们来说明为什么需要代码 ...

  9. VS删除代码中没用的空白行

    在vs编辑器中有时需要批量删除无用的空白行,为此,可以使用vs编辑器的查找替换功能: 1. Ctrl+H,打开替换功能框. 2.选择“使用正则表达式”,“当前文档”. 3.在查找框中输入: (?< ...

  10. Android 布局阴影实现

    最近项目要求,ui有很多有关于阴影的设计要求,网上找了些实现方式,但都不是很理想.现在闲下来了,就寻思着自己写个阴影布局耍耍,以备后用.先说道说道我找到的几种阴影实现方式: 系统阴影 Andorid ...