人脸签到。花了一周的时间做了一个人脸登录的demo。github地址欢迎star和在线预览。做年会抽签感觉好傻。现在刚好在学习threejs,想做一个这样的场景来抽奖。我也在学习人脸识别的知识,所以想做人脸识别签到,想全部在浏览器里做。体验完整流程1.微信扫一扫,注册,上传头像,手机浏览器开启人脸识别(ios11支持,微信浏览器不支持)3.打开电脑打开大屏地址大屏可以同步显示人脸刚刚分享的人脸识别需要调用摄像头实时显示人脸。您可以使用node或python调用opencv,但这是一个后端应用程序。可以用树莓派做设备,但是是浏览器识别,所以用tracking.js(好几年没更新了,如果要识别其他模型,可以用python训练模型)。人脸识别出来之后,还要统计宽度,人脸要有一定的宽度。你可以剪出一个正方形,然后发送它来检索人脸。2、人脸检索人脸检索使用腾讯云的智能图片api,需要创建个人信息,需要唯一id(使用微信的openid),可以添加20张图片相似度低于99%的人脸,一个机构可以有20000张个人的话,肯定够用了,接口费很便宜,每月转10000次免费3.上传个人信息获取微信openid,照片上传到服务器保存,添加到腾讯4.添加一个skybox计算球到云人脸库中的threejs场景(原例子中使用的CSS3render需要改成webglrender),L形需要写顶点连接动画效果和anime.JS,感觉好用,为什么不用tween,因为刚学,想试试。如果有人脸,需要把人脸飞到球的正方形里,需要用到坐标变换,还有四元数,这样就可以粘住idle,没有人脸了。随机播放一段图片动画,当出现人脸时,动画结束后播放。5、socket通信使用socket.io通信。实时识别人脸后,将人脸图像及时发送至大屏。6.ssl因为摄像头识别需要ssl证书他所有的请求都需要ssl,所以服务必须使用ssl证书,nginx或者apache需要配置https,端口转发,配置节点服务和socket服务https未完成的任务会修改动画的飞进来的脸,需要中间点过度增加粒子的动画,选择任意一张图片添加爆炸成一张图片的效果,使用shader写一些效果
