热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人脸识别算法调研

1.神经网络:来源:人的大脑发展至今,一共有三波浪潮:1957年~1969年Perceptrons:无法解决异或问题1985年~1990年NeuralNetworks(BP):被svm干掉20

1.神经网络:

来源:人的大脑

 

发展至今,一共有三波浪潮:

1957年~1969年 Perceptrons:无法解决异或问题

1985年~1990年 Neural Networks(BP):被svm干掉

2006年~今天 Deep Neural Networks(DBN) 


DNN:Geoffrey Hinton 

CNN:Yann LeCun 

RNN:Yoshua Bengio 

优点:

(1)使用的和人脑相同的构造 
(2)非常容易扩展模型容量和数据规模 
(3)无需人工提取特征,端到端
(4)规律的拟合到数据的拟合 

问题:

太多的trick,都是依靠直觉提出来的,需要有solid学习机制和理论支持 


2.机器学习的常用概念:

准确率:它表示的是预测为正的样本中有多少是对的

召回率:针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了

过拟合:训练集错误率很低,但测试集错误率很高。

回归:连续型数值,诸如识别人脸关键点、房价预测等

分类问题:诸如判断性别

 

3.传统机器学习算法

(1)分类问题:

logistic(sigmoid):二分类问题

z = w0x0+w1x1+w2x2+w3x3+...+wnxn

svm支持向量机: 

adaboost元算法:

对其他多个分类器进行组合的一种方式,每个分类器具有一定的权重

(2)回归问题:

线性回归:

 

(3)聚类问题:

k-means:

 

4.CNN(卷积神经网络)

LeNet-5网络结构,如下:

 

局部感知:

参数共享、多卷积核:

池化操作:取最大,取均值等

卷积过程:

 

5.国内外主流人脸识别算法对比:

FaceNet:Google

与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层作为特征,而是直接进行端对端学习一个从图像到欧式空间的编码方法,然后基于这个编码再做人脸识别、人脸验证和人脸聚类等。

 

网络架构:

 

特点:

 

  • 去掉了最后的softmax,而是用元组计算距离的方式来进行模型的训练。使用这种方式学到的图像表示非常紧致,使用128位足矣。
  • 元组的选择非常重要,选的好可以很快的收敛。

 

DeepFace:Facebook

网络架构:

特点:

先是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果

 

没有用太多的Max-pooling层,因为太多的Max-pooling层会使得网络损失图像信息。

后面三层都是使用参数不共享的卷积核,之所以使用参数不共享,有如下原因:

  • 对齐的人脸图片中,不同的区域会有不同的统计特征,卷积的局部稳定性假设并不存在,所以使用相同的卷积核会导致信息的丢失
  • 不共享的卷积核并不增加抽取特征时的计算量,而会增加训练时的计算量
  • 使用不共享的卷积核,需要训练的参数量大大增加,因而需要很大的数据量,然而这个条件本文刚好满足。

 

DeepId:共有三代,第一代DeepID,第二代DeepID2,第三代DeepID2+

人脸预处理:

网路架构:

特点:

该结构与普通的卷积神经网络的结构相似,但是在隐含层,也就是倒数第二层,与Convolutional layer 4和Max-pooling layer3相连,鉴于卷积神经网络层数越高视野域越大的特性,这样的连接方式可以既考虑局部的特征,又考虑全局的特征。

DeepID2相对于DeepID有了较大的提高。其主要原因在于在DeepID的基础上添加了验证信号。

DeepID2+相比于DeepID2,将DeepID层从160维提高到512维,同时将DeepID层不仅和第四层和第三层的max-pooling层连接,还连接了第一层和第二层的max-pooling层。


6.人脸识别技术分类:

(1)检测:

传统人脸检测:

特征提取:LBP/HOG/Harr

训练:Adaboost/SVM

识别:滑动窗口

深度学习在人脸检测上的应用:

(2)属性分析:

传统框架:

深度学习的应用:基于CDNN的人脸属性识别框架

(3)验证和识别:

基本框架:


7.传统机器学习算法与深度学习在图像识别上的不同

最大不同:深度学习输入图像原数据即可,而传统机器学习算法,需要对图像做很多的操作,诸如:灰度化、归一化等等,最后才把处理好的特征送到机器学习算法中去训练。

深度学习:

(1)Advantages:准确度高,效果好

(2)Disadvantages:需要庞大的计算资源,这也是为什么近几年才开始又火起来的原因


8.CPU vs GPU

CPU:更适合逻辑复杂的运算,串行的运算

GPU:缓存和控制单元很小,计算单元多,适合逻辑不复杂的大规模并行运算


9.常用分类:

sigmoid:二分类问题

softMax:多分类,经典案例:手写识别体,http://www.jeyzhang.com/tensorflow-learning-notes.html


10. 深度学习PK人脑

 

11.what is the next?

当AI的工程能力超越创造者时,将会进行自我更 新升级,将会跨越式发展,这个时间点就是 singularity 


参考资料:

《LeNet 5》http://yann.lecun.com/exdb/lenet/index.html

《DeepID算法介绍》http://blog.csdn.net/stdcoutzyx/article/details/42091205

《FaceNet》https://arxiv.org/abs/1503.03832

《激活函数和损失函数》http://blog.csdn.net/u014595019/article/details/52562159

《一文读懂卷积神经神经网络》http://www.36dsj.com/archives/24006

Will Deep Learning take over Machine Learning, make other algorithms obsolete?》http://www.kdnuggets.com/2014/10/deep-learning-make-machine-learning-algorithms-obsolete.html

《tensorflow如何入门》https://www.zhihu.com/question/49909565/answer/118465399


推荐阅读
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Android图形架构学习笔记(待修改)
    以下简单总结来自Android官网,稍作总结:https:source.android.google.cndevicesgraphics概览Andr ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了关于smarty自定义缓存名的解决思路,通过放弃生成缓存,直接生成html的静态页面来提高速度。同时提供了一个参考链接供参考。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ... [详细]
author-avatar
执念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有