中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

模型僅有7M:輕量級高精度人臉識別方法DBFace

發布時間:2020-08-18 18:24:58 來源:ITPUB博客 閱讀:145 作者:AIBigbull2050 欄目:互聯網科技
2020-04-10 12:47:10

機器之心報道

參與:Racoon X

這個僅 7M 大小的人臉識別模型幾乎識別出了世界最大自拍照中的所有人像!

模型僅有7M:輕量級高精度人臉識別方法DBFace

項目簡介

之前機器之心報道過一個跨平臺人臉識別項目,在 CPU 上就能輕松跑出 1000FPS。這次介紹的項目也是一個輕量級人臉識別項目。不同的是,該項目在保持較小參數量的前提下,識別精度要高很多,并且只需要 OpenCV 和 PyTorch 就能運行。

DBFace 是一個輕量級的實時人臉識別方法,其有著更快的識別速度與更高的精度。下圖展示了多種人臉檢測方法在 WiderFace 數據集上的測試效果。可以看到不僅 DBFace 模型的大小最小,其在 Easy、medium、Hard 三個測試任務中均取得了最高的識別精度。

模型僅有7M:輕量級高精度人臉識別方法DBFace

項目地址:https://github.com/dlunion/DBFace

WiderFace 是一個關于人臉檢測的基準跑分數據集,其中包含 32,203 張圖片以及在各方面劇烈的 393,703 張人臉,數據集具有從簡單到困難等不同難度的任務。下圖是改數據集中一些樣本的展示,可以看到,要想準確地識別出圖中所有人臉還是很有挑戰的。DBFace 在該數據集的不同任務上分別取得 0.925、0.920、0.847 的準確率,實屬不易。

模型僅有7M:輕量級高精度人臉識別方法DBFace

有關 WiderFace 的詳細介紹請讀者移步其官網:

http://shuoyang1213.me/WIDERFACE/

效果展示

下圖展示了不同人臉識別方法在 WiderFace 數據集上的 P-R 曲線。P-R 曲線可以較直觀地展示二分類器的 Precision 和 Recall。當需要對不同算法進行比較時,若某個二分類器的 P-R 曲線被另一個二分類器的 P-R 曲線完全包住,即表明后者的性能優于前者。從圖中可以看到,DBFace 包圍的面積在三個任務中均相對較大。

模型僅有7M:輕量級高精度人臉識別方法DBFace

當閾值設置為 0.2 時,DBFace 對這張世界最大的自拍照識別效果如下圖所示:

模型僅有7M:輕量級高精度人臉識別方法DBFace

可以看到,DBFace 的識別準確率非常高,圖中很多人臉甚至放大后單憑肉眼也很難分辨,DBFace 卻仍然能夠識別出來,并且模型大小僅 7M,完全能夠在邊緣設備上實時運行。于是,機器之心也上手測試了一番。

項目實測

項目作者提供的代碼示例中包含對靜態圖片的識別,同時也有一個調用電腦攝像頭的 GUI。值得注意的是,該項目并不需要太多依賴項,只要有 PyTorch、Numpy 和 OpenCV 即可運行。由于以上依賴環境都是非常常用的擴展庫,網上有大量相應安裝教程,這里就略過其安裝步驟。

在 main.py 中,image_demo() 與 camera_demo() 分別對應靜態圖片識別與調用攝像頭進行識別。靜態圖片識別代碼為:

def image_demo():

dbface = DBFace()

dbface.eval()

if HAS_CUDA:

dbface.cuda()

dbface.load("model/dbface.pth")

detect_image(dbface, "datas/selfie.jpg")

以上代碼將會讀取訓練后的模型,對圖片 datas/selfie.jpg 進行識別,并將結果保存到 detect_result/selfie.draw.jpg。

讓我們來看一下識別效果:

模型僅有7M:輕量級高精度人臉識別方法DBFace

從上圖可以看到,即使在室內燈光顏色、明暗差別較大的環境下,DBFace 也識別出了圖中幾乎所有的人,甚至是中間那個一邊畫彩虹,一邊指向閃耀燈球戴頭盔的人也難逃其「魔掌」。當然,由于這里設置的檢測閾值較低,存在一些誤分類的現象。圖中一些人的手和右上角的燈球就被誤識別為了人臉。適當調高閾值即可消除此現象。

調用電腦攝像頭檢測的代碼為:

def camera_demo():

dbface = DBFace()

dbface.eval()

if HAS_CUDA:

dbface.cuda()

dbface.load("model/dbface.pth")

cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)

cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

ok, frame = cap.read()

while ok:

objs = detect(dbface, frame)

for obj in objs:

common.drawbbox(frame, obj)

cv2.imshow("demo DBFace", frame)

key = cv2.waitKey(1) & 0xFF

if key == ord('q'):

break

ok, frame = cap.read()

運行以上代碼將會生成一個 640x480 的 GUI 界面,調用攝像頭實時進行人臉檢測。

感興趣的小伙伴趕快將本項目 git clone 到本地測試一下吧!

https://www.toutiao.com/i6813939976317698567/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民权县| 陇南市| 农安县| 东安县| 富源县| 桂平市| 沭阳县| 玛多县| 兰州市| 望城县| 平潭县| 灯塔市| 郧西县| 蒲城县| 利川市| 蒙山县| 东海县| 临潭县| 浑源县| 老河口市| 固原市| 隆化县| 青冈县| 邵阳市| 广宁县| 盐边县| 白银市| 昌宁县| 唐河县| 公主岭市| 怀柔区| 桃园县| 信宜市| 六安市| 墨玉县| 遵义市| 衢州市| 内江市| 文登市| 峨眉山市| 盱眙县|