亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? featureextract.m

?? 這是人臉識別代碼
?? M
字號:
function [W,ProjectCoef,ProjectCoefClass,ExtractTime]=FeatureExtract(X,XClass,Judge,sDatabase,sOrder)
%
% [W,ProjectCoef,ProjectCoefClass,ExtractTime]=FeatureExtract(X,XClass,Judge)
%
% 輸入樣本按列堆積的矩陣X,以及每一列的所屬的類別向量XClass,根據判據Judge提取特征。
% 當Judge='PCA'時(默認),求得并選取p個總體散度矩陣St的特征向量組成Eigen臉W,使得保留90%的能量。
% 當Judge='LDA'時,求得并選取L=(K-1)個(Sw^-1)*Sb的特征向量組成Fisher臉W, K是類別數。
% Sb是樣本X的類間散度矩陣,Sw是樣本X的類內散度矩陣。XClass(i)是樣本X(:,i)的類別。
% 并返回每類樣本在W上的投影系數ProjectCoef和所花費的時間ExtractTime。
% ProjectCoef(:,i)所屬的類別為ProjectCoefClass(i)。
% 返回該投影系數是因為一般來說會用每類樣本各自取平均在W上投影作為一類樣本的特征。
% 
% Author : kk.h
% Date : 2004.5.2
% Email : kkcocoon@163.com
% SUN YAT-SEN UNIVERSITY 
%

% -----------------------------------------------------------------------------------------------------------

% 開始計算時間
BTime = clock;

% -----------------------------------------------------------------------------------------------------------
% 得到相應的.mat文件
ssDatabase = sDatabase;
ssDatabase = strrep(ssDatabase,':','_');
ssDatabase = strrep(ssDatabase,'\','_');

sMatFile = fullfile('mat',[ssDatabase '_' sOrder '_train_' Judge '.mat']);

% 如果相應的.mat文件存在,直接load該文件,得到變量返回。不必重新讀取
dirMatFile = dir(sMatFile);
if size(dirMatFile,1)~=0
    load(sMatFile);
    ExtractTime = etime(clock,BTime);
    return;
end;

% -----------------------------------------------------------------------------------------------------------
% 樣本數
XCount = size(X,2); 

% 計算每一類的均值。
[XMean,XMeanClass]= MeanClass(X,XClass);

% % 初始化
% ClassCount = 1; % 類別數
% XMeanClass(1) = XClass(1); % 第1類的類別
% XMean(:,1) = X(:,1); % 第1類的樣本總和
% XMeanCount(1) = 1; % 第1類的樣本數量
% 
% for i=2:XCount
%     if length(strfind(XMeanClass,XClass(i))) == 0 % 如果第i個樣本的類別不在已有的類別中
%         ClassCount = ClassCount + 1;
%         XMeanClass(ClassCount) = XClass(i); % 第ClassCount類的類別
%         XMean(:,ClassCount) = X(:,i); % 第ClassCount類的樣本總和
%         XMeanCount(ClassCount) = 1; % 第ClassCount類的樣本數量
%     else
%         XMean(:,ClassCount) = XMean(:,ClassCount) + X(:,i);  % 第ClassCount類的樣本總和
%         XMeanCount(ClassCount) = XMeanCount(ClassCount) + 1;  % 第ClassCount類的樣本數量
%     end
% end;
% 
% % 每一類分別除去各自的數量得到每一類的均值
% for i=1:ClassCount
%     XMean(:,i) = XMean(:,i) / XMeanCount(i);
% end;

% -----------------------------------------------------------------------------------------------------------
% 總體均值
m = mean(X,2);

% 總體散度矩陣: nxn 維
Xt = X - kron(m,ones(1,XCount));
% St = Xt * Xt';  % St = Sw + Sb;

% 每一樣本減去各自所屬類的均值。
for i=1:XCount
    Xw(:,i) = X(:,i) - XMean(:,strfind(XMeanClass,XClass(i)));
end;

% 類內散度矩陣: nxN * Nxn = nxn 維。n是每個樣本的大小,N是樣本總數  rank(Sw) <= N-K
% Sw = Xw * Xw';

% 每一類的均值分別減去總體均值
for i=1:ClassCount
    Xb(:,i) = XMean(:,i) - m;
end;

% 類間散度矩陣: nxK * Kxn = nxn 維。n是每個樣本的大小,K是類別數。 rank(Sb) <= K-1
% Sb = Xb * Xb' ;
% -----------------------------------------------------------------------------------------------------------
% 求解總體散度矩陣St或者類間散度矩陣Sb的特征向量,用來降維壓縮數據
% 但 Sc=(1/N)Xc*Xc' 的維數太大,根據SVD定理的推論,可以先求較低維的 Rc=Xc'*Xc 的特征向量組V。
% ??(1/N)Xc*Xc'和Xc*Xc'的正交歸一的特征向量EigenFace和U是一樣的嗎?
% Xc*Xc'是對稱半正定的矩陣,不會有負的特征根

Xc = Xt;  % Xc:nxN 用總體散度矩陣St作產生矩陣
% Xc = Xb;  % Xc:nxK 用類間散度矩陣Sb作產生矩陣

% Rc的維數: (nxN)' * nxN = NxN (n是樣本的維數,N是樣本總數XCount)
% Rc的維數: (nxK)' * nxK = KxK (n是樣本的維數,K是樣本類別數)
Rc = Xc'*Xc; 

% 求解Rc=Xc'*Xc的特征根Vc
[Vc,Dc] = eig(Rc); % Rc*Vc = Vc*Dc

% 直接做SVD內存不足
% [Uc,Dc,Vc] = svd(Xc);

% -----------------------------------------------------------------------------------------------------------
% 按St的特征值從大到小排序

% 對角向量
DcCol = diag(Dc);

% 從小到大排序
[DcSort,DcIndex] = sort(DcCol);

% Vc的列數
VcCols = size(Vc,2);

% 反序
for (i=1:VcCols)
    VcSort(:,i) = Vc(:,DcIndex(VcCols-i+1));
    DcSort(i) = DcCol(DcIndex(VcCols-i+1));
end

% -----------------------------------------------------------------------------------------------------------
% 降維

% 如果是LDA,則要用PCA先降維,即用總體散度矩陣的最大的前p個特征向量組成Eigen臉W,使得|W'StW|最大。
% W的維數: n x p ,其中: p = 樣本個數N - 類別數K
if Judge=='LDA'
    p = XCount-ClassCount;
 %   p = ClassCount; % 用類間散度矩陣Sb來降維,rank(Sb) <= K-1。
else % 如果是PCA,則默認保留90%的能量
    DcSum = sum(DcSort);
    DcSum_extract = 0;
    p = 0;

    while( DcSum_extract/DcSum < 0.9)
        p = p + 1;
        DcSum_extract = sum(DcSort(1:p));
    end
end;

% -----------------------------------------------------------------------------------------------------------
% Wpca是由前p個最大的非0特征值對應的特征向量組成的,根據SVD定理從Vt計算得到。維數為 nxp
i=1;
while (i<=p && DcSort(i)>0)
    Wpca(:,i) = DcSort(i)^(-1/2) * Xc * VcSort(:,i); 
    i = i + 1;
end

% -----------------------------------------------------------------------------------------------------------
% -----------------------------------------------------------------------------------------------------------
% 直接做LDA會出現小樣本問題,即當 n<N時,即樣本數小于樣本維數時,Sw是奇異的,無法求解(Sw^-1)*Sb的特征向量。
% 所以先用PCA降維。 Sw,Sb 都由 nxn 降為 pxp
if Judge=='LDA'
    Sw = Wpca' *  Xw * Xw' * Wpca; % (nxp)' * nxN * Nxn * nxp = pxp
    Sb = Wpca' *  Xb * Xb' * Wpca; % (nxp)' * nxK * Kxn * nxp = pxp

    % 按Fisher法則求解pxp維矩陣的特征向量
    [Vw,Dw] = eig((Sw^-1)*Sb); 

    % 按特征值從大到小排序

    % 對角向量
    DwCol = diag(Dw);

    % 從小到大排序
    [DwSort,DwIndex] = sort(DwCol);

    % 反序
    for (i=1:p)
        VwSort(:,i) = Vw(:,DwIndex(p-i+1));
        DwSort(i) = DwCol(DwIndex(p-i+1));
    end

    % 降維,保持99%的能量依然只是從160個中取到10個。這是因為這時候特征值的大小已經和能量沒什么關系。
    % 但是由于 rank((Sw^-1)*Sb) <= rank(Sb) <= K-1,所以非零的特征根的個數最多為K-1。所以可以到 K-1 維。
    % 其它特征根都是0,對應的特征向量對類間已經沒有什么區分作用。
    L = ClassCount - 1;
    
    Wlda = VwSort(:,1:L);  % 維數: pxL (即行是PCA降維后的大小,列是LDA降維之后的特征向量個數L)
    
    W = Wpca * Wlda;  % 維數: nxp * pxL = n x L (即列是樣本維數,行是LDA降維后的特征向量個數L(<=K-1))
    
else
    W = Wpca;
end;
% -----------------------------------------------------------------------------------------------------------
% 結果數據

% % 所有訓練樣本都在特征臉上投影,每一列的系數代表每一個樣本的特征
ProjectCoef = W'*X;  % 維數: (nxL)' * nxN = LxN
ProjectCoefClass = XClass;

% 用每一類的均值在特征臉上投影,投影每一列的系數代表每一類樣本的特征
% ProjectCoef = W'*XMean;  % 維數: (nxL)' * nxK = LxK
% ProjectCoefClass = XMeanClass;

% 變換矩陣W=Wpca*Wlda把總體離差陣也變成對角陣了。因為Wpca首先把St變成對角的了。所以這樣做出來的LDA也是統計不相關的。

% 所用總時間
ExtractTime = etime(clock,BTime);


% -----------------------------------------------------------------------------------------------------------
% 保存結果。

% 如果mat的文件夾不存在
if size(dir('mat'),1)==0
  mkdir('mat');
end;

save(sMatFile,'W','ProjectCoef','ProjectCoefClass');

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久看| 免费日韩伦理电影| 性欧美大战久久久久久久久| 久久成人久久爱| 色综合久久中文字幕综合网| 精品国产一区二区亚洲人成毛片| 亚洲日本电影在线| 国产成人免费视| 精品1区2区3区| 国产精品三级久久久久三级| 日日欢夜夜爽一区| 91蝌蚪porny九色| 26uuu国产一区二区三区| 伊人色综合久久天天| 国产成人啪午夜精品网站男同| 欧美精品日韩综合在线| 国产精品乱码人人做人人爱| 麻豆freexxxx性91精品| 777久久久精品| 亚洲亚洲精品在线观看| 91在线精品一区二区| 亚洲欧洲日韩综合一区二区| 国产不卡视频在线观看| 久久久国产精品午夜一区ai换脸| 麻豆精品久久久| 欧美一区二区视频在线观看2022| 午夜婷婷国产麻豆精品| 欧美日韩久久久一区| 亚洲图片欧美视频| 欧美日韩一区二区三区四区| 亚洲电影激情视频网站| 在线精品观看国产| 亚洲欧美日韩国产手机在线| 91福利小视频| 亚洲夂夂婷婷色拍ww47| 欧美午夜精品久久久久久超碰 | 国产精品视频第一区| 韩国精品免费视频| 久久精品一区二区三区不卡牛牛 | 岛国精品在线播放| 国产欧美日韩三区| 成人网在线播放| 亚洲视频狠狠干| 在线视频你懂得一区二区三区| 一级精品视频在线观看宜春院 | 亚洲精品在线电影| 极品少妇一区二区| 中文字幕日韩欧美一区二区三区| hitomi一区二区三区精品| 日韩一区中文字幕| 欧美日韩午夜精品| 伦理电影国产精品| 国产精品免费人成网站| 色综合久久88色综合天天免费| 亚洲一区二区三区四区在线| 91精品国产免费| 国产精品一区二区91| 《视频一区视频二区| 欧美三级日韩在线| 国产精品原创巨作av| 综合分类小说区另类春色亚洲小说欧美| 欧洲精品在线观看| 麻豆一区二区在线| 亚洲欧洲日韩av| 777亚洲妇女| 97se亚洲国产综合自在线观| 日本特黄久久久高潮| 中文字幕第一页久久| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲男帅同性gay1069| 欧美丰满美乳xxx高潮www| 成人免费av在线| 麻豆国产精品一区二区三区| 亚洲人成电影网站色mp4| 日韩欧美aaaaaa| 欧美在线啊v一区| 风间由美一区二区三区在线观看| 亚洲成人在线网站| 国产精品网曝门| 日韩欧美中文字幕精品| 色婷婷综合久久久| 国产精品一区二区男女羞羞无遮挡| 亚洲国产日韩av| 亚洲人成伊人成综合网小说| 久久久午夜精品理论片中文字幕| 欧美在线一区二区| 高清国产一区二区| 美女视频黄 久久| 午夜日韩在线观看| 一区二区三区在线免费播放| 欧美激情一区二区三区全黄| 69久久99精品久久久久婷婷| 99久久精品免费| 国产一区二区成人久久免费影院 | 国产农村妇女毛片精品久久麻豆| 欧美日韩一区二区欧美激情| 色综合久久精品| 99视频精品全部免费在线| 国产精品资源在线看| 久久aⅴ国产欧美74aaa| 日韩高清一级片| 亚洲国产一区二区三区青草影视| 成人免费在线播放视频| 亚洲国产激情av| 久久久蜜桃精品| 久久久99精品免费观看不卡| 欧美电影免费提供在线观看| 91精品国产色综合久久ai换脸 | 欧美天堂一区二区三区| 色偷偷成人一区二区三区91| 91小视频免费看| 色婷婷精品大视频在线蜜桃视频| 不卡一区二区中文字幕| 菠萝蜜视频在线观看一区| 国产高清精品网站| 国产成人在线视频免费播放| 精品一区免费av| 国产在线视频一区二区三区| 国产在线精品一区二区夜色| 精久久久久久久久久久| 国产毛片精品国产一区二区三区| 国内精品国产成人国产三级粉色| 精品在线亚洲视频| 国产一区二区三区香蕉| 丁香六月综合激情| 99久久婷婷国产精品综合| 91麻豆产精品久久久久久| 91一区二区在线观看| 在线观看日韩精品| 欧美日韩国产bt| 日韩丝袜美女视频| 欧美mv日韩mv亚洲| 久久青草国产手机看片福利盒子| 国产三级三级三级精品8ⅰ区| 久久久久国产精品人| 亚洲丝袜制服诱惑| 午夜影视日本亚洲欧洲精品| 奇米一区二区三区| 国产成人精品一区二区三区四区 | 国产成人精品一区二 | 国产一区二区日韩精品| 大陆成人av片| 欧美性生活大片视频| 欧美一区2区视频在线观看| 久久久久久久电影| 一区二区激情视频| 奇米综合一区二区三区精品视频| 国产美女精品一区二区三区| 99国产欧美久久久精品| 欧美精品久久久久久久久老牛影院| 欧美成人官网二区| 亚洲天堂网中文字| 日产国产高清一区二区三区| 成人精品小蝌蚪| 欧美高清精品3d| 国产精品理伦片| 日韩成人精品在线观看| 成人99免费视频| 日韩一级片在线播放| 中文字幕日韩av资源站| 麻豆91在线播放免费| 在线免费观看视频一区| 精品久久人人做人人爽| 一区二区三区视频在线观看 | 日本不卡一二三区黄网| 成人免费毛片片v| 欧美一三区三区四区免费在线看 | 亚洲综合色噜噜狠狠| 国产美女久久久久| 91精品在线免费观看| 18欧美亚洲精品| 国产成人午夜片在线观看高清观看| 欧美美女黄视频| 亚洲欧美一区二区在线观看| 国模无码大尺度一区二区三区| 91久久线看在观草草青青| 国产精品日日摸夜夜摸av| 美腿丝袜亚洲一区| 欧美午夜免费电影| 亚洲色图视频网| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩中文字幕一区| 亚洲品质自拍视频网站| 福利电影一区二区三区| 精品国产区一区| 久久精品999| 日韩午夜三级在线| 日本女人一区二区三区| 欧美日韩五月天| 午夜伦理一区二区| 色94色欧美sute亚洲13| 综合在线观看色| 91一区一区三区| 亚洲欧美成人一区二区三区| 99re热视频这里只精品 | 久久久亚洲国产美女国产盗摄| 美国一区二区三区在线播放| 日韩亚洲欧美成人一区| 美女一区二区视频| 日韩免费高清av|