s3vm与tritraining_S3FD论文解读

论文题目:S3FD: Single Shot Scale-invariant Face DetectorS$^3$FD: Single Shot Scale-invariant Face Detector​arxiv.orgsfzhang15/SFD​github.com9146124a38e3f9163c9b831796452ab3.png

作者团队,来自于中科院自动化所(CASIA),一作Shifeng Zhang(张士峰),看见没,这就是大佬。导师是Stan Z. Li(李子青老师),大牛、巨擘、泰山北斗、执牛耳者(没文化,词穷了,[捂脸])。

废话少说,干货盛好了端上来。

Abstract

人脸不好检测,尤其是小尺度人脸。特别是anchor-based的算法,在small face上简直是灾难级的表现。所以本文的工作主要是基于anchor-based算法,做了3点改进,在small face方面取得了显著进步。提出scale-equitable的检测框架来处理不同尺度的人脸。基于equal-proportion interval principle设计anchor尺度并将其应用在更多的层上,这个principle主要是根据effective receptive field原理设计的。

通过scale compensation anchor matching strategy来提高small face的recall。

通过max-out background label以减少small face的false positive。

虽然不是特别惊人的改进,但是最后在AFW、PASCAL face、FDDB和WIDER FACE 等数据集上都达到了SOTA,并且达到36fps的速度,好厉害。这说明工作做地很本质,解决了实质性问题,不需要太花哨的操作。

1. Introduction

先说了下VJ的工作(看来真的很经典),后人只能在此基础上设计更加robust features 和training effective classifiers(前人挖坑,后人填坑)。但是,由于VJ这套算法是组合式的,各个模块太分离了,所以整体的结果是次优的(很有道理)。

然后又说最近CNN很爆炸,各种SOTA,face detection继承自generic object detection。接着说起了anchor-based object detection methods,引入anchor带来好处的同时当然也带来了各种弊端。比如,anchor因为利用先验太多了,导致如果目标的scale变小,模型的性能将会急剧下降,主要分析了下面几条原因。如下图(a), The lowest anchor-associated layer使用的步长太大,比如SSD网络使用的是8个像素,Faster R-CNN使用的是16个像素,在这些经典的目标检测网络中,小尺度的人脸被严重缩放压缩,通过网络提取的特征信息大部分都被丢失,最后检测精度较低。 另外还有如下图(b)所示,anchor的尺度和感受野相互不匹配,而且都太大而不适宜检测small face。

如下图(c), 离散尺度的anchor预测连续尺度的人脸,导致tiny face和outer face均不能获得足够多的匹配。

如下图(d), 小的anchor在进行匹配时会面临更多的negative,不利于训练,检测。

问题分析得很清楚,本文的主要工作也是围绕上述几个问题来展开的。

2. Related work

VJ good,but sub-optimal。

CNN:Cascade CNN、MTCNN和UnitBox。

本文inspired by RPN and SSD。

3. Single shot scale-invariant face detector

大致框架如上图,貌似改进自SSD,主要工作包括以下四个部分。

3.1. Scale-equitable framework

Constructing architecture:网络结构的改进就不扯了,主要说一下最后head的输入。conv3_3对应head的confidence的输出是4维(其中前3个维度代表背景,最后一个是foreground),其余的head预测都为2维,指代b/g。

Designing scales for anchors:

Each of the six detection layers is associated with a specific scale anchor to detect corresponding scale faces(这是由感受野决定的),设计的准则如下。Effective receptive field:有效的感受野ERF,不是感受野内的每个pixel都是同样重要的,总的来说,中央的神经元起到的作用是比四周的大的,所以anchor应该是要比感受野小的来匹配有效感受野,上图(a)中,明显中间所占权重要大,所以不能参考TRF(Theoretical Receptive Field)。

所以anchor要小于TRF,接近于ERF。

Equal-proportion interval principle:detection layer的stride大小决定了anchor在input image上的间隔。以conv3_3为例,stride是4(设置得密一些,保证不丢脸),anchor是16*16这就表明了在原图上每隔4个pixel有一个16*16的anchor。我们就把这个anchor的scale设计成了stride的4倍,这样就能保证,不同scale的anchor在原图上有同样的密度,如上图(c)所示。这样不同scale的脸能尽可能匹配到同等数目的anchor(保证丢脸程度一样)。最后,anchor设置结果如下表所示。

3.2. Scale compensation anchor matching strategy

这是针对的人脸检测,所以anchor的匹配策略也要改变,不能照搬。anchor的scale是离散的,但是人脸的scale是连续的。这边引入了两个阶段的匹配策略,把SSD原有的匹配阈值从0.5降到0.35,旨在增加更多成功地匹配。

这样肯定还是有一些face没有anchor匹配,我们就选择和这些face的iou>0.1的anchor,排序完之后选择topN个,作为match这些face的anchor。看一下第一阶段,每个face平均匹配到多少anchor,这边N就设置为整个平均数,最后N=3。

3.3. Max-out background label

这个主要是解决小人脸的high false positive rate,显然尺寸小的anchor占了绝大比例,这也是false positive的主要来源。我们可以发现,anchor主要集中在conv3_3,基本也是以1/4在下降(很合理)。

在S3FD中,anchor-based人脸检测方法,是一个二分类问题,来决定是否是face还是background。但是这个anchor的分类是一个unbalanced问题,只有极小的一部分是positive。比如说,一个640x640的image,总共有34125个anchor,有大约75%的来自于conv3_3,这也是与最小锚点相关的层(16x16)。这些小的anchor对于那些false positive的样本做出了极大的贡献。因此,通过平铺小的anchor来提升小面孔的检出率,必然会导致小面孔的false positive rate(把不是人脸的看成人脸)。为了解决这问题,在这个conv3_3的detection layer上应用了max-out background label,对于背景预测了个

equation?tex=N_m分数,选择最高的作为final score。其中

equation?tex=N_m = 3, 相当于尽量让small anchor被预测为background,以此来减少false positive rate。具体操作,如下图(b)所示。

3.4. Training

Training dataset and data augmentation:Color distort、Random crop和Horizontal flip

Loss function:

equation?tex=L%5Cleft%28%5Cleft%5C%7Bp_%7Bi%7D%5Cright%5C%7D%2C%5Cleft%5C%7Bt_%7Bi%7D%5Cright%5C%7D%5Cright%29%3D%5Cfrac%7B%5Clambda%7D%7BN_%7Bc+l+s%7D%7D+%5Csum_%7Bi%7D+L_%7Bc+l+s%7D%5Cleft%28p_%7Bi%7D%2C+p_%7Bi%7D%5E%7B%2A%7D%5Cright%29%2B%5Cfrac%7B1%7D%7BN_%7Br+e+g%7D%7D+%5Csum_%7Bi%7D+p_%7Bi%7D%5E%7B%2A%7D+L_%7Br+e+g%7D%5Cleft%28t_%7Bi%7D%2C+t_%7Bi%7D%5E%7B%2A%7D%5Cright%29

Hard negative mining:又是1:3,3真是一个神奇的数字,嘿嘿。

4. Experiments

Ablation study真厉害,hard明显提升,small face效果真好,hard一下子猛涨10个点也说明anchor的设置很关键啊

Evaluation on benchmarkAFW都被打爆了。。。PASCAL face也快顶不住了。。。WIDER FACE 还能抗一抗。。。

DEMO853个脸,谁来数一数???

思考文章并没有惊天动地的改变,但是在性能上却又亮眼的成绩。这说明算法的改进很本质,张士峰大佬的实验工作很扎实,值得我们学习。

Anchor和feature的匹配还能再挖一挖,像FASF一样?

好奇free-anchor在人脸上的表现,后面再看看相关论文,分享给大家,嘿嘿。

参考sponge:S3FD代码及论文解读​zhuanlan.zhihu.com15ec876b445883da657f17518a8ab77a.png尺度不变人脸检测器(S3FD-Single Shot Scale-invariant Face Detector)​cloud.tencent.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

❤️六W字《计算机基础知识》(九)(建议收藏)❤️

在PowerPoint2000中,若为幻灯片中的对象设置"飞入",应选择对话框____。 A、自定义动画 B、幻灯片版式 C、自定义放映 D、幻灯处放映 在编辑Word文档时,输入的新字符总是覆盖了文档中已经输入的字符,_____。 A、原因是…

mysql怎么创建表_mysql怎么创建一个表

1.登陆成功后,首先进入某一个数据库 (不是指数据库服务器)use t1; //t1是数据库名如图所示:2.在此数据库中建立数据库表2.1 先建立表结构(可以理解为表的列名,也就是字段名)在实际生产过程中,表结构是需要经过精心设计的。通用的语…

❤️1000道《计算机基础知识》汇总上----(建议收藏)❤️

1、 世界上首先实现存储程序的电子数字计算机是____。 A、ENIAC B、UNIVAC C、EDVAC D、EDSAC 2、计算机科学的奠基人是____。 A、查尔斯.巴贝奇 B、图灵 C、阿塔诺索夫 D、冯.诺依曼 3、 世界上首次提出存储程序计算机体系结构的是____。 A、艾仑•图灵 B、冯•诺…

HTML+CSS+JS实现 ❤️乐队成员图片展示ui特效❤️

效果演示: 代码目录: 主要代码实现: CSS样式: charset "utf-8"; /* CSS rest */body {font-size: 12px;font-family: "微软雅黑"; }* {margin: 0;padding: 0; }a {text-decoration: none; }ul, li, ol {list…

centos mysql 服务器_服务器数据库搭建流程(CentOs+mysql)

前言:服务器上数据库搭建需要知道Linux系统的版本,以前的Ubuntu14.04直接在终端下输入apt-get install (package)便可方便的下载并安装mysql,但是在centOs上就是行不通的,需要复杂的配置,不过在centOs里可以使用yum in…

HTML+CSS+JS实现 ❤️电商商品图片幻灯片特效❤️

效果演示: 代码目录: 主要代码实现: CSS样式: *, *::after, *::before {box-sizing: border-box; }html {background: #fff; }body {--color-text: #000;--color-bg: #fff;--color-link: #000;--color-link-hover: #858585;--col…

HTML+CSS+JS实现 ❤️响应式团队❤️

效果演示: 代码目录: 主要代码实现: CSS样式: body {margin: 0;min-height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #f7f7f7; }.section-heading {font-family: "Dancing Scr…

canal mysql5.6_超详细的Canal入门,看这篇就够了!

思维导图文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary前言我们都知道一个系统最重要的是数据,数据是保存在数据库里。但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、…

HTML+CSS+JS实现React简单的计算器实例

效果演示:文末获取源码 代码目录: 主要代码实现: CSS样式: :root {/* color palette :: https://coolors.co/app/d63c6b-5cc8ff-efefef-292f36-d6d6d6 */--white: #efefef;--white-alpha: rgba(239, 239, 239, .64);--grey: #d6d…

HTML+CSS+JS实现 ❤️六边形圆柱弹性动画特效❤️

效果演示: 代码目录: 主要代码实现: 部分CSS样式: :root {--w: 8vmin;/*** change width ***/--h: 15vmin;/*** change height ***/--m: 8vmin;/*** change margin ***/--s: 1.25s;/*** change speed ***/ }body {margin: 0;…

shell 写入文件_phpMyAdmin利用日志文件GetSHELL

phpMyAdmin简介phpMyAdmin 是众多MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP 开发的基于B/S模式的MySQL客户端软件,该工具是基于 Web 跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。GetSHELL前…

HTML+CSS+JS实现 ❤️酷炫彩虹旋转隧道特效❤️

效果演示: 代码目录: 主要代码实现: 部分CSS样式: #c {position: absolute;top: calc(50vh - 200px);left: calc(50vw - 200px);}#alpha {position: absolute;top: calc(50vh 220px);left: calc(50vw - 50px);width: 100px;hei…

informix和mysql的区别_DB2与Informix区别比较

DB2与Informix比较特性 DB2 Informix开放性/可移植性 IBMDB2UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。…

HTML+CSS+JS实现 ❤️照相机快门图片动画特效❤️

效果演示: 代码目录: 主要代码实现: 部分CSS样式: html {height: 100%;overflow: hidden; }body {min-height: 100%; }.container {cursor: pointer;background-position: center center;background-size: cover;background-im…

往map里的vector添加_面试官问我同步容器(如Vector)的所有操作一定是线程安全的吗?我懵了!...

为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列等。最常见的同步容器就是Vector和Hashtable了,那么,同步容器的所有操作都是线程安全的吗?这个问…

HTML+CSS+JS实现 ❤️3D方块弹跳动画特效❤️

效果演示: 代码目录: 主要代码实现: 部分CSS样式: *, *::before, *::after {padding: 0;margin: 0 auto;box-sizing: border-box;transform-style: preserve-3d; }body {background-color: black;min-height: 100vh;display: f…

HTML+CSS+JS实现 ❤️520爱心背景表白网页动画特效❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; 部分HTML代码 : <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>好朋友-相册</title&…

HTML+CSS+JS实现 ❤️three 3D铅笔绘图工具特效❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; 部分CSS样式&#xff1a; #mfPreviewBar {display: none !important; }html, body {position: fixed;overflow: hidden;touch-action: none; }body {background-color: #f7f4f0;cursor: url("http…

mysql linux改密码忘记了怎么办_linux上mysql改密码忘了怎么办?

解决方法&#xff1a;1、在my.cnf中&#xff0c;增加“[mysqld]”和“skip-grant-tables”2行代码&#xff0c;用于登录时跳过密码验证&#xff1b;2、启动mysql服务&#xff0c;并登录mysql&#xff1b;3、连接mysql数据库&#xff0c;使用UPDATE命令修改用户密码即可。linux上…

HTML+CSS+JS实现 ❤️透明的水滴文字背景特效❤️

效果演示&#xff1a; 代码目录&#xff1a; 主要代码实现&#xff1a; 部分CSS样式&#xff1a; import url(https://fonts.googleapis.com/css2?familyMontserrat:wght100&displayswap); import url(https://fonts.googleapis.com/css2?familyPoppins:wght900&d…