Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
CHƯƠNG I :
CÁC PHƯƠNG PHÁP NHẬN DẠNG
1/ Phương pháp phân tích các thành phần độc lập (ICA):
Đây là một giải pháp được ứng dụng cho nhiều mục đích khác nhau trong việc
xử lý tín hiệu và phân tích dữ liệu.
Một ví dụ cụ thể :
Tín hiệu tiếng gốc có thể giống như hình 2.1 và tín hiệu trộn có dạng như 2.2
Hình 2.1 Tín hiệu gốc
Hình 2.2 Tín hiệu trộn
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
1
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
Nếu như chúng ta biết các hệ số
α
, chúng ta có thể giải hệ phương trình tuyến
tính trên theo phương pháp thông thường và tìm đươc các tín hiệu ban đầu. Tuy nhiên
ở đây ta không biết các hệ số
α
do đó bài toán trở nên phức tạp.
Một hướng để giải quyết bài toán là sử dụng thông tin đặc trưng thống kê của
tín hiệu s(t) để xấp xỉ
α
. Và điều lưu ý tiếp theo là tín hiệu s
1
(t), s
2
(t) và s
Chúng ta bỏ qua chỉ số thời gian t (trong mô hình ICA), ta giả sử mỗi tổ hợp x
j
ứng với mỗi thành phần độc lập s
k
là biến ngẫu nhiên, thay cho tín hiệu theo thời gian
thích hợp. Giá trị quan x
j
(t), những tín hiệu thu được từ microphone trong bài toán
cocktail-party, là mẫu của biến số ngẫu nhiên. Không mất tính tổng quát, ta giả sử cả
biến trộn lẫn và thành phần độc lập có giá trị trung bình không. Nếu thực tế không
đúng, có thể đưa các biến số quan sát x
i
về gía trị trung tâm bằng cách trừ với mẫu
trung bình.
Điều đó rất thuận tiện khi dùng ký hiệu ma trận vector thay cho dạng tổng như
các công thức trước đây. Điều này cho thấy với vector ngẫu nhiên x, các thành phần
của nó là tổ hợp
1 2
, , ,
n
x x x
tương tự như vector ngẫu nhiên s với các thành phần
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
2
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
1 2
, , ,
n
Điểm khởi đầu của ICA là sự thừa nhận rất đơn giản rằng các thành phần s
i
là
độc lập thống kê. Tiếp theo chúng ta phải thừa nhận các thành phần độc lập phải có
phân bố không Gauss. Tuy nhiên, ở mô hình cơ bản chúng ta không cần biết sự phân
bố này. Một cách đơn giản, chúng ta chỉ cần giả thiết ma trận trộn chưa biết là ma trận
vuông. Sau đó ta xấp xỉ ma trận A, chúng ta có thể tính ma trận ngược (là W), các
thành phần độc lập có thể được tính bằng công thức:
S = Wx (2.4)
ICA cũng tương tự phương pháp “phân chia nguồn mù” (BBS) hoặc phân chia
tín hiệu chưa biết.”Nguồn” có nghĩa là các tín hiệu gốc, là các thành phần
độc lập, tương tự như trong bài toán cocktail-party.”Mù” có nghĩa là biết rất
ít. ICA là một phương pháp có thể được ứng dụng rất rộng rãi trong việc trình bày
quá trình phân chia nguồn mù.
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
3
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
Trong nhiều ứng dụng, chúng ta giả thiết có thêm nhiễu trong quá trình đo đạc, có
nghĩa là phải thêm thành phần nhiễu vào mô hình tính toán. Để đơn giản đôi khi ta có
thể bỏ qua thành phần nhiễu.
Các điểm không xác định trong ICA:
Trong mô hình ICA (2.2), chúng ta có thể thấy các điểm không xác định như
sau:
Chúng ta không thể xác định được thành phần biến (số cột ma trận
tương quan) của các thành phần độc lập.
Lý do là cả S và A đều không được biết, phép nhân vô hướng của nguồn
s
i
2/ Nhận dạng mặt người bằng AdaBoost kết hợp mạng nơron:
Phát hiện mặt người là bước đầu tiên của hệ nhận dạng mặt người. Tốc
độ xử lý và hiệu suất của hệ nhận dạng phụ thuộc rất nhiều vào quá trình phát
hiện khuôn mặt.
Phương pháp AdaBoost được đánh giá là nhanh nhất trong các thuật
toán dò tìm hiện nay. Tuy nhiên những khuôn mặt tìm được có độ chính xác
chưa cao (kết quả dò tìm thừa). Vì vậy cần một bộ lọc để loại bỏ các kết quả
thừa.
Mạng nơron có khả năng dò tìm tương đối tốt. Ngoài ra khả năng chứng
thực mặt người của mạng nơron là rất tốt. Vì vậy ta có thể kết hợp với
AdaBoost ở tầng cuối để tạo thành một hệ thống nhất.
AdaBoost – NN là mô hình dò tìm khuôn mặt bằng AdaBoost kết hợp
mạng nơron. AdaBoost sẽ đóng vai trò là bộ dò tìm nhanh các khuôn mặt.
Mạng nơron sẽ lọc ra các dò tìm sai để cho kết quả chính xác hơn. Ảnh sau khi
qua mạng nơron sẽ xác định chính xác vị trí của khuôn mặt. Hệ thống dò tìm
được minh hoạ trong hình sau:
Phát hiện khuôn mặt nhanh bằng AdaBoost : Các ảnh đầu vào sẽ được
tính tích phân của ảnh theo các đặc trưng Haar – like. Các đặc trưng này sẽ
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
Tiền xử lý
ảnh
Ảnh đầu
vào
Ảnh khuôn
mặt
Ảnh đã tiền
xử lý
Bộ dò tìm
AdaBoost
tìm kiếm sau. Nếu đã có file data thì chương trình không cần dò tìm khuôn mặt
mà sẽ lấy ảnh khuôn mặt theo mô tả trong file data.
- Việc chép ảnh gốc vào thư mục riêng nhằm phục vụ cho các điều tra viên
kiểm tra lại ảnh tìm được. Vì tập ảnh lớn, thời gian chạy chương trình sẽ rất lâu
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
6
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
cho nên người dùng không thể ngồi theo dõi chương trình mà phải chép ảnh
tìm được vào một thư mục riêng.
Sơ đồ xử lý nhận dạng khuôn mặt
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
Tập ảnh lớn
(kho ảnh)
Lưu vị trí và kích thước
ảnh vào file data
Ảnh khuôn mặt
mẫu
Mạng nơron
Chép ảnh gốc vào thư
mục cho trước
Tiền xử lý và rút
trích đặc trưng
Bộ trọng số của
mạng nơron đã
được huấn luyện
Ảnh khuôn
mặt tìm được
I
a
ω
=
với các mẫu thuộc lớp yi = +1
(0)
1
2
I
b
ω
=
với các mẫu thuộc lớp yi = -1
M = 0
B3. Suy diễn tiến
While M < Mmax
(1) M <- M +1
(2) Chọn hm dựa theo biểu thức (4)
(3) Cập nhật
[ ]
( )
exp ( )
M
i i M i
y H x
ω
¬ −
và chuẩn hóa để
( )M
i
Vladimir N. vapnik đề xuất năm 1995. SVM là phương pháp nhận dạng dựa
trên lý thuyết học thống kê ngày càng đươọc sử dụng phổ biến trong nhiều lĩnh
vực, đặc biệt là lĩnh vực phân loại mẫu và nhận dạng mẫu. Đồng thời có nhiều
tình năng ưu việt so với các phương pháp cổ điển khác: dể dàng xử lý, xử lý
với tính ổn định cao trên dữ liệu phức tạp, có thể có số chiều lớn và quan trọng
hơn cả là khả năng xử lý tổng quát.
SVM (Support Vector Machines) là một phương pháp máy học tiên tiến
đã có nhiều thành công không chỉ trong các lĩnh vực khai phá dữ liệu mà còn
trong lĩnh vực nhận dạng. Trong những thập niên gần đây, SVM được đánh giá
là một trong những phương pháp phân lớp có độ chính xác rất cao và nó cũng
đã được áp dụng nhiều trong các bài toán nhận dạng. Vì vậy chúng ta có thể
ứng dụngtrong nhận dạng trên cơ sở phương pháp phân lớp SVM. Trích chọn
đặc trưng phục vụ cho công việc huấn luyện và nhận dạng là một bước rất quan
trọng trong một hệ thống nhận dạng.
Phương pháp SVM: gồm hai giai đoạn là huấn luyện và nhận dạng
Giai đoạn huấn luyện :Các ảnh mẫu được véc tơ hóa x = {x
1
, . .,x
900
}
rồi dùng phương pháp PCA để rút trích đặc trưng thành véc tơ y={y
1
, . .,y
100
}
rồi đưa vào bộ huấn luyện SVM .
Giai đoạn nhận dạng: Mẫu cần nhận dạng được cũng được véc tơ hóa
và rút trích như trên sau đó đưa vào bộ nhận dạng SVM để xác định lớp cho
mẫu . Tuy nhiên SVM là phương pháp phân lớp rất nhanh nhưng SVM có thể
phân một đối tượng nhầm lớp nên có thể dùng thêm phương pháp mạng
)} trong đó x
i
∈
R
D
và y
i
∈
{±1}, mục tiêu của
phương pháp phân lớp SVM là tìm một siêu phẳng phân cách sao cho khoảng cách lề
(margin) giữa hai lớp đạt cực đại
Khoảng cách lề giữa hai lớp là
2
2 2
.w w
w
=
. Để nới lỏng điều kiện phân lớp,
thêm vào một số yếu tố cân bằng và việc huấn luyện SVM chính là giải bài toán tối
ưu có ràng buộc:
,
1
1
min .
2
N
i
w b
i
α α α
−
÷
(3)
Thỏa mãn:
0
i
C
α
≤ ≤
và
1
0
N
i i
i
y
α
=
=
∑
,
trong đó α =[α
1
, , α
N
]
T
Thế (4) vào (1), ta có :
1
( ) ( ) ( )
N
i i i
i
g x y x x b
α
=
= Φ Φ +
∑
(5)
Giả sử Φ(x
i
).Φ(x
j
) = K(x
i
,x
j
). Nghĩa là, tích vô hướng trong không gian đặc
trưng tương đương với một hàm nhân K của không gian đầu vào. Vì vậy, ta không
cần phải tính trực tiếp các giá trị Φ(x
i
), Φ(x
j
) mà chỉ cần tính tích vô hướng
<Φ(x
i
).Φ(x
i i i
i
f x sng y K x x b
α
=
= +
÷
∑
(7)
trong đó, N
SV
là số véc tơ hỗ trợ.
SVM gồm có SVM tuyến tính và SVM phi tuyến.
SVM tuyến tính
Giả sử cho tập
{ }
1
,
n
i i
i
S x y
=
=
(1)
trong đó xi
∈
Rn và yi
( ) 1
T
i i
y w x b+ ≥
i = 1,2,…,n (4)
Nếu như bất phương trình (2) không đúng với một số phần tử trong tập
học,ta nói đây không phải là trường hợp phân cách tuyến tính. Trong trường
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
12
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
hợp này tabờ mặt phân cách là “mềm”( soft margin) nếu như có một vài phần
tử không thỏa (2) như trên. Để giải quyến trường hợp này, tập
{ }
1
n
i
i
ξ
=
được thêm
vào (2) như sau:
( ) 1
T
i i i
y w x b
ξ
+ ≥ −
i=1,2,…,n (5)
Trong đó C là tham số do người dùng chọn.
Một cách để giải quyết bài toán là dùng hàm Largange. Có hai lý do
cho điều này. Thứ nhất là ràng buộc (7 - 8) sẽ được thế bằng ràng buộc trên hệ
số nhân Lagrange, để dễ làm việc hơn. Thứ hai là dữ liệu huấn luyện sẽ chỉ
xuất hiện dưới dạng phép nhân vô hướng giữa các vector. Điều này cho phép
tổng quát hoá cho trường hợp phi tuyến. Đưa ra các hệ số nhân Lagrange
không âm αi, và βi , cho các ràng buộc bất đẳng thức (7-8). Bài toán đối ngẫu
trở thành :
Cực đại :
( )
1 1 1
1
2
n n n
i i j i j i j
i i j
Q y y x x
α α α α
= = =
= −
∑ ∑∑
(9)
Với ĐK :
1
0
n
i i
i
y
α
( )
1 0
0
T
i i i i
i i
y w x b
α ξ
β ξ
+ − + =
=
i=1,2,…n (12)
Trong đó :
i i
C
β α
= −
Có hai dạng tham số
i
α
, nếu như 0<
i
α
≤C thì mẫu tương ứng là véctơ
hỗ trợ. Véctơ lời giải cho bài toán chính là véctơ xác định bởi:
0
1
s
i
g x sing y x x b
α
=
= +
÷
∑
(15)
đồng thời siêu mặt phân cách chính là g(x) = 0. Trường hợp khác xảy ra nữa là
khi
i
α
=C (ξi>0 có thể tính được bằng(12)) và
i
α
= 0 (mẫu i đã được phân loại
đúng)
SVM phi tuyến:
Trong trường hợp phi tuyến, ta chỉ cần ánh xạ véctơ dữ liệu vào không
gian đặc trưng có số chiều cao hơn nhiều. Bằng cách sử dụng hàm ánh xạ
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
14
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
( )
M
x R
chính K(x,xi) phải thỏa điều kiện Mercer. Bằng cách sử dụng các hàm xử lý
chính, dữ liệu có thể được phân loại như sau:
Trong đó g(x) là hàm quyết định như sau:
( ) ( , )
S
i i i
N
g x sing y K x x
α
=
÷
∑
4/ Nhận dạng dùng Fuzzy SVM (SVM mờ) :
Với SVM, quá trình huấn luyện khá nhạy cảm với các mẫu cách quá xa lớp.
Nếu như hai lớp có thể phân cách tuyến tính thì SVM có thể tìm ra siêu mặt phân cách
mà không có mẫu nào bị phân loại sai kể hai tập mẫu có độ đo compact nhỏ đến mức
độ nào. Tuy nhiên xét trường hợp hai lớp không thể phân cách tuyến tính, việc chọn
đúng giá trị C có ý nghĩa khá quan trọng. (C chính là tham số do người dùng chọn cân
bằng giữa độ phức tạp của hệ số và số lượng lổi ). C càng lớn thì lỗi phân cách càng
nhỏ thì càng bỏ qua nhiều các mẫu phân cách sai, song bờ phân cách càng lớn. Dù C
nhỏ hay lớn thì gái trị C vẫn cố định trong quá trình huấn luyện. Do đó các mẫu được
huấn luyện ngang nhau, nên cuối cùng bớ phân cách sẽ nhạy cảm với những mẫu
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
15
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
vượt. Việc xem vai trò các mẫu ngang nhau sẽ dẫn đến việc huấn luyện SVM “quá
∑
. Tuy nhiên, với
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
16
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
từng mẫu trong tập mẫu ban đầu, nếu được một giá trị
i
µ
là độ đo thành viên. Khi đó
tương ứng với xác xuất gây lỗi chính là độ đo thành viên
i
µ
xác độ gắn kết thành viên
với cả tập mẫu ban đầu. Tập mẫu ban đầu trở thành tập mờ S
f
:
{ }
1
, ,
n
f i i i
i
S x y
µ
=
=
Với các mẫu dương(y
i
( )
1
T
i i i
y w x b
ξ
+ ≥ −
i = 1,2,…,n
0
ξ
≥
Trong đó m là độ mờ hóa của hàm lượng giá.
Hàm Lagrange trở thành :
( )
( )
1 1 1
1
, , , , , 1
2
n n n
T m i T
i i i i i i i
i i i
Q w b w w C y w x b
ξ α β µ µ ξ α ξ β ξ
= = =
= + − + − + −
∑ ∑ ∑
, , , , ,
0
n
i i
i
Q w b
y
b
ξ α β µ
α
=
∂
= − =
∂
∑
( )
, , , , ,
0
m
i i i
i
Q w b
C
ξ α β µ
µ α β
ξ
∂
= − − =
∂
Thay 3 phương trình vào phương trình trên, hàm Lagrange là hàm theo
∑
0
1,2, ,
m
i i
C
i n
α µ
≤ ≤
=
Dể thấy sự khác biệt duy nhất giữa SVM và FSVM chính là chặn trên của hệ
số nhân
i
α
trong bài toán đối ngẫu. Nếu như với SVM, chặn số cố định với giá trị
hằng số C, thì FSVM linh động hơn với độ đo thành viên của từng mẫu. Độ đo mẫu x
i
càng nhỏ thì vùng khả thi dọc theo trục
i
α
càng hẹp.
Cuối cùng ta có điều kiện là :
( )
( )
1 0
. 0
T
i i i i
m
i i i
k
f
a
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
Hình1.1: Mô hình một neural nhân tạo
Một neural được cầu tạo gồm các thành phần chính :
Liên kết neural.
Bộ cộng .
Hàm kích hoạt.
Mạng neural là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn
gọi là neural) tựa như neural thần kinh của não người, hoạt động song song và được
nối với nhau bởi các liên kết neural. Mỗi liên kết kèm theo một trọng số nào đó, đặc
trưng cho tính kích hoạt hoặc ức chế giữa các neural.
Hình 1.2: Sơ đồ đơn giản về một mạng neural
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
19
Đầu vào
Đầu ra a=f( ∑w’y+b)
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
Mô hình mạng neural ở trên gồm 3 lớp:
Lớp nhập (input).
Lớp ẩn(hidden).
Lớp xuất (output).
Phân loại mạng neural nhân tạo:
Mạng neural dẫn tiến
Mạng neural qui hồi
Phương pháp mạng Nơron gồm hai giai đoạn là huấn luyện và nhận dạng như sau:
Thuật toán:
Xét mạng neural 3 lớp : lớp nhập, lớp ẩn và lớp xuất.
Hàm kích hoạt các neural : logistic (sigmoid).
g(x)=
Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ.
Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào .
Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các neural đầu ra.
Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất. sử dụng
GRADIENT của hàm lỗi .
Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn. sử dụng
GRADIENT của hàm lỗi.
Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi).
Bước 7: quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu.
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
21
w
2
w
k
w
1
z=g(v)
v=b
0
+
g(x)=
y
1
y
>
=
=
∂
∂
−=
∂
∂
=
∂
∂
−=
∂
∂
0,
0,1
)1(
)(
1
iy
i
b
v
zz
v
g
0
ipy
ip
b
E
i
i
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
22
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
Đối với các neural lớp ẩn:
Đạo hàm riêng của hàm lỗi theo trọng số:
a
u
u
y
y
E
a
E
∂
∂
∂
∂
∂
∂
=
∂
=
=
∂
∂
−=
∂
∂
=
∂
∂
=−−=
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
=
∂
∂
∑
=
0,
0,1
1
)1()(
i
i
K
i
i
i
i
i
Đặt:
)1(
1
yybp
u
y
y
E
q
K
i
ii
−
=
∂
∂
∂
−=
−
i
w
E
ww
ii
µ
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
24
Luận Văn Tốt Nghiệp GVHD :
Nhận dạng mặt người dùng Gabor Wavelet Th.S Phạm Thành Danh
CHƯƠNG II:
GABOR WAVELETS
1/ Tổng quát về biến đổi Gabor Wavelet:
Hàm Gabor Wavelet được đề xuất đầu tiên bởi Dennis Gabor như là 1 công cụ
dùng để phát hiện tín hiệu từ tạp nhiễu.
2
0 0
( ) ( )
0
( , , ) .
t t i t t
t t e e
σ ω
ω
− − − −
Ψ =
ur
r
SVTH : Võ Văn Triều – 06106401 Trang
Lê Thanh Sơn – 06045621
25