【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》

在这里插入图片描述

arXiv-2021


文章目录

  • 1 Background and Motivation
  • 2 Related Work
  • 3 Advantages / Contributions
  • 4 Method
  • 5 Experiments
    • 5.1 Datasets and Metrics
    • 5.2 Ablation Study
    • 5.3 Comparison with State-of-the-Arts
  • 6 Conclusion(own)


1 Background and Motivation

尺度变化是人脸检测中最具挑战性的问题之一

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第1张图片

Modern face detectors employ feature pyramids to deal with scale variation

但是特征金字塔存在如下问题:

it might break the feature consistency across different scales of faces(想表达的是一定范围的尺寸人脸,eg 50~100大小的,都落在一张特征图上,怕特征图 hold 不住)

作者对特征金字塔进行改进,提出 EMFace(EXPLORING RECEPTIVE)

2 Related Work

  • CNN-based face detection
  • receptive fields for recognition tasks
    • ASPP
    • RFB Net
    • Deformable convolution

3 Advantages / Contributions

  • 提出 EMFace,核心模块为感受野金字塔(Receptive Field Pyramid)
  • 感受野金字塔中的 pooling 模块,多分支训练,单分支测试,速度得以提升
  • 在 WIDER FACE 和 UFDD 数据集上,验证了其速度和精度
    【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第2张图片

The branch pooling balances the representations of parallel branches during training and enables a single branch to implement inference during testing

4 Method

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第3张图片
特征金字塔 P2~P7,这个本身应该提点很猛,哈哈哈

RFP 的细节如下

  • multi-branch convolution layer
  • branch pooling layer
    【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第4张图片

先经过三个权重共享的空洞卷积+残差结构

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第5张图片
再接个 Branch Pooling 结构

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第6张图片
B = 3

RFP 输入输出维度相同

代码:https://github.com/emdata-ailab/EMface

class MRF(nn.Module):
    def __init__(self,in_planes):
        super(MRF,self).__init__()
        self.share_weight=nn.Parameter(torch.randn(in_planes,in_planes,3,3)) # 共享权重,卷积核 3x3
        self.bn1=nn.BatchNorm2d(in_planes)
        self.bn2=nn.BatchNorm2d(in_planes)
        self.bn3=nn.BatchNorm2d(in_planes)
        self.relu1=nn.ReLU(inplace=True)
        self.relu2=nn.ReLU(inplace=True)
        self.relu3=nn.ReLU(inplace=True)
    def forward(self,x):
        residual=x
        x1=F.conv2d(x,self.share_weight, stride=1, padding=1,bias=None, dilation=1)
        x1=self.bn1(x1)
        x1=x1+residual
        x1=self.relu1(x1)
        x2=F.conv2d(x,self.share_weight, stride=1, padding=3,bias=None, dilation=3)
        x2=self.bn2(x2)
        x2=x2+residual
        x2=self.relu2(x2)
        x3=F.conv2d(x,self.share_weight,stride=1, padding=5,bias=None, dilation=5)
        x3=self.bn3(x3)
        x3=x3+residual
        x3=self.relu3(x3)
        y=torch.cat((x1, x2, x3), dim=1) # (n, 3*in_planes, h, w)
        b,c,h,w=y.size()
        y=y.view(b,3,c//3,h,w) # (n, 3, in_planes, h, w)
        y1=y.mean(dim=1,keepdim=True) # (n, 1, in_planes, h, w)
        y=y1.view(b,-1,h,w) # (n, in_planes, h, w)
        return y

调用

self.MR1=MRF(256)
self.MR2=MRF(256)
self.MR3=MRF(256)
self.MR4=MRF(256)
self.MR5=MRF(256)
self.MR6=MRF(256)

5 Experiments

ResNet50 + FPN

5.1 Datasets and Metrics

WIDER FACE and UFDD

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第7张图片
【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第8张图片
【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第9张图片
【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第10张图片

metrics 为 AP

5.2 Ablation Study

(1)Number of Branches

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第11张图片
3 个 Branch 计算量和精度权衡最好

(2)Weight Sharing.

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第12张图片
RFP 中 multi-branch convolution 的权重 share 参数量减少很多,精度略微下降

(3)Branch Pooling.

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第13张图片
训练的时候 3 branches,测试的时候选择不同的输出方式,输出数量,输出组合形式(BP,add,concat)

we drop out the Branch-1 and Branch-3 (d=1 and d=5 in Figure 4) in RFP and only keep the Branch-2 to output in the
inference phase.

作者测试时最终仅保留了 branch-2 作为输出

【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第14张图片

5.3 Comparison with State-of-the-Arts

(1)WIDER FACE
【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第15张图片

(2)UFDD
【EMFace】《EMface: Detecting Hard Faces by Exploring Receptive Field Pyramids》_第16张图片

6 Conclusion(own)

  • 标题单词都搞错了,哈哈,pyramids

你可能感兴趣的:(CNN,深度学习,人工智能,EMFace,RFP,计算机视觉)