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
-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
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
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.
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
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
=
=1
, (
=
) (2.13)
Mỗi khuôn mặt training
i
sẽ được biểu diễn bởi một vector:
=
1
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:
=
(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.
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);
= 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
***
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
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
Ả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)
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.
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
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
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