日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

机器学习之PCA算法的人脸图像识别-平均脸的计算(详细操作步骤)

發(fā)布時間:2023/12/18 pytorch 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之PCA算法的人脸图像识别-平均脸的计算(详细操作步骤) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

PCA算法介紹
PCA算法的步驟:
1:求出每一列的平均值,讓該列的元素減去求出的平均值
2:求該矩陣的協(xié)方差矩陣
3:求特征值、特征矩陣
4:保留主要的成分

這次講PCA算法的前期準(zhǔn)備工作,即收集朋友的照片,自拍照。以不同的角度拍攝十張照片。然后用PS等圖像處理軟件對照片進(jìn)行處理,照片分辨率為92X112像素,72分辨率,8位深度,并將圖像變?yōu)榛叶葓D像,如下圖所示。
將圖像保存為JPG格式和PGM格式,JPG格式方便查看,PGM格式讓程序進(jìn)行讀取,獲取數(shù)據(jù)。每個人收集十張照片,以0-9進(jìn)行命名。
因為肖像問題,就不給大家顯示人物的圖像了。做好這個之后,我們就可以使用jupyter notebook進(jìn)行編程了。

jupyter notebook編程程序
首先先引入

import numpy as np import math import matplotlib.pyplot as plt import matplotlib.image as mpimg

讀取第一張照片,并讓其顯示出灰色圖像。

img = mpimg.imread('./face_image/0/0.pgm') plt.imshow(img,cmap='gray')

將像素的長和寬進(jìn)行定義

img_height, img_width = mpimg.imread('./face_image/0/0.pgm').shape #照片像素

通過循環(huán)語句一次讀取照片的數(shù)據(jù),并將數(shù)據(jù)集保存到vectorized_images中。

#讀取train數(shù)據(jù) vectorized_images = [] for image_data in range(7):image_data > 7img_path ='./face_image/' + str(image_data) + '/'+'{0}.pgm'for image_no in range(0, 9):img = mpimg.imread(img_path.format(image_no))vectorized_images.append(img.ravel())# ravel函數(shù)是 numpy 的函數(shù): 將多維數(shù)組中的元素變成一個一維數(shù)組vectorized_images #這是一個list對象,里面每一個一維數(shù)組代表一張圖片

顯示出數(shù)據(jù)集中的照片

vectorized_images[0].reshape((img_height, img_width)) plt.imshow(vectorized_images[-1].reshape((img_height,img_width)),cmap="gray")

顯示出所有的數(shù)據(jù)集的照片,并將其加上相應(yīng)的label

#顯示所有的train data nrows = int((img_per_person)/9) ncols = 9 fig, axes = plt.subplots(nrows,ncols, figsize = (25, 13))title = 'face {0}'for i in range(nrows):for j in range(ncols):axes[i,j].imshow(vectorized_images[i*9+j].reshape((img_height,img_width)),cmap="gray")axes[i,j].set_title(title.format(j)) for ax in axes.ravel():ax.axis('off')

讀取出后的結(jié)果為:

gamma = np.array(vectorized_images) #把list對象變成數(shù)組 print(gamma.shape) #63行,10304列 print(gamma)

計算平均臉

average_face = np.mean(gamma, axis = 0) #axis = 0:壓縮行,對各列求均值,返回 1* n 矩陣 print(average_face)

最終將平均臉顯示出來

plt.imshow(average_face.reshape((img_height,img_width)),cmap="gray")

總結(jié)

以上是生活随笔為你收集整理的机器学习之PCA算法的人脸图像识别-平均脸的计算(详细操作步骤)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。