声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~

目录

数据来源

结果展示

模型流程

部分代码展示

完整代码获取


之前给大家带来的大多都是关于深度学习预测的内容,今天给小伙伴们带来一起关于图像识别的程序,利用CNN卷积神经网络进行人脸识别,非常适合新手小伙伴作为图像识别的启蒙程序以及学习材料,并且,我们也附带了UI界面,方便小伙伴进行调用。

您只需做的工作:点击训练模型、后测试模型即可!

数据来源

此次采用的人脸识别数据来自于olivettifaces人脸数据库。该数据库是纽约大学组建的一个比较小的人脸数据库,有40张人脸,每人10张照片,组成一幅有400张人脸的大图像,像素灰度范围在[0,255]。整张图像大小是1190×942,20 行 20 列,即每张照片大小是(1190/20) (942/20)=57×47。

结果展示

点击文件运行后,会出现如下所示的UI界面:

既然要识别人脸,那肯定得先训练一个模型,因此首先点击模型训练,会出现模型训练进度条:

然后点击模型测试,选取任意文件夹的一幅图像,即可得到该人脸所属的类别。

也可以点击可视化,查看该CNN模型的模型架构图:

以及训练集和测试集的混淆矩阵图:

模型流程

一、数据加载。使用 imageDatastore 函数从名为 orl_faces 的文件夹中加载人脸图像数据集。

二、数据预处理与划分。将导入的数据集按照80/20的比例随机划分为训练集和测试集。对训练和测试图像进行预处理,将所有图片统一调整到指定的大小,以满足CNN模型对输入尺寸固定的要求。

三、CNN模型构建。包含全连接层、分类层、卷积层、批归一化层、ReLU激活层、池化层等等。

四、模型训练。设置训练参数,包括优化器、批量大小、最大轮次、学习率、验证数据、可视化等等。

五、性能评估与结果展示。使用训练好的模型 分别对训练集和测试集进行预测,将模型的预测结果与真实的标签进行比较,计算出模型在训练集和测试集上的分类准确率。

部分代码展示

%%  建立模型
layers = [
 imageInputLayer(img_size)
 
 convolution2dLayer([3, 3], 16, Padding = "same")          % 卷积核大小为3*3,生成16个特征图
 batchNormalizationLayer                                   % 批归一化层
 reluLayer                                                 % relu激活层
 
 maxPooling2dLayer([2, 2], 'Stride', 2)                    % 最大池化层,池化大小为2*2,步长为2
 
 convolution2dLayer([3, 3], 32, Padding = "same")          % 卷积核大小为3*3,生成32个特征图
 batchNormalizationLayer                                   % 批归一化层
 reluLayer                                                 % relu激活层
 
 maxPooling2dLayer([2, 2], 'Stride', 2)                    % 最大池化层,池化大小为2*2,步长为2

 convolution2dLayer([3, 3], 64, Padding = "same")          % 卷积核大小为3*3,生成64个特征图
 batchNormalizationLayer                                   % 批归一化层
 reluLayer                                                 % relu激活层

 fullyConnectedLayer(numClasses)                           % 全连接层 -- 输出层
 softmaxLayer                                              % 损失函数层
 classificationLayer];                                     % 分类层

    完整代码获取

    如果需要以上完整代码,只需点击下方小卡片,再后台回复关键字,不区分大小写:

    人脸识别

    更多推荐