• 《A Convolutional Neural Network Cascade for Face Detection》


    文章链接:   http://pan.baidu.com/s/1bQBJMQ  密码:4772

    作者在这里提出了基于神经网络的Cascade方法,Cascade最早可追溯到Haar Feature提取时用到的Adaboost算法(参考这个博客:http://blog.csdn.net/zouxy09/article/details/7922923),作者在这里将它和神经网络结合到了一起,可谓创新。

    关键字:Cascade;Calibration;

    为了提高图片的测试速度,作者在这里使用了Cascade,级联了6个CNN,结构如下:

    这六个CNN共分为两类,一类网络(12-net,24...)(它们是2分类)去分类,同时产生候选框;一类网络(12-Calibration-net,24...)(它们是45分类)是对候选框进行位置矫正,它们的结构如下:

    大致分析一下它的流程:(个人见解,可能有的地方有错误,非常欢迎指正~)

    训练阶段:

    作者先从AFLW数据集中的图片中进行裁剪获得人脸图片作为正样本,再从背景中裁剪获得负样本;

    将正样本resized为12*12的大小,输入到12-net中进行训练;

    将每一个正样本进行scale、x轴、y轴变换(共45种变换),生成45张图片,再贴上标配,输入到12-Calibration-net中进行训练,变换参数见下:

    之后24、48网络的训练同理;

    测试阶段:

    输入测试图片,先对它进行scale变换,形成图像金字塔,再将金字塔中的每一张图片输入到级联网络中;

    先进入12-net中,利用sliding-Window,获得特征图,设定一个阀值,一方面进行分类,一方面获得大于阀值的候选框;

    将12-net的输出中大于阀值但是类别为非人脸的作为12-Calibration-net的负样本,大于阀值同时类别为人脸的作为12-Calibration-net的正样本,(注意这时候后面的网络便已经与原输入图片无关了)

     这些候选框经过12-Calibration-net后每一个都输出45个得分,在经过下面的操作,获得最终变换的参数,即可获得调整后的框位置:

    接着再将12-Calibration-net的输出先resized为24*24,再送到24-net的输入中,再进行分类,又剔除了一部分,接着再向后面的网络传输。。。

    使用这种Cascade方法的好处就是:

    (1)由于将一个大网络分解成多个小网络进行训练,训练难度减小,所需要的训练集也减小;

    (2)虽然训练时数据准备较花时间,但由于分解成了小网络,计算复杂度降低,测试时间缩短,可以实现实时监测;

  • 相关阅读:
    JavaWeb servlet过滤器
    JavaWeb--jsp九大内置对象完整总结
    response.getWriter()和jsp中的out对象的区别
    JavaWeb基础(jsp初识)
    Oracle 存储过程的基本语法 及注意事项
    PLSQL编程基础 :分支、循环语句
    oracle数据库的高级查询方法 多表联合查询
    oracle中 SQL语句 经典练习题
    git 拉取远程分支报错(fatal: '' is not a commit and a branch '' cannot be created from it)
    根据端口号查询进程并杀掉被占用的进程
  • 原文地址:https://www.cnblogs.com/zf-blog/p/6193427.html
Copyright © 2020-2023  润新知