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
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
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
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
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
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
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:
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
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
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
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
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.