持续更新ing,敬请期待!

参考:http://blog.csdn.net/stdcoutzyx/article/details/42091205

 1、 DeepID人脸识别算法

香港中文大学的团队使用卷积神经网络学习特征,将之用于人脸识别的子领域人脸验证方面,取得了不错的效果。

(1)问题引入及算法流程

DeepID所应用的领域是人脸识别的子领域——人脸验证,就是判断两张图片是不是同一个人。人脸验证问题很容易就可以转成人脸识别问题,人脸识别就是多次人脸验证。DeepID达到的效果都是在LFW数据集上,该数据集是wild人脸数据集,即没有经过对其的人脸,背景变化比较大。该数据集太小,很多identities都只有一张人脸,5000个人只有13000张图片。所以DeepID引入了外部数据集CelebFaces和CelebFaces+,每次模型更新都会使用更大的数据集,这在后面介绍DeepID时再细说。

卷积神经网络在DeepID中的作用是是学习特征,即将图片输入进去,学习到一个160维的向量。然后再这个160维向量上,套用各种现成的分类器,即可得到结果。DeepID之所以有效,首先在于卷积神经网络学习到的特征的区分能力比较强,为了得到比较强的结果,DeepID采取了目前最常用的手法——增大数据集,只有大的数据集才能使得卷积神经网络训练的更加的充分。增大数据集有两种手法,第一种手法,就是采集好的数据,即CelebFaces数据集的引入。第二种手法,就是将图片多尺度多通道多区域的切分,分别进行训练,再把得到的向量连接起来,得到最后的向量。DeepID的算法流程如下:

在上述的流程中,DeepID可以换为Hog,LBP等传统特征提取算法。Classifier可以是SVM,Joint Bayes,LR,NN等任意的machine learning分类算法。

在引入外部数据集的情况下,训练流程是这样的。首先,外部数据集4:1进行切分,4那份用来训练DeepID,1那份作为训练DeepID的验证集;然后,1那份用来训练Classifier。这样划分的原因在于两层模型不能使用同一种数据进行训练,容易产生过拟合。

最新文章

  1. Lambda
  2. C#操作注册服务卸载服务启动服务停止服务.. .
  3. 基于BootStrap框架构建快速响应的GPS部标监控平台
  4. C#中把Datatable转换为Json的5个代码实例
  5. 配置zabbix当内存剩余不足10%的时候触发报警
  6. Windows 2008 R2 配置 DNS 实现二级域名
  7. C++primer 阅读点滴记录(三)
  8. VS2008注册码
  9. (转载)http_build_query用法,挺方便的
  10. careercup-栈与队列 3.6
  11. 用C语言绘制一条标准的余弦曲线
  12. zabbix 监控第三方网络
  13. 排查linux系统是否被入侵
  14. Error: failed to execute 'C:\Keil\ARM\ARMCC'的解决办法
  15. 针对个别utf8编码站点在iis7上浏览器编码不能自动识别的解决方法
  16. Java设计模式(一)
  17. “全栈2019”Java多线程第二十二章:饥饿线程(Starvation)详解
  18. Struts2 (三) — OGNL与值栈
  19. Cesium.js点击事件
  20. Map 的 key、value 是否允许为null

热门文章

  1. 【LeetCode 76】最小覆盖子串
  2. C#读取csv、xls、sql数据库的实现
  3. 【靶场练习_sqli-labs】SQLi-LABS Page-2 (Adv Injections)
  4. window使用
  5. slideshare原本是一个专业的幻灯片存储与展示的网站
  6. 使用SSH方式实现Git远程连接GitHub/gitlab
  7. (appium+python)UI自动化_01_自动化环境搭建【MAC版】
  8. day 97 VUE第一天
  9. [题解]Shorten IPv6 Address-模拟(2019牛客多校第六场B题)
  10. python 波波版压缩软件