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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pca人脸特征降维的过程理解及matlab编程实现

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pca人脸特征降维的过程理解及matlab编程实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?只提取了最基礎簡潔的pca實現過程,其中的具體原理和過程可以參考如下博客:完整程序代碼

https://blog.csdn.net/guyuealian/article/details/68487833

https://www.cnblogs.com/hxjbc/p/6197986.html

PCA進行特征降維的步驟:

  • 設有m條n維數據。

  • 1)將原始數據按列組成n行m列矩陣X

  • 2)將X的每一行(代表一個屬性字段)進行零均值化,即減去這一行的均值

  • 3)求出協方差矩陣

  • 4)求出協方差矩陣的特征值及對應的特征向量r

  • 5)將特征向量按對應特征值大小從上到下按行排列成矩陣,取前k行組成矩陣P

  • 6)即為降維到k維后的數據


?Matlab實現pca特征降維時涉及的主要函數功能:

  • scatter: scatter(x,y)在向量?x?和?y?指定的位置創建一個包含圓形的散點圖

  • randn:randn(n)返回一個n*n的隨機項的矩陣

  • mean: 求數組的平均數或者均值

  • eigs:eigs(A):求度矩陣A的全部特征值,構成向量(有別eig,返回的結果不同,處理過程也有區別)

  • cov:cov(x)?求向量x的方差

  • repmat:用于快速的產生一個大的矩陣


?簡單實例:

使用n=2000; X = randn(n,2)*[0.1? 1; 1 0.7] 生成2000個2維的樣本,使用scatter函數畫出這2000個樣本;用xlim([-5 5]) 設置圖中x坐標軸的范圍為[-5,5],用ylim([-5 5])設置y坐標軸的范圍也為[-5,5]。

n=2000; X=randn(n,2)*[0.1 1;1 0.7]; scatter(X(:,1),X(:,2)); xlim([-5,5]); ylim([-5,5]);

?得到如下效果:

?

編程實現對X中樣本進行PCA變換,保留所有的2個維度,注意此處沒有使用matlab自帶的pca函數直接得到結果,使用eigs函數代替pca函數的實現過程。將對X進行PCA變換后的樣本用scatter函數畫出;同樣設置x和y軸的顯示范圍為[-5,5]。

n=2000; [row,col]=size(X); X=randn(n,2)*[0.1 1;1 0.7]; c=cov(X); [F,V]=eigs(c); meanx=mean(X); tempx=repmat(meanx,row,1); score=(X-tempx)*F; pca=score(:,1:2); scatter(pca(:,1),pca(:,2)); xlim([-5,5]); ylim([-5,5]);

?進行pca變換后,給樣本重新找到更能描述這組數據的正交的坐標軸


?使用PCA進行人臉的特征降維和特征臉的輸出。

數據集:人臉數據集_免費

主要步驟:

(a) 對28張人臉圖片依次進行如下處理:讀取每一張圖片,將圖片的像素矩陣轉換為一個特征向量,存儲到數據data的一行,從而得到28*10304的矩陣,矩陣每一行表示一個樣本。在讀取過程,使用subplot函數和imshow函數將28張原始的人臉圖片顯示在一張圖中。

(b) 計算這28個樣本的均值向量,使用reshape函數將該均值向量重新調整為112*92的矩陣,使用imshow函數顯示該矩陣。在人臉識別中,均值向量稱為平均臉,它描述了數據集中所有人臉平均長成什么樣。

(c) 對data進行PCA變換(直接使用pca函數)。在人臉識別中,每個主成分稱為一個特征臉(eigenface)或主成分臉。使用subplot函數和imshow函數將所有的特征臉顯示在一張圖中,注意,仍需要對每個主成分重新調整為112*92的矩陣再顯示。觀察特征臉和原始的人臉圖像的區別。

imgstr=dir(strcat('.\faces_for_pca\','*.pgm')); data=[]; for i=1:28img=im2double(imread(imgstr(i).name));subplot(5,6,i);imshow(img);data=[data;reshape(img,1,10304)]; end meanData=mean(data); figure; imshow(reshape(meanData,112,92));[COEFF,SCORE,latent,tsquare] = pca(data); % 1)COEFF 是主成分分量,即樣本協方差矩陣的特征向量; % 2)SCORE主成分,是樣本X在低維空間的表示形式,即樣本X在主成份分量COEFF上的投影 ,若需要降k維,則只需要取前k列主成分分量即可 % 3)latent:一個包含樣本協方差矩陣特征值的向量; %cumsum(latent)./sum(latent) %計算特征值的累計貢獻率,算出降維后的空間所能表示原空間的程度 %train=SCORE(:,1:17); %17維%90 figure; for i=1:27 %降至27維zimg=COEFF(:,i);zimg=reshape(zimg,112,92);subplot(5,6,i);imshow(mat2gray(zimg)); end

?數據集中的所有臉

?平均臉

?降維后的特征臉

?

總結

以上是生活随笔為你收集整理的pca人脸特征降维的过程理解及matlab编程实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久性色av无码一区二区 | a级片日本 | 欧美日韩国产一区二区在线观看 | 日本三级韩国三级三级a级中文 | 少妇一级淫片aaaaaaa | 日韩成人免费在线 | 欧洲av网站| 国产freexxxx性播放麻豆 | 一区二区三区四区亚洲 | 午夜刺激视频 | 亚洲福利社| 青青草在线观看视频 | 久久久久亚洲AV成人无码国产 | 狠狠操免费视频 | 五月少妇| 精品无码国产一区二区三区51安 | jjzz黄色片| 啪啪网站大全 | 国产一级自拍 | 91亚洲精华 | 日本一区视频在线 | 97人妻精品一区二区免费 | 在线看黄的网站 | 久久久久久久国产精品美女 | 国产精品乱码一区二区视频 | 色综合一区二区三区 | 国产女人18毛片水真多18 | 欧美性白人极品1819hd | 国产情侣酒店自拍 | 潘金莲裸体一级淫片视频 | 免费av小说 | 久久人人爽人人 | 国产偷拍一区二区 | 亚洲a√ | 无码人妻丰满熟妇区毛片蜜桃精品 | 亚洲精品久久久久久无码色欲四季 | 亚洲综合精品一区 | 拔擦8x成人一区二区三区 | 日韩在线视频网站 | 日韩午夜在线播放 | 免费国产羞羞网站视频 | 午夜羞羞影院 | 东北少妇不带套对白 | 美丽的姑娘在线观看免费 | 女性裸体不遮胸图片 | 欧美丰满老妇性猛交 | 国产白嫩美女无套久久 | 色播99 | 伊人黄色| 久久久久久国产精品免费免费 | 国产精品视频h | 成人无码www在线看免费 | 91视频免费网址 | 亚洲国内在线 | 亚州色图欧美色图| 五月婷婷七月丁香 | 国产v亚洲v天堂无码久久久 | 免费伊人 | 91一二区 | 肉丝美足丝袜一区二区三区四 | 亚洲性久久久 | 网站免费视频www | 亚洲日本精品视频 | 久久久久久一区二区 | 国产伦精品一区二区三区视频女 | 欧美一区三区 | 欧洲激情网 | 欧美粗大猛烈 | 日韩福利在线 | 自拍偷拍在线播放 | 午夜激情四射 | 日韩精品一区二 | 激情五月婷婷网 | 91中出| 善良的老师伦理bd中字 | 成人av一区二区三区在线观看 | 国产91综合一区在线观看 | 亚洲天堂福利 | 人人干人人模 | 三上悠亚激情av一区二区三区 | 亚洲国产免费看 | 国产精品一区二区视频 | 天天激情综合 | youjizz亚洲女人 | 女人又爽又黄免费女仆 | 天堂综合网 | 久久久久无码精品国产 | 影音先锋国产精品 | 国内精品视频一区二区三区 | 国产日韩欧美在线观看视频 | www.蜜臀 | 中文字幕一区二区三 | 老汉色老汉首页av亚洲 | 日韩乱码人妻无码中文字幕 | 涩涩视频在线看 | 国产一区二区三区日韩 | 88xx成人永久免费观看 | 欧美做受视频 | 色呦呦网|