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

2020-12-22 澎湃新聞

機器之心

機器之心報導

參與:Racoon X

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

項目簡介

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

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

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

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

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

http://shuoyang1213.me/WIDERFACE/

效果展示

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

當閾值設置為 0.2 時,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。

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

從上圖可以看到,即使在室內燈光顏色、明暗差別較大的環境下,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 到本地測試一下吧!

本文為機器之心報導,轉載請聯繫本公眾號獲得授權。

✄------------------------------------------------

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

閱讀原文

相關焦點

  • 如何應用MTCNN和FaceNet模型實現人臉檢測及識別
    AI 前線導讀:人臉檢測是對人臉進行識別和處理的第一步,主要用於檢測並定位圖片中的人臉,返回高精度的人臉框坐標及人臉特徵點坐標。人臉識別會進一步提取每個人臉中所蘊涵的身份特徵,並將其與已知的人臉進行對比,從而識別每個人臉的身份。
  • 京東數科自研人臉檢測器Centerface
    2月25日消息,京東數科自研的輕量級人臉檢測器Centerface可以同時預測面部框和界標位置,通過將人臉檢測和對齊轉換為標準關鍵點估計問題,克服了以前基於錨的方法的缺點。實驗結果表明,Centerface能夠以較小的模型尺寸實現實時速度和高精度,從而使其成為大多數人臉檢測和對齊應用程式的理想選擇。
  • 人臉識別中的人臉表情識別技術
    隨著人臉識別技術的發展,如今在識別中應用到對人臉的表情進行識別,可以應用在人機互動、安全、機器人製造、醫療、通信和汽車領域等。那麼,暢視智能來告訴人臉識別技術的人臉表情識別要如何進行?圖像獲取:通過人臉識別攝像頭等圖像捕捉工具獲取靜態人臉圖像或動態圖像序列。
  • 人臉識別最全知識圖譜
    2012 年國際計算視覺與模式識別會議(CVPR)上僅有的兩篇深度學習文章均出自湯曉鷗實驗室,而在 2013 年國際計算機視覺大會(ICCV)上全球學者共發表的 8 篇深度學習領域的文章中,有 6 篇出自湯曉鷗實驗室。
  • 人臉識別技術基礎知識
    「人臉識別系統」集成了人工智慧、機器識別、機器學習、模型理論、專家系統、視頻圖像處理等多種專業技術,是綜合性比較強的系統工程技術。 人臉識別流程 人臉識別系統通常包括幾個過程:人臉圖像採集及檢測、關鍵點提取、人臉規整(圖像處理)、人臉特徵提取和人臉識別比對。 人臉圖像採集。
  • 自動人臉識別基本原理
    該方法的主要缺點是搜索過程中代價函數優化的計算量巨大,因而造成識別速度較慢,導致該方法的實用性不強。3D 形態模型    人臉本質上是 3D 空間中的一個表面,所以原則上用 3D 模型能更好地表徵人臉,特別是處理人臉的各種變化,如姿勢、光照等。 Blanz 等人提出了一種基於 3D 形態模型的方法,該方法將形狀和紋理用模型參數編碼,同時提出了一個能從單張人臉圖像還原模型參數的算法。
  • 人臉識別算法分析原理
    可變形模板法可以視為幾何特徵方法的一種改進,其基本思想是 :設計一個參數可調的器官模型 (即可變形模板),定義一個能量函數,通過調整模型參數使能量函數最小化,此時的模型參數即做為該器官的幾何特徵。  這種方法思想很好,但是存在兩個問題,一是能量函數中各種代價的加權係數只能由經驗確定,難以推廣,二是能量函數優化過程十分耗時,難以實際應用。
  • 探秘人臉識別技術
    這種方法在人臉檢測、人臉定位和人臉識別的各個步驟上都得到了較好的應用,其它研究還有 :Dai等提出用Hopfield網絡進行低解析度人臉聯想與識別,Gutta等提出將RBF與樹型分類器結合起來進行人臉識別的混合分類器模型,Phillips等人將MatchingPursuit濾波器用於人臉識別,國內則採用統計學習理論中的支撐向量機進行人臉分類。
  • 衛生間人臉識別門鎖故障!女童被困40分鐘,情況危急……
    3D人臉識別門鎖看似安全,但也有罷工的時候。" 媽媽裡面好悶熱啊,我想出去。"民警趕到現場,經了解報警人劉某得知,其女兒宋某,9歲,在家衛生間洗澡結束時,衛生間門上3D人臉識別門鎖發生故障,宋某被困在衛生間內出不來,嚇的直哭,家長十分焦急。開鎖的柏師傅趕到劉某家後,先後嘗試多種辦法開鎖失敗,因3D人臉識別鎖結構複雜、防盜性強、故障查找難、開鎖難度大,3D人臉識別門鎖一時打不開。
  • 10行代碼實現python人臉識別
    ↑ 關注 + 星標 ~ 有趣的不像個技術號什麼是人臉識別人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。目前的人臉識別技術已經非常成熟了,還發展成3D人臉識別。
  • 大熊貓都用上「人臉識別」了,你還不來了解一下人臉識別
    西華師範大學生命科學院研究員張晉東表示,「從2015年開始計劃做這個事情,找人來合作,從思路到確定方法,一直到2019年才把數據的手機、模型的訓練、最後的結果得出來。」張晉東教授參與的大熊貓研究團隊與鄭伯川所在團隊進行合作,以25隻圈養大熊貓的6.5萬張面部照片為基礎,利用深度學習技術,成功建立大熊貓面部識別網絡,平均識別率達到95%,解決了大熊貓長期野外跟蹤和監測數據沒有合適方法來識別和監測大熊貓目標個體的技術難題,可用於大熊貓等野生動物的個體識別、生活史和社會機制等研究中。
  • 用3D列印模型測試人臉識別解鎖:只有蘋果「失敗」了
    在如今的智慧型手機上,人臉識別功能已經相當普及了,它被大多數人視為比普通字符更為安全的密碼功能,不過真的有那麼安全嗎據外媒日前報導,「福布斯」雜誌員工託馬斯·布魯斯特(Thomas Brewster)用3D列印技術製作了一個精度較高的頭部模型,並使用市面上5款高端機型進行了人臉識別解鎖測試
  • Deepfake:隱藏在人臉識別下的烏雲
    事實上,帶有面部識別功能的機器在最近這些年大有雨後春筍之勢:坐飛機、坐高鐵需要人臉識別驗證身份,住酒店人臉登記,在超市買個東西也要人臉支付,進入一些小區現在都需要刷臉開門。不難發現,我們普通人的生活也似乎被人臉識別全面佔領了。
  • 疫情加速百度人臉識別變革:戴口罩也能準確識別,迅速上線
    >人臉識別系統包含檢測、跟蹤、識別等多個模塊,對它們都會造成影響。PyramidBox,引入基於anchor的上下文輔助方法,用於半監督學習人臉上下文特徵。DAFBox,基於注意力指引的語義增強特徵融合框架來學習各個尺度的具有豐富語義特徵金字塔。
  • 5種方法,花式破解人臉識別技術 | FIT 2017專題
    2.視頻攻擊繞過活體檢測 如果說前面的方法需要一些技術門檻,那這個方法就可以適用於所有小白用戶,只需要安裝一個 Photospeak 軟體,然後在朋友圈、個人空間等地方找到對方的一張正面照片(這個應該不難),輸入到軟體中,就可以令其開口說話,所謂的活體檢測也就不攻自破。
  • 騰訊已開源高精度人臉檢測算法DSFD
    騰訊提出一種高精度雙分支人臉檢測器DSFD並開源。該算法曾在全球兩大權威人臉檢測數據集WIDERFACE和FDDB上均取得了第一。
  • 人臉識別門鎖突發故障,孩子被困悶熱衛生間40分鐘!情況緊急……
    3D人臉識別門鎖看似安全,但也有罷工的時候,在江蘇淮安市盱眙縣一居民家中,9歲的女兒在衛生間洗完澡想出來時,發現3D人臉識別門鎖出了故障,孩子被困在衛生間。民警趕到現場,經了解報警人劉某得知,其女兒宋某,9歲,在家衛生間洗澡結束時,衛生間門上3D人臉識別門鎖發生故障,宋某被困在衛生間內出不來,嚇得直哭,家長十分焦急。開鎖的柏師傅趕到劉某家後,先後嘗試多種辦法開鎖失敗,因3D人臉識別鎖結構複雜、防盜性強、故障查找難、開鎖難度大,3D人臉識別門鎖一時打不開。
  • 人臉識別如何侵犯公民個人信息?不法分子製作3D人臉模型騙過支付寶
    這些判例披露的犯罪行為,主要集中在網貸平臺通過非法獲取公民人臉識別信息開通網貸帳號,或將人臉識別信息共享給催收公司,或將這些信息變賣獲利。此外,也有電信公司人員在未告知公民的情況下,違法採集公民個人信息開通手機卡。 值得注意的是,有兩份判例披露了不法分子製作3D人臉模型騙過支付寶人臉識別系統,進而實施詐騙的情況。
  • 百度飛槳口罩人臉檢測與識別模型再升級,視頻教學帶你實戰
    2月13日《百度開源業內首個口罩人臉檢測及分類模型》文章中介紹,該模型可以有效檢測在密集人流區域中攜帶和未攜戴口罩的所有人臉,同時判斷是否佩戴口罩。,但是會增加模型計算量,降低預測速度,建議在對人臉漏檢要求比較低的場景下開啟該設置。
  • 專訪的盧深視:這匹的盧馬,拉開3D人臉識別智能鎖新賽道
    研究組:自2018年市場監管總局對人臉識別技術進行風險提醒以來,很多消費者對於人臉識別鎖也開始有所忌憚。您作為人臉識別領域的專家,認為消費者目前還需對人臉識別的安全性有所擔心嗎?崔哲:當時由於監管文件的出臺,整個人臉識別智能鎖方向的發展一段時間內都是處於停滯狀態。