- 关键词:rotation-invariant face detection, rotation-in-plane, coarse-to-fine
- 核心概括:该篇文章为中科院计算所智能信息处理重点实验室VIPL课题组,邬书哲博士在CVPR2018上的论文。论文主要针对的是在不同平面角度下的人脸检测,主题思想可以概括为Progressive Calibration Networks(PCN), 即逐步校正不同角度的人脸。
- 已有方法:目前,针对平面角度的人脸检测主要有3种策略,即data augmentation, divide-and-conquer, rotation router。
4. 改进:作者为了快速地检测不同平面角下的人脸(0°~360°),通过逐级校正的路线,针对第一级检测出来的人脸,将为[-180°, 180°]的人脸翻转到[-90°, 90°]。这一步简单来说,就是把朝下的人脸翻转为朝上,这样就减少了一半的角度范围。第二级再继续以两条±45°的轴进行翻转,将人脸的角度范围限制到[-45°, 45°]。第三级,使用角度偏差回归预测精准的角度。校正流程如下:
5. 样本划分:
Positive, IOU > 0.7
Negative, IOU < 0.3
Suspected, IOU ∈[0.3, 0.7]
Positive 和 negative 用于人脸分类,positive 和suspected 用于人脸框的回归和角度校正。
需要说明的是,
三级网络的训练样本输入分别为24x24,24x24,48x48。
对于第一级网络,人脸范围划分为2部分,人脸朝上的角度范围是[−65°,65°], 人脸朝下的范围是[-180°,-115°]∪[115°,180°],其他角度范围不作训练数据。可以定义朝上的label为0,朝下的为1。
对于第二级网络,人脸范围划分为3部分,分别为[-90°,-45°],[-45°,45°],[45°,90°],可以定义label分别为0,1,2。
对于第三级网络,人脸范围为[-45°,45°],与前两个网络不同,训练的任务是人脸角度的回归。
6. 训练细节:
每个batch里的样本比例,positive: negative:suspected=2:2:1
max_iters:100,000
type:SGD
lr_base:0.001
gamma:0.1
lr_policy:step
step:70,000
wd:0.0005
7. 网络结构:
8. 算法介绍:
8.1 PCN-1
对于每一个输入的滑窗,第一级网络有3个目标:人脸与非人脸的判断(f),人脸框的回归(t),角度的分类score(g)。
第一个目标f,使用softmax-loss,y=1 if face else 0
第二个目标t,使用 l1 loss
人脸框的回归由3部分组成,w代表宽度,(a,b)代表人脸框的左上角坐标
第三个目标g,和第一个类似使用softmax-loss, y=1 if face is up else 0
最终的loss为,λ为各个loss 的weight
第一级的人脸角度划分,根据预测的θ进行划分,0°表示人脸朝上,不翻转;180°表示人脸朝下,进行翻转。
8.2 PCN-2
第二级与第一级类似,只是角度的校正范围发生了变化,转变为[-90°,-45°],[-45°,45°],[45°,90°]
8.3 PCN-3
经过第二级的校正之后,人脸的范围已经校正到竖直的一个区域。通过直接对角度进行回归,使用的loss变为l1 loss。
最终的角度可以由3级网络检测的角度进行叠加得到。
9. 实验结果:
论文笔记--PCN:Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks的更多相关文章
-
论文笔记-IGCV3:Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks
论文笔记-IGCV3:Interleaved Low-Rank Group Convolutions for Efficient Deep Neural Networks 2018年07月11日 14 ...
-
【论文笔记】DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families
DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families 标签(空格分隔): 论文 论文基本信息 会议: I ...
-
论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks
SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 2019-04-02 12:44:36 Paper:ht ...
-
论文笔记:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
2014 ICLR 纽约大学 LeCun团队 Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann ...
-
论文笔记:Learning Region Features for Object Detection
中心思想 继Relation Network实现可学习的nms之后,MSRA的大佬们觉得目标检测器依然不够fully learnable,这篇文章类似之前的Deformable ROI Pooling ...
-
【论文笔记】张航和李沐等提出:ResNeSt: Split-Attention Networks(ResNet改进版本)
github地址:https://github.com/zhanghang1989/ResNeSt 论文地址:https://hangzhang.org/files/resnest.pdf 核心就是: ...
-
论文笔记:AdaScale: Towards real-time video object detection using adaptive scalingAdaScale
AdaScale: Towards real-time video object detection using adaptive scaling 2019-02-18 16:14:17 Paper: ...
-
论文笔记:ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks
ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks2018-03-05 11:13:05 ...
-
论文笔记之:UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS ICLR 2 ...
随机推荐
-
(转载)python2+selenium自动化测试系列(二)
16.Selenium2+python自动化16-alert\confirm\prompt 17.Selenium2+python自动化17-JS处理滚动条 18.Selenium2+python自动 ...
-
xUtils,butterknife...处理findviewbyid
在写android中,经常要出现大量的findviewbyid et_path = (EditText) findViewById(R.id.et_path); tv_info = (TextVi ...
-
TCSRM 593 div2(1000)(dp)
Problem Statement The pony Rainbow Dash wants to choose her pet. There are N animals who want t ...
-
Ubuntu 14.04下java开发环境的搭建--2--Eclipse的安装
前面说了JDK的安装,http://www.cnblogs.com/bcsflilong/p/4196536.html 下面我们来安装Eclipse! 安装Eclipse 的前提是,你的JDK已经安装 ...
-
根据价格范围筛选汽车(路由以及JS与Jquery)
通过输入价格范围,来筛选汽车,主要方法是通过点击“查询”按钮,触发chaxun()方法,利用Jquery和JS获取输入的值,然后为相应的div加载相应的动作,通过更改路由的路径,以此来实现筛选车辆,然 ...
-
系统调用服务号 linux 2.6.32
http://www.cnblogs.com/xcywt/p/4998963.html 系统定义符号集中声明在 /usr/src/kernels/linux-2.6.32/include/linux/ ...
-
[Client]动检参数讨论与ONVIF
[问题]客户端访问ONVIF设备动检 客户端要访问ONVIF设备(IPC)的动检,一是事件,二是设置: 此处就是讨论如何设置动检区域的. 通过Video Analytics/Cell Motion D ...
-
关于tcp queue
半连接队列:服务端维护的与客户端保持SYN_RECV状态的连接队列,等待客户端回复,当收到客户端ack后,如果条件允许(全连接队列未达到最大值),服务端进入ESTAB状态,从半连接队列移到全连接队列的 ...
-
python 压缩文件为zip后删除原文件
压缩.log 文件为zip后删除原文件 需要注意:本人作为小白,该脚本需要和.log在一起,后面有时间需要改正. #!/usr/local/python/bin/python #-*-coding=u ...
-
JAVA是是如何处理字符的。
String s = "fs123fdsa";//String变量 byte b[] = s.getBytes();//String转换为byte[] String t = new ...