作者:mileistone
转自:AIZOO
近日,mileistone团队开源了一个人脸检测达到SOTA的论文,其结构仅对RetinaNet做稍许改进,就在Wider Face上达到了最优结果。大家可以公众号回复“TinaFace”就可以下载论文。
本文来自:https://zhuanlan.zhihu.com/p/... 已获得授权转载 | 参考:52CV 大家可在文末阅读原文跳转到原文
这几年人脸检测的benchmark越刷越高,方法也越来越复杂,提出的模块或者方法大都专门为人脸检测设计,不易复现和使用,比如DSFD里的FEM、PAL、IAM,ASFD里的AutoFEM、PAL、IAM、DRMC loss,HAMBox里的PA、OAM、RAL等等。
WIDER FACE验证集hard结果
WIDER FACE测试集hard结果
鉴于此,我们设计了一个简单而又强大的人脸检测模型——TinaFace,该模型基于RetinaNet,相比RetinaNet只做了很小的改动:
- 将BN换成GN;
- 加了一个IoU预测分支;
- 在backbone上嵌入了DCNv1;
- 将框回归的loss从smooth l1 loss替换为DIoU loss。
在仅使用ResNet50作为backbone的情况下,TinaFace在WIDER FACE的验证集和测试集中的hard上达到了当前的state of the art。我们只看hard的原因在于WIDER FACE的easy和medium都包含在hard之中,hard体现的是一个人脸检测器在所有人脸上的检测效果。
具体来说,在单模型,backbone仅为ResNet50的情况下:
1、验证集上
1.1、不使用TTA的TinaFace:TinaFace的AP为93.0%,比基于ResNet152的ASFD(使用TTA)高0.5%,比基于ResNet152的DSFD(使用TTA)高1.8%;
1.2、使用TTA的TinaFace:TinaFace的AP为93.4%,比基于ResNet50的HAMBox(使用TTA)高0.1%。
2、测试集上
2.1、不使用TTA的TinaFace:TinaFace的AP为92.1%,与基于ResNet152的ASFD(使用TTA)一样,比基于ResNet152的DSFD(使用TTA)高2.1%;
2.2、使用TTA的TinaFace:TinaFace的AP为92.4%,比基于ResNet50的HAMBox(使用TTA)高0.1%。
TinaFace非常简单,基于RetinaNet,所添加的模块在在通用的目标检测框架(比如mmdetection、vedadet)中都是现成的。而且训练不需要大batch,即使你的显存只有11G,也可以复现TinaFace。也正因为TinaFace使用的模块都非常经典、成熟,TinaFace也会比较容易部署。
我们的代码开源地址在文末,基于vedadet,里面提供当前最好结果的权重,以及训练、测试、推理代码,无论大家是想做研究、打比赛、还是仅仅想体验state of the art的效果,这个repo都能满足你。
vedadet能做到的不仅于此,vedadet是我们基于mmdetection开发的单阶段目标检测框架,适用任意目标检测任务,无论是人脸检测还是通用目标检测。
vedadet提供训练、测试、推理特性,后续会支持转ONNX/TensorRT,以及基于TensorRT的Python前端SDK或者C++前端SDK。
想了解实验细节的朋友可以参见论文TinaFace: Strong but Simple Baseline for Face Detection (文末附下载)。实验中使用的数据分析工具我们也开源了——volkscv。
TinaFace 代码:
https://github.com/Media-Smar...
volksdep: 一个实用TensorRT部署和加速PyTorch、Onnx和TensorFlow模型的开源库
https://github.com/Media-Smar...
FlexInfer:一个灵活的Python前端推断库
https://github.com/Media-Smar...
cheetahinfer:一个基于TensorRT的纯C++推断SDK
https://github.com/Media-Smar...
vedadet:一个基于PyTorch的单阶段目标检测工具箱
https://github.com/Media-Smar...
volkscv:一个计算机视觉研究与部署的基础Python库
https://github.com/Media-Smar...
相关阅读
关注元峰微信号“AIZOOTech”
更多算法模型相关请关注AIZOO专栏