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

luận văn NHẬN DẠNG MẶT NGƯỜI VỚI ĐẶC TRƯNG GABOR WAVELET KẾT HỢP ADABOOST

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.6 MB, 101 trang )

Lời cảm ơn

1


Lời mở đầu
Sự ra đời của chiếc máy vi tính là một đột phá trong lịch sử loài người, một
bước tiến lớn trong khoa học. Máy vi tính đã giúp đỡ con người hồn thành từ
những cơng việc nhỏ nhặt như tính tốn vài con số đến những nhiệm vụ to lớn như
đưa con người lên mặt trăng một cách thuận lợi. Cơng dụng của máy vi tính vơ
cùng đa dạng. Sự đa dạng này là do con người đã tận dụng khả năng xử lý, tính
tốn và lưu trữ của máy để linh hoạt sáng tạo ra các ứng dụng khác nhau phục vụ
cho từng mục tiêu riêng biệt.
Nhận dạng khuôn mặt người là một trong những ứng dụng tuyệt vời của thị
giác máy tính nói riêng cũng như khoa học máy tính nói chung. Bài tốn nhận
dạng khn mặt người vốn được nghiên cứu từ những năm 1970 và cho đến nay,
rất nhiều nghiên cứu lẫn ứng dụng cho bài toán này đã ra đời. Tuy nhiên, bài tốn
nhận dạng khn mặt người vẫn cịn nhiều thử thách và trong luận văn này, chúng
tôi đề xuất một hướng giải quyết mới cho bài tốn, đó là: NHẬN DẠNG MẶT
NGƯỜI VỚI ĐẶC TRƯNG GABOR WAVELET KẾT HỢP ADABOOST. Với
hướng giải quyết này, chúng tơi lập trình ứng dụng để thực nghiệm, qua đó thấy rõ
được hiệu quả của hướng giải quyết. Luận văn gồm 4 chương, được bố cục như
sau:
• Chương 1 – Tổng quan: Giới thiệu bài tốn nhận dạng khuôn mặt
người, các hướng tiếp cận của bài tốn và đề xuất hướng tiếp cận
trong luận văn.
• Chương 2 – Cơ sở lý thuyết: Trình bày cơ sở lý thuyết cơ bản về
Gabor wavelet, phương pháp học AdaBoost và phương pháp gom
nhóm.
• Chương 3 – Xây dựng thuật giải: Nhận dạng mặt người với đặc
trưng Gabor wavelet kết hợp AdaBoost, đưa ra mơ hình giải quyết


bài tốn.
• Chương 4 – Cài đặt chương trình thực nghiệm, kết quả và đánh giá:
Thiết kế chương trình ứng dụng, giới thiệu về tập mẫu huấn luyện,
số đặc trưng cần lựa chọn; kết quả huấn luyện và kết quả kiểm tra;
đưa ra nhận xét và hướng phát triển trong tương lai.

2


Dù đã hết sức cố gắng nhưng trong bài viết khó tránh khỏi những sai sót.
Xin hãy gửi phản hồi cũng như những ý kiến đóng góp cho chúng tơi để đề tài này
ngày một hồn thiện hơn. Mọi góp ý xin liên hệ nhóm tác giả:

3


Mục lục
Lời cảm ơn

1

Lời mở đầu

2

Mục lục

4

Danh sách các hình


7

Danh sách các bảng

9

Chương 1: Tổng quan

10

1.1 Giới thiệu

10

1.1.1 Nhu cầu thực tế

10

1.1.2 Bài toán nhận dạng mặt người

10

1.1.3 Các ứng dụng hiện nay

12

1.1.4 Những khó khăn của bài tốn nhận dạng mặt người

13


1.2 Các hướng tiếp cận của bài toán nhận dạng mặt người

14

1.2.1 Các hướng tiếp cận

14

1.2.2 Một số cơng trình nghiên cứu hiện nay

15

1.3 Đề xuất hướng tiếp cận trong luận văn

17

Chương 2: Cơ sở lý thuyết

20

2.1 Gabor wavelet

20

2.1.1 Wavelet là gì?

20

2.1.2 Hàm cơ sở - Hàm cơ sở biến thiên tỉ lệ


23

2.1.3 Giải tích Fourier

24

2.1.4 Biến đổi Wavelet và biến đổi Fourier

26

4


2.1.5 Giải tích Wavelet

28

2.1.6 Gabor wavelet

30

2.1.7 Chọn Gabor wavelet biểu diễn khuôn mặt người

36

2.2 Tổng quan về AdaBoost

39


2.2.1 Giới thiệu

39

2.2.2 Phương pháp Boosting

39

2.2.3 AdaBoost

41

2.3 Tổng quan phương pháp gom nhóm

53

2.3.1 Giới thiệu

53

2.3.2 Phương pháp gom nhóm

53

2.3.3 Thuật tốn k-means

57

Chương 3: Xây dựng thuật giải


69

3.1 Vector Đặc trưng Gabor

69

3.1.1 Gabor wavelet

70

3.1.2 Đại diện cho ảnh khuôn mặt dùng Gabor wavelet

70

3.2 Không gian intra-personal và không gian extra-personal

74

3.3 Chọn lựa đặc trưng và phân lớp bằng AdaBoost

76

3.4 Gom nhóm cơ sở dữ liệu

81

Chương 4: Cài đặt chương trình thực nghiệm, kết quả và đánh giá

85


4.1 Thu thập và chuẩn hóa tập dữ liệu

85

4.2 Cài đặt chương trình thực nghiệm

87

4.3 Giao diện chương trình

88

4.4 Kết quả

91
5


4.5 Đánh giá

92

4.5.1 Ưu điểm

92

4.5.2 Khuyết điểm

93


4.5.3 Hướng phát triển

95

Tài liệu tham khảo

99

6


Danh sách các hình
Hình 1.1 – Một hệ thống nhận dạng mặt người.

11

Hình 2.1 – Hàm cơ sở Fourier, trục thời gian – tần số và độ phủ trong mặt phẳng.

27

Hình 2.2 – Hàm cơ sở wavelet Daubechies, trục thời gian – tần số và độ phủ trong
mặt phẳng.

28

Hình 2.3 – (Trái) Một họ Gabor wavelet; (Phải) Độ phủ của nó trong mặt phẳng.

35

Hình 2.4 – Một tập nhỏ các đặc trưng có thể nhận dạng mặt người.


35

Hình 2.5 – Phần thực của 40 bộ lọc Gabor theo 5 tỉ lệ và 8 hướng.

38

Hình 2.6 – Ví dụ của ảnh mặt người phản ứng trên bộ lọc Gabor.

38

Hình 2.7 – Minh họa Boosting trên tập mẫu là các điểm hai chiều.

42

Hình 2.8 – Quá trình cập nhật lại trọng số và xây dựng bộ phân loại mạnh H.

44

Hình 2.9 – Minh họa thuật toán AdaBoost trên tập mẫu là các điểm hai chiều.

48

Hình 2.10 – Các cách chia nhóm khác nhau của cùng một tập điểm.

54

Hình 2.11 – Minh họa thuật tốn gom nhóm k-means.

56


Hình 2.12 – Minh họa gom nhóm dựa trên phương pháp phân cấp.

56

Hình 2.13 – Hai loại phương pháp tạo kiến trúc phân cấp nhóm.

57

Hình 2.14 – Gom tập dữ liệu thành 3 nhóm dùng thuật tốn k-means.

61

Hình 2.15 – Gom nhóm tối ưu và khơng tối ưu.

64

Hình 2.16 – Chọn trọng tâm ban đầu tốt.

65

Hình 2.17 – Chọn trọng tâm ban đầu khơng tốt.

66

Hình 2.18 – Hai cặp nhóm vói mỗi cặp trọng tâm ban đầu thuộc một nhóm.

67

Hình 2.19 – Hai cặp nhóm, mỗi cặp có ít hơn hoặc nhiều hơn hai trọng tâm ban

đầu.

67

Hình 3.1 – Đại diện Gabor wavelet cho một bức ảnh khuôn mặt.

73

7


Hình 3.2 – Một mẫu trong khơng gian IS.

75

Hình 3.3 – Một mẫu trong khơng gian ES.

75

Hình 3.4 – Mơ hình q trình huận luyện dùng AdaBoost

79

Hình 3.5 – Mơ hình q trình huấn luyện gom nhóm dùng k-means.

83

Hình 3.6 – Mơ hình q trình kiểm tra.

84


Hình 4.1 – Tập dữ liệu thực nghiệm.

86

Hình 4.2 – Giao diện chương trình thực nghiệm.

88

Hình 4.3 – Phần thực của 40 bộ lọc Gabor.

89

Hình 4.4 – Đại diện Gabor cho ảnh.

90

Hình 4.5 – Kết quả nhận dạng.

90

Hình 4.6 – Các vị trí trên ảnh được lựa chọn.

91

Hình 4.7 – Năm bộ lọc Gabor được chọn.

91

8



Danh sách các bảng
Bảng 1: Thuật toán AdaBoost.

44

Bảng 2: Thuật toán k-means.

58

Bảng 3: Bảng ký hiệu 1.

62

Bảng 4: Thuật toán AdaBoost dùng để chọn lựa đặc trưng.

78

Bảng 5: Bảng ký hiệu 2.

82

Bảng 6: Kết quả huấn luyện.

92

Bảng 7: Kết quả của AdaBoost và AdaBoost kết hợp k-means.

92


Bảng 8: Mơ hình phân tầng AdaBoost.

97

9


Chương 1
Tổng quan
1.1

Giới thiệu

1.1.1 Nhu cầu thực tế
Hiện nay, xã hội ngày càng phát triển kéo theo quan hệ giữa người và người
càng mở rộng. Con người vừa phải tất bật làm việc, vừa chăm lo cho các mối quan
hệ quanh mình. Có rất nhiều điều cần phải biết, nhiều thứ cần phải nhớ nhưng trí
não con người khơng thể chứa hết. Do đó, con người đành nhờ đến sự trợ giúp của
khoa học kỹ thuật, cụ thể chính là chiếc máy tính.
Trong cuộc sống, bạn phải giao tiếp với nhiều người, thậm chí có thể lên
đến hàng trăm người. Hiển nhiên rằng việc nhớ tên tất cả là một điều khó khăn.
Đây chính là mục tiêu mà đề tài chúng tơi nhắm đến. Một chương trình có thể
cung cấp cho bạn tên của người bạn cần thơng qua hình ảnh của người đó cùng với
một bộ cơ sở dữ liệu gồm các bức ảnh của những người đã được định danh. Với
chương trình này, bạn khơng cịn phải nhớ tất cả mọi khuôn mặt cũng như tên của
người quen nữa, đồng thời có thể nhanh chóng biết được bạn có quen biết đối
phương khơng. Tất nhiên để có thể xây dựng được một chương trình như vậy,
trước hết ta cần xác định rõ bài toán xuyên suốt luận văn này: bài tốn nhận dạng
khn mặt người.

1.1.2 Bài tốn nhận dạng mặt người
Hệ thống sinh trắc học là một hệ thống được thiết kế để xác minh và nhận
dạng một người dựa vào những đặc trưng sinh học duy nhất của người đó.
Hệ thống nhận dạng mặt người là hệ thống sinh trắc học được thiết kế để
tìm thơng tin của một người. Kỹ thuật nhận dạng là kiểm tra sự phù hợp dựa trên
10


phép so sánh một-nhiều. Cụ thể hơn, hệ thống nhận vào là một ảnh hoặc một đoạn
video (một chuỗi các ảnh). Qua xử lý tính tốn hệ thống xác định là người nào
trong số những người hệ thống đã được biết hoặc là người lạ, hình 1.1.

Hình 1.1 – Một hệ thống nhận dạng mặt người.
Hệ thống nhận dạng tĩnh-tĩnh: là hệ thống được thiết kế bằng cách sử dụng
một số hình ảnh tĩnh làm mẫu để nhận dạng khn mặt trong ảnh tĩnh. Kỹ thuật
nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một-nhiều như hệ thống
nhận dạng nói trên [8].
Hệ thống nhận dạng tĩnh-động: là hệ thống được thiết kế bằng cách sử dụng
một số hình ảnh tĩnh làm mẫu để nhận dạng khn mặt trong ảnh động. Kỹ thuật
nhận dạng này kiểm tra sự phù hợp dựa trên so sánh một-nhiều như hệ thống nhận
dạng nói chung ở trên, song ảnh cần kiểm tra là các khung ảnh động trong các
đoạn phim từ máy camera. Kỹ thuật này dĩ nhiên khơng thể chính xác vì chuyển
động của mặt người trong đoạn phim khá phức tạp, song thể hiện trong ảnh tĩnh để
huấn luyện ít lại [8].
Hệ thống nhận dạng động-động: là hệ thống được thiết kế bằng cách sử
dụng một số hình ảnh động làm mẫu để nhận dạng khuôn mặt trong ảnh động. Kỹ
thuật nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một-nhiều như hệ
thống nhận dạng nói trên. Tuy nhiên, kỹ thuật này chính xác hơn kỹ thuật sử dụng

11



trong hệ thống nhận dạng tĩnh-động do sự chuyển động phức tạp của khuôn mặt
người cũng được huấn luyện bằng các khung ảnh động [8].
Các hướng nghiên cứu về bài toán này (dựa theo Face Recognition Vendor
Test – FRVT [1] ):
• Nhận dạng từ ảnh về khn mặt được chụp chính diện.
• Nhận dạng từ ảnh về khn mặt được chụp khơng chính diện.
• Nhận dạng với tỉ lệ sai sót thấp chấp nhận được.
• Hiểu được tại sao đàn ông dễ nhận dạng ra hơn so với phụ nữ.
• Hiểu rõ hơn về ý nghĩa của các yếu tố nhân khẩu học được thể hiện.

Ngồi ra, cịn có một hướng mới cho bài tốn nhận dạng khn mặt người
là nhận dạng khuôn mặt theo thời gian, kết hợp với nghề nghiệp và môi trường
làm việc, hay chủng tộc,…
1.1.3 Các ứng dụng hiện nay
Bài tốn nhận dạng mặt người có thể áp dụng rộng rãi trong nhiều ứng
dụng thực tế khác nhau. Đó chính là lý do mà bài tốn này hấp dẫn rất nhiều nhóm
nghiên cứu trong thời gian dài. Các ứng dụng liên quan đến nhận dạng mặt người
có thể kể như:
• Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công
cộng như: siêu thị, nhà sách, trạm xe buýt, sân bay,… Khi phát hiện được
sự xuất hiện của các đối tượng là tội phạm, hệ thống sẽ gởi thông điệp về
cho trung tâm xử lý.
• Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của
từng nhân viên và chấm cơng.
• Hệ thống giao tiếp người - máy: thay thế việc tương tác giữa người
và máy theo những cách truyền thống như: bàn phím, chuột,… Thay vào đó
12



là sử dụng các giao tiếp trực quan: biểu cảm khn mặt, dấu hiệu, cử chỉ
bằng tay ,...
• Hệ thống tìm kiếm thơng tin trên ảnh, video dựa trên nội dung (chỉ
mục theo người). Chẳng hạn như: một đài truyền hình có một kho dữ liệu
video tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có
B.Obama , C.Ronaldo…


Các hệ thống bảo mật dựa trên thơng tin trắc sinh học: mặt người,

vân tay,… thay vì xác nhận mật khẩu, khóa,… như thơng thường.
1.1.4 Những khó khăn của bài toán nhận dạng mặt người
Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ những
năm 1970. Tuy nhiên, đây là một bài tốn khó nên những nghiên cứu hiện tại vẫn
chưa đạt được kết quả mong muốn. Chính vì thế vấn đề này vẫn đang được nhiều
nhóm trên thế giới quan tâm nghiên cứu. Khó khăn của bài tốn nhận dạng mặt
người có thể kể như sau:
• Tư thế, góc chụp: Ảnh chụp khn mặt có thể thay đổi rất nhiều bởi
vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp
xéo bên trái 450 hay xéo bên phải 450, chụp từ trên xuống, chụp từ dưới
lên,…). Với các tư thế khác nhau, các thành phần trên khn mặt như mắt,
mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết.
• Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc
trưng như: râu mép, râu hàm, mắt kính,… có thể xuất hiện hoặc khơng. Vấn
đề này làm cho bài tốn càng trở nên khó hơn rất nhiều.
• Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể
làm ảnh hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn, cùng
một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ
hãi,…


13


• Sự che khuất: Khn mặt có thể bị che khuất bởi các đối tượng khác
hoặc các khn mặt khác.
• Hướng của ảnh: Các ảnh của khn mặt có thể biến đổi rất nhiều
với các góc quay khác nhau của trục camera. Chẳng hạn chụp với trục máy
ảnh nghiêng làm cho khn mặt bị nghiêng so với trục của ảnh.
• Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau
về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,…)
ảnh hưởng rất nhiều đến chất lượng ảnh khn mặt.
• Giới hạn về số ảnh cần thiết cho việc nhận dạng, tập huấn luyện
không thể bao quát được tất cả các biến đổi có thể có trên khn mặt của
một người cần nhận dạng trong thế giới thực.
Tuy bài tốn có rất nhiều khó khăn khách quan lẫn chủ quan nhưng đây vẫn
là một bài toán hấp dẫn đối với con người. Nhiều hướng tiếp cận cũng như phương
pháp giải quyết đã được đề xuất cho bài tốn nhận dạng mặt người. Mỗi phương
pháp có chỗ hay, chỗ chưa hay khác nhau nhưng đều đã đóng góp ít nhiều cho
khoa học. Hầu hết các nghiên cứu đếu cố gắng giải quyết bài toán từ trường hợp
đơn giản nhất như ảnh khuôn mặt người được chụp chính diện, đầy đủ các chi tiết
và là ảnh xám. Sau khi đạt được thành công nhất định cho trường hợp đơn giản
nhất này, các nghiên cứu dần dần tiến đến từng trường hợp khó hơn như ảnh chụp
nghiêng hay ảnh đầu vào là ảnh màu, hay thậm chí chỉ cải tiến phương pháp cũ
cho nhanh hơn, chính xác hơn, hoặc đề xuất phương pháp mới tốt hơn…

1.2

Các hướng tiếp cận của bài toán nhận dạng mặt người


1.2.1 Các hướng tiếp cận

Bài tốn nhận dạng khn mặt cần xác định hai vấn đề chính. Thứ nhất,
dùng thơng tin nào để nhận dạng, chẳng hạn như mắt, mũi, miệng, tai, chân

14


mày,… hay kết hợp tất cả các thông tin trên. Thứ hai, dùng phương pháp nào để
huấn luyện cho máy nhận dạng nguồn thơng tin đó.
Nhiều phương pháp nhận dạng khuôn mặt người được đề xuất trong khoảng
30 năm gần đây, và có rất nhiều cơng trình và bài báo đã được công bố rộng rải
trên thế giới. Nhận dạng khuôn mặt người là một vấn đề thú vị và đầy tính thử
thách, nó đã thu hút nhiều nhà nghiên cứu từ nhiều lĩnh vực khác nhau như: tâm lý
học, nhận dạng mẫu (hay nhận dạng mơ hình), mạng nơron nhân tạo, thị giác máy
tính, đồ họa máy tính,… Thơng thường, một hệ thống máy tính đơn lẻ chứa nhiều
kỹ thuật được vận hành dựa trên những nguyên tắc khác nhau. Chính sự kết hợp
nhiều kỹ thuật đã gây khó khăn cho việc phân loại những hệ thống này (dựa trên
loại kỹ thuật mà chúng sử dụng cho biểu diễn đặc trưng hay sự phân lớp). Để có
một phân loại tốt và rõ ràng, chúng tôi đi theo một hướng do tâm lý học đề nghị,
cách thức con người sử dụng những đặc trưng tổng thể và cục bộ.
Cụ thể có 3 hướng tiếp cận chính cho bài tốn nhận dạng khuôn mặt người:
(1) Phương pháp so khớp tổng thể (holistic matching methods). Những
phương pháp này sử dụng toàn bộ vùng mặt như là dữ liệu thô đầu vào cho
hệ thống nhận dạng. Các thuật toán nổi bật đại diện cho lớp này có thể kể
như là Eigenfaces và Fisherfaces.
(2) Phương pháp so khớp dựa trên đặc trưng (feature-based matching
methods). Đối với những phương pháp này, những đặc trưng cục bộ như
đơi mắt, mũi, miệng,… được trích ra đầu tiên và vị trí của chúng cũng như
những thơng tin cục bộ được nạp vào một lớp có cấu trúc.

(3) Phương pháp lai (hybrid methods). Tương tự hệ thống nhận dạng

của con người sử dụng đồng thời những đặc trưng cục bộ lẫn tồn vùng mặt
để nhận dạng một khn mặt.
1.2.2 Một số cơng trình nghiên cứu hiện nay

Phương pháp so khớp tổng thể
15


• Eigenfaces, ứng dụng trực tiếp của PCA. Kirby và Sirovich dùng
vector riêng để nhận dạng khuôn mặt người. Sử dụng mạng neural đơn giản
để tính một mơ tả của khuôn mặt bằng cách xấp xỉ các vector riêng cùa ma
trận tương quan của ảnh đã được chuẩn hóa [1].
• Probabilistic eigenfaces, Moghaddam và Pentland [1, 23] đề xuất độ
đo xác suất cho vấn đề 2 lớp: “intra-presonal” và “extra-personal”, chuyển
bài toán nhận dạng mặt người về bài toán hai lớp và sử dụng kỹ thuật so
khớp dựa trên eigenfaces để nhận dạng.
• Fisherfaces/subspace LDA (Linear Discriminant Analysis), dùng
biệt số tuyến tính Fisher (Fisher’s Linear Discriminant - FLD) để chiếu các
mẫu từ khơng gian ảnh có số chiều cao sang một khơng gian đặc trưng có
số chiều thấp hơn [1].
Phương pháp so khớp dựa trên đặc trưng
• Kelly và Kanade [1] sử dụng phương pháp hình học để so khớp đặc
trưng, hầu hết những phương pháp cũ đều được xếp vào nhóm phương pháp
đối chiếu cấu trúc, sử dụng độ rộng của đầu, khoảng cách giữa hai mắt và
từ mắt đến miệng.
• Okada và Steffens [8] sử dụng phương pháp đối chiếu đồ thị nhận
dạng khn mặt dựa vào sóng Gabor và phương pháp đối chiếu đồ thị. Với
ý tưởng dùng đồ thị để biểu diễn khuôn mặt, ảnh khuôn mặt được đánh dấu

tại các vị trí đã được xác định trước trên khn mặt, gọi các vị trí này là các
vị trí chuẩn. Khi thực hiện thao tác so khớp đồ thị với một ảnh, các điểm
chuẩn (Jets) sẽ trích ra từ ảnh và so sánh các điểm chuẩn này với tất các các
điểm chuẩn tương ứng trong các đồ thị khác nhau và đồ thị nào phù hợp với
ảnh sẽ được chọn.
• Nefian và Hayes [8] sử dụng mơ hình Markov ẩn (HMM) để nhận
dạng. Ảnh mẫu khn mặt được lượng hóa thành chuỗi quan sát trên khn
16


mặt theo quan niệm dựa trên thứ tự xuất hiện các đặc trưng khuôn mặt
(chân mày, lông mi, mũi, miệng, cằm). Trong chuỗi quan sát đó, mỗi quan
sát lại là một vector nhiều chiều và mỗi vector quan sát này được dùng để
đặc trưng cho mỗi trạng thái trong chuỗi trạng thái của HMM. Mỗi người
được ước lượng bằng một mơ hình của HMM.
• Phillips [1] sử dụng phương pháp học Support Vector Machine
(SVM). Xác định vị trí những thành phần của khn mặt, rút trích chúng,
kết hợp chúng vào một vector đặc trưng đơn được phân lớp bằng SVM.
[1998].
• Guodong Guo, Stan Z.Li và Kap Luk Chan [8] dùng phương pháp
SVM để nhận dạng khuôn mặt. Sử dụng chiến lược kết hợp nhiều bộ phân
loại nhị phân để xây dựng bộ phân loại SVM đa lớp.
• Peng Yang, Shiguang Shan, Wen Gao, Stan Z. Li và Dong Zhang
[10] nghiên cứu và thực thi ứng dụng phương pháp AdaBoost cho bài toán

nhận dạng mặt người. Các tác giả dùng bộ lọc Gabor cho việc rút trích đặc
trưng và sử dụng mơ hình AdaBoost phân tầng để chọn lựa đặc trưng và
xây dựng bộ phân loại mạnh.

• Boris Ruf [12] sử dụng Gabor wavelet để rút trích ra các vectơ đặc

trưng Gabor, xây dựng một hàm ngưỡng để tạo nên các bộ phân loại yếu,
dùng AdaBoost để lựa chọn đặc trưng và tìm ra bộ phân loại mạnh.

1.3

Đề xuất hướng tiếp cận trong luận văn
Để giải quyết bài toán nhận dạng mặt người, hướng tiếp cận của chúng tôi

sử dụng phương pháp nhận dạng dựa trên việc so khớp các đặc trưng. Chúng tơi
sử dụng phương pháp này bởi vì đối với con người, sự khác biệt giữa khuôn mặt
người này và người khác chủ yếu là sự khác biệt về các đặc trưng trên khuôn mặt
như mắt, mũi, chân mày, gị má, miệng, cằm. Do đó, việc so khớp các đặc trưng
trên khuôn mặt để tiến hành nhận dạng là rất hợp lý và phù hợp với thực tế.
17


Áp dụng hướng tiếp cận này để giải quyết bài tốn nhận dạng mặt người,
chúng tơi sử dụng lại một số kiến thức trong các cơng trình nghiên cứu của các tác
giả là dùng Gabor wavelet rút trích các vectơ đặc trưng Gabor để đại diện cho ảnh
khuôn mặt và dùng AdaBoost để chọn lựa đặc trưng, đồng thời tạo ra bộ phân loại
mạnh dùng để nhận dạng [7, 10, 11, 12, 16, 18, 19, 21]. Bên cạnh việc sử dụng lại
một số kết quả nghiên cứu của các tác giả, chúng tôi cũng đề xuất ra một số hiệu
chỉnh cho thuật toán AdaBoost, chỉ ra cách xây dựng nên các bộ phân loại yếu dựa
trên các đặc trưng Gabor và kết hợp thêm phương pháp gom nhóm, cụ thể là thuật
toán k-means để giải quyết bài toán nhận dạng mặt người này.
Chúng tôi sử dụng Gabor wavelet để rút trích đặc trưng bởi vì các đặc trưng
Gabor được rút trích từ Gabor wavelet diễn đạt được tri thức về các đối tượng
trong ảnh nghĩa là nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng, điều
mà bản thân từng điểm ảnh không thể hiện được. Mỗi thành phần trong họ Gabor
wavelet mơ hình một cấu trúc không gian vùng tiếp thu của một tế bào đơn trong

vỏ não nguyên thủy ở động vật hữu nhũ. Phân tích Gabor có thể xem như một
chiếc kính hiển vi nhạy cảm với hướng và tỷ lệ [5, 6]. Do đó, việc chọn Gabor
wavelet để rút trích đặc trưng là hợp lý, giống như cách con người phân biệt các
đặc trưng khác nhau trên khuôn mặt. Đồng thời, việc sử dụng Gabor wavelet để
rút trích vectơ đặc trưng Gabor cho ảnh thực hiện khá nhanh, chỉ là phép tính tích
chập với ảnh.
Từ khi AdaBoost ra đời, nó đã được ứng dụng nhiều trong lĩnh vực phân
loại mẫu và nhận dạng mẫu. AdaBoost là thuật tốn học có nhiều thuận lợi, đơn
giản, dễ hiểu, dễ lập trình. Sử dụng AdaBoost, ngồi việc xây dựng được bộ phân
loại mạnh dùng trong quá trình nhận dạng, ta cịn có thể chọn được các đặc trưng
Gabor quan trọng trên khuôn mặt để đại diện cho ảnh.
Chúng tơi sử dụng thuật tốn k-means để gom nhóm dữ liệu bởi vì k-means
thì đơn giản, dễ hiểu, tương đối hiệu quả và có thể dùng cho rất nhiều loại dữ liệu.
Việc gom nhóm tập dữ liệu thành các nhóm riêng biệt nhau này sẽ giúp cho quá
18


trình kiểm tra thực hiện nhanh hơn thay vì duyệt qua toàn bộ ảnh, đồng thời giúp
hạn chế các trường hợp phân loại sai nhóm.
Sau đây, chúng tơi sẽ mơ tả chi tiết các bước để giải quyết bài toán nhận
dạng mặt người.
Q trình nhận dạng khn mặt gồm hai giai đoạn. Đầu tiên là giai đoạn
huấn luyện. Từ ảnh khuôn mặt người trong tập dữ liệu, chúng tôi dùng Gabor
wavelet để đại diện cho ảnh khuôn mặt và rút trích các đặc trưng trên ảnh để tạo
thành vectơ đặc trưng. Bởi vì vectơ đặc trưng này có số chiều lớn, do đó để giảm
số chiều của vectơ này đồng thời lựa chọn ra được các đặc trưng đóng vai trị thật
sự quan trọng có thể đại diện chính xác cho đối tượng trong ảnh, chúng tôi sử
dụng phương pháp học AdaBoost để lựa chọn các đặc trưng quan trọng đó. Đặc
biệt, AdaBoost ngồi việc chọn lựa ra các đặc trưng để xây dựng nên vectơ đặc
trưng mới có số chiều nhỏ hơn vectơ đặc trưng được rút trích từ Gabor wavelet,

AdaBoost cịn tìm ra được một bộ phân loại mạnh đóng vai trị quan trọng trong
việc phân lớp ảnh khuôn mặt giúp cho việc nhận dạng đạt hiệu quả.
Giai đoạn thứ hai là quá trình kiểm tra, với ảnh cần kiểm tra, ta có được
vectơ đặc trưng đại diện cho ảnh đó. Đối với mỗi ảnh trong tập dữ liệu, sau q
trình huấn luyện ta cũng có được các vectơ đặc trưng đại diện cho tập ảnh đó.
Thay vì tiến hành so khớp bằng cách duyệt tuyến tính hết ảnh trong cơ sở dữ liệu
để đối chiếu với ảnh cần kiểm tra để tìm sự tương đồng của chúng. Chúng tơi sử
dụng phương pháp gom nhóm, cụ thể là thuật tốn k-means để tiến hành phân
nhóm các ảnh trong cơ sở dữ liệu. Mỗi nhóm được phân như vậy sẽ đại diện cho
nhiều bức ảnh và mỗi nhóm sẽ được đại diện bởi một vectơ đặc trưng cho từng
nhóm. Với ảnh cần kiểm tra, ta tiến hành kiểm tra nó “gần” với nhóm nào nhất,
sau đó duyệt hết ảnh trong nhóm đó để so khớp với ảnh cần kiểm tra mà khơng
cần quan tâm đến các nhóm cịn lại.

19


Chương 2
Cơ sở lý thuyết
2.1

Gabor Wavelet
Rút trích đặc trưng là một chức năng quan trọng của một hệ thống nhận

dạng nói chung và của một hệ thống nhận dạng mặt người nói riêng.Trong chương
này chúng tơi sẽ trình bày một phương pháp để rút trích đặc trưng cho khn mặt
chính là sử dụng bộ lọc Gabor wavelet. Vậy Gabor wavelet là gì? Tại sao chúng
tơi lại chọn Gabor wavelet để rút trích đặc trưng? Phần trình bày sau đây sẽ giúp ta
nắm rõ hơn về Gabor wavelet. Nhưng trước hết, ta phải biết wavelet là gì.
2.1.1 Wavelet là gì?

Wavelet [24] là những hàm có thể chia cắt dữ liệu ra các thành phần có tần
số khác nhau. Chúng có một vài thuận lợi hơn phương pháp Fourier truyền thống
trong việc phân tích các tình huống vật lý như tín hiệu chứa những điểm không
liên tục hay đỉnh nhọn. Wavelet được ứng dụng rất nhiều trong xử lý tín hiệu, một
vài lĩnh vực đặc sắc như nén dữ liệu, xử lý âm thanh (nhịp điệu nhạc), hay giảm
nhiễu… Chúng tôi sẽ mô tả lịch sử của wavelet bắt đầu từ Fourier, so sánh biến
đổi wavelet với biến đổi Fourier, mô tả tính chất của wavelet. Từ đó, chúng tơi sẽ
giới thiệu về Gabor Wavelet.
• Ý tưởng
Ý tưởng chính của wavelet là phân tích dựa trên từng tỷ lệ. Wavelet là
những hàm thỏa mãn các điều kiện tốn học nào đó và được sử dụng để đại diện
cho dữ liệu hay những hàm khác. Sự xấp xỉ sử dụng nguyên lý chồng chất của
hàm đã xuất hiện từ đầu những năm 1800, khi Joseph Fourier phát hiện ra rằng
ơng ấy có thể “chồng” (hay tổng hợp) những hàm sin và hàm cos để đại diện cho
20


các hàm khác. Tuy nhiên, trong phân tích bằng wavelet, tỷ lệ mà ta sử dụng để
xem xét dữ liệu đóng một vai trị đặc biệt. Thuật tốn wavelet xử lý dữ liệu ở
những tỷ lệ hay độ phân giải khác nhau. Nếu ta nhìn tín hiệu qua một khung cửa
sổ lớn, ta sẽ chú ý đến những chi tiết thơ, to. Ngược lại, khi ta nhìn tín hiệu với
một khung cửa sổ nhỏ, ta sẽ chú ý đến những chi tiết nhỏ, đặc trưng. Có thể nói,
kết quả của phân tích bằng wavelet có thể cho ta thấy được cả khu rừng và từng
cây trong rừng.
Điều đó làm wavelet trở nên thú vị và hữu dụng. Trong nhiều thập kỷ, các
nhà khoa học muốn có nhiều hơn những hàm xấp xỉ thay vì kết hợp những hàm sin
và cos dựa trên nền tảng ý tưởng của Fourier, để xấp xỉ những tín hiệu rạn nứt
(choppy signals). Như định nghĩa của chúng, đây là những hàm khơng địa phương
và có thể kéo dãn ra vơ hạn. Do đó chúng khá tệ khi xấp xỉ những đỉnh nhọn.
Nhưng với wavelet, ta có thể xấp xỉ những hàm được chứa gọn gàng trong những

miền hữu hạn. Wavelet rất tiện lợi cho việc xấp xỉ những dữ liệu khơng liên tục,
có đỉnh sắc, nhọn.
Tiến trình phân tích wavelet được thực hiện thơng qua một hàm wavelet
mẫu, gọi là wavelet mẹ. Phân tích theo trục thời gian sẽ được biểu diễn bằng một
dạng chặt, tần số cao của wavelet mẫu, trong khi phân tích theo tần số sẽ được
biểu diễn bằng một dạng không chặt, tần số thấp của cùng một wavelet mẫu. Do
tín hiệu gốc hay hàm gốc được biểu diễn dựa trên một khai triển wavelet (dùng
những hệ số trong sự kết hợp tuyến tính của các hàm wavelet), dữ liệu đang làm
việc có thể được biểu diễn bằng việc sử dụng những hệ số wavelet tương ứng. Nếu
ta chọn được những wavelet tốt thích ứng với dữ liệu, hoặc chặn những hệ số dưới
một ngưỡng nào đó, dữ liệu của ta có thể được biểu diễn một cách thưa thớt.
Chính sự thưa này đã giúp wavelet trở thành một công cụ tuyệt vời trong lĩnh vực
nén dữ liệu.

21


• Nguồn gốc toán học
Trước năm 1930, một nhánh của toán học dẫn đến wavelet được bắt đầu
bởi Joseph Fourier (1807) với lý thuyết của ơng ta về giải tích tần số, nay là phép
tổng hợp Fourier. Ông ấy đã khẳng định rằng bất kỳ hàm tuần hoàn f ( x) nào cũng
có thể biểu diễn thành tổng những chuỗi Fourier của nó


a0 +  (ak cos kx + bk sin kx) .

(2.1)

k =1


Trong đó,
1
a0 =
2

2



f ( x)dx,

0

ak =

1



2



f ( x) cos(kx)dx,

0

bk =

1




2



f ( x) sin(kx)dx .

0

Khẳng định của Fourier đóng một vai trị quan trọng trong tiến trình phát triển ý
tưởng của các nhà tốn học về hàm. Ơng đã mở ra cánh cửa đến với một không
gian mới về hàm.
Sau năm 1807, bằng việc khảo sát ý nghĩa về hàm, tính hội tụ của chuỗi
Fourier, khơng gian trực giao, các nhà toán học dần dần hướng sự chú ý từ giải
tích tần số sang giải tích tỷ lệ. Nghĩa là, phân tích hàm f ( x) thành những cấu trúc
toán học, những cấu trúc toán học này biến thiên theo tỷ lệ. Nhưng làm thế nào?
Xây dựng một hàm, biến đổi nó đi một vài khoảng, và thay đổi tỷ lệ của nó. Áp
dụng hàm này trong việc xấp xỉ một tín hiệu. Bây giờ ta lặp lại tiến trình. Lấy hàm
gốc, biển đổi nó, biển đổi nó một lần nữa. Lại áp dụng nó cho cũng một tín hiệu để
nhận được một xấp xỉ mới, cứ thế lặp lại. Qua đó, ta có thể thấy dạng phân tích
mảnh này ít bị ảnh hưởng bởi nhiễu vì nó tính sự biến thiên trung bình của tín hiệu
ở những mảnh khác nhau.
Wavelet được đề cập lần đầu tiên trong một phụ lục trong luận án của A.
Haar (1909). Một đặc tính của Haar wavelet là nó hỗ trợ tính compact, nghĩa là nó
triệt tiêu bên ngồi khoảng con hữu hạn. Đáng tiếc, Haar wavelet không khả vi
liên tục nên phần nào gây hạn chế cho những ứng dụng của chúng.

22



Trong những năm 1930, một số nhóm nghiên cứu việc biểu diễn các hàm
thông qua những hàm cơ sở biến thiên tỷ lệ. Tại mục 2.1.2, chúng tôi sẽ giới thiệu
rõ thêm về hàm cơ sở và hàm cơ sở biến thiên tỷ lệ.
Bằng việc sử dụng hàm cơ sở biến đổi tỷ lệ gọi là hàm cơ sở Haar, Paul
Levy, một nhà vật lý những năm 1930, đã tiến hành khảo sát chuyển động Brown,
một dạng tín hiệu ngẫu nhiên. Ông nhận ra rằng hàm cơ sở Haar tốt hơn các hàm
cơ sở Fourier trong việc xem xét các chi tiết nhỏ phức tạp trong chuyển động
Brown.
Cũng trong những năm 1930, Littlewood, Paley, và Stein đã đưa ra công
thức tính năng lượng của một hàm f ( x) , công thức 2.2
1
energy =
2

2



2

f ( x) dx .

(2.2)

0

Đến năm 1985, Stephane Mallat đưa wavelet thêm một bước nhảy thông
qua nghiên cứu của ơng về xử lý tín hiệu số. Ơng đã phát hiện ra mối liên hệ giữa

các bộ lọc đối xứng gương cầu phương, thuật tốn hình chóp và nền tảng wavelet
trực giao. Dựa trên những kết quả này, Y. Meyer đã xây dựng những wavelet bất
thường. Không giống Haar wavelet, wavelet của Meyer khả vi liên tục, nhưng
chúng lại không hỗ trợ compact. Vài năm sau, Ingrid Daubechies dựa vào kết quả
của Meyer, ông đã xây dựng một tập những hàm wavelet cơ sở trực giao, đây
chính là những viên đá nền tảng cho các ứng dụng wavelet hiện nay.
2.1.2 Hàm cơ sở - Hàm cơ sở biến thiên tỷ lệ
Để đơn giản việc giải thích về hàm cơ sở, ta tạm thời rời bỏ mảng tín hiệu
analog (các hàm) và đi vào mảng tín hiệu số (các vector).
Mỗi vector 2 chiều ( x, y) là một sự kết hợp của 2 vector (1,0) và (0,1) . Hai
vector này gọi là hai vector cơ sở của ( x, y) . Tại sao? Khi chúng ta nhân (1,0) cho
x và nhân (0,1) cho y, sau đó tổng lại ta sẽ được vector ( x, y) . Những vector cơ sở

23


tốt thường có thêm đặc tính trực giao với nhau, với (1,0) và (0,1) điều này là thỏa
mãn.
Ta trở lại với thế giới hàm, làm sao để liên hệ những khái niệm trên cho
hàm cơ sở. Thay vì một vector ( x, y) , ta có một hàm f ( x) . Tưởng tượng rằng
f ( x) như một điệu nhạc, nói nốt A trong một quãng tám cụ thể. Ta có thể tạo A

bằng cách cộng những hàm sin và hàm cos sử dụng sự kết hợp biên độ và tần số.
Những hàm sin và hàm cos chính là những hàm cơ sở trong ví dụ này, và cũng là
những nhân tố trong tổng Fourier. Ta có thể xây dựng thêm các điều kiện để các
hàm sin và cos này trực giao nhau. Như thế nào? Chọn hàm hợp tương ứng của
các hàm sin và cos này sao cho tích trong (tích vơ hướng) của nó bằng 0. Tập hợp
gồm những hàm như vậy là trực giao và những hàm f ( x) trong đó là những hàm
cơ sở trực giao.
Một hàm cơ sở biến đổi theo tỷ lệ bằng cách chia nhỏ hàm hay không gian dữ

liệu bởi những kích thước tỷ lệ khác nhau. Ví dụ, giả sử ta có một tín hiệu trên
miền từ 0 đến 1. Ta có thể chia tín hiệu thành 2 hàm từ 0 đến 1/2 và từ 1/2 đến 1.
Ta có thể tiếp tục chia tín hiệu gốc thành 4 hàm t 0 n ẳ, ẳ n ẵ , ẵ n ¾, ¾
đến 1. Và cứ thế. Mỗi tập biểu diễn tín hiệu gốc với một tỷ lệ cụ thể.
2.1.3 Giải tích Fourier
Việc Fourier biểu diễn các hàm bằng cách “tổng” những hàm sin và cos đã
trở nên thông dụng, từ những phương pháp số và phương pháp giải tích để giải
phương trình vi phân đến việc phân tích và xử lý tín hiệu giao tiếp. Giải tích
Fourier và Wavelet có sự liên kết rất mạnh mẽ.
• Biến đổi Fourier
Sự hữu ích cũng như khả năng của biến đổi Fourier là phân tích một tín
hiệu trong miền thời gian bởi lượng tần số của nó. Biến đổi Fourier chuyển một
hàm trong miền thời gian sang một hàm trong miền tần số. Sau đó tín hiệu có thể
được phân tích dựa trên tần số của nó bởi vì những hệ số Fourier của hàm đã biết

24


đổi biểu diễn sự đóng góp của mỗi hàm sin và hàm cos tại mỗi tần số. Để chuyển
đổi dữ liệu từ miền tần số sang miền thời gian, một biến đổi Fourier ngược chính
là điều ta mong đợi.
• Biến đổi Fourier rời rạc
Biến đổi Fourier rời rạc ước lượng biến đổi Fourier của một hàm từ một số
hữu hạn những điểm được lấy mẫu của nó. Các điểm được lấy mẫu xem như đặc
trưng cho tín hiệu tại một thời điểm nào đó. Biến đổi Fourier rời rạc có hầu hết các
tính chất đối xứng giống với biến đổi Fourier liên tục. Hơn nữa, công thức đảo của
biến đổi Fourier rời rạc được tính dễ dàng bằng việc sử dụng cơng thức của biến
đổi Fourier rời rạc vì hai cơng thức này gần như đồng nhất với nhau.
• Biến đổi Fourier khung
Nếu f (t ) là một tín hiệu khơng tuần hồn thì tổng của những hàm tuần

hồn, sin và cos, khơng biểu diễn chính xác được tín hiệu. Ta có thể khếch đại một
cách gượng ép khiến cho tín hiệu trở nên tuần hồn, nhưng điều này địi hỏi thêm
sự liên tục tại những điểm kết thúc. Biến đổi Fourier khung là một giải pháp cho
vấn đề này, giúp cho việc biểu diễn những tín hiệu khơng tuần hồn được tốt hơn
và chính xác hơn. Biến đổi Fourier khung được sử dụng để lấy thơng tin về những
tín hiệu trong miền thời gian và miền tần số một cách đồng thời.
Với biến đổi Fourier khung, tín hiệu đầu vào f (t ) được “băm” nhỏ vào
từng khu vực, mỗi khu vực được phân tích một cách riêng biệt theo tần số của nó.
Nếu tín hiệu có những điểm nhọn chuyển tiếp, ta đóng khung dữ liệu đầu vào để
các khu vực hội tụ về 0 tại những điểm kết thúc. Việc đóng khung này được thực
hiện bởi một hàm trọng lượng. Tác dụng của khung là địa phương hóa tín hiệu
theo thời gian.

25


×