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ố.
53 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 4696 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Phát hiện mặt người trong ảnh và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Nguyễn Hải Châu
HÀ NỘI - 2009
iii
Lời cảm ơn
Sau một thời gian dài học tập và nghiên cứu, cuối cùng em cũng đã hoàn thành
khóa luận tốt nghiệp này, đây là dịp tốt nhất để em có thể gửi lời cảm ơn đến mọi người.
Em xin gửi lời cảm ơn sâu sắc đến Tiến sĩ Nguyễn Hải Châu, đã tận hình hướng
dẫn, định hướng cho em trong suốt thời gian thực hiện đề tài. Thầy đã cho em những lời
khuyên quý báu giúp em hoàn thành tốt khóa luận.
Em xin cảm ơn khoa Công Nghệ Thông Tin trường Đại Học Công Nghệ - Đại Học
Quốc Gia Hà Nội, cảm ơn các thầy cô trong khoa đã tận tình giảng dậy, truyền đạt cho
em những kiến thức quý báu trong những năm học vừa qua, giúp cho em có một nền tảng
kiến thức vững chắc để thực hiện khóa luận cũng như nghiên cứu học tập sau này.
Tôi xin cảm ơn tất cả bạn bè, anh, chị, những người đã giúp đỡ, khích lệ cũng như
phê bình, góp ý, giúp tôi hoàn thành khóa luận một cách tốt nhất.
Cuối cùng, con cảm ơn bố, mẹ, những người luôn luôn quan tâm, chăm sóc cho con
cả về vật chất lẫn tinh thần, luôn tạo điều kiện tốt nhất cho con có thể chuyên tâm học
tập, nghiên cứu. Gia đình luôn là nguồn động viên, là chỗ dựa tinh thần vững chắc cho
con.
Hà nội, ngày 24 tháng 5 năm 2009
Sinh viê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
4. Các ứng dụng của xác định mặt người. ..................................................................... 4
4.1. Xác minh tội phạm................................................................................................. 4
4.2. Camera chống trộm................................................................................................ 4
4.3. Bảo mật. ................................................................................................................. 4
4.4. Lưu trữ khuôn mặt ................................................................................................. 4
4.5. Các ứng dụng khác ................................................................................................ 5
5. Xác định phạm vi đề tài............................................................................................. 5
Chương 2 CÁC CÔNG TRÌNH NGHIÊN CỨU ................................................................7
1. Các phương pháp chính để xác định mặt người. ....................................................... 7
1.1. Hướng tiếp cận dựa trên tri thức........................................................................... 8
1.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi. ............................................ 10
1.3. Hướng tiếp cận dựa trên so sánh khớp mẫu. ....................................................... 13
1.4. Hướng tiếp cận dựa trên diện mạo....................................................................... 16
Chương 3 CƠ SỞ LÝ THUYẾT .......................................................................................23
1. Tổng quan về Adaboost........................................................................................... 23
1.1. Tiếp cận Boosting ................................................................................................ 23
1.2. Adaboost .............................................................................................................. 24
1.3. Các đặc trưng Haar-Like...................................................................................... 28
1.4. Cascade of Classifiers .......................................................................................... 31
vi
1.5. Cascade of boosting classifiers ............................................................................ 33
Chương 4 XÂY DỰNG ỨNG DỤNG ..............................................................................34
1. Sơ lược về OpenCV ................................................................................................ 34
2. Tổng quan về một hệ thống phát hiện mặt người trong ảnh ................................... 35
3. Phân tích – thiết kế hệ thống phát hiện mặt người .................................................. 35
3.1. Phân tích............................................................................................................... 35
3.2. Thiết kế hệ thống ................................................................................................. 36
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.
Strong classifier
(bộ phân loại mạnh)
Bộ phân loại được xây dựng từ nhiều bộ phân loại yếu, có độ
chính xác cao.
Threshold
(ngưỡng)
Ngưỡng là giá trị ranh giới giữa các lớp, giá trị của ngưỡng
có thể điều chỉnh được thường được chọn từ thực nghiệm.
(Người ta thử bộ nhận dạng với các giá trị ngưỡng khác nhau
để chọn ra ngưỡng cho tỉ lệ nhận dạng đúng tốt nhất)
Weak classifier
(bộ phân loại yếu)
Bộ phân loại đơn giản có độ chính xác khoảng 50%.
viii
DANH MỤC HÌNH VẼ
Hình 1: Một phương pháp xác định khuôn mặt điển theo hướng tiếp cận top-down. .........8
Hình 2: Phương pháp chiếu ................................................................................................10
Hình 3: Một mẫu khuôn mặt ..............................................................................................15
Hình 4: các vector quan sát để huấn luyện cho HMM .......................................................20
Hình 5: Các trạng thái ẩn....................................................................................................21
Hình 6: Xác định khuôn mặt bằng HMM...........................................................................21
Hình 7: Boosting.................................................................................................................24
Hình 8 : 4 đặt trưng Haar-like cơ bản.................................................................................28
Hình 9: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở ...................................29
Hình 10: Cách tính Integral Image của ảnh........................................................................30
Hình 11:Ví dụ cách tính nhanh tổng các điểm ảnh của vùng D trên ảnh...........................30
Hình 12: Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc trưng
xoay 45o ..............................................................................................................................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 45o
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ông nghệ thông tin đang được ứng dụng trong mọi lĩnh vực của cuộc sống. Với
một hệ thống máy tính, chúng ta có thể làm được rất nhiều việc, tiết kiện thời gian và
công sức. Điển hình như công việc nhận dạng mặt người. Ngày xưa, muốn tìm kiếm một
kẻ tình nghi trong siêu thị hay sân bay, các nhân viên an ninh phải tìm kiếm trên từng màn
hình camera theo dõi. Ngày nay, công việc đấy đã được làm tự động nhờ các hệ thống
nhận dạng mặt người. Phát hiện mặt người trong ảnh là một phần quan trọng của hệ thống
nhận dạng mặt người đó, giải quyết tốt việc phát hiên mặt người sẽ giúp tiết kiệm thời
gian và nâng cao độ chính xác của việc nhận dạng khuôn mặt.
Phát hiện mặt người cũng là một bài toán nhận dạng đơn giản, hệ thống chỉ cần phân
loại đối tượng đưa vào có phải mặt người hay không phải mặt người. Ở mức độ cao hơn,
sau khi đã phát hiện được khuôn mặt, các khuôn mặt đó sẽ được so sánh với các khuôn
mặt có trong dữ liệu để nhận dạng xem khuôn mặt đấy là của ai (thường áp dụng trong
nhận dạng khuôn mặt của người nổi tiếng hoặc của tội phạm đang bị truy nã).
Bài toán phát hiện mặt người được bắt đầu nghiên cứu từ những năm 1990s, và đã
có rất nhiều công trình nghiên cứu về phát hiện khuôn mặt trong ảnh, tuy nhiên cho đến
nay, các nhà khoa học vẫn không ngừng tìm các hướng tiếp cận mới, các thuật toán mới
nhằm nâng cao hiệu suất của việc phát hiện khuôn mặt cũng như việc nhận dạng mặt
người.
Với mục tiêu chính là tìm hiểu giải thuật adaboost, các đặc trưng haar-like, mô hình
Cascade of Classifiers, đồng thời áp dụng vào bài toán phát hiện mặt người trong ảnh,
khóa luân được trình bầy trong bốn chương với bố cục như sau:
Chương 1: Tổng quan về các phương pháp xác định mặt người : Giới thiệu tổng
quan về bài toán xác định mặt người trong ảnh, các ứng dụng và những khó khăn của bài
toán, đồng thời xác định phạm vi của đề tài.
Chương 2: Các công trình nghiên cứu : Nêu chi tiết bài toán phát hiện mặt người,
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
1990 khi có những tiến bộ trong công nghệ video và ngày nay thì các ứng dụng của xác
định mặt người đã trở nên phổ biến trong cuộc sống.
2. Định nghĩa bài toán xác định mặt người.
Xác định khuôn mặt người là một kỹ thuật máy tính để xác định các vị trí và kích
thước của các khuôn mặt người trong các ảnh bất kì. Kỹ thuật này nhận biết các đặc trưng
của khuôn mặt và bỏ qua những thứ khác như: tòa nhà, cây cối, cơ thể …
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.
Việc xác định khuôn mặt người có những khó khăn nhất định như:
• Hướng của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn nghiêng hay nhìn
từ trên xuống. Cùng trong một ảnh có thể có nhiều khuôn mặt ở những tư thế
khác nhau.
• Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt người,
như: râu quai nón, mắt kính, ….
• Các nét mặt khác nhau trên khuôn mặt, như: vui, buồn, ngạc nhiên, ….
• Mặt người bị che khuất bởi các đối tượng khác có trong ảnh.
4
• Sự biểu cảm của khuôn mặt : sự biểu cảm có thể làm thay đổi đáng kể các đặc
trưng và thông số của khuôn mặt, ví dụ như khuôn mặt của cùng một người sẽ
rất khác khi người đấy cười, tức giận hay sợ hãi …
4. Các ứng dụng của xác định mặt người.
Xác định mặt người thường là một phần của một hệ thống (facial recognition
system). Nó thường được dùng trong giám sát video, giao tiếp người máy và quản lý cơ
sở dữ liệu ảnh… Các ứng cơ bản của xác định mặt người có thể kể đến là:
4.1. Xác minh tội phạm.
Dựa vào ảnh của một người, nhận dạng xem người đấy có phải là tội phạm hay
không bằng cách so sách với các ảnh tội phạm đang được lưu trữ. Hoặc có thể sử dụng
camera để phát hiện tội phạm trong đám đông. Ứng dụng này giúp cơ quan an ninh quản
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 đến con người thông qua khuôn mặt người
trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình, ….
Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim có diễn viên
Tăng Thanh Hà đóng, tìm các trận đá bóng có Công Vinh đá, …
• Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và hỗ trợ
thông báo khi cần thiết.
• Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của
người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay xử lý tại các
hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt so với thẻ để biết nay
có phải là chủ thẻ hay không.
• Hãng máy chụp hình Canon đã ứng dụng bài toán xác định khuôn mặt người vào
máy chụp hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhất là khuôn mặt
người.
5. Xác định phạm vi đề tài
Trong đề tài này, tôi tập trung vào việc xác định khuôn mặt trong ảnh, video hoặc
webcam. Từ đấy lưu khuôn mặt tìm được vào CSDL để phục vụ cho các mục đích khác (
chẳng hạn như nhận dạng mặt người hoặc ghép khuôn mặt vào bức ảnh khác … ). Do các
điều kiện khó khăn đã nêu ở trên ( mục 3 chương 1) tôi xin đưa ra những giả định và rành
buộc sau để giảm độ phức tạp của bài toán:
• Các khuôn mặt được chụp thẳng hoặc góc nghiêng không đáng kể (bé hơn 10o)
• Phông nền của ảnh không quá phức tạp
• Ảnh được chụp trong điều kiện ánh sáng bình thường.
6
• Đối với video hoặc webcam, do có thể tách thành các xử lý trên ảnh nên với
những video phức tạp hay webcam quá kém, chương trình sẽ không thực hiện
đượ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.