python+opencv人脸识别(用耶鲁大学的Yale人脸库训练cnn)3

article/2025/10/9 18:43:23

用耶鲁大学的Yale人脸库,里面包含15个人,每人11张照片,主要包括光照条件的变化,表情的变化,接下来我会把自己的几张照片混进去,看看训练过后能不能被神经网络良好的识别。https://blog.csdn.net/weixin_39329548/article/details/81633120

比这篇修改了一些参数 

  def build_model(self, dataset, nb_classes=5):# 构建一个空的网络模型,它是一个线性堆叠模型,各神经网络层会被顺序添加,专业名称为序贯模型或线性堆叠模型self.model = Sequential()self.model.add(Convolution2D(32, 3, 3, border_mode='valid',subsample=(1, 1),dim_ordering='tf',input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3),activation='relu'))self.model.add(Convolution2D(32, 3, 3, border_mode='valid',subsample=(1, 1),dim_ordering='tf',activation='relu'))self.model.add(MaxPooling2D(pool_size=(2, 2)))self.model.add(Dropout(0.20))self.model.add(Convolution2D(64, 3, 3, border_mode='valid',subsample=(1, 1),dim_ordering='tf',input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3),activation='relu'))self.model.add(Convolution2D(32, 3, 3, border_mode='valid',subsample=(1, 1),dim_ordering='tf',activation='relu'))self.model.add(MaxPooling2D(pool_size=(2, 2)))self.model.add(Dropout(0.20))self.model.add(Flatten())  # 13 Flatten层self.model.add(Dense(512,activation = 'relu'))  # 14 Dense层,又被称作全连接层self.model.add(Dropout(0.4))  # 16 Dropout层self.model.add(Dense(nb_classes, activation = 'softmax'))  # 17 Dense层# 输出模型概况self.model.summary()# 训练模型def train(self, dataset, batch_size=15, nb_epoch=120, data_augmentation=True):sgd = SGD(lr=0.007, decay=1e-6,momentum=0.9, nesterov=True)  # lr=0.0007 采用SGD+momentum的优化器进行训练,首先生成一个优化器对象self.model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])  # 完成实际的模型配置工作

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 98, 98, 32)        896       
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 96, 96, 32)        9248      
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 48, 48, 32)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 48, 48, 32)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 46, 46, 64)        18496     
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 44, 44, 64)        36928     
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 22, 22, 64)        0         
_________________________________________________________________
dropout_2 (Dropout)          (None, 22, 22, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 30976)             0         
_________________________________________________________________
dense_1 (Dense)              (None, 512)               15860224  
_________________________________________________________________
dropout_3 (Dropout)          (None, 512)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 15)                7695      
=================================================================
Total params: 15,933,487
Trainable params: 15,933,487
Non-trainable params: 0
 

 


http://chatgpt.dhexx.cn/article/7JBeDGAU.shtml

相关文章

百度智能云人脸库的创建与使用

搜索百度智能云人脸识别云服务 点立即使用,再登百度之类的账号 创建应用 新建组 添加图片

阿里云实现人脸登录(人脸库 OSS)

我自认为不想做curd程序员,但是免不了的会对数据基本原子操作进行处理,项目开发过程中的增删改查少不了的,但是又不甘心于curd下去,所以想要在掌握现有知识的基础上,甚至逼迫自己去学习一些东西,去接触新的…

毕业设计 - 基于JAVA人脸识别管理系统(人脸搜索与人脸库管理)

文章目录 【背景/简介】【技术框架】【核心开发】【功能展示】一、人脸库管理二、人脸识别记录管理 【核心代码】【总结】 基于JAVA的人脸识别管理系统作品分享一下,希望能帮助到有需要的同学们。 【背景/简介】 人脸搜索与人脸库管理主要用在人脸通用场景&#xf…

定位基本方法 3

节点定位方法 3. 基于移动 BS 的定位 在基于静态信标节点的定位方法中,定位系统的定位精度与静态信标节点的部署密度和质量直接相关。为了获得好的定位精度,就需要在部署区域中放置大量的静态信标节点,这势必会导致定位成本的大幅上升。为此…

定位基本方法 1

节点定位方法 1. 节点定位的计算 在 WSNs 的定位中,未知节点通过一定的技术和方法能够获得定位自身所需的坐标、角度或距离信息,从而利用节点位置的计算方法计算自身位置。下面我们将介绍几种较为典型的位置计算方法:三边测量法、三角测量法…

浅谈自适应滤波器---(快速RLS算法)

在上一篇博客中(浅谈自适应滤波器)我给大家介绍了关于自适应滤波器的一些入门级的知识,并分析了常规RLS算法单次迭代的计算量级为O[N2],当阶数N增大时相应的计算量显著增大,为了将计算量级降低到O[N],人们提…

图像处理自适应滤波

图像处理基础(2):自适应中值滤波器(基于OpenCV实现) 标签: opencv滤波器 2017-02-08 19:44 986人阅读 评论(0) 收藏 举报 分类: DIP(8) 版权声明:本文为博主原创文章,未经博主允许不得转载…

自适应滤波器及其应用 - 自适应噪声抵消器

传统IIR和FIR滤波器在处理输入信号的过程中滤波器参数固定,当环境发生变化时,滤波器无法实现原先设定的目标。自适应滤波器根据当前自身的状态和环境调整滤波器权系数。 1 自适应滤波器理论 其中,x(n)是输入信号,y(n)是输出信号&…

自适应数字滤波器

文章目录 前言一、自适应滤波器的特点和构成二、最陡下降法三、最小均方算法(LMS)总结 前言 本文的主要内容是自适应数字滤波器的介绍,包含其特点与构成、最陡下降法、最小均方算法以及最小二乘算法等内容。 一、自适应滤波器的特点和构成 自适应滤波器的特点&…

浅谈自适应滤波器---(自适应陷波器)

陷波器顾名思义就是对特定频率的信号有着很强的衰减的滤波器,也即阻带带宽极窄的带阻滤波器。在传统的数字陷波器设计中,为了能使某一频率信号得到足够大的衰减,通常的做法就是把阶数选的足够高来达到很大的衰减;但同时计算量也变…

自适应滤波器及LMS自适应算法的理解

分享一篇以前写现代信号处理的课程论文。 ————————————————————

自适应中值滤波器和自适应局部(均值)滤波器的设计 python+matlab各实现

要求是:自适应中值滤波器和自适应均值滤波器的设计,分别使用python和matlab去实现 一.原理 1.自适应中值滤波器 2.自适应局部滤波器,也叫自适应均值滤波器 二.设计流程 1.自适应中值滤波器 ①生成椒盐噪声 利用rand()函数生成[0,1]的随…

自适应滤波去噪

自适应滤波器具有在未知环境下良好的运作并跟踪输入统计量随时间变化的能力。尽管对于不同的应用有不同的实现结构,但是他们都有一个基本的特征:输入向量X(n)和期望响应d(n)被用来计算估计误差e(n),即e(n)d(n)-X(n),并利用此误差信…

自适应滤波(LMS,RLS)

1.背景及相关知识介绍 自适应滤波存在于信号处理、控制、图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪。 图中x(j)表示 j 时刻的输入信号值,y(j)表示 j 时刻的输出信…

自适应滤波

自适应阵列处理是一种空间滤波技术,它包含空间阵列和自通应处理两个部分。根据空时等效性原理,从理论上来讲,时域的各种统计自适应信号处理技术均可应用于空域的自适应阵列处理 自适应滤波已在时域处理中广为应用,其实现可以来用…

matlab编程实现自适应均值滤波和自适应中值滤波

matlab编程实现自适应滤波器 一、自适应均值滤波器1. 原理部分:2. 程序代码3. 结果对比 二、自适应中值滤波1. 原理部分2.程序代码3. 结果对比 一、自适应均值滤波器 1. 原理部分: 加入噪声: 原理: 将图片灰度化,然后…

自适应滤波器之横向滤波器

本文对横向滤波器作以介绍,如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。 目录 1. 横向滤波器1.1. 概念1.2. 举例 2. 参考文献 1. 横向滤波器 1.1. 概念 横向滤波器(transversal filter),也…

自适应中值滤波及实现

前言 无意中看到了一篇比较老的论文,Adaptive median filters: new algorithms and results。感兴趣的可以下载下来看看。主要就是提出了一种自适应中值滤波算法,这个算法是很经典的中值滤波算法的改进版本,自动选择滤波器的大小&#xff0c…

浅谈自适应滤波器

在通常的滤波场合中,从频域的角度进行滤波,其相关的理论已经相当的成熟,只要给出相应的设计指标就可以很方便的设计出满足要求的滤波器。然而在更一般的情况下,人们所需要的滤波器工作的环境是时变的,这就导致事先已经…

自适应滤波原理

在网上,看到一篇不错的自适应滤波原理讲解的文章,原文网址为:自适应滤波原理简介 全文包括: 1. 自适应滤波器简介 2. 自适应干扰抵消原理 3. 自适应滤波原理 4. 最小均方(LMS)算法 5. Matlab实现 一、自适…