摘要:但讓我沒(méi)想到的是,在過(guò)去的一年里有好多好多粉絲加我好友咨詢這個(gè)小,因?yàn)槔镞呌悬c(diǎn)小,導(dǎo)致一些新手朋友不能成功啟動(dòng)。從此我就開(kāi)啟不厭其煩的解答各種疑問(wèn),不過(guò)我精力畢竟有限,最后實(shí)在回答不過(guò)來(lái),干脆弄了個(gè)群粉絲互相分享經(jīng)驗(yàn)。
大家好,我是小富~
在我最開(kāi)始寫文章的時(shí)候曾經(jīng)寫過(guò)一篇文章 基于 Java 實(shí)現(xiàn)的人臉識(shí)別功能,因?yàn)閯傞_(kāi)始碼字不知道寫點(diǎn)什么,就簡(jiǎn)單弄了個(gè)人臉識(shí)別的Demo。
但讓我沒(méi)想到的是,在過(guò)去的一年里有好多好多粉絲加我好友咨詢這個(gè)小demo,因?yàn)槔镞呌悬c(diǎn)小bug,導(dǎo)致一些新手朋友不能成功啟動(dòng)。
從此我就開(kāi)啟不厭其煩的解答各種疑問(wèn),不過(guò)我精力畢竟有限,最后實(shí)在回答不過(guò)來(lái),干脆弄了個(gè)群粉絲互相分享經(jīng)驗(yàn)。
問(wèn)題大面積出現(xiàn)的時(shí)候我就想過(guò)再出一個(gè)完整版的demo,可家里工作一大堆事搞得一點(diǎn)精力都沒(méi)有,一直拖到了現(xiàn)在,正好現(xiàn)在把這個(gè)人臉識(shí)別登錄功能用在了自己的項(xiàng)目上,借此機(jī)會(huì)分享出來(lái)了,這次盡可能不給大家留(埋)bug 哈哈哈 。
具體操作之前先看下成品的效果,線上預(yù)覽地址:https://fire100.top,這里大家可以放心,不會(huì)收集面部圖片,只是提取了面部特征,并沒(méi)有上傳云端。下邊我們以冰冰來(lái)做個(gè)演示看看效果,識(shí)別速度和成功率還是不錯(cuò)的。
整個(gè)功能的邏輯很簡(jiǎn)單,前端調(diào)起攝像頭,識(shí)別到人臉后拍照上傳到后臺(tái),后端SDK識(shí)別出圖片中的人臉特征后,與數(shù)據(jù)庫(kù)內(nèi)的用戶人臉特征做比對(duì),比對(duì)成功(相似度在0.8~1之間即算同一個(gè)人)登錄,如識(shí)別到人臉但數(shù)據(jù)庫(kù)內(nèi)未比對(duì)成功則視為新用戶注冊(cè)。
注意:如果要在線上應(yīng)用,必須要使用https才能調(diào)起攝像頭,本地測(cè)試沒(méi)有限制。
啟動(dòng)項(xiàng)目之前先做一點(diǎn)準(zhǔn)備工作,因?yàn)槭褂玫氖侨降娜四樧R(shí)別SDK,所以要先在平臺(tái)申請(qǐng)一個(gè)賬號(hào),然后在下載對(duì)應(yīng)版本的SDK。
官網(wǎng)地址: https://ai.arcsoft.com.cn/ucenter/resource/build/index.html#/login
可能會(huì)有人抬杠為啥你不自己寫個(gè)人臉識(shí)別,別問(wèn),問(wèn)就是不會(huì)!
目前支持Linux
、Windows
、IOS
、Android
版本,每個(gè)實(shí)名認(rèn)證的賬號(hào)可以激活100臺(tái)設(shè)備,換句話說(shuō)就是同一個(gè)賬號(hào)申請(qǐng)的SDK可以在100個(gè)設(shè)備上運(yùn)行,一般情況下夠用了。
下載的SDK包目錄結(jié)構(gòu)中libs
最為重要,samplecode
里有示例代碼,doc
有API文檔。我們需要的是libs
里邊的arcsoft-sdk-face-3.0.0.0.jar
、和三個(gè)對(duì)應(yīng)平臺(tái)的引擎文件.dll
或者.so
后綴的文件。
項(xiàng)目本身是springboot + vue 前后端分離的,但為了小伙伴們開(kāi)箱即用,我把這個(gè)功能前后端整合在一起,再用個(gè) jpa
做持久化,表也不用自己建了,給大家省點(diǎn)時(shí)間。
使用SDK的時(shí)候遇到過(guò)一點(diǎn)小坑,所以下邊說(shuō)的詳細(xì)一點(diǎn)
首先在springboot啟動(dòng)類所在項(xiàng)目根目錄下創(chuàng)建一個(gè)lib
目錄,將SDK中解壓出的arcsoft-sdk-face-3.0.0.0.jar
放進(jìn)去,pom.xml
文件中引入這個(gè) 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
打包配置要特別注意一點(diǎn),一定要加上includeSystemScope
,這樣 maven 打包時(shí)會(huì)將外部引入的jar包(比如在根目錄下或resource
文件下新加外部jar包)打包到項(xiàng)目jar中,服務(wù)器上項(xiàng)目才能運(yùn)行。
不加此配置,本地可以運(yùn)行,因?yàn)楸镜乜梢栽賚ib下找到外部包,但是服務(wù)器上jar中是沒(méi)有的。
org.springframework.boot spring-boot-maven-plugin ${spring-boot.version} true true com.firebook.FireBookApplication false
application.yml
文件的配置更簡(jiǎn)單,搞個(gè)數(shù)據(jù)庫(kù)存放人臉特征數(shù)據(jù),填寫申請(qǐng)SDK時(shí)得到的appId
和 sdkKey
,以及 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# 人臉識(shí)別-windowsface: appId: #********************* sdkKey: #********************* path: D://face
配置好這些直接執(zhí)行FireControllerApplication
就可以了,訪問(wèn):127.0.0.1:8081/login/face
。
這里源碼我就不大段大段往出貼了,感興趣的小伙伴自行獲取鏈接下載源碼玩玩吧。
web人臉識(shí)別登錄的完整源碼已經(jīng)上傳到Github
了,關(guān)注公眾號(hào):程序員內(nèi)點(diǎn)事,回復(fù)【人臉識(shí)別】,獲取下載地址,如果有問(wèn)題隨時(shí)咨詢吧。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/125055.html
摘要:打包配置要特別注意一點(diǎn),一定要加上,這樣打包時(shí)會(huì)將外部引入的包比如在根目錄下或文件下新加外部包打包到項(xiàng)目中,服務(wù)器上項(xiàng)目才能運(yùn)行。 大家好,我是小富~在我最開(kāi)始寫文章的時(shí)候曾經(jīng)寫過(guò)一篇文章 基于 Java 實(shí)現(xiàn)的人臉識(shí)別功能,因?yàn)閯傞_(kāi)始碼字不知道寫點(diǎn)什么,就簡(jiǎn)單弄了個(gè)人臉識(shí)別的Demo。但讓我沒(méi)想到的是,在過(guò)去...
摘要:二跨域解決方案原理利用標(biāo)簽沒(méi)有跨域限制的漏洞,網(wǎng)頁(yè)可以得到從其他來(lái)源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡(jiǎn)單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來(lái)終覺(jué)淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...
摘要:二跨域解決方案原理利用標(biāo)簽沒(méi)有跨域限制的漏洞,網(wǎng)頁(yè)可以得到從其他來(lái)源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡(jiǎn)單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來(lái)終覺(jué)淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...
摘要:本文基于環(huán)境,采用為基礎(chǔ)來(lái)構(gòu)建實(shí)時(shí)人臉檢測(cè)與識(shí)別系統(tǒng),探索人臉識(shí)別系統(tǒng)在現(xiàn)實(shí)應(yīng)用中的難點(diǎn)。對(duì)于人臉檢測(cè)方法,效果好于的方法,但是檢測(cè)力度也難以達(dá)到現(xiàn)場(chǎng)應(yīng)用標(biāo)準(zhǔn)。本文中,我們采用了基于深度學(xué)習(xí)方法的人臉檢測(cè)系統(tǒng)。 git地址:https://github.com/chenlinzho... 本文主要介紹了系統(tǒng)涉及的人臉檢測(cè)與識(shí)別的詳細(xì)方法,該系統(tǒng)基于python2.7.10/opencv...
摘要:本文基于環(huán)境,采用為基礎(chǔ)來(lái)構(gòu)建實(shí)時(shí)人臉檢測(cè)與識(shí)別系統(tǒng),探索人臉識(shí)別系統(tǒng)在現(xiàn)實(shí)應(yīng)用中的難點(diǎn)。對(duì)于人臉檢測(cè)方法,效果好于的方法,但是檢測(cè)力度也難以達(dá)到現(xiàn)場(chǎng)應(yīng)用標(biāo)準(zhǔn)。本文中,我們采用了基于深度學(xué)習(xí)方法的人臉檢測(cè)系統(tǒng)。 git地址:https://github.com/chenlinzho... 本文主要介紹了系統(tǒng)涉及的人臉檢測(cè)與識(shí)別的詳細(xì)方法,該系統(tǒng)基于python2.7.10/opencv...
閱讀 2916·2021-11-25 09:43
閱讀 2342·2021-11-24 09:39
閱讀 2728·2021-09-23 11:51
閱讀 1418·2021-09-07 10:11
閱讀 1466·2019-08-27 10:52
閱讀 1949·2019-08-26 12:13
閱讀 3369·2019-08-26 11:57
閱讀 1407·2019-08-26 11:31