NodeJS人脸识别初探

最近看文章,一直给我推送人工智能方面的文章,前两天就一直在想,都说python用来开发人工智能很热门,Java大数据也是应用广泛,那抛弃用户量不提,我能否使用Node.js去实现人工智能的某些功能呢?我查了查百度AI开放平台,发现人脸识别其实官方文档就有集成Node.js版本。刚好这两天不是很忙,遂想着亲自动手尝试一下百度AI人脸识别接口。

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

https://ai.baidu.com/

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

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

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

准备工作全部完成,我们接下来新建一个Node.js项目。然后将解压后的SDK放进Node项目中。

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

npm  install

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

npm  install  baidu-aip.sdk

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

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

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

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

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

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

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

image就是图片可以为url, base64以及FACE_TOKEN。

而imageType就是图片类型,可选值有URL, BASE64, FACE_TOKEN。

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

client.detect(image,imageType)

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

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

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

因为返回参数过多,我就不一一截屏,这里贴下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_tokenface_probability代表图片是一张人脸的可能程度,1为概率最大  

angle则为人脸旋转程度

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

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

face_field:指定返回信息

max_face_num:可检测最多人脸数量

face_type:照片类型

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

client.detect(image,imageType,options)

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

我们可以看下运行效果:

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

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

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

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

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

人脸注册

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

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

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

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

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

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

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

人脸搜索

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

client.search(image,imageType,groupIdList)

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

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

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

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

我在组2中搜索该人脸,未找到人脸信息。所以只有经过人脸注册,将人脸信息保存到指定的组中,才可以在指定的组中找到该人脸。

本篇文章暂时先介绍这三个接口供大家借鉴,下一篇将继续介绍人脸识别其他的API。如果喜欢,请关注我的个人公众号:周先生自留地。一个未来的NodeJS践行者。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容