機器學習 人臉識別補全

2021-10-06 22:42:13 字數 2928 閱讀 8895

學習自b站python人工智慧教程:機器學習(精華版)

這裡使用的是sklearn中自帶的資料集,值得注意的是部分可能會由於https協議證書的問題造成資料引入失敗,這裡要加入**

可以完美解決。

本章的主要目的是比較不同演算法的擬合效果。

#全體,總效果,全套服裝,全套家具,合奏組

#對於資料的**會更加精準(資料並不是全部精確的線性回歸)

from sklearn.ensemble import extratreesregressor

import sklearn.datasets as datasets

import matplotlib.pyplot as plt

faces = datasets.fetch_olivetti_faces()

data = faces.data

images = faces.images

print(data.shape,images.shape)

plt.imshow(images[1],cmap = 'gray')

#data 和是一一對應的

plt.imshow(data[1].reshape((64,64)),cmap = 'gray')

#生成訓練資料和測試資料

#人臉資料,分成上半部分和下半部分

train = data[faces.target<30]#300個人臉 上半部分和下半部分

test = data[faces.target>=30]#100張完整的人臉

x_train = train[:,:2048]

y_train = train[:,2048:]

face_upper=x_train[1].reshape(32,64)

plt.figure(figsize = (2,2.4))#顯示尺寸

plt.imshow(face_upper,cmap='gray')

#**資料分割

x_test = test[:,:2048]

y_test = test[:,2048:]

estor =

#使用模型訓練資料並且**

#儲存**資料

y_predicts = dict()

for key,estor in estor.items():

#第一步對模型進行訓練

estor.fit(x_train,y_train)

#訓練模型,進行**

#y_ = estor.predict(x_test)

y_predicts[key] = y_

print(y_)

#隨機選出五個資料進行展示

face_ids = np.random.randint(0,100,size = 5)

plt.figure(figsize = (6*2,5*2.4))

for i in range(5):

#繪製第一列 true face

#test中的真臉資料

if i:

axes = plt.subplot(5,6,i*6+1)

else:

axes = plt.subplot(5,6,i*6+1,title = 'true face')

#繪製正臉資料

axes.imshow(test[face_ids[i]].reshape(64,64),cmap = 'gray')

#繪製第二列的資料

if i:

axes = plt.subplot(5,6,i*6+2)

else:

axes = plt.subplot(5,6,i*6+2,title = 'half face')

axes.imshow(x_test[face_ids[i]].reshape(32,64),cmap = 'gray')

#繪製的資料,**的資料

for j,key in enumerate(y_predicts):

if i :

axes = plt.subplot(5,6,i*6+(j+3))

else:

axes = plt.subplot(5,6,i*6+(j+3),title = key)

face_upper = x_test[face_ids[i]]

y_ = y_predicts[key]

face_lower = y_[face_ids[i]]

comp_face = np.hstack((face_upper,face_lower)).reshape((64,64))

axes.imshow(comp_face,cmap = 'gray')

效果圖

機器學習 opencv 人臉識別

鑑於本人的工作環境主要是採用python作為開發工具,故本篇部落格是基於python來做的學習記錄。1.讀取,將其轉換為陣列 from matplotlib import pyplot as pyl import cv2 import numpy img cv2.imread cat.jpg img...

python機器學習 實現簡單的人臉識別

import cv2 cap cv2.videocapture 0 使用攝像頭 設定人臉分類器 haarcasecades classfier cv2.cascadeclassifier d python selenium anaconda3 pkgs libopencv 3.4.2 h20b85f...

學習opencv 人臉識別

在opencv中提供了許多成熟的介面,其中乙個就是人臉識別,先看看效果圖。可以看出用opencv自帶的樣本就能很方便的識別出人臉。opencv有已經自帶了人臉的haar特徵分類器。在目錄 opencv sources data haarcascades 下面。可以看出裡面還有很多分類器,識別左耳 右...