retinaface代码讲解_RetinaFace论文阅读笔记,简要总结

本文深入解析RetinaFace,一种强大的单阶段人脸识别器,它结合了额外监督和自我监督。该模型包括人脸分类、框定位、关键点回归和密集面部回归四个任务。 RetinaFace通过特征金字塔、上下文建模和多任务学习提升鲁棒性。其损失函数包括分类、框回归和关键点回归损失。模型在WIDER FACE数据集上表现出色,并且在轻量级网络上可实现实时检测。文章还介绍了模型结构和关键模块,如ClassHead、BboxHead和LandmarkHead的实现细节。
摘要由CSDN通过智能技术生成

RetinaFace: Single-stageDenseFaceLocalisationintheWild

retinaface是一个鲁棒性较强的单阶段人脸检测器,比较突出的工作是加入了 extra-supervised 和 self-supervised ;

大部分人脸检测重点关注人脸分类和人脸框定位这两部分,retinaface加入了face landmark 回归( five facial landmarks)以及dense face regression(主要是3d相关);

加入的任务如下图所示:

retinaface结构特点主要以下几点:

feature pyramid,采用特征金字塔提取多尺度特征, (to increase the receptive field and enhance the rigid context modelling power)

single-stage,单阶段,快捷高效,用mobile-net时在arm上可以实时

Context Modelling, (to increase the receptive field and enhance the rigid context modelling power)

Multi-task Learning ,额外监督信息

结构图如下:

loss函数设计:Multi-taskLoss

第一部分是分类Loss, 第二部分是人脸框回归Loss,  第三部分是人脸关键点回归loss,第四部分是dense regression loss;

在实现的时候,还有些细节。

1.使用可行变卷积代替lateral connections和context modules中的3*3卷积 (further strengthens the non-rigid context modelling capacity);

2.anchor的设置,fpn每层输出对应不同的anchor尺寸。

3.Extra Annotations,数据集部分做额外的标注信息

3.1定义了五个等级的人脸质量,根据清晰度检测难度定义;

3.2定义人脸关键点。

结果:

在WIDER FACE dataset上,96.9% (Easy), 96.1% (Medium) and 91.8% (Hard) for validation set, and 96.3% (Easy), 95.6% (Medium) and 91.4% (Hard) for test set.

速度:

表格里面单位ms;轻量级网轻松达到实时检测。

主网络结构代码:

importtorchimporttorch.nn as nnimporttorchvision.models.detection.backbone_utils as backbone_utilsimporttorchvision.models._utils as _utilsimporttorch.nn.functional as Ffrom collections importOrderedDictfrom models.net importMobileNetV1 as MobileNetV1from models.net importFPN as FPNfrom models.net importSSH as SSHclassClassHead(nn.Module):def __init__(self,inchannels=512,num_anchors=3):

super(ClassHead,self).__init__()

self.num_anchors=num_anchor

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值