C#開(kāi)發(fā)實(shí)錄:基于免費SDK實(shí)現人臉識別應用開(kāi)發(fā)

發(fā)布時(shí)間:2020-6-17 14:27    發(fā)布者:eechina
關(guān)鍵詞: SDK , 人臉識別
隨著(zhù)人臉識別技術(shù)應用范圍不斷擴展,如何在Windows C#上基于免費SDK實(shí)現人臉識別應用開(kāi)發(fā),正成為開(kāi)發(fā)者們關(guān)心的話(huà)題之一。

對于該需求,我推薦虹軟視覺(jué)開(kāi)放平臺的ArcFace 3.0,免費、離線(xiàn)且可商用,包含人臉識別、活體檢測、年齡檢測、性別檢測等豐富功能,算法魯棒性強,接入門(mén)檻低,同時(shí)支持Windows、iOS、Android(包含Android10)、Linux,是廣大開(kāi)發(fā)者落地AI應用的利器。

為幫助開(kāi)發(fā)者快速上手,虹軟工程師團隊針對C#開(kāi)發(fā)打磨了一期課程,以技術(shù)解析和專(zhuān)項答疑等形式幫助開(kāi)發(fā)者解決難題。建議有興趣嘗試ArcFace3.0的C#開(kāi)發(fā)者可以提前學(xué)習,在實(shí)際開(kāi)發(fā)中可事半功倍。

本期課程要點(diǎn)如下,對完整課程視頻感興趣的開(kāi)發(fā)者,可以通過(guò)百度搜索“虹軟技術(shù)公開(kāi)課”觀(guān)看。

一、要點(diǎn)一【3分鐘跑通C# demo】

課程基于虹軟人臉識別SDK包中提供的示例代碼,以實(shí)操的形式介紹了如何快速接入使用。接入過(guò)程在課程視頻中有詳細介紹。建議觀(guān)看視頻后自行嘗試配置,即可對虹軟人臉識別技術(shù)有一個(gè)初步的了解。

Demo配置過(guò)程如下:

1. 下載Demo

2. 檢查本地系統環(huán)境是否符合要求:

.NET Framework 4.5.1及以上

Microsoft Visual C++ 2013 運行庫

3. 在虹軟視覺(jué)開(kāi)放平臺下載SDK,獲取APPID、SDKKEY

4. 配置運行Demo:

a.在A(yíng)pp.config文件中配置APPID、SDKKEY

b.將SDK lib文件夾中dll文件拷貝到運行根目錄下

c.如本地.NET Framework的版本高于4.5.1,直接修改項目的目標框架

二、要點(diǎn)二【ArcFace重點(diǎn)接口及參數介紹】

1.引擎初始化接口:ASFInitEngine()



【說(shuō)明】

引擎初始化接口用于初始化引擎,初始化中的參數設置用于定義引擎的屬性和算法功能組合,與算法能夠呈現出的效果息息相關(guān)。

初始化失敗時(shí),根據錯誤碼查詢(xún)原因即可。參數設置是開(kāi)發(fā)者最關(guān)心的核心問(wèn)題,也是保障在實(shí)際應用場(chǎng)景中最大化發(fā)揮算法效果的關(guān)鍵。視頻中主要介紹以下幾個(gè)參數在實(shí)際場(chǎng)景下如何應用。

【重要參數說(shuō)明】

detectMode(檢測模式):

ASF_DETECT_MODE_VIDEO video模式:適用于攝像頭預覽,視頻文件識別

ASF_DETECT_MODE_IMAGE image模式:適用于靜態(tài)圖片識別。

detectFaceScaleVal(最小人臉尺寸):代表人臉尺寸相對于圖片長(cháng)邊的占比,數值越大,能檢測更小的人臉,效值范圍[2,32],video模式推薦值為16,image模式推薦值32。

combinedMask(算法功能組合):建議根據具體業(yè)務(wù)合理選擇算法功能組合,如果功能選擇越多,占用的內存越大。

2.人臉特征提取接口:ASFFaceFeatureExtract()



【說(shuō)明】當人臉檢測完成時(shí),可以根據獲取的人臉信息通過(guò)此接口進(jìn)行對應人臉的特征提取。

【重要參數說(shuō)明】

faceInfo:特征提取需要單張準確的人臉位置和角度,否則可能會(huì )報81925。

featureFeature:算法返回的人臉特征值,包含特征byte數組及特征長(cháng)度,特征數據庫存取操作應存取特征byte數組。

3.人臉屬性檢測:ASFProcess()



【說(shuō)明】人臉檢測成功后,可以根據人臉信息通過(guò)此接口檢測人臉屬性,如年齡、性別等。

【重要參數說(shuō)明】

combinedMask:只支持引擎初始化時(shí)指定需要檢測的功能,如引擎初始化時(shí),mask指定為年齡和性別,則不能檢測3D角度等其他屬性。

支持的屬性:ASF_AGE(年齡)、ASF_GENDER(性別)、ASF_FACE3DANGLE(3D角度)、ASF_LIVENESS(RGB活體)。

Process() 檢測后可根據ASFGetXXX()接口獲取對應屬性檢測結果。

三、要點(diǎn)三【視頻流識別和活體檢測】

下圖為常見(jiàn)視頻流識別和活體檢測的邏輯流程圖:



【多線(xiàn)程策略】

主線(xiàn)程:包含人臉追蹤以及畫(huà)面預覽功能。

FR線(xiàn)程:用于人臉特征提取和特征搜索。

活體線(xiàn)程:用于人臉活體檢測。

【優(yōu)化策略】

FaceID:根據FaceID標識一個(gè)人,從進(jìn)入畫(huà)面到離開(kāi)畫(huà)面,對這一人臉只做一次識別即可,大大降低系統資源占用。

嘗試次數:同一張人臉,特征提取失敗可以做有限次數的嘗試,提高交互效果。

四、要點(diǎn)四【常見(jiàn)問(wèn)題答疑】

1. 多線(xiàn)程調用問(wèn)題

a. 同一個(gè)引擎可以使用多線(xiàn)程調用不同算法。

b. 多線(xiàn)程調用同一個(gè)算法接口需要啟用不同的引擎。

2. VIDEO和IMAGE模式的區別

VIDEO模式:

a. 對視頻流中的人臉進(jìn)行追蹤,人臉框平滑過(guò)渡,不會(huì )出現跳框的現象。

b. 用于預覽數據的人臉追蹤,處理速度快,可避免出現卡頓問(wèn)題。

c. 在視頻模式引入faceId幀,該值用于標記一張人臉,當一個(gè)人臉從進(jìn)入畫(huà)面直 到離開(kāi)畫(huà)面,faceId 值不變?捎糜跇I(yè)務(wù)中優(yōu)化程序性能。

IMAGE模式:

a. 針對單張圖片進(jìn)行人臉檢測精度更高。

b. 在注冊人臉庫時(shí),我們建議使用精度更高的IMAGE模式。

3. 非托管內存的操作

C#調用C++ SDK接口,有些傳參需要以Intptr的形式。

a. 復制前應先為Intptr申請內存;

b. 當IntPtr不使用時(shí),需要及時(shí)手動(dòng)釋放。

4. 人臉特征數據庫的存儲

人臉特征提取接口返回的featureFeature對應ASF_FaceFeature,數據庫存儲應將ASF_FaceFeature .feature轉化為byte[]再進(jìn)行數據庫存儲,featureSize表示byte[]的長(cháng)度。

5. SDK dll文件的引用方法(使用DllImport方法)

a. 使用相對路徑,將dll直接放到執行目錄下(web程序不建議使用);

b. 使用絕對路徑;

c. 將dll文件放到系統盤(pán)Windows下的System32文件夾下;

d. 為dll文件所在文件夾添加環(huán)境變量。
本文地址:http://selenalain.com/thread-593500-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页