NodeJS中如何使用API实现人脸识别
这篇文章主要介绍了NodeJS中如何使用API实现人脸识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联专业为企业提供邵东网站建设、邵东做网站、邵东网站设计、邵东网站制作等企业网站建设、网页设计与制作、邵东企业网站模板建站服务,十年邵东做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
首先,我们看看官方文档对于调用API的要求:
首先我们需要通过API key和Secretkey去生成access_token。文档有提供现成的Node.js关键代码,但本篇文章均采用自己的代码逻辑。access_token有效期为30天,过期了则需要重新获取。首先我们先获取access_token:
首先我们自己来封装一个基于request的http请求:
我们封装的第一个http请求方法采用Content-type为application/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';
我先只提交必需参数image,image_type。我们可以调取接口看看是否能得到图片检测结果:
可以看到我们成功得到人脸检测API的响应了,因为默认只返回人脸框、概率和旋转角度,我们添加选传参数返回更多信息:
我设置返回所有参数,图片检测人脸数最多为5,照片类型为生活照。我们可以看下返回参数(返回参数过多我就简单截图下)
可以看到接口完全按照我们的需要将全部参数进行返回,我们就可以在客户端根据需要对人脸进行聚焦等特效的控制。就比如可以针对接口返回的72个特征点或者150个特征点的具体坐标进行具体操作:
(图片来源于官方文档)
其他的接口调用方式和本接口完全一致的,这里就不一一讲解了。具体流程:
通过封装的第一个http请求:
'Content-Type': 'application/x-www-form-urlencoded'
可以获取到access_token,有效期为30天,这里可以选择30天后access失效再重新获取新的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请求发起请求。
感谢你能够认真阅读完这篇文章,希望小编分享的“NodeJS中如何使用API实现人脸识别”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
网站栏目:NodeJS中如何使用API实现人脸识别
网页URL:http://hbruida.cn/article/ipogjg.html