本文介绍的人脸检测方法 来源于2015CVPR《A Convolutional Neural Network Cascade for Face Detection》。本篇文章的方法可以说是对经典的Viola jones方法的深度卷积网络实现 并没有让人眼前一亮的地方 但依然有以下几点可以学习。
1 网络级联下图是该方法的整个流程示意图 可以明显看出是3阶级联 12-net、24-net、48-net 。
级联的工作原理和好处
1、最初阶段的网络可以比较简单 判别阈值可以设得宽松一点 这样就可以在保持较高召回率的同时排除掉大量的非人脸窗口
2、最后阶段网络为了保证足够的性能 因此一般设计的比较复杂 但由于只需要处理前面剩下的窗口 因此可以保证足够的效率
3、 级联的思想可以帮助我们去组合利用性能较差的分类器 同时又可以获得一定的效率保证。
下图展示了 3阶段平均剩下的窗口数量及对应的召回率
下图是3阶网络的具体网络结构
由上图可以看出 前2阶的网络都非常简单 只有第3阶才比较复杂。这不是重点 重点是我们要从上图中学习多尺度特征组合。
以第2阶段的24-net为例 首先把上一阶段剩下的窗口resize为24*24大小 然后送入网络 得到全连接层的特征。同时 将之前12-net的全连接层特征取出与之拼接在一起。最后对组合后的特征进行softmax分类。
下图展示了 使用和不使用多尺度特征的差异
由图可见 采用多尺度特征可以相同条件下获得相对较高的召回率 即提升了网络的分类能力。
大家应该在整体流程示意图中注意到了 每一个分类网络的输出都会经过一个对应的校正网络之后 才会被送到下一阶段。
该校正网络是为了解决下面的定位不准的问题的
在上图中 蓝色框是 如12-net 分类网络的输出 红色框是经过对应的12-calibration-net校正后的输出。
对于矩形框的校正 我们只需要3个参数 一个是水平平移量xn 一个是垂直平移量yn 还有一个是宽高缩放比例sn。即我们要将矩形框的控制坐标调整为
直觉上来看 这是要解决一个回归问题 需要回归出3个参数。但是连续的回归问题是很难解决的 因此文章将此转化为离散的分类问题。文章首先 将3个参数分别列出一些值
于是 我们的目标就是建立一个45类的分类器 毕竟神经网络的强项在于分类。
但是 这个分类器的准确性仍然不是很稳定。因此 文章选择得分比较高的几类做平均 最后进行校正 即
对于级联问题 文章采用了特殊的训练策略。
1、按照一般的方法组织正负样本训练第一阶段的12-net和12-calibration-net网络
2、 利用上述的1层网络在AFLW数据集上作人脸检测 在保证99%的召回率的基础上确定判别阈值T1。
3、将在AFLW上判为人脸的非人脸窗口作为负样本 将所有真实人脸作为正样本 训练第二阶段的24-net和24-calibration-net网络
4、重复2和3 完成最后阶段的训练
本文链接: http://cascade.immuno-online.com/view-689650.html