论文学习 AInnoFace:Accurate Face Detection for High Performance
论文地址
相关解读:
[论文笔记] 人脸检测方向系列论文
arxiv2019_AFD_HP
文章要点
RetinaNet + focal loss
UnitBox的IOU loss
SRN的 2-step bbox cls/reg
PyramidBox的data-anchor-sampling
S3FD的max-out label
multi-scale inference
模块简介
Focal Loss
目标检测分为one-stage/two-stage,focal loss的论文提出one-stage检测性能不如two-stage的原因之一是训练过程中的正、负、难、易样本不均,因此通过施加权重因子来平衡:
L F L = { − α ∗ ( 1 − p ) γ ∗ l o g ( p ) , y = 1 − ( 1 − α ) ∗ p γ ∗ l o g ( 1 − p ) , y = 0 L_{FL}=\begin{cases} -\alpha*(1-p)^\gamma*log(p), & y=1 \\ -(1-\alpha)*p^\gamma*log(1-p), & y=0 \end{cases} LFL={−α∗(1−p)γ∗log(p),−(1−α)∗pγ∗log(1−p),y=1y=0
参考FocalLoss你真的懂吗?,式中 α \alpha α用来平衡样本的正负不均(通常正样本少于负样本,值设置为>0.5,提高对正样本的关注度), γ \gamma γ降低易分样本的损失贡献程度。最终形成对模型的关注度大小关系为: 正 难 > 负 难 > 正 易 > 负 易 正难>负难>正易>负易 正难>负难>正易>负易。
关于Focal Loss论文中提到的变种,可以见AmSoftmax作者的文章被忽略的Focal Loss变种。
Focal Loss论文中提及了RetinaNet网络结构是为了测试新损失函数性能,在结构上面没有专门进行优化,但这种结构由于具有多尺度检测能力,在end2end模型中有很多应用。本文也是以RetinaNet作为Baseline,使用ResNet-152作为主干网络,使用FPN模块输出6个分支。
IOU loss
人脸检测的结果包含人脸置信度(分类)、人脸位置(回归),前者使用交叉熵(改进后为Focal Loss),后者通常使用Smooth L1 Loss计算预测位置的数值误差。评估人脸检测框的指标一般使用IOU,这与Smooth L1并不等价,在训练时使损失值减小并不能保证预测框与GT往更重合的方向收敛。UnitBox论文中提出使用IOU Loss:
L I o U = − l n I n t e r s e c t i o n ( B p , B g t ) U n i o n ( B p , B g t ) L_{IoU}=-ln\frac{Intersection(B_p,B_{gt})}{Union(B_p,B_{gt})} LIoU=−lnUnion(Bp,Bgt)Intersection(Bp,Bgt)
但IOU Loss也存在无法优化两框不相交、相交时如何相交等问题,因此又出现了GIOU、DIOU、CIOU等方法。见
目标检测回归损失函数简介:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
GIOU、DIOU、CIOU
SRN
RetinaNet中实现了多个尺度的输出,并用Focal Loss平衡的正负难易,但不同尺度中浅层较深层的检测更密集,因此对应的分支输出数量更多,携带信息更少,依然存在imbalance问题。
参考Selective Refinement Network,SRN在主干网络上输出6个分支,并且采用two-step策略,前3个分支实现小人脸检测,后3个分支实现人脸位置定位。
- classification的1st-step到2nd-step会通过阈值过滤部分目标,避免得到大量的fp;
- regression则认为前3层的小人脸信息较少,难以实现准确的位置定位,同时浅层网络的主要任务是检测小人脸,不应该在该阶段就强化模型对位置信息的提取。
最终输出可以划分为 Selective Two-step Classification(STC)、Selective Two-step Regression(STR),损失函数分别为:
L S T C ( { p i } , { q i } ) = 1 N s 1 ∑ i ∈ Ω L F L ( p i , l i ∗ ) + 1 N s 2 ∑ i ∈ Φ L F L ( q i , l i ∗ ) L S T R ( { x i } , { t i } ) = 1 N s 1 ∑ i ∈ Ψ [ l i ∗ = 1 ] L r ( x i , g i ∗ ) + 1 N s 2 ∑ i ∈ Φ [ l i ∗ = 1 ] L r ( t i , g i ∗ ) L_{STC}(\lbrace p_i \rbrace,\lbrace q_i \rbrace)=\frac{1}{N_{s_1}}\sum_{i\in\Omega}L_{FL}(p_i,l_i^*)+\frac{1}{N_{s_2}}\sum_{i\in\Phi}L_{FL}(q_i,l_i^*) \\ L_{STR}(\lbrace x_i \rbrace,\lbrace t_i \rbrace)=\frac{1}{N_{s_1}}\sum_{i\in\Psi}[l_i^*=1]L_r(x_i,g_i^*)+\frac{1}{N_{s_2}}\sum_{i\in\Phi}[l_i^*=1]L_r(t_i,g_i^*) LSTC({pi},{qi})=Ns11i∈Ω∑LFL(pi,li∗)+Ns21i∈Φ∑LFL(qi,li∗)LSTR({xi},{ti})=Ns11i∈Ψ∑[li∗=1]Lr(xi,gi∗)+Ns21i∈Φ∑[li∗=1]Lr(ti,gi∗)
data-anchor-sampling
数据增广方面使用随机扩充/裁剪/翻转/颜色抖动,并且以0.5的概率使用PyramidBox中的data-anchor-sampling进行图像处理。
主要过程:
- 从训练图像中选取一张人脸;
- 根据人脸按 2 i 2^i 2i确定尺度最接近的 i i i值大小;
- 从 { 0 , . . . , m i n ( 5 , i + 1 ) } \lbrace0,...,min(5,i+1)\rbrace {0,...,min(5,i+1)}中随机选取一个作为目标缩放尺度 S t a r g e t S_{target} Starget;
- 以 S t a r g e t S_{target} Starget为中心,从 ( S t a r g e t / 2 , S t a r g e t ∗ 2 ) (S_{target}/2,S_{target}*2) (Starget/2,Starget∗2)连续域中随机选取一个值作为真正的缩放尺度,并对整张图像进行缩放;
- 以缩放后图像中目标人脸为中心,截取一个640*640(依据网络的输入大小)的图像,如果超出边界以黑色像素填充。
max-out label
通过anchor密集采样可以召回小目标,但会存在大量误检。因此对每个anchor的每个类别输出多个置信度,再取最大值作为每个类别的置信度。相当于多增加一些分类器分析特征信息,增加分析的鲁棒性。
multi-scale inference
多尺度目标检测推理过程中的处理策略,将待检测的图像resize成多个尺度分别送入模型进行推理,将结果通过投票机制融合输出。
训练参数
参数名 | 设定值 |
---|---|
参数初始化 | xavier |
优化算法 | SGD |
momentum | 0.9 |
weight decay | 0.0001 |
batch size | 32 |
end_epoch | 130 |
学习率初始化策略 | 前5个epoch从0.0003125到0.01 |
学习率衰减策略 | 100、120分别除以10 |
Anchor Detail
IOU | 负样本 | 丢弃 | 正样本 |
---|---|---|---|
STC | 0 ~ 0.3 | 0.3 ~ 0.7 | > 0.7 |
STR | 0 ~ 0.4 | 0.4 ~ 0.5 | > 0.5 |
论文学习 AInnoFace:Accurate Face Detection for High Performance相关推荐
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 【论文学习】MKIoU Loss: Towards Accurate Oriented Object Detection in Aerial Images
[论文学习]MKIoU Loss: Towards Accurate Oriented Object Detection in Aerial Images 在本文中,提出了一种近似 SkewIoU 的 ...
- softer-nms论文学习详解(Bounding Box Regression with Uncertainty for Accurate Object Detection)
<Bounding Box Regression with Uncertainty for Accurate Object Detection> 论文地址: https://arxiv.o ...
- 目标检测经典论文——R-CNN论文翻译:Rich feature hierarchies for accurate object detection and semantic segmentation
Rich feature hierarchies for accurate object detection and semantic segmentation--Tech report (v5) 用 ...
- 【论文精读】Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation(R-CNN)
论文Title:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation.发表于2014年. 本 ...
- 论文解读 | Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation
论文地址:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation GitHub地址: http ...
- 论文学习笔记《SWA Object Detection》
这是一篇2020年年底挂在arxiv上的论文,主要思想很简单,就做了一件事情:采用周期性学习率迭代策略(余弦退火算法)额外再训练模型12个epoch,然后平均每个epoch训练得到的weights作为 ...
- 【论文学习】《A Overview of Spoof Speech Detection for Automatic Speaker Verification》
<A Overview of Spoof Speech Detection for Automatic Speaker Verification>论文学习 文章目录 <A Overv ...
- End-to-End Object Detection with Transformers,DETR论文学习
End-to-End Object Detection with Transformers,DETR论文学习 1. 引言 2. 本论文发表前的目标检测策略(非端到端的目标检测策略) 2.1 目标检测的 ...
最新文章
- MySQL具体解释(21)------------缓存參数优化
- 【手写系列】透彻理解Spring事务设计思想之手写实现
- 再谈 Application ProvidedAar
- P4357-[CQOI2016]K远点对【K-Dtree】
- 中科大 计算机网络8 协议层次和服务模型
- jQuery.html()方法ie下不能设置html代码的问题
- 【项目调研+论文阅读】基于BERT的中文命名实体识别方法[J] | day6
- oracle12c正在检查环境变量,oracle11g安装客户端检查先决条件失败
- 基于GEE平台实现湖泊水位与水体面积关系分析
- php tp5 plugins,thinkphp5(tp5)使用cli模式运行
- linux 删除文件的最后一行
- Python 批量转化doc文件为docx文件
- 非对称加密算法--RSA
- axure原型怎么让文字自动换行_Axure动态面板教程(快速入门+轮播图案例)
- 小黑小波比.极客学院.android自学笔记
- 【软件工程】 软件工程及开发模型
- 【监督学习】第三课(机器学习,折半算法,专家算法,感知机perceptron,Winnow,在线学习)
- 【泄漏类】android7.0 system_server发生global reference table overflow问题分析
- 电力系统【第八章:电力系统不对称故障的分析与计算】
- C++小型公司人员信息管理系统(多态)
热门文章
- 【练习八 结构体(强化)编程题4. 看电影】
- sqlitespy可以打开MySQL吗_SQLite 数据库访问
- HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页...
- Python Set 与 dict
- C++实现空间中两个三角形位置关系(相交、平行)的判断
- 【背包DP】【2018.9.20普及组模拟】T3(WOJ 3975)保护羊村
- [11] 微信公众帐号开发教程第11篇-符号表情的发送(上)
- 大卫 异星觉醒 机器人_《异星觉醒》披着科幻外衣的老套惊悚片
- vue2中provide/inject的使用和响应式传值
- linux查找不到kde桌面,观点|KDE Plasma 5 —— 给尚未确定桌面环境的 Linux 用户指明道路...