人脸识别

本文介绍了如何利用PCA进行数据降维和SVM进行人脸识别。首先解释了人脸由RGB颜色组成,进而由数据表示。然后详细阐述了使用matplotlib.pyplot显示图片数据、导入GridSearchCV、fetch_lfw_people等模块,通过数据预处理、模型训练和优化,最终找到最佳的SVM参数,实现了人脸识别的流程,并展示了预测结果。
摘要由CSDN通过智能技术生成

人脸识别

  1. 人脸有不同的颜色组成
  2. 不同的颜色由三原色:红绿蓝组成
  3. 红绿蓝由0~255的数字组成

所以人脸是由数据组成的

让自己’活下来’—–>喜欢的事情(年纪不能太大)—–>责任(工作,’义气’,社会)

使用matplotlib.pyplot导入数据图片并显示,观察这张图片的数据类型

进行人脸识别操作

1.导入相应模块工具:GridSearchCV、fetch_lfw_people、PCA、loggin等

2.设置logging,控制台显示程序处理数据的进度

3.使用fetch_lfw_people导入数据,如果本地没有会从网络下载,如果本地有数据,加载本地

4.查看人脸数据结构

5.从人脸数据中提取进行机器学习的关键数据

6.对数据进行分割,获取训练数据和测试数据

7.数据太复杂了,使用PCA对数据进行降维处理,去除一些不重要的数据

8.使用GridSerchCV查询最佳的机器学习模型

9.定义方法获取预测人名和真实人名

10.定义方法绘制人脸识别结果图形

11.调用方法进行数据展示

导入相应模块工具:GridSearchCV、fetch_lfw_people、PCA、logging等

import numpy as np
import matplotlib.pyplot as plt
import sklearn.datasets as datasets

import logging

logging.basicConfig(level=logging.WARN, format='%(asctime)s %(message)s')
#min_faces_per_person 最少显示人数
#resize 代表图片被压缩过
#slice_=(slice(70, 195, None), slice(78, 172, None))  切片,默认值会直接切出人脸
face = datasets.fetch_lfw_people(min_faces_per_person=70,resize=1)
face
  • 输出

    {‘DESCR’: ‘LFW faces dataset’,
    ‘data’: array([[253.66667 , 253.66667 , 254.66667 , …, 86.666664, 86.333336,
    86.333336],
    [ 42. , 34. , 31.666666, …, 121.666664, 148. ,
    185.33333 ],
    [ 94. , 72. , 74. , …, 182.66667 , 183. ,
    182.33333 ],
    …,
    [ 84.333336, 86. , 85.333336, …, 44. , 35.666668,
    30.333334],
    [ 49.666668, 50.333332, 47.666668, …, 178.66667 , 167.66667 ,
    127.333336],
    [ 31.333334, 33.333332, 26.666666, …, 47.666668, 63. ,
    99. ]], dtype=float32),
    ‘images’: array([[[253.66667 , 253.66667 , 254.66667 , …, 42.333332,
    37.666668, 39. ],
    [254. , 254. , 253.66667 , …, 43.333332,
    38. , 39. ],
    [254.66667 , 254.33333 , 253.33333 , …, 44. ,
    38.666668, 38. ],
    …,
    [ 68.333336, 63.333332, 51. , …, 90.333336,
    85.666664, 83.666664],
    [ 64. , 61.333332, 51.666668, …, 88. ,
    87. , 87. ],
    [ 58.666668, 58. , 53. , …, 86.666664,
    86.333336, 86.333336]],

        [[ 42.      ,  34.      ,  31.666666, ...,  41.333332,
           34.      ,  29.666666],
         [ 41.666668,  35.666668,  38.      , ...,  42.      ,
           36.      ,  33.666668],
         [ 41.      ,  43.      ,  47.333332, ...,  48.666668,
           46.      ,  39.666668],
         ...,
         [ 77.333336,  77.666664,  75.666664, ..., 110.333336,
          110.666664, 133.33333 ],
         [ 77.666664,  78.666664,  78.333336, ..., 112.333336,
          123.666664, 154.66667 ],
         [ 77.      ,  76.666664,  76.666664, ..., 121.666664,
          148.      , 185.33333 ]],
    
        [[ 94.      ,  72.      ,  74.      , ..., 151.66667 ,
          150.33333 , 150.      ],
         [ 96.      ,  88.333336,  96.      , ..., 149.66667 ,
          148.33333 , 148.      ],
         [ 97.333336,  86.666664,  97.666664, ..., 147.66667 ,
          145.33333 , 147.33333 ],
         ...,
         [ 77.      ,  72.666664,  67.      , ..., 184.33333 ,
          183.      , 181.      ],
         [ 83.      ,  80.666664,  72.333336, ..., 184.      ,
          184.      , 182.      ],
         [ 88.333336,  86.666664,  82.666664, ..., 182.66667 ,
          183.      , 182.33333 ]],
    
        ...,
    
        [[ 84.333336,  86.      ,  85.333336, ...,  37.333332,
           42.666668,  48.      ],
         [ 86.      ,  87.      ,  84.666664, ...,  34.333332,
           38.333332,  43.66
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值