Java版 人臉識別SDK demo

虹軟人臉識別SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓緊上車!java

前言 因爲業務需求,最近跟人臉識別槓上了,本覺得虹軟提供的SDK是那種面向開發語言的,結果是一堆dll······像我這樣的Java猿忽然就感受整我的都很差了;近期遇上了SDK2.0的升級,在官方論壇、Google、百度、QQ等等的幫助下,爬過了一個又一個坑,終於搞定了!噗!回過頭來發現很多夥伴們都像我當初同樣迷茫,So,我回來拯救世界了~git

後更:剛寫了沒多久,虹軟SDK的Java版Demo就出來了.................github

注意算法

/ 本項目須要lombok的支持 / 虹軟官方分爲「人證SDK」、「活體檢測」和「ArcFace」三種,本項目使用的是「ArcFace」 / Windows 32位、64位指的是JDK,並非Windows操做系統的位數 / master分支爲最新的SDK 2.0版本,1.x的版本實現請查看1.x分支(1.x實現來自於官方論壇Demo) / 本項目實現了對SDK的輕度封裝,且爲單線程模式,多線程狀況下還沒有測試,放過可憐的孩子吧...多線程

功能特色maven

對SDK接口進行了二次封裝,全部操做只須要一個簡單的工具類就ojbk,用起來爽的一批~
  • 激活引擎
  • 初始化引擎
  • 檢測人臉
  • 提取特徵值
  • 對比特徵值
  • 年齡/性別/角度檢測預處理
  • 獲取年齡
  • 獲取性別
  • 獲取3D角度
  • 獲取引擎版本
  • 銷燬引擎

快速開始 安裝項目工具

git clone https://github.com/jastar-wang/arcface.git

而後將項目導入到Eclipse或IDEA中並進行maven update單元測試

下載DLL 登陸虹軟官方網站,下載ArcFace 2.0的SDK,並將libarcsoft_face.dll和libarcsoft_face_engine.dll兩個文件粘貼到src/test/resources目錄下測試

配置KEY 將官網獲取到的SDK激活碼填入到com.arcsoft.face.util.ConfUtil類的對應常量中優化

測試 打開com.arcsoft.face.EngineTest類,運行單元測試便可

參考資料

-虹軟SDK的常見問題指南
-虹軟官方問答指導集錦

常見問題 (1)SDK有效期?

答:SDK激活碼有效期爲一年,到期以後須要從新申請激活碼,而且從新下載SDK,SDK與激活碼應當匹配。

(2)SDK 2.0首次使用?

答:2.0版本首次使用須要聯網激活,激活後會在程序運行目錄下生成幾個「.dat」文件(asf_install.dat,freesdk_數字.dat),以後則能夠離線使用;若更換了機器設備,須要刪除這些「.dat」文件,並從新聯網激活。

(3)SDK 2.0特徵值?

答:1.x的版本特徵值大小爲20k左右,2.0版本算法作了大幅優化,縮小到了1k,且長度固定爲1023 byte。

(4)SDK 2.0對於圖片的要求?

答:圖片的寬度必須是4的整數倍;當圖片爲BGR模式時,高度須要是2的整數倍。

(5)SDK 2.0的閾值?

答:因爲2.0的算法作了優化,匹配度相對較高,推薦閾值設置爲0.8(1.x版本爲0.6),具體根據實際場景上下調整。

(6)SDK 2.0提取特徵值?

答:2.0版本對內存作了優化,會反覆使用同一個特徵值對象的內存,因此提取特徵值以後須要對特徵值對象從新copy,不然SDK再進行提取時會覆蓋了原特徵值。

(7)關於多線程使用?

答:多線程使用場景下,每一個線程都須要初始化一個引擎。

(8)如何加載圖片?

答:可使用「ImageIO.read()方式讀取圖片,但該方式讀取某些類型的圖片時,不會正確讀取ICC的信息,所以會在寫出圖片時生成一層紅色蒙版(若是不寫出圖片那就無所謂)。有兩種解決方案:(1)參照EngineTest.testAll()方法中的加載方式,這種方式僅限於Windows下使用,由於須要用到圖形環境的支持。(2)使用javacv(基於opencv)加載圖片,pom依賴中已註釋,本人放棄的緣由是由於jar包太大且需求不會有Linux環境。」

(9)運行EngineTest單元測試提示「...找不到指定模塊」?

答:這是由於你的系統缺乏dll運行的必要組件,別擔憂,點擊 這裏 進行下載,根據自身狀況選擇32位或64位安裝便可。

相關文章
相關標籤/搜索