1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tài liệu Nhận dạng khuôn mặt và nhận dạng giới tính bằng PCA doc

13 1,2K 7

Đ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 13
Dung lượng 764,5 KB

Nội dung

Một trong các bài toán nhận dạng con người rất được quan tâm hiện nay là nhận dạng khuôn mặt.. Sự phát triển của khoa học máy tính tạo môi trường thuận lợi cho bài toán nhận dạng mặt ngư

Trang 1

Lời mở đầu

Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu cầu khắt khe tại mọi quốc gia trên thế giới Các hệ thống nhận dạng con người được ra đời với độ tin cậy ngày càng cao Một trong các bài toán nhận dạng con người rất được quan tâm hiện nay là nhận dạng khuôn mặt Vì nhận dạng khuôn mặt là cách mà con người sử dụng để phân biệt nhau Bên cạnh đó, ngày nay việc thu thập, xử lý thông tin qua ảnh để nhận biết đối tượng đang được quan tâm và ứng dụng rộng rãi Với phương pháp này, chúng ta có thể thu nhận được nhiều thông tin từ đối tượng mà không cần tác động nhiều đến đối tượng nghiên cứu Sự phát triển của khoa học máy tính tạo môi trường thuận lợi cho bài toán nhận dạng mặt người từ ảnh số Các hệ thống nhận dạng offline đã ra đời và có độ tin cậy cao, tuy nhiên các hệ thống nhận dạng online lại chưa đáp ứng được nhiều

Trong khuôn khổ đồ án này, chúng em sẽ tiếp tục giải quyết bài toán nhận dạng offline Trong đó đối tượng được thu thập thành các file dữ liệu và được chuyển về trung tâm Tại đó, các số liệu sẽ được phân tích xử lý Trong phần đầu, chúng em sẽ giải quyết bài toán nhận dạng thông thường, phần hai sẽ là phần nhận dạng giới tính

Trang 2

1) Giới thiệu chung về các phương pháp nhận dạng mặt người.

a) Các phương pháp nhận dạng mặt người:

Phương pháp nhận dạng hiện nay có 2 loại:

 Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature based face recognition)

 Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based face recognition)

Ngoài ra còn có một số loại nhận dạng sử dụng mô hình về khuôn mặt, một số phương pháp được dùng cho loại này:

 Nhận dạng 2D: Elastic Bunch Graph, Active Appearance Model

 Nhận dạng 3D: 3D Morphable Model

b) Nhận dạng dựa trên mối quan hệ giữa các phần tử:

Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng,…), và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách của hai lông mày,…)

Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biết khuôn mặt Hơn nữa với việc xác định đặc tính và các mối quan hệ, phương pháp này có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi

Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác định mối quan hệ giữa các đặc tính đòi hỏi các thuật toán phức tạp Mặt khác, với các ảnh kích thước bé thì các đặc tính sẽ khó phân biệt

c) Nhận dạng dựa trên xét toàn diện khuôn mặt:

Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một khuôn mặt không bị mất đi Trong không gian đó, các ảnh của cùng một người sẽ được tập trung lại thành một nhóm gần nhau và cách xa các nhóm khác

Hai phương pháp thường được sử dụng là PCA (Principle Components Analysis)

và LDA (Linear Discriminant Analysis) Trong khuôn khổ đồ án này, chúng em sẽ sử dụng thuật toán PCA

2) Thuật toán PCA

Trang 3

PCA (Principle Components Analysis) là một thuật toán để được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn rất nhiều so với ảnh đầu vào và vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA

Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vector trong không gian cho trước Trong không gian mới, người ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu

0.00

10.00

20.00

30.00

40.00

50.00

60.00

70.00

x1

0.00

10.00

20.00

30.00

40.00

50.00

60.00

70.00

p2

Trang 4

Hình 1 Không gian mới (p 1 ,p 2 ) theo hướng phân bố mạnh nhất của các vector trong không gian

(x 1 ,x 2 ) tìm theo PCA.

Ưu điểm của phương pháp PCA:

 Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phải xác định các thành phần và mối quan hệ giữa các thành phần đó

 Thuật toán có thể thức hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu gọn ảnh thành một ảnh có kích thước nhỏ hơn

 PCA có thể kết hợp với các phương pháp khác như mạng Noron, Support Vector Machine … để mang lại hiệu quả nhận dạng cao hơn

Nhược điểm của PCA:

 PCA phân loại theo chiều phân bố lớn nhất của tập vector Tuy nhiên, chiều phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài toán nhận dạng Đây là nhược điểm cơ bản của PCA

 PCA rất nhạy với nhiễu

b) Nội dung thuật toán PCA:

Không gian mới được tạo bởi PCA được cấu thành từ K vector đơn vị có chiều là

N Mỗi vector được gọi là một Eigenface

Phép biến đổi:

=

=

K

2 1

N

2 1

w w w

W

a a a

Theo công thức: W=T.A

Với T là ma trận chuyển đổi, T có kích thước KxN

Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều Ta có tập hợp đầu vào X={x1,x2,…,xM} (xi Є RN)

Trung bình của các vector đầu vào:

=

i i

x M

x

1

1

Sai lệch so với tâm:

x

x i

Φ

Gọi A=[Ф1,Ф2,…,ФM] ta có ma trận tương quan của A là:

=

= Φ Φ

i

T T

i

M

C

1

1

Gọi các giá trị riêng của C là λ1, λ2,…, λN sắp xếp theo thứ tự giảm dần, tương ứng với N vector riêng u1, u2,…, uN Các vector riêng này trực giao từng đôi một Mỗi

Trang 5

vector riêng ui được gọi là một eigenface Tập hợp các vector ban đầu được biểu diễn trong không gian tạo bởi N eigenface theo mô tả:

=

= +

+ +

=

N

w u

w u w x x

1 2

2 1

Chọn lấy K vector riêng u tương ứng với K giá trị riêng λ lớn nhất, ta có:

=

= +

+ +

=

i i i K

w u

w u w x x

1 2

2 1

Vector các hệ số khai triển [w1, w2, …, wK] chính là biểu diễn mới của ảnh được tạo ra trong không gian PCA Ảnh mới vẫn giữ được các đặc điểm chính của ảnh đầu vào Vector [w1, w2, …, wK] được tính theo công thức:

2

1 2

1

x x U x x

u

u u

w

w w

T

T K

T T

K

=

=

Vấn đề cần giải quyết ở đây là ma trận tương quan C=A.AT có kích thước N2 Với N=180x200=36000, khối lượng tính toán sẽ rất lớn Do đó để tính được các eigenface

mà không cần tính cả ma trận C, người ta đưa ra phương pháp tính nhanh dựa vào vector riêng và giá trị riêng của ma trận L=AT.A có kích thước MxM với M là số ảnh đầu vào Ta có thể chứng minh như sau: gọi vi, µi lần lượt là vector riêng và giá trị riêng của ma trận L:

AT.A.vi=µi.vi Nhân cả 2 vế với A ta có:

A.AT.A.vi=µi.A.vi

Ta thấy A.vi chính là vector riêng của C=A.AT ứng với giá trị riêng µi

c) Áp dụng PCA vào trích chọn vector đặc tính cho bài toán nhận dạng mặt người: Một bức ảnh về khuôn mặt được coi như là một vector, nếu bức ảnh có kích thước

là w*h pixels thì không gian chứa vector này có số chiều là N=w*h Mỗi pixel sẽ được

mã hóa bởi một thành phần của vector Cấu trúc của vector được tạo từ ảnh có thể được hình dung như hình bên dưới

Hình 2 Dạng của vector tạo từ bức ảnh về khuôn mặt.

Trang 6

Khâu quan trọng nhất trong bài toán nhận dạng đó là trích chọn vector đặc tính Trong phần này, chúng em sẽ trình bày các bước trích chọn vector đặc tính mang những đặc tính riêng của mặt cần nhận dạng:

i Tạo một tập X gồm M ảnh (ảnh học), mỗi ảnh có kích thước N, các ảnh được chuyển thành vector N chiều

X={x1,x2,…,xM}

ii Tính trung bình của tập trên:

=

i i

x M

x

1

1

iii Tính sai lệch của ảnh đầu vào với giá trị trung bình trên:

x

x i

Φ

iv Tìm tập gồm M vector trực giao, u, biểu diễn chiều phân bố mạnh nhất của tập dữ liệu X Tập các vector u được gọi là eigenface của tập dữ liệu học

v Xây dựng các ảnh mới vi theo M vector u:

i

t i

Ω=[v1,v2,…,vM]T Trong đó v i =u T i Φilà vector đặc tính của ảnh thứ i trong không gian mới Ω ở đây

là tập các eigenface, các thành phần cơ bản cho bức ảnh cần nhận dạng

d) Phân loại và nhận dạng:

Sau khi trích chọn được vector đặc tính, chúng ta cần đối chiếu vector này với cơ

sở dữ liệu, từ đó đưa ra kết quả nhận dạng Trong bài toán, kết quả nhận dạng sẽ là nhận biết được hoặc chưa nhận biết được

Để thực hiện phân loại có rất nhiều phương pháp như khoảng cách Euclides, mạng Noron, SVM,… trong đó khoảng cách Euclides là phương pháp đơn giản nhất Nó cho kết quả tốt đối với trường hợp đối tượng đã được tạo thành các nhóm cách xa nhau Vector đặc tính của đối tượng cần nhận dạng sẽ được so sánh lần lượt với vector đặc tính của từng ảnh mẫu trong tập các ảnh học Các khoảng cách ngắn nhất sẽ được lưu lại

εk=||Ω-Ωk|| với k=1,…M trong đó Ωk là vector của mặt thứ k trong cơ sở dữ liệu Nếu εk nhỏ hơn threshold được xác định trước thì bức ảnh được nhận dạng là mặt thứ k trong cơ sở dữ liệu

3) Thuật toán nhận dạng dùng PCA

a) Nhận dạng mặt người:

Như đã nói ở trên, việc nhận dạng khuôn mặt thông thường sử dụng giải thuật PCA trích chọn vector đặc tính Sau đó, chúng ta sẽ so sánh vector đặc tính này với cơ sở dữ liệu hiện có Khoảng cách Euclides được sử dụng để đánh giá mức độ giống nhau của

Trang 7

vector đặc tính hay chính là sự giống nhau giữa ảnh cần nhận dạng và ảnh trong cơ sở

dữ liệu Sơ đồ minh họa cho thuật toán:

Hình 3 Sơ đồ thuật toán nhận dạng mặt người dùng PCA

b) Nhận dạng gái trai:

Nhận dạng giới tính là một mặt sinh học đặc biệt quan trọng của con người Việc xây dựng được một thuật toán nhận dạng giới tính là vấn đề đang được đặt ra cho các nhà nghiên cứu Vấn đề này hiện vẫn chưa được làm sáng tỏ vì thông tin ảo mà con người sử dụng cho việc nhận dạng một mặt là nữ hay nam vẫn chưa được hiểu rõ Có

2 loại thông tin ảo chính: dựa vào đo lường hoặc dựa vào pixel của các khuôn mặt Bài báo cáo này sẽ sử dụng loại thứ 2

Quá trình nhận dạng có thể chia làm 2 phần: thứ nhất, pixel sẽ được chuyển vào face space, tiếp theo, thuật toán nhận dạng sẽ được áp dụng Hai quá trình này sẽ được kiểm tra ở cùng một thời gian Mục tiêu của bài báo cáo là nghiên cứu tỉ mỉ thuật toán PCA để tìm ra face space nào là tiêu biểu của khuôn mặt Do vậy chỉ phần đầu của quá trình nhận dạng được sử dụng, quá trình nhận dạng nam nữ sẽ được hoàn thành khi sử dụng reconstruction error

Sử dụng reconstruction error:

Đây là phương pháp kĩ thuật chứ không phải là một phương pháp sinh học, tuy nhiên bộ não cũng có thể làm việc theo cách thức này Thay vì sử dụng chỉ một face

Trang 8

space, phương pháp này sử dụng một space riêng cho mỗi một lớp: chia ra thành face space của nữ và nam Việc tạo eigenface nữ và nam tương tự như quá trình tạo eigenface thông thường Do đó trong quá trình tạo face space cho nữ và nam thì chỉ có mặt của lớp đó tham gia Chúng ta sẽ giả sử rằng reconstruction error cho phần mặt nam được xây dựng từ face space nam sẽ nhỏ hơn reconstruction error của chính mặt này được xây dựng từ face space nữ Như vậy, phương pháp nhận dạng sẽ trở nên đơn giản Sơ đồ thuật toán được minh họa như hình bên dưới:

4) Xây dựng cơ sở dữ liệu cho thuật toán

Cơ sở dữ liệu được sử dụng cho bài toán là bộ ảnh được lấy trên trang web

http://dces.essex.ac.uk/mv/allfaces/faces94.zip được tạo bởi tác giả Libor Spacek.

Một số thông số về cơ sở dữ liệu:

 Giới tính: bao gồm cả nam và nữ

 Nguồn gốc: từ nhiều vùng trên thế giới

 Tuổi: các bức ảnh đều của những người có độ tuổi từ 18-20

 Đeo kính: có

 Râu: có

 Định dạng ảnh: 24bit JPEG, kích thước là 180x200 pixels

 Camera được sử dụng là S-VHS camcorder

 Độ sáng: nhân tạo, có sự pha trộn giữa đèn huỳnh quang và vonfram

Bộ dữ liệu được chọn sẽ bao gồm 20 người trong đó có 10 nam và 10 nữ, mỗi người 5 ảnh Trong số 5 ảnh của mỗi người, ta chọn ngẫu nhiên 2 ảnh để tạo bộ số liệu học và 3 ảnh còn lại để kiểm tra mô hình

a) Cơ sở dữ liệu cho nhận dạng mặt người thông thường:

Trang 9

Bộ ảnh này gồm 20 người, có 10 nam và 10 nữ, mỗi người 5 ảnh Trong bộ ảnh này, các ảnh học được sắp xếp vào cùng một thư mục và đánh số thứ tự từ 1 đến 40 Các ảnh dùng để kiểm tra mô hình cũng được để chung vào một thư mục Như vậy chúng ta sẽ có 2 thư mục: thư mục training chứa các ảnh học và thư mục test chứa các ảnh kiểm tra mô hình

b) Cơ sở dữ liệu cho nhận dạng gái trai

Cơ sở dữ liệu cho bài toán nhận dạng gái trai tương tự trên, tuy nhiên có một số thay đổi nhỏ: trong thư mục training, chúng ta chia ra làm 2 thư mục con: một thư mục chứa các ảnh nam và thư mục còn lại chứa các ảnh nữ

Hình 4 Một số ảnh trong cơ sở dữ liệu

5) Cài đặt thuật toán

a) Nhận dạng mặt người thông thường:

Thực hiện:

Dựa vào lý thuyết ở phần trước phần code chương trình nhận dạng được chia làm 4 phần:

i) CreateDatabase.m là hàm tạo cơ sở dữ liệu cho bài toán Chức năng của hàm này là chuyển các bức ảnh 2D trong cơ sở dữ liệu training thành dạng các vector cột, sau đó các vector này được đặt thành hàng của một ma trận 2D:T Đầu vào là đường dẫn đến cơ sở dữ liệu training và đầu ra sẽ là ma trận T Ở đây các bức ảnh có cùng kích thước MxN do đó kích thước của ma trận này là MNxP với P là số ảnh trong cơ

sở dữ liệu

function T = CreateDatabase(TrainDatabasePath)

% Input: TrainDatabasePath: đường dẫn đến cơ sở dữ liệu

% Output:

% Ma trận T: ma trận 2D, chứa tất cả các vector 1D của các ảnh

% kích thước là MNxP với MxN là kích thước ảnh, P là số ảnh

Trang 10

ii) EigenfaceCore.m: hàm này được sử dụng để tính trung bình tập ảnh đầu vào, tính eigenface, tính ma trận A là tập các vector đầu vào mới sau khi so sánh với giá trị trung bình tập ảnh đầu vào

function [m, A, Eigenfaces] = EigenfaceCore(T)

%

% Input: T - Ma trận 2D kích thước MNxP

%

% Output: m - (M*Nx1): Trung bình của tập ảnh đầu vào

% Eigenfaces - (M*Nx(P-1)): vector riêng của ma trận tương quan

% trong cơ sở dữ liệu training

% A - (M*NxP): Tập các vector đầu vào mới sau khi so sánh

% với trung bình

iii) Recognition.m: hàm này được sử dụng để nhận dạng bức ảnh đầu vào Nó so sánh 2 bức ảnh bằng cách đưa ảnh vào một không gian mới và tính khoảng cách Euclidean giữa chúng

function OutputName = Recognition(TestImage, m, A, Eigenfaces)

%

% Input: TestImage: Đường dẫn đến thư mục của ảnh cần kiểm tra

%

% m: (M*Nx1): Giá trị trung bình tập ảnh đầu vào

% là đầu ra của hàm 'EigenfaceCore'

%

% Eigenfaces: (M*Nx(P-1)): vector riêng của ma trận tương quan trong

% training database, là đầu ra của hàm ’EigenfaceCore'

%

% A: (M*NxP): là đầu ra của hàm 'EigenfaceCore'

%

% Output: OutputName: Tên của bức ảnh nhận dạng trong cơ sở dữ liệu training

iv) example.m: đây là chương trình ví dụ về nhận dạng một số bức ảnh

b) Nhận dạng gái trai:

Theo sơ đồ thuật toán code của chương trình được chia làm 4 phần như phần code trước đã trình bày, tuy nhiên có một số thay đổi:

i CreateDatabase.m: Hàm này sẽ tạo ra cơ sở dữ liệu riêng cho nam và nữ

function [T1,T2] = CreateDatabase(TrainDatabasePath)

% Input: TrainDatabasePath: đường dẫn đến cơ sở dữ liệu

% Output:

% Ma trận T1: ma trận 2D, chứa tất cả các vector 1D của các ảnh nữ

% kích thước là MNxP với MxN là kích thước ảnh, P là số ảnh

% Ma trận T2: ma trận 2D, chứa tất cả các vector 1D của các ảnh nam

% kích thước là MNxP với MxN là kích thước ảnh, P là số ảnh

Ngày đăng: 25/01/2014, 14:20

HÌNH ẢNH LIÊN QUAN

Hình 2. Dạng của vector tạo từ bức ảnh về khuôn mặt. - Tài liệu Nhận dạng khuôn mặt và nhận dạng giới tính bằng PCA doc
Hình 2. Dạng của vector tạo từ bức ảnh về khuôn mặt (Trang 5)
Hình 3. Sơ đồ thuật toán nhận dạng mặt người dùng PCA - Tài liệu Nhận dạng khuôn mặt và nhận dạng giới tính bằng PCA doc
Hình 3. Sơ đồ thuật toán nhận dạng mặt người dùng PCA (Trang 7)
Hình 4. Một số ảnh trong cơ sở dữ liệu. 5) Cài đặt thuật toán. - Tài liệu Nhận dạng khuôn mặt và nhận dạng giới tính bằng PCA doc
Hình 4. Một số ảnh trong cơ sở dữ liệu. 5) Cài đặt thuật toán (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w