开源代码CenterFace:解读轻量级anchor_free人脸检测器

背景

在不受限制的环境中,人脸检测始终部署在边缘设备上,这些设备的内存存储空间有限且计算能力较低。本文提出了一种名为CenterFace的单阶段方法,该方法可以实时,高精度,同时预测面部框和界标位置。所提出的方法也属于自由锚类别。这可以通过以下方式实现:

(a)通过语义图学习人脸存在的可能性

(b)为可能包含人脸的每个位置学习边界框,偏移量和五个界标。具体来说,该方法可以使用NVIDIA 2080TI实时运行在单个CPU内核和200 FPS上的VGA分辨率图像上,并且可以同时达到更高的精度。

介绍

该论文是参考的Objects as Points,文章底部会附上Objects as Points的论文地址。

核心思想,相比于Anchor的检测算法,去判断每个anchor是否包含需检测的目标,再去计算回归的offset,Centerface和Objects as Points的主要思想是,判断feature map对应在图像中的位置是否是目标的中心点,再去计算目标的宽和高。

因为此文主要借鉴Objects as Points,而关于Objects as Points的解读已经有很多了,所以与Objects as Points差异较小的地方,笔者会简略带过。

方法

网络结构

因为CenterFace是轻量级的人脸检测器,所以其backbone用的是mobilenetV2,相比于Objects as Points采用的DLA 以及Hourglass,整体的backbone很小。网络结构可视化如下:

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第1张图片

图1 CenterFace的体系结构

groundtruth的定义

目标中心点定义:在一般的目标检测中,一般记录目标的(x1,y1,x2,y2)

对应目标的左上角和右下角的坐标。目标的中心点:Xc = (x1+x2)/2,Yc = (y1+y2)/2;

在使用anchor的算法中,采用的是计算anchor和groundtruth之间的IOU,若IOU大于阈值,则为正样本,若小于阈值,则为负样本。

在centerface中,是计算中心点的坐标是否在feature map所对应的图像内

R就是对应的步长。中心点所在的feature map为1,对于标注,采用高斯的方式向外撒点。

LOSS的定义

在寻找关键点上,存在两个loss,一个是判断feature map是否包含关键点,采用focal loss,另一个是计算关键点 相对于 feature map映射到原图之后的偏移量,使用的smooth_L1。

在计算目标框上:区别于Objects as Points, 计算的是映射到feature map上的大小,而不是计算原图的大小:

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第2张图片

计算目标框的Loss采用smooth_L1。

Data augmentation

1.random filp

2.random scaling

3.color jittering

4.randomly crop square patch

以上数据增强方法都是常见的数据增强方法,不多做介绍。

测试结果

和其它算法对比:

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第3张图片

表1. GTX2080TI的运行效率

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第4张图片

表2. CPU上的运行效率

FDDB的评估结果

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第5张图片

WIDER FACE

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第6张图片

表4. WIDER FACE验证集上的性能结果

开源代码CenterFace:解读轻量级anchor_free人脸检测器_第7张图片

图3. WIDER FACE上的人脸检测结果。

结论

CenterFace具有所提方法的优势,在速度和准确性上均表现出色,并且可以同时预测面部框和界标位置。我们提出的方法通过将人脸检测和对齐转换为标准关键点估计问题,克服了以前基于锚的方法的缺点。CenterFace通过脸部框的中心点表示脸部,然后从中心位置的图像特征直接回归脸部大小和脸部界标。进行了全面而广泛的实验以充分分析所提出的方法。最终结果表明,我们的方法能够以较小的模型尺寸实现实时速度和高精度,从而使其成为大多数人脸检测和对齐应用程序的理想选择。

论文地址源码下载地址:关注“图像算法”微信公众号 回复“CenterFace”

你可能感兴趣的:(开源代码CenterFace:解读轻量级anchor_free人脸检测器)