zoukankan      html  css  js  c++  java
  • 人脸识别 face detect & recognize

    前言

    最近有一个项目要升级. 它是一个在线教育的 web app. 由于学生年龄小, 不适合用 username/password 这种方式做登入.

    所以项目开始之初是使用 RFID 来登入的. 但由于疫情影响, 学生自家的平板电脑无法扫描 RFID. 

    曾想改用 QR code 但是后来觉得如果可以使用人脸识别体验会更好一些.

    人脸识别自然不可能自己去实现, 所以找了一些方案.

    Azure 

    Azure 提供的人脸识别服务叫 Face API, 给它 2 张图, 它会告诉你相似度. 1000 次访问 MYR 5.00

    由于它是 web service 需要一直发 api 传图片, 所以速度不是很快体验自然也不顺畅. 

    face-api.js

    face-api.js, 这个库可厉害了. 它基于 Google 的 tensorflow.js. 它可以在 node.js 跑, 也可以在游览器上跑. 

    这个库提供人从图片获取人脸的功能, 也提供了对比相似度的功能.

    它可以在游览器上跑不需要往返传图片, 速度自然快了, 体验也好了. 

    具体实现看这一篇: face-api.js 学习笔记

    用于登入需要注意的事:

    流程是这样的:

    用户点击 Login by Face ID

    打开摄像头, 识别人脸位置.

    从 local storage 获取用户 Id, 然后去服务端获取用户的人脸图 (由于用户太多了,总不能把所有用户的图都调出来对比)

    对比人脸图. 如果失败就 error

    成功就发图片发送到服务器 (我们不能只在前端检查, 因为做登入,为了安全还是得让后端来把关, 都一次对比)

    成功后就可以让用户登入了. 

  • 相关阅读:
    Livepool
    Eclipse最新版注释模板设置详解
    hashcode详解
    开发集成工具MyEclipse中Outline的问题
    第三章 数据链路层(二)
    Java常考面试题(四)
    collections集合的总括。
    第三章 数据链路层(一)
    Java常考面试题(三)
    Java常考面试题(二)
  • 原文地址:https://www.cnblogs.com/keatkeat/p/15106314.html
Copyright © 2011-2022 走看看