首页
学习
活动
专区
工具
TVP
发布

scikit-learn数据集之Olivetti 脸部数据集

scikit-learn 官方例子中有多个例子都用到了脸部数据集,本文对Olivetti脸部数据集做一个简要的分析,作为机器视觉的知识的基础。

1.官网介绍

小编先致谢知乎中文翻译团队以及AT&T剑桥实验室:

有四十个不同的个体,每个个体有十张不同的图片。对于某些个体,图像在不同时间拍摄并且改变照明和面部表情(睁开/闭上眼睛,微小/不微笑)和面部细节(戴眼镜/不带眼镜)。所有的图像采用黑色均匀的背景,个体处于直立的正面位置。(容许一定的侧移)

图像被量化为256个的灰度级并以8位无符号整数的形式存储;加载器将这些无符号整数转换为[0,1]之间的浮点值,这样能方面很多算法的使用。

该数据库的”目标”一个是从0到39的整数,代表着图中人物的身份。然而,由于每一类只有十个样例,从无监督学习或半监督学习的角度来看,这个相对较小的数据集更加有趣。

原始的数据集由92x 112大小的图像组成,然而这里提供的版本由64x 64大小的图像组成。

2.数据集的获得

采用函数:

sklearn.datasets.fetch_olivetti_faces(data_home=None, shuffle=False, random_state=0, download_if_missing=True)

获得相应的数据。

函数参数如下:

data_home:optional,默认 None。下载和存储数据集的文件夹,默认存储在 ‘~/scikit_learn_data’ 文件夹下。一般我们为了程序的可移植性以及管理,将数据集放在project的专用文件夹里,于是我们采用相对路径,data_home=’./专用文件夹’

shuffle:boolean, 可选,是否打乱照片。

random_state :int, RandomState instance or None, 可选。与系统的random_state一致。

download_if_missing :可选,默认True。如果数据在本地不可用报错,而不是在网上下载数据。

3.数据构成

官网介绍如下:

数据集包含400张照片,每张照片为64X64数据矩阵,将64X64矩阵存储为1行数据即4096,因此总的数据大小为400X4096.

target为400个标签,总共有40个人的照片,每个人有10张照片。

4.代码深入解读4.1导入数据

将数据读取,此数据需要下载,下载我们得到一个文件名为olivetti_py3.pkz的文件,data_home为下载地址,将其下载至相对路径的datasetsfile文件夹下面,注意表示相对路径为“./”。我们也可以将其下载到其他文件夹,采用绝对路径,比如:data_home=’F:\工作’。

数据的关键字为:

将data以及target分别赋值于X_face_data以及y_face_data。

4.2 数据大小分析

结果如下:

4.3 查看图片

查看图片有多种方式,本文列举最常用的两种方式:

第一种:

结果如下:

第二种:

效果一样:

4.4 保存图片

将图片保存至本地,单张图片的保存方法有两种:

第一种:

第二种:

第一种方式相当于把图片画出来然后保存,第二种方式保存的图片仅仅为系统按照数据生成的图片,大小也按照系统生成的大小进行。大家感受一下(左边为画图生成,右边为系统生成。第一行为大图标,第二行为超大图标):

将所有的图片生成并保存至本地:

保存后的图片如下:

5 小结

本文对Olivetti脸部数据集做了简要的分析,对数据集有了初步的了解,今后遇到类似的数据集可以按照相同的方式进行分析,套路一样。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180201G1ECIX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券