DANH SÁCH CÁC THUẬT NGỮ DÙNG TRONG BÀI: 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
Trang 1LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT VIỄN THÔNG
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ KỸ THUẬT
KỸ THUẬT VIỄN THÔNG
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS LÊ DŨNG
Hà Nội – Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của TS Lê Dũng Các nội dung nghiên cứu, kết quả trong đề tài này
là trung thực và chưa từng được công bố dưới bất kì hình thức nào trước đây Ngoài
ra trong đề tài có dùng một số sơ đồ khối, hình ảnh của các tác giả khác đều có trích dẫn và chú thích nguồn gốc Nếu phát hiện bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình
Hà Nội, ngày 29 tháng 03 năm 2017
Tác giả luận văn
Phạm Xuân Trường
Trang 4TÓM TẮT LUẬN VĂN
Trên thế giới, công nghệ nhận diện khuôn mặt đã trở nên phổ biến, được áp dụng vào nhiều lĩnh vực phục vụ nhu cầu giải trí, bảo mật an toàn thông tin cho con người Với công nghệ này cuộc sống của con người không ngừng được nâng cao,
hỗ trợ tốt không chỉ cho người bình thường mà còn là công cụ giao tiếp thiết thực cho người khuyết tật, đặc biệt là người liệt tứ chi
Luận văn tốt nghiệp này hướng tới mục đích tìm hiểu một số phương pháp phân loại khuôn mặt người dựa trên các hướng nghiên cứu đã có của thế giới và từ
đó đề xuất xây dựng một hệ thống nhận dạng hướng mắt
Trong khuôn khổ luận văn, tôi đã thiết kế và phát triển để tài : “Thiết kế hệ thống tương tác giữa người và máy thông qua công nghệ nhận dạng khuôn mặt
và hướng mắt” gồm các nội dụng chính sau:
CHƯƠNG 1: LÝ THUYẾT BÀI TOÁN XỬ LÍ ẢNH MẶT NGƯỜI
Giới thiệu về các kĩ thuật xử lý ảnh mặt người đang được phát triển trên thế giới
CHƯƠNG 2: PHƯƠNG PHÁP ADABOOST VÀ CÁC ĐẶC TRƯNG HAAR FEATURE
Giới thiệu chi tiết về phương pháp Adaboost và các đặc trưng Haar feature
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
Đưa ra các yêu cầu thực thi hệ thống : các yêu cầu về thiết bị tương tác và ngôn ngữ lập trình
Trang 5ABSTRACT
In the world, facial recognition technology has become popular, applied in many areas serving the needs of entertainment, confidential information security for people With this technology, human life is constantly improved, good support not only for ordinary people but also a practical communication tool for people with disabilities, especially quadriceps
This thesis aims to explore some methods of classifying people's faces based
on the existing research directions of the world and thereby propose the
establishment of an eye orientation system
In the framework of the thesis, I designed and developed my thesis: "Design
a human machine interaction system using face recognition and eyes directions techniques", including the following main contents:
• CHAPTER 1: THEORY OF IMAGE PROCESSING PROBLEM
Introduction to human facial imaging techniques being developed around the world
• CHAPTER 2: ADABOOST METHOD AND HAAR FEATURES
Detailed introduction to Adaboost method and Haar features
• CHAPTER 3: BUILDING THE SYSTEM
Introduce system performance requirements: requirements for interactive devices and programming languages
Trang 6MỤC LỤC
TÓM TẮT LUẬN VĂN 2
ABSTRACT 3
DANH SÁCH CÁC THUẬT NGỮ DÙNG TRONG BÀI: 8
CHƯƠNG 1: LÝ THUYẾT BÀI TOÁN XỬ LÍ ẢNH MẶT NGƯỜI 9
1.1 Giới thiệu chung 9
1.1.1 Đặt vấn đề cho bài toán phân loại mặt người 9
1.1.2 Lịch sử phát triển bài toán phân loại, xử lí ảnh mặt người 9
1.1.3 Ứng dụng bài toán phân loại mặt người 10
1.2 Tìm hiểu các phương pháp xử lí ảnh với mặt người 11
1.2.1 Hướng tiếp cận dựa trên tri thức 11
1.2.1.1 Phương pháp của Yang và Huang 11
1.2.1.2 Phương pháp của Kotropoulos và Pitas 13
1.2.1.3 Đánh giá hướng tiếp cận dựa trên tri thức 14
1.2.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi 14
1.2.2.1 Phương pháp của Leung - Random Graph Matching 15
1.2.2.2 Phương pháp dựa trên màu da 16
1.2.2.3 Đánh giá hướng tiếp cận dựa trên đặc trưng bất biến 18
1.2.3 Hướng tiếp cận dựa trên so sánh khớp mẫu 18
1.2.3.1 Dùng mẫu định nghĩa sẵn 18
1.2.3.2 Dùng mẫu biến dạng 20
1.2.3.3 Đánh giá hướng tiếp cận đối sánh mẫu 21
1.2.4 Hướng tiếp cận dựa trên diện mạo 21
1.2.4.1 Các khuôn mặt riêng (Eigenfaces) 22
1.2.4.2 Dùng mạng Nơ ron 22
1.2.4.3 Dùng các phương pháp máy học (machine learning) 25
1.2.4.4 Đánh giá hướng tiếp cận dựa trên diện mạo 25
1.3 Giới thiệu về bài toán nhận diện hướng mắt 25
1.3.1 Hướng giải quyết 25
1.3.2 Ứng dụng 26
1.3.3 Khó khăn 28
1.4 Kết luận 28
Trang 7CHƯƠNG 2: PHƯƠNG PHÁP ADABOOST VÀ CÁC ĐẶC TRƯNG HAAR
FEATURE 29
2.1 Các đặc trưng Haar-Like 29
2.2 Tổng quan về Adaboost 33
2.3 Giải thuật Adaboost cho việc tách đối tượng mắt 35
2.3.1 Lựa chọn đặc trưng 35
2.3.2 Trích chọn đặc trưng 37
2.3.3 Xây dựng bộ phân loại yếu 38
2.3.4 Xây dựng bộ phân loại mạnh 40
2.4 Xây dựng bộ phân loại mạnh theo mô hình Cascade 46
2.5 Kết luận 49
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 50
3.1 Sơ lược về đầu Kinect 50
3.2 Xác định khuôn mặt sử dụng dữ liệu depth stream từ đầu Kinect 52
3.2.1 Giới thiệu về ảnh depth: 52
3.2.2 Xác định khuôn mặt dựa trên phân tích thống kê 54
a) Biểu đồ phân tích thống kê 54
b) Xác định các điểm cực trị của đồ thị thống kê 56
3.3 Áp dụng Adaboost vào việc xác định vị trí mắt trong ảnh: 58
3.3.1 Cấu trúc file training 59
3.3.2 Áp dụng file training để tìm vị trí mắt trong ảnh 60
3.3.3 Xác định hướng nhìn của mắt 64
3.4 Phân tích – thiết kế hệ thống nhận diện hướng mắt 66
3.4.1 Phân tích 66
3.4.2 Giới hạn bài toán 66
3.4.3 Thiết kế hệ thống 67
3.5 Kết quả và đánh giá : 71
3.6 Kết luận và hướng phát triển 73
Tài liệu tham khảo 75
Trang 8DANH MỤC HÌNH ẢNH SỬ DỤNG TRONG BÀI :
HÌNH1.1CƠCHẾTÌMKIẾMCỦAGOOGLEPORTRAIT 10
HÌNH1.2CÁCẢNHVỚIĐỘPHÂNGIẢIKHÁCNHAU 12
HÌNH1.3:MỘTTRITHỨCVỀKHUÔNMẶT 12
HÌNH1.4:MINHHỌAGIẢITHUẬTCHIẾU 13
HÌNH1.5:PHÂNBỐMÀUDATRONGMẶTPHẲNGCRCBTRONGKHÔNG GIANYCRCB 16
HÌNH1.6:MINHHỌAMẪUGỒMCÁCQUANHỆ 19
HÌNH1.7:THÀNHPHẦNĐẦUCỦAHỆTHỐNG 23
HÌNH1.8:SƠĐỒMÔTẢCÁCHSỬDỤNG EYECHARM 26
HÌNH1.9:ÝTƯỞNGVỀMÁYTÍNHTRONGSUỐT 27
HÌNH1.10.MINHHỌAHỆTHỐNGSPACETOP3D 27
HÌNH2.1:4ĐẶTTRƯNGHAAR-LIKECƠBẢN 29
HÌNH2.2:CÁCĐẶCTRƯNGMỞRỘNGCỦACÁCĐẶCTRƯNGHAAR-LIKE CƠSỞ 30
HÌNH2.3:CÁCĐẶCTRƯNGHAAR-LIKEMỞRỘNGMỚI 31
HÌNH2.4:LỢIÍCHCỦAĐẶCTRƯNGHAAR-LIKE 32
HÌNH2.5:CÁCHTÍNHINTEGRALIMAGECỦAẢNH 33
HÌNH2.6:VÍDỤCÁCHTÍNHNHANHTỔNGCÁCĐIỂMẢNHCỦAVÙNGD TRÊNẢNH 33
HÌNH2.7:MÔTẢGIẢITHUẬTBOOSTING 35
HÌNH2.8:ĐẶCTRƯNG3VÀSỰTƯƠNGQUANMỨCXÁM 37
HÌNH2.9:MINHHỌACÁCHCHỌNWEAKCLASSIFIER 40
HÌNH2.10:SƠĐỒCHUNGHỌCADABOOST 41
HÌNH2.11:MINHHỌAQUÁTRÌNHHỌCADABOOST 43
HÌNH2.12:.MÔHÌNHCASCADE 46
HÌNH2.13:MINHHỌATHUẬTTOÁNCASCADE 48
HÌNH3.1:HÌNHẢNHĐẦUKINECT 50
HÌNH3.2:CHITIẾTCÁCTHÀNHPHẦNCỦAĐẦUKINECT 51
HÌNH3.3:CẤUTRÚCPHẦNCỨNGVÀPHẦNMỀMCỦAKINECT 51
Trang 9HÌNH3.4:LIÊNKẾTGIỮAPHẦNCỨNGPHẦNMỀMVÀỨNGDỤNG 52
HÌNH3.5:DỮLIỆUDEPTH 53
HÌNH3.6:DẢIKHOẢNGCÁCHTỪ VẬTTHỂĐẾNCẢMBIẾNĐỌSÂU 53
HÌNH3.7:ẢNHBITMAPTHỂHIỆNĐỘSÂU 54
HÌNH3.8:ẢNHDEPTHSAUKHIĐÃLỌCBACKGROUND 54
HÌNH3.9:BIỂUĐỒTHỐNGKÊ 55
HÌNH3.10:LƯUĐỒCÁCBƯỚCTÌMCỰCTRỊCỦAĐỒTHỊTHỐNGKÊ 56
HÌNH3.11:MÔPHỎNGQUÁTRÌNHTÌMCỰCTRỊCỦAĐỒTHỊTHỐNGKÊ 56
HÌNH3.12:SỬDỤNGHISTOGRAMĐỂTÁCHPHẦNĐẦUNGƯỜI 58
HÌNH3.13:CẤUTRÚCFILETRAINING 60
HÌNH3.14:LƯUĐỒQUÁTRÌNHPHÁTHIỆNVỊTRÍMẮT 62
HÌNH3.15:KẾTQUẢPHÁTHIỆNMẮTNGƯỜI 64
HÌNH3.16:VỊTRÍCONNGƯƠICỦAMẮT 64
HÌNH3.17:MẮTVỚICÁCHƯỚNGNHÌNKHÁCNHAU 65
HÌNH3.18:ẢNHNHỊPHÂNCỦAMẮTVỚICÁCHƯỚNGNHÌNKHÁCNHAU 65
HÌNH3.19:LƯUĐỒKHỐIHỆTHỐNGNHẬNDẠNGHƯỚNGMẮT 67
HÌNH3.20:CLASSDIAGRAM 68
HÌNH3.21:LƯUĐỒTỔNGQUÁTCỦAHỆTHỐNG 70
HÌNH3.22:CÁCHƯỚNGMẮTNHÌNVÀKẾTQUẢTRÊNGIAODIỆN 72
HÌNH 3.23: KẾT QUẢ ĐÁNH GIÁ THỰC NGHIỆM .73
Trang 10DANH SÁCH CÁC THUẬT NGỮ DÙNG TRONG BÀI:
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 các 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
Threshold (ngưỡng) Ngưỡng là giá trị ranh giới giữa các lớp, giá trị của
ngưỡng thường được chọn từ thực nghiệm Chọn giá trị thích hợp nhất để hợp thành các bộ phân loại yếu
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%
Trang 11CHƯƠNG 1: LÝ THUYẾT BÀI TOÁN XỬ LÍ ẢNH MẶT NGƯỜI 1.1 Giới thiệu chung
1.1.1 Đặt vấn đề cho bài toán phân loại mặt người
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 hướng nghiên cứu như nhận dạng khuôn mặt, hướng mặt, theo dõi mặt các bộ phận trên mặt người …, và nhận dạng hướng mắt cũng là một trong các hướng nghiên cứu được nhiều người quan tâm Trong phần này tôi sẽ tập trung trình bày một số phương pháp để xác định mặt người, từ đó áp dụng để giải quyết bài toán nhận diện hướng mắt cho luận văn
1.1.2 Lịch sử phát triển bài toán phân loại, xử lí ảnh mặt người
Phát hiện và nhận dạng khuôn mặt trong ảnh có rất nhiều ứng dụng trong cuộc sống, bài toán này đã được các nhà khoa học quan tâm và nghiên cứu trong hơn hai thập kỷ qua Đã có rất nhiều giải pháp khác nhau được đưa ra nhằm giải quyết bài toán phát hiện khuôn mặt trong ảnh đơn và trong video Song do tính phức tạp và đa dạng của thực tế nên việc tìm ra một giải pháp toàn diện và hoàn chỉnh cho vấn đề này vẫn đang là một thách thức
Nói chung, với chặng đường nghiên cứu bài toán của các nhà khoa học, ta có thể thấy được cho đến nay, xét về cơ bản ta có thể chia các giải pháp đó theo 4 hướng tiếp cận:
1 Hướng tiếp cận dựa trên tri thức (Knowledge-based methods)
2 Hướng tiếp cận dựa trên đặc trưng bất biến (Feature-based methods)
3 Hướng tiếp cận dựa trên đối sánh mẫu (Template matching)
4 Hướng tiếp cận dựa trên thể hiện bề ngoài (Appearance-based methods)
Thực tế đã chứng minh các phương pháp theo hướng tiếp cận 1, 2 và 3 cho phép xây dựng hệ thống với tốc độ xử lý chấp nhận được tuy vậy, kết quả đầu ra lại chưa
Trang 12cao Bên cạnh đó, các phương pháp theo hướng tiếp cận thứ 4 lại có kết quả tốt hơn song việc cài đặt thực hiện tương đối khó khăn
1.1.3 Ứng dụng bài toán phân loại mặt người
Ứng dụng của bài toán phân loại mặt người có rất nhiều và đã được triển khai tương đối hiệu quả trong thực tế Có thể kể đến một số ứng dụng điển hình sau đây:
Hệ thống phát hiện xâm nhập :nhằm phát hiện đối tượng khả nghi 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 khả nghi hệ thống sẽ gởi thông điệp về cho trung tâm xử lý
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 đó là sử dụng các giao tiếp trực quan: biểu cảm khuôn 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: là bước đệm cho việc tìm kiếm
dựa trên nội dung ảnh hay video Ví dụ như phát hiện mặt người trong đó rồi qua nhận dạng đưa ra đúng chỉ mục cần tìm như video hay ảnh có Obama chẳng hạn
Google portrait [1]: sử dụng hệ thống nhận dạng khuôn mặt đa hướng nhìn (Multi-view Face) phát triển bởi IDIAP, Google đã tạo ra một công cụ hỗ trợ trong Google Image có khả năng lọc ảnh có chứa khuôn mặt và đưa ra ảnh chân dung thay vì đưa ra tấm ảnh hoàn chỉnh
Hình 1.1 Cơ chế tìm kiếm của Google Portrait
Trang 131.2 Tìm hiểu các phương pháp xử lí ảnh với mặt người
1.2.1 Hướng tiếp cận dựa trên tri thức
Trong hướng tiếp cận này, phương pháp phát hiện khuôn mặt dựa trên các quy tắc rút ra từ những tri thức về khuôn mặt được các nhà khoa học nêu ra Dễ dàng để
có được luật đơn giản để thể hiện các đặc trưng mặt người và mối quan hệ của chúng Chẳng hạn, một khuôn mặt thường có 2 mắt đối xứng nhau, 1 mũi, và 1 miệng Quan hệ giữa chúng thể hiện qua quan hệ khoảng cách hay vị trí
Tuy nhiên, hướng tiếp cận này gặp một khó khăn đó là việc chuyển từ tri thức về mặt người thành tập luật xác định tốt cho nhiều truòng hợp Tập luật quá chi tiết sẽ rất dễ dẫn đến bỏ sót các khuôn mặt thật, ngược lại nếu tập luật sơ sài sẽ dẫn đến kết quả có rất nhiều khuôn mặt mà trong số đó có cả các ứng viên không phải khuôn mặt Thêm vào đó hướng tiếp cận này là khá khó khăn khi mở rộng bài toán trong các trường hợp tư thế chụp khác nhau vì tư thế chụp có thể dẫn đến luật trên đây áp dụng không đúng nữa
Theo hướng tiếp cận này, chúng ta sẽ xem xét 2 nghiên cứu sau đây:
1.2.1.1 Phương pháp của Yang và Huang
Hai nhà khoa học Yang và Huang [2] đã dùng phương pháp có thứ tự theo
hướng tiếp cận này để phát hiện khuôn mặt Hệ thống này bao gồm 3 tầng luật:
Tầng đầu tiên: Tìm ra các ứng viên bằng cách quét 1 cửa sổ khắp ảnh đầu
vào, các ứng viên phải thỏa tập luật tầng này
Tầng giữa: Sử dụng các tập luật mô tả chung về khuôn mặt
Tầng cuối cùng: Dùng các tập luật xem xét một cách chi tiết các đặc trưng
khuôn mặt
Một hệ thống ảnh đa phân giải được xây dựng theo các mẫu con với độ xám của cả mẫu đó được thay bằng mức xám trung bình của mẫu Ví dụ như dưới đây:
Trang 14Hình 1.2 Các ảnh với độ phân giải khác nhau
các mẫu với được mã hóa theo quy tắc nxn pixels có giá trị trung bình của các pixel trong mẫu Trái qua phải n=1,4,8,16
Hình 1.3: Một tri thức về khuôn mặt
Hai ông sử dụng tri thức về khuôn mặt với một số tính chất độ sáng như trên hình 4 và rằng:
Tầng đầu tiên: Tìm ứng viên khuôn mặt trong mức phân giải thấp nhất gồm
có phần trung tâm của mặt với 4 phần có mức sáng tương đối đều nhau, tiếp theo là phần xung quanh, sáng hơn chút cũng có độ sáng gần như nhau (chênh lệch độ sáng giữa 2 vùng nói trên là đủ lớn)
Tầng giữa: Dùng biểu đồ historgram để xem xét tiếp các ứng viên trên đây, đồng thời tìm ra đường cạnh bao ứng viên
Tầng cuối cùng: Dùng các tập luật của tầng này xem xét đặc trưng khuôn mặt các ứng viên qua được tầng giữa Ví dụ đặc trưng về mắt, miệng …
Nhận xét: phương pháp này khá đơn giản, dễ thực hiện, tuy nhiên , kết quả lại
chưa cao Song các ý tưởng của phương pháp đã làm nền tảng cho các nghiên cứu sau này như ý tưởng sử dụng ảnh đa phân giải hay các tri thức về khuôn mặt đã
dùng
Trang 151.2.1.2 Phương pháp của Kotropoulos và Pitas
Hai ông khá thành công trong việc định vị vùng chứa khuôn mặt bằng phương pháp chiếu Ta xem xét phương pháp này với ảnh đa mức xám Cơ sở của phương pháp có thể hiểu như sau:
Giả thiết I(x,y) là độ xám tại vị trí tọa độ (x,y) của ảnh kích thước mxn
đủ để phát hiện được các ứng viên khuôn mặt
Xem ví dụ dưới đây cho giải thuật này Hình 1.4(a) minh họa cho cách xác định biên của khuôn mặt ứng với các cực trị địa phương như đã nêu trên đây Sau đó dùng vài luật đơn giản để kiểm tra lại ví như việc tồn tại của lông mày/ mắt, lỗ mũi/ mũi hay cái miệng … Tuy nhiên ở hai hình bên 1.4(b) và 1.4(c) việc xác định các cực trị địa phương như đã nêu là rất khó khăn do sự thay đổi của các đường cong HI(x) và VI(y) phụ thuộc vào nhiều yếu tố Trường hợp hình 1.4(b) là ảnh với nền phức tạp, trường hợp hình 1.4(c) là ảnh với sự có mặt của nhiều khuôn mặt trong ảnh
Hình 1.4: Minh họa giải thuật chiếu
Trang 16Phương pháp được đưa ra kiểm tra trên một tập khuôn mặt trong trong video gồm 37 người khác nhau Mỗi ảnh chỉ chứa 1 khuôn mặt trên 1 nền không đổi Phương pháp của họ tìm ra được đúng các ứng viên khuôn mặt Tỷ lệ phát hiện đúng là 86.5% và định vị đúng các đặc trưng của khuôn mặt như mắt, mũi, môi …
Nhận xét: phương pháp của Kotropoulos Pitas khá đơn giản, dễ thực hiện, tuy
nhiên, phương pháp này lại chỉ cho hiệu quả cao với các ảnh có một khuôn mặt, tư thế chụp thẳng và nền ảnh không quá phức tạp Sau này, phương pháp này đã được
cải tiến, kết hợp với ý tưởng đa phân giải, hay tiền xử lí trước khi chiếu
1.2.1.3 Đánh giá hướng tiếp cận dựa trên tri thức
1.2.2 Hướng tiếp cận dựa trên đặc trưng không thay đổi
Khác với hướng tiếp cận dựa trên tri thức, theo hướng tiếp cận này các nhà khoa học cố gắng tìm ra các đặc trưng bất biến của khuôn mặt phục vụ việc phát hiện khuôn mặt Trên tư tưởng các đặc trưng bất biến này vẫn tồn tại và có thể được nhận biết trong nhiều trường hợp và tư thế khác nhau, đã có nhiều nghiên cứu trước
là nhằm xác định các sự tồn tại đặc trưng khuôn mặt và sau là chỉ ra có khuôn mặt hay không Các đặc trưng như lông mày, mắt, mũi, miệng, và đường viền của tóc được trích bằng phương pháp xác định cạnh Từ đó xây dựng một mô hình thống
Trang 17kê để mô tả các quan hệ giữa chúng để kiểm tra sự tồn tại của khuôn mặt Vấn đề ở đây là các đặc trưng này có thể bị sai khác đi tùy thuộc điều kiện chiếu sáng, nhiễu, hay có thể bị che khuất, bên cạnh đó, bóng của ảnh cũng có thể tạo ra các cạnh gây lên sự nhầm lẫn, những vấn đề này gây ra khó khăn cho việc xác định khuôn mặt do
đó cần có sự điều chỉnh phù hợp Sau đây ta xem xét cụ thể hơn về một số phương pháp theo hướng tiếp cận này:
1.2.2.1 Phương pháp của Leung - Random Graph Matching
Leung đã phát triển một mô hình xác suất để định vị khuôn mặt trong ảnh nền phức tạp dựa vào việc xác định các đặc trưng cục bộ và bộ so sánh đồ thị ngẫu
nhiên (random graph matching) [3]
Ý tưởng ở đây là :
Đưa ra quy tắc định vị khuôn mặt thông qua các đặc trưng của mặt bằng việc tìm ra một trật tự hình học các đặc trưng sao cho gần nhất với mẫu khuôn mặt nhất
Các đặc trưng được xác định bởi giá trung bình các đáp ứng đa hướng, đa tỷ
lệ qua bộ lọc đạo hàm Gauss
Học các cấu hình của đặc trưng khuôn mặt với phân bố Gauss của các khoảng cách qua lại giữa các đặc trưng
Dựa trên sự gần giống nhau giữa các đặc trưng, dung bộ lọc Gauss để định vị các đặc trưng là ứng viên
Cuối cùng, dung bộ khớp đồ thị ngẫu nhiên (random graph matching) đối với các đặc trưng ứng viên trên để xác định khuôn mặt
Cụ thể hơn, ông mô tả khuôn mặt chuẩn thông qua 5 đặc trưng : 2 mắt, 2 lỗ mũi, đoạn giữa môi và mũi Với mỗi cặp đặc trưng cùng loại (chẳng hạn mắt trái và mắt phải), tính khoảng cách liên hệ giữa chúng trên toàn ảnh, tập các khoảng cách
đó được mô hình bằng mô hình Gauss Định nghĩa một mẫu khuôn mặt bởi giá trị trung bình tập kết quả của bộ lọc đạo hàm đa hướng, đa tỉ lệ (tại các pixel trong vùng đặc trưng mặt) trên tổng số các mặt trong tập data Với 1 ảnh cần kiểm tra, mỗi đặc trưng mặt được chỉ ra bằng cách khớp đáp ứng bộ lọc tại mỗi pixel với đáp ứng véc tơ mẫu Chọn hai đặc trưng với đáp ứng tốt nhất để làm cơ sở cho việc tìm
Trang 18các đặc trưng khác của khuôn mặt Vì rằng các đặc trưng không thể xuất hiện tùy tiện nên có thể mô hình xác xuất để định vị chúng qua khoảng cách Các hình sao được hình thành từ các đặc trưng ứng viên trong vùng thích hợp Việc tìm kiếm hình sao tốt nhất được xem như việc khớp đồ thị mà các nút tương ứng với các đặc trưng khuôn mặt, còn các cạnh ứng với khoảng cách giữa các đặc trưng Hạng của các hình sao được tính dựa trên hàm tỉ lệ xác suất mà hình sao đó ứng với khuôn mặt thật và không phải khuôn mặt rồi đưa ra kết luận cho ứng viên hình sao đó
Kiểm tra trên tập 150 ảnh có khuôn mặt với các hướng khác nhau, tỷ lệ nhận dạng đúng của hệ thống đạt 86%
1.2.2.2 Phương pháp dựa trên màu da
Màu da con người đã và được sử dụng và chứng minh là một đặc trưng có hiệu quả trong nhiều ứng dụng như xác định khuôn mặt, bàn tay … Mặc dù màu da của con người có khác nhau nhưng các nghiên cứu gần đây đã chỉ ra rằng sự khác nhau này chủ yếu là do sự khác nhau về cường độ sáng hơn là do sự khác nhau về thành phần màu
Tư tưởng chính của phương pháp là việc phân lớp các điểm ảnh theo xem có phải màu da hay không phải màu da Do đó nên chọn một không gian màu thích hợp, ở đó có sự tách biệt giữa 2 thành phần: thành phần độ chói / cường độ sáng và thành phần màu Qua thực nghiệm, các không gian màu có thể sử dụng là: HSV, HIS, TSL, YUV-YCrCb, YIQ, YES, CIE XYZ, CIE LUV …
Hình 1.5: Phân bố màu da trong mặt phẳng CrCb trong không gian YCrCb
Trang 19Quan sát hình trên đây ta thấy sự phân bố màu da trong không gian YCrCb khá nhỏ và tập trung Do đó ý tưởng dùng vùng màu da để phát hiện khuôn mặt là hoàn toàn có cơ sở Đã có rất nhiều phương pháp được đề xuất theo hướng nghiên cứu này Dưới đây để làm rõ hơn vấn đề ta xem xét một số ý tưởng sau đây:
Sử dụng không gian màu YCrCb Không gian màu YCrCb với quy tắc chuyển đổi được định nghĩa như dưới đây:
Cr1 ≤ Cr ≤C
Cb1 ≤ Cb ≤Cb2
C.Garcia và G.Tziritas [4] cũng dùng không gian màu YCrCb nhưng hai ông
dùng một tập luật khá chi tiết để phân loại các pixel Có thể tóm tắt như sau:
Khi Y ≤ 128: chọn các giá trị trung gian như sau:
Trang 201.2.2.3 Đánh giá hướng tiếp cận dựa trên đặc trưng bất biến
Ưu điểm:
- Dễ dàng phát hiện khuôn mặt trong các ảnh chỉ có một khuôn mặt trên
nền đơn giản
- Phát hiện được khuôn mặt trong nhiều tư thế và kiểu chụp khác nhau
vì đặc trưng khuôn mặt không thay đổi theo tư thế chụp
Nhược điểm:
- Khó khăn khi xác định khuôn mặt trong ảnh có nền phức tạp, hay khi
có sự xuất hiện vật che cản
1.2.3 Hướng tiếp cận dựa trên so sánh khớp mẫu
Trong phương pháp này người ta định nghĩa hoặc tham số hóa một mẫu khuôn mặt chuẩn thông qua một hàm nào đó (thường là khuôn mặt chụp thẳng) Từ đó mỗi ảnh đưa vào, tính toán các giá trị tương quan với mẫu chuẩn cho các thành phần đường viền khuôn mặt, mắt, mũi và miệng một cách độc lập Tiếp theo, từ các giá trị tương quan này ta mới xem xét rồi kết luận sự tồn tại của khuôn mặt trong ảnh
1.2.3.1 Dùng mẫu định nghĩa sẵn
Sakai [5] đã phát triển phương pháp phát hiện mặt người trong tư thế chụp
thẳng theo hướng tiếp cận này Ông dùng các mẫu con đối với mắt, mũi miệng và
Trang 21đường viền khuôn mặt để mô hình khuôn mặt Mỗi mẫu con được giới hạn bởi các đoạn thẳng Đối với mỗi ảnh vào, các đường được trích ra dựa vào sự thay đổi độ dốc lớn nhất sẽ đem so với mẫu con Có thể xem tư tưởng này gồm hai bước:
Bước đầu là tính toán các tương quan giữa các mẫu con và đường viền để xác định vị trí các ứng viên
Bước tiếp đó thực hiện so sánh với các mẫu con trong vùng này
Craw [6] lại phát triển một phương pháp định vị dựa vào hình dạng mẫu của
khuôn mặt ở tư thế chụp thẳng Trước tiên ông dùng bộ lọc Sobel để trích cạnh, các cạnh này được nhóm lại để tìm ra các mẫu khuôn mặt dựa trên một vài ràng buộc đưa ra Sau khi xác định được đường viền phần đầu, áp dụng tương tự đối với mắt, lông mày và mỗi ở các tỉ lệ khác nhau Sau đó ông dùng 40 mẫu để tìm ra các đặc trưng khuôn mặt và dùng một phương pháp để chỉ ra và đánh giá kết quả từ những mẫu của các đặc trưng trên
Sinha [7] dùng một tập nhỏ các ảnh cố định để mô tả không gian các mẫu
khuôn mặt Ý tưởng chính là trong khi độ sáng của các phần như mắt, hai má và vầng trán thay đổi với các khuôn mặt khác nhau thì quan hệ về độ sáng giữa chúng lại gần như không thay đổi gì lớn Từng cặp tỉ số độ sáng và chỉ dẫn kèm theo (vùng này tối hơn hay sáng hơn vùng kia) chính là những bất biến rất tốt chính vì vậy sử dụng các chỉ số này ta có thể tạo ra một mẫu với các tỉ số tương ứng với các đặc trưng như mắt, hai má và trán Các ràng buộc giữa các vùng mặt này cho ta một tập thích hợp các cặp quan hệ tối-sáng giữa các vùng con Một khuôn mặt được xác nhận nếu nó thỏa mãn các cặp ràng buộc trên Xem minh họa sau đây:
Hình 1.6: Minh họa mẫu gồm các quan hệ
Hình trên thể hiện một mẫu gồm 23 quan hệ giữa các vùng trong đó:
11 mũi tên màu đen thể hiện các ràng buộc chính
Trang 22 12 mũi tên xám mang tính chất kiểm tra
Đầu các mũi tên ám chỉ đó là vùng thứ hai ứng với quan hệ
Một quan hệ được thỏa mãn khi điều kiện về tương quan như đề cập trên giữa hai vùng được chấp nhận (thường có một giá trị ngưỡng) Ý tưởng này của ông sau đó cũng đã được phát triển thêm dùng biến đổi wavelet để áp dụng đối với người đi bộ, xe, và phát hiện khuôn mặt Phương pháp của ông sau này cũng có nhiều ứng dụng khác nữa điển hình như hệ thống thị giác của rô bốt…
Lanitis nghiên cứu một phương pháp biểu diễn khuôn mặt với hai yếu tố hình
dạng và mức sáng [9] Tư tưởng như sau:
Huấn luyện một tập các ảnh với các đường viền được lấy mẫu như đường bao mắt, mũi cằm và má (lưu ý là chúng được gán nhãn) và một véc tơ với thành phần là các điểm lấy mẫu để mô tả hình dạng
Dùng mô hình phân bố điểm (PDM- Point Distribution Model) để mô tả đặc
tính của véc tơ hình dạng thành qua tập các điểm riêng Mô hình phân bố này được dùng tìm khuôn mặt trong các ảnh mới sử dụng mô hình hình dạng có hiệu quả (ASM) để tìm và ước lượng vị trí và các thông số Khuôn mặt tạm thời được biến dạng về hình dạng trung bình và trích ra các tham số mức sáng Hình dạng và các thông số này sẽ được sử dụng để phân loại
Bây giờ để bắt đầu, ông định nghĩa vùng chữ nhật có các đặc trưng cần xem xét Phân tích các nhân tố ứng với đặc trưng được huấn luyện để có được hàm phân
Trang 23bố Tìm đặc trưng ứng viên nếu độ đo xác suất thỏa ngưỡng nào đó và phải được kiểm tra dùng ASM
Kết quả chính xác của phương pháp này là 35/40 ảnh vào Sau này việc ước lượng đã được cải thiện nhờ dùng hai bộ lọc Kalman
1.2.3.3 Đánh giá hướng tiếp cận đối sánh mẫu
Ưu điểm:
- Việc xây dựng và cài đặt giải thuật khá thuận lợi
- Xác định tốt cho các trường hợp đơn giản
- Thời gian xử lý chấp nhận được
Nhược điểm:
- Việc xây dựng được các mẫu là không đơn giản
- Không hiệu quả trong trường hợp phức tạp, có nhiễu, tư thế chụp bị
che khuất
1.2.4 Hướng tiếp cận dựa trên diện mạo
Trái với phương pháp đối sánh mẫu vừa bàn ở trên, đây là hướng tiếp cận mà mẫu được học trực tiếp từ các ảnh Thông thường các phương pháp theo hướng tiếp cận này thường dựa trên sự phân tích thống kê và kĩ thuật máy học để tìm các đặc tính thích hợp của ảnh khuôn mặt và ảnh không có khuôn mặt Các đặc tính đã học trong các mô hình phân bố hoặc các hàm biệt số do đó có thể dùng cho việc phát hiện mặt người Các phương pháp sử dụng mô hình xác suất dựa trên ý tưởng như sau: một ảnh hay một véc tơ đặc trưng xuất phát từ ảnh đầu vào sẽ được xem như một biến x và thêm nữa là giá trị ngẫu nhiên mô tả cho khuôn mặt và không phải khuôn mặt bởi hàm mật độ xác suất có điều kiện p(x | khuôn mặt) và p(x | không phải khuôn mặt), sau đó dùng các phương pháp để phân loại Bên cạnh đó có các phương pháp trên cơ sở tìm hàm biệt số giữa lớp các ảnh khuôn mặt và không khuôn mặt Thông thường bước đầu là chiếu mẫu ảnh vào các không gian có số chiều nhỏ hơn rồi phân loại chúng Ta xét một số phương pháp dưới đây:
Trang 241.2.4.1 Các khuôn mặt riêng (Eigenfaces)
Theo Kirby và Sirovich [10], các ảnh khuôn mặt có thể biểu diễn tuyến tính
bởi một số hữu hạn các ảnh cơ sở dựa trên phép biến đổi KL - kĩ thuật phân tích thành phần chính (PCA) Đưa ra một tập các ảnh huấn luyện kích thước m x n xem như một tập véc tơ m x n chiều Xác định các véc tơ cơ sở của không gian con tối
ưu trên cơ sở tìm giá trị nhỏ nhất của phương sai khoảng cách Họ coi tập các véc tơ riêng tối ưu này là ảnh riêng bởi chúng chính là véc tơ riêng của ma trận hiệp phương sai xây dựng trên tập huấn luyện Kinh nghiệm với tập 100 ảnh, các ảnh khuôn mặt với kích thước 91x50 có thể chỉ cần dùng 50 ảnh riêng biểu diễn
Turk và Pentland [11] sử dụng PCA để tìm ra các khuôn mặt riêng có thể
được xem như các véc tơ riêng tạo lên không gian con là không gian các khuôn mặt Bây giờ với bức ảnh đưa vào, thực hiện phép chiếu vào không gian con trên, nhận xét rằng hình chiếu của ảnh khuôn mặt về căn bản không thay đổi, còn hình ảnh không khuôn mặt khác xa rất nhiều Để phát hiện khuôn mặt, họ tính toán khoảng cách tương ứng các vùng ảnh đối với không gian khuôn mặt trên tại các vị trí của ảnh Kết quả tính toán sẽ dùng để phân loại vùng ảnh xem có phải lớp khuôn mặt hay không
Rowley [12, 13] sử dụng mạng nơ ron nhiều tầng để học các mẫu khuôn mặt
và không phải khuôn mặt từ các ảnh có khuôn mặt và không chứa khuôn mặt Khác với nhiều phương pháp trước đó, ông dùng nhiều mạng nơ ron và vài phương pháp phân tách để tăng cường hiệu quả việc phân loại Cụ thể hơn có thể hiểu hệ thống của ông có thể xem như gồm 2 thành phần chính:
Trang 25 Tầng 1: Hệ thống hai mạng nơ ron Đầu vào của các mạng nơ ron là các vùng với kích thước 20x20 pixel đã qua tiền xử lí của ảnh vào, và đầu ra là một giá trị trong khoảng (-1, 1)
Tầng 2: Một module thực hiện việc đưa ra quyết định cuối cùng Kết hợp các kết quả phát hiện từ các mạng nơ ron (merging overlapping), sử dụng các phép toán logic
Hình 1.7: Thành phần đầu của hệ thống
Đưa vào một mẫu cần kiểm tra, kết quả đầu ra của mạng huấn luyện sẽ gần
-1 nếu không phải mẫu khuôn mặt và kết quả gần -1 nếu là mẫu khuôn mặt Và để phát hiện khuôn mặt trong ảnh cần phải áp dụng trên toàn bộ ảnh Đối với khuôn mặt kích thước lớn hơn 20x20, lặp lại việc lấy mẫu ở các tỉ lệ khác nhau, các mẫu này chia thành các unit: 4 dạng 10x10, 16 dạng 5x5, 6 dạng 6x6 và áp dụng mạng
nơ ron Thực tế ông dùng tầm 1500 mẫu ảnh với các tỉ lệ, hướng, vị trí và mức sáng khác nhau để huấn luyện mạng Với mỗi ảnh huấn luyện, gán nhãn cho mắt, đỉnh mũi, góc cạnh và tâm miệng để có thể chuẩn hóa về cùng tỉ lệ, vị trí và hướng
Kết quả trong trường hợp dùng kết hợp hai mạng nơ ron trên database CMU đạt tỷ lệ 80.5%, số phát hiện thiếu là 33/169 và số phát hiện sai là 67
Các phương pháp sau này phát triển dựa trên mạng nơ ron kết hợp các hướng tiếp cận khác cũng có rất nhiều Việc chọn kích thước mẫu học được cải tiến cho
Trang 26phù hợp với cấu trúc khuôn mặt (kích thước mẫu có thể là 18x27 pixel), các bước tiền xủ lí cũng tốt hơn …
Trang 271.2.4.3 Dùng các phương pháp máy học (machine learning)
Có rất nhiều phương pháp học máy được sử dụng trong hướng tiếp cận dựa trên diện mạo như : Adaboost , Super Vector Machine … Và Adaboost là một trong những phương pháp tối ưu nhất, giải quyết được tính thời gian thực Vì vậy tôi chọn phương pháp này để giải quyết bài toán nhận diện hướng mắt và sẽ được trình bày chi tiết trong phần sau của báo cáo
1.2.4.4 Đánh giá hướng tiếp cận dựa trên diện mạo
- Khó khăn trong việc xây dựng cài đặt giải thuật
- Trong nhiều trường hợp, thời gian tính toán không mang tính thực tế
1.3 Giới thiệu về bài toán nhận diện hướng mắt
Trên cơ sở kế thừa những thành tựu từ bài toán nhận diện khuôn mặt, nhận diện hướng mắt là một hướng nghiên cứu nhỏ, ghóp phần giải quyết một số bài toán cụ thể trong cuộc sống Bài toán được đặt ra là khi mặt người được giữ ở vị trí cố định, mắt người thay đổi hướng nhìn bằng cách di chuyển con ngươi Nhiệm vụ là phải xác định được hướng nhìn của mắt, trong phạm vị đề đài là xác định xem mắt nhìn sang trái, phải hay lên trên, xuống dưới
1.3.1 Hướng giải quyết
Để giải quyết bài toán trong luận văn tôi có thể chia bài toán thành 2 phần Phần 1 là phát hiện vị trí mắt áp dụng phướng pháp Adaboost kết hợp với các đặc trưng Haar-Like Cụ thể phương pháp này sẽ được giới thiệu chi tiết trong
chương 3 của báo cáo Đồng thời để tăng tốc độ cho bài toán phát hiện vị trí mắt
người, trong luận văn tôi dùng ảnh độ sâu (depth) lấy ra từ Kinect Sensor để có thể
dễ dàng tách ra phần đầu người trong ảnh, từ đó việc áp dụng phương pháp
Trang 28Adaboost cho phát hiện vị trí mặt sẽ chỉ diễn ra trong vùng ảnh nhỏ hơn giúp đáp ứng được tính thời gian thực
Phần 2 là theo dõi chuyển động của con ngươi, cụ thể là lòng đen, từ đó ta
có thể dễ dàng suy ra được hướng nhìn của mắt Như chúng ta biết thông thường vị trí con ngươi là ở chính giữa mắt và con ngươi có màu đen Dựa vào các đặc trưng này, sau khi nhận diện được vị trí của mắt, ta có lọc ra vị trí của con ngươi sau đó chuyển ảnh sang dạng binary tức chỉ còn hai màu đen và trắng Với việc theo dõi
sự thay đổi vị trí vùng đen ta có thể dẽ dàng suy ra hướng nhìn của mắt
1.3.2 Ứng dụng
Ứng dụng trong y tế, dành cho những người khuyết tật bị liệt
Úng dụng trong điều khiển ví dụ như dùng mắt để điều khiển chuột trên màn hình máy tính …
Ứng dụng cho các thiêt bị như google glass
Hiện tại trên thế giới cũng đã có nhiều nghiên cứu về vẫn đề này và đã có
những ứng dụng cụ thể Ví dụ như thiết bị “eyeCharm” là thiết bị mở rộng trên
Kinect cho phép điều khiển máy tính dựa trên chuyển động của mắt Với thiết bị này người dùng có thể chơi game, vẽ photoshop và nhiều hơn thế
Hình 1.8:Sơ đồ mô tả cách sử dụng Eye charm
Một ứng dụng khác cũng đang được phát triển là mẫu máy tính “SpaceTop 3D” Với mẫu máy tính này, người dùng có thể đưa tay vào tận phía sau màn hình
Trang 29để điều khiển các biểu tượng và ứng dụng trong khi camera theo dõi vị trí mắt họ và điều khiển góc nhìn giúp cho hình ảnh xuất hiện như thể đây là một chiếc hộp 3D thực sự
Hình 1.9: Ý tưởng về máy tính trong suốt
Hình 1.10 Minh họa hệ thống SpaceTop 3D
Trang 30Hướng nghiên cứu này cũng hữu ích cho việc phát triển các ứng dụng cho các thiết bị google glass Ví dụ như một ứng dụng có xác định thông tin vật thể thông qua hướng nhìn của mắt chẳng hạn Tương lai sẽ không khác những bộ phim viễn tưởng chúng ta đang xem Công nghệ là một cái gì đó không tưởng
1.3.3 Khó khăn
Mắt người bị che khuất bởi tóc, đeo kính …
Mắt người bị khuyết tật VD: mắt lác, hay mặt híp
Điều kiện ánh sáng yếu
1.4 Kết luận
Trong Chương 1, tôi đã trình bày tổng quan các cơ sở lý thuyết về xử lý, nhận dạng ảnh và cơ sở lý luận của tương tác giữa người và máy tính Thông qua việc tìm hiểu, phân tích một số công trình nghiên cứu điển hình, tôi đã đánh giá được sự phát triển và tiềm năng của ứng dụng tương tác giữa người và máy thông qua nhận dạng khuôn mặt và hướng mắt Những nội dung này, chính là nền tảng lý thuyết quan trọng trong việc xây dựng ứng dụng tại Chương 3 Luận văn
Trang 31CHƯƠNG 2: PHƯƠNG PHÁP ADABOOST VÀ CÁC ĐẶC
TRƯNG HAAR FEATURE 2.1 Các đặc trưng Haar-Like
Một đối tượng được đặc trưng bởi tập hợp các pixel, các pixel này tạo lên những điểm khác biệt so với các vùng pixel khác Tuy nhiên với một ảnh đầu vào, việc sử dụng các điểm ảnh riêng lẻ lại không hiệu quả Tư tưởng kết hợp các vùng pixel với nhau tạo ra đặc trưng có khả năng phân loại tốt các vùng của khuôn mặt được đưa ra nhiều Trong số đó đặc trưng haarlike đã được ứng dụng và tỏ ra rất hiệu quả Viola và Jones dùng 4 đặc trưng cơ bản để xác định khuôn mặt người Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình dạng được mô tả như sau:
Hình 2.1: 4 đặc trưng Haar-like cơ bản
Mỗi đặc trưng có một kích cỡ bất kì và nhỏ hơn kích cỡ của cửa sổ con (của
sổ dùng để quét bức ảnh để xác định ra vùng đối tượng mong muốn) Kích cỡ của mỗi hình dạng trong mỗi đặc trưng cũng có thể khác nhau Các đặc trưng này không chỉ được dùng để phát hiện khuôn mặt mà còn có thể được dùng để phát hiện một đối tượng bất kì trong ảnh Trong luận án, tôi dùng các đặc trưng này để phát hiện
vị trí của “mắt người” trong ảnh Các đặc trưng này sẽ được kết hợp với phương
pháp Adaboost Phương pháp này sẽ được trình bày trong các phần sau của chương này
Để áp dụng các đặt trưng này vào việc bài toán xác định đối tượng trong ảnh,
4 đặt trưng Haar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:
Trang 321 Đặc trưng cạnh (edge features):
2 Đặc trưng đường (line features):
3 Đặc trưng xung quanh tâm (center-surround features):
Hình 0.2 : Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở
Sau này các đặc trưng này còn được mở rộng ra rất nhiều, để nâng cao tính chính xác cho bài toán phát hiện đối tượng trong ảnh
Trang 33Hình 2.3: Các đặc trưng Haar-Like mở rộng mới
Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì 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 diễn đạt được Để tính giá trị các đặc trưng haar-like, ta tính sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:
f(x) = Tổng vùng đen (pixel) - Tổng vùng trắng (pixel)
Lấy ví dụ phát hiện khuôn mặt, ta dùng giá trị của các đặc trưng haar-like để xác định vùng ảnh tương ứng có phải là khuôn mặt hay không Nhìn vào hai bức ảnh bên dưới, trong bức ảnh thứ nhất ta thấy vùng mắt có màu đen vùng mũi có
màu sáng hơn nên giá trị đặc trưng f khi lấy trị tuyệt đối sẽ lớn Trong bức ảnh thứ
hai thì giá trị đặc đặc trưng sẽ nhỏ vì hai vùng có màu sắc gần giống nhau Dựa vào các giá trị đặc trưng đó kết hợp với một giá trị mức ngưỡng ta sẽ xác định được vùng ảnh đó có phải là khuôn mặt hay không
Trang 34
Hình 2.4: Lợi ích của đặc trưng Haar-Like
Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola và Jones
đưa ra một khái niệm gọi là Integral Image để tính toán nhanh cho khác feature cơ
bản Sau này, Lienhart kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra thêm khái niệm RSAT – Rotated Summed Area Table dùng để tính toán
nhanh cho các đặc trưng xoay 1 góc 45o
Integral Image là một mảng 2 chiều với
kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh
𝑃(𝑥, 𝑦) = ∑𝑖≤𝑤,𝑗≤ℎ𝐼(𝑥, 𝑦) Trong đó:
w: Chiều rộng của ảnh
h: chiều cao của ảnh
x, y: vị trí các pixel trên ảnh
Trang 35Hình 2.5: Cách tính Integral Image của ảnh
Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh của vùng D như trong hình dưới
Học theo “adaboost” là một cách trong hướng tiếp cận dựa trên diện mạo,
Viola và Jones dùng AdaBoost kết hợp cascade để xác định khuôn mặt người với các đặc trưng dạng Haar wavelet-like Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80% trên ảnh xám Phương pháp này hoàn toàn có thể dùng để nhận diện mắt
AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận
“boosting” được Freund và Schapire đưa ra vào năm 1995 Adaboost cũng hoạt
động trên nguyên tắc kết hợp tuyến tính các weak classifiers để hình thành một strong classifier
Về lịch sử, boosting bắt nguồn từ câu hỏi nổi tiếng được đưa ra bời Kearns
vào năm 1989 : “Liệu có thể tạo ra một strong classifier từ một tập các weak
classifier?” Năm 1990, Robert Schapire đưa ra thuật toán boosting đầu tiên, tiếp
Trang 36đến năm 1993 thì nó được Drucker, Schapire và Simard kiểm nghiệm trong trong
các chương trình nhận dạng ( OCR application ) Freund đã tiếp tục các nghiên cứu
của Schaprire, và đến năm 1995 thì ông cùng với Schapire phát triển boosting thành adaboost
Như vậy, nguyên lý cơ bản của boosting là sự kết hợp các weak classifiers thành một strong classifier Trong đó, weak classifier là các bộ phân loại đơn giản
chỉ cần có độ chính xác trên 50% Bằng cách này, chúng ta nói bộ phân loại đã được
“boost” tức được tăng cường
Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phân loại
2 lớp: đối tượng và không phải đối tượng (mẫu cần nhận dạng chỉ thuộc một trong
hai lớp) với D là tập huấn luyện gồm có n mẫu Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n 1 mẫu từ tập D (n 1 <n) để tạo tập D1 Sau đó, chúng ta sẽ xây dựng weak
classifier đầu tiên C1 từ tập D1 Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện
bộ phân loại C2 D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại đúng bởi C1 và nửa còn lại bị phân loại sai bởi C1 Bằng cách này, D2 chứa đựng những thông tin bổ sung cho C1 Bây giờ chúng ta sẽ xây huấn luyện C2 từ
D2 Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại
tốt bởi sự kết hợp giữa C1 và C2 tức là những mẫu còn lại trong D mà C1 và C2 cho kết quả khác nhau Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không hiệu quả Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3
Bây giờ chúng ta đã có một strong classifier là sự kết hợp C1, C2 và C3 Khi
tiến hành nhận dạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3
bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính
là kết quả phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3
sẽ quyết định X thuộc về lớp nào
Trang 37Hình 2.7: Mô tả giải thuật boosting
2.3 Giải thuật Adaboost cho việc tách đối tượng mắt
Như đã biết, AdaBoost ( Adaptive Boost ) là một bộ phân loại mạnh phi tuyến
phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm
1995 Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifier dựa trên các đặc trưng Haar- Like để hình thành một strong classifier
Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng số (weight)
để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weak classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa xây dựng Bằng cách này, các weak classifier sau có thể tập trung vào các mẫu mà các weak classifier trước đó chưa thực hiện tốt Sau cùng các weak classifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên một strong classifier
Trang 382 Đặc trưng loại 2: gồm 2 hình chữ nhật (1 trắng, 1 đen) được xếp theo chiều dọc có cùng kích cỡ Kích cỡ ban đầu của đặc trưng là 2x1(pixel)
3 Đặc trưng loại 3: gồm 3 hình chữ nhật (1 trắng 2 đen) được xếp theo chiều ngang và có cùng kích cỡ Kích cỡ ban đầu của đặc trưng là 1x3(pixel)
4 Đặc trưng loại 4: gồm 3 hình chữ nhật (1 trắng 2 đen) được xếp theo chiều dọc và có cùng kích cỡ Kích cỡ ban đầu của đặc trưng là 3x1(pixel)
5 Đặc trưng loại 5: gồm 4 hình chữ nhật (2 trắng, 2 đen) có cùng kích cỡ Kích
cỡ ban đầu của đặc trưng là 2x2(pixel)
Hình 2 6: Các đặc trưng Haar-Like dùng trong luận văn
Trang 39Nguyên nhân lựa chọn:
Nhận thấy các đặc trưng như trên thể hiện tốt sự tương quan mức
xám giữa các vùng trên mắt người
Hình 2.8: Đặc trưng 3 và sự tương quan mức xám
Việc lựa chọn đặc trưng như trên có thể được tính toán một cách dễ dàng, không quá phức tập như các đặc trưng nghiêng, nhờ vào ảnh tích phân
Số lượng các đặc trưng ảnh hưởng đến đầu vào bộ học Với các đặc trưng được chọn trên và kích thước cửa sổ học là 20x20 và 5 loại đặc trưng được chọn ở trên thì số bộ phân loại yếu là 78.460 đặc trưng
Việc lựa chọn đặc trưng như thế nào ảnh hưởng rất lớn đến chất lượng hệ thống trong quá trình xây dựng bộ phân loại, nói cách khác ảnh hưởng trực tiếp đến chất lượng của hệ thống phát hiện khuôn mặt
2.3.2 Trích chọn đặc trưng
Để thuận tiện cho việc trích chọn đặc trưng ta xây dụng một cấu trúc chung
của đặc trưng là class “NhaarFeature” Mỗi đặc trưng gồm:
Loại đặc trưng: NHaarLike
Tọa độ X, Y: int
Chiều rộng(W) và chiều cao(H): int
Giá trị (Value): int
Trong đó tọa độ X, Y được xác định theo của sổ con Giá trị của đặc trưng sẽ được tính nhanh bằng cách sử dụng ma trận tích phân như đã được trình bày ở phân