色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用PCA和SVM建立一個人臉識別模型

牽手一起夢 ? 來源:磐創AI ? 作者:磐創AI ? 2020-12-31 14:19 ? 次閱讀

在本文中,我們將使用主成分分析和支持向量機來建立人臉識別模型。

首先,讓我們了解PCA和SVM是什么:

主成分分析:主成分分析(PCA)是一種機器學習算法,廣泛應用于探索性數據分析和建立預測模型,它通常用于降維,通過將每個數據點投影到前幾個主成分上,以獲得低維數據,同時盡可能保留數據的變化。

Matt Brems的文章全面深入地介紹了該算法。現在,讓我們用更簡單的術語來理解算法:假設我們現在正在收集數據,我們的數據集產生了多個變量、多個特征,所有這些都會在不同方面影響結果。我們可能會選擇刪除某些特征,但這意味著會丟失信息。因此我們開源使用另一種減少特征數量(減少數據維數)的方法,通過提取重要信息并刪除不重要的信息來創建新的特征,這樣,我們的信息就不會丟失,但起到減少特征的作用,而我們模型的過擬合幾率也會減少。支持向量機支持向量機(SVM)是一種用于兩組分類問題的有監督機器學習模型,在為每個類別提供一組帶標簽的訓練數據后,他們能夠對新的測試數據進行分類。

支持向量機基于最大化間隔的平面對數據進行分類,決策邊界是直的。支持向量機是一種很好的圖像分類算法,實驗結果表明,支持向量機在經過3-4輪相關優化后,其搜索精度明顯高于傳統的查詢優化方案,這對于圖像分割來說也是如此,包括那些使用改進的支持向量機。Marco Peixeiro的文章解釋了需要有一個最大間隔超平面來分類數據,開源幫助你更好地理解SVM!人臉識別人臉是由許多像素組成的高維數據。高維數據很難處理,因為不能用二維數據的散點圖等簡單技術進行可視化。我們要做的是利用PCA對數據的高維進行降維處理,然后將其輸入到SVM分類器中對圖像進行分類。下面的代碼示例取自關于eigenfaces的sklearn文檔,我們將一步一步地實現代碼,以了解其復雜性和結果。導入相關庫和模塊首先,我們將導入所需的庫和模塊,我們將在后文深入討論我們為什么要導入它們。import pylab as pl

import numpy as np

from matplotlib import pyplot as plt

from sklearn.model_selection import train_test_split

from sklearn.datasets import fetch_lfw_people

from sklearn.model_selection import GridSearchCV

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.decomposition import PCA as RandomizedPCA

from sklearn.svm import SVC

將數據加載到Numpy數組中接下來,我們將數據下載到磁盤中,并使用fetch_lfw_people將其作為NumPy數組加載到sklearn.datasetslfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4)

lfw數據集包括一個用于研究無約束人臉識別問題的人臉圖像數據庫,它從網絡收集的13000多張照片中包含了超過13000張照片,每個人臉都貼上了照片,1680個人臉在數據集中有兩張或兩張以上不同的照片。圖像采用灰度值(像素值=0-255)。

如何利用PCA和SVM建立一個人臉識別模型

圖像Numpy數組接下來,我們將尋找圖像數組圖片的形狀。我們使用NumPy shape屬性,該屬性返回一個元組,每個索引都有對應元素的數量。

n_samples, h, w = lfw_people.images.shape

np.random.seed(42)

從變量explorer可以看到,我們有1288個樣本(圖片),高度為50px,寬度為37px(50x37=1850個特征)Numpy數組我們使用lfw_people 的data數組,直接存儲在X中,我們將在以后的處理中使用這些數據。X = lfw_people.data

n_features = X.shape[1]

X中的數據有1288個樣本,每個樣本有1850個特征。label接下來,我們將定義label,這些label是圖片所屬人的id。y = lfw_people.target

target_names = lfw_people.target_names

n_classes = target_names.shape[0]

這里,y代表目標,它是每個圖片的標簽。標簽由target_names變量進一步定義,該變量由7個要識別的人的姓名組成。

如何利用PCA和SVM建立一個人臉識別模型

target是一個1288x1的NumPy數組,它包含1288張圖片對應名稱的0–6值,因此,如果id=0的目標值為5,則表示該人臉為“Hugo Chavez”,如target_names中所示:

因此,y是數字形式的目標,target_names是名稱中的任何目標/標簽,n_classes是存儲類數量的變量,在我們的例子中,我們有7個:Ariel SharonColin PowellDonald RumsfeldGeorge W BushGerhard Schr?derHugo ChavezTony Blair

讓我們打印出變量:print("Total dataset size:")

print("n_samples: %d", n_samples)

print("n_features: %d", n_features)

print("n_classes: %d", n_classes)

所以,我們有1288個樣本(圖片),每個樣本總共有1850個特征(50px37px)和7個類(人)。劃分訓練集和測試集接下來,我們使用sklearn.model_selection將數據(X-特征和y-標簽)分為訓練數據和測試數據,其中25%用于測試,其余75%用于訓練模型。X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)

以下是變量X-train、X_test、y_train和y_test:

基于PCA的降維方法現在,我們從 sklearn.decomposition中選擇PCA 以訓練模型。我們已經在第一段代碼中導入了PCA在我們的例子中,我們在訓練集X_train中總共有966個特征,我們使用PCA(維數縮減)將它們減少到50個:n_components = 50

pca = RandomizedPCA(n_components=n_components, whiten=True).fit(X_train)

這個過程需要不到一秒鐘的時間,這可以通過使用時間函數進行驗證(讓我們暫時跳過它)。現在我們將重塑PCA組件并定義特征臉,這是在人臉識別的計算機視覺問題中使用的一組特征向量的名稱:eigenfaces = pca.components_.reshape((n_components, h, w))

如何利用PCA和SVM建立一個人臉識別模型

如截圖所示,特征臉是一個50×50×37的Numpy數組,50對應于特征的數量。接下來,我們使用PCA在X_train 和X_test 上的transform 函數來降低維數。X_train_pca = pca.transform(X_train)

X_test_pca = pca.transform(X_test)

從上面的截圖可以看出,通過PCA算法,X_train和X_test的維數都被降低了,每一個都將特征從1850個減少到50個(正如我們在算法中定義的那樣)。訓練SVM分類器一旦我們完成了降維,就開始分類了。首先,我們將訓練SVM分類模型。我們使用GridSearchCV,這是一個庫函數,它是一種調整超參數的方法,它將系統地為網格中指定的算法參數的每個組合建立和評估模型,并在最佳估計量,參數在參數網格中給出:print("Fitting the classifier to the training set")

param_grid = {

'C': [1e3, 5e3, 1e4, 5e4, 1e5],

'gamma': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1],

clf = GridSearchCV(SVC(kernel='rbf', class_weight='balanced'), param_grid)

clf = clf.fit(X_train_pca, y_train)

print("Best estimator found by grid search:")

print(clf.best_estimator_)

我們數據的最佳分類器是SVC,參數如下:SVC(C=1000, class_weight = ‘balanced’, gamma=0.01)預測現在讓我們在測試數據上預測這些人的名字,我們使用從GridSearchCV中找到的分類器,它已經在訓練數據擬合。print("Predicting the people names on the testing set")

y_pred = clf.predict(X_test_pca)

分類報告和混淆矩陣一旦預測完成,讓我們打印分類報告,它顯示了模型的精度、召回率、F1分數和支持分數,這使我們對分類器的行為有了更深入的直覺。print(classification_report(y_test, y_pred, target_names=target_names))

讓我們打印混淆矩陣:print(confusion_matrix(y_test, y_pred, labels=range(n_classes)))

混淆矩陣打印真正例、假正例和假反例的值,并提供分類器的概述。繪圖最后,我們將繪制人物肖像和特征臉!我們將定義兩個函數:title在測試集的一部分繪制預測結果,plot_gallery通過繪制它們來評估預測:def title(y_pred, y_test, target_names, i):

pred_name = target_names[y_pred[i]].rsplit(' ', 1)[-1]

true_name = target_names[y_test[i]].rsplit(' ', 1)[-1]

return 'predicted: %strue: %s' % (pred_name, true_name)

def plot_gallery(images, titles, h, w, n_row=3, n_col=4):

"""繪制肖像庫的幫助函數"""

plt.figure(figsize=(1.8 * n_col, 2.4 * n_row))

plt.subplots_adjust(bottom=0, left=.01, right=.99, top=.90, hspace=.35)

for i in range(n_row * n_col):

plt.subplot(n_row, n_col, i + 1)

plt.imshow(images[i].reshape((h, w)), cmap=plt.cm.gray)

plt.title(titles[i], size=12)

plt.xticks(())

plt.yticks(())

現在讓我們在測試集的一部分繪制預測結果:prediction_titles = [title(y_pred, y_test, target_names, i)

for i in range(y_pred.shape[0])]

plot_gallery(X_test, prediction_titles, h, w)

現在讓我們繪制特征面。我們使用在上面代碼塊中定義的eigenfaces變量。eigenface_titles = ["eigenface %d" % i for i in range(eigenfaces.shape[0])]

plot_gallery(eigenfaces, eigenface_titles, h, w)

plt.show()

最后,我們來繪制PCA+SVM模型用于人臉識別的精度:from sklearn.metrics import accuracy_score

score = accuracy_score(y_test, y_pred)

print(score)

我們的準確分數是0.81!雖然這并不是一個完美的分數,還有很大的改進空間,但PCA和SVM的人臉識別為我們提供了進一步強大算法的起點!結論本文利用PCA和SVM建立了一個人臉識別模型。主成分分析算法被用來減少數據的維數,然后利用支持向量機進行分類,通過超參數調整尋找最佳估計量。我們對這些肖像進行了分類,準確度得分為0.81。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人臉識別
    +關注

    關注

    76

    文章

    4012

    瀏覽量

    82011
  • 機器學習
    +關注

    關注

    66

    文章

    8424

    瀏覽量

    132765
收藏 人收藏

    評論

    相關推薦

    如何提升人臉門禁體機的識別準確率?

    準確率,可以從以下幾個方面進行改進。、優化算法與模型人臉識別的核心在于算法的優化和模型的調整,目前深度學習技術在圖像
    的頭像 發表于 12-10 15:05 ?204次閱讀
    如何提升<b class='flag-5'>人臉</b>門禁<b class='flag-5'>一</b>體機的<b class='flag-5'>識別</b>準確率?

    FacenetPytorch人臉識別方案--基于米爾全志T527開發板

    。FaceNet通過將人臉圖像映射到高維空間,使得同一個人的不同圖像在這個空間中的距離盡可能小,而不同人的圖像距離盡可能大。這種嵌入表示可以直接用于
    發表于 11-28 15:57

    深度識別人臉識別有什么重要作用嗎

    深度學習人臉識別技術是人工智能領域的重要分支,它利用深度學習算法來識別和驗證
    的頭像 發表于 09-10 14:55 ?571次閱讀

    深度識別人臉識別在任務中為什么有很強大的建模能力

    深度學習人臉識別技術是人工智能領域中的重要分支,它利用深度學習算法來識別和驗證
    的頭像 發表于 09-10 14:53 ?428次閱讀

    人臉識別技術的原理介紹

    人臉識別技術是種基于人臉特征信息進行身份識別的生物識別技術。它通過分析
    的頭像 發表于 07-04 09:22 ?1288次閱讀

    如何設計人臉識別的神經網絡

    人臉識別技術是種基于人臉特征信息進行身份識別的技術,廣泛應用于安全監控、身份認證、智能門禁等領域。神經網絡是實現
    的頭像 發表于 07-04 09:20 ?679次閱讀

    人臉識別模型訓練流程

    人臉識別模型訓練流程是計算機視覺領域中的項重要技術。本文將詳細介紹人臉識別
    的頭像 發表于 07-04 09:19 ?1000次閱讀

    人臉識別模型訓練失敗原因有哪些

    人臉識別模型訓練失敗的原因有很多,以下是些常見的原因及其解決方案: 數據集質量問題 數據集是訓練人臉
    的頭像 發表于 07-04 09:17 ?655次閱讀

    人臉識別模型訓練是什么意思

    人臉識別模型訓練是指通過大量的人臉數據,使用機器學習或深度學習算法,訓練出能夠
    的頭像 發表于 07-04 09:16 ?643次閱讀

    人臉檢測模型的精確度怎么算

    人臉檢測模型的精確度評估是復雜的過程,涉及到多個方面的因素。本文將從以下幾個方面進行介紹:人臉檢測
    的頭像 發表于 07-04 09:14 ?557次閱讀

    人臉檢測模型有哪些

    人臉檢測是計算機視覺領域的重要研究方向,它涉及到從圖像或視頻中檢測出人臉的位置和大小。隨著深度學習技術的發展,人臉檢測
    的頭像 發表于 07-03 17:05 ?1078次閱讀

    人臉檢測和人臉識別的區別是什么

    人臉檢測和人臉識別是計算機視覺領域的兩重要技術,它們在許多應用場景中都有廣泛的應用,如安全監控、身份驗證、社交媒體等。盡管它們在某些方面有相似之處,但它們之間存在
    的頭像 發表于 07-03 14:49 ?1296次閱讀

    人臉檢測與識別的方法有哪些

    人臉檢測與識別是計算機視覺領域中的重要研究方向,具有廣泛的應用前景,如安全監控、身份認證、智能視頻分析等。本文將詳細介紹人臉檢測與
    的頭像 發表于 07-03 14:45 ?746次閱讀

    人臉識別閘機在樓宇出入中的應用

    人臉識別閘機的應用在樓宇出入管理中引起了廣泛關注。人臉識別閘機作為種創新的出入口管理設備,已廣泛運用于各類樓宇,如辦公大樓、住宅小區、學校
    的頭像 發表于 05-27 10:14 ?451次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識別</b>閘機在樓宇出入中的應用

    人臉識別技術的原理是什么 人臉識別技術的特點有哪些

    人臉識別技術的原理 人臉識別技術是種通過計算機以圖像或視頻為輸入,識別、檢測、跟蹤和分析
    的頭像 發表于 02-18 13:52 ?1991次閱讀
    主站蜘蛛池模板: 亚洲永久精品AV在线观看| 印度性hd18| 欧洲兽交另类AVXXX| couo福利姬图库| 无人影院在线播放| 色婷婷综合久久久久中文一区二区| 菊地凛子av| 蜜柚视频在线观看全集免费观看 | 色多多深夜福利免费观看| 热久久伊大人香蕉网老师| 爽死你个放荡粗暴小淫货漫画| 内射白嫩少妇超碰| 欧美群交XXXCOM| 日韩亚洲欧洲在线rrrr片| 偷偷鲁青春草原视频分类| 亚洲AV无码一区二区色情蜜芽| 色戒在线完整观看在线播放版| 免费国产足恋网站| 欧美巨大xxxx做受孕妇视频| 看免费人成va视频全| 欧美阿v在线天堂| 暖暖高清视频免费| 蜜臀AV精品久久无码99| 内射少妇36P九色| 色拍拍噜噜噜久久蜜桃| 亚洲第一色网站| 亚洲成a人不卡在线观看| 制服丝袜第一页| 成人毛片免费观看视频大全| 成人啪啪色婷婷久色社区| 国产深夜福利视频在线| 麻豆国产99在线中文| 四虎国产一区| 中文字幕无码亚洲字幕成A人蜜桃| 伊人久99久女女视频精品免| japanesematur乱儿| 国产毛片AV久久久久精品| 国产一区二区内射最近更新| 老司机福利在 线影院| 妙玉被肉干高H潮文| 色综合五月激情综合色一区|