i
ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI
WX Lê Mạnh Tuấn
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
VÀ ỨNG DỤNG
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Hà Nội – 2009
ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lê Mạnh Tuấn
Lê Mạnh Tuấn
iv
TÓM TẮT
Ngày nay các hệ thống nhận dạng mặt người đang được ứng dụng trong nhiều lĩnh
vực, đặc biệt là an ninh và bảo mật. Nhận dạng mặt người tức là đưa ra những thông tin
về đối tượng được đưa vào từ một bức ảnh, hay từ camera quan sát. Bước đầu tiên của
một hệ thống nhận dạng mặt người là phát hiện khuôn mặt, tức xác định vị
trí khuôn mặt
trên bức ảnh, sau đấy tách khuôn mặt ra khỏi ảnh để tiến hành nhận dạng.
Trong khóa luận này em xin nêu một trong những phương pháp để phát hiện khuôn
mặt trong ảnh, sau đấy mở rộng ra với phát hiện mặt người trong video và webcam.
Sau khi đã xem xét các hướng tiếp cận khác nhau, em chọn phương pháp tiếp cận
học máy bằng Adaboost và mô hình Cascade of classifiers. Điểm mạnh của Adaboost là
tốc độ phát hiện khuôn mặt khá nhanh. Kết quả thử
nghiệm cho thấy chương trình đạt độ
chính xác khá cao với các ảnh mặt người được chụp trực diện bằng máy kĩ thuật số.
v
MỤC LỤC
TÓM TẮT iv
MỤC LỤC v
DANH SÁCH THUẬT NGỮ vii
DANH MỤC HÌNH VẼ viii
DANH SÁCH TỪ VIẾT TẮT ix
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP XÁC ĐỊNH MẶT NGƯỜI 3
1. Giới thiệu về bài toán xác định mặt người trong ảnh 3
2. Định nghĩa bài toán xác định mặt người. 3
3. Những khó khăn và thách thức đối với bài toán xác định mặt người. 3
3.3. Thiết kế cơ sở dữ liệu 38
3.4. Thiết kế giao diện 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
vii
DANH SÁCH THUẬT NGỮ
Thuật ngữ Giải thích
Classifier
(bộ phân loại)
Một bộ phân loại được xây dựng theo một thuật toán học máy
nào đấy, dùng để phân loại các đối tượng (khuôn mặt hay
không phải khuôn mặt)
False alarm
Là tỉ lệ nhận dạng sai của các bộ phân loại
Feature
(đặc trưng)
Các thông tin giúp nhận biết đối tượng.
Haar-like feature
Các đặc trưng của đối tượng trong ảnh. Các đặc trưng này
thường được định nghĩa bằng các tính toán với tổng điểm ảnh
của một vùng nào đó trên bức ảnh.
Hit rate
Là tỉ lệ nhận dạng đúng của bộ phân loại
Max false alarm
Đạt được tỉ lệ sai này thì bộ phân loại được xây dựng thành
công, tỉ lệ sai này là một giá trị bé, có thể chấp nhận được
trong bài toán phân loại.
30
Hình 13: cascade of classifiers 32
Hình 14: Cascade of boosting classifiers 33
Hình 15: Cấu trúc cơ bản của OpenCV 34
Hình 16: Tổng quan về hệ thống phát hiện mặt người trong ảnh 35
Hình 17: Biểu đồ ngữ cảnh của hệ thống 36
Hình 18: Biểu đồ phân rã chức năng 38
Hình 19: Sơ đồ thực thể quan hệ ( ERM ) 39
Hình 20: Giao diện của chương trình 40
ix
DANH SÁCH TỪ VIẾT TẮT
STT Kí hiệu Từ tiếng anh Ý nghĩa
1 CSDL Database Cơ sở dữ liệu
2 HMM Hidden Markov Model Mô hình Markov ẩn
3 ML Maximum-Likelihood Phương thức cực đại khả năng
4 PCA Principal Component Analysis Phân tích thành phần chính
5 PDF Probility Density Hàm mật độ xác xuất
6 RSAT Rotated Summed Area Table Mảng hai chiều dùng để tính
nhanh các đặc trưng xoay 45
o
7 SAT Summed Area Table Mảng hai chiều dùng để tính
nhanh các đặc trưng haar-like cơ
bản
1
MỞ ĐẦU
các hướng tiếp cận giải quyết bài toán, các nghiên cứu và thành quả đạt được của các nhà
nghiên cứu trong bài toán xác định mặt người.
2
Chương 3: Cơ sở lý thuyết : Đi sâu vào hướng tiếp cận dựa theo thuật toán học
máy adaboost. Giới thiệu về các đặc trưng haar-like của khuôn mặt, cách tính các đặc
trưng haar-like. Tiếp theo là giới thiệu về mô hình cascade of classifiers và cách áp dụng
vào bài toán phát hiện mặt người trong ảnh.
Chương 4: Xây dựng ứng dụng : Xây dựng một chương trình demo về phát hiện
mặt người trong ảnh. Nêu lên các phân tích – thiết kế về chương trình.
Cu
ối cùng là kết luận và hướng phát triển: Tóm tắt những kết quả đạt được,
những hạn chế và nêu lên các hướng phát triển trong tương lai.
3
Chương 1
TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP
XÁC ĐỊNH MẶT NGƯỜI
1. Giới thiệu về bài toán xác định mặt người trong ảnh.
Trong nhiều năm qua, có rất nhiều công trình nghiên cứu về bài toán nhận dạng mặt
người. Các nghiên cứu đi từ bài toán đơn giản, từ việc nhận dạng một mặt người trong
ảnh đen trắng cho đến mở rộng cho ảnh mầu và có nhiều mặt người trong ảnh. Đến nay
các bài toán xác định mặt người đã mở rộng với nhiều miền nghiên cứu như nhận dạng
khuôn mặ
t, định vị khuôn mặt, theo dõi mặt người hay nhận dạng cảm xúc mặt người…
Phát hiện mặt người trong ảnh là phần đầu tiên của một hệ thống nhận dạng mặt
người. Các hệ thống nhận dạng khuôn mặt được bắt đầu xây dựng từ những năm 1970,
tuy nhiên do còn hạn chế về các luật xác định mặt người nên chỉ được áp dụng trong một
số
ứng dụng như nhận dạng thẻ căn cước. Nó chỉ được phát triển mạnh mẽ từ những năm
lý con người tốt hơn.
4.2. Camera chống trộm.
Các hệ thống camera sẽ xác định đâu là con người và theo dõi xem con người đó có
làm gì phạm pháp không, ví dụ như lấy trộm đồ, xâm nhập bất hợp pháp vào một khu vực
nào đó.
4.3.
Bảo mật.
Các ứng dụng về bảo mật rất đa dạng, một trong số đó là công nghệ nhận dạng mặt
người của laptop, công nghệ này cho phép chủ nhân của máy tính chỉ cần ngồi trước máy
là có thể đăng nhập được. Để sử dụng công nghệ này, người dùng phải sử dụng một
webcam để chụp ảnh khuôn mặt của mình và cho máy “học” thuộc các đặc đi
ểm của
khuôn mặt giúp cho quá trình đăng nhập sau này.
4.4. Lưu trữ khuôn mặt
Xác định mặt người có thể được ứng dụng trong các trạm rút tiền tự động (ATM) để
lưu trữ khuôn mặt của người rút tiền. Hiện nay có những người bị người khác lấy trộm thẻ
ATM và mã PIN, và bị rút tiền trộm, hoặc có những chủ tài khoản đi rút tiền nhưng lại
báo với ngân hàng là bị
mất thẻ và bị rút tiền trộm. Nếu lưu trữ được khuôn mặt của
người rút tiền, ngân hàng có thể đối chứng và xử lý dễ dàng hơn.
5
4.5.
Các ứng dụng khác
• Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính, Palm, …. Kết hợp thêm
vân tay và mống mắt. Cho phép nhân viên được ra vào nơi cần thiết.
• An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã áp
dụng). Dùng camera quan sát để xác thực người nhập cảnh và kiểm tra xem người
đấy có phải là tội phạm hay phần tử khủng bố không.
• Tìm kiếm và tổ chức dữ liệu liên quan đế
được tốt nhất có thể.
7
Chương 2
CÁC CÔNG TRÌNH NGHIÊN CỨU
1. Các phương pháp chính để xác định mặt người.
Dựa vào tính chất của các phương pháp xác định mặt người trên ảnh, các phương
pháp này được chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác nhau.
Ngoài ra cũng có rất nhiều nghiên cứu mà phương pháp xác định mặt người không chỉ
dựa vào một hướng mà có liên quan đến nhiều hướng.
• Hướng tiếp cận dựa trên tri thức: Dựa vào các thuật toán, mã hóa các đặc trưng và
quan hệ giữa các đặc trư
ng của khuôn mặt thành các luật. Đây là hướng tiếp cận
theo kiểu top-down.
• Hướng tiếp cận dựa trên đặc trưng không thay đổi: Xây dựng các thuật toán để tìm
các đặc trưng của khuôn mặt mà các đặc trưng này không thay đổi khi tư thế
khuôn mặt hay vị trí đặt camera thay đổi. Hướng tiếp cận này là hướng tiếp cận
theo kiểu bottom-up.
• Hướng tiếp cận dựa trên so sánh khớp mẫu: Dùng các mẫu chu
ẩn của khuôn mặt
(các mẫu này được định nghĩa bằng tay trước hoặc được tham số hóa bằng mộ
hàm số) để mô tả các khuôn mặt hay các đặc trưng của khuôn mặt. Mẫu này được
sử dụng để phát hiện khuôn mặt bằng cách quét nó qua ảnh và tính toán giá trị
tương đồng cho mỗi vị trí. Việc xuất hiện một khuôn mặt tại một vị trí nào đó
trong ảnh phụ thuộc vào giá tr
ị tương đồng của điểm đó so với mẫu chuẩn
• Hướng tiếp cận dựa trên diện mạo: Trái ngược với hướng tiếp cận dựa trên khuôn
mẫu, các mô hình (hay các mẫu) sẽ được học từ một tập ảnh huấn luyện mà thể
hiện tính chất tiêu biểu của sự xuất hiện của mặt người trong ảnh. Sau đó hệ
thố
trên khuôn mặt
9
Yang và Huang đã sử dụng hướng tiếp cận dựa trên tri thức để xác định khuôn mặt
[7]. Hệ thống của hai tác giả bao gồm ba mức luật. Đầu tiên các ông sử dụng một khung
cửa sổ để quét trên bức ảnh và thông qua một số tập luật để xác định các ứng viên có thể
là mặt người, ví dụ như tìm phần trung tâm của khuôn mặt (phần tối hơn trong hình 1).
Tiếp theo, dùng một tập lu
ật để mô tả tổng quát hình dáng khuôn mặt, lọc các ứng viên ở
mức một thành một tập các ứng viên mới có xác xuất là khuôn mặt cao hơn. Cuối cùng,
các ông lại dùng một tập luật khác để xem xét ở mức chi tiết các đặc trưng khuôn mặt ( có
thể là đặc trưng về mắt, mũi, miệng … ), từ đó lọc ra các ứng viên chính xác nhất. Có thể
nói cách làm của hai ông là một cách làm mịn dần để đạt đượ
c kết quả tốt nhất, mặc dù tỷ
lệ chính xác chưa cao, nhưng đây là tiền đề cho nhiều nghiên cứu sau này.
Có rất nhiều công trình nghiên cứu sử dụng phương pháp chiếu để xác định khuôn
mặt.
Kotropoulos và Pitas đưa ra một phương pháp gần tương tự với Yang và Huang. Đầu
tiên, các vùng của khuôn mặt được định vị bởi phương pháp chiếu (đã được Kanade sử
dụng thành công) để xác định biên của khuôn mặt. Với I(x,y) là giá trị xám của một điểm
trong ảnh có kích thước m x n ở tại vị trí (x,y), các hàm để chiếu ảnh theo phương ngang
và thẳng đứng được định nghĩa như sau:
Dựa trên biểu đồ hình chiếu ngang, khi xét biểu đồ biến thiên của HI hai ông tìm
được hai cực tiểu địa phương tương ứng với hai đỉnh đầu bên trái và bên phải của khuôn
mặt. Còn theo hình chiếu dọc, xét biến thiên và tìm cực tiểu địa phương của VI cũng cho
ta các vị trí của miệng, đỉnh mũi và hai mắt. Các đặc trưng này đủ để xác định khuôn mặt.
Hình 2.a cho một ví dụ về cách xác định như trên. Cách xác định này có t
ỷ lệ xác định
chính xác là 86.5% cho trường hợp chỉ có một khuôn mặt trực diện và hình nền không
tự
các đặc trưng không thay đổi của khuôn mặt. Dùng năm đặc trưng (hai mắt, hai lỗ mũi,
phần nối giữa mũi và miệng) để mô tả một khuôn mặt. Đồng thời tính quan hệ khoảng
cách cho tất cả các cặp đặc trưng (như mắt trái, mắt phải), sau đấy dùng phân bố Gauss để
11
mô hình hóa. Một mẫu khuôn mặt được đưa ra thông qua trung bình tương ứng cho một
tập đa hướng, đa tỷ lệ của bộ lọc đạo hàm Gauss. Từ một ảnh, các đặc trưng của ứng viên
được xác định bằng cách so khớp từng điểm ảnh khi lọc tương ứng với vector mẫu. Hai
ứng viên có đặc trưng đứng đầu sẽ được chọn để tìm kiếm cho các đặc trư
ng khác của
khuôn mặt. Từ các đặc trưng không thay đổi, các đặc trưng khác sẽ được xác định thông
qua sự đánh giá xác xuất khoảng cách giữa các đặc trưng, hơn nữa phương sai của phép
thống kê này có thể được tính toán trước để xác định các đặc trưng với xác xuất lớn. Tỷ lệ
chính xác của phương pháp này là 86%.
Bên cạnh tính khoảng cách liên quan để mô tả quan hệ giữa các đặc trưng như
Leung. Kendall [4], Mardia and Dryden [12] dùng lý thuyế
t xác suất thống kê về hình
dáng. Dùng hàm mật độ xác suất (Probility Density Function - PDF) qua N điểm đặc
trưng, tương ứng (xi, yi) là đặc trưng thứ i với giả sử là phân bố Gauss có 2N-chiều. Các
tác giả áp dụng phương thức cực đại khả năng (Maximum-Likelihood - ML) để xác định
vị trí khuôn mặt. Một thuận lợi của phương pháp này là các khuôn mặt bị che khuất vẫn
có thể xác định được. Hạn chế phương pháp này
đó là không xác định được nhiều khuôn
mặt trong cùng một ảnh.
Không dùng phương pháp xác xuất, Sirohey đưa một phương pháp khác xác định
khuôn mặt từ một ảnh có hình nền phức tạp [10], gọi là phương pháp dựa trên cạnh. Ông
dùng phương pháp Candy [9] và heuristics loại bỏ các cạnh để còn lại duy nhất một
đường bao xung quanh khuôn mặt. Dùng một hình ellipse để bao khuôn mặt, tách biệt
vùng đầu và hình nền. Tỷ lệ chính xác của thuật toán là 80%.
kết cấu giống khuôn mặt (face-like texture).
1.2.3. Mầu sắc da.
Thông thường các ảnh màu không xác định trực tiếp trên toàn bộ dữ liệu ảnh mà các
tác giả dùng tính chất sắc màu của da người (khuôn mặt ng
ười) để chọn ra được các ứng
viên có thể là khuôn mặt người (lúc này dữ liệu đã thu hẹp đáng kể) để xác định khuôn
mặt người.
1.2.4. Đa đặc trưng.
Gần đây có nhiều nghiên cứu sử dụng các đặc trưng toàn cục như: màu da người,
kích thước, và hình dáng để tìm các ứng viên khuôn mặt, rồi sau đó sẽ xác định ứng viên
nào là khuôn mặt thông qua dùng các đặc trưng cục bộ (chi tiết) như
: mắt, lông mày, mũi,
miệng, và tóc. Tùy mỗi tác giả sẽ sử dụng tập đặc trưng khác nhau.
13
1.3. Hướng tiếp cận dựa trên so sánh khớp mẫu.
1.3.1. Tư tưởng của so sánh khớp mẫu
Trong hướng tiếp cận dựa trên so sánh khớp mẫu, các mẫu chuẩn của khuôn mặt
(thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc được biểu diễn thành
một hàm với các tham số cụ thể. Từ ảnh đầu vào, ta tính các giá trị tương quan so với các
mẫu chuẩn về
đường viền khuôn mặt, mắt, mũi và miệng. Thông qua các giá trị tương
quan này mà hệ thống sẽ quyết định có hay không có tồn tại khuôn mặt trong ảnh. Hướng
tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế, và hình
dáng thay đổi.
1.3.2. Xác định các mẫu.
Sakai đã cố gắng thử xác định khuôn mặt người chụp thẳng trong ảnh [20]. Ông
dùng vài mẫu con (sub template) về m
ắt, mũi, miệng, và đường viền khuôn mặt để mô
hình hóa một khuôn mặt. Mỗi mẫu con được định nghĩa trong giới hạn của các đoạn
các mẫu ảnh [15, 16]. Tư tưởng chính của ông dựa vào sự thay đổi mức độ sáng của các
vùng khác nhau của khuôn mặt (như hai mắt, hai má, và trán), (quan hệ về mức độ sáng
của các vùng còn lại thay đổi không đáng kể). Sau đấy xác định các cặp tỷ số của mức độ
sáng của một số
vùng (một vùng tối hơn hay sáng hơn) cho ta một lượng bất biến khá
hiệu quả. Ông lưu sự thay đổi độ sáng của các vùng trên khuôn mặt trong một tập thích
hợp với các cặp quan hệ sáng hơn – tối hơn giữa các vùng nhỏ. Một khuôn mặt được xác
định nếu nó thỏa mãn tất cả các cặp sáng hơn – tối hơn. Ý tưởng này xuất phát từ sự khác
biệt của cường độ giữa các vùng kề
cục bộ trên ảnh, sau này nó được mở rộng trên cơ sở
biến đổi wavelet để xác định người đi bộ, xác định xe hơi, xác định khuôn mặt. Ý tưởng
của Sinha còn được áp dụng trong các nghiên cứu về thị giác của robot. Hình 3 cho thấy
mẫu khuôn mặt với 16 cùng và 23 quan hệ. Các quan hệ này được dùng để phân loại, có
11 quan hệ thiết yếu (các mũi tên màu đen) và 12 quan hệ xác thực (các mũi tên mầu
xám). Mỗi mũi tên là mộ
t quan hệ. Một quan hệ của hai vùng thỏa mãn mẫu khuôn mặt
khi tỷ lệ giữa hai vùng vượt qua một ngưỡng và một khuôn mặt được xác đinh khi có 23
quan hệ thỏa mãn điều kiện trên.
15
Hình 3: Một mẫu khuôn mặt
Mẫu khuôn mặt có kích thước 14 x 16 pixel được
sử dụng trong phương pháp định vị khuôn mặt của
Sinha. Mẫu gồm 16 vùng trên khuôn mặt và 23
quan hệ ( các mũi tên).
Một số phương pháp khác như của Froba và Zink lọc cạnh ở độ phân giải thấp rồi
dùng biến đổi Hough để so khớp mẫu theo hướng cạnh để xác định hình dáng khuôn mặt
ở dạng chụp hình thẳng ở dạ
ng xám. Tỷ lệ chính xác trên 91%. Ngoài ra Shu và Jain còn
người.
Lanitis mô tả một phương pháp biểu diễn khuôn mặt người với cả hai thông tin: hình
dáng và cường độ [12]. Bắt đầu bằng các tập ảnh được huấn luyện với các đường viền
mẫu nh
ư là đường bao mắt, mũi, cằm/má đã được gán nhãn(phân loại). Ông dùng một
vector các điểm mẫu để mô tả hình dáng. Sau đó dùng một mô hình phân bố điểm (Point
Distribution Model – PDM) để mô tả vector hình dáng qua toàn bộ các cá thể. Dùng cách
tiếp cận như của Kirby và Sirovich [14] để mô tả cường độ bề ngoài của hình dáng đã
được chuẩn hóa. Để tìm kiếm và ước lượng vị trí khuôn mặt cũng như các tham số về
hình dáng ông sử dụng mộ
t mô hình PDM có hình dáng như khuôn mặt (xác định khuôn
mặt bằng mô hình hình dáng tích cực - Active Shape Model - ASM). Các mảnh của
khuôn mặt được làm biến dạng về hình dáng trung bình rồi trích lấy các tham số cường
độ. Sau đấy các tham số hình dáng và cường độ được dùng để phân loại và xác định
khuôn mặt.
1.4. Hướng tiếp cận dựa trên diện mạo.
1.4.1. Tư tưởng của hướng tiếp cận dựa trên diện mạo
Trái ngược với hướng tiếp cận d
ựa trên so sánh khớp mẫu (các mẫu đã được các nhà
nghiên cứu định nghĩa trước), các mẫu trong hướng tiếp cận này được học từ một tập ảnh
mẫu. Có thể nói hướng tiếp cận dựa trên diện mạo áp dụng các kỹ thuật theo hướng xác
suất thống kê và học máy để tìm những đặc tính liên quan của khuôn mặt và không phải là
khuôn mặt. Các đặc tính đã được học ở trong hình thái các mô hình phân bố hay các tham