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.
THCN-KSCLC-K50 Page 1
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,
0.00
10.00
20.00
30.00
40.00
50.00
60.00
70.00
0.00 50.00 100.00 150.00 200.00 250.00
x1
x2
0.00
10.00
20.00
30.00
40.00
50.00
60.00
70.00
0.00 50.00 100.00 150.00 200.00 250.00
x1
x2
p1
p2
THCN-KSCLC-K50 Page 3
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
=→
2
,…,x
M
} (x
i
Є R
N
)
Trung bình của các vector đầu vào:
∑
=
=
M
i
i
x
M
x
1
1
Sai lệch so với tâm:
xx
ii
−=Φ
Gọi A=[Ф
1
,Ф
2
,…,Ф
M
i
đượ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
i
iiNN
uwuwuwuwxx
1
2211
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ó:
∑
=
=+++=−
K
i
iiKK
uwuwuwuwxx
1
2211
với K<<N
Vector các hệ số khai triển [w
1
, w
2
, …, w
w
w
T
T
K
T
T
K
−=−
=
đầu vào. Ta có thể chứng minh như sau: gọi v
i
, µ
i
lần lượt là vector riêng và giá trị
riêng của ma trận L:
A
T
.A.v
i
=µ
i
.v
i
Nhân cả 2 vế với A ta có:
A.A
T
.A.v
i
=µ
i
.A.v
i
Ta thấy A.v
i
chính là vector riêng của C=A.A
T
ứ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:
iii. Tính sai lệch của ảnh đầu vào với giá trị trung bình trên:
xx
ii
−=Φ
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 v
i
theo M vector u:
i
t
ii
uv Φ=
Ω=[v
1
,v
2
,…,v
M
]
T
Trong đó
i
T
ii
uv Φ=
là 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ơ
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
THCN-KSCLC-K50 Page 7
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
đượ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ó.
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.
THCN-KSCLC-K50 Page 9
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'
% là đầu ra của hàm 'EigenfaceCore' của nữ và nam.
%
% Eigenfaces1, Eigenfaces2: (M*Nx(P-1)): vector riêng của ma trận tương quan
% trong training database của nữ và nam , là đầu ra của hàm ’EigenfaceCore'
%
% A1, A2: (M*NxP): là đầu ra của hàm 'EigenfaceCore' tương ứng của nữ và
% nam.
%
% Output: OutputName: Tên của bức ảnh nhận dạng trong cơ sở dữ liệu training.
% Ma trận A.
% Recognized_index: vị trí của bức ảnh thư mục training.
% Sex_indi: giới tính.
iv. example.m: có một số thay đổi không đáng kể.
5)Kết quả nhận dạng.
Với cơ sở dữ liệu là bộ mẫu có sẵn 20 người, mỗi người 5 ảnh , trong đó có 2 ảnh
học và 3 ảnh để test.Do chỉ có 2 ảnh học cho mỗi người, nên với bộ dữ liệu này ta chỉ
đưa ra 2 người gần đối tượng nhất.Kết quả nhận dạng như sau:
− Kiểm tra với đầu vào là các ảnh học:
Số ảnh 40
THCN-KSCLC-K50 Page 11
Nhận dạng mặt người đúng:40, tỉ lệ 100%
Nhận dạng giới tính đúng: 40, tỉ lệ 100%.
− Kiểm tra với các ảnh khác:
Số ảnh:60
Nhận dạng đúng mặt người: 58, tỉ lệ 96,67%
Nhận dạng giới tính đúng: 59, tỉ lệ 98,3%.
Các đối tượng có kết quả nhận dạng đúng mặt người :
− Giá trị nhận dạng ứng với ảnh tìm được đều nhỏ hơn ngưỡng.