虹軟最新版python接口完整版-創(chuàng)新互聯(lián)

虹軟最新版 python 接口 完整版

當(dāng)前開源的人臉檢測(cè)模型,識(shí)別很多,很多小伙伴也踩過(guò)不少坑。相信不少使用過(guò)dlib和facenet人臉識(shí)別的小伙伴都有這樣的疑惑,為什么論文里高達(dá)99.8以上的準(zhǔn)確率,自己實(shí)際使用下來(lái)的準(zhǔn)確率卻并不好,甚至用來(lái)落實(shí)到百人以內(nèi)的人臉識(shí)別,都經(jīng)常出現(xiàn)誤識(shí)別現(xiàn)象,造成這樣的現(xiàn)象最主要的原因來(lái)自于訓(xùn)練人臉識(shí)別模型的樣本和國(guó)內(nèi)人臉有差距。因此,這些看似準(zhǔn)確率很高的模型,直接拿來(lái)做項(xiàng)目使用是不行的,測(cè)試兩種模型在使用幾百人的考勤圖片上的表現(xiàn),準(zhǔn)確率上dlib和facenet 都很不理想。

成都創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為和龍企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),和龍網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

綜合比較,發(fā)現(xiàn)使用虹軟的人臉識(shí)別接口是目前開源,在國(guó)內(nèi)人臉識(shí)別準(zhǔn)確度上最好的選擇。

遺憾的是當(dāng)前虹軟暫時(shí)沒有提供python 接口代碼,目前網(wǎng)上也有部分使用python調(diào)用虹軟接口的案例,但是類似文章千篇一律,基本都是同一個(gè)代碼,反復(fù)轉(zhuǎn)載,也并沒有能一個(gè)完整調(diào)用虹軟全部功能的python接口,函數(shù)名稱也隨意定義并不好記,使用pycharm 開發(fā)也沒有類函數(shù)成員代碼編寫提示,代碼部分不合理的地方也重復(fù)出現(xiàn)… 實(shí)在是不能忍受當(dāng)前已發(fā)布 的python api 接口參差不齊的現(xiàn)象,為此,特意用了幾天時(shí)間將虹軟當(dāng)前版本的全部功能寫出一個(gè)完整好用的python api接口。

出發(fā)點(diǎn)

本質(zhì)上python接口是使用 ctypes 調(diào)用 虹軟的動(dòng)態(tài)鏈接庫(kù),需要去虹軟官網(wǎng) 去選擇 C/C++ 版本SDK 來(lái)下載依賴文件。為了在代碼使用上 和 虹軟 提供的 C/C++ 版本演示代碼基本一致,此 python 接口 的函數(shù)名和虹軟的函數(shù)名是一樣的,并且 demo.py 的結(jié)構(gòu) 基本就是 C/C++ 版本演示代碼的 python 翻譯版。
代碼地址: ArcFace-python 如果代碼對(duì)你有幫助,給個(gè)star 吧!

優(yōu)化點(diǎn)

1.重寫了所有結(jié)構(gòu)體對(duì)象類的打印屬性 和 成員變量,方便 python 可以直接print 對(duì)象查看虹軟返回的結(jié)果信息,以及 pycharm 編寫代碼時(shí)可以提供 提示信息。
2.在此之前其他博客中的 python 接口 在給虹軟引擎?zhèn)魅雸D像時(shí)都使用了這種方式:

frame_byte=bytes(frame.data)

frame_byte_p=cast(framebyte,c_ubyte_p)

但是以上可以改為:

frame.ctypes.data_as(POINTER(c_ubyte))

這樣可以減少 numpy 圖像轉(zhuǎn)換為字節(jié)流這一步的消耗

注意

1.當(dāng)前接口需要下載虹軟最新的(2.2)C/C++版本 SDK。

2.虹軟的C/C++接口支持很多圖像格式傳入,但是 python 使用opencv 做圖像處理時(shí)基本都是 ASVL_PAF_RGB24_B8G8R8 這種格式(就是cv2.imread() 得到的numpy圖像),并且默認(rèn)使用該接口時(shí) 都是使用 這種圖片格式。因此此接口 依賴 opencv,如果沒有可以直接pip安裝。

3.虹軟的配個(gè)函數(shù)都會(huì)返回一盒狀態(tài)碼,要做好狀態(tài)碼的判斷工作,確保使用正確,如果狀態(tài)碼 返回值不是 MOK(值為0),說(shuō)明函數(shù)執(zhí)行出錯(cuò),可以對(duì)照 doc文檔中的錯(cuò)誤碼解釋對(duì)照。

4.第一次運(yùn)行代碼需要聯(lián)網(wǎng),因?yàn)闀?huì)做激活操作,首次運(yùn)行激活成功后會(huì)得到一個(gè)ArcFace64.dat文件,當(dāng)有此文件以后,可以不用執(zhí)行激活代碼。

5.涉及到傳入圖片的函數(shù)操作,要確保送入的圖片寬度為 4 的整數(shù)倍,如果不是則要提前做好裁剪,或者做resize操作。

6.當(dāng)前默認(rèn)為圖片檢測(cè)模式,人臉屬性值中的faceID始終為空,當(dāng)需要運(yùn)行視頻人臉檢測(cè)的話可以將 初始化引擎 函數(shù)中 ASF_DETECT_MODE_IMAGE改為 ASF_DETECT_MODE_VIDEO即代表追蹤模式,這樣可以減少人臉檢測(cè)的消耗,并且此時(shí)返回的人臉信息中的faceID 將會(huì)有值,這在視頻人臉識(shí)別中很有用,可以減少人臉重復(fù)提取識(shí)別。

7.特征值和人臉屬性檢測(cè)可能會(huì)失敗。虹軟在做特征提取和屬性提取這些功能時(shí)會(huì)對(duì)人臉區(qū)域有一個(gè)判斷操作,如果人臉模糊,或者提供的人臉坐標(biāo)位置不對(duì)有偏差,會(huì)返回81925(人臉特征檢測(cè)結(jié)果置信度低)錯(cuò)誤碼。所以一定要對(duì)返回狀態(tài)碼引起重視。

8.虹軟有兩個(gè)描述人臉檢測(cè)位置和角度信息的對(duì)象 ASF_SingleFaceInfo(單人臉信息) ASF_MultiFaceInfo(多人臉信息),人臉識(shí)別流程是先檢測(cè)到人臉,再對(duì)人臉提取特征值信息,再用特征值信息比較相似度。虹軟人臉檢測(cè)時(shí)返回 ASF_MultiFaceInfo對(duì)象(哪怕只檢測(cè)到了一個(gè)人),用于提取人臉特征信息的函數(shù)需要 輸入 ASF_SingleFaceInfo的對(duì)象,因此在提取特征信息時(shí),需要根據(jù) ASF_MultiFaceInfo中的信息 構(gòu)建 ASF_SingleFaceInfo對(duì)象來(lái)提取特征值,除了 提取特征值函數(shù)外,虹軟的其他人臉屬性 提取,比如:年齡/性別識(shí)別,活體檢測(cè),人臉3D角度 等功能都是要送入 ASF_MultiFaceInfo對(duì)象,但是其中活體檢測(cè)又要求單張大圖片中只能檢測(cè)一個(gè)活體,超出返回未知,而3D角度檢測(cè)單張大圖時(shí)最多返回4個(gè) 人臉的3D角度值,這些地方可能不太好控制,需要注意。

分享題目:虹軟最新版python接口完整版-創(chuàng)新互聯(lián)
本文來(lái)源:http://bm7419.com/article40/cecoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站營(yíng)銷、企業(yè)建站、網(wǎng)站收錄、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)