作者:深藍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方法進行資料調整。