当前位置: 首页 > 后端技术 > Java

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

时间:2023-04-01 15:34:05 Java

大家好,我是小付~第一次写文章的时候,曾经写过一篇基于Java实现人脸识别功能的文章,因为开始coding的时候不知道写什么,就简单的做了一个人脸识别的demo。但是没想到的是,在过去的一年里,有很多粉丝加我为好友来咨询这个小demo,因为里面有一个小bug,导致一些新手朋友无法成功启动。从那以后我就开始孜孜不倦地回答各种问题,但是我的精力毕竟有限,最后也答不上来,所以索性建了一个粉丝群,互相分享经验。当问题大规模出现时,我想过发布一个完整版的demo,但是因为家里工作多,根本没有精力。项目上,借这个机会分享一下,这次尽量不给大家留下(埋下的)bug哈哈哈。在具体操作之前,我们先来看看成品的效果。在线预览地址:https://fire100.top。在这里,你可以放心,不会采集人脸图片,只是提取人脸特征,不会上传到云端。下面我们来做个演示看看效果。识别速度和成功率还是不错的。功能流程整个功能的逻辑非常简单。前端调出摄像头,识别出人脸后,拍照上传到后台。对于登录成功(相似度0.8~1表示同一个人),如果识别到人脸但数据库中比对不成功,则视为新用户注册。注意:如果要在线申请,必须使用https调出摄像头,本地测试没有限制。https://p3-juejin.byteimg.com...在申请SDK启动项目之前做一点准备工作,因为你使用的是三方人脸识别SDK,所以你必须先在平台申请一个账号,然后下载相应版本的SDK。SDK地址可能有人会反驳为什么不自己写人脸识别,别问,你不会!目前支持Linux、Windows、IOS、Android版本,每个实名认证账号可以激活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目录,将解压后的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.jar特别注意maven打包配置,一定要加上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后缀的文件路径。弹簧:数据源:#类型:com.zaxxer.hikari.HikariDataSource驱动程序类名:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://127.0.0.1:3306/face?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername:rootpassword:123456#Facerecognition-windowsface:appId:#*********************sdkKey:#*********************路径:D://face配置完这些后,可以直接执行FireControllerApplication,访问:127.0.0.1:8081/login/face。我不会在这里大段发布源代码。有兴趣的朋友可以获取链接下载源码来玩。源码下载Web人脸识别登录的完整源码已经上传到Github,源码地址为,如有疑问,欢迎咨询。