Phương pháp phân tích thành phần chính (PCA Principal Component Analysis) là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiệu quả tốt. Nhận dạng khuôn mặt dùng PCA kết hợp với mạng noron là phương pháp mang lại hiệu quả nhận dạng cao bởi nó phát huy được ưu điểm của PCA và mạng nơron
BÀI TẬP MƠN HỌC PHÂN TÍCH ẢNH VÀ THỊ GIÁC MÁY TÍNH NHẬN DẠNG MẶT NGƯỜI BẰNG MẠNG NORON VÀ PHƯƠNG PHÁP PCA MỤC LỤC MỤC LỤC MỞ ĐẦU HỆ THỐNG NHẬN DẠNG KHUÔN MẶT PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG PCA MẠNG NORON NHÂN TẠO 3.1 MẠNG NORON TRUYỀN THẲNG 3.2 THUẬT TOÁN LAN TRUYỀN NGƯỢC SAI SỐ 10 NHẬN DẠNG KHUÔN MẶT 12 CHƯƠNG TRÌNH TRÊN MATLAB 14 KẾT LUẬN 19 MỞ ĐẦU Nhận dạng khuôn mặt người công nghệ ứng dụng rộng rãi đời sống ngày người hệ thống giám sát, quản lý vào ra, tìm kiếm thơng tin người tiếng,…Có nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất nhiên dù hay nhiều phương pháp vấp phải thử thách Phương pháp phân tích thành phần (PCA - Principal Component Analysis) phương pháp trích rút đặc trưng nhằm giảm số chiều ảnh đơn giản mang lại hiệu tốt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng noron phương pháp mang lại hiệu nhận dạng cao phát huy ưu điểm PCA mạng nơron Hệ thống hoạt động ổn định có tính thích nghi cao liệu đầu vào thay đổi nhiều độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng tham số môi trường HỆ THỐNG NHẬN DẠNG KHN MẶT Các bước nhận dạng khn mặt hệ thống Hình 1: Hệ thống nhận dạng khuôn mặt Ảnh cần nhận dạng: Ảnh mặt người cần nhận dạng Tiền xử lý: Đây q trình xử lý ảnh khn mặt Mục đích q trình nhằm nâng cao chất lượng ảnh, chuẩn hóa liệu, kích thước ảnh Trích chọn đặc trưng: Là kỹ thuật sử dụng thuật tốn để lấy thơng tin mang tính đặc trưng đối tượng cần nhận dạng Trong nội dung trình bày phương pháp phân tích thành phần PCA Đây phương pháp có nhiều ưu điểm, phương pháp giúp giảm chiều liệu; thay giữ lại trục tọa độ không gian cũ, PCA xây dựng lên khơng gian chiều hơn, có khả biểu diễn liệu tốt tương đương không gian cũ Bộ phân loại: Các đặc trưng đối tượng sau trích chọn đưa vào phân loại (nhận dạng) để so sánh với liệu Cơ sở liệu khn mặt huấn luyện, từ nhận dạng đối tượng Có nhiều phương pháp khác cho nhận dạng khn mặt Trong nội dung trình bày phương pháp nhận dạng mạng noron PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG PCA Ý tưởng phương pháp phân tích thành phần (PCA– Principal Component Analysis) tìm vector biểu diễn phân bố đặc trưng ảnh tồn khơng gian ảnh Những vector hình thành nên khơng gian ảnh gọi “không gian khuôn mặt” (eigenface) Bắt đầu Chuyển ảnh thành vector cột Đọc ảnh từ tập huấn luyện Tính trị riêng vector riêng ma trận hiệp phương sai Chọn số đặc trưng để tạo không gian khuôn mặt (Eigenface) Tính ma trận hiệp phương sai Tính vector trung bình Tính sai lệch vector vector trung bình Biểu diễn ảnh tập huấn luyện khơng gian khn mặt (eigenface) Kết thúc Hình 2: Lưu đồ thuật tốn cho trích chọn đặc trưng PCA Đầu tiên, ảnh tập huấn luyện phải kích thước, khn mặt ảnh phải diện - Giả sử có tập ảnh mẫu S gồm m ảnh Mỗi ảnh có kích thước r x c Mỗi ảnh chuyển thành vector cột Γi có n= r x c chiều S = [ Γ1 , Γ , , Γ m ] - Tính vector trung bình: ψ= m ∑ Γi m i =1 - Tính sai lệch ảnh đầu vào so với ảnh trung bình Φ= Γi − Ψ i - Tính ma trận hiệp phương sai C = A.AT với A = [Φ1 , Φ , , Φ m ] - Tính trị riêng vector riêng ma trận hiệp phương sai Do ma trận C có kích thước lớn (n x n) nên để tìm vector riêng trị riêng C ta tìm vector riêng trị riêng ma trận L: L = AT A Ma trận L có kích thước: m x m Giả sử vL,uL vector riêng trị riêng ma trận L , ma trận vector riêng vC ma trận C là: vC = A.vL - Ma trận vector riêng vC có kích thước nxn Ta bỏ k vector riêng ứng với trị riêng nhỏ giữ lại n-k vector riêng ứng với trị riêng lớn Khi ma trận vC có kích thước n x (n-k) - Tập hợp vector cột ma trận vC tạo eigenface (Không gian khuôn mặt) - Chiếu vector ảnh tập huấn luyện lên không gian ta vector đặc tính tương ứng Các vector có kích thước nhỏ nhiều so với kích thước ảnh, mang đặc trưng ảnh - Ma trận vector đặc tính: P = vCT A Mỗi cột ma trận P vector đặc tính tương ứng với ảnh tập mẫu Mỗi cột ma trận P vector đầu vào mạng noron để huấn luyện mạng MẠNG NORON NHÂN TẠO Nơron nhân tạo mạng nơron nhân tạo hình thành sở kiến thức cấu trúc chức nơron thần kinh hệ thống thần kinh sinh học Mạng nơron nhân tạo giải nhiều toán thực tế nhận dạng, phân loại mẫu, xấp xỉ hàm phi tuyến…cũng toán xử lý thơng tin, hình thành tín hiệu điều khiển… mà nơron đơn giải Thông thường, mạng nơron bao gồm nhiều lớp, lớp lại có nhiều nơron liên kết theo dạng khác Mạng noron sử dụng để nhận dạng khuôn mặt toán mạng noron truyền thẳng nhiều lớp, luyện mạng với thuật toán lan truyền ngược giảm độ dốc với momentum quy tắc học thích nghi 3.1 Mạng noron truyền thẳng Mạng nơron truyền thẳng (liên kết thẳng) bao gồm nhiều lớp nơron liên kết nối tiếp với nhau, đầu lớp nối với đầu vào lớp Tín hiệu truyền thẳng từ đầu vào đến đầu mạng Một mạng nơron truyền thẳng thường có ba lớp chính: - Lớp đầu vào (input layer), đầu vào lớp liên kết với vectơ đầu vào, số lượng nơron lớp với số lượng tín hiệu vectơ đầu vào; - Lớp ẩn (hidden layer), lớp trung gian lớp vào lớp ra, số lượng lớp ẩn nhiều Lớp ẩn đóng vai trò chủ yếu việc xử lý biến đổi tín hiệu đầu vào Số lớp ẩn số lượng nơron lớp ẩn, hàm chuyển đổi nơron lớp ẩn phụ thuộc vào tính chất mức độ phức tạp nhiệm vụ mà mạng nơron cần phải giải - Lớp (output layer), thường có hàm chuyển đổi hàm tuyến tính, số lượng nơron lớp với kích thước vectơ đầu Hình 3: Cấu trúc mạng noron truyền thẳng lớp Hàm kích hoạt sử dụng cho lớp hệ thống nhận dạng khuôn mặt hàm logsig Hình 4: Hàm logsig Mạng noron truyền thẳng nhiều lớp sử dụng thuật toán lan truyền ngược sai số dạng huấn luyện có giám sát Hình 5: Mơ hình học có giám sát 3.2 Thuật tốn lan truyền ngược sai số Thuật toán yêu cầu cung cấp vector đầu vào vector mục tiêu (vector đầu mong muốn) Khi tiến hành luyện mạng, vector đầu a mạng so sánh với vector mục tiêu t Trong trường hợp có khác vector, trọng số bias mạng điều chỉnh để giảm thiểu khác Khi bắt đầu luyện mạng, trọng số bias mạng cài đặt ngẫu nhiên Hình 6: Mơ hình mạng noron truyền thẳng lớp Đối với mạng nhiều lớp lan truyền thẳng, đầu lớp trước đầu vào lớp Phương trình biểu diễn mối quan hệ nối tiếp có dạng: a m += f m +1 ( W m +1a m + b m +1 ) = 0,1, ,M - m số lớp mạng Các nơron lớp nhận tín hiệu đầu vào đưa đến mạng: a = p1 Các đầu nơron lớp cuối đầu mạng: a = am Với vectơ đầu vào đưa đến mạng, giá trị đầu mạng so sánh với giá trị đích Thuật toán phải điều chỉnh tham số mạng nhằm mục đích tối thiểu hóa hàm số sai số trung bình bình phương: F (x) = E[e ] = E[(t - a) ] vectơ tham số trọng lượng bias mạng Nếu mạng có nhiều đầu thì: F (x) = E[eT e] = E[(t - a)T (t -a)] Giống thuật toán giảm độ dốc lớn (LMS), thực xấp xỉ hóa hàm số sai số trung bình bình phương hàm số: F (x) = (t (k) - a(k))T (t (k)-a(k))=eT (k)e(k) 10 kỳ vọng sai số bình phương thay sai số bình phương bước lặp thứ k Thuật toán giảm độ dốc lớn để xấp xỉ sai số trung bình bình phương, áp dụng trọng số bias nơron mạng có dạng: ∂ F w im, j (k += 1) w im, j (k) − α ∂w im, j ∂F m m bi (k + = 1) bi (k) − α m ∂bi 11 NHẬN DẠNG KHUÔN MẶT Tập ảnh sử dụng để huấn luyện lấy từ sở liệu ORL (Olivetti Research Laboratory, Surrey University) Các ảnh tương đối đa dạng, chúng chụp thời điểm khác nhau, với góc nghiêng khác nhau, trạng thái khác cười khơng cười, đeo kính khơng, nheo mắt, miệng mở đóng…… Tập ảnh gồm ảnh 40 người, người có 10 ảnh khác Các ảnh ảnh xám, có kích thước 112x92 Ngồi tạo thêm ảnh khác để đưa vào tập huấn luyện Các ảnh tập huấn luyện lưu thư mục Anh train Trong thư mục này, ảnh người lưu thư mục riêng Các thư mục đặt tên theo thứ tự: S1, S2, S3… Các ảnh thư mục đặt tên số theo thứ tự: 1,2,3,4…n (n: số ảnh người) Các ảnh sử dụng có đi: bmp pgm Đầu mạng Người thứ Người thứ Người thứ k PCA Vector đặc trưng Mạng noron 0 0 0 0 Người thứ m Người thứ: Tập ảnh huấn luyện Hình 7: Quá trình huấn luyện tập ảnh huấn luyện 12 0 2… k… m a1 a2 Ảnh cần nhận dạng PCA Vector đặc trưng Mạng noron ak am ai_max < a0 So sánh với ngưỡng a0 ai_max=Max(ai) ai_max>a0 Không giống tập ảnh huấn luyện Ảnh nhận dạng giống ảnh người thứ i tập huấn luyện Hiển thị ảnh thơng tin ảnh Hình 8: Quá trình nhận dạng ảnh Ảnh cần nhận dạng chuẩn hóa kích thước theo ảnh tập huấn luyện, biểu diễn không gian eigenface tập huấn luyện để tạo vector đặc trưng cho ảnh Sau vector đặc trưng cho ảnh đưa vào mạng noron để kiểm tra Đầu mạng vector cột Xác định phần tử lớn vector, so sánh với ngưỡng để xác định ảnh có giống với ảnh tập huấn luyện không xác định ảnh giống 13 CHƯƠNG TRÌNH TRÊN MATLAB - Để chạy chương trình, chạy file: XLA_CDT29.m Hình 9: Giao diện chương trình Các nút chức giao diện: - Them doi tuong mau: Chọn Các đối tượng mẫu để đưa vào luyện mạng + Anh lop: Số ảnh người + So lop them: Số người đưa vào tập mẫu để luyện mạng + So lop da them: Số người đưa vào tập mẫu - Xoa toan bo du lieu: Xóa tồn tập mẫu xây dựng - Thay doi lop du lieu: Cho phép thay đổi liệu người đưa vào tập huấn luyện Lựa chọn lớp cần thay đổi, sau nhấn Thay doi chọn vào thư mục chứa ảnh lớp cần thay đổi - Tao doi tuong mau: Lựa chọn mở giao diện cho phép xây dựng ảnh mẫu để đưa vào tập huấn luyện Có thể xây dựng ảnh mẫu từ webcam từ ảnh khác 14 Hình 10: Giao diện tạo đối tượng mẫu - Thiet lap mang noron: Cho phép thiết lập tham số mạng noron Hình 11: Thiết lập mạng noron 15 Nút View: Hiển thị cấu trúc mạng sử dụng để luyện mạng Hình 12: Cấu trúc mạng sử dụng - TRAINING: Tiến hành luyện mạng Hình 13: Hình hiển thị tiến hành luyện mạng - Nhan dang anh: Lựa chọn cho phép nhận dạng từ ảnh Ảnh cần nhận dạng đưa vào cách nhấn Chon anh, tìm đến file ảnh cần nhận dạng Sau tách khn mặt từ ảnh sử dụng nút nhấn Tu dong Bang tay: 16 + Tu dong: Cho phép tách khuôn mặt từ ảnh cách tự động Chương trình tự động phát khn mặt có ảnh Mỗi lần nhấn Tu dong, khn mặt ảnh chọn hiển thị sang bên phải Sau nhấn nút Nhan dang để tiến hành nhận dạng khuôn mặt Nếu nhận dạng ảnh thơng tin ảnh hiển thị mục bên ảnh, ảnh tập huấn luyện thị vào vị trí ảnh phía mục thơng tin ảnh Mục So thu tu: Hiển thị lớp tập huấn luyện giống ảnh cần nhận dạng Nếu không nhận dạng được, mục So thu tu thị: Khong xac dinh + Bang tay: Chọn khuôn mặt cách sử dụng chuột để tạo khung hình chữ nhật bao quanh khuôn mặt cần nhận dạng - Nhan dang webcam: Cho phép phát nhận dạng khuôn mặt từ webcam Nếu đối tượng nhận dạng góc trái khuôn mặt hiển thị lớp tập huấn luyện mà đối tượng thuộc tên đối tượng, khơng nhận dạng được, thị “00000” Hình 14: Nhận dạng qua webcam 17 - Nhan dang Video: Cho phép lựa chọn video, chương trình phát khn mặt video tiến hành nhận dạng khuôn mặt phát Hình 15 Nhận dạng qua video - Cách hiển thị thông tin nhận dạng trường hợp nhận dạng qua webcam 18 KẾT LUẬN Với kiến thức trang bị mơn học, nhóm thực xây dựng chương trình Nhận dạng khn mặt mạng noron phương pháp PCA phần mềm matlab Mạng noron sử dụng mạng noron truyền thẳng nhiều lớp, luyện mạng với thuật toán lan truyền ngược giảm độ dốc với momentum quy tắc học thích nghi Chương trình cho phép tạo đối tượng mẫu để đưa tập huấn luyện, thiết lập tham số mạng noron Chương trình có khả phát nhiều khn mặt ảnh, video, webcam nhận dạng ảnh phát Tuy nhiên, kiến thức thời gian thực hạn chế nên chương trình số hạn chế như: chưa chuẩn hóa (về chất lượng) ảnh xây dựng để đưa vào tập mẫu, tốc độ nhận dạng qua video webcam thấp, chưa đáp ứng thời gian thực… 19 ... phần (PCA - Principal Component Analysis) phương pháp trích rút đặc trưng nhằm giảm số chiều ảnh đơn giản mang lại hiệu tốt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng noron phương pháp mang. .. môn học, nhóm thực xây dựng chương trình Nhận dạng khuôn mặt mạng noron phương pháp PCA phần mềm matlab Mạng noron sử dụng mạng noron truyền thẳng nhiều lớp, luyện mạng với thuật toán lan truyền... ảnh khác 14 Hình 10: Giao diện tạo đối tượng mẫu - Thiet lap mang noron: Cho phép thiết lập tham số mạng noron Hình 11: Thiết lập mạng noron 15 Nút View: Hiển thị cấu trúc mạng sử dụng để luyện