訂閱
糾錯(cuò)
加入自媒體

DBFace,被《機(jī)器之心》扒出來的輕量級高精度人臉檢測模型

上周末,一篇題為《模型僅有7M:輕量級高精度人臉識別方法DBFace》的文章在國內(nèi)頭部的專業(yè)人工智能媒體《機(jī)器之心》上首發(fā)后,即被新浪科技、CSDN、機(jī)器學(xué)習(xí)研究會等多家科技/垂直類(自)媒體進(jìn)行了轉(zhuǎn)載。

而對DBFace這個(gè)名字,業(yè)內(nèi)人士更是很容易就能聯(lián)想到人工智能頭部企業(yè)深蘭科技(DeepBlue)。果不其然,這個(gè)模型的創(chuàng)建者,這是來自深蘭科技下屬深蘭科學(xué)院算法研究所的兩位“高手”——?jiǎng)财妗⒍沤饌ァ?/p>

據(jù)了解,該模型起初只是被放在了Github上,沒想到被《機(jī)器之心》扒了出來,而且短短3天時(shí)間,這個(gè)開源的模型就新增了近300次使用。

今天,就跟隨這兩位算法大咖,一起來看看DBFace是如何誕生的。

1. 網(wǎng)絡(luò)選擇

DBFace的初衷是設(shè)計(jì)一款輕量級的人臉檢測器,能夠在邊緣計(jì)算上有效的使用,加上因?yàn)橐咔榫壒剩瑢τ趆ard類(例如戴上口罩)人臉檢測顯得尤為重要。因?yàn)镃enterNet具有后處理的簡潔高效性,以及對小目標(biāo)友好等特點(diǎn)。綜合性能和速度的考慮下,我們選擇了CenterNet結(jié)構(gòu)做檢測任務(wù), 采用MoblienetV3做backbone。相較于MobilenetV2, MobilenetV3在其基礎(chǔ)上新增了 SE 、Hard-Swish Activation等模塊,兼顧Infernce速度的同時(shí)并提升網(wǎng)絡(luò)性能 。結(jié)構(gòu)如下:

對于任務(wù)頭的設(shè)計(jì),我們引入了SSH的DetectModule和ContextModule,經(jīng)實(shí)驗(yàn)驗(yàn)證該模塊能有效的提升DBFace算法的檢出性能

對于上采樣設(shè)計(jì),我們采用Upsample+Conv+Act的方式,避免使用反卷積造成可能的鋸齒問題

2.Loss定義

整個(gè)網(wǎng)絡(luò)由三部分Loss組成:熱力圖(HeatMap)損失, 位置坐標(biāo)偏移量(BoundingBox)損失,關(guān)鍵點(diǎn)(Landmark)損失

2.1 HeatMap 損失:Focal Loss

Focal loss,該損失函數(shù)是在標(biāo)準(zhǔn)交叉熵?fù)p失基礎(chǔ)上修改得到的。可以通過減少易分類樣本的權(quán)重,使得模型在訓(xùn)練時(shí)更專注于難分類的樣本,從而能有效的緩解類別不均衡帶來的網(wǎng)絡(luò)注意力偏差問題

這里γ取2,y=1時(shí),α為正樣本的權(quán)重,參照CenterNet,定義為目標(biāo)周圍半徑處3*3范圍為1,其他為0,目的是加強(qiáng)正樣本的訓(xùn)練權(quán)重。y=0時(shí),α為(1 - gt)4,此時(shí)GT是一個(gè)基于目標(biāo)計(jì)算的橢圓高斯圖,參照TTFNet(Training-Time-Friendly Network for Real-Time Object Detection)

2.2 位置坐標(biāo)偏移量損失:  GIoU Loss

目前大部分目標(biāo)檢測中主流的邊界框優(yōu)化采用的都是BBox的回歸損失(MSE loss, L1-smooth loss等),該種方式通過距離計(jì)算損失值,從而忽略了檢測框本身最顯著的性質(zhì)IoU。如下圖所示,在L1及L2范數(shù)取到相同的值時(shí),實(shí)際上檢測效果卻是差異巨大的,直接表現(xiàn)就是預(yù)測和真實(shí)檢測框的IoU值變化較大,這說明L1和L2范數(shù)不能很好的反映檢測效果。

通過IOU作為Loss來優(yōu)化任務(wù),其缺點(diǎn)在于:

a.預(yù)測框bbox和ground truth bbox如果沒有重疊,IOU就始終為0并且無法優(yōu)化。其損失函數(shù)失去了可導(dǎo)的性質(zhì)。

b.IOU無法分辨不同方式的對齊,例如方向不一致等情況

GIOU則能很好的解決上面兩個(gè)問題

假設(shè)現(xiàn)在有兩個(gè)任意的bbox A和B,我們要找到一個(gè)最小的封閉形狀C,讓C可以將A和B包圍在里面,然后我們計(jì)算C中沒有覆蓋A和B的面積占C總面積的比例,然后用A和B的IOU值減去這個(gè)比值。

2.3人臉關(guān)鍵點(diǎn)Landmark回歸:WingLoss

由于SmoothL1 Loss對于較大誤差時(shí)比較敏感,但是對中小誤差則比較不敏感,而導(dǎo)致關(guān)鍵點(diǎn)無法得到精細(xì)結(jié)果,因此考慮加重對中小誤差的關(guān)注,對比試驗(yàn)后,選擇WingLoss(Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks)作為landmark訓(xùn)練loss

WingLoss

這里我們采用了w=10,e=2,同時(shí)為了避免landmark相對人臉中心和寬高帶來的累積誤差,因此我們對landmark是相對于人臉中心點(diǎn)的方式進(jìn)行訓(xùn)練

3.?dāng)?shù)據(jù)增廣

random filp、random scaling、color jittering、randomly crop square patch、image compress

檢測結(jié)果及精度驗(yàn)證

4.實(shí)際運(yùn)行

項(xiàng)目地址

下載代碼后main.py提供基于圖像和攝像頭的案例,我們稍加修改后:

把圖像放到datas目錄下,執(zhí)行后,結(jié)果在detect_result中,我們看到如我們預(yù)期的結(jié)果:

下圖,對于戴口罩人臉的檢測(訓(xùn)練時(shí)并未使用戴口罩?jǐn)?shù)據(jù),因此將會加入戴口罩?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練以優(yōu)化模型的效果)

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個(gè)字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

    掃碼關(guān)注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號