C# 離線人臉識別 虹軟ArcFace 2.0 demo

weixin_33912445發表於2019-01-30

環境:
win7以上 VS2013以上
sdk版本:ArcFace v2.0
x86 x64平臺Debug、Release配置都已通過編譯
下載地址:https://github.com/ArcsoftEscErd/ArcfaceDemo_CSharp.git

配置過程:

  1. 虹軟官網下載SDK2.0版本,點選下載
  2. 解壓下載的x86或x64的zip包,本Demo以x64為例


    2576226-66c9e98c91c02079.png
    在這裡插入圖片描述
  3. 選擇平臺,如:
    2576226-203068a044e293bc.png
    在這裡插入圖片描述

    ,將libarcsoft_face.dll和libarcsoft_face_engine.dll放到bin\x64\Debug下


    2576226-1e87ae40d3f90065.png
    在這裡插入圖片描述
  4. 修改工程下App.config配置檔案中的APP_ID和對應的SDKKEY64的值


    2576226-2bd43a41acc7a1d7.png
    在這裡插入圖片描述
  5. 點選啟動或者F5啟動;
  6. 其他詳細資訊請閱讀專案中doc目錄下的說明文件;

常見問題:
1.後引擎初始化失敗
(1)請選擇對應的平臺,如x64,x86
(2)刪除bin下面對應的asf_install.dat,freesdk_132512.dat;
(3)請確保App.config下的appid,和appkey與當前sdk一一對應。

2.SDK支援那些格式的圖片人臉檢測?
目前SDK支援的圖片格式有jpg,jpeg,png,bmp等。

3.使用人臉檢測功能對圖片大小有要求嗎?
推薦的圖片大小最大不要超過2M,因為圖片過大會使人臉檢測的效率不理想,當然圖片也不宜過小,否則會導致無法檢測到人臉。

4.使用人臉識別引擎提取到的人臉特徵資訊是什麼?
人臉特徵資訊是從圖片中的人臉上提取的人臉特徵點,是byte[]陣列格式。

5.SDK人臉比對的閾值設為多少合適?
推薦值為0.8,使用者可根據不同場景適當調整閾值。

6.可不可以將人臉特徵資訊儲存起來,等需要進行人臉比對的時候直接拿儲存好的人臉特徵進行比對?
可以,當人臉個數比較多時推薦先儲存起來,在使用時直接進行比對,這樣可以大大提高比對效率。存入資料庫時,請以Blob的格式進行儲存,不能以string或其他格式儲存。

7.在.Net專案中出現堆疊溢位問題,如何解決?
.Net平臺設定的預設堆疊大小為256KB,SDK中需要的大小為512KB以上,推薦調整堆疊的方法為:
new Thread(new ThreadStart(delegate {
ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pEngine, imageInfo);
}), 1024 * 512).Start();

8.X86模式下批量註冊人臉有記憶體溢位或圖片空指標
請增加虛擬記憶體或每次批量註冊人臉控制在20張圖片範圍內

9.圖片中有人臉,但是檢測時未檢測到人臉
(1)請調整detectFaceScaleVal的值;
(2)請確認圖片的寬度是否為4的倍數;
(3)請確認圖片是否通過ImageUtil.ReadBMP方法進行資料調整。

感謝 虹軟提供免費離線的人臉識別SDK

相關文章