C#開(kāi)發(fā)實(shí)錄:基于免費(fèi)SDK實(shí)現(xiàn)人臉識(shí)別應(yīng)用開(kāi)發(fā)
隨著人臉識(shí)別技術(shù)應(yīng)用范圍不斷擴(kuò)展,如何在Windows C#上基于免費(fèi)SDK實(shí)現(xiàn)人臉識(shí)別應(yīng)用開(kāi)發(fā),正成為開(kāi)發(fā)者們關(guān)心的話題之一。
對(duì)于該需求,我推薦虹軟視覺(jué)開(kāi)放平臺(tái)的ArcFace 3.0,免費(fèi)、離線且可商用,包含人臉識(shí)別、活體檢測(cè)、年齡檢測(cè)、性別檢測(cè)等豐富功能,算法魯棒性強(qiáng),接入門檻低,同時(shí)支持Windows、iOS、Android(包含Android10)、Linux,是廣大開(kāi)發(fā)者落地AI應(yīng)用的利器。
為幫助開(kāi)發(fā)者快速上手,虹軟工程師團(tuán)隊(duì)針對(duì)C#開(kāi)發(fā)打磨了一期課程,以技術(shù)解析和專項(xiàng)答疑等形式幫助開(kāi)發(fā)者解決難題。建議有興趣嘗試ArcFace3.0的C#開(kāi)發(fā)者可以提前學(xué)習(xí),在實(shí)際開(kāi)發(fā)中可事半功倍。
本期課程要點(diǎn)如下,對(duì)完整課程視頻感興趣的開(kāi)發(fā)者,可以通過(guò)百度搜索"虹軟技術(shù)公開(kāi)課"觀看。
一、要點(diǎn)一【3分鐘跑通C# demo】
課程基于虹軟人臉識(shí)別SDK包中提供的示例代碼,以實(shí)操的形式介紹了如何快速接入使用。接入過(guò)程在課程視頻中有詳細(xì)介紹。建議觀看視頻后自行嘗試配置,即可對(duì)虹軟人臉識(shí)別技術(shù)有一個(gè)初步的了解。
Demo配置過(guò)程如下:
1. 下載Demo
2. 檢查本地系統(tǒng)環(huán)境是否符合要求:
a. .NET Framework 4.5.1及以上
b. Microsoft Visual C++ 2013 運(yùn)行庫(kù)
3. 在虹軟視覺(jué)開(kāi)放平臺(tái)下載SDK,獲取APPID、SDKKEY
4. 配置運(yùn)行Demo:
a.在App.config文件中配置APPID、SDKKEY
b.將SDK lib文件夾中dll文件拷貝到運(yùn)行根目錄下
c.如本地.NET Framework的版本高于4.5.1,直接修改項(xiàng)目的目標(biāo)框架
二、要點(diǎn)二【ArcFace重點(diǎn)接口及參數(shù)介紹】
1.引擎初始化接口:ASFInitEngine()
【說(shuō)明】
引擎初始化接口用于初始化引擎,初始化中的參數(shù)設(shè)置用于定義引擎的屬性和算法功能組合,與算法能夠呈現(xiàn)出的效果息息相關(guān)。
初始化失敗時(shí),根據(jù)錯(cuò)誤碼查詢?cè)蚣纯伞?shù)設(shè)置是開(kāi)發(fā)者最關(guān)心的核心問(wèn)題,也是保障在實(shí)際應(yīng)用場(chǎng)景中最大化發(fā)揮算法效果的關(guān)鍵。視頻中主要介紹以下幾個(gè)參數(shù)在實(shí)際場(chǎng)景下如何應(yīng)用。
【重要參數(shù)說(shuō)明】
· detectMode(檢測(cè)模式):
ASF_DETECT_M(jìn)ODE_VIDEO video模式:適用于攝像頭預(yù)覽,視頻文件識(shí)別
ASF_DETECT_M(jìn)ODE_IMAGE image模式:適用于靜態(tài)圖片識(shí)別。
· detectFaceScaleVal(最小人臉尺寸):代表人臉尺寸相對(duì)于圖片長(zhǎng)邊的占比,數(shù)值越大,能檢測(cè)更小的人臉,效值范圍[2,32],video模式推薦值為16,image模式推薦值32。
· combinedMask(算法功能組合):建議根據(jù)具體業(yè)務(wù)合理選擇算法功能組合,如果功能選擇越多,占用的內(nèi)存越大。
2.人臉特征提取接口:ASFFaceFeatureExtract()
【說(shuō)明】當(dāng)人臉檢測(cè)完成時(shí),可以根據(jù)獲取的人臉信息通過(guò)此接口進(jìn)行對(duì)應(yīng)人臉的特征提取。
【重要參數(shù)說(shuō)明】
· faceInfo:特征提取需要單張準(zhǔn)確的人臉位置和角度,否則可能會(huì)報(bào)81925。
· featureFeature:算法返回的人臉特征值,包含特征byte數(shù)組及特征長(zhǎng)度,特征數(shù)據(jù)庫(kù)存取操作應(yīng)存取特征byte數(shù)組。
3.人臉屬性檢測(cè):ASFProcess()
【說(shuō)明】人臉檢測(cè)成功后,可以根據(jù)人臉信息通過(guò)此接口檢測(cè)人臉屬性,如年齡、性別等。
【重要參數(shù)說(shuō)明】
· combinedMask:只支持引擎初始化時(shí)指定需要檢測(cè)的功能,如引擎初始化時(shí),mask指定為年齡和性別,則不能檢測(cè)3D角度等其他屬性。
· 支持的屬性:ASF_AGE(年齡)、ASF_GENDER(性別)、ASF_FACE3DANGLE(3D角度)、ASF_LIVENESS(RGB活體)。
· Process() 檢測(cè)后可根據(jù)ASFGetXXX()接口獲取對(duì)應(yīng)屬性檢測(cè)結(jié)果。
三、要點(diǎn)三【視頻流識(shí)別和活體檢測(cè)】
下圖為常見(jiàn)視頻流識(shí)別和活體檢測(cè)的邏輯流程圖:
【多線程策略】
· 主線程:包含人臉追蹤以及畫面預(yù)覽功能。
· FR線程:用于人臉特征提取和特征搜索。
· 活體線程:用于人臉活體檢測(cè)。
【優(yōu)化策略】
· FaceID:根據(jù)FaceID標(biāo)識(shí)一個(gè)人,從進(jìn)入畫面到離開(kāi)畫面,對(duì)這一人臉只做一次識(shí)別即可,大大降低系統(tǒng)資源占用。
· 嘗試次數(shù):同一張人臉,特征提取失敗可以做有限次數(shù)的嘗試,提高交互效果。
四、要點(diǎn)四【常見(jiàn)問(wèn)題答疑】
1. 多線程調(diào)用問(wèn)題
a. 同一個(gè)引擎可以使用多線程調(diào)用不同算法。
b. 多線程調(diào)用同一個(gè)算法接口需要啟用不同的引擎。
2. VIDEO和IMAGE模式的區(qū)別
VIDEO模式:
a. 對(duì)視頻流中的人臉進(jìn)行追蹤,人臉框平滑過(guò)渡,不會(huì)出現(xiàn)跳框的現(xiàn)象。
b. 用于預(yù)覽數(shù)據(jù)的人臉追蹤,處理速度快,可避免出現(xiàn)卡頓問(wèn)題。
c. 在視頻模式引入faceId幀,該值用于標(biāo)記一張人臉,當(dāng)一個(gè)人臉從進(jìn)入畫面直 到離開(kāi)畫面,faceId 值不變?捎糜跇I(yè)務(wù)中優(yōu)化程序性能。
IMAGE模式:
a. 針對(duì)單張圖片進(jìn)行人臉檢測(cè)精度更高。
b. 在注冊(cè)人臉庫(kù)時(shí),我們建議使用精度更高的IMAGE模式。
3. 非托管內(nèi)存的操作
C#調(diào)用C++ SDK接口,有些傳參需要以Intptr的形式。
a. 復(fù)制前應(yīng)先為Intptr申請(qǐng)內(nèi)存;
b. 當(dāng)IntPtr不使用時(shí),需要及時(shí)手動(dòng)釋放。
4. 人臉特征數(shù)據(jù)庫(kù)的存儲(chǔ)
人臉特征提取接口返回的featureFeature對(duì)應(yīng)ASF_FaceFeature,數(shù)據(jù)庫(kù)存儲(chǔ)應(yīng)將ASF_FaceFeature .feature轉(zhuǎn)化為byte[]再進(jìn)行數(shù)據(jù)庫(kù)存儲(chǔ),featureSize表示byte[]的長(zhǎng)度。
5. SDK dll文件的引用方法(使用DllImport方法)
a. 使用相對(duì)路徑,將dll直接放到執(zhí)行目錄下(web程序不建議使用);
b. 使用絕對(duì)路徑;
c. 將dll文件放到系統(tǒng)盤Windows下的System32文件夾下;
d. 為dll文件所在文件夾添加環(huán)境變量。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
-
10 月之暗面,絕地反擊
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 4 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?