千呼万唤,web人脸识别登陆完整版来了,这样式我爱了

2021年11月25日 阅读数:15
这篇文章主要向大家介绍千呼万唤,web人脸识别登陆完整版来了,这样式我爱了,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

你们好,我是小富~前端

在我最开始写文章的时候曾经写过一篇文章 基于 Java 实现的人脸识别功能,由于刚开始码字不知道写点什么,就简单弄了我的脸识别的Demo。vue

但让我没想到的是,在过去的一年里有好多好多粉丝加我好友咨询这个小demo,由于里边有点小bug,致使一些新手朋友不能成功启动。java

今后我就开启不厌其烦的解答各类疑问,不过我精力毕竟有限,最后实在回答不过来,干脆弄了个群粉丝互相分享经验。mysql

问题大面积出现的时候我就想过再出一个完整版的demo,可家里工做一大堆事搞得一点精力都没有,一直拖到了如今,正好如今把这我的脸识别登陆功能用在了本身的项目上,借此机会分享出来了,此次尽量不给你们留(埋)bug 哈哈哈web

具体操做以前先看下成品的效果,线上预览地址:https://fire100.top,这里你们能够放心,不会收集面部图片,只是提取了面部特征,并无上传云端。下边咱们来作个演示看看效果,识别速度和成功率仍是不错的。spring

功能流程

整个功能的逻辑很简单,前端调起摄像头,识别到人脸后拍照上传到后台,后端SDK识别出图片中的人脸特征后,与数据库内的用户人脸特征作比对,比对成功(类似度在0.8~1之间即算同一我的)登陆,如识别到人脸但数据库内未比对成功则视为新用户注册。sql

注意:若是要在线上应用,必需要使用https才能调起摄像头,本地测试没有限制。数据库

https://p3-juejin.byteimg.com...segmentfault

申请SDK

启动项目以前先作一点准备工做,由于使用的是三方的人脸识别SDK,因此要先在平台申请一个帐号,而后在下载对应版本的SDK。windows

SDK地址

可能会有人抬杠为啥你不本身写我的脸识别,别问,问就是不会!

目前支持LinuxWindowsIOSAndroid版本,每一个实名认证的帐号能够激活100台设备,换句话说就是同一个帐号申请的SDK能够在100个设备上运行,通常状况下够用了。

下载的SDK包目录结构中libs最为重要,samplecode里有示例代码,doc有API文档。咱们须要的是libs里边的arcsoft-sdk-face-3.0.0.0.jar、和三个对应平台的引擎文件.dll或者.so后缀的文件。

项目配置

项目自己是springboot + vue 先后端分离的,但为了小伙伴们开箱即用,我把这个功能先后端整合在一块儿,再用个 jpa作持久化,表也不用本身建了,给你们省点时间。

使用SDK的时候遇到过一点小坑,因此下边说的详细一点

首先在springboot启动类所在项目根目录下建立一个lib目录,将SDK中解压出的arcsoft-sdk-face-3.0.0.0.jar放进去,pom.xml文件中引入这个 Jar

<dependency>
   <groupId>com.arcsoft.face</groupId>
    <artifactId>arcsoft-sdk-face</artifactId>
    <version>3.0.0.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/arcsoft-sdk-face-3.0.0.0.jar</systemPath>
</dependency>

maven打包配置要特别注意一点,必定要加上includeSystemScope,这样 maven 打包时会将外部引入的jar包(好比在根目录下或resource文件下新加外部jar包)打包到项目jar中,服务器上项目才能运行。

不加此配置,本地能够运行,由于本地能够再lib下找到外部包,可是服务器上jar中是没有的。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring-boot.version}</version>
    <configuration>
        <includeSystemScope>true</includeSystemScope>
        <fork>true</fork>
        <mainClass>com.firebook.FireBookApplication</mainClass>
        <skip>false</skip>
    </configuration>
</plugin>

application.yml 文件的配置更简单,搞个数据库存放人脸特征数据,填写申请SDK时获得的appIdsdkKey,以及 path 为存放引擎文件.dll或者.so后缀的文件路径。

spring:
  datasource:
#    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/face?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
# 人脸识别-windows
face:
  appId: #*********************
  sdkKey: #*********************
  path: D://face

配置好这些直接执行FireControllerApplication就能够了,访问:127.0.0.1:8081/login/face

这里源码我就不大段大段往出贴了,感兴趣的小伙伴自行获取连接下载源码玩玩吧。

源码下载

web人脸识别登陆的完整源码已经上传到Github了,源码地址 ,若是有问题随时咨询吧。