Nodejs开发人脸识别系统-教你实现高大上的人工智能

 

一、缘起缘生

前段时间有个H5很火,上传个头像就可以显示自己穿军装的样子,无意中看到了一篇帖子叫 全民刷军装背后的AI技术及简单实现 ,里面提到了百度AI,我自己也试了一下下,效果就酱紫。

当然这个东西并不实用,只是纯粹娱乐而已,但是本人想是否可以通过这个技术,实现那种人脸识别验证,来验证如会议刷脸签到、网站刷脸登录这种高大上的技术。于是说干就干,花了将近一周时间完成了一个初步的DEMO。

二、技术储备

要实现这个系统,本人认为需要涉及到以下技术知识点,这些都是需要提前学习和积累的:

1、Nodejs

2、Express(基于后端开发)

3、Vue-Cli(基于前端开发,Vue的脚手架,没明白为啥叫脚手架o(╯□╰)o )

4、百度AI人脸识别SDK,点击学习地址

不得不说百度AI在人工智能方面确实比其他几个大佬做的厚道,接口全面开放,而且还是免费,人家估计都在起步阶段,而百度已经甩了好几条街。。。

在网上学习了一些资料,尤其是仔细分析了百度SDK以后,接下来就开始开发啦。

三、开发步骤

1、搭建vue-cli脚手架,主要用于快速搭建一个网站,安装方法

2、在router目录中配置index.js页面路由,方便多个页面之间交互,如图:

设置了两个页面

3、新建两个页面到pages目录,其中Home是主页面,用于展示人脸识别;Main为输入页面,用于录入人员信息。

4、导入百度AI的SDK,都放在src目录中,太多了自己看吧,官方文档中有说明

5、制作Home页面,原理主要是设置了一个getVideo方法 开启摄像头 (前提是你的电脑需要有设备),然后通过takePhoto方法获得当前视频中的一帧图片,打印到canvas中(canvas支持打印绘画、图片、视频)。

DOM结构

getVideo方法

6、制作Main页面,这个页面就比较简单啦,只设置了两个输入框和一个上传图片按钮,先凑合着用吧。主要用于人员信息录入,需要先将人员相关信息建立档案,否则无法识别。

7、说了这么一堆,都是前端的东西,那么怎么和 后端实现互通 呢?别急,看看这里先

里面有方法教你怎么去模拟一个接口数据并访问,其他接口也可以这样写,以此类推。

个人理解有个文件很重要,它就是build目录中的webpack.dev.conf.js文件,主要用于开发环境下的所有配置,因此如果 只是开发环境 下,后台访问和配置相关都可以写到这个文件中。

一个接口成型

8、测试调试,经过漫长的开发和排坑,终于有一定的成效啦!

四、发布部署,前端后端,傻傻分不清

在项目测试没问题需要发布的时候,遇到了一个问题,由于发布需要使用npm run build,文件打包好上传到服务器后 所有接口会报错 ,无法正常访问,天啊撸,难道之前做的都是白做的么?后来才发现,Vue-Cli主要还是用于渲染页面的,无法承载搭建后端服务接口,因此之前才会说只能在开发环境下使用。

相信很多新手都会遇到这个问题,前端后端会傻傻分不清,当需要前后端分离的时候,那么如何解决这个问题呢?

这个时候就可以就需要用到express啦,它是基于Node.js 平台的极简、灵活的 web 应用开发框架。而我只是需要搭建一个接口服务,简单几行代码就可以搭建服务了,so easy!!

于是乎新建了一个项目作为服务端,将百度AI的项目独立出来,并建立server.js,把之前写好的方法copy过来即可,如图:

五、快点入坑吧

总结来说这个项目期间还是经历了好多次的纠结,有些问题报错略感奇葩了,但是不解决又觉得不舒服,只能入坑越入越深,如果你也想试试欢迎加入,坑坑更健康。

比如会出现跨域的问题,因为是前后端分离,所以会出现端口号或者地址不一样情况,这样就会出现跨域。解决方法就是验证跨域CORS问题,在server.js文件中设置跨域的访问即可,如图:

六、效果演示

1、信息录入地址(上传一张自拍哟):欢迎进入(进不了可复制链接:https://www.lejuhb.com/myface/#/main )

2、人脸识别地址:欢迎进入(进不了可复制链接:https://www.lejuhb.com/myface/)

注意:必须使用 摄像头和 最新谷歌浏览器 ,如果第一次无法识别,请点击浏览器右上角小图标,点击 加载不安全的脚本 完成,如图:

其实这也是个坑

页面真的很简单吧!

 
 

Nodejs开发人脸识别系统-教你实现高大上的人工智能的更多相关文章

  1. 全栈工程师带你开发 ,node开发人脸识别门禁系统

    效果图:       知识点: 人脸识别SKD部署,  webRTC视频流处理,URL构建blob对象,Canvas映射截图,ajax数据交互,Node图像处理,跨域与413处理,base64解码,p ...

  2. 机器学习实战:用nodejs实现人脸识别

    机器学习实战:用nodejs实现人脸识别   在本文中,我将向你展示如何使用face-recognition.js执行可靠的人脸检测和识别 . 我曾经试图找一个能够精确识别人脸的Node.js库,但是 ...

  3. 人脸识别系统 —— 基于python的人工智能识别核心

    起因 自打用python+django写了一个点菜系统,就一直沉迷python编程.正好前几天公司boss要我研究一下人脸识别,于是我先用python编写了一个人脸识别系统的核心,用于之后的整个系统. ...

  4. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  5. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【三】VGG网络进行特征提取

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  6. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  7. 基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【四】使用CUBLAS加速计算人脸向量的余弦距离

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  8. facenet 人脸识别(二)——创建人脸库搭建人脸识别系统

    搭建人脸库 选择的方式是从百度下载明星照片 照片下载,downloadImageByBaidu.py # coding=utf-8 """ 爬取百度图片的高清原图 &qu ...

  9. C++ 人脸识别系统的浅理解

    机器学习 机器学习的目的是把数据转换成信息. 机器学习通过从数据里提取规则或模式来把数据转成信息. 人脸识别 人脸识别通过级联分类器对特征的分级筛选来确定是否是人脸. 每个节点的正确识别率很高,但正确 ...

随机推荐

  1. Linux的bash快捷键

    Ctrl-A 相当于HOME键,用于将光标定位到本行最前面 Ctrl-E 相当于End键,即将光标移动到本行末尾 Ctrl-B 相当于左箭头键,用于将光标向左移动一格 Ctrl-F 相当于右箭头键,用 ...

  2. USACO 6.2 Packing Rectangles

    Packing RectanglesIOI 95 The six basic layouts of four rectangles Four rectangles are given. Find th ...

  3. Python 爬虫个人笔记【目录】

    个人笔记,仅供参考 目录 Python爬虫笔记(一) Python 爬虫笔记(二) Python 爬虫笔记(三) Scrapy 笔记(一) Scrapy 笔记(二) Scrapy 笔记(三) Pyth ...

  4. MyISAM InnoDB 区别(转载)

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  5. 分布式系统的一致性算法------《Designing Data-Intensive Applications》读书笔记13

    一致性算法是分布式系统中最重要的问题之一.表面上看,这似乎很简单,只是让几个节点在某些方面达成一致.在本篇之中,会带大家完整的梳理分布式系统之中的共识算法,来更加深刻的理解分布式系统的设计. 1.原子 ...

  6. 四、redis系列之主从复制与哨兵机制

    1. 绪言 在现实应用环境中,出于数据容量.容灾.性能等因素的考虑,往往不会只使用一台服务器,而是使用集群的方式.Redis 中也有类似的维持一主多从的方式提高 Redis 集群的高可用性的方案,而其 ...

  7. android 打开 res raw目录 中 数据库文件

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 安卓不能直接打开 res raw 中的 数据库 文件. 通过 资源 获取资源 方法 , ...

  8. bzoj 2406 二分+有源有汇上下界网络流可行流判定

    弱爆了,典型的行列建模方式,居然想不到,题做少了,总结少了...... 二分答案mid s----------------------->i行-----------------------> ...

  9. Codeforces Round #353 (Div. 2) D. Tree Construction 模拟

    D. Tree Construction 题目连接: http://www.codeforces.com/contest/675/problem/D Description During the pr ...

  10. DeveloperAppleHelp

    UIKit: 1.UIKit User Interface Catalog   视图 View控件 2.View Programming Guide for iOS 视图编程,用代码 构建界面. 3. ...