当前位置: 首页 > 科技观察

期待已久,Web人脸识别登录完整版来了,我喜欢这种风格

时间:2023-03-23 01:39:52 科技观察

转载本文请联系程序员内电史公众号。刚开始写文章的时候写了一篇基于Java的人脸识别功能的文章。因为一开始不知道写什么,就简单做了一个人脸识别的demo。但是没想到的是,在过去的一年里,有很多粉丝加我为好友来咨询这个小demo,因为里面有一个小bug,导致一些新手朋友无法成功启动。从那以后我就开始孜孜不倦地回答各种问题,但是我的精力毕竟有限,最后也答不上来,所以索性建了一个粉丝群,互相分享经验。当问题大规模出现时,我想过发布一个完整版的demo,但是因为家里工作多,根本没有精力。项目上,借这个机会分享一下,这次尽量不给大家留下(埋下的)bug哈哈哈。在具体操作之前,我们先来看看成品的效果。在线预览地址:https://fire100.top。在这里,你可以放心,不会采集人脸图片,只是提取人脸特征,不会上传到云端。下面我们来做个演示看看效果。识别速度和成功率还是不错的。功能流程整个功能的逻辑非常简单。前端调出摄像头,识别出人脸后,拍照上传到后台。对于登录成功(相似度0.8~1表示同一个人),如果识别到人脸但数据库中比对不成功,则视为新用户注册。注意:如果要在线申请,必须使用https调出摄像头,本地测试没有限制。在申请SDK启动项目前做一些准备工作。由于您使用的是第三方人脸识别SDK,您必须先在平台上申请一个账号,然后下载相应版本的SDK。》官网地址:https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/login有人可能会反驳为什么不自己写人脸识别,别问,问就好!目前支持Linux、Windows、IOS、Android版本,每个实名认证账号可以激活100台设备,也就是说同一个账号申请的SDK可以在100台设备上运行,一般情况下就够用了。下载libs最多重要的是SDK包的目录结构,samplecode中有示例代码,doc中有API文档。我们需要的是libs中的arcsoft-sdk-face-3.0.0.0.jar,以及对应的三个平台引擎文件。dll或带有.so后缀的文件。项目配置项目本身是springboot+vue的前后端分离的,但是为了朋友开箱即用,我把这个功能前后端整合起来,然后用jpa进行持久化,这样就不用自己建表了,这里为大家节省时间。我在使用SDK的时候遇到了一个小坑,下面详细说说。首先在springboot启动类所在项目根目录下创建lib目录,将解压后的arcsoft-sdk-face-3.0.0.0.jar放入SDK中。进去,在pom.xml文件中引入这个Jar。com.arcsoft.facearcsoft-sdk-face3.0.0.0system${basedir}/lib/arcsoft-sdk-face-3.0.0.0.jarmaven打包配置需要特别注意,一定要加上includeSystemScope,这样maven才会打包外部导入的jar包(比如在根目录下或者资源文件下添加一个外部jar包)打包到项目jar中,这样项目就可以在服务器上运行了。没有这个配置,在本地是可以运行的,因为本地lib下可以找到外部包,但是服务器中没有jar。org.springframework.bootspring-boot-maven-plugin${spring-boot.version}<配置>truetruecom.firebook.FireBookApplicationfalseapplication.yml文件的配置是更简单一点,建一个数据库存放人脸特征数据,填写申请SDK时获取的appId和sdkKey,path为存放引擎文件.dll或.so后缀的文件路径。弹簧:数据源:#type:com.zaxxer.hikari.HikariDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://127.0.0.1:3306/face?useUnicode=true&characterEncoding=UTF-8&serverTimezone=亚洲/上海用户名:root密码:123456#人脸识别-windowsface:appId:#*********************sdkKey:#*********************path:D://face配置这些,直接执行FireControllerApplication,访问:127.0.0.1:8081/login/face。我不会在这里大段发布源代码。有兴趣的朋友可以获取链接下载源码来玩。