TRÍCH CHỌN ĐẶC TRƯNG KẾT CẤU MÀU CỤC BỘ CHO BÀI TOÁN NHẬN DẠNG ẢNH MÀU MẶT NGƯỜI

75 1.3K 2
TRÍCH CHỌN ĐẶC TRƯNG KẾT CẤU MÀU CỤC BỘ CHO BÀI TOÁN NHẬN DẠNG ẢNH MÀU MẶT NGƯỜI

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Trích chọn đặc trưng (feature extraction) ảnh mặt người là một bước xử lý rất quan trọng trong toàn bộ quá trình xử lý tính toán cho FR. Gần đây, đặc trưng kết cấu cục bộ (local texture feature) được xem là một đặc tả mặt (face descriptor) tốt bởi nó ít thay đổi trong điều kiện có thay đổi về biểu hiện cảm xúc trên mặt, về độ nghiêng gương mặt được chụp, về các phần khuất trên gương mặt (do xõa tóc, đội nón, đeo kính)(Choi et al., 2010), v..v.. Đặc biệt, đặc trưng mẫu nhị phân cục bộ (Local binary pattern texture feature – LBP texture feature) đã được chứng minh là một đặc tả mặt rất tốt cho FR(Ahonen et al., 2006)

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGUYỄN ĐỨC DŨNG TRÍCH CHỌN ĐẶC TRƯNG KẾT CẤU MÀU CỤC BỘ CHO BÀI TOÁN NHẬN DẠNG ẢNH MÀU MẶT NGƯỜI LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã số ngành: 60480201 TP HỒ CHÍ MINH, tháng năm 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM - NGUYỄN ĐỨC DŨNG TRÍCH CHỌN ĐẶC TRƯNG KẾT CẤU MÀU CỤC BỘ CHO BÀI TOÁN NHẬN DẠNG ẢNH MÀU MẶT NGƯỜI LUẬN VĂN THẠC SĨ Chuyên ngành: Công nghệ thông tin Mã số ngành: 60480201 CÁN BỘ HƯỚNG DẪN KHOA HỌC: TS ĐẶNG THANH DŨNG TP HỒ CHÍ MINH, tháng năm 2015 CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM Cán hướng dẫn khoa học : TS ĐẶNG THANH DŨNG Luận văn Thạc sĩ bảo vệ Trường Đại học Công nghệ TP HCM ngày … tháng … năm … Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm: TT Họ tên Chức danh Hội đồng Chủ tịch Phản biện Phản biện Ủy viên Ủy viên, Thư ký Xác nhận Chủ tịch Hội đồng đánh giá Luận sau Luận văn sửa chữa (nếu có) Chủ tịch Hội đồng đánh giá LV TRƯỜNG ĐH CÔNG NGHỆ TP HCM PHÒNG QLKH – ĐTSĐH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP HCM, ngày … tháng… năm 20 … NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Đức Dũng Giới tính: Nam Ngày, tháng, năm sinh: 07/05/1989 Nơi sinh: TP.HCM Chuyên ngành: Công nghệ thông tin MSHV: 1341860004 I- Tên đề tài: Trích chọn đặc trưng kết cấu màu cục cho toán nhận diện ảnh màu mặt người II- Nhiệm vụ nội dung: Nhiệm vụ tổng quát đề tài là: Đề xuất phương pháp trích chọn đặc trưng kết cấu màu cục cho toán nhận dạng ảnh màu mặt người, sở cải tiến phương pháp Choi et al, cho tăng độ xác nhận dạng (so với phương pháp Choi et al) III- Ngày giao nhiệm vụ: 18/08/2014 IV- Ngày hoàn thành nhiệm vụ: 15/6/2015 V- Cán hướng dẫn: TS Đặng Thanh Dũng CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) KHOA QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) i LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng Các số liệu, kết nêu Luận văn trung thực chưa công bố công trình khác Tôi xin cam đoan giúp đỡ cho việc thực Luận văn cảm ơn thông tin trích dẫn Luận văn rõ nguồn gốc Học viên thực Luận văn Nguyễn Đức Dũng ii LỜI CÁM ƠN Để hoàn thành luận văn này, tác giả xin tỏ lòng biết ơn sâu sắc đến Thầy TS Đặng Thanh Dũng, người tận tình hướng dẫn suốt trình viết luận văn Đồng thời, tác giả xin chân thành cảm ơn gia đình, bạn bè anh chị em Công ty CP Giải pháp CNTT Tân Cảng giúp đỡ tạo điều kiện thuận lợi để tác giả hoàn thành luận văn thạc sỹ Tác giả xin chân thành cảm ơn quý Thầy, Cô khoa Công nghệ thông tin, trường Đại học Công Nghệ TP Hồ Chí Minh tận tình truyền đạt kiến thức năm tháng học tập Với vốn kiến thức tiếp thu trình học không tảng cho trình nghiên cứu mà hành trang quí báu để tác giả bước vào đời cách vững tự tin Cuối cùng, tác giả xin kính chúc quý Thầy, Cô dồi sức khỏe thành công nghiệp, đạt nhiều thành công tốt đẹp công việc sống Nguyễn Đức Dũng iii TÓM TẮT Trong cáo cáo “Color Local Texture Features for Color Face Recognition” Choi et al năm 2012, nhóm tác giả Choi et al đề xuất phương pháp kết hợp đặc trưng kết cấu cục LBP trích từ kênh màu khác ảnh màu mặt người (được biểu diễn không gian màu, chẳng hạn RQCr) để làm đặc tả ảnh màu mặt người (color face descriptor) Đặc tả nhóm tác giả gọi đặc trưng kết cấu màu cục (color local texture feature – CLTF) Kết thí nghiệm tiến hành báo cáo chứng tỏ CLTF giúp tăng độ xác nhận dạng Tuy nhiên, nhóm tác giả phần kết luận số hạn chế phương pháp xây dựng CLTF nêu công trình Một hạn chế là, xây dựng CLTF, đặc trưng kết cấu cục (local texture feature, LTF) thành phần trích chọn từ không gian màu gồm thành phần (ví dụ RQCr) Xử lý theo cách không tận dụng điểm mạnh không gian màu khác Mỗi không gian màuđặc điểm riêng tận dụng để làm tăng độ xác nhận dạng Trong nghiên cứu này, tác giả xây dựng đặc trưng kết cấu màu cục (CLTF), thành phần đặc trưng kết cấu cục chọn lọc từ không gian màu khác cách phù hợp, cho chứa nhiều thông tin phân loại (discriminant information) Tác giả xây dựng không gian màu cách kết hợp thành phần màu từ không gian màu cố định sau thử nghiệm độ xác không gian màu kết hợp liệu hình ảnh Ở tác giả sử dụng liệu Color Feret so sánh kết thực nghiệm phương pháp Choi et al phương pháp cải tiến nhằm nâng cao hiệu suất nhận diện khuôn mặt màu cách tốt iv MỤC LỤC CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu 1.1.1 Đặt vấn đề 1.1.2 Tính cấp thiết đề tài 1.2 Mục tiêu đề tài: 1.3 Nội dung nghiên cứu: CHƯƠNG 2: CÁC KIẾN THỨC NỀN TẢNG VỀ NHẬN DIỆN ẢNH MẶT NGƯỜI 2.1 Các không gian màu 2.1.1 Không gian màu RGB 2.1.2 Không gian màu CMYK 2.1.3 Không gian màu HSV 2.1.4 Các không gian màu CIE 2.2 Bài toán nhận dạng ảnh mặt người 2.3 Một số độ đo khoảng cách 11 2.3.1 Các độ đo khoảng cách đối tượng 11 2.3.2 Độ đo khoảng cách dãy 13 2.3.3 Độ đo theo lý thuyết thông tin 16 CHƯƠNG 3: KỸ THUẬT TRÍCH CHỌN KẾT CẤU ĐẶC TRƯNG MÀU CỤC BỘ 20 3.1 Mẫu nhị phân cục (Local Binary Pattern – LBP) 20 3.1.1 Thuật toán LBP 20 3.1.2 Thuật toán Opponent color LBP (OCLBP) 21 3.1.3 Mẫu nhị phân đồng dạng – Uniform Pattern 21 3.2 Các bước xử lý phương pháp trích trọn đặc trưng 22 3.2.1 Mô hình trích chọn đặc trưng Choi et al 22 3.2.2 Trích chọn đặc trưng Gabor Wavelet màu cục (CLGW) 24 3.2.3 Trích chọn đặc trưng kết cấu màu cục 27 3.2.5 Kết hợp: 31 CHƯƠNG 4: MÔ HÌNH ĐỀ XUẤT 33 4.1 Mô hình đề xuất 33 v 4.2 Các không gian màu lựa chọn 35 4.2.1 Không gian màu YIQ 35 4.2.2 Không gian màu ZRG 36 4.2.3 Không gian màu RCrQ 36 4.2.4 Kết hợp không gian màu 36 4.3 Cơ sở liệu ảnh màu Color Feret 37 4.3.1 Giới thiệu 37 4.3.2 Quy tắc đặt tên hình ảnh 38 4.3.2 Ground Truth File 38 4.4 Cơ sở lý thuyết PCA 39 4.4.1 Giới thiệu 39 4.1.2 Thuật toán PCA 41 CHƯƠNG 5: THỰC NGHIỆM VÀ KẾT LUẬN 45 5.1 Mô tả thí nghiệm 45 5.3 Kết luận 47 5.4 Hướng phát triển 48 Tài liệu tham khảo: 47 vi Danh mục từ viết tắt STT Từ viết tắt Từ gốc Nghĩa tiếng việt FR Face Recognitions Nhận diện khuôn mặt LBP Local Binary Pattern Mẫu nhị phân cục CLTF Color Local Texture Feature Đặc trưng kết cấu màu cục CLBP Color Local Binary Pattern Mẫu nhị phân cục màu CLGW Color Local Gabor Wavelet Gabor Wavelet cục màu LTF Local Texture Feature Đặc trưng kết cấu cục HCI Human–computer interaction Tương tác người - máy PIN ATM Automated Teller Machine Máy rút tiền tự động 10 CIE Commission Internationale de l’Eclairage Ủy ban quốc tế chiếu sáng 11 PCA Principal component Analysis Phương pháp phân tích thành phần 12 LDA Linear Discriminant Analysis phương pháp phân tích khác biệt tuyến tính 13 EBGM Elastic Bunch Graph Matching Phương pháp đối sánh đồ thị co giãn 14 OCLBP Opponent Color Local Binary Pattern Mẫu nhị phân màu đối lập cục 15 NTSC National Teltevision System Committee Ủy ban quốc gia hệ thống truyền hình Personal identification number 16 NIST National Institute of Standards and Technology Mã số định danh cá nhân Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ 48 thuật toánmặt hạn chế sử dụng cấu hình thành phần màu sắc cố định YCbCr ZRG (Choi et al., 2012) Nhằm cải tiến hạn chế trên, qua trình thực nghiệm, báo cáo tác giả đóng góp phần nhỏ vào việc nâng cao hiệu suất nhận dạng khuôn mặt việc kết hợp không gian màu tìm kiếm vài không gian màu cho kết nhận diện khuôn mặt tốt với độ xác cao, cụ thể RIQ, RQCb Có thể thấy không gian màu khác cho độ xác nhận diện khuôn mặt khác Tuy nhiên, báo cáo số mặt hạn chế như:(1) Phạm vi toán khai thác phần trích chọn đặc trưng Choi et al phương pháp sử dụng Mẫu đặc trưng màu cục (Color LBP) nên hiệu suất toán nhận dạng khuôn mặt chưa thật xác (2) Hạn chế mặt thời gian không cho phép tác giả thực thuật toán nhiều sở liệu nên kết chưa xác mang tính chất tương đối Trong tương lai, để cải tiến hiệu suất nhận dạng khuôn mặt (độ xác tăng ~ 98%), tác giả kết hợp với việc trích xuất kết cấu màu cục bộ, chẳng hạn kết hợp với phương pháp Color Gabor Wavelet nhằm tăng tính phân biệt cho đặc trưng kết cấu cục sử dụng trọng số cho kênh màu, từ xác định không gian màu sắc tối ưu cách tự động cho trường hợp cụ thể nhận diện khuôn mặt (ví dụ: sử dụng không gian màu RQCr cho ảnh khuôn mặt độ sáng thấp, sử dụng không gian màu XYZ ảnh khuôn mặt độ phân giải thấp,…) 5.4 Hướng phát triển Hiện nhiều thách thức đề tài: + Vấn đề hướng (pose variations): Các kết với ảnh có hướng thay đổi (>45 độ, diện) khiêm tốn thiếu xác Nhận dạng hình ảnh 3D có lẽ hướng giải tốt vấn đề + Vấn đề ảnh có độ phân giải thấp (low resolution): Ảnh thu từ camera giám sát (surveillance camera) thường có kích thước chất lượng thấp, kết nhận diện khuôn mặt với độ phân giải thấp thiếu xác + Làm việc với liệu video (video based face recognition): Với phát triển phương tiện multimedia, thông tin mặt người liệu video vô nhiều, 49 nhiên hầu hết phương pháp nhận dạng làm việc với ảnh tĩnh trích xuất từ liệu video, chưa có phương pháp tốt tận dụng hết ưu liệu video, phương pháp nhận dạng thời gian thực hướng mà đề tài theo đuổi + Vấn đề với hệ thống cực lớn (very large scale systems): sở liệu (CSDL) ảnh mặt người thực đề tài nhỏ (vài chục nghìn ảnh mặt), nhiên thực tế CSDL lớn, ví dụ CSDL ảnh mặt cảnh sát nước chứa từ hàng triệu tới tỉ ảnh, thời gian xử lý ảnh CSDL nhiều thời gian công sức + Vấn đề tuổi tác (aging condition): việc nhận dạng ảnh mặt thay đổi theo thời gian thực vấn đề lớn khả nhận dạng người + Vấn đề thiếu sáng (illumination): thách thức lớn nhận dạng mặt, chưa có phương pháp tốt cho ảnh chụp điều kiện trời 50 TÀI LIỆU THAM KHẢO  Ahonen, T., Hadid, A., Pietikainen, M., 2006 Face Description with Local Binary Patterns: Application to Face Recognition IEEE Trans Pattern Anal Mach Intell 28, 2037–2041 doi:10.1109/TPAMI.2006.244  Bowyer, K.W., 2004 Face recognition technology: security versus privacy IEEE Technol Soc Mag 23, 9–19 doi:10.1109/MTAS.2004.1273467  Chaudhuri, B.B., Rosenfeld, A., 1999 A modified Hausdorff distance between fuzzy sets Inf Sci 118, 159–171 doi:10.1016/S0020-0255(99)00037-7  Choi, J.Y., De Neve, W., Ro, Y.M., Plataniotis, K.N., 2010 Automatic Face Annotation in Personal Photo Collections Using Context-Based Unsupervised Clustering and Face Information Fusion IEEE Trans Circuits Syst Video Technol 20, 1292–1309 doi:10.1109/TCSVT.2010.2058470  Choi, J.Y., Ro, Y.M., Plataniotis, K.N., 2012 Color Local Texture Features for Color Face Recognition Trans Img Proc 21, 1366–1380 doi:10.1109/TIP.2011.2168413  Choi, J.Y., Ro, Y.M., Plataniotis, K.N., 2011 Boosting Color Feature Selection for Color Face Recognition IEEE Trans Image Process 20, 1425–1434 doi:10.1109/TIP.2010.2093906  Choi, J.Y., Ro, Y.M., Plataniotis, K.N., 2009 Color Face Recognition for Degraded Face Images Trans Sys Man Cyber Part B 39, 1217–1230 doi:10.1109/TSMCB.2009.2014245  Cilibrasi, R.L., Vitanyi, P.M.B., 2007 The Google Similarity Distance IEEE Trans Knowl Data Eng 19, 370–383 doi:10.1109/TKDE.2007.48  Cilibrasi, R., Vitanyi, P.M.B., 2005 Clustering by compression IEEE Trans Inf Theory 51, 1523–1545 doi:10.1109/TIT.2005.844059  CMYK color model, 2015 Wikipedia Free Encycl  Gibbs, A.L., Francis, Su, E., n.d On choosing and bounding probability metrics Intern Stat Rev 2002 419–435 51  HSL and HSV, 2015 Wikipedia Free Encycl  International Commission on Illumination, 2015 Wikipedia Free Encycl  Jain, A., Healey, G., 1998 A Multiscale Representation Including Opponent Color Features for Texture Recognition Trans Img Proc 7, 124–128 doi:10.1109/83.650858  Jain, A.K., Ross, A., Prabhakar, S., 2004 An introduction to biometric recognition IEEE Trans Circuits Syst Video Technol 14, 4–20 doi:10.1109/TCSVT.2003.818349  Jain, A., Nandakumar, K., Ross, A., 2005 Score Normalization in Multimodal Biometric Systems Pattern Recogn 38, 2270–2285 doi:10.1016/j.patcog.2005.01.012  Kittler, J., Hatef, M., Duin, R.P.W., Matas, J., 1998 On combining classifiers IEEE Trans Pattern Anal Mach Intell 20, 226–239 doi:10.1109/34.667881  Lin, D., 1998 Automatic Retrieval and Clustering of Similar Words, in: Proceedings of the 17th International Conference on Computational Linguistics Volume 2, COLING ’98 Association for Computational Linguistics, Stroudsburg, PA, USA, pp 768–774 doi:10.3115/980432.980696  Liu, C., Wechsler, H., 2002 Gabor Feature Based Classification Using the Enhanced Fisher Linear Discriminant Model for Face Recognition IEEE Trans Image Process 11, 467–476  Mahalanobis distance, 2015 Wikipedia Free Encycl  Ojala, T., Pietikainen, M., Maenpaa, T., 2002 Multiresolution gray-scale and rotation invariant texture classification with local binary patterns IEEE Trans Pattern Anal Mach Intell 24, 971–987 doi:10.1109/TPAMI.2002.1017623  Pę kalska, E., Duin, R.P.W., 2005 The Dissimilarity Representation for Pattern Recognition: Foundations and Applications World Scientific  Phillips, P.J., Moon, H., Rizvi, S.A., Rauss, P.J., 2000 The FERET Evaluation Methodology for Face-Recognition Algorithms IEEE Trans Pattern Anal Mach Intell 22, 1090–1104 doi:10.1109/34.879790  RGB color model, 2015 Wikipedia Free Encycl 52  Stokman, H., Gevers, T., 2007 Selection and Fusion of Color Models for Image Feature Detection IEEE Trans Pattern Anal Mach Intell 29, 371–381 doi:10.1109/TPAMI.2007.58  Tan, X., Triggs, B., 2007 Enhanced Local Texture Feature Sets for Face Recognition Under Difficult Lighting Conditions, in: Proceedings of the 3rd International Conference on Analysis and Modeling of Faces and Gestures, AMFG’07 Springer-Verlag, Berlin, Heidelberg, pp 168–182  Xie, S., Shan, S., Chen, X., Member, S., Chen, J., 2010 Fusing Local Patterns of Gabor Magnitude and Phase for Face Recognition IEEE Trans Image Process 1349– 1361  Yang, J., Liu, C., Zhang, L., 2010 Color Space Normalization: Enhancing the Discriminating Power of Color Spaces for Face Recognition Pattern Recogn 43, 1454– 1466 doi:10.1016/j.patcog.2009.11.014  Zou, J., Ji, Q., Nagy, G., 2007 A Comparative Study of Local Matching Approach for Face Recognition Trans Img Proc 16, 2617–2628 doi:10.1109/TIP.2007.904421 PHỤ LỤC A Code chương trình thực nghiệm Matlab : Tiền xử lý: Input: Một hình ảnh liệu Color Feret (fullFileName) Output: Hình ảnh xoay dựa vào vị trí mắt cắt phần gương mặt resize 120x120 pixel function result = Alignment(fullFileName) % Read input image I = imread(fullFileName); % Read detail file A = string(fullFileName); cd ('D:\Master\DataSet\Info'); % Thu muc chua ground_truth_file fid = fopen(strcat(A(1:end-4),'.txt'),'r'); % file txt data = transpose(fread(fid,'*char')); % Find coordinates of eyes data(strfind(data, '=')) = []; Key1 = 'left_eye_coordinates'; Key2 = 'right_eye_coordinates'; Index1 = strfind(data, Key1); Index2 = strfind(data, Key2); PosLeft = sscanf(data(Index1(1) + length(Key1):end), '%g', 2); PosRight = sscanf(data(Index2(1) + length(Key2):end), '%g', 2); %Position of Eye pos = [ PosRight(1) PosLeft(1) %// X2 X1 PosLeft(2) PosRight(2)]; %// Y1 Y2 %// The angle equals the arctangent of dy/dx angle = atan2(diff(pos(2,:)), diff(pos(1,:))) * 180 / pi; %// Rotate in the opposite direction img = imrotate(I, -angle); % Detect faces using toolbox of Matlab (Viola John) faceDetector = vision.CascadeObjectDetector('FrontalFaceLBP'); bboxface = step(faceDetector, img); subImage = imcrop(img, bboxface);% Crop face box out of image "img" %figure,imtool(subImage); subImageresize = imresize(subImage,[120 120]); % resize cd ('D:\Master\DataSet\Gallery'); % Noi chua du dieu Gallery %figure,imshow(subImageresize); imwrite(subImageresize, strcat(A(1:end-4),'.png')); % xuat file png end Chuyển không gian màu / Chia nhỏ hình ảnh: a Chuyển không gian màu: Input: Hình ảnh mặt người xử lý phần Output: Một ma trận image chứa hình ảnh convert qua 56 không gian màu function Image = Conversation(rgbImage) % Read input image % rgbImage=imread(rgbImage); R = rgbImage(:,:,1); G = rgbImage(:,:,2); B = rgbImage(:,:,3); X = 0.607*R + 0.174*G + 0.201*B; Z = 0.000*R + 0.066*G + 1.117*B; Y = 0.2990*R + 0.5870*G + 0.1140*B; I = 0.5957*R - 0.2744*G - 0.3213*B; Q = 0.2115*R - 0.5226*G + 0.3111*B; b = -0.168935*R - 0.331665*G + 0.50059*B; % Cb r = 0.499813*R - 0.418531*G - 0.081282*B; % Cr List = ['R','G','B','Y','I','Q','Z','R','G','Y','b','r']; CombList = combnk(List,3); for i=1:56 Image{i} = cat(3,eval(CombList(i,1)),eval(CombList(i,2)),eval(CombList(i,3))); end end b Chia nhỏ hình ảnh: Input: Hình ảnh đầu vào Output: Ma trận ca chứa 64 phần nhỏ phần 15x15 pixel function ca = Partition(rgbImage) %rgbImage=imread(rgbImage); [rows, columns, numberOfColorBands] = size(rgbImage); blockSizeR = 15; % Rows in block blockSizeC = 15; % Columns in block % Figure out the size of each block in rows % Most will be blockSizeR but there may be a remainder amount of less than that wholeBlockRows = floor(rows / blockSizeR); blockVectorR = [blockSizeR * ones(1, wholeBlockRows)]; % Figure out the size of each block in columns wholeBlockCols = floor(columns / blockSizeC); blockVectorC = [blockSizeC * ones(1, wholeBlockCols) ]; % Create the cell array, ca % Each cell (except for the remainder cells at the end of the image) % in the array contains a blockSizeR by blockSizeC by color array % This line is where the image is actually divided up into blocks ca = mat2cell(rgbImage, blockVectorR, blockVectorC, numberOfColorBands); % Now display all the blocks plotIndex = 1; numPlotsR = size(ca, 1); numPlotsC = size(ca, 2); for r = : numPlotsR for c = : numPlotsC rgbBlock = ca{r,c}; plotIndex = plotIndex + 1; end end : Trích xuất đặc trưng a LBP Unichrome Input: Hình grayscale, bán kính R, số lượng neighbor Output: Vector LBP Unichrome đại diện cho ảnh function LBP_vector = LBP_U(X, radius, neighbors) X = double(X); % get origin of a block origy = radius+1; origx = radius+1; % blocks to process dy = size(X,1)-(2*radius+1); dx = size(X,2)-(2*radius+1); % create result matrix L = zeros(dy+1,dx+1); % get center matrix C = X(origy:origy+dy,origx:origx+dx); % iterate through circle for n=1:neighbors % sample points y = radius * -sin(2*pi*((n-1)/neighbors)) + origy; x = radius * cos(2*pi*((n-1)/neighbors)) + origx; % relative indices fx = floor(x); fy = floor(y); cx = ceil(x); cy = ceil(y); % fractional parts tx = x - fx; ty = y - fy; % interpolation weights w1 = (1 - tx) * (1 - ty); w2 = tx * (1 - ty); w3 = (1 - tx) * ty ; w4 = tx * ty ; % get interpolated image N = w1*X(fy:fy+dy,fx:fx+dx) + w2*X(fy:fy+dy,cx:cx+dx) + w3*X(cy:cy+dy,fx:fx+dx) + w4*X(cy:cy+dy,cx:cx+dx); % calculate binary value for current neighbor, update result L = L + (N>=C)*(2^(n-1)); [xdim, ydim] = size(L); LBP_vector(1,:) = reshape(L,xdim*ydim,1); end end b LBP opponent Input: Hình grayscale thứ 1, Hình grayscale thứ 2, bán kính R, số lượng neighbors Output: Vector LBP Opponent function LBP_O_vector = LBP_O(X, Y, radius, neighbors) X = double(X); Y = double(Y); origy = radius+1; origx = radius+1; % blocks to process dy = size(X,1)-(2*radius+1); dx = size(X,2)-(2*radius+1); % create result matrix L = zeros(dy+1,dx+1); % get center matrix of image X C = X(origy:origy+dy,origx:origx+dx); c_x = size(C,1); c_y = size(C,2); %LBP_O_vector = zeros(1,0); % iterate through circle for n=1:neighbors % sample points y = radius * -sin(2*pi*((n-1)/neighbors)) + origy; x = radius * cos(2*pi*((n-1)/neighbors)) + origx; % relative indices fx = floor(x); fy = floor(y); cx = ceil(x); cy = ceil(y); % fractional parts tx = x - fx; ty = y - fy; % interpolation weights w1 = (1 - tx) * (1 - ty); w2 = tx * (1 - ty); w3 = (1 - tx) * ty ; w4 = tx * ty ; % get interpolated image of Image Y N = w1*Y(fy:fy+dy,fx:fx+dx) + w2*Y(fy:fy+dy,cx:cx+dx) + w3*Y(cy:cy+dy,fx:fx+dx) + w4*X(cy:cy+dy,cx:cx+dx); % calculate binary value for current neighbor, update result by % compare between N of image Y and C of mage X L = L + (N>=C)*(2^(n-1)); LBP_O_vector(1,:) = reshape(L,c_x*c_y,1); end %end c Tạo folder để chứa liệu vector đặc trưng List = ['Y','I','Q','Z','R','G','b','r']; CombList = nchoosek(List,3); for k=1:56 folder = strcat(CombList(k,1),CombList(k,2),CombList(k,3)); folder1 = strcat('vectordata_',folder); mkdir('D:\',folder1); end d Thuật toán PCA Input: Vector Output: Vector giảm số chiều chứa nhiều thông tin phân biệt function SC = PCA( X ) m = mean(X); st = std(X, 1); sz = size(X); % sz(1): number of observations % sz(2): number of features % normed PCA Xhat = zeros(sz); for i=1:sz(2) Xhat(:,i) = (X(:, i) - m(i))/(sqrt(sz(1))*st(i)); end display('Normed data:'); display(Xhat); % correlation matrix V = Xhat' * Xhat; display('Correlation between features (columns) of normed data:'); display(V); %eigenvalues [eivec, eival] = eig(V); % display the eigenvalues accumulation and % % sz(2) == number of eigenvalues of V eigenInfo = zeros(sz(2), 3); sum_eival = sum(diag(eival)); acc_eival = 0; for i=sz(2):-1:1 acc_eival = acc_eival + eival(i, i); % eigenvalues, accumulate, % eigenInfo(sz(2)-i+1, : ) = [eival(i, i), acc_eival, acc_eival/sum_eival]; end display('Eigenvalues Accumulate Acc '); display(eigenInfo); %eigenvectors eivec2 = zeros(size(eivec)); for i=1:size(eivec, 2) eivec2(:, i) = eivec(:, size(eivec, 2) - i + 1); end eivec = eivec2; display('Full eigenvectors:'); display(eivec); dim = 3; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %The new observations F = Xhat*eivec(:, 1:dim); % Contribution of observations C = F.^2; for i=1:size(C, 2) C(:, i) = C(:, i)/eival(sz(2) - i + 1, sz(2) - i + 1); end % Squared cosine of observations SC = F.^2; for i=1:size(SC, 1) SC(i, : ) = SC(i, : )/sum(SC(i,: ), 2); end end e Kết hợp trích xuất đặc trưng cho hình ảnh RGB Input: Hình đầu vào Gallery Color Feret Output: file mat chứa vector đặc trưng hình theo không gian màu %% Load tung hinh folder Gallery filename = sprintf('D:/study/matlab/colorferet/Gallery'); dd = dir(strcat((filename),'/*.png')); fileNames = {dd.name}; data = cell(numel(fileNames),2); data(:,1) = regexprep(fileNames, '.png',''); %List = ['Y','I','Q','Z','R','G','b','r']; load('d:\matlab.mat') for ii = 4800:5200 cd(filename) rgbImage = imread(fileNames{ii}); R = rgbImage(:,:,1); G = rgbImage(:,:,2); B = rgbImage(:,:,3); X = 0.607*R + 0.174*G + 0.201*B; Z = 0.000*R + 0.066*G + 1.117*B; Y = 0.2990*R + 0.5870*G + 0.1140*B; I = 0.5957*R - 0.2744*G - 0.3213*B; Q = 0.2115*R - 0.5226*G + 0.3111*B; b = -0.168935*R - 0.331665*G + 0.50059*B; r = 0.499813*R - 0.418531*G - 0.081282*B; %% Moi hinh anh chia 56 khong gian mau for k=1:56 Image_cat = cat(3,eval(CombList(k,1)),eval(CombList(k,2)),eval(CombList(k,3))); for n = 1:3 PartitionList{1,n} = Partition(Image_cat(:,:,n)); end C1=PartitionList{1,1}; C2=PartitionList{1,2}; C3=PartitionList{1,3}; CLBP_feature=zeros(0,0); for i = 1:8 for j = 1:8 CS1 = [(LBP_U(C1{i,j},1,8)), (LBP_O(C1{i,j},C2{i,j},1,8)), (LBP_O(C1{i,j},C3{i,j},1,8))]; CS2 = [(LBP_U(C2{i,j},1,8)), (LBP_O(C2{i,j},C1{i,j},1,8)), (LBP_O(C2{i,j},C3{i,j},1,8))]; CS3 = [(LBP_U(C3{i,j},1,8)), (LBP_O(C3{i,j},C1{i,j},1,8)), (LBP_O(C3{i,j},C2{i,j},1,8))]; CStemp = [CS1',CS2',CS3']; CLBP_feature=[CLBP_feature,CStemp']; end end CLBP_feature = CLBP_feature'; A = PCA(CLBP_feature); %% tao file mat chua vector dac trung vao tung folder folder = strcat(CombList(k,1),CombList(k,2),CombList(k,3)); file_folder = strcat('d:\New folder\vectordata_',folder); cd (file_folder) Name = strcat(fileNames{ii}(1:end-4),'.mat'); save (Name,'A'); end end f Khoảng cách Mahalanobis Input: vector A, B Output: Khoảng cách Mahalanobis vector A, B function d = MahalanobisDistance (A,B) [n1,k1]=size(A); [n2,k2]=size(B); n = n1 + n2; if(k1 ~= k2) disp('number of column of A and B must be the same') else xDiff = mean(A) - mean (B); cA = Covariance(A); cB = Covariance(B); pC = n1/n*cA+n2/n*cB; d = sqrt(xDiff/(pC)*xDiff'); end function C = Covariance(X) [n,k]=size(X); Xc = X-repmat(mean(X),n,1); C = Xc'*Xc/n; end : Xác định độ xác cách tìm khoảng cách Mahalanobis hình tập Probe với hình tập Gallery filename = sprintf('D:/study/matlab/colorferet/'); filenameProbe = sprintf('D:/study/matlab/colorferet/Probes/'); filenameGallery = sprintf('D:/study/matlab/colorferet/Gallery/'); filenamevector = sprintf('D:/New folder/vectordata_YQr'); correct=0; %So Hinh nhan dien chinh xac error=0; %So Hinh nhan dien sai =1; for i=1:1208 %So luong subject cac hinh filename1 = strcat(filenameProbe,num2str(i)); dd = dir(strcat((filename1),'/*.png')); fileNames = {dd.name}; data = cell(numel(fileNames),2); data(:,1) = regexprep(fileNames, '.png',''); for ii = 1:numel(fileNames) %Load file mat tu folder cd (filenamevector) load (strcat(fileNames{ii}(1:end-4),'.mat')); B=A; %Gan B=A %cd (strcat(filename,'Temp')); movefile(strcat(fileNames{ii}(1:end4),'.mat'),'D:\study\matlab\colorferet\Temp'); %Di chuyen file mat vao thu muc Temp tranh tinh trang correct=100% ddd = dir(strcat((filenamevector),'/*.mat')); fileNamesvector = {ddd.name}; datavector = cell(numel(fileNamesvector),2); datavector(:,1) = regexprep(fileNamesvector, '.mat',''); %cd(filenamevector) for iii = 1:numel(fileNamesvector) load(fileNamesvector{iii}); %Load tung file mat Gallery C = MahalanobisDistance(A,B); %Gan C=khoang cach Maha if (C

Ngày đăng: 02/03/2017, 13:04

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan