看来最早商业化的人脸检测为目标检测算法,依然是各大CV方向AI公司的必争之地。
那我们今天主角就是RetinaFace,RetinaFace 是今年5月份出现的人脸检测算法,当时取得了state-of-the-art,作者也开源了代码,过去了两个月,目前仅以极其微弱的精度差屈居第二名,所以目前RetinaFace可称得上是目前最强的开源人脸检测算法。
RetinaFace来自论文RetinaFace: Single-stage Dense Face Localisation in the Wild,作者来自帝国理工学院、InsightFace、Middlesex University London、FaceSoft。
哈哈又看到了InsightFace,它是目前针对2D与3D人脸分析(含检测、识别、对齐、属性识别等)最知名和开发者最活跃的开源库。我们的RetinaFace代码已经并入该库了,非常了不起。
对了我们还要介绍一下WIDER FACE,WIDER FACE 几乎是目前评估人脸检测算法最权威的数据集,WIDER FACE数据集是由香港中文大学发布的大型人脸数据集,含32,203幅图像和393,703个高精度人脸包围框,该库中人脸包含尺度、姿态、表情、遮挡和光照等变化。
来看按示例图:
下图为在WIDER FACE 数据集上验证集三个子集的排名靠前的算法结果曲线和精度:
下图为在WIDER FACE 数据集上测试集三个子集的排名靠前的算法结果曲线和精度:
我们可以从6个子集中看到,RetinaFace获得1个第一名,2个并列第1名,3个以极其微弱精度差屈居于第二名,可以说非常牛B了。
从论文我们可以得知RetinaFace使用特征金字塔网络架构:
最牛的设计还是它损失函数。看一看RetinaFace的核心思想流程图:
从论文得知作者传统算法额外优化:
1.添加了标注了人脸 5 点信息
2.加入人脸对齐的额外监督信息损失函数
3.加入self-supervised解码分支预测3D人脸信息分支
从上面几点得知RetinaFace 取得成功很大因素是运用了更多监督信息和自监督信息。
大部分时候,人脸检测是为了后续的识别算法,作者特意将检测结果送入人脸验证网络,在IJB-C test set上测试结果表明可以提高ArcFace的人脸验证精度(TAR=89.59% for FAR=1e-6)。
相对于MTCNN,人脸验证上会提高精度,而且在VGA(640X480)大小图像跑CPU居然可以达到实时。
论文地址:
https://arxiv.org/pdf/1905.00641.pdf
代码地址:关注微信公众号:“图像算法”或者搜索imalg_cn即可获得