然后我们继续来看
这里有个lfw_home可以看到这个数据是,包含了人脸数据然后我们继续看,在我们的顶你用户目录下,如果安装了,sklearn就会有这样一个目录,scikit_learn_data目录,这个里面可以看到可以看到这个文件夹中有个lfw_home文件夹是对.zip文件夹的解压,这个下载以后放到对应的这个文件夹下面就可以了这个是人脸的图片集
import numpy as np 导入数学计算库from sklearn. svm import SVC 导入支持向量机 线性分类器import matplotlib.pyplot as plt 加载人脸图片以后,我们用pyplot把人脸图片数据展示一下from sklearn.model_selection import train_test_split 人脸的数据,我们需要拆分,所以这里我们再导入train_test_splitfrom sklearn.decomposition import PCA 然后我们再来导入这个PCA对数据进行降维,因为人脸数据比较大from sklearn.metrics import accuracy_score 这个是测试精确度的,用来评估我们的模型的精确度from sklearn.linear_model import LogisticRegression 然后我们再导入逻辑斯蒂回归,用逻辑斯蒂回归进行学习以后,然后跟支持向量机的结果进行对比一下from sklearn import datasets 导入数据集库,这个库sklearn为了让我们方便进行机器学习,准备的这个库,对于数据量小的数据可以直接导入,对于比如我们现在这个人脸识别的库,就挺大,如果直接导入就很慢,因为库还在国外所以可以直接下载上面的.zip包,然后解压,放到对应的文件夹中直接用就可以了.然后我们去加载数据,可以看到之前我们加载数据用的是load对吧datasets.load_boston比如这个波士顿房价的数据,还有,load_iris 莺尾花的数据现在我们加载的人脸数据的,数据集比较大,所以这回我们需要用datasets.fetch_来进行加载了可以看到
我们使用datasets.fetch_lfw_people()来加载人脸数据,这里面有一些是名人的人脸数据
然后我们来看一下这个函数的参数可以看到这里默认这个data_home是None我们看一下这个data_home的解释,可以看到,这个指的就是我们电脑的home目录对吧
可以看到就是上面的目录,对于Linux来说,就是对应的root目录对吧然后我们再来看一个参数resize这个参数意思就是 可以对图片进行大小的缩放对吧,比如上面写0.5 就表示默认缩放百分之50
我们这里给resize = 1 就可以了,我们不缩放图片然后我们再来看 min_faces_per_person =0 可以看到这个是什么意思?这个表示需要的数据的个数,可以看到,最小需要数据0个,这个如果设置为0,有可能会拉不下来数据对吧所以这里我们就设置成70让他至少给我们拉下来70个数据,有些人一看对应的,咱们说的上面的目录中没有数据,就是因为这里没有设置这个min_faces_per_person= 对吧,默认是0我们去home目录,取看看对应的数据,可以看到有这么多我们随便找个人脸,可以看到,这个人Chris_Cooper 有两个照片然后我们继续我们看这个Dan_Monson这个人的照片可以看到这个只有一个照片然后我们再来看布什的照片可以看到这个Jeb_Bush就很多照片
然后我们再来看George_W_Bush 就更多照片了然后我们再去看现在我们加载一下人脸数据去看看data = datasets.fetch_lfw_people(resize=1,min_faces_per_person=70)data可以看到,显示的结果这里data 和images这里的data表示 人脸数据然后images表示图片的数据,可以看到他们有什么区别?下面我们再说然后我们再来看,这里的target可以看到是个array对吧,里面写了5,6,3...这个表示,每张图片代表的人名是什么可以看到与target对应的还有一个target_names 这里的,target_names对应的,里面就是Ariel_Sharon 然后Colin_Powell 可以看到..也就是从0开始,那么5就代表第5个人名然后我们再来看看,可以看到data的维度是2维度的,然后images维度是3维的对吧然后我们使用X= data['data']y= data['target']faces = data[images]display(X.shape,faces.shape,y.shape)取看一下各个数据的大小,可以看到这里X是1288行,然后有11750个特征这里的1288 就表示有1288个照片对吧,然后11750表示?有11705个像素对吧,可以知道这些照片的大小是一样大的,尺寸所以上面有提供的一个缩放图片的功能对吧,
然后y可以看到也是1288个图片,然后对应的125,94 我们后面再说然后y的话,不用说了y表示1288 表示target对吧,也就是对应的哪个图片是哪个人那么这里的data,打印出来的数据,实际上就是指的像素对吧,可以看到上面,这里的都是像素,每个图片有11750个像素组成然后我们去加载一张图片区看看index = np.random.randint(0,1288,size =1)[0] 我们来获取一个随机数,因为我们说了,我们1288个图片对吧,所以我们获取从0到1288中的一个随机数,然后[0],表示,因为np.random.randint(0,1288,size =1)获取的是一个numpy数组,加上[0]才表示是一个具体的数值face = faces[index] 这个表示我们从,上面的images中,根据index这个随机数,随机获取一张图片可以看到获取以后,然后plt.imshow(face) 可以看到,显示出来了,但是默认可以看到显示的是绿色调的,因为默认是绿色的然后我们再来看,我们修改一下色调,这里plt.imshow(face,cmap='gray') 可以看到,显示出来了,这里改成按照灰色显示可以看到就显示成黑白的了
plt.colormaps()我们再去看看有什么可选的颜色,可以看到有这么多对吧
然后我们可以选择一个plt.imshow(face,cmap='bone') 这个颜色可以看到显示出来是这样的然后我们再来看可以看到我们再设置一个ocean大海的颜色plt.imshow(face,cmap='ocean') 可以看到然后我们再去看一下,因为我们知道,这里的X,也就是data和images中的内容我们说是一样的对吧可以看到他们一个是X是1288行,11750列,这个11750我们说是像素,也是指的是一张图片,但是这个11750仅仅是一个数对吧,我们的图片是有长和高的,在二维中,所以如果对11750进行reshape就可以得到125,94对吧
然后我们再看这个image对应的faces(1288,125,94) 这个是三维的,他对应的是 三维的
我们说X和faces的数据是一样的,他们形状不一样对吧
然后我们看faces中的125*94可以看到正好是11750对吧这就说明faces进行了reshape或者reval对吧然后我们来显示一下可以看到这里face = X[index] 这里我们改成从X中获取,人脸数据,可以看到display(face.shape)报错了,说不合适的形状11750,因为11750是,一个图片的所有的像素个数,而我们的图片是有高度和宽度的所以这里我们对X进行一下reshapeface = X[index].reshape(125,94) 可以看到我们再去执行就可以了不报错了.然后我们再去看一下,我们加载的图片都是哪个名字的人,可以看到target_names = data['target_names'] 这里可以看到加载出了所有的人名然后我们知道y,其实存储了,名字的下标对吧那么我们从y中获取对应的index这个人脸的,名字的下标namename = y[index]对吧然后我们再去可以看到获取以后,我们打印一下对应的名字print(target_names[name]) 可以看到现在我们就可以把人的照片以及人的名字都加载出来了.
网站首页 > 编程文章 正文
猜你喜欢
- 2024-08-21 云原生Serverless关键技术解析(云原生架构概述)
- 2024-08-21 基于Coovally的目标检测任务详解(目标检测accuracy)
- 2024-08-21 十分钟基于Python实现人脸识别功能
- 2024-08-21 tracking.js浏览器端实时人脸检测、颜色跟踪技术
- 2024-08-21 PCA 主成分分析(pca主成分分析结果怎么看)
- 2024-08-21 Coovally任务详解之实例分割任务(实例分割的应用场景)
- 2024-08-21 猫脸关键点检测大赛:三种方法,轻松实现猫脸识别
- 2024-08-21 40行代码实现人脸识别(python人脸识别源代码)
- 2024-08-21 KNN识别:一眼认出你喜欢的明星(识图认明星)
- 2024-08-21 一张图就能生成“3D人脸模型”的工具!HumanOK太厉害了!
你 发表评论:
欢迎- 05-16时尚芭莎90秒|有理有据!冬装购买选色指南
- 05-16VS code使用入门(1)
- 05-16Git基本使用,分布式版本控制
- 05-16从某宝奸商淘回来的惠普ELITEBOOK 8570P,全金属好机
- 05-16Qt中添加OpenCV库
- 05-16cygwin安装skyeye所需的软件包列表
- 05-16code::blocks安装及汉化完整教程
- 05-16人人可以做程序员,CurSor编程神器!
- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)