Tải bản đầy đủ (.pdf) (26 trang)

Nhận dạng mặt người sử dụng đặc trưng PCA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.78 MB, 26 trang )



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG




VŨ MẠNH HÙNG



NHẬN DẠNG MẶT NGƯỜI SỬ DỤNG
ĐẶC TRƯNG PCA

Chuyên ngành : Khoa học máy tính
Mã số: 60.48.01.01




TÓM TẮT LUẬN VĂN THẠC SĨ








HÀ NỘI-NĂM 2013



Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



Người hướng dẫn khoa học: PGS.TS. Đỗ Năng Toàn


Phản biện 1: ……….………………………………………………………………


Phản biện 2:………………….……………………………………………………


Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công
nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông














-1-

MỞ ĐẦU

Nhận dạng khuôn mặt là một trong những lĩnh vực mới của xử
lý ảnh. Và ngày nay nhận dạng được ứng dụng rộng rãi trong nhiều
lĩnh vực của đời sống như nhận dạng trong lĩnh vực thương mại, hay
phát hiện tội phạm trong lĩnh vực an ninh, hay trong lĩnh vực xử lý
video, hình ảnh.
Hiện nay có rất nhiều các các phương pháp nhận dạng khác
nhau được xây dựng để nhận dạng một người cụ thể trong thế giới
thực. Tuy nhiên việc nhận dạ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 được
tập cơ sở dữ liệu đủ lớn và việc xử lý dữ liệu lớn này đòi hỏi phải
nhanh và chính xác. Nhiệm vụ đặt ra là 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ính toán lại ít.
Để giải quết vấn đề trên có một phương pháp cho phép phân
tích các thành phần chính của khuôn mặt, 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áp Principal Components Analysis
(PCA) hay còn gọi là: “phân tích các thành phần chính”. Và luận
văn tập trung nghiên cứu phương pháp PCA để nhận dạng mặt người.
Nội dung luận văn gồm 3 chương:
Chương 1: Khái quát về nhận dạng mặt người và đặc
trưng PCA

Chương 2: Kĩ thuật PCA trong nhận dạng khuôn mặt
Chương 3: Chương trình thử nghiệm








-2-

Chƣơng 1: KHÁI QUÁT VỀ NHẬN DẠNG MẶT NGƢỜI
VÀ ĐẶC TRƢNG PCA
1.1. Khái quát về nhận dạng mặt ngƣời
1.1.1. Phân tích các đặc tính sinh trắc học của người
Đặc tính sinh trắc của người là đặc tính đo được các nét hành vi
riêng của con người. Nhận diện người được thực hiện trong quá trình
kiểm tra tính đồng nhất của đặc tính sinh trắc giữa người cần kiểm tra
với đặc tính tương tự của người đã được lưu sẵn trong CSDL. Có thể
nhận diện người dựa trên các đặc điểm sinh trắc tĩnh trên người như
khuôn mặt, mắt, vân tay, bàn tay, gen…hay các đặc trưng hành vi
như dáng đi, chữ viết, giọng nói…

Hình 1.1: Các nguồn gốc đặc tính sinh trắc của ngƣời
Dữ liệu sinh trắc lý tưởng của người cần phải có những đặc tính
cơ bản như:
- Tính tổng quát: Mỗi người đều được thể hiện bởi đặc
tính này.
- Tính duy nhất: Không thể tồn tại hai người có đặc tính

giống nhau.
- Tính thường xuyên: Là sự độc lập của đặc tính đối với
thời gian.
- Tính thu thập được: Là đặc tính được thu thập một cách
tương đối đơn giản và nhanh chóng từ mỗi cá nhân và có
thể được chi tiết hóa.
1.1.2. Hệ thống nhận dạng tổng quát
Nhiệm vụ của hệ thống nhận dạng mặt người là xử lý tự động
thông tin từ các ảnh để tìm ra độ tương tự giữa các khuôn mặt và đưa
-3-

ra quyết định về tính đồng nhất giữa chúng. Câu trúc của hệ thống
nhận dạng mặt người được thể hiện như hình sau:

Hình 1.3: Cấu trúc tổng quát của hệ thống nhận dạng mặt
- Tiền xử lý (Pre-Processing): Chức năng này để chuẩn hóa
ảnh cần tìm giúp cho việc tìm kiếm được hiệu quả hơn. Các công
việc trong bước tiền xử lý có thể là: Chuẩn hóa kích cỡ giữa ảnh
trong CSDL và ảnh cầm tìm, hiệu chỉnh độ sáng, tối của ảnh; lọc
nhiễu, chuẩn hóa về vị trí, tư thế ảnh mặt.
- Tách khuôn mặt (FD): Chức năng này làm nhiệm vụ xác
định vị trí, kích cỡ của một hoặc nhiều khuôn mặt trên ảnh chụp từ đó
tách ra phần mặt. Phần ảnh mặt đươc tách ra thường nhỏ hơn nhiều
so với ảnh chụp ban đầu, nó sẽ là các khuôn mặt cần tìm và chức
năng trích chọn đặc trưng sẽ sử dụng các ảnh được tách ra này.
- Trích chọn đặc trưng (FE): Tìm ra các đặc trưng chính
của ảnh mặt, từ các đặc trưng này hình thành các vector đặc trưng,
các vector này sẽ được sử dụng để đối sánh sự giống nhau giữa ảnh
mặt cần tìm và ảnh mặt trong CSDL.
- Đối sánh (Comparison): Thực hiện việc so sánh giữa các

vector đặc trưng để chọn ra độ tương tự giữa ảnh cần tìm và ảnh
trong CSDL.
Ảnh chân dung mặt người cho giấy tờ xuất nhập cảnh và đi
đường thỏa mãn các yêu cầu của tiêu chuẩn quốc tế ISO/IEC JTC
1/SC 37 N 506- Part 5: Face Image Data
Hệ thống nhận dạng mặt người cần đảm bảo các yêu cầu:
- Độ chính xác nhận dạng có thể chấp nhận được đối với
yêu cầu của bài toán nhận dạng;
-4-

- Tốc độ vận hành cao đối với các CSDL lớn và số lượng
các yêu cầu có thể giải quyết được;
- Đơn giản trong việc cài đặt, lựa chọn thiết bị và vận
hành. An toàn với người sử dụng.
1.1.3. Nhận dạng khuôn mặt người và ứng dụng
1.2. Đặc trƣng PCA và bài toán nhận dạng mặt ngƣời
1.2.1. Giới thiệu
Phương pháp này được phát minh năm 1901 bởi Karl
Pearson[12] 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 bao
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ận
tuơng quan dữ liệu hay phân tính các giá trị đơn của ma trận dữ liệu
thường sau khi tí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ên trong 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ương
phá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ể khi quan sát từ chính những đặc trưng cơ bản nhất của vật

thể đó.
1.2.2. Đặc trưng PCA
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 K thuộc tính “mới” từ M các thuộc tính
ban đầu (K<M)
1.2.3. Một số kỹ thuật cơ bản trong nhận dạng
1.2.3.1. Chuyển ảnh màu thành ảnh xám
1.2.3.2. Các bộ lọc không gian
1.2.3.3. Tách biên đối tượng








-5-

Chƣơng 2: KĨ THUẬT PCA TRONG NHẬN DẠNG
KHUÔN MẶT
2.1. Trích chọn đặc trƣng PCA và huấn luyện
2.1.1. Nhận các khuôn mặt từ cơ sở dữ liệu – tập luyện
Đầu tiên chúng ta sẽ đọc cơ sở dữ liệu và nhận vào các ảnh
luyện I
i
. Các ảnh luyện ở đây đều là ảnh mặt, điều kiện quan trọng là
chúng có mặt ở tâm ảnh và có cùng kích thước với nhau.
Giả sử có M ảnh, khi đó i=1 M.


Hình 2.1: Các ảnh luyện có cùng kích thƣớc và mặt ở tâm ảnh
Sau đó ta tương ứng mỗi ảnh I
i
với một vector Γ
i

I
i
(ảnh N×N) → Γ
i
(vector N
2
×1)
2.1.2. Tính toán giá trị trung bình
Giá trị vector trung bình:
=
1



i

=1
(2.2)
Với M là số ảnh trong tập luyện, Γ
i
là vector 1 chiều (N
2
×1) đại

diện cho mỗi ảnh.
Ψ là vector trung bình (kích thước N
2
×1)của tập tất cả các Γ
i

trên; Ψ còn được gọi là vector trung bình mặt của tập luyện.
2.1.3. Trừ đi giá trị trung bình
Sai số của các ảnh so với giá trị vector mặt trung bình được tính
toán theo công thức (2.3)
Φ
i
= Γ
i

– Ψ
(2.3)
Trong đó: 
i
là vector sai số ứng với mỗi ảnh, 
i
là vectot 1 chiều
của các ảnh,  là vector trung bình mặt.
2.1.4. Tính ma trận hiệp biến
Ma trận hiệp biến được tính theo công thức sau:
=
1








= 


=1
(2.4)
-6-

Trong đó C là ma trận hiệp biến (kích thước N
2
×N
2
)
=
1


[
1

2
. . . 

] (2.5)
A là ma trận N
2
×M, 

n
là giá trị sai số được tính ở công
thức (2.3).
2.1.5. Tính các trị riêng và vector đặc trưng của ma
trận hiệp biến
Để tính các trị riêng và vector đặc trưng của ma trận hiệp biến
ta phải tính với ma trận C hay chính là tính cho ma trận AA
T
. Tuy
nhiên điều này là không khả thi, do C là ma trận N
2
×N
2
nên số chiều
là quá lớn, khối lượng tính toán là vô cùng nhiều (đặc biệt khi kích
thước ảnh luyện lớn thì N lớn, N
2
và N
2
×N
2
là cực kì lớn)
Ta nhận thấy 2 ma trận AA
T
và A
T
A luôn có chung trị riêng và
vector đặc trưng thì có liên hệ với nhau bởi biểu thức u
i
= Av

i
mà ma
trận A
T
A lại có số chiều ít hơn hẳn (ma trận M×M) nên ta sẽ chuyển
đổi về ma trận A
T
A.
Sau khi tính toán ta được M vector đặc trưng của AA
T
(u
i
= Av
i
)
tương ứng với M giá trị riêng.
Chuẩn hóa các vector đặc trưng u
i
về vector đơn vị:
||u
i
|| =1 (2.12)
2.1.6. Lựa chọn các thành phần và xây dựng vector
đặc trưng
Để giảm thiểu tối đa số chiều cũng như giảm độ phức tạp tính
toán, ta chỉ giữ lại K vector đặc trưng (tương ứng K giá trị riêng lớn
nhất). Khi đó mỗi khuôn mặt sau khi trừ đi giá trị trung bình sẽ được
đại diện bởi K vector đặc trưng:




 =







=1
, (

= 




) (2.13)
Mỗi khuôn mặt training 
i
sẽ được biểu diễn bởi một vector:


=





1



2









, = 1,2, ,  (2.14)
Trong đó 


(j=1 K) là các trọng số tương ứng với K vector đặc
trưng, 

là vector đại diện cho khuôn mặt thứ i trong tập luyện.
2.2. Nhận dạng dựa trên đặc trƣng PCA (Face Recoginition)
Đưa một bức ảnh có một khuôn mặt trong đó (khuôn mặt đã
được chuẩn hóa), nhận dạng đưa ra thông tin về người đó.
-7-

2.2.1. Trích rút đặc trưng PCA
Mỗi ảnh đưa vào nhận dạng (đã được chuẩn hóa về ánh sáng,
góc chụp) có kích thước N×N tương đương với N
2
vector đặc trưng

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

Hình 2.2: Trích rút đặc trƣng
2.2.2. Chuẩn hóa, trừ đi vector trung bình
Cũng giống như bước xử lý đầu ở trên, trước tiên ta đọc ảnh I vào
từ tập thử nghiệm rồi chuyển ảnh về mức xám và vector 1 chiều .
Sau đó tiến hành chuẩn hóa cho bức ảnh, tức là trừ đi giá trị
vector trung bình mặt (đã tính ở trên công thức 2.2) hay nói cách khác
là tính sai số của ảnh so với vector mặt trung bình.
Chuẩn hóa  :
Φ
=
Γ

Ψ (2.15)
2.2.3. Đưa vào không gian đặc trưng
Sau khi đã chuẩn hóa, chúng ta đưa ảnh thử nghiệm vào không
gian trị riêng bằng cách thực hiện phép nhân sau:


=








=1
, (

= 


) (2.16)
Trong đó K là số vector đặc trưng của không gian ảnh
u
i
(i=1 K) là K vector đặc trưng lớn nhất
w
i
là các trọng số tương ứng với các vector đặc trưng
2.2.4. Tương ứng với
Ảnh sau khi được đưa vào không gian trị riêng thì nó sẽ được
tương đương với một vector  mà mỗi phần tử của  là hệ số tương
ứng của ảnh thử nghiệm so với các vector đặc trưng tương ứng trong
không gian trị riêng.
-8-

=


1

2





(2.17)
2.2.5. Tính khoảng cách e
r

Bước này chúng ta sẽ tính khoảng cách Euclide của ma trận  so
với không gian mặt. Tức là ta sẽ đi tính khoảng cách tới từng bức ảnh
trong tập ảnh luyện và tìm ra khoảng cách tới bức ảnh luyện gần nhất
trong không gian mặt. Khoảng cách này được gọi là khoảng cách trong
không gian mặt (distance within the face space –difs).
(2.18)

2.2.6. So sánh khoảng cách ngưỡng và rút ra kết luận
Sau khi tính được khoảng cách Euclide, ta so sánh với khoảng cách
ngưỡng T
r
(khoảng cách ngưỡng này được xác định thực nghiệm tùy
thuộc vào từng tập ảnh luyện và tùy thuộc vào số vector đặc trưng
được giữ lại).
Nếu
e
r
< T
r
thì  được nhận diện là khuôn mặt thứ l trong tập
training còn không thì  không là khuôn mặt nào trong tập luyện đã
cho.

















-9-

Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM
3.1. Bài toán
Trong chương này của luận văn xây dựng chương trình giải
quyết vấn đề sau:
+ Đầu vào: Là ảnh một khuôn mặt của một người nào đó đã
được chuẩn hóa.
+ Đầu ra: Chương trình nhận dạng đưa ra ảnh và thông tin về
người đó.
3.2. Phân tích chƣơng trình
3.2.1. Xây dựng cơ sở dữ liệu
Tập dữ liệu được chia làm hai tập chính là tập luyện (training)
và tập thử nghiệm (testing). Mỗi gương mặt đều xuất hiện năm lần
trong mỗi tập với các tư thế khác nhau và góc chụp khác nhau.
a. Tập ảnh luyện ( Training)


Hình 3.1: Một phần của tập ảnh luyện
b. Tập ảnh thử nghiệm (Testing)

Hình 3.2: Một phần của tập ảnh thử nghiệm
-10-

Xét về mặt kỹ thuật, các ảnh đều được chuẩn hóa về ảnh màu
có cùng kích thước 300x300 điểm ảnh.
3.2.2. Huấn luyện
Đầu tiên là thuật toán về tính toán đặc trưng mặt (eigenface)
trong trong tập luyện (training).
Lưu đồ thuật toán như sau:

Hình 3.3. Lƣu đồ thuật toán tính đặc trƣng mặt trong tập luyện
Việc đầu tiên luôn là đọc các ảnh từ tập ảnh luyện vào cơ sở dữ
liệu. Khi đọc, ảnh sẽ ở dạng ảnh màu, kích thước 300x300. Ta sẽ tiến
hành các bước tiền xử lý cơ bản cho ảnh, đó là đưa ảnh về mức xám và
chuyển thành vector một chiều.
Sau khi thực hiện lệnh, ảnh màu sẽ chuyển thành ảnh xám.
+ Tính vector trung bình mặt của tập ảnh luyện.
Để tính vector trung bình này ta nhóm các vector 1 chiều ở trên
vào 1 ma trận T rồi thực hiện việc tính vector trung bình bằng lệnh
***
m = mean(T,2); % m = (1/M)*sum(Tj's) (j = 1 : M)
***
+ Tính sai số từng ảnh so với ma trận trung bình. Các vector sai
số này sau đó sẽ được gộp thành một ma trận là ma trận A.
****
Train_Number = size(T,2);

A = [];
for i = 1 : Train_Number
temp = (double(T(:,i)) - m); % tru di trung binh Ai = Ti-m
A = [A temp];
end
****
Như vậy ta đã được ma trận A, ma trận hiệp biến C= AA
T
.
-11-

+ Tính trị riêng và vector riêng của C.
Ta tính trị riêng và vector riêng của AA
T
thông qua tính trị riêng và
vector riêng của ma trận A
T
A.
***
L = A'*A;
[V D] = eig(L);
***
Ta đã tính được vector đặc trưng và trị riêng tương ứng của A
T
A ở
2 biến V và D tương ứng. Tính vector đặc trưng của ma trận AA
T
theo
công thức u
i

= Av
i

***
L2=[];
k= ratio* size(V,2) ; % k duoc xac dinh theo tham so ratio
for i = 1 : k % chi giu lai k vector co tri rieng lon nhat
L2=[L2 (A * V(:,i))]; % chuyen doi theo ui=Avi
end
% chi con k gia tri rieng
***
+ Trích chọn số đặc trưng (eigenface)
Chỉ giữ lại K vector lớn nhất bằng cách giữ lại các K vector đầu
tiên (trong ma trận các vector đặc trưng) tương ứng với K trị riêng lớn
nhất. Hình 3.6 mô tả quá trình chuyển từ không gian mặt đầy đủ về
không gian con K vector đặc trưng.

Hình 3.6: Mô hình quá trình tạo các đặc trƣng mặt

+ Chuẩn hóa về vector đơn vị.
-12-

***
% chuan hoa |u|=1
for i = 1 : k
if((norm(L2(:,i))~=1)&&(norm(L2(:,i))~=0))
L2(:,i)= L2(:,i)/ (norm(L2(:,i)));
end
end
***

+ Biểu diễn các ảnh theo vector trị riêng vừa tìm được
Các ảnh sẽ tương ứng với một vector trọng số w
j
mà mỗi hệ số
của vector là hệ số tương ứng với một vector đặc trưng trong số các
vector đặc trưng vừa tìm được. Ta có thể biểu diễn như sau:


Hình 3.8: Ảnh ban đầu đƣợc biểu diễn theo các trọng số w
i
và eigenface.
Hình 3.8 cho thấy, hình ảnh ban đầu sẽ bằng ảnh trung bình
cộng với tổng tất cả các đặc trưng mặt nhân với trọng số tương ứng.
3.2.3. Nhận dạng khuôn mặt
Đưa ảnh có một khuôn mặt của người nào đó đã được chuẩn hóa.
Ta có lưu đồ thuật toán nhận dạng khuôn mặt:






-13-


Hình 3.9: Lƣu đồ thuật toán nhận dạng khuôn mặt
Đầu tiên ta cũng đọc ảnh vào từ tập thử nghiệm, với lưu ý ảnh
thử nghiệm phải có cùng kích thước với ảnh trong tập luyện (kích
thước 300x300). Sau đó tiến hành xử lý cơ bản chuyển ảnh thành ảnh
xám và đưa về vector 1 chiều (N

2
×1).
+ Trừ đi vector trung bình mặt đã tính ở trên.
***
Difference = double(InImage)-m; % nomalized
***
+ Đưa ảnh thử nghiệm vào không gian đặc trưng mặt
Mục đích của bước này nhằm tìm ra các trọng số w
i
tương ứng với
từng vector đặc trưng của ảnh luyện. Bước này được mô tả bằng công
thức (3.1):


= 


 (3.1)
Với các u
i
(i=1 k) là các vector đặc trưng của tập ảnh luyện

Code như sau:
***
ProjectedTestImage = Eigenfaces'*Difference;
***
+ Tính khoảng cách Euclide
***
Euc_dist = [];
for i = 1 : Train_Number

q = ProjectedImages(:,i);
-14-

temp = norm( ProjectedTestImage - q ); Euc_dist = [Euc_dist temp];
end
***
Tính lần lượt khoảng cách từ vector của ảnh thử nghiệm đến
từng vector ảnh mặt của tập ảnh luyện (M ảnh) rồi đưa chúng vào một
ma trận (Euc_dist). Mục đích của việc đưa vào ma trận Euc_dist này
nhằm tìm ra được giá trị nhỏ nhất trong các khoảng cách đó để xem
ảnh thử nghiệm gần với ảnh nào nhất trong tập luyện.
***
[Euc_dist_min , Recognized_index] = min(Euc_dist);
***
Giá trị khoảng cách nhỏ nhất đó được lấy ra và gán vào biến
Euc_dist_min.
+ So sánh khoảng cách này với khoảng cách ngưỡng để rút ra kết
luận liệu nó có phải là bức ảnh nào trong tập luyện hay không.
***
Threshold = 7e+3;
Euc_dist_min
if (Euc_dist_min < Threshold)
temp= strcat(int2str(Recognized_index),'.jpg');
else
temp='0';
end
OutputName = temp;
***
Ngưỡng ở đây đang được gán nhờ thực nghiệm tương ứng với
tập cơ sở dữ liệu đã xây dựng.

Toàn bộ quá trình đọc cơ sở dữ liệu tạo không gian ảnh và nhận
dạng mặt có thể được tóm lại trong mô hình sau:
-15-


Hình 3.10: Mô hình tóm tắt quá trình tạo không gian ảnh và
nhận dạng
3.3. Thiết kế chƣơng trình
3.3.1. Giao diện chương trình
Giao diện chính của chương trình như sau:

Hình 3.11: Giao diện chính của chƣơng trình
-16-

Chương trình gồm 3 tab: Recognition, Webcam và Help tương ứng
với các chức năng nhận dạng qua ảnh tĩnh (Recognition), webcam
(phần mở rộng) và phần trợ giúp Help.
 Thẻ Recognition: Bao gồm các chức năng
+ Creat Database: Tạo cơ sở dữ liệu cho chương trình từ tập
luyện (training)
+ Open the Test Image: Đưa ảnh cần nhận dạng (xác thực) vào
từ tập thử nghiệm (testing)
+ Recognition: Nhận dạng ảnh đưa vào là ai trong tập cơ sở dữ
liệu, đưa ra thông tin về người đó.
+ Quality factor: Lựa chọn số vector đặc trưng trong k được giữ
lại để tạo không gian mặt
 Thẻ Webcam:

Hình 3.12: Giao diện của thẻ Webcam.
Thẻ tab này được xây dựng nhằm mục đích nhận dạng mặt người

từ một đoạn video có sẵn hoặc hình ảnh truyền trực tiếp từ
webcam.
 Thẻ Help:
Thẻ cung cấp các thông tin về tác giả cũng như thông tin thêm
về chương trình và cách sử dụng các chức năng trong các tab.
3.3.2. Hoạt động của chương trình
3.3.2.1 Tạo cơ sở dữ liệu cho chương trình
Tạo cơ sở dữ liệu cho chương trình chọn nút Creat database
-17-


Hình 3.13: Tạo cơ sở dữ liệu cho chƣơng trình
Hộp thoại Browse For Foder xuất hiện chọn đường dẫn tới tập
ảnh luyện. Chọn OK, chương trình đọc cơ sở dữ liệu (database) và
tạo ra các đặc trưng mặt. Quá trình đọc xong, chương trình cập nhật
trạng thái

Hình 3.14: Hoàn tất quá trình đọc dữ liệu
Chương trình đưa ra số K đặc trưng mặt được giữ lại

Hình 3.15: Số đặc trƣng mặt đƣợc giữ lại trong tập luyện
3.3.2.2. Đưa ảnh vào nhận dạng
Nhấn nút Open the Test Image
-18-


Hình 3.16: Đƣa ảnh thử nghiệm vào chƣơng trình
Cửa sổ Select the test image xuất hiện chọn ảnh cần nhận dạng
từ tập thử nghiệm (file có định dạng “*.jpg”). Chọn OK
Ảnh nhận dạng đưa vào phải có cùng kích thước với ảnh luyện

Ảnh hiển thị trên khung trái cửa sổ

Hình 3.18: Ảnh thử nghiệm đƣợc đƣa vào nhận dạng
3.3.2.3. Nhận dạng khuôn mặt
Chọn nút Recognition để nhận dạng
-19-


Hình 3.19: Thực hiện chức năng nhận dạng khuôn mặt
Chương trình đối sánh ảnh đưa vào với các ảnh trong cơ sở dữ
liệu. Nếu nhận dạng được sẽ đưa ra ảnh và thông tin về người đó

Hình 3.20: Kết quả nhận dạng
Nếu không nhận dạng được, chương trình sẽ đưa thông báo như
Hình 3.21
-20-


Hình 3.21: Kết quả không nhận dạng đƣợc
3.4. Một số kết quả của chƣơng trình
3.4.1. Tính khoảng cách khi số lượng vector đặc trưng
thay đổi
Tính toán khoảng cách đến ảnh và đến không gian ảnh, khi số
lượng đặc trưng mặt K (eigenface) thay đổi. Điều này sẽ dẫn tới sự thay
đổi về mặt thời gian cũng như độ chính xác của chương trình.
Để đánh giá được điều này, chia ảnh thử nghiệm làm ba loại:
+ Ảnh mặt của người mà mặt người đó có trong tập ảnh luyện
+ Ảnh mặt của người mới mà người đó không xuất hiện trong
tập ảnh luyện
+ Ảnh bất kì (không phải là mặt)

Với mỗi loại ảnh thử nghiệm, đều tính toán hai khoảng cách
+ Khoảng cách đến ảnh mặt gần nhất trong tập luyện
+ Khoảng cách đến không gian mặt
Các khoảng cách là khoảng cách trung bình của cả tập thử
nghiệm tương ứng với mỗi loại.
Kết quả thực nghiệm trong Bảng 3.1:
Bảng 3.1: Khoảng cách thay đổi theo số lƣợng eigenface
Số lƣợng
Eigenfaces
Khoảng cách tới ảnh
luyện gần nhất
Khoảng cách đến
không gian mặt
Ảnh có khuôn mặt nằm trong tập ảnh luyện
15
778.6
11519.0
30
1566.5
11351.1
-21-

45
2380.8
11061.7
60
3438.6
4314.9
Ảnh có khuôn mặt không nằm trong tập luyện (gương mặt mới)
15

1194.4
10951.4
30
2129.3
10839.0
45
3892.7
10470.0
60
10485.0
7327.3
Ảnh bất kì (không có khuôn mặt)
15
3257.7
26386.2
30
5874.3
24569.9
45
9996.3
25938.5
60
18847.0
17617.6
Quan sát bảng kết quả thu được, ta có một số nhận xét sau:
+ Khoảng cách tới ảnh luyện gần nhất tăng theo số lượng
eigenface; điều này là hoàn toàn chính xác vì khi số lượng eigenface
tăng, nghĩa là ta đã đưa ảnh (chiếu ảnh) vào không gian mặt nhiều
chiều hơn, vì thế tính chi tiết, tính phân biệt ảnh cao hơn dẫn đến
khoảng cách tới ảnh gần nhất tăng lên.

+ Khoảng cách tới không gian ảnh giảm theo số lượng eigenface.
Điều này tuy trái ngược với chiều tăng của khoảng cách tới ảnh luyện
gần nhất, nhưng nó cũng có cùng nguyên nhân ở trên. Đó là do không
gian ảnh được mở rộng, các lỗi dư thừa được loại bỏ.
+ So sánh ảnh có khuôn mặt thuộc tập luyện và ảnh khuôn mặt
mới. Khoảng cách tới không gian mặt thì không có sự khác nhau
nhiều. Tuy nhiên khoảng cách tới ảnh gần nhất thì có sự chênh lệch
nhất định giữa hai loại ảnh: khuôn mặt mới luôn có khoảng cách lớn
hơn khuôn mặt nằm trong tập luyện.
+ So sánh ảnh mặt và ảnh bất kì. Chúng ta có thể thấy sự khác biệt
khoảng cách đến không gian mặt của hai loại ảnh là rất rõ ràng. Không
gian đặc trưng cho ảnh mặt sẽ không biểu diễn đúng cho ảnh bất kì và
vì thế khoảng cách là lớn hơn rất nhiều.
3.4.2. Đánh giá độ chính xác của chương trình
Ảnh thử nghiệm được chia làm bốn loại: ảnh trong chính tập
luyện, ảnh mặt chưa luyện nhưng có trong tập luyện, gương mặt mới
và cuối cùng là ảnh bất kỳ không phải là mặt.
Kết quả trả ra là số lượng các ảnh được nhận dạng, không nhận
dạng ra mặt và không phải là mặt.
-22-

Kết quả thực nghiệm cụ thể trong Bảng 3.2:
Bảng 3.2: Độ chính xác theo số lƣợng eigenface
Số lƣợng
Eigenfaces
Nhận ra
Không
nhận ra
Không phải
là mặt

Tổng số
Ảnh trong chính tập ảnh luyện
15
65
0
0
65
30
65
0
0
65
45
65
0
0
65
60
65
0
0
65
Ảnh khuôn mặt nằm trong tập ảnh luyện
15
20
6
0
26
30
22

4
0
26
45
23
3
0
26
60
26
0
0
26
Khuôn mặt không nằm trong tập luyện (gương mặt mới)
15
7
14
0
21
30
5
16
0
21
45
2
19
0
21
60

0
21
0
21
Ảnh bất kì (không có khuôn mặt)
15
0
0
10
10
30
0
0
10
10
45
0
0
10
10
60
0
0
10
10
Từ bảng thực nghiệm cho thấy :
+ Việc phân biệt ảnh có mặt với ảnh không có mặt (ảnh bất kỳ)
đạt được độ chính xác khá cao ngay cả khi thay đổi số lượng
eigenface. Đạt được điều này là do sự chênh lệch lớn về khoảng cách
đến không gian ảnh giữa hai loại ảnh này như được chỉ ra trong

Bảng 3.1.
+ Độ chính xác của phương pháp thay đổi theo số lượng
eigenface. Khi số lượng eigenface càng lớn thì khả năng nhận dạng
của chương trình càng cao.
Qua đây ta có thể rút ra kết luận rằng để tăng độ chính xác của
phương pháp nhận dạng, ta cần phải tiến hành tiền xử lý ảnh:
chuẩn hóa ảnh mặt theo góc nghiêng, hướng nhìn, điều kiện ánh sáng
cũng như ảnh nền.
-23-

KẾT LUẬN

Luận văn tốt nghiệp đã trình bày chi tiết, cụ thể về nhận dạng
khuôn mặt người dựa trên kỹ thuật PCA. Và xây dựng chương trình
thử nghiệm để đánh giá kết quả của việc sử dụng kỹ thuật PCA để
nhận dạng, từ thực nghiệm ta cũng thu được một số kết quả cũng
như đánh giá về thuật toán sử dụng. Các kết quả đạt được cho thấy độ
chính xác của chương trình tương đối cao khoảng 97% nhận dạng đúng.
Tuy nhiên, do thời gian có hạn cộng thêm khối lượng công việc lớn
nên vẫn còn một số vấn đề và ý tưởng mà luận văn chưa thực
hiện được.
Nhằm cải thiện khả năng hoạt động của chương trình, chương
trình sẽ có thêm chức năng:
+ Tự động đưa ảnh nhận dạng về kích thức phù hợp khi ta thực
hiện thao tác quét ảnh đưa vào chương trình.
+ Nhận dạng mặt người qua đoạn video hoặc webcam.
Ý tưởng đưa ra là nhập vào một đoạn video hay hình ảnh trực
tiếp từ webcam. Đoạn video hay hình ảnh webcam này có thể mô tả
một người với khung nền biến đổi hoặc là một người giữa đám
đông. Sau đó chương trình sẽ phát hiện và khoanh vùng vị trí của

khuôn mặt trong khung hình và truy xuất cơ sở dữ liệu và đưa ra thông
tin về người đó.
Đó là ý tưởng phát triển trong tương lai của luận văn. Hiện tại,
chương trình thực hiện được hai chức năng là đưa vào đoạn video và
chạy nó. Chương trình thử nghiệm được xây dựng trên thẻ tab webcam
của chương trình.
Hiện tại trong thẻ tab này thực hiện hai chức năng là đưa vào một
đoạn video từ ổ cứng (dùng nút open) và cho chạy đoạn video đó
(dùng nút play).
Chọn nút Open đưa đoạn video vào chương trình
Nhấn nút Play, đoạn video sẽ chạy trực tiếp trên chính khung
hình đó. Sau khoảng thời gian nhất định, chương trình nhận dạng được
sẽ hiển thị ảnh và thông tin về người đó trong khung hình bên phải

×