关于人脸识别:千呼万唤web人脸识别登录完整版来了这样式我爱了

12次阅读

共计 2378 个字符,预计需要花费 6 分钟才能阅读完成。

大家好,我是小富~

在我最开始写文章的时候已经写过一篇文章 基于 Java 实现的人脸识别性能,因为刚开始码字不晓得写点什么,就简略弄了个人脸识别的 Demo。

但让我没想到的是,在过来的一年里有好多好多粉丝加我好友征询这个小 demo,因为里边有点小 bug,导致一些老手敌人不能胜利启动。

从此我就开启不厌其烦的解答各种疑难,不过我精力毕竟无限,最初切实答复不过去,罗唆弄了个群粉丝相互分享教训。

问题大面积呈现的时候我就想过再出一个完整版的 demo,可家里工作一大堆事搞得一点精力都没有,始终拖到了当初,正好当初把这个人脸识别登录性能用在了本人的我的项目上,借此机会分享进去了,这次尽可能不给大家留(埋)bug 哈哈哈

具体操作之前先看下成品的成果,线上预览地址:https://fire100.top,这里大家能够释怀,不会收集面部图片,只是提取了面部特色,并没有上传云端。下边咱们来做个演示看看成果,辨认速度和成功率还是不错的。

性能流程

整个性能的逻辑很简略,前端调起摄像头,辨认到人脸后拍照上传到后盾,后端 SDK 辨认出图片中的人脸特色后,与数据库内的用户人脸特色做比对,比对胜利(类似度在 0.8~1 之间即算同一个人)登录,如辨认到人脸但数据库内未比对胜利则视为新用户注册。

留神:如果要在线上利用,必须要应用 https 能力调起摄像头,本地测试没有限度。

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

申请 SDK

启动我的项目之前先做一点筹备工作,因为应用的是三方的人脸识别 SDK,所以要先在平台申请一个账号,而后在下载对应版本的 SDK。

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 了,源码地址,如果有问题随时征询吧。

正文完
 0