人脸识别模块RetinaFace
RetinaFace,人臉檢測(cè)用這個(gè)。論文地址:
https://arxiv.org/pdf/1905.00641.pdf
代碼地址:
mxnet框架:
https://github.com/deepinsight/insightface/tree/master/RetinaFace
pytorch框架
https://github.com/biubug6/Face-Detector-1MB-with-landmark
?
?
框架: mxnet
專業(yè)詞語:
facial attribute 面部特征
facial identity recognition面部識(shí)別
face alignment 人臉對(duì)齊
?pixel-wise face parsing 逐像素人臉分析
3D dense correspondence regression 三維密集對(duì)應(yīng)回歸
occluded face detection 遮擋人臉檢測(cè)
quite coarse and does not contain semantic information相當(dāng)粗糙,不包含語義信息
morphable models 變形模型
mesh decoder 網(wǎng)格解碼器
Context Modelling:上下文建模
deformable convolution network 可變形卷積網(wǎng)絡(luò)
model geometric transformations模型幾何變換
fast localised spectral filtering 快速局域譜濾波
VGA(640X480)大小圖像
介紹:
retinaface是insightface團(tuán)隊(duì)提出的one-stage人臉檢測(cè)算法,并開源代碼和數(shù)據(jù)集,在widerface上有非常好的表現(xiàn).它利用聯(lián)合監(jiān)督和自我監(jiān)督(這是啥?)的多任務(wù)學(xué)習(xí),在各種人臉尺度上執(zhí)行像素方面(這是?)的人臉定位.
論文主要貢獻(xiàn):
1)在one-stage目標(biāo)檢測(cè)網(wǎng)絡(luò)設(shè)計(jì)的基礎(chǔ)上,增加兩條平行分支,一支預(yù)測(cè)五個(gè)關(guān)鍵點(diǎn),一支預(yù)測(cè)每個(gè)人臉像素的三維位置和對(duì)應(yīng)關(guān)系,這樣網(wǎng)絡(luò)總共就是4條平行分支,見圖1;
2)在widerface上,retinaface性能優(yōu)于現(xiàn)有技術(shù)水平預(yù)測(cè)AP1.1%(AP=91.4%)
3)在IJB-C數(shù)據(jù)集上,retinaface有助于改進(jìn)ArcFace驗(yàn)證精度,這表明更好的人臉定位可以顯著提高人臉識(shí)別.
4)通過采用輕量級(jí)骨干網(wǎng)絡(luò),retinaface可以在單cpu核上實(shí)時(shí)運(yùn)行,以實(shí)現(xiàn)vga分辨率的圖像
5)代碼開源并且將自己在widerface上手動(dòng)標(biāo)注的5個(gè)關(guān)鍵面部點(diǎn)數(shù)據(jù)開源,在這個(gè)額外的監(jiān)督信號(hào)的幫助下觀察面部檢測(cè)的重要改進(jìn),
創(chuàng)新點(diǎn):
1.整合:人臉檢測(cè),人臉對(duì)齊,像素級(jí)的人臉分析,3D密集通信回歸
2.通過利用強(qiáng)監(jiān)督和自監(jiān)督(這是什么?代碼中體現(xiàn)在哪里)多任務(wù)損失函數(shù)來實(shí)現(xiàn)上述功能.
?
網(wǎng)絡(luò)與常規(guī)one-stage檢測(cè)網(wǎng)絡(luò)比較(例如yolo,retinanet)
主要相同點(diǎn):
都是在不同下采樣層進(jìn)行預(yù)測(cè),且都采用固定的anchors,預(yù)測(cè)都是相對(duì)anchors的偏移量
主要不同點(diǎn):
retinaface多了關(guān)鍵點(diǎn)檢測(cè)
訓(xùn)練數(shù)據(jù)集已經(jīng)轉(zhuǎn)成了MXNet binary format,網(wǎng)絡(luò)骨干層包含resnet, mobilefacenet, mobilenet, inceptionresnet_v2,densent,dpn
損失函數(shù)包含:softmax, sphereface, cosineface, arcface? and euclidean/angular loss
網(wǎng)絡(luò)大致結(jié)構(gòu)
Lcls:人臉分類loss,
Lbox:人臉框回歸loss,
Lpts:人臉關(guān)鍵點(diǎn)回歸loss,5點(diǎn),
Lpixel:自監(jiān)督3D Mesh Renderer 稠密人臉回歸
??????????????????????????????????????????????????????????? 圖1
?
從該圖可以看出RetinaFace是4條平行的分支,
(1)第一條預(yù)測(cè)是否是人臉
(2)第二條預(yù)測(cè)人臉框的偏移量
(3)第三條預(yù)測(cè)人臉關(guān)鍵點(diǎn)的偏移量
(4)沒看懂
另外,類似于YOLO3,采用了多階段預(yù)測(cè),就是在網(wǎng)絡(luò)不同的下采樣層做預(yù)測(cè),論文里,最開始是5種下采樣,這種多階段預(yù)測(cè)本質(zhì)上就是retinanet中同樣采用的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),單階稠密人臉定位,多任務(wù)loss學(xué)習(xí)
?
網(wǎng)絡(luò)輸入圖片尺寸為(640,640,3),
第一個(gè)下采樣,stride=4, 采樣后得到的特征圖尺寸:640/4=160
第2個(gè)下采樣,stride=8, 采樣后得到的特征圖尺寸:640/8=80
....
第5個(gè)下采樣,stride=64, 采樣后得到的特征圖尺寸:640/64=10
上述過程可以看成是構(gòu)造了5層特征金字塔
每層特征圖中的每個(gè)點(diǎn)預(yù)測(cè)3種anchors,則總的anchors數(shù)量就是(160*160+80*80+40*40+20*20+10*10)*3=102300,
但是在代碼中,只有stride為(32,16,8)的輸出,且每個(gè)點(diǎn)只有兩個(gè)anchors
優(yōu)點(diǎn):
1.加入了關(guān)鍵點(diǎn)的分支,這樣可以確保檢測(cè)到的人臉質(zhì)量,而且在損失函數(shù)中也只是將其作為一個(gè)比較小的約束項(xiàng),不怎么會(huì)影響分類以及人臉框的判斷,但是一旦關(guān)鍵點(diǎn)太過偏離就會(huì)使loss相對(duì)變大,就會(huì)產(chǎn)生約束
總結(jié)
以上是生活随笔為你收集整理的人脸识别模块RetinaFace的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决Nvidia显示设置不可用,您当前未
- 下一篇: BlueJ 改为中文界面了!