• 大小: 38.77MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-17
  • 语言: 其他
  • 标签: 人脸识别  

资源简介

常见人脸识别数据库(AR、ORL、Yale、YaleB、FERET、PIE)

资源截图

代码片段和文件信息

 function DataLabel_random(databasegroup)
% 生成训练序列标签trainIdx测试序列标签testIdx冒充者训练集标签Imposter_train冒充者测试集标签Imposter_test.  
% 要求:训练集和测试集中人脸的个数相同。冒充者的训练集和测试集中的人脸个数也相同
%     Input:
%          database     -----选择数据库用于实验,参数选择为‘ORL‘‘Yale‘‘YaleB‘‘PIE‘ or ‘AR‘;
%          group        -----生成的标签组数,默认为50组
%     Example:
%          label(‘ORL‘5); 
% 2013/9/3 星期 2 ym

if (~exist(‘group‘‘var‘))
    group = 50;
end

switch lower(database)
    case ‘orl‘
        % ORL :随机选择20类随机选择选择5个人脸训练,5个测试,库中每类剩余0张人脸
        %       再剩余的类的人脸图像中随机选择100个作为冒充者的训练集
        %       再从剩余的图像中选择100个作为冒充者的测试集
        Nump = 40; Nots = 10; filename=‘ORL\‘;
        Train_number = 5; % ORL选择5个训练
        if (Train_number >= Nots)
            error(‘训练样本个数应小于每类样本总个数!‘);
        end
        
         % 什么意思 ? 
        a=‘mkdir ‘;
        s=[a database ‘\‘ num2str(Train_number) ‘Train‘];
        system(s);
        
        % 随机选择ClassNo = 20个类
        ClassNo = 16; 
        Q = rand(1Nump);
        [~ P] = sort(Q);
        Gallery_Class  = P(1:ClassNo);
        Imposter_Class = P(ClassNo+1:end);
        
        % 随机选择人脸构造训练集和测试集,冒充者的训练集和测试集
        for k=1:group % group个(.mat)文件
            % Label1:库中训练集临时索引; Label2: 库中测试集临时索引
            % Label3:冒充者的训练集临时索引;Label4:冒充者的测试集临时索引
            Label1=[];Label2=[];Label3=[];Label4=[];
            % 库中的训练和测试
            for i=1:length(Gallery_Class)
                r=rand(1Nots);
                [~p]=sort(r);
                % Gallery_Class中随机抽取
                Label1 = [Label1 p(1:Train_number)+(Gallery_Class(i)-1) * Nots]; % 对应的每个元素都加
                Label2 = [Label2 p(Train_number+1:Nots)+(Gallery_Class(i)-1) * Nots];
            end 
            
            % 冒充的训练和测试在剩余的类中随机的选择100图片作为冒充者的训练集100个作为冒充者的测试集
            Imposter_Data =[];
            for i=1:length(Imposter_Class)
                Simple_class = (Imposter_Class(i) - 1)*Nots+1 : Imposter_Class(i)*Nots; % 一类人脸的索引
                Imposter_Data = [Imposter_Data Simple_class];
            end
            Im_r=rand(1200);
            [~Im_p]=sort(Im_r);
            Label3 = Imposter_Data(Im_p(1:100));
            Label4 = Imposter_Data(Im_p(101:200));
            % 最终的标签
            trainIdx = Label1‘;
            testIdx = Label2‘;
            Imposter_train = Label3‘;
            Imposter_test = Label4‘;
            save(strcat(filenamenum2str(Train_number)‘Train\‘num2str(k)‘.mat‘)‘trainIdx‘‘testIdx‘‘Imposter_train‘‘Imposter_test‘);
            % ORL\5Train\1.mat 里面包含trainIdxtestIdx
        end    
        
    case ‘yale‘
        % Yale:随机选择7类随机选择选择5个人脸训练,5个测试库中每类剩余一张人脸
        %       再剩余的类的人脸图像中随机选择40个作为冒充者的训练集
        %       再从剩余的图像中选择40个作为冒充者的测试集
        Nump=15;Nots=11;filename=‘Yale\‘;
        Train_number = 5; % Yale选择5个训练
        if (Train_number >= Nots)
            error(‘训练样本个数应小于每类样本总个数!‘);
        end
        
         % 什么意思 ? 
        a=‘mkdir ‘;
        s

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1874  2016-07-12 21:00  Database\AR\10Class\1.mat

     文件       1863  2016-07-12 21:00  Database\AR\10Class\10.mat

     文件       1859  2016-07-12 21:00  Database\AR\10Class\2.mat

     文件       1878  2016-07-12 21:00  Database\AR\10Class\3.mat

     文件       1863  2016-07-12 21:00  Database\AR\10Class\4.mat

     文件       1860  2016-07-12 21:00  Database\AR\10Class\5.mat

     文件       1859  2016-07-12 21:00  Database\AR\10Class\6.mat

     文件       1866  2016-07-12 21:00  Database\AR\10Class\7.mat

     文件       1857  2016-07-12 21:00  Database\AR\10Class\8.mat

     文件       1884  2016-07-12 21:00  Database\AR\10Class\9.mat

     文件       1874  2016-07-12 21:00  Database\AR\10Class_original\1.mat

     文件       1864  2016-07-12 21:00  Database\AR\10Class_original\10.mat

     文件       1861  2016-07-12 21:00  Database\AR\10Class_original\11.mat

     文件       1861  2016-07-12 21:00  Database\AR\10Class_original\12.mat

     文件       1855  2016-07-12 21:00  Database\AR\10Class_original\13.mat

     文件       1862  2016-07-12 21:00  Database\AR\10Class_original\14.mat

     文件       1878  2016-07-12 21:00  Database\AR\10Class_original\15.mat

     文件       1865  2016-07-12 21:00  Database\AR\10Class_original\16.mat

     文件       1858  2016-07-12 21:00  Database\AR\10Class_original\17.mat

     文件       1863  2016-07-12 21:00  Database\AR\10Class_original\18.mat

     文件       1860  2016-07-12 21:00  Database\AR\10Class_original\19.mat

     文件       1866  2016-07-12 21:00  Database\AR\10Class_original\2.mat

     文件       1858  2016-07-12 21:00  Database\AR\10Class_original\20.mat

     文件       1866  2016-07-12 21:00  Database\AR\10Class_original\21.mat

     文件       1862  2016-07-12 21:00  Database\AR\10Class_original\22.mat

     文件       1859  2016-07-12 21:00  Database\AR\10Class_original\23.mat

     文件       1877  2016-07-12 21:00  Database\AR\10Class_original\24.mat

     文件       1868  2016-07-12 21:00  Database\AR\10Class_original\25.mat

     文件       1859  2016-07-12 21:00  Database\AR\10Class_original\26.mat

     文件       1856  2016-07-12 21:00  Database\AR\10Class_original\27.mat

............此处省略1272个文件信息

评论

共有 条评论