1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

MÔ PHỎNG NHẬN DẠNG mặt (có code)

24 351 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 494,28 KB

Nội dung

MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ............................................... MÔ PHỎNG NHẬN DẠNG mặt (có code) ...............................................

Trang 2

MỤC LỤC

DANH MỤC CÁC HÌNH VẼ VII DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

1.1 GIỚI THIỆU 1

1.2 YÊU CẦU ĐỀ TÀI 1

1.3 HƯỚNG THỰC HIỆN 1

CHƯƠNG 2 THUẬT TOÁN PCA TRONG NHẬN DẠNG KHUÔN MẶT 3

2.1 GIỚI THIỆU CHUNG VỀ THUẬT TOÁN PCA 3

2.2 TÍNH TOÁN CÁC EIGENFACES 3

2.2.1 Tạo tập ảnh huấn luyện 3

2.2.2 Vector khuôn mặt trung bình 4

2.2.3 Trừ vector khuôn mặt trung bình 4

2.2.4 Ma trận hiệp phương sai C 4

2.2.5 Trị riêng( Eigenvalues) và vector riêng( Eigenvectors) 4

2.2.6 Biểu diễn các khuôn mặt có sẵn trong tập huấn luyện vào không gian vector 5

2.3 NHẬN DẠNG KHUÔN MẶT BẰNG CÁC EIGENFACES 6

2.3.1 Trích rút đặc trưng PCA 6

2.3.2 Chuẩn hóa, trừ đi vector trung bình 6

2.3.3 Đưa vào không gian đặc trưng 6

2.3.4 Tương ứng với 6

2.3.5 Tính khoảng cách Euclide 7

2.3.6 So sánh khoảng cách và rút ra kết luận 7

2.4 CÁC HÀM HIỂN THỊ ẢNH TRONG MATLAB 7

2.5 CÁC HÀM KHÁC ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI 8

CHƯƠNG 3 GIỚI THIỆU CHƯƠNG TRÌNH 10

2

Trang 3

CHƯƠNG 5 KẾT LUẬN 16

5.1 ƯU ĐIỂM, KHUYẾT ĐIỂM 16

5.1.1 Ưu điểm 16

5.1.2 Khuyết điểm 16

5.2 HƯỚNG PHÁT TRIỂN 16

TÀI LIỆU THAM KHẢO 17

PHỤ LỤC A ………18

Trang 4

DANH MỤC CÁC HÌNH VẼ

HÌNH 3.1: GIAO DIỆN CHƯƠNG TRÌNH NHẬN DẠNG KHUÔN MĂT LÚC BẮT ĐẦU 10 HÌNH 3.2: ẢNH CẦN KIỂM TRA ĐƯỢC ĐƯA RA GIAO DIỆN CHÍNH 11 HÌNH 3.3: ẢNH NHẬN DẠNG ĐƯỢC ĐƯỢC ĐƯA RA GIAO DIỆN 12 HÌNH 3.4: HÌNH ẢNH NOMATCH XUẤT HIỆN TRÊN GIAO DIỆN KHI ẢNH CẦN TÌM KHÔNG CÓ TẬP HUẤN LUYỆN 13

4

Trang 6

DANH MỤC CÁC TỪ VIẾT TẮT

PCA Principal Components Analysis

GUI Graphical User Interface

6

Trang 7

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

Ngày nay các thiết bị điện tử đều dần phát triển theo xu hướng tự động hóa, thôngminh, hiểu ý con người, chúng có thể giao tiếp với con người bằng các thiết bị cảmbiến, đặc biệt là các thuật toán nhận dạng với ưu điểm hiện đại , chính xác hơn, antoàn và bảo mật Nhận dạng được ứng dụng rộng rãi trong nhiều lĩnh vực của đờisống như trong lĩnh vực thương mại, phát hiện tội phạm trong lĩnh vực an ninh, haytrong lĩnh vực xử lý video, hình ảnh Đồng thời có rất nhiều các các phương phápnhận dạng khác nhau được xây dựng để nhận dạng một người Tuy vậy việc nhậndạng được một người trong thế giới thực là vô cùng khó khăn, bởi vì để nhận dạngđược ta phải xây dựng tập cơ sở dữ liệu đủ lớn và việc xử lý dữ liệu lớn đòi hỏi phảinhanh và chính xác Chúng ta phải nghiên cứu và xây dựng một chương trình sửdụng phương pháp nhận dạng có độ chính xác cao mà khối lượng và thời gian tínhtoán lại ít Để giải quết vấn đề này có một phương pháp cho phép phân tích cácthành phần chính của khuôn mặt, giúp giảm bớt số thành phần không cần thiết tạo

ra hiệu quả tính toán nhanh mà vẫn đảm bảo được độ chính xác,đó là phương phápPrincipal Components Analysis (PCA) hay còn gọi là: “Phân tích các thành phầnchính”

1.2 Yêu cầu đề tài

- Nghiên cứu và tiềm hiểu thuật toán nhận dạng PCA

- Nghiên cứu các lệnh xử lý ảnh màu trên Matlab

- Nghiên cứu giải thuật và thực hiện phần mềm nhận dạng trên Matlab

1.1 Hướng thực hiện

- Tìm hiểu lý thuyết thuật toán PCA

- Tìm hiểu các lệnh trong Matlab về xử lý ảnh như hiện ảnh, các hàm tính toán

Trang 8

Trang 2/20

CHƯƠNG 2 THUẬT TOÁN PCA TRONG NHẬN DẠNG KHUÔN

MẶT

2.1 Giới thiệu chung về thuật toán PCA

Phân tích thành phần chính (Principal Component Analysis ) gọi tắt là PCA là thuật

toán nhận dạng ảnh dựa trên những nét tổng thể của khuôn mặt

Phương pháp này được phát minh năm 1901 bởi Karl Pearson và hiện nay nó được

sử dụng như công cụ để phân tích dữ liệu nghiên cứu và thực hiện các mô hình dựđoán PCA còn gồm cả việc tính toán phân tích các giá trị đặc trưng của một ma trậntương quan dữ liệu hoặc phân tính các giá trị đơn của ma trận dữ liệu sau khitính trung bình dữ liệu của mỗi thuộc tính

PCA là phương pháp đơn giản nhất phân tích đa biến dựa trên các vector đặc trưng.Thông thường hoạt động của nó có thể được hiểu nhằm khám phá ra cấu trúc bêntrong của dữ liệu Nếu một tập dữ liệu đa biến được xem xét như tập các tọa độtrong một không gian dữ liệu nhiều chiều (mỗi trục biểu diễn một biến) thì phươngpháp PCA cung cấp cho chúng ta một bức ảnh ít chiều, một cái bóng của vật thể khiquan sát từ chính những đặc trưng cơ bản nhất của vật thể đó

Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫnđảm bảo được “tối đa thông tin quan trọng nhất” Phương pháp PCA sẽ giữ lại Kthuộc tính “mới” từ M các thuộc tính ban đầu (K<M)

2.2 Tính toán các Eigenfaces

2.2.1 Tạo tập ảnh huấn luyện

Từ cơ sở dữ liệu, chọn M ảnh tạo thành tập huấn luyện.Các hình ảnh trong tậphuấn luyện phải có khuôn mặt ở tâm ảnh và có cùng kích thước ảnh.Tương ứng mỗiảnh Ii là một vector Γi

Ii ( ảnh NxN) → Γi ( vector N2x1)

2.2.2 Vector khuôn mặt trung bình

Giá trị vector khuôn mặt trung bình:

Mô Phỏng Hệ Thống MIMO

Trang 9

Trong đó: M: Số ảnh trong tập huấn luyện.

Γi là vector một chiều (N2x1) đại diện cho mỗi ảnh

Ψ là vector khuôn mặt trung bình (N2x1) của tập các Γi

2.2.3 Trừ vector khuôn mặt trung bình

Sai số của các ảnh so với giá trị vector khuôn mặt trung bình:

Với: Φi là vector sai số ứng với mỗi ảnh

Γi là vector một chiều (N2x1) đại diện cho mỗi ảnh

Ψ là vector khuôn mặt trung bình (N2x1) của tập các Γi

2.2.4 Ma trận hiệp phương sai C

Ma trận hiệp phương sai được tính:

C có kích thước N2xN2

Trong đó:

A có kích thước N2xM

2.2.5 Trị riêng( Eigenvalues) và vector riêng( Eigenvectors)

Để tính các trị riêng và vector riêng ta tính ma trận C có kích thước N2xN2 có sốchiều quá lớn → không khả thi

Xét ma trận L=AT.A ( kích thước MxM), tính được các vector riêng vi và các trịriêng “nonzero” của ma trận L này theo công thức:

Av = λv

Sau khi tính được các vector vi (kích thước Mx1) ta dễ dàng suy ra được vectorriêng ui của ma trận C theo công thức:

Trang 10

Trang 4/20

Với các vector riêng tính được ta chuẩn hóa về vector đơn vị:

Các vector ui này chính là Eigenfaces

2.2.6 Biểu diễn các khuôn mặt có sẵn trong tập huấn luyện vào không gian vector

Để giảm thiểu tối đa số chiều cũng như mức độ phức tạp trong tính toán, ta chỉ giữlại K vector riêng ứng với K giá trị riêng lớn nhất Khi đó mỗi khuôn mặt sau khitrừ đi giá trị trung bình sẽ được đại diện bởi K vector riêng

Mỗi khuôn mặt Φi trong tập huấn luyện sẽ được biểu diễn trong không gian mới làmột vector:

Trong đó: ( j=1…K) là các trọng số ứng với K vector riêng

� là vector đại diện cho khuôn mặt thứ i trong tập huấn�luyện

2.3 Nhận dạng khuôn mặt bằng các Eigenfaces

2.3.1 Trích rút đặc trưng PCA

Mỗi ảnh đưa vào nhận dạng có kích thước NxN , có N2 vector riêng rất lớn, như vậy

để giảm số đặc trưng mặt ta đưa ảnh cần nhận dạng vào không gian mặt đã giảm sốchiều (chỉ còn K vector riêng được giữ lại)

2.3.2 Chuẩn hóa, trừ đi vector trung bình

Chuẩn hóa:

Mô Phỏng Hệ Thống MIMO

Trang 11

2.3.3 Đưa vào không gian đặc trưng

Đưa ảnh kiểm tra vào không gian trị riêng:

Với: K là số vector riêng của không gian ảnh

ui (i= 1 K) là K vector riêng lớn nhất

wi là các trọng số tương ứng với các vector riêng

2.3.4 Tương ứng với

Ảnh khi được đưa vào không gian trị riêng sẽ tương đương với một vector mà mỗiphần tử của là hệ số tương ứng của ảnh kiểm tra so với các vector riêng tương ứngtrong không gian trị riêng

Biểu diễn thành như sau:

2.3.5 Tính khoảng cách Euclide

Tính khoảng cách Euclide của ma trận so với không gian mặt là ta đi tìm khoảngcách tới từng bức ảnh trong tập huấn luyện và tìm ra khoảng cách tới bức ảnh huấnluyện gần nhất trong không gian khuôn mặt

2.3.6 So sánh khoảng cách và rút ra kết luận

Nếu er < Tr ( Tr là một ngưỡng chấp nhận được nào đó), tức là ảnh cần nhận dạng

“đủ gần ” với ảnh của người thứ l trong tập huấn luyện thì kết luận đó chính làkhuôn mặt của người thứ l

2.4 Các hàm hiển thị ảnh trong Matlab

Trang 12

Trang 6/20

- Hàm image (X,Y,C): Hiển thị hình ảnh biểu diễn bởi ma trận C có kích thướcMxN lên trục tọa độ hiện hành X, Y là các vector xác định vị trí các pixelC(1,1) và C(M,N) trong hệ trục tọa độ hiện hành

- Hàm imagesc: Chức năng tương tự như hàm image, ngoại trừ việc dữ liệuảnh sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành

- Hàm imview: Cho phép hiển thị hình ảnh trên cửa sổ riêng, nền Java, gọi làimage Viewer cung cấp các công cụ dò tìm và xác định các giá trị pixel mộtcách linh hoạt

- Hàm imshow: Cũng tạo một đối tượng đồ họa thuộc loại image và hiển thịảnh trên một figure Hàm này sẽ tự động thiết lập các giá trị của đối tượngimage, axes và figure để thể hiện hình ảnh

2.5 Các hàm khác được sử dụng trong đề tài

- Uigetdir: Hiển thị hộp thoại phương thức cho phép bạn điều hướng phân cấpthư mục và chọn một thư mục hoặc gõ tên của một thư mục Nếu thư mụctồn tại, uigetdir trả về đường dẫn đã chọn khi bạn nhấn OK Nếu bạn gõ têncủa một thư mục không tồn tại, uigetdir trả về tên của thư mục hiện tại Nếubạn nhấp Hủy, hoặc đóng hộp thoại, uigetdir trả về 0

- Inputdlg: Tạo ra một hộp thoại phương thức và trả về đầu vào người dùngcho nhiều lời nhắc trong mảng ô

- Strcat(s1,s2,s3 ): Ghép các chuỗi lại với nhau, trả về chuỗi nối tiếp s1s2s3

- Dir(pathname): Lấy thông tin của một Folder gồm: số file chứa trong folder,tên file, kích thước file…

- Strcmp(s1,s2): Hàm so sánh, trả về 1 nếu s1 giống s2, ngược lại trả về 0

- Int2str(x): Chuyển đổi số kiểu integer thành chuỗi ký tự

- Rgb2gray: Chuyển ảnh RBG thành ảnh gray scale

- Size(a): Trả về giá trị là ma trận có dạng [x,y] là kích thước của ma trận a

- Reshape(X,M,N): Trả về ma trận có kích thước MxN với các phần tử là cácphần tử nằm trong ma trận X

- Double(X): Chuyển đổi gấp đôi chính xác giá trị ma trận X

- Norm(X): Chuẩn hóa ma trận và vector X

- Min(X): Trả về vị trí của phần tử nhỏ nhất của ma trận X

- Mean(X,dim): Dim là chiều lấy trung bình, nếu dim bằng 1 lấy trung bìnhtheo cột, nếu dim bằng 2 lấy trung bình theo hàng Không có tham số dim thìmặc định dim bằng 1

Mô Phỏng Hệ Thống MIMO

Trang 13

- Eig(X): Trả về một vector chứa các giá trị riêng của ma trận vuông X.

- [V, D] = eig(X): Tạo ra một ma trận đường chéo D của các trị riêng và một

ma trận V có các cột tương ứng là các vector riêng, do đó: X * V = V * D

Trang 14

Trang 8/20

CHƯƠNG 3 GIỚI THIỆU CHƯƠNG TRÌNH

Chương trình “Nhận dạng mặt người trên Matlab” là chương trình được thiết kế trêngiao diện người dùng GUI của phần mền Matlab Phần mềm này rất đơn giản và dễ

sử dụng Đây chính là giao diện chính của chương trình gồm hai khung hiển thị

hình ảnh và hai nút nhấn Chon anh và Nhan dang.

Hình 3.1: Giao diện chương trình nhận dạng khuôn măt lúc bắt đầu

Mô Phỏng Hệ Thống MIMO

Trang 15

Để bắt tìm kiếm ta cần chọn ảnh khuôn mặt cần kiểm tra bằng cách nhấn vào nút

Chon anh Hộp thoại mở file xuất hiện, bạn chọn file ảnh bạn muốn kiểm tra. Như vậy, ảnh cần kiểm tra sẽ được đưa ra giao diện chương trình chính

Hình 3.2: Ảnh cần kiểm tra được đưa ra giao diện chính

Trang 16

Trang 10/20

Để kiểm tra xem khuôn mặt người trong ảnh cấn kiểm tra chúng ta nhấn nút Nhận

dạng chương trình sẽ chạy và tìm trong tập huấn luyện bức ảnh có khuôn mặt giống

với khuôn mặt người trong ảnh cần kiểm tra Hiển thị ra giao diện chương trìnhchính

Hình 3.3: Ảnh nhận dạng được được đưa ra giao diện

Mô Phỏng Hệ Thống MIMO

Trang 17

Nếu ảnh cần tìm không có trong tập huấn luyện, ảnh nhận dạng được sẽ hiện thị làảnh “nomatch”.

Hình 3.4: Hình ảnh nomatch xuất hiện trên giao diện khi ảnh cần tìm không có tập huấn

luyện

Trang 18

Trang 12/20

CHƯƠNG 4 SƠ ĐỒ KHỐI VÀ CODE CHƯƠNG TRÌNH

4.1 Sơ đồ giải thuật chương trình chính

Chuẩn hóa, tính sai

số của ảnh so vớitrung bình

e r >T r

Không có ảnh phù hợp.Hiển thi hình ảnh

“nomatch”

Kết thúc

Trang 19

4.2 Code cho chương trình

(Xem Phụ lục A)

Trang 21

TÀI LIỆU THAM KHẢO

Trang 22

function edit1_Callback(hObject, eventdata, handles)

function edit1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject, 'BackgroundColor' ),

prompt = { 'Enter test image name (a number between 1 to 10):' };

dlg_title = 'Input of PCA-Based Face Recognition System' ;

Trang 23

function pushbutton2_Callback(hObject, eventdata, handles)

Trang 24

temp = eigenfaces' * A(:,i);

projectimg = [projectimg temp];

Ngày đăng: 21/01/2018, 16:48

TỪ KHÓA LIÊN QUAN

w