LFW人脸数据库的简介

LFW人脸数据库的简介

​ LFW (Labled Faces in the Wild)人脸数据集:是目前人脸识别的常用测试集,其中提供的人脸图片均来源于生活中的自然场景,因此识别难度会增大,尤其由于多姿态、光照、表情、年龄、遮挡等因素影响导致即使同一人的照片差别也很大。并且有些照片中可能不止一个人脸出现,对这些多人脸图像仅选择中心坐标的人脸作为目标,其他区域的视为背景干扰。LFW数据集共有13233张人脸图像,每张图像均给出对应的人名,共有5749人,且绝大部分人仅有一张图片。每张图片的尺寸为250X250,绝大部分为彩色图像,但也存在少许黑白人脸图片。

导入包

# 绘制图像
import matplotlib.pyplot as plt
import numpy as np
# 数据降维
from sklearn.svm import SVC
# 数据拆分
from sklearn.model_selection import train_test_split as ts
# 计算模型的得分
from sklearn.metrics import accuracy_score
# 加载数据
from sklearn import datasets
# 网格搜索
from sklearn.model_selection import GridSearchCV

加载数据

# 加载人脸数据   labled faces wilddata = datasets.fetch_lfw_people(resize=1, min_faces_per_person=70)x = data['data']
y = data['target']
faces = data['images']
# 像素不同,不同特征也就越多,这个时候就需要用到降维
display(x.shape, faces.shape, y.shape)
target_names = data['target_names']
target_names

在这里插入图片描述

数据查看

# 数据查看
index = np.random.randint(0, 1288, size=1)[0]
face = faces[index]
name = y[index]print(target_names[name])
display(face.shape)
plt.imshow(face)

在这里插入图片描述

PCA 数据降维

%%time
# 进行数据的降维
from sklearn.decomposition import PCApca = PCA(n_components=0.95)
X_pca = pca.fit_transform(x)
display(x.shape, X_pca.shape)

在这里插入图片描述

超参数选择

%%time
svc = SVC()
x_train, x_test, y_train, y_test = ts(X_pca, y, test_size=0.2, random_state=512)
prams = {'C': np.logspace(-3, 3, 20),'kernel': ['rbf', 'poly', 'linear'],'tol': [0.01, 0.001, 0.0001]
}
gc = GridSearchCV(estimator=svc, param_grid=prams, cv=5)
gc.fit(x_train, y_train)
# 获取最佳参数
gc.best_params_

在这里插入图片描述

使用最好的模型进行复训

# 使用最好的模型进行复训
best_model = gc.best_estimator_best_model.fit(x_train, y_train)

获取得分

print('训练模型得分是:', best_model.score(x_train, y_train))
print('测试集模型得分:', best_model.score(x_test, y_test))
face_train,face_test = ts(faces, test_size=0.2, random_state=512)
# y_test真实的标签
face_predict = best_model.predict(x_test)
print(face_predict)
print(y_test)
print(target_names)
accuracy_score(y_test, face_predict)

在这里插入图片描述
在这里插入图片描述

数据可视化

plt.figure(figsize=(5 * 2, 10 * 3))
for i in range(50):plt.subplot(10, 5, i + 1)plt.imshow(face_test[i], cmap='gray')plt.axis('off')predict = target_names[face_predict[i]].split(' ')[-1]true = target_names[y_test[i]].split(' ')[-1]plt.title(f'True{true}\nPred:{predict}')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日一练(编程题-C/C++)

目录 CSDN每日一练1. 2023/2/27- 一维数组的最大子数组和(类型:数组 难度:中等)2. 2023/4/7 - 小艺照镜子(类型:字符串 难度:困难)3. 2023/4/14 - 最近的回文数(难度:中等)4. 2023/2/1-蛇形矩阵(难度:困难)…

【Spring Security】AuthenticationFailureHandler 用户认证失败后处理

文章目录 前言简单介绍官方默认用户认证失败后处理器SimpleUrlAuthenticationFailureHandlerForwardAuthenticationFailureHandlerExceptionMappingAuthenticationFailureHandlerDelegatingAuthenticationFailureHandler 自定义使用SecurityConfiguration 配置 前言 Authentic…

Hive自定义函数详解

1.hive函数各种命令 查看系统自带的函数 hive> show functions; -- 显示自带的函数的用法 hive> desc function upper; -- 详细显示自带的函数的用法 hive> desc function extended upper; -- 添加jar包到hive中 add jar /data/xx.jar; -- 创建自定义函数 create fu…

算法基础之整数划分

整数划分 核心思想: 计数类dp 背包做法 f[i][j] 表示 取 1 – i 的物品 总容量为j的选法数量 f[i][j] f[i-1][j] f[i-1][j-v[i]] f[i-1][j-2v[i]] f[i-1][j-3v[i]] ……f[i-1][j-kv[i]] f[i][j-v[i]] f[i-1][j-v[i]] f[i-1][j-2v[i]] f[i-1][j-3v[i]] ……f[i…

万字长文谈自动驾驶occupancy感知

文章目录 prologuepaper listVision-based occupancy :1. [MonoScene: Monocular 3D Semantic Scene Completion [CVPR 2022]](https://arxiv.org/pdf/2112.00726.pdf)2. [Tri-Perspective View for Vision-Based 3D Semantic Occupancy Prediction [CVPR 2023]](https://arxiv…

Docker Harbor私有镜像image仓库安装

Docker Harbor私有镜像image仓库安装 goharbor/harbor 参考:https://www.cnblogs.com/wuvikr/p/14688079.html #停止harbor systemctl stop harbor.service 使用prepare脚本重新加载harbor.yml中的配置 [rootharbor harbor]#./prepare 稍等一会harbor会自动启动起来…

QString设置小数点精度位数

QString设置小数点精度位数 Chapter1 QString设置小数点精度位数Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理问题一:QString.toDouble有效位只有6位问题二:小数点有效位数的问题 Chapter3 qt QString转Double只显示6位数字的问题(精…

docker的安装的详细教程,以及出现错的解决办法(阿里云)

docker的安装与使用 1.安装dnf sudo yum -y install dnf Repository extras is listed more than once in the configuration 错误:无法为仓库 appstream 找到一个有效的 baseurl 出现这个错误这是由于阿里云的版本导致的 在阿里云开发者社区有答案&#xff01…

【Google】关于Google Analytics埋点及API获取数据

本文是在实际操作中踩到的一些坑,并不是操作手册。具体的还是需要仔细按照官方文档操作。 参考文档:https://developers.google.com/analytics/ 重点看标红的文档即可 普通事件埋点 各端需要跟产品端确定好统一的事件名称和参数,否则数据混…

Python:日期和时间类型学习

背景 在非开发环境经常需要做一下日期计算,就准备使用Python,顺便记下来学习的痕迹。 代码 1 1 # coding utf-82 2 3 3 from datetime import *4 4 5 5 ########################## 日期 ##########################6 6 date_now date.today()…

如何实现WinApp的UI自动化测试?

WinApp(WindowsAPP)是运行在Windows操作系统上的应用程序,通常会提供一个可视的界面,用于和用户交互。例如运行在Windows系统上的Microsoft Office、PyCharm、Visual Studio Code、Chrome,都属于WinApp。常见的WinApp&…

《Python百宝箱》专栏目录

序号文章目录直达链接表白系列1无法拒绝的表白界面https://want595.blog.csdn.net/article/details/1352796112满屏飘字表白代码https://want595.blog.csdn.net/article/details/1352794873无限弹窗表白代码https://want595.blog.csdn.net/article/details/1352795754李峋同款可…

es6新特性——前端技术栈

ES6 基本介绍 ES6 是什么? ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准, 2015 年 6 月发布。ES6 设计目标:达到 JavaScript 语言可以用来编写复杂的大型程序,成为企业级开发语言ECMAScript 和 JavaScript 的关系&#xf…

使用内网穿透轻松实现在外远程访问本地威联通QNAP NAS

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后,很多用户对于如何在外在公网环境下的远程访问威联通NAS…

vue3事件总线mitt使用方式

我的使用场景 在项目中遇到一个这样的问题。页面使用了keepalive缓存, 员工排班和班次之间的数据有关联,当我删除一个班次后,给员工排的班,属于那个被删的班次的情况,已经生效的不会受影响,但是未生效的排…

学习使用echats实现双刻度echarts双Y轴,左右Y轴数据的方法

学习使用echats实现双刻度echarts双Y轴&#xff0c;左右Y轴数据的方法 代码效果图 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cline-stack&langjs --> <!DOCTYPE html> <html lang"en" style"height: 10…

Visual Studio 任务列表

任务列表 帮助我们快速找到注释位置&#xff08;用在需要反复查找修改的地方&#xff09; 使用//todo&#xff1a;注释的内容就会显示在任务列表中。 任务列表如何打开&#xff1f; 视图—任务列表 &#xff08;CTRlwt&#xff09; 创建自定义令牌&#xff1a; 在 “工具”…

学习路径概览

根据codewave 低代码官方的资料&#xff0c;我们以一个简单的初级采购管理系统为例&#xff0c;带大家进行学习。学习的案例框架如下&#xff1a; https://ik4mh7u2np.feishu.cn/docx/NjyEd9qD5oElkoxJhapc3fV4nPe?fromfrom_copylink​​​​​​​ 主要分为以下四个学习模块

L1-075:强迫症

题目描述 小强在统计一个小区里居民的出生年月&#xff0c;但是发现大家填写的生日格式不统一&#xff0c;例如有的人写 199808&#xff0c;有的人只写 9808。有强迫症的小强请你写个程序&#xff0c;把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位…

Taro +vue3 中跳转页面 如何带一个数组或者对象进入下一个页面 解码或者编码

1. 需求 在我开发H5 的过程中 发现 有些接口 后端的接口提供不了 或者其他的原因 发现一些详情的页面 我没有接口 数据获取不到 需要用到的是 那种列表数据 所以只能用跳转的方式 实现这个功能. 2. Taro.nagivate() 跳转: Taro.navigateTo({url: /pages/order-detail/index…