应用级联CNN的人脸检测--笔记

一、总述:

此基于级联CNN的网络,同时具有高区分能力和快速性(高性能)。

两个结构特点:

1.  采用多分辨率,在前期的低分辨率层,快速的剔除背景区域;在后面的高分辨层,仔细预估难以区分的候选检测图。

2.  基于CNN的矫正层,跟在检测层之后,可以改进定位效率,和为后面层级减少候选的检测图数。

校准层调整检测窗口的位置,它的输出作为后面紧随层的输入。传统VGA图在单核CPU上可以跑到14 FPS,在GPU上可以跑到100 FPS。

 

二、级联CNN

2.1整体框架


图1

图1检测气的检测流程,从左到右,检测窗口在减少,并且(检测)层与层之间是有调整/矫正层的。

给定一幅图像,12-net将密集的扫描这整幅图像(不同的尺寸),快速的剔除掉超过90%的检测窗口,剩下来的检测窗口将被12-calibration-net逐个的以12x12的图像去调整它的尺寸和位置,让它更接近潜在的人脸图像的附近。

用非极大值抑制(NMS)去除高度重叠的检测窗口。剩下来的检测窗口将会被挑出并归一化没到24x24的图像作为24-net的输入,这将进一步剔除掉剩下来的将近90%的检测窗口。和之前的过程一样,通过24-calibration-net矫正检测窗口,并应用NMS进一步降低检测窗口的数量。

最后的48-net,将通过之前所有层级的检测窗口,以48x48的图像来估计检测窗口。NMS消除重叠是通过使用 交叉覆盖联合(IoU)比率超过预设阈值的方法。24-calibration-net矫正检测窗口作为最后的输出。

2.2  CNN结构

有6个CNNs被级联,3个人脸和非人脸的二分类CNNs;3个边框调整的CNNs,它是多分类的离散位移模式。没有特殊说明,我们使用ReLU非线性函数在下采样层和全连接层之后。

 

2.2.112-net

在测试流程中我们首先使用12-net吗,见图2。密集的扫描WXH 的图像,步长为4像素,12x12检测窗口。相当于使用12-net去获得一个增幅图像的([(W-12)/4]+1)x([(W-12)/4]+1) 置信分。

如果获得最小的人脸尺寸为F,测试图像会首先被建成图像金字塔,每级比例为12/F,作为12-net的输入。


图2检测网络结构

 

2.2.212-calibration-net

12-calibration-net是在12-net之后进行边框的矫正。结构见图3。N个矫正模式是预先设定好的,他是一个3维变量变化的无序向量。相关的关系见图4

 

 


图3矫正网络结构

 


图4 45种矫正模式及具体矫正方法

有N(45)个矫正模式。

给定一个检测窗口,窗口区域被剪出来并归一化到12x12作为12-calibration-net的输入。矫正网络将输出一个置信分的向量 。由于矫正模式之间不是正交的,所以采用高置信分模式的均值,来矫正。相关均值关系见图5。


图5 均值计算定义

 

2.2.324-net

24-net进一步减少检测窗口的数量,用12-calibration-net的输出窗口,resize到24x24,24-net进行预估。结构在图2。

同样相似,的浅层结构可以提高时间上的效率。并在24-net中采用多分辨率结构。在24-net中为了两种分辨率的图像分别为24x24和12x12。图2 ,全连接层就是之前的12-net的子结构(fully-connected layer),它被串联到128输出的全连接层。带有多分辨率的结构,12-net补充了24-net,可以帮助检测小脸。

图6是是否带多分辨率的实验对比


图6是否带多分辨率的实验对比

 

2.2.424-calibration-net

与12-calibration-net相比,除了输入size的不同,其它都相同。

 

2.2.5 48-net

图2,48-net 是相对复杂的,和24-net相似采用了多分辨率。

 

2.2.6 48-calibration-net

它和12-calibration-net一样都用了45个预先定义的模式。48-calibration-net只用了一个下采样层,这样可以提高矫正精度。

 

2.2.7 非极大值抑制(NMS)

迭代选择高置信分的检测窗口,消除交叉联合(IoU)比例高于预设阈值的检测窗口。12-net和24-net是浅CNNs,无足够的区分性,假阳性的挑战很大。12-calibration-net和24-calibration-net假阳性的挑战更大,因为跟高的置信分。因此,在12-calibration-net和24-calibration-net后面分别加了NMS,避免相同尺寸的检测窗口的召回率的降低。NMS在48-net被应用到了所有不同比例的窗口上,为了获得最精确的检测位置,及正确的图像比例,和避免冗余估计。

 

2.3矫正CNN


图7是否矫正对比

蓝色框是未调整的,红色检测框是调整后的。

绝大多数的检测框没有很好地对齐人脸。没有对齐步骤,接下来的级联CNN为了保证召回率,必须去估计更大区域的图像。整体检测时间将明显提高。

这个问题普遍存在于目标检测中。用多分类的矫正CNN代替了R-CNN,因为在有限的训练数据集下,多分类的CNN训练起来跟容易。我们相信离散化降低了矫正问题的难度,所以可以用更简单的CNN结构,获得好的矫正精度。

 

2.4训练过程

在级联CNNs的训练中,使用了5800张背景图来获得负样本,用AFLW作为正样本。在二分类和多分类的级联CNNs的训练中用了多元逻辑回归目标函数进行优化。

 

2.4.1矫正网络

对于矫正网络的训练数据,我们将标注好的人脸,用前面的45种矫正模式进行扰动。例如第n种模式 ,应用去调整标注好的人脸框,剪出来resize到(12x12,24x24,48x48)。

 

2.4.2检测网络

12-net,24-net,48-net是按照级联结构训练的:

a.随机抽样20万张Neg,12x12 Pos 训练12-net

b.用12-net和12-cali级联(2-stage)在AFLW上确定阈值T1(置信分,99%的召回率)

c.在background 用2-stage,开采Neg,大于T1的图 喂给24-net

d.N(大于T1)和P(24x24)训练24-net

e.同样方法级联(4-stage)在AFLW确定T2(97%recall)

f.同c开采neg(大于T2)喂给48-net

g.训练 48-net  N P(48x48)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue级联选择器使用v-model来实现双向数据绑定。v-model指令在内部使用了value和input事件,使得父组件能够通过v-model来控制子组件的值,并且子组件的值的变化也可以反馈给父组件。 在级联选择器的父组件中,你可以使用v-model来绑定一个变量,这个变量将会被用来存储当前所选的值。例如: ```html <template> <div> <cascade-selector v-model="selectedValue"></cascade-selector> </div> </template> <script> import CascadeSelector from './CascadeSelector.vue'; export default { components: { CascadeSelector }, data() { return { selectedValue: '' }; } } </script> ``` 在子组件CascadeSelector中,你可以使用props接收父组件传递的值,并在选择发生变化时,通过$emit('input', value)来触发父组件的input事件,从而更新父组件的数据。例如: ```html <template> <div> <select v-model="selected" @change="handleChange"> <option value="">请选择</option> <option v-for="item in options" :value="item.value" :key="item.value">{{ item.label }}</option> </select> </div> </template> <script> export default { props: ['value'], data() { return { selected: '' }; }, computed: { options() { // 返回级联选择器的选项数据 } }, mounted() { // 初始化选中值 this.selected = this.value; }, methods: { handleChange() { this.$emit('input', this.selected); } } } </script> ``` 这样,父组件和子组件之间就建立了双向数据绑定,父组件中的selectedValue会随着子组件的选择发生变化而更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值