zoukankan      html  css  js  c++  java
  • 《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)虽然训练时数据准备较花时间,但由于分解成了小网络,计算复杂度降低,测试时间缩短,可以实现实时监测;

  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/zf-blog/p/6193427.html
Copyright © 2011-2022 走看看