LBP 和深度学习,人脸识别

2024-08-30 02:08
文章标签 学习 深度 人脸识别 lbp

本文主要是介绍LBP 和深度学习,人脸识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近读了一篇关于LBP和DBN的文章,感觉思路挺好的,如有不当之处望指正!!!!!

这是一篇在非限制条件下,基于深度学习的人脸识别算法。,将LBP纹理特征作为深度网络的输入,通过逐层贪婪训练网络,获得良好的网络参数,并用训练好的网络对测试样本进行预测。

文章通过LBP提取非限制条件下人脸图像的纹理特征并利用DBN进一步自动学习更抽象、更有效的人脸特征,并在DBN顶层自动进行人脸分类。LBP所提取的人脸图像的局部纹理特征对光照和微小平移具有较强的顽健性,将其作为DBN输入特征更有助于网络对图像特征分布的理解,进一步减少网络学习到不利的特征描述;同时,通过DBN对输入数据进行深度学习和自动特征提取,并在网络最顶层实现特征识别,有效避免了过多主动因素的干预。

文章Idea:

提出LBP和DBN相结合的非限制条件下人脸识别,征。将LBP与DBN相结合,克服了DBN不能学习到人脸图像局部结构特征的缺点,使得DBN学习到的抽象特征受光照、微小平移等的影响较小。

文章算法:

DBN训练步骤:

1)对第一层RBM,以LBP纹理特征为输入,对RBM进行无监督训练,获得该层最优的参数;

2)高层RBM以低一层RBM输出数据为输入,对RBM进行无监督,获得RBM网络最优的参数值;

3)最后利用全局训练的方法对训练好的各层参数微调,使得DBN收敛到全局最优。该训练方法绕过了全局训练的复杂性,通过快速散度(CD,contrastive diber.gence)¨/J训练RBM获得DBN各层的最优参数,降低了学习目标过拟合的风险,使得网络具有更好的数据预测能力。

算法步骤

1)用双线性内插法将测试样本和训练样本降维至32×32,并进行直方图均衡化等归一化预处理。
2)对训练样本和测试样本进行分块并提取每个子块的LBP纹理特征,将每个子块的特征连接起来形成样本的LBP纹理特征。本文LBP纹理特征提取时样本分块为4×5,半径尺为1,像素数P为8。此时所提取的LBP纹理特征和像素级特征维数相当。
3)将训练样本的LBP纹理特征作为DBN可视层输入,对深度网络进行逐层训练,以获取最优网络参数。文中DBN层数选为2层:第1层学习率为0.002,迭代次数为40;第2层为0.003,迭代次数为40。
4)当深度网络训练完后,将测试样本的LBP纹理特征作为DBN可视层输入,利用优化后的网络由下向上多层次地学习和提取测试样本的抽象特征,在网络最顶层进行SoftMax回归分类,获得测试样本的类标值,并计算正确识别率。

实验结果:


结果表示随着隐藏单元数的增加,深度网络能够更好地表达人脸图像特征,但是网络的训练时间和分类时间也随之增加,计算量逐渐增大,因而对硬件要求也随之提高。


。当训练样本数增加时,提取类别特征较为丰富,算法识别率剧增高

总之,。本文算法在受姿态、光照、表情、遮挡等综合因素影响的非限制条件下具有较好的识别效果,同时在受多种因素影响的Yale库和光照因素影响的Yale—B库上取得较高的识别率。

这篇关于LBP 和深度学习,人脸识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119495

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security