[论文笔记] RetinaFace 阅读笔记

RetinaFace: Single-stage Dense Face Localisation in the Wild(CVPR 2020)

论文链接:论文链接
代码链接:代码链接以及原链接挂了

  • 之前看了一篇ASFD,也取得了SOTA,但是没有开源;因此目前最强开源人脸检测算法就是RetinaFace。(不知道MogFace算不算更强的)
  • 后续的人脸检测可能就从RetinaFace上面魔改了

摘要

  • 主要贡献总结为以下5点:
    • WIDER FACE 数据集上手动标注额外5个面部标志
    • 添加一个自监督网格解码器分支,用于与现在的监督分支并行预测像素级3D形状人脸信息
    • WIDER FACE hard测试集上,RetinaFace 比最先进的平均精度 (AP) 高出 1.1%(实现 AP 等于 91.4%)
    • IJB-C测试集上,RetinaFace使最先进的方法(ArcFace)提高了人脸检测的结果(TAR=89.59%,FAR=1e-6)
    • 通过采用轻量级骨干网络,RetinaFace可以在单个CPU核心上实时运行VGA分辨率的图像

动机

在这里插入图片描述

  • 改进了单阶段人脸检测框架,并通过利用强监督自监督信号multi-task loss,提出了一种最先进的密集人脸定位方法

解决方案

Multi-task Loss(多任务损失)

  • 对于每一个训练样本 anchor i i i ,将一下多任务损失最小化
    L = L c l s ( p i , p i ∗ ) + λ 1 p i ∗ L b o x ( t i , t i ∗ ) + λ 2 p i ∗ L p t s ( l i , l i ∗ ) + λ 3 p i ∗ L p i x e l L = L_{cls}(p_i,p_i^*)+\lambda_1p_i^*L_{box}(t_i,t_i^*)+\lambda_2p_i^*L_{pts}(l_i,l_i^*)+\lambda_3p_i^*L_{pixel} L=Lcls(pi,pi)+λ1piLbox(ti,ti)+λ2piLpts(li,li)+λ3piLpixel
    损失平衡参数 λ 1 − λ 3 λ_1-λ_3 λ1λ3 设置为 0.25、0.1 和 0.01,这意味着我们增加了监督信号中 较好的box和landmark 的重要性
    • 面部分类损失 L c l s ( p i , p i ∗ ) L_{cls}(p_i,p^∗_i) Lcls(pi,pi)。其中 p i p_i pi 为anchor i i i 是人脸的预测概率, p i ∗ p^∗_i pi 对于正 anchor 是1,对于负 anchor 是0。分类损失 L c l s L_{cls} Lcls是二元类(人脸/非人脸)的softmax损失
    • 人脸bbox回归损失 L b o x ( t i , t i ∗ ) L_{box}(t_i,t^∗_i ) Lbox(ti,ti)。其中 t i = t x , t y , t w , t h i t_i = {t_x,t_y,t_w,t_h}_i ti=tx,ty,tw,thi t i ∗ = t x ∗ , t y ∗ , t w ∗ , t h ∗ i t^∗_i = {t^∗_x,t^∗_y,t^∗_w,t^∗_h}_i ti=tx,ty,tw,thi 代表预测的bbox坐标和与正样本相关的gt bbox
    • 面部landmark回归损失 L p t s ( l i , l i ∗ ) L_{pts}(l_i,l^∗_i ) Lpts(li,li)。其中 l i = { l x 1 , l y 1 , . . . , l x 5 , l y 5 } i l_i = \{l_{x1},l_{y1},...,l_{x5},l_{y5}\}_i li={lx1,ly1,...,lx5,ly5}i l i ∗ = { l x 1 ∗ , l y 1 ∗ , . . . , l x 5 ∗ , l y 5 ∗ } i l^∗_i = \{l^∗_{x1},l^∗_{y1},...,l^∗_{ x5},l^∗_{y5}\}_i li={lx1,ly1,...,lx5,ly5}i 表示预测的五个面部landmarks和与gt bbox的5个landmarks。与bbox回归类似,五人脸landmarks回归也采用了基于anchor中心的目标归一化
    • 密集回归损失 L p i x e l = 1 W ∗ H ∑ i W ∑ j H ∥ R ( D P s t , P c a m , P i l l ) i , j − I i , j ∗ ∥ 1 L_{pixel}=\frac{1}{W*H}\sum^W_i\sum^H_j\parallel\mathcal{R}(\mathcal{D}_{P_{st}},P_{cam},P_{ill})_{i,j}-I^*_{i,j}\parallel_1 Lpixel=WH1iWjHR(DPst,Pcam,Pill)i,jIi,j1,其中 W , H W,H W,H表示anchor crop I i , j ∗ I_{i,j}^* Ii,j的宽和高

Dense Regression Branch(密集回归分支)

Mesh Decoder(网格解码器)

在这里插入图片描述

  • 我们定义彩色面网格 G = ( V , E ) \mathcal{G} = (\mathcal V,\mathcal E) G=(V,E),其中 V ∈ R n × 6 \mathcal V\in\mathbb R^{n×6} VRn×6是包含脸部形状和纹理等信息的顶点集, E ∈ { 0 , 1 } n × n \mathcal E\in\{0,1\}^{n×n} E{0,1}n×n是一个稀疏的邻接矩阵,用来编码顶点之间的连接关系。图拉普拉斯定义为 L = D − E ∈ R n × n L=D-\mathcal E∈R^{n×n} L=DERn×n,其中 D ∈ R n × n D∈\mathbb R^{n×n} DRn×n是一个对角矩阵, D i i = ∑ j E i j D_{ii}=∑_j \mathcal E_{ij} Dii=jEij
  • 核为 g θ g_θ gθ 的图卷积可以被表述为一个 K K K 阶截断的递归切比雪夫多项式
    y = g θ ( L ) x = ∑ k = 0 K − 1 θ k T k ( L ˜ ) x y=g_\theta(L)x=\sum_{k=0}^{K-1}\theta_kT_k(\~L)x y=gθ(L)x=k=0K1θkTk(L˜)x其中 θ ∈ R K \theta\in \mathbb R^K θRK 是切比雪夫系数的向量, T k ( L ˜ ) ∈ R n × n T_k(\~L)\in\mathbb R^{n×n} Tk(L˜)Rn×n 是在标度拉普拉斯算子 L ˜ \~L L˜ 处评估的 k k k 阶切比雪夫多项式。表示 x k = T k ( L ˜ ) x ∈ R n x_k = T_k (\~L)x ∈Rn xk=Tk(L˜)xRn,我们可以循环计算 x ˉ k = 2 L ˜ x ˉ k − 1 − ​​ x ˉ k − 2 \bar x_k = 2 \~L\bar x_{k−1}−​​ \bar x_{k−2} xˉk=2L˜xˉk1​​xˉk2,其中 x ˉ 0 = x \bar x_0 = x xˉ0=x x ˉ 1 = L ˜ x \bar x_1 = \~Lx xˉ1=L˜x。整个滤波操作非常有效,包括 K K K 次稀疏矩阵向量乘法和一次密集矩阵向量乘法 y = g θ ( L ) x = [ x ˉ 0 , . . . , x ˉ K − 1 ] θ y = g_θ(L)x = [\bar x_0,..., \bar x_{K−1}]θ y=gθ(L)x=[xˉ0,...,xˉK1]θ
Differentiable Renderer(可微分渲染器)
  • 在预测形状和纹理参数 P S T ∈ R 128 P_{ST} ∈ \mathbb R^{128} PSTR128 之后,使用可微分 3D 网格渲染器将彩色网格 D P S T D_{P_{ST}} DPST 投影到具有camera参数 P c a m = [ x c , y c , z c , x c ′ , y c ′ , z c ′ , f c ] P_{cam} = [x_c,y_c,z_c,x'_c,y'_c,z'_c,f_c] Pcam=[xc,yc,zc,xc,yc,zc,fc]的 2D 图像平面(即相机位置、相机姿态和焦距)和照明参数 P i l l = [ x l , y l , z l , r l , g l , b l , r a , g a , b a ] P_{ill} = [x_l,y_l,z_l,r_l,g_l,b_l,r_a,g_a,b_a] Pill=[xl,yl,zl,rl,gl,bl,ra,ga,ba](即位置点光源的颜色值和环境照明的颜色)
Dense Regression Loss(密集回归损失)
  • L p i x e l = 1 W ∗ H ∑ i W ∑ j H ∥ R ( D P s t , P c a m , P i l l ) i , j − I i , j ∗ ∥ 1 L_{pixel}=\frac{1}{W*H}\sum^W_i\sum^H_j\parallel\mathcal{R}(\mathcal{D}_{P_{st}},P_{cam},P_{ill})_{i,j}-I^*_{i,j}\parallel_1 Lpixel=WH1iWjHR(DPst,Pcam,Pill)i,jIi,j1,其中 W , H W,H W,H表示anchor crop I i , j ∗ I_{i,j}^* Ii,j的宽和高

数据集额外标注

在这里插入图片描述
在这里插入图片描述

网络结构、实验结果

在这里插入图片描述

  • Anchor设置:在从 P 2 − P 6 P_2-P_6 P2P6 的特征金字塔上使用特定尺度的anchor。输入图像大小为 640×640,anchors 可以覆盖特征金字塔级别上从 16×16 到 406×406 的尺度。总共有 102300 个anchor,其中 75% 的 anchor 来自 P 2 P_2 P2
    在这里插入图片描述
  • 消融实验:其中DCN表示可变形卷积
    在这里插入图片描述
  • 人脸box准确率
    在这里插入图片描述
    在这里插入图片描述
  • 面部5个landmark的准确率:NME表示normalised mean errors,CED表示 cumulative error distributio
    在这里插入图片描述
  • 面部 稠密landmark 的准确率
    在这里插入图片描述
  • 面部识别准确率
    在这里插入图片描述
    在这里插入图片描述
  • 推理效率
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值