⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 facetrain.m

📁 基于贝叶斯理论的指纹识别算法及学习套件, 使用贝叶斯概率论实现对指纹识别,特征码提取,特征对数获取的功能
💻 M
字号:
% Author: Scott Sanner% Email:  ssanner@cs.stanford.edu% Course: CS223B, Winter% Desc:   Main training implementation of the Rowley-Beluja-Kanade face detector%% For now, just a script... make it so that a picture filename can be passed%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                 Setup%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Neural net constantsFACE_T =  0.9;FACE_F = -0.9;% Load the image oval maskMASK = buildmask;NI   = size(find(MASK),1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                              Image Loading%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Load the face images, normalize, and set training vectorsFACES = loadimages('./scaled/s', {'01' '02' '04' '07' '11' '99'}, ...        {'c' 'l' 'r' 'n' 'g'}, 'PNG', 1);FACES = augmentlr(FACES);[NORM_FACES, SHADING] = normalize(FACES, MASK);% Expand image set hereFACEV = buildimvector(NORM_FACES, MASK);FACER = buildresvector(NORM_FACES, FACE_T);% Load the non-face images, normalize, and set training vectorsNFACES = loadimages('./scaled/n', ...	{'01' '02' '03' '04' '05' '06' '07' '08' '09' '10' '11' '12' '13' '14' ...	 '15' '16' '17' '18' '19' '20' '21' '22' '23' '24' '25' '26' '27' '28' ...          '29' '30' '31' '32' '33' '34' '35' '36' '37' '38' '39' '40'}, ...       	{'x'}, 'PNG', 1);NFACES = augmentlr(NFACES);NFACES = augmentud(NFACES);[NORM_NFACES, NSHADING] = normalize(NFACES, MASK);% Expand image set hereNFACEV = buildimvector(NORM_NFACES, MASK);NFACER = buildresvector(NORM_NFACES, FACE_F);% Test imagesAmyBW  = double(imread('./scaled/AmyBW.JPG'));GradBW = double(imread('./scaled/GradBW.JPG'));HeadsBW = double(imread('./scaled/HeadsBW.JPG'));% Display images% showimages(NORM_FACES,  5, 10, 1, 50, 1);% showimages(NORM_NFACES, 5, 5, 1, 25, 2);% pause;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                          Neural Net Training%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Build a neural net and train itNET = createnn(NI, 25, 1, FACE_F, FACE_T);[NET,PERF, ERR] = trainnn(NET,[NFACEV FACEV], [NFACER FACER], .10, 500);figure(1); plot(PERF(:,1),PERF(:,2),'b-',PERF(:,1),PERF(:,3),'r-');figure(2); plot(ERR (:,1),ERR (:,2),'b-',ERR (:,1),ERR (:,3),'r-');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                          Performance Testing%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Test performance - for now just test on original images; extend to% an image pyramid and return upper left corner of all 27x18 face % bounding boxesNUM_FACES  = size(FACES,2);NUM_NFACES = size(NFACES,2);t0 = clock; ferr = 0;for i=1:NUM_FACES,  TEST = classifynn(NET, FACES{i}, MASK,1,1);  fprintf(1, '(Target, Test, Match): (%f,%f,%d)\n', FACE_T, TEST, TEST > 0);     ferr = ferr + (TEST < 0);endnferr = 0;for i=1:NUM_NFACES,  TEST = classifynn(NET, NFACES{i}, MASK,1,1);  fprintf(1, '(Target, Test, Match): (%f,%f,%d)\n', FACE_F, TEST, TEST < 0);     nferr = nferr + (TEST > 0);endfprintf(1, '\n(Face Err, Nonface Err, Total Err): (%1.3f,%1.3f,%1.3f)\n', ...	ferr./NUM_FACES, nferr./NUM_NFACES, (ferr + nferr)./(NUM_FACES + NUM_NFACES));fprintf(1, 'Time to classify %d images: %5.3f\n', NUM_FACES+NUM_NFACES, etime(clock,t0));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -