温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

NodeJS中怎么实现一个人脸识别功能

发布时间:2021-07-21 09:09:27 来源:亿速云 阅读:156 作者:Leah 栏目:大数据

这期内容当中小编将会给大家带来有关NodeJS中怎么实现一个人脸识别功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

既然百度提供了Node.js版的SDK,那我们可以使用SDK先快速进入开发。首先进入百度AI:

https://ai.baidu.com/

NodeJS中怎么实现一个人脸识别功能

登录成功进入控制台,点击左侧人脸识别,进入开始创建应用

NodeJS中怎么实现一个人脸识别功能

NodeJS中怎么实现一个人脸识别功能

创建成功后进入管理应用,可以得到开发需要的APPID,API KEY,SECRET KEY,得到这三个参数值之后我们去下载一份Node.js版本的人脸识别SDK:

https://ai.baidu.com/sdk#bfr

NodeJS中怎么实现一个人脸识别功能准备工作全部完成,我们接下来新建一个Node.js项目。然后将解压后的SDK放进Node项目中。

NodeJS中怎么实现一个人脸识别功能

可以看到我们已经将解压后的SDK放到我们的项目中,现在在终端进入SDK,然后安装SDK所需的依赖,命令为:

npm  install

NodeJS中怎么实现一个人脸识别功能

然后回到项目主目录,将整个SDK作为依赖,在主目录安装依赖,命令为:

npm  install  baidu-aip.sdk

到这里引入SDK到我们本地项目就完成了,接下来我们来看下SDK文档:

NodeJS中怎么实现一个人脸识别功能

我们可以先写个接口测试下第一个接口:人脸检测

首先,我们将我们应用的三个秘钥保存在config.js

NodeJS中怎么实现一个人脸识别功能

创建一个client对象,调用服务接口进行使用。

NodeJS中怎么实现一个人脸识别功能

发送网络请求SDK中已经对request模块进行了封装,我们可以根据自己需要对request的参数进行设置。

NodeJS中怎么实现一个人脸识别功能

接下来我们可以进行人脸检测的调用,SDK已经将接口给我们封装好了,人脸检测的接口分为带可选参数与不带可选参数。有什么区别呢?我们可以看下接口请求参数:

NodeJS中怎么实现一个人脸识别功能

可以看到我们必传的参数有两个:imageimageType

image就是图片可以为url, base64以及FACE_TOKEN而imageType就是图片类型,可选值有URL, BASE64, FACE_TOKEN。

其他三个参数是可选的参数,所以我们先来看看不带可选参数的接口如何进行调用:

client.detect(image, imageType)

我们调用该方法,传参image为网络图片url以及imageTypeURL,看看会有什么效果

NodeJS中怎么实现一个人脸识别功能

调用下接口我们可以看到对图片进行了解析,返回了一系列数据

NodeJS中怎么实现一个人脸识别功能

这么多参数究竟干嘛的呢?我们可以看下官方文档对返回参数的说明:

NodeJS中怎么实现一个人脸识别功能

因为返回参数过多,我就不一一截屏,这里贴下NodeSDK文档,可以自行查看:

https://cloud.baidu.com/doc/FACE/Face-Node-SDK.html#.E4.BA.BA.E8.84.B8.E6.A3.80.E6.B5.8B

有了文档我们就可以知道返回参数的意思了

face_num代表在图片中检测到一张人脸face_list就包含人脸的具体信息  location对人脸相对于图片位置进行了定位,客户端就可以根据位置信息对人脸进行特效的展示。  face_token就是图片解析生成的一个唯一标识的字符串,解析image可以直接传入face_token  face_probability代表图片是一张人脸的可能程度,1为概率最大  angle则为人脸旋转程度

解析结果会返回人脸相对于图片的定位,客户端就可以针对位置信息对人脸进行聚焦等操作。第二个接口可选参数又是什么样的呢?我们可以再看看刚才请求参数:

NodeJS中怎么实现一个人脸识别功能

我们有三个可选传的参数:

face_field:指定返回信息max_face_num:可检测最多人脸数量face_type:照片类型

我们调用detect方法就需要多传options参数,方法为:

client.detect(image, imageType, options)

我们使用该方法指定返回年龄,指定最大检测人脸为2,照片类型为生活照

NodeJS中怎么实现一个人脸识别功能

我们可以看下运行效果:

NodeJS中怎么实现一个人脸识别功能

我们可以看到返回多了一个age字段,解析返回的预估年龄。

第一个接口到这里没问题了,但是会有一个疑问?我们就是调用了detect方法,为什么就直接返回解析信息呢?其实完整的流程应该是:

通过appID及api_secret获取access_token凭证发起http请求人脸检测接口,检测成功返回数据

但是获取access_token以及发起http请求这部分SDK其实都已经封装完成,所以我们可以直接使用。我们可以在刚才调用封装的http请求里面打印请求参数,然后再次发起请求:

NodeJS中怎么实现一个人脸识别功能我们会看到请求人脸检测的接口已经完全封装好了,你只需要调用detect方法,中间的步骤SDK全部帮你进行处理了。

人脸注册

然后接下来我们来看看人脸注册接口,人脸注册该人脸就会与我们设置的groupIduserId进行绑定,人脸注册可以调用方法:

client.addUser(image, imageType, groupId, userId)

我们先看看发起请求需要携带的参数列表:

NodeJS中怎么实现一个人脸识别功能

前两个参数就不多说了,group_id是组iduser_id为用户id。我们可以写个接口看下效果:

NodeJS中怎么实现一个人脸识别功能

我们调用client.addUser()方法,进行人脸注册,我们看下运行效果:

NodeJS中怎么实现一个人脸识别功能

老规矩,贴下文档关于返回参数的解释:

NodeJS中怎么实现一个人脸识别功能

与人脸解析一样,选传参数可以对用户资料,图片质量等参数进行选传,注册成功该人脸就会绑定传的用户资料。这里就不过多解释了,具体可以看下文档自行测试。

人脸搜索

上一个接口我们注册了一个人脸,我们可以调用人脸搜索接口看看是否能搜索到该人脸。首先看看人脸搜索需要调用的方法:

client.search(image, imageType, groupIdList)

这个方法需要解释的第三个参数,在指定的组里进行搜索人脸,如果同时在多个组里搜索就用,隔开。老规矩我们先看下调用本方法的请求参数列表:

NodeJS中怎么实现一个人脸识别功能

我们使用不带选传参数调用人脸搜索接口测试:

NodeJS中怎么实现一个人脸识别功能

接下来调用下看下人脸搜索是否有效果:

NodeJS中怎么实现一个人脸识别功能

可以看到我们在组1中找到了该人脸,我们可以测试下如果在不存在该人脸的组中查询会有什么效果呢?

NodeJS中怎么实现一个人脸识别功能

上述就是小编为大家分享的NodeJS中怎么实现一个人脸识别功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI