筆記 特徵臉(PCA在人臉識別領域的應用)

2022-06-07 03:24:08 字數 2552 閱讀 1905

什麼是特徵臉

特徵臉(eigenface)是指用於機器視覺領域中的人臉識別問題的一組特徵向量,該方法被認為是第一種有效的人臉識別方法。

pca的具體實現思想見

【筆記】主成分分析法pca的原理及計算

(在notebook中)

from sklearn.datasets import fetch_lfw_people

faces = fetch_lfw_people()

我們可以看到其中相應的內容

faces.keys()
結果為

其中faces.data.shape

結果為

對應的faces.images.shape

結果為(第乙個為樣本總數,對於每個樣本都是62*47的影象)

然後我們隨機出36張臉,首先對樣本進行乙個隨機的排列,然後將隨機的排列放入x中,然後取出x中前36張臉,然後看一下對應的資料

random_indexes = np.random.permutation(len(faces.data))

x = faces.data[random_indexes]

example_faces = x[:36,:]

example_faces.shape

結果為

繪製函式:

def plot_faces(faces):

fig,axes = plt.subplots(6,6,figsize=(10,10),

subplot_kw=,

gridspec_kw=dict(hspace=0.1,wspace=0.1))

for i,ax in enumerate(axes.flat):

ax.imshow(faces[i].reshape(62,47),cmap='bone')

plt.show()

plot_faces(example_faces)

影象為

可以使用faces.target_names來檢視包含的人名

結果為

具體的實現特徵臉

這裡使用pca的另一種構建方式svd_solver引數,讓其等於randomized,希望使用隨機的方式求解pca(對所有的資料),這樣來例項化pca,然後進行fit

%%time

from sklearn.decomposition import pca

pca = pca(svd_solver='randomized')

pca.fit(x)

結果為

使用pca.components_.shape來看一下有多少個維度及主成分

結果為

繪製影象,注意,影象越靠前,越能反映整個樣本的總特徵

plot_faces(pca.components_[:36,:])
影象為(這些就被稱為特徵臉)

因為有很多的是乙個人一張,而有一些是乙個人有很多張,這樣出來的資料有的時候是不靠譜的,那麼我們就可以獲得樣本數比較多的人的來增加準確度,我們可以

faces2 = fetch_lfw_people(min_faces_per_person=60)
通過faces2.data.shape,可以發現這樣就會少很多

使用len(faces2.target_names)來看一下一共多少人名

結果為這樣faces2中就只有8個人,每個人不少於60張,這樣的資料庫就比較靠譜了

耐克人臉識別 人臉識別技術在樓宇對講領域的應用

對於小區住戶,目前絕大多數樓宇對講系統所採用都是刷卡開鎖的方式,小區住戶一般都會配置相應的id卡,使用id卡進行門禁開鎖。但是刷卡開鎖存在較大的使用不便和安全隱患 首先使用者很容易丟失或會忘記攜帶自己的id卡,這樣就會給住戶進出小區會帶來不便 其次這種id卡很容易複製帶來安全隱患,一旦使用者的id卡...

深度學習筆記(42) 人臉識別

現在可以看到很多產品在運用人臉識別,如手機解鎖 車站身份識別認證 刷臉支付等 在人臉識別的相關文獻中,人們經常提到 有時候也被稱作1對1問題 只需要弄明白這個人是否和他聲稱的身份相符 而人臉識別問題比人臉驗證問題難很多 因為這是1對多問題 1 k 假設有乙個驗證系統,準確率是99 自我感覺還可以 但...

17 2 21 人臉識別中68個特徵點的檢測順序

對於一些常用的人臉庫常常會提供對應的人臉框的位置以及人臉的特徵點的座標。雖然往往會有68個特徵點的座標,但是如果是用於人臉對齊,並不需要用到所有的點座標。所以知道特徵點的檢測順序能夠幫助我們很快的找到我們所需要的特定點座標。如圖1所示,圖中將68個特徵點的檢測順序一次標註了出來。摘自 當然不是所有的...