歡迎光臨
每天分享高質量文章

C#離線人臉識別使用ArcFace 2.0開發

作者:深藍s

連結:http://www.cnblogs.com/bodaren/p/10334767.html

一、環境

  • win7以上  VS2013以上

  • sdk版本:ArcFace v2.0

  • x86 x64平臺Debug、Release配置都已透過編譯

 

下載地址:https://github.com/ArcsoftEscErd/ArcfaceDemo_CSharp.git

二、配置過程

1、到虹軟官網下載SDK2.0版本(https://ai.arcsoft.com.cn/index.htm?utm_source=aaa&utm;_medium=referral);

 

2、解壓下載的x86或x64的zip包,本Demo以x64為例;

 

 

3、選擇平臺,如:Debug x64,將libarcsoft_face.dll和libarcsoft_face_engine.dll放到bindDebug下;

 

 

4、修改工程下App.config配置檔案中的APP_ID和對應的SDKKEY64的值;

 

 

5、點選啟動或者F5啟動;

 

6、其他詳細資訊請閱讀專案中doc目錄下的說明檔案。

三、常見問題

1、後引擎初始化失敗              

 

  • 請選擇對應的平臺,如x64,x86        

  • 刪除bin下麵對應的asf_install.dat,freesdk_132512.dat;

  • 請確保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方法進行資料調整。

贊(0)

分享創造快樂