TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
TÌM HIỂU CÁC PHƯƠNG PHÁP VÀ XÂY
DỰNG ỨNG DỤNG PHÁT HIỆN KHUÔN
MẶT NGƯỜI DỰA TRÊN ADABOOST
Sinh viên thực hiện : Họ tên sinh viên
Lớp Tin? - K45
Giáo viên hướng dẫn: [GS/PGS/GVC/TS/ThS] Tên
giáo viên
Hà nội 5-2007
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Định hướng đề tài tốt nghiệp
Tìm hiểu các phương pháp phát hiện khuôn mặt người và xây dựng ứng dụng phát
hiện khuôn mặt dựa trên giải thuật AdaBoost
2. Các nhiệm vụ cụ thể của đồ án tốt nghiệp
- Tìm hiểu các phương pháp phát hiện khuôn mặt
- Xây dựng thư viện
- Xây dựng ứng dụng
3. Lời cám đoan của sinh viên:
Tôi – Mai Anh Tuấn - cam kết đồ án tốt nghiệp là công trình nghiên cứu của bản
thân tôi dưới sự hướng dẫn của Ths. Lê Đức Trung.
Các kết quả nêu trong đồ án tốt nghiệp là trung thực, không phải là sao chép toàn
văn của bất kỳ công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả đồ án tốt nghiệp
Họ và tên sinh viên
4. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của đồ án tốt nghiệp và
cho phép bảo vệ
Lời cảm ơn
Trong quá trình thực hiện đồ án, tôi đã nhận được sự giúp đỡ của rất nhiều người.
Trước tiên, xin gửi lời cảm ơn chân thành tới thầy giáo Ths Lê Đức Trung đã hướng dẫn,
chỉ bảo và tận tình giúp đỡ trong suốt quá trình nghiên cứu và xây dựng đồ án.
Xin gửi lời cảm ơn đến các thấy giáo Ths Lương Mạnh Bá, Ths Lê Tấn Hùng, công ty
Avasys Việt nam và cá nhân anh Nguyễn Văn Thành vì sự giúp đỡ tận tình trong quá
trình thực hiện thực tập tốt nghiệp. Những sự giúp đỡ quý báu này đã góp phần định hướng
nội dung nghiên cứu của đồ án.
Xin cảm ơn gia đình tôi và những người bạn đã luôn ở bên, động viên, giúp đỡ và tạo mọi
điều kiện tốt nhất về mọi mặt trong quá trình thực hiện đồ án. Sự giúp đỡ này là động lực
lớn để tôi hoàn thành đồ án tốt nghiệp này.
Sinh viên thực hiện
Mai Anh Tuấn
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Nhận dạng khuôn mặt người là một lĩnh vực quan trọng và có nhiều ứng dụng thực tế, như
trong các hệ thống bảo mật, xác minh nhân dạng, phương thức giao tiếp người máy mới,
hay trong lĩnh vực giải trí,… và bước đầu tiên và cũng là quan trọng nhất để có thể nhận
dạng được khuôn mặt chính là phải định vị được khuôn mặt trong hình. Đây chính là đối
tượng nghiên cứu của lĩnh vực phát hiện khuôn mặt người. Những năm trở lại đây đánh
dấu những tiến bộ lớn cả về tốc độ và độ chính xác của các phương pháp và kỹ thuật phát
hiện khuôn mặt.
Nội dung chính của báo cáo sẽ trình bày những vấn đề lý thuyết cơ bản của lĩnh vực phát
hiện khuôn mặt cũng như những thành công mà các nhà nghiên cứu đã đạt được trong
những năm gần đây. Báo cáo nhằm mục đích có được cái nhìn tổng quát về lĩnh vực phát
hiện khuôn mặt, nắm bắt được những hướng tiếp cận giải quyết bài toán chính và tập trung
tìm hiểu một trong những giải thuật phát hiện khuôn mặt nhanh nhất hiện nay, giải thuật
AdaBoost do hai nhà nghiên cứu Viola và Jones đề xuất.
Bào cáo gồm 2 phần chính.
Phần 1 của báo cáo sẽ trình bày những cơ sở lý thuyết cơ bản của lĩnh vực phát hiện khuôn
mặt. Phần này gồm 3 chương:
Chương 1 giới thiệu chung về lĩnh vực phát hiện khuôn mặt, mô hình bài toán phát hiện
khuôn mặt cũng như tư tưởng chung của các phương pháp hiện nay.
Chương 2 đưa ra cái nhìn tổng quát về lĩnh vực phát hiện khuôn mặt, những hướng tiếp
cận chính trong những nghiên cứu hiện nay. Với môi hướng tiếp cận, một số
phương pháp nổi bật như Eigenface, biệt thức tuyến tính Fisher, mạng Nơron,
máy vector hỗ trợ (SVM), mô hình Markov ẩn (HMM),… sẽ được trình bày sơ
lược.
Chương 3 sẽ tập trung tìm hiểu về phương pháp phát hiện khuôn mặt nhanh sử dụng giải
thuật AdaBoost. Những vấn đề và khái niệm cơ bản gắn liền với phương pháp
bao gồm những chi tiết Haar, ảnh tích phân, kỹ thuật Boosting, kỹ thuật xây
dựng bộ phân lớp xếp tầng,… sẽ được nói đến. Cơ sở lý thuyết của giải thuật
AdaBoost cũng sẽ được trình bày chi tiết. Ngoài ra, chương 3 còn đi kèm với
một ví dụ minh họa cụ thể của giải thuật AdaBoost, qua đó cung cấp cái nhìn
trực quan nhất tư tưởng của phương pháp.
Phần 2 sẽ trình bày về việc thiết kế và xây dựng thư viện và chương trình. Phần này gồm 4
chương:
Chương 4 trình bày sơ lược cơ sở kiến thức xử lý ảnh được sử dụng trong quá trình xây
dựng chương trình. Nội dung chính đề cập đến những không gian mầu khác
nhau, chuyển đổi qua lại giữa những không gian mầu và một số bộ lọc và kỹ
thuật xử lý được sử dụng trong chương trình.
Chương 5 giải quyết bài toán phát hiện khuôn mặt trên hình ảnh tĩnh. Chương này đưa ra
một thiết kế và xây dựng một thư viện phục vụ phát hiện các khuôn mặt trên
hình ảnh tĩnh.
Chương 6 giải quyết bài toán phát hiện khuôn mặt trên hình ảnh động, đề cập đến những
vấn đề như việc thu nhận hình ảnh động (từ những thiết bị camera và từ các tệp
video), tích hợp thư viện phát hiện khuôn mặt trên hình ảnh tĩnh đã đề cập trong
chương 5. Chương này cũng đề cập đến vấn đề về phát hiện khuôn mặt trong
thời gian thực, những trở ngại về tốc độ và chất lượng ảnh, và những kỹ thuật
đã sử dụng để tăng tốc độ phát hiện bao gồm kỹ thuật quét lân cận và kỹ thuật
phát hiện chuyển động.
Chương 7 thiết kế và xây dựng một ứng dụng sử dụng các thư viện đã xây dựng trong
chương 5 và 6. Chương này trình bày về việc phân tích, thiết kế chức năng,
thiết kế giao diện, cài đặt và kiểm thử chương trình.
ABSTRACT OF THESIS
In this report, the theory of face detection is presented. Face detection is an extremely
difficult task in image analysis which has each day more and more applications. The
existing methods of face detection can be divided into two main approaches: image-based
methods and feature-based methods.
This report is focused on the fastest face detection algorithm nowadays, the AdaBoost
algorithm which was introduced and implemented by Viola and Jones. The main
motivation for choosing the algorithm is its simplicity but also its capability of detecting
faces very fast while remaining high detection rates. AdaBoost is an aggressive learning
algorithm which produces a strong classifier by choosing visual features in a family of
simple classifiers and combining them linearly. It uses rectangular Haar feature, which can
be computed very fast on a new image representation called Integral Image, to build simple
classifiers. To improve the detection speed and the detection efficiency, a number of
classifiers with an increasingly complexity are trained and combined sequentially to create
a strong cascaded classifier. The final classifier allows real-time face detection for many
real-world applications.
A sample program is built to demonstrate the algorithm and results are presented at the end
of the report.
MỤC LỤC
MỤC LỤC 5
DANH SÁCH HÌNH 8
DANH SÁCH THUẬT NGỮ 8
Phần I 10
CƠ SỞ LÝ THUYẾT 10
Chương 1 11
Giới thiệu chung về lĩnh vực phát hiện khuôn mặt 11
Giới thiệu 1.1 11
Bài toán 1.2 11
Những tham số của hình ảnh khuôn mặt 1.3 11
Phân loại bài toàn 1.4 11
Tư tưởng chung của các phương pháp 1.5 11
Kết chương 1.6 11
1.1 Giới thiệu 12
1.2 Bài toán 12
1.3 Những tham số của hình ảnh khuôn mặt 13
1.4 Phân loại bài toán 13
1.5 Ý tưởng chung của các phương pháp 13
1.6 Kết chương 14
Chương 2 15
Tìm hiểu một số phương pháp 15
Những phương pháp dựa trên hình ảnh khuôn mặt 2.1 15
Những phương pháp dựa trên cấu trúc khuôn măt 2.2 15
Đánh giá chất lượng các phương pháp 2.3 15
Kết chương 2.4 15
2.1 Những phương pháp dựa trên hình ảnh khuôn mặt 16
2.1.1 Phương pháp Eigenface [6] 16
2.1.1.1 Tư tưởng của phương pháp 16
2.1.1.2 Xác định các eigenface 16
2.1.1.3 Biểu diễn khuôn mặt dựa trên cơ sở eigenface 18
2.1.1.4 Phát hiện khuôn mặt sử dụng các eigenface 18
2.1.1.5 Đánh giá phương pháp: 19
2.1.2 Biệt thức tuyến tính Fisher 19
2.1.3 Mạng nơron 20
2.1.4 Máy vector hỗ trợ 21
2.1.5 Mô hình Markov ẩn 22
2.1.6 Mạng Winnows thưa (SNoW) 23
2.2 Những phương pháp dựa trên cấu trúc hình học của khuôn mặt 23
2.2.1 Giới thiệu 23
2.2.2 Những phương pháp từ trên xuống (top-down) 24
2.2.3 Những phương pháp từ dưới lên (bottom-up) 25
2.3 Đánh giá chất lượng các phương pháp 25
2.4 Kết chương 26
Chương 3 27
Phát hiện khuôn mặt nhanh sử dụng giải thuật AdaBoost 27
Giới thiệu chung 3.1 27
Lý do lựa chọn phương pháp 3.2 27
Giải thuật AdaBoost 3.3 27
Xếp tầng các bộ phân lớp 3.4 27
So sánh giữa những phương pháp dựa trên 3.5 27
giải thuật Boosting 27
3.1 Giới thiệu chung 28
3.2 Lý do lựa chọn phương pháp 29
3.3 Giải thuật Adaboost 29
3.3.1 Cơ sở giải thuật Boosting 30
3.3.2 Chi tiết Haar 31
3.3.3 Ảnh tích phân 33
3.3.4 Bộ phân lớp yếu 34
3.3.5 Xây dựng bộ phân lớp yếu từ những chi tiết Haar 34
3.3.6 Giá trị ngưỡng tối ưu 35
3.3.7 Chi tiết giải thuật 35
3.3.8 Ví dụ áp dụng thuật toán AdaBoost để giải bài toán phân lớp 36
3.4 Xếp tầng các bộ phân lớp 39
3.5 So sánh giữa những phương pháp dựa trên giải thuật Boosting 41
3.6 Kết chương 41
Phần II 42
THIẾT KẾ XÂY DỰNG 42
THƯ VIỆN VÀ CHƯƠNG TRÌNH 42
Chương 4 43
Cơ sử lý thuyết Xử lý ảnh 43
Không gian mầu và 4.1 43
chuyển đổi giữa những không gian mầu 43
Kỹ thuật trừ ảnh 4.2 43
Kỹ thuật cắt theo mức 4.3 43
Bộ lọc ăn mòn 4.4 43
Kết hợp các bộ lọc 4.5 43
để xây dựng bộ phát hiện chuyển động 43
4.1 Không gian mầu và chuyển đổi giữa các không gian mầu 44
4.1.1 Không gian mầu RGB 44
4.1.2 Không gian mầu HSL 44
4.1.3 Không gian mầu YCbCr 46
4.1.4 Ứng dụng các không gian mầu trong việc lọc mầu da (Skin color filtering) 47
4.2 Kỹ thuật Trừ ảnh [8] 47
4.3 Kỹ thuật cắt theo mức [8] 48
4.4 Phép co (Erosion) [8] 48
4.5 Kết hợp các bộ lọc để xây dựng một bộ phát hiện chuyển động 48
Chương 5 50
Phát hiện khuôn mặt trên ảnh tĩnh 50
Bài toán 5.1 50
Bộ phát hiện khuôn mặt 5.2 50
Cấu trúc dữ liệu lưu trữ kết quả huấn luyện 5.3 50
Biểu diễn ảnh bằng kỹ thuật ảnh tích phân 5.4 50
5.1 Bài toán 51
5.1.1 Khó khăn của bài toán 51
5.1.2 Giới hạn phạm vi bài toán 51
5.2 Bộ phát hiện khuôn mặt 52
5.3 Cấu trúc dữ liệu lưu trữ kết quả huấn luyện 54
5.3.1 Cấu trúc tệp tin XML 54
5.3.2 Thiết kế những lớp dữ liệu tương ứng 55
5.3.3 Đọc dữ liệu từ tên tin XML 56
5.4 Biểu diễn ảnh bằng kỹ thuật ảnh tích phân 57
Chương 6 58
Phát hiện khuôn mặt trên hình ảnh động 58
Bài toán 6.1 58
Thu nhận hình ảnh 6.2 58
Những kỹ thuật tăng tốc độ phát hiện 6.3 58
6.1 Bài toán phát hiện khuôn mặt trên hình ảnh động 59
6.2 Thu nhận hình ảnh 59
6.2.1 Thu nhận hình ảnh từ thiết bị camera 59
6.2.2 Đọc hình ảnh từ tệp tin AVI 60
6.3 Những kỹ thuật tăng tốc độ phát hiện 60
6.3.1 Kỹ thuật quét cục bộ 60
6.3.2 Kỹ thuật phát hiện chuyển động 60
6.3.3 Kết hợp hai kỹ thuật 62
Chương 7 63
Thiết kế và xây dựng ứng dụng 63
Xác định yêu cầu 7.1 63
Thiết kế chức năng 7.2 63
Thiết kế giao diện 7.3 63
Cài đặt chương trình 7.4 63
7.1 Xác định yêu cầu 64
7.2 Thiết kế chức năng 64
7.2.1 Chức năng phát hiện khuôn mặt 64
7.2.1.1 Chức năng phát hiện khuôn mặt trên ảnh tĩnh 65
7.2.1.2 Chức năng phát hiện khuôn mặt trên hình ảnh động đọc từ file AVI 65
7.2.1.3 Chức năng phát hiện khuôn mặt trên hình ảnh động thu nhận từ thiết bị
Camera 65
7.2.1.4 Chức năng lưu kết quả phát hiện 66
7.2.2 Chức năng tích hợp thư viện nhận dạng khuôn mặt của tác giả Nguyễn Thùy
Liên 66
7.2.2.1 Chức năng huấn luyện khuôn mặt 66
7.2.2.1 Chức năng nhận dạng khuôn mặt 66
7.3 Thiết kế giao diện 67
7.3.1 Giao diện cho chức năng phát hiện khuôn mặt 67
7.3.2 Giao diện cho chức năng nhận diện khuôn mặt 68
7.4 Cài đặt chương trình 71
7.4.1 Lựa chọn công nghệ và môi trường cài đặt 71
7.4.2 Giao diện chương trình 71
7.4.2.1 Giao diện chính của chương trình 72
7.4.2.2 Giao diện chức năng quản lý file và thiết bị 73
7.4.2.3 Giao diện chức năng phát hiện khuôn mặt 74
7.4.2.4 Giao diện chức năng quản lý ảnh khuôn mặt 75
7.5 Kiểm thử 76
KẾT LUẬN và 85
HƯỚNG PHÁT TRIỂN TIẾP THEO 85
TÀI LIỆU THAM KHẢO 86
DANH SÁCH HÌNH
Hình 1 – Biểu diễn khuôn mặt dựa trên cơ sở eigenface 18
Hình 2 – Phép chiếu trên không gian mặt 19
Hình 3 – Bộ phát hiện khuôn mặt dựa trên mạng nơron 21
Hình 4 – Ranh giới giữa hai lớp mặt và không-phải-là mặt xác định bởi
máy vector hỗ trợ 22
Hình 5 – Phương pháp phát hiện khuôn mặt dựa trên mô hình Markov
ẩn 23
Hình 6 - Giá trị ngưỡng tối ưu làm cực tiểu số những mẫu mặt và
không-phải-là-mặt bị phân lớp sai 35
Hình 7 – Giải thuật xây dựng bộ phân lớp xếp tầng 40
Hình 8 – Biểu diễn khối hộp của không gian mầu RGB 44
Hình 9 – Biểu diễn của không gian mầu HSL 44
Hình 10 – Phân bố của các thành phần H và S của mầu da người
trong không gian mầu HLS 47
Hình 11 – Mô hình bài toán phát hiện khuôn mặt trực tiếp từ Camera.
59
DANH SÁCH THUẬT NGỮ
AdaBoost
Adaptive Boost – phiên bản phổ biến và có nhiều ứng dụng nhất của giải thuật
Boosting.
Boosting
Một giải thuật cho phép cải thiện chất lượng của những giải thuật học máy
khác.
Cascaded Classifier
Bộ phân lớp xếp tầng, mỗi tầng là một bộ phân lớp mạnh được xếp từ đơn
giản đến phức tạp.
Classifier
Bộ phân lớp có nhiệm vụ xác định ảnh đầu vào có phải là khuôn mặt hay
không-phải-là-mặt.
Detection rate
Tỷ lệ giữa số khuôn mặt phát hiện đúng so với số khuôn mặt thực sự hiện diện
trong ảnh
Face detection
Phát hiện khuôn mặt nhằm tìm ra vị trí và kích thước của những khuôn mặt
hiện diện trong ảnh.
False detection hoặc False positive detection
Những phát hiện những thực chất không phải khuôn mặt.
Face image hoặc positive example
Ảnh mẫu khuôn mặt người.
False negative rate
Tỷ lệ giữa số những khuôn mặt bị bộ phát hiện bỏ qua
Haar feature
Những chi tiết được định nghĩa giống hàm sóng Haar được sử dụng để xây
dựng những bộ phân lớp yếu trong giải thuật AdaBoost
HMM – Hidden Markov Model
Phương pháp học thống kê dựa trên mô hình Markov ẩn.
Integral image
Ảnh tích phân – kỹ thuật biểu diễn khác của ảnh cho phép việc tính toán
nhanh tổng giá trị điểm ảnh của bất kỳ vùng ảnh chữ nhật nào trong ảnh ban
đầu
Non-face image hoặc negative example
Ảnh mẫu bất kỳ không chứa khuôn mặt ngườ.i
PCA – Principal Component Analysis
Phương pháp học thống kê phân tích thành phần chính.
Support Vector Machine
Máy vector hỗ trợ.
Weak classifier
Những bộ phân lớp có độ chính xác chỉ hơn lựa chọn ngẫu nhiên được sử
dụng trong những giải thuật Boosting.
Phần I
CƠ SỞ LÝ THUYẾT
Chương 1
Giới thiệu chung về lĩnh vực phát hiện
khuôn mặt
Giới thiệu 1.1
Bài toán 1.2
Những tham số của hình ảnh khuôn mặt 1.3
Phân loại bài toàn 1.4
Tư tưởng chung của các phương pháp 1.5
Kết chương 1.6
1.1 Giới thiệu
Phát hiện khuôn mặt là một ứng dụng cơ bản thiết yếu của lĩnh vực phát hiện đối
tượng (objects detection) nói chung và là khâu đầu tiên của bất kỳ hệ thống phát
hiện và nhận dạng khuôn mặt tự động nào. Ngoài ra, phát hiện khuôn mặt còn được
ứng dụng rộng rãi trong những lĩnh vực an ninh, sinh trắc học, thiết lập giao diện
mới giữa người và máy tính, và nhiều ứng dụng quan trọng khác.
Mục tiêu của việc phát hiện khuôn mặt là xác định và chỉ ra vị trí và kích thước của
những khuôn mặt người trong hình ảnh tĩnh hoặc hình ảnh động.
“Phát hiện khuôn mặt là một công nghệ cho phép xác định được vị trí và kích thước
của các khuôn mặt người hiện diện trong một bức ảnh số. Công nghệ này có thể
phát hiện ra những chi tiết khuôn mặt và bỏ qua những đối tượng khác như nhà
cửa, cây cối, hay các phần khác trên cơ thể con người.”
/>Trong những năm gần đây, nhiều phương pháp đã được phát triển với những mục
tiêu khác nhau đáp ứng những yêu cầu khác nhau. Chúng ta sẽ xem xét một cách
tổng quát những điểm chính của từng phương pháp và sau đó, tập trung đi sâu xem
xét một giải thuật cho phép xử lý phát hiện khuôn mặt nhanh và có độ chính xác
cao. Giải thuật này dựa trên thuật toán boosting có tên AdaBoost (Adaptive Boost)
và phản hồi đơn giản của những chi tiết Haar do hai nhà nghiên cứu Paul Viola và
Michael Jones đề xuất và phát triển.
1.2 Bài toán
Với đầu vào là một ảnh tĩnh, bộ phát hiện khuôn mặt phải tìm ra và trả về được vị
trí và kích thước của tất cả (hoặc nhiều nhất có thể) những khuôn mặt hiện diện
trong ảnh, bất kể vị trí, kích thước, tư thế chụp, nét mặt hay tuổi tác,…
Việc giải quyết bài toán này thường được thực hiện bằng cách kết hợp một bộ quét
ảnh với một bộ quyết định khuôn mặt/không-phải-là mặt. Bộ quét ảnh sẽ quét hình
ảnh ban đầu ở những vị trí và kích thước khác nhau và ở mỗi vị trí và kích thước,
vùng ảnh xác định bởi vị trí và kích thước đó sẽ được đưa vào bộ quyết định để xác
định xem đó có phải là khuôn mặt hay không.
Bộ quét có thể được xây dựng đơn giản bằng cách quét tuần tự từ trái qua phải, từ
trên xuống dưới hình ảnh ban đầu bằng một cửa sổ có kích thước thay đổi từ nhỏ
đến lớn. Một số phương pháp cải thiện việc quét ảnh bằng cách giới hạn vùng ảnh
quét. Việc này có thể được thực hiện bằng cách lọc ảnh dựa trên một số dấu hiệu
như: mầu sắc cơ thể, chuyển động của đối tượng,… Tuy nhiên, bộ quyết định mới
là tiêu chí chính để phân biệt các phương pháp.
Vị trí và kích thước của
các khuôn mặt trong ảnh
Bộ phát hiện
khuôn mặt
Ảnh đầu vào
1.3 Những tham số của hình ảnh khuôn mặt
Khuôn mặt con người vốn đã vô cùng đa dạng. Điều này khiến cho hình ảnh thu
nhận của khuôn mặt cũng rất phong phú. Có thể chỉ ra một số tham số của những
hình ảnh này.
• Góc quay xung quanh trục thẳng đứng, tham số này ảnh hưởng tới tính
đối xứng của khuôn mặt, đồng thời làm che lấp một con mắt và làm thay đổi
hình ảnh hiển thị của những chi tiết khác trên khuôn mặt.
• Góc quay xung quanh trục nằm ngang, ứng với tư thế cúi hay ngẩng đầu
của đối tượng thu nhận trước máy quay. Tham số này có thể ảnh hưởng tới sự
hiện diện của một số chi tiết quan trọng trên khuôn mặt như đôi mắt, vùng trán,
hay vùng miệng.
• Góc quay xung quanh trục nối liền khuôn mặt và máy quay, tham số này
không ảnh hưởng đến biểu hiện của những chi tiết trên khuôn mặt và có thể
được khôi phục về vị trí thẳng đứng bằng phép xử lý quay hình.
• Kích thước khuôn mặt
• Tỷ lệ giữa kích thước các chiều của khuôn mặt
• Cảm xúc của khuôn mặt, tham số này làm thay đổi hình ảnh hiển thị của
những chi tiết trên khuôn mặt.
1.4 Phân loại bài toán
Bài toán tổng quát có thể được chia nhỏ thành nhiều bài toán con khác nhau:
• Xét về tham số góc quay của khuôn mặt, ta có bài toán phát hiện khuôn mặt
trực diện và phát hiện khuôn mặt đa góc nhìn.
• Nếu xét về yếu tố đầu vào, ta có bài toán phát hiện khuôn mặt trên hình ảnh
đơn lẻ và phát hiện khuôn mặt trên chuỗi hình ảnh động.
• Xét về kích thước khuôn mặt, ta có bài toán phát hiện khuôn mặt kích thước
cố định và phát hiện khuôn mặt đa kích thước.
• …
1.5 Ý tưởng chung của các phương pháp
Việc giải quyết bài toán tổng quát là vô cùng khó khăn và hiện tại chưa có một giải
pháp toàn vẹn. Đã có rất nhiều phương pháp đã đề xuất và được phát triển trong
những năm gần đây. Mỗi phương pháp có hướng tiếp cận riêng nhằm giải quyết bài
toán theo những tiêu chí cụ thể.
Có thể phân nhóm thành hai hướng tiếp cận chính:
• Những phương pháp dựa trên hình ảnh khuôn mặt (image-based approaches).
• Những phương pháp dựa trên cấu trúc hình học của khuôn mặt (geomatrical-
based approaches).
Hướng tiếp cận thứ nhất tìm cách xây dựng những bộ phân lớp được huấn luyện
trên một tập mẫu (bao gồm những ảnh khuôn mặt đã được chuẩn hóa và những ảnh
bất kỳ không chứa khuôn mặt được gọi là ảnh không-phải-là-mặt) có sẵn. Những bộ
phân lớp sau khi huấn luyện sẻ được sử dụng để xác định xem vùng ảnh trong cửa
sổ quét bất kỳ thuộc lớp khuôn mặt hay lớp không-phải-là-mặt.
Hướng tiếp cận thứ hai cố gắng phát hiện ra những chi tiết đặc trưng cho khuôn mặt
như: mắt, mũi, miệng,… có trong toàn bộ ảnh hoặc vùng ảnh trong cửa sổ quét.
Những chi tiết sau khi phát hiện sẽ được so khớp với một mô hình khuôn mặt mẫu
dựa trên cấu trúc hình học của khuôn mặt nói chung, từ đó dự đoán xem vùng ảnh
đó là khuôn mặt hay không-phải-là-mặt.
1.6 Kết chương
Chương mở đầu đã giới thiệu sơ qua những về chính của bài toán phát hiện khuôn
mặt, tư tưởng chung của những hướng tiếp cận hiện nay. Trong chương tiếp theo,
một số phương pháp sẽ được trình bày cụ thể.
Chương 2
Tìm hiểu một số phương pháp
Những phương pháp dựa trên hình ảnh khuôn mặt 2.1
Những phương pháp dựa trên cấu trúc khuôn măt 2.2
Đánh giá chất lượng các phương pháp 2.3
Kết chương 2.4
2.1 Những phương pháp dựa trên hình ảnh khuôn mặt
Tư tưởng chung của các phương pháp
Những phương pháp này tìm cách huấn luyện một bộ phân lớp có khả năng phân
biệt tốt những cửa sổ chứa khuôn mặt và những cửa sổ không chứa khuôn mặt bằng
việc học trên một một tập những ảnh mẫu cho trước.
Tập ảnh mẫu
Là những ảnh được chuẩn bị trước gồm những ảnh có chứa một khuôn mặt gọi là
những ảnh khuôn mặt và những ảnh bất kỳ không chứa khuôn mặt nào gọi là những
ảnh không-phải-là-mặt. Những ảnh khuôn mặt được chuẩn hóa thống nhất về vị trí
và kích thước; những chi tiết đặc trưng trên khuôn mặt như mắt, miệng thường được
dóng ngang hàng nhau.
Chiến lược Boot-strapping để mở rộng và nâng cao chất lượng tập
ảnh mẫu [2]
Việc lựa chọn những ảnh khuôn mặt tốt cho tập mẫu có thể được thực hiện trực tiếp
thông qua cảm nhận của người nghiên cứu, tuy nhiên việc này không dễ thực hiện
với những ảnh không-phải-là-mặt. Lớp những ảnh này là vô hạn và không thể đưa
ra tiêu chí cụ thể nào để khẳng định một ảnh không-phải-là-mặt có thể đặc trưng
cho lớp ảnh này. Chiến lược lựa chọn Boot-strapping cho phép xây dựng tập ảnh
không-phải-là-mặt chỉ gồm những ảnh đặc trưng nhất. Chiến lược này được hai nhà
nghiên cứu Sung và Poggio đề xuất và sử dụng phương pháp của họ.
Việc lựa chọn khởi đầu với một tập ảnh mẫu chỉ chứa một số ảnh không-phải-là-
mặt. Bộ phân lớp được huấn luyện trên tập mẫu này và được dùng để thử nghiệm
trên những ảnh mẫu. Những phát hiện sai thu thập được trong quá trình thử nghiệm
được tập hợp và bổ sung vào tập ảnh không-phải-là-mặt. Sau đó, bộ phân lớp được
huấn luyện lại trên tập mẫu mới. Quá trình tiếp tục được lặp lại cho đến khi đạt
được tỷ lệ phát hiện đúng và tỷ lệ phát hiện sai mong muốn hoặc tập ảnh mẫu đạt
đến một kích thước nhất định
Về nguyên tắc, chiến lược này cũng có thể áp dụng cho việc xây dựng tập ảnh
khuôn mặt theo cách thức hoàn toàn tương tự. Theo đó những khuôn mặt trong
những ảnh thử nghiệm bị bộ phân lớp bỏ qua sẽ được bổ sung vào tập ảnh khuôn
mặt mẫu
2.1.1 Phương pháp Eigenface [6]
2.1.1.1 Tư tưởng của phương pháp
Giả sử là một vector kích thước tương ứng với ảnh đầu vào kích thước
. Tư tưởng chung của phương pháp là tìm cách biểu diễn vector
trong một không gian có số chiều nhỏ hơn
2.1.1.2 Xác định các eigenface
Bước 1: chuẩn bị tập ảnh huấn luyện mẫu
Một điều quan trọng là những ảnh này đều phải được chuẩn hóa:
- Vị trí khuôn mặt ở chính giữa ảnh
- Kích thước các khuôn mặt xấp xỉ nhau
- Các chi tiết trên khuôn mặt phải được căn chỉnh để có vị trí tương đối
giống nhau.
Bước 2: biểu diễn mỗi ảnh I
i
thành một vector
Bước 3: tính vector trung bình
Bước 4: lần lượt lấy các vector trừ cho vector trung bình:
Bước 5: tính ma trận C
(Ma trận kích thước )
trong đó (Ma trận kích thước )
Bước 6: tính các vector eigen u
i
của AA
T
Do ma trận AA
T
rất lớn nên việc tính toán trực tiếp là không thực tế.
Bước 6.1: xét ma trận A
T
A kích thước
Bước 6.2: tính các vector eigen v
i
của ma trận A
T
A
Mối quan hệ giữa u
i
và v
i
:
Do đó, các ma trận AA
T
và A
T
A có chung các giá trị eigen nên những vector
eigen của chúng liên hệ với nhau theo công thức: .
Chú ý 1: ma trận AA
T
có thể có tới N
2
giá trị eigen và vector eigen
Chú ý 2: ma trận A
T
A có thể có tới M giá trị eigen và vector eigen
Chú ý 3: M giá trị eigen của ma trận A
T
A (cùng với những vector eigen tương
ứng) tương ứng với M giá trị eigen lớn nhất của ma trận AA
T
(cùng với những
vector eigen tương ứng).
Bước 6.3: Tính M vector eigen lớn nhất của AA
T
:
u
i
cần được chuẩn hóa để .
Bước 7: giữ lại K vector eigen (tương ứng với K giá trị eigen lớn nhất)
2.1.1.3 Biểu diễn khuôn mặt dựa trên cơ sở eigenface
Mỗi khuôn mặt (sau khi đã trừ cho khuôn mặt trung bình) trong tập ảnh huấn
luyện có thể được biểu diễn bằng một kết hợp tuyến tính K vector eigen lớn nhất.
Hình 1 – Biểu diễn khuôn mặt dựa trên cơ sở eigenface
Mỗi khuôn mặt được chuẩn hóa có thể được biểu diễn trên cơ sở này như một
vector:
2.1.1.4 Phát hiện khuôn mặt sử dụng các eigenface
Cho một ảnh cần xác định là khuôn mặt hay không-phải-khuôn-mặt.
Bước 1: tính
Bước 2: tính
Bước 3: tính
Bước 4: nếu thì khẳng định là khuôn mặt
Khoảng cách e
d
được gọi là khoảng cách từ không gian mặt (dffs – distance from
face space)
Hình 2 – Phép chiếu trên không gian mặt
2.1.1.5 Đánh giá phương pháp:
Ưu điểm:
• Phương pháp đơn giản
• Thời gian huấn luyện nhanh
• Tốc độ phát hiện trung bình
Hạn chế:
• Nền ảnh phức tạp, chất lượng phát hiện của phương pháp khá nhậy với độ
phức tạp của nền ảnh xung quanh khuôn mặt.
• Điều kiện ánh sáng, chất lượng phương pháp giảm khi điều kiện ánh sáng
thay đổi.
• Kích thước khuôn mặt: các eigen face được huấn luyện với những kích
thước cố định. Để giải quyết bài toán phát hiện khuôn mặt ở nhiều kích
thước khác nhau, có 2 cách:
- Cách 1: huấn luyện nhiều bộ eigen face ở những kích thước khác nhau và
sử dụng từng kết quả huấn luyện riêng biệt để phát hiện những khuôn mặt có
kích thước tương ứng. Hạn chế của cách này là số lượng các bộ eigen face sẽ
có thể rất lớn.
- Cách 2: thực hiện việc co giãn ảnh ban đầu với những tỷ lệ khác nhau.
Thao tác co giãn ảnh tốn khá nhiều thời gian tiền xử lý và ảnh hướng đến tốc
độ chung của phương pháp.
• Tư thế khuôn mặt khi chụp, chất lượng phát hiện sẽ giảm rất nhanh nếu
góc quay của khuôn mặt cần xác định khác với góc quay của những khuôn
mặt trong tập ảnh mẫu.
2.1.2 Biệt thức tuyến tính Fisher
Những phương pháp sử dụng eigenface tỏ ra hiệu quả với những ảnh không nhiễu.
Tuy nhiên, những phương pháp này chưa thể cực tiểu hóa được sự chênh lệch giữa
những phần tử trong cùng một lớp.
Một bộ phân lớp tốt phải có khả năng mô hình được các lớp sao cho sự chênh lệch
giữa các phần tử trong cùng một lớp là nhỏ trong khi sự chênh lệch giữa các lớp là
lớn. Biệt thức tuyến tính Fisher cho phép tìm ra phép chiếu tối ưu.
Phép chiếu được xác định bởi làm cực tiểu hóa tỷ số , trong đó S
BC
là
mức độ chênh lệch giữa các lớp và S
WC
là mức độ chênh lệch giữa các phần tử trong
cùng lớp.
với là trung bình của tất cả các mẫu, là trung bình của các mẫu trong lớp ,
là số các mẫu trong lớp , là số các lớp.
Phép chiếu tối ưu thu được khi ta chọn ma trận chiếu theo
với là tập những vector eigen đã được chuẩn hóa của và ứng
với những giá trị eigen .
2.1.3 Mạng nơron
Phương pháp phát hiện khuôn mặt sử dụng mạng nơron được phát triển bởi Rowley
được coi là chuẩn mực trong lĩnh vực phát hiện khuôn mặt.
Chuẩn bị tập ảnh huấn luyện mẫu
Việc huấn luyện được thực hiện trên một tập lớn những ảnh khuôn mặt, trong đó
những điểm đặc trưng trên khuôn mặt được gán nhãn bằng tay. Vị trí của những
điểm đặc trưng này được lấy trung bình trên toàn bộ tập ảnh huấn luyện, và được
khớp với những điểm xác định trước. Mỗi ảnh huấn luyện sau đó được dóng thẳng
hàng với vị trí trung bình thu được. Quá trình này được lặp lại để thu được bộ dữ
liệu khuôn mặt mẫu chuẩn. Để xây dựng bộ dữ liệu ảnh không-phải-là-mặt, chiến
lược boostrapping được áp dụng.
Việc phát hiện khuôn mặt sử dụng mạng nơron được thực hiện lần lượt theo hai
bước chính:
Phát hiện khuôn mặt sử dụng bộ lọc dựa trên mạng nơron
Đầu vào của bước này là một ảnh vuông kích thước 20x20, đầu ra của mạng nơron
là một giá trị thực trong khoảng -1 đến +1.
Hình 3 – Bộ phát hiện khuôn mặt dựa trên mạng nơron
Ảnh đầu vào ban đầu được phân tích thành những ảnh theo mô hình kim tự tháp để
có thể phát hiện được những khuôn mặt có kích thước lớn hơn kích thước cơ sở.
Bước này cho lại tỷ lệ phát hiện rất cao (nếu như tập ảnh huấn luyện được chuẩn bị
kỹ lưỡng), tuy nhiên tỷ lệ phát hiện sai còn khá lớn.
Kết hợp những phát hiện trùng lặp
Để có thể giảm đựợc tỷ lệ phát hiện sai, hai mạng nơron được huấn luyện độc lập
với những tham số đầu vào khác nhau (tập ảnh huấn luyện khác nhau, trọng số khởi
đầu khác nhau,…)
Mặc dù mỗi mạng nơron độc lập có tỷ lệ phát hiện sai cao, nhưng những phát hiện
sai thường khác nhau với mỗi mạng nơron. Do đó, việc kết hợp kết quả của hai
mạng nơron bằng một chiến lược quyết định đơn giản sẽ cho phép cải thiện đáng kể
kết quả phát hiện. Thông thường, một cửa sổ quét chỉ được coi là khuôn mặt nếu
như cả hai mạng nơron đều phát hiện ra nó.
2.1.4 Máy vector hỗ trợ
Máy vector hỗ trợ là một kỹ thuật được giới thiệu đầu tiên bởi nhà nghiên cứu
Vapnik. Phương pháp này rất hiệu quả với những bộ dữ liệu lớn cỡ hàng nghìn
mẫu.
Nguyên tắc chung của phương pháp là tìm ra những mặt phẳng quyết định làm cực
đại ranh giới giữa lớp khuôn mặt và lớp không-phải-là-mặt. Một trong những giới
hạn đơn giản có thể được sử dụng chính là khoảng cách giữa những điểm gần nhất
giữa hai lớp. Những điểm này cho phép xác định đường ranh giới giữa hai lớp
khuôn mặt và không-phải-là-mặt.
Hình 4 – Ranh giới giữa hai lớp mặt và không-phải-là mặt xác định bởi máy vector hỗ trợ.
2.1.5 Mô hình Markov ẩn
Mô hình Markov ẩn đã được Samaria và Young áp dụng đầu tiên trong việc phát
hiện khuôn mặt. Nguyên tắc của phương pháp là phân chia khuôn mặt thành những
vùng khác nhau như: trán, mắt, mũi, miệng và cằm và tìm cách phát hiện lần lượt
những chi tiết này.
Mô hình HMM thường được áp dụng trên một chuỗi những tín hiệu 1 chiều liên tục
(vector chi tiết). Tuy nhiên các ảnh số sử dụng làm đầu vào thường được biểu diễn
bằng một ma trận 2 chiều. Để khắc phục sự không nhất quán này, một cửa sổ có
kích thước ngang bằng đúng kích thước ngang của ảnh được cho quét từ trên xuống
dưới cùng của ảnh. Vùng ảnh trong cửa sổ được đưa vào mô hình HMM để xử lý
như một vector 1 chiều. Các cửa sổ quét có thể phủ lên nhau để tránh bỏ qua những
chi tiết quan trọng trên khuôn mặt.
Hình 5 – Phương pháp phát hiện khuôn mặt dựa trên mô hình Markov ẩn
2.1.6 Mạng Winnows thưa (SNoW)
SNoW (Sparse Network of Winnow) là một mạng thưa những hàm tuyến tính sử
dụng luật cập nhật Winnow. Hai đơn vị tuyến tính được gọi là các nút gồm:
• Một nút đại diện cho những mẫu khuôn mặt.
• Một nút đại diện cho những mẫu không-phải-là-mặt.
Với một tập những quan hệ mà ta quan tâm trong ảnh đầu vào, mỗi ảnh đầu vào
được đối chiếu vào một tập chi tiết có trong nó. Phép biểu diễn này được đưa vào
hàm sản xuất SNow và được lan truyền tới các nút đích.
Đặt là tập những chi tiết có trong một ảnh mẫu và được liên kết với
nút t. Đơn vị tuyến tính được kích hoạt khi và chỉ khi với là trọng
số trên cạnh nối chi tiết thứ i với nút đích t và là một giá trị ngưỡng. Luật cập
nhật Winnow gồm hai tham số cập nhật:
• Tham số thăng cấp .
• Tham số giáng cấp .
2.2 Những phương pháp dựa trên cấu trúc hình học của
khuôn mặt
2.2.1 Giới thiệu
Những phương pháp thông kê được giới thiệu ở trên đều dựa trên một phương pháp
học máy nào đó để xây dựng nên một mô hình khuôn mặt từ tập ảnh mẫu những
ảnh không mặt và không-phải-là-mặt. Với cách tiếp cận dựa trên cấu trúc hình học
của khuôn mặt, các nhà nghiên cứu tìm cách giải quyết bài toán phát hiện khuôn
mặt dựa trên những chi tiết đặc trưng trên khuôn mặt cũng như cấu trúc hình học
giữa chúng.
Những phương pháp đi theo hướng tiếp cận này có thể được chia làm hai nhóm:
• Nhóm những phương pháp trên-xuống: Khuôn mặt được xem xét một cách
tổng thể, hướng tiếp cận này đã được sử dụng trong những nghiên cứu của
Yang và Huang, và của Lanitis.