NodeJS人脸识别(3)

前两篇文章介绍了使用NodeJS官方提供的SDK进行快速开发,但是SDK毕竟是封装好的,省略了认证发起请求一系列操作,本篇文章不使用SDK进行开发,而是直接使用API进行开发。我们可以从零开始进行权限验证,然后再发起请求调用API实现前两篇文章实现的所有功能。

首先,我们看看官方文档对于调用API的要求:
在这里插入图片描述

首先我们需要通过API keySecret key去生成access_token。文档有提供现成的Node.js关键代码,但本篇文章均采用自己的代码逻辑。access_token有效期为30天,过期了则需要重新获取。首先我们先获取access_token

首先我们自己来封装一个基于requesthttp请求:
在这里插入图片描述

我们封装的第一个http请求方法采用Content-typeapplication/x-www-form-urlencoded,请求方式为POST请求。然后我们看下文档获取access_token的文档要求:
在这里插入图片描述

获取access_token很简单,就是一个post请求,将三个参数传过去,接下来我们代码实现下,调用我们封装好的http请求:
在这里插入图片描述

我们来调下接口看看是否有效果:
在这里插入图片描述

可以看到我们成功获取到了access_token。获取到了access_token其实我们已经完成了鉴权操作,http请求我们也已经进行封装,下一步其实就可以开始调用API实现上一篇文章的人脸识别功能了。本篇文章就不一一测试所有接口,会着重挑几个接口来自己封装代码调取API获取数据。首先我们一样先调取人脸检测接口试试水:

人脸检测接口:

我们先来看看文档对该接口的介绍:
在这里插入图片描述

可以看到接口要求Content-type要求为application/json,所以说我们需要封装一个以json格式提交请求的http请求:
在这里插入图片描述

然后我们需要看看本接口需要提交的请求参数:
在这里插入图片描述

有了请求参数,我们就可以开始着手写接口:
在这里插入图片描述

首先调用API每个接口都需要携带access_token进行鉴权,所以请求接口地址为:

CONFIG.detectURL = 'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=24.a86eea7696e1b0d370be73eaf9daf02d.2592000.1562144929.282335-16399628';

我先只提交必需参数imageimage_type。我们可以调取接口看看是否能得到图片检测结果:
在这里插入图片描述

可以看到我们成功得到人脸检测API的响应了,因为默认只返回人脸框、概率和旋转角度,我们添加选传参数返回更多信息:
在这里插入图片描述

我设置返回所有参数,图片检测人脸数最多为5,照片类型为生活照。我们可以看下返回参数(返回参数过多我就简单截图下)
在这里插入图片描述

可以看到接口完全按照我们的需要将全部参数进行返回,我们就可以在客户端根据需要对人脸进行聚焦等特效的控制。就比如可以针对接口返回的72个特征点或者150个特征点的具体坐标进行具体操作:
在这里插入图片描述
在这里插入图片描述

(图片来源于官方文档)

其他的接口调用方式和本接口完全一致的,这里就不一一讲解了。具体流程:

通过封装的第一个http请求:

'Content-Type': 'application/x-www-form-urlencoded'

可以获取到access_token,有效期为30天,这里可以选择30天后access_token失效再重新获取新的access_token,或者每次调用接口获取新的access_token

然后通过封装的第二个http请求:

"content-type": 'application/json'

将接口请求参数以json方式提交请求对应API,即可以获得对应API的正确响应。

使用SDK与调用API的区别:

    1.鉴权SDK封装好了,我们只需要传入API KEY以及secret KEY就可以完成鉴权。直接调取API我们需要先通过http请求获取access_token。

    2.SDK封装好http请求,我们可以直接调用,而无需关心如何实现。直接调取API我们需要封装一个基于x-www-form-urlencoded以及一个基于json的http请求。

    3.实现人脸识别功能API使用SDK可以直接直接封装好的方法,而调取API我们则需要手动封装方法调用已封装好的http请求发起请求。

总结:

其实人工智能基于前人的基础进行使用是很简单的。无论我们使用现成的SDK或者自己封装调用API,其实难度系数都不高,因为最难的人脸识别真正实现的逻辑操作现有的API已经实现,我们无需去关心人脸识别它如何进行识别,而只需调用API就可以进行识别。人脸识别系列文章到本篇就结束了,有兴趣研究原理的可以自行去进行研究。如果喜欢我的文章,请关注我的个人公众号:周先生自留地
在这里插入图片描述

发布了43 篇原创文章 · 获赞 8 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览