java人臉識別 虹軟ArcFace 2.0,java SDK使用-解決在linux(centos,ubuntu)下參數(shù)無效問題

虹軟產(chǎn)品地址:http://ai.arcsoft.com.cn/product/arcface.html
虹軟ArcFace功能簡介

  • 人臉檢測
  • 人臉跟蹤
  • 人臉屬性檢測(性別、年齡)
  • 人臉三維角度檢測
  • 人臉對比
    本文使用到的SDK為本人自己使用JNA做的封裝,2.0的使用比1.x的版本使用更方便,api更集中更科學(xué)

在windows 64 系統(tǒng)下,通過jna調(diào)用虹軟的API,一切正常。在centos下,ubuntu下測試,出現(xiàn)參數(shù)無效問題,測試代碼如下


FaceEngine ins = FaceEngine.INSTANCE;
        
//SDK激活
ins.ASFActivation(Conf.appId, Conf.appKey);
PointerByReference phEngine = new PointerByReference();
        
//SDK初始化,需要設(shè)置模式是video,還是image,配置人臉檢測的角度,engine需要支持的功能 mask,最大支持的人臉數(shù)量50,人臉大小16
int mask = FaceEngine.ASF_FACE_DETECT | FaceEngine.ASF_FACERECOGNITION | FaceEngine.ASF_AGE | FaceEngine.ASF_GENDER | FaceEngine.ASF_FACE3DANGLE;
NativeLong ret = ins.ASFInitEngine(FaceEngine.ASF_DETECT_MODE_IMAGE, OrientPriority.AFD_FSDK_OPF_0_ONLY, 16,10, mask, phEngine);
if (ret.longValue() != FaceEngine.MOK) {
             System.out.println("ASFInitEngine ERROR:"+ret.longValue());
        return;
}

初始化引擎的時候,會返回錯誤碼“2”,如下圖:


2222.jpg

后經(jīng)過一個兄弟的友情幫助,問題總算解決,關(guān)于Mode的常量,定義的類型是long,可能是JNA的處理的問題,會把該long當做整形或長整型處理?不確定,但把該參數(shù)后面加上一個l,強制將該值定義為 long 類型,問題解決。
代碼如下:

public static final long ASF_DETECT_MODE_IMAGE=  0xFFFFFFFFl;

//初始化接口定義
NativeLong ASFInitEngine(long detectMode, int detectFaceOrientPriority, int detectFaceScaleVal,int detectFaceMaxNum, int combinedMask,PointerByReference phEngine);

感謝提供解決方式的兄弟,qq好友 “ Ruby-周”

使用已經(jīng)封裝好的SDK進行人臉識別
http://www.itdecent.cn/p/96636db03792
使用已經(jīng)封裝好的SDK進行人臉識別【人臉特征提取比對】
http://www.itdecent.cn/p/ab64464571da
虹軟ArcFace 2.0,java SDK使用、人臉信息識別(年齡、性別)
http://www.itdecent.cn/p/cfe90f82be97

需要完整代碼,加qq:79295735

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容