论文解析:人脸检测中级联卷积神经网络的联合训练
论文解析:人脸检测中级联卷积神经网络的联合训练
商汤科技解析CVPR2016论文:人脸检测中级联卷积神经网络的联合训练
论文:Joint Training of Cascaded CNN for Face Detection
论文作者:Hongwei Qin, Junjie Yan, Xiu Li, Xiaolin Hu
Grad.School at Shenzhen Tsinghua University(清华大学深圳研究生院),Tsinghua University(清华大学),SenseTime Group Limited(商汤科技)
本文作者:闫俊杰
作者个人简介:
闫俊杰,商汤科技主任研发工程师,15 年博士毕业于中科院自动化所,研究领域主要是物体检测和人脸识别,发表了超过 10 篇 CVPR\ECCV\ICCV 论文。在 SenseTime 负责监控产品线的技术研发以及检测技术的基础研究。
CVPR:IEEE Conference on Computer Vision and Pattern Recognition,即 IEEE 国际计算机视觉与模式识别会议。该会议是计算机视觉和模式识别领域的顶级会议,在中国计算机学会推荐国际学术会议的排名中,CVPR 为人工智能领域的 A 类会议。
商汤科技会在 CVPR 2016 上提交多篇论文,接下来,商汤科技的技术专家将在机器之心发布系列文章,对论文进行解读。
人脸检测是一个各种人脸应用中最基础的一个模块。 几乎所有的人脸应用都需要首先使用检测器来得到人脸的具体位置,然后再进行更加精细的处理,包括关键点定位,美颜,识别等等。当我们用单反拍照,当我们用手机美颜,当我们登陆系统前进行人脸认证,甚至当我们经过某些监控摄像头,人脸检测算法时刻在运行着。
作为几乎是整个计算机视觉最重要、最成功的应用之一,人脸检测在 2000 年左右就有了一个令人信服的解决方案,当时 Viola 和 Jones 提出了积分图特征计算 +Adaboost+ 级联的方式来做检测。其中积分图特征计算的效率非常高,每个像素只要被遍历一次就可以得到积分图,然后可以快速的计算出一些人工设计的特征模式;Adaboost 算法可以把很多弱特征组合成一个更强的分类器;而级联可以快速过滤掉过多的背景。Viola 和 Jones 的方法非常成功,以至于至今依然被持续改进和大规模的使用。Viola&Jones的改进和实用化的过程中,一个很重要的事件是黄畅博士的改进算法以及 Omron(欧姆龙)的劳世竑和他的团队把该算法做到了芯片上(很幸运的劳老师现在也在 SenseTime 工作)。
从 08 年 12 年之间,很多没有自己动手做过实验的人往往以为人脸检测已经解决了,计算机视觉的几个主流会议上甚至很少也看到人脸检测的工作。 这其中的原因,可能是之前大家做人脸识别等的实验,往往在一些比较规范的数据集上。但是对于真实世界的人脸,不管是学术界的 FDDB,MALF 还是工业界的一些实际使用场景,亲自做过实验的人都可以很明显的感受到基于 Viola-Jones 的这套框架的力不从心。不仅仅是性能方面,还有个严重的问题是,这些方法过多的依赖经验的积累。从头基于这套框架复现一个好的结果,并且维护一套性能优异的测试代码的时间成本和人力成本都非常非常的大,造成了一定的门槛。 由于大部分所谓的经验都是不公开的,这在某种程度上也阻碍了技术的进步。
好消息是整个领域进入了卷积神经网络(Convolutional Neural Network,既CNN)的时代后,之前的很多传统方法的经验积累可以很快的被颠覆。人们很快发现,直接把通用物体检测的思路搬到人脸检测里面,并做一些简单的改进就很容易取得比传统方法更好的结果。于是13年到现在学术界的人脸检测数据集 FDDB、AFW 和 MALF 等被一次次的刷新着。这些方法至少在精度上比前一代算法提升了很多, 与当时很多商业软件里面的人脸检测器,比如 Google Picasa 等有接近的性能。笔者也在这个大潮中和伙伴们一起用几种不同的方法刷新了结果,但是和绝大多数的所谓科研一样,这些基本上都成了过眼云烟,除了几篇 paper 外并没有留下太多的实际意义。 这些方法本质上以最好的通用物体检测算法作为基础,加以改进。但是相比于通用物体检测,人脸检测有些不同,比如说人脸对精度和速度的要求更高;人脸有很多关键点和属性的标注可以利用;人脸比通用物体更容易设计有更多的先验等等,这些不同导致了近期非常多的基于卷积神经网络的人脸检测的工作,大部分也都取得了不错的结果。
我们的文章考虑了一个如何联合训练检测器的问题,可以认为是卷积神经网络方案中的一个,但是不局限于某个特定的 CNN 检测方法。不管是人工设计的特征的方法,还是基于卷积神经网络的检测算法,往往都需要做级联。而级联的缺点是不太好直接联合训练,这恰恰破坏了卷积神经网络可以端到端训练的性质。由于传统的级联训练往往是单步求解最优,得到的结果可能没有多步联合最优的效果好。
为此,我们提出了一种可以联合训练整个级联分类器的一种方式。得益于神经网络可以反向传播的性质,我们给出了如何联合训练整个级联分类器。并且,我们说明了如何在简单的 cascade CNN 和更复杂一点的 faster-RCNN 上都可以用这种方式来联合训练,并且可以取得非常优异的性能。 特别是当网络的规模比较小的时候,这种联合训练的方法提升非常大。如下是一个简单的级联卷积神经网络的示例图。
这个工作做完之后,我们进一步大幅度提升了检测的速度和精度,并把完全基于 CNN 的方法做到了包括 ARM,CPU 和 GPU 各个平台上,并且跑到了非常好的速度。如今,商汤科技基于深度学习的人脸检测技术适配于多个品牌不同型号的手机上,支持着几十个各类 APP 的人脸分析功能;在单核 CPU 上可以跑到上百 FPS,并每天支持着大量的金融人脸认证服务;在单个 GPU 上可以实时的处理超过 12 路以上的高清视频,并运用到很多的安防监控系统中;甚至不久的将来,还会集成到相机前端的人脸抓拍芯片中。
如今众多的产品需求为技术的进步提供了海量的数据,也提出了越来越高的需求。我们知道,技术远远没有极限。很多现在感觉平常的技术,甚至半年前都难以想象;一些我们现在觉得难以逾越的技术障碍,有可能半年内被很好地解决。为此,我们默默的积累着,也希望更多的小伙伴一起在技术进步的道路上流下自己的汗水。
论文解析:人脸检测中级联卷积神经网络的联合训练相关推荐
- CVPR 2016|商汤科技论文解析:人脸检测中级联卷积神经网络的联合训练
论文:Joint Training of Cascaded CNN for Face Detection 论文作者:Hongwei Qin, Junjie Yan, Xiu Li, Xiaolin H ...
- MTCNN-将多任务级联卷积神经网络用于人脸检测和对齐
论文链接: https://kpzhang93.github.io/MTCNN_face_detection_alignment/,本文是根据自己的理解翻译的如有错误,还请见谅,评论提出,立马修 ...
- MTCNN论文翻译 人脸检测
原理:参考 Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 多任务级联卷积网络进 ...
- 深度学习(十五)基于级联卷积神经网络的人脸特征点定位
基于级联卷积神经网络的人脸特征点定位 原文地址:http://blog.csdn.net/hjimce/article/details/49955149 作者:hjimce 一.相关理论 本篇博文主要 ...
- 深度学习在人脸检测中的应用 | CSDN 博文精选
作者 | 梁志成.刘鹏.陈方杰 责编 | 唐小引 转载自CSDN(ID:csdnnews) 在目标检测领域,可以划分为人脸检测与通用目标检测,往往人脸这方面会有专门的算法(包括人脸检测.人脸识别.人脸 ...
- 人机交互系统(4.1)——深度学习在人脸检测中的应用
1 人脸检测 在目标检测领域可以划分为了人脸检测与通用目标检测,往往人脸这方面会有专门的算法(包括人脸检测.人脸识别.人脸其他属性的识别等等),并且和通用目标检测(识别)会有一定的差别,着主要来源于人 ...
- 人脸检测中,如何构建输入图像金字塔
目录 写在前面 人脸检测中的图像金字塔 代码实现 MTCNN Seetaface 总结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 在文章<特征,特征不变性 ...
- 理解NLP中的卷积神经网络(CNN)
此篇文章是Denny Britz关于CNN在NLP中应用的理解,他本人也曾在Google Brain项目中参与多项关于NLP的项目. · 翻译不周到的地方请大家见谅. 阅读完本文大概需要7分钟左右 ...
- 斯坦福NLP名课带学详解 | CS224n 第11讲 - NLP中的卷积神经网络(NLP通关指南·完结)
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://ww ...
最新文章
- Spring Cloud Alibaba 雪崩效应和容错解决方案
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)
- MessageFormat 格式化String
- 腾讯云服务器CentOS 7安装MariaDB并用Navicat Premium连接
- UI音乐播放之入门篇AudioSerVicesPlay
- 技术博客2014年3月份头条记录
- Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG)
- 算法:Longest Valid Parentheses(最长有效的括号)
- 计算机里怎么添加桌面,电脑上怎么把我的电脑添加到桌面上
- 删除Docker出现: device or resource busy错误
- 【预测模型】人口结构可持续发展模型构建
- UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x93 in position 4: illegal multibyte sequen
- Matching the Blanks: Distributional Similarity for Relation Learning (通篇翻译)
- DeepReID: Deep Filter Pairing Neural Network for Person Re-Identification
- 浏览器劫持(病毒)事件处置
- oracle asm omf,Oracle Managed Files,OMF
- word文档保存的时候,就会出现“文件许可权错误,word 无法完成保存文件”的提示
- 备用dns服务器修改,修改DNS,让你的上网速度更快!
- wps office只显示一级目录和添加水印
- 2038问题及其解决方案
热门文章
- 虚拟机中mysql-cobar安装_cobar配置安装
- java 1kb_[代码全屏查看]-java输入输出流及文件操作
- 小型邮件服务器,windows 2003 server小型邮件服务器架设
- linux通过SSH连接的SSH加密原理(笔记自用)
- 贷款违约预测--赛题理解
- C++:cin、cin.getline()、getline()的用法
- C ++ 函数模板求三个数的最大和
- 用java建立多项式logit模型_使用mgcv向多项式logit模型添加样条
- mac安装opencv
- tableau必知必会之教你做品牌树的树梢(分类桑基图补丁)