多角度人脸识别
在人脸识别过程中,摄像头的角度是相对固定的,但是人脸不是固定的。实际上,当人脸角度和采集的角度比较一致(角度较小的偏转)时,才有较精确的结果。

关键点:

1、2D图像导致人脸比对困难。

2、如何使人脸角度偏转。

思路分析:

直接在数据库比对。

这一思路的实现要求数据库中有足够多的数据,但是并不现实,因为我们不可能对所有人进行不同角度的人脸采集,同时也不能接受该数据量下的时间成本。

对2D图像直接进行旋转、反转等操作。

这一操作要求对2D图像进行直接或间接的操作,对于简单的人脸图像,这种操作方式具备相当的性价比。对于复杂且难以处理的图像就不那么友好了。

转化为3D图像。

对于计算机而言,2D图像下,不同的人在同样的角度下的识别率远大于同样的人不同的角度的。因为角度的改变对于计算机而言是灰度的变化。所以将2D图像转化为3D图像就可以很轻松的避免这些问题。不过由于2D转为3D会产生大量的数据,对于服务器和数据传输的要求非常高。

解决方法:

PCA方法:PCA方法通过消除数据的相关性,找到一个空间,使得各个类别的数据在该空间上能够很好地分离

缺点:无法在角度偏大时进行识别。

ASM和AAM:这两种方法都是基于训练集建立的统计模型方法,通过对某一类特定图像进行建模,来进行特征提取。

缺点:在遮挡或者姿态角度偏大的情况下不尽人意。

sift特征提取:图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

缺点:实时性不高,有时特征点少,边缘光滑的目标无法提取。

OpenCV方法:分为正脸和侧脸,只是识别图形上朝一边的脸,如果想要识别朝另一边的脸就需要对图片进行水平翻转,再进行检测。

深度学习:仿照人脑解析数据。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

2D和3D结合解决多角度问题。

解决方案:

现在多是采用深度学习人脸识别技术和3D人脸识别技术。

深度学习的多角度人脸识别算法:

基本流程:

构建深度学习训练数据集

训练一个深度人脸分类器

应用分类器进行人脸检测

将侧面图像作为输入,相应的正面图像作为输出,监督模型学习出从不同姿态的侧面图像到正面图像的映射,增加了识别中的有效面部信息。

2、一种利用3D人脸可变模型解决2D图像中姿态角度偏大问题的方法:

给神经网络输入通用正面人脸模板模型和2D图像,神经网络识别获取图像中人脸的姿态角度参数矩阵,利用这些参数就可以使模型“做出”和图像中人脸同样的脸部朝向。反过来,对改变姿态之后的3D模型,我们给它“拍个照”,变成2D图像,那么3D模型上的关键点通过“拍照”,就映射到2D图像上来了,得到一个初步的粗定位;此时,再根据关键点坐标,把原始图像切片,输入到另外的网络来调整3D模型的形状参数,使得模型更加精确的拟合2D图像,这样多次迭代之后,关键点便被精确定位出来。该方法开创性地利用3D人脸可变模型来学习2D图像,并且通过级联CNN神经网络回归来提高精确度,使得即使大姿态下,被遮挡的关键点也能被很好的定位出来。

图解:

3D模板+2D图像—>获取参数矩阵—>3D人脸朝向—>“拍照”(3D)—>粗定位(2D图像)—>切片原始图像,调整3D模型的形状参数—>反复迭代—>精确定位关键点

即:

(1)对图像进行轮廓定位态校正;

(2)全局粗定位;

(3)局部精细定位。

3、一种基于3D模型的人脸旋转方法:基于姿态补偿的算法。

新建一个特定人脸3D网格模型,然后进行旋转角度的初步估计,之后将待识别的照片和数据库中所有的人脸模型在初步估计的旋转角度处所投影的照片进行匹配,并分别计算他们的相关系数,然后选择数据库中的人脸模型。假设有N个人脸模型可以匹配,依次进行更详细、更精确的比较。

4、3D技术与深度学习相结合。

利用深度学习技术对单张人脸图片进行3D重构,通过重构的模型进行旋转,可以模拟出多角度人脸图片,采用这一技术可以有效增强人脸识别效果。

其他方案:

除了上述方法外,还有一些其他方法,基本都是通过算法和模型进行多角度人脸识别。

如基于回归函数的多角度人脸识别算法。

DDFD(Deep Dense Face Detector)

基于迭代特征选择的快速多角度人脸识别

表示学习和图像生成。表示学习是指在某一个场景下获取的多张不同姿态的图像,将这些图像作为输入,通过提出的DR-GAN网络模型,产生一个固定长度的特征向量,该向量表示的是这个人的特征,与姿态光照无关,同时该网络还可以根据输入的Noise/Pose编码,生成不同姿态的人脸。

总结:

多角度人脸识别是多姿态人脸识别的分支,目前已经有许多解决方案,在一些企业已经有了相应的产品。

总的来说,解决角度问题有三种思路:第一种思路是学习并记忆多种角度特征,这对于多角度人脸数据可以容易获取的情况比较实用;第二种思路是基于单张视图生成多角度视图,可以在只能获取用户单张照片的情况下合成该用户的多个学习样本,可以解决训练样本较少的情况下的多角度人脸识别问题,从而改善识别性能;第三种思路是基于角度不变特征的方法,即寻求那些不随姿态的变化而变化的特征。

参考(部分):

https://blog.csdn.net/app_12062011/article/details/78636122——深度学习

https://blog.csdn.net/jscese/article/details/54409627——OpenCV

https://www.cnblogs.com/wangguchangqing/p/4853263.html——sift特征提取

https://www.leiphone.com/news/201612/QiLCizc0tl6DaKqC.html?viewType=weixin——3D技术

https://blog.csdn.net/xiaomage_gf/article/details/50510997——PCA技术
————————————————
版权声明:本文为CSDN博主「木痕」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/muhen1234/article/details/81776822

多角度人脸识别简单介绍相关推荐

  1. 人脸识别技术介绍和表情识别最新研究

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 一.人脸识别技术介绍 人脸识别作为一种生物特征识别技术,具有非侵扰性.非接触性.友好性和便捷性等优点 ...

  2. 人脸识别特征介绍以及难题概括

    科技的发展,人脸识别技术正广泛应用在我们的生活,也在逐渐改变我们的生活,给我们带来更多的方便.今天给大家介绍一下人脸识别特征有哪些?人脸识别技术的应用有哪些难题存在呢? 人脸识别特征介绍 1.几何特征 ...

  3. SeetaFace开源人脸识别引擎介绍

    深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动.请关注我们的知乎专栏! 区分不同的人是很多智能系统的必备能力.为实现此目的,一种可能的技术手段是通过对人脸的光学成像来感知人.识 ...

  4. 人脸识别技术 介绍,现况以及应用

    最近几年国内外吹起了了一场AI风,AI技术浪潮也成为了一种趋势. 人脸识别作为最近几年发展的还算成熟的一项ai技术,也引起了众多人的关注. 鉴于技术的日趋成熟,现阶段的人脸识别技术已经在具体场景落地尝 ...

  5. 人脸识别简单总结(一) 生物特征识别的前世今生

    做人脸识别相关方向已经有一年了,从开始的懵懂无知,通过一次又一次的不断踩坑终于有了一定得了解与认识,可能这也是相对浅显与青涩的.为了让自己对一些知识巩固更深,也希望能帮助更多的类似我这样的初学者,自此 ...

  6. openCV人脸识别简单案例

    1 基础 我们使用机器学习的方法完成人脸检测,首先需要大量的正样本图像(面部图像)和负样本图像(不含面部的图像)来训练分类器.我们需要从其中提取特征.下图中的 Haar 特征会被使用,就像我们的卷积核 ...

  7. 百度人脸识别api介绍(转)

    在百度AI开放平台使用百度的人脸识别能力,只需要三个核心步骤即可操作完成: 1.获取接口权限  2.准备接口调用工具  3.进行接口调用,全部流程走通只需要十分钟时间. 具体操作步骤如下: 1.  获 ...

  8. 人脸识别--SeetaFace2介绍

    SeetaFace2是中科视拓在2019年发布的开源人脸识别引擎,使用c++编写,支持windows.linux系统,支持arm.x86平台,功能包含人脸检测.关键点定位.人脸识别,相比于2016开源 ...

  9. 图像识别——(java)opencv(人脸识别简单实现)

    人脸识别 package com.acts.opencv.demo;import javax.servlet.http.HttpServletRequest; import javax.servlet ...

最新文章

  1. 打印机通讯 tspl指令_西门子工控设备通讯
  2. 在Servlet中获取Spring注解的bean
  3. 文件上传速度查询方法
  4. golang select default continue_golang系列——基础语法
  5. php version 5.5.17-1~dotdeb.1,Ubuntu 12.04使用Dotdeb安装PHP5.4 / Nginx1.4/Redis2.6等新版本
  6. python百分比堆积条形图_Pandas 堆积条形图中的元素顺序 - python
  7. 安卓调用系统录像功能:1、启动录像返回视频,2、启动录像将视频存储在指定路径下
  8. TCP新手误区–数据校验的意义
  9. openCV银行卡号识别
  10. VS Code设置插件默认安装路径
  11. SpringCloud平滑升级/优雅停机
  12. Encoded password does not look like bcrypt
  13. 在设备管理器中找不到笔记本电脑内置摄像头的解决方法
  14. Linux ln 命令是什么?C/C++代码实现
  15. 2021年软件开发趋势大预测
  16. 浅入浅出redis----II
  17. [cocos2dx开发技巧4]工具CocosBuilder的使用--复杂动画
  18. sap fi清账函数POSTING_INTERFACE*的使用
  19. 图像处理中常用的彩色模型
  20. 终年33岁的印度数学天才,他的传奇人生让扎克伯格流泪

热门文章

  1. AWS计算云上下载代码命令 git clone url
  2. plt.hist绘制直方图参数density 为True和False分别代表是否归一化 参数orientation决定了是采用纵轴代表频率还是横轴代表频率的展现形式
  3. AI算法工程师之路 梯度下降百度总结 练习机器学习的网站
  4. 一文探索 JavaScript 最强大特性—函数表达式
  5. 大型Web前端架构设计:面向抽象编程入门
  6. 对比学习(Contrastive Learning)综述
  7. Ubuntu 16.04+GTX970 黑屏无法安装解决方法
  8. 使用 LSTM 进行多变量时间序列预测的保姆级教程
  9. 70页论文,图灵奖得主Yoshua Bengio一作:“生成流网络”拓展深度学习领域
  10. ​清华来了第二位菲尔兹奖得主,是丘成桐力荐的老朋友Caucher Birkar