Đặt vấn đề Phát hiện khuôn mặt và theo dõi khuôn mặt có những ứng dụng rất quan trọng nhất là trong các lĩnh vực liên quan đến bảo mật, quân sự và giải trí đa phương tiện. Đây là một lĩnh vực trong thị giác máy tính được quan tâm lớn vì nó vẫn tồn tại những thách thức. Ngày nay, điện thoại thông minh đóng một vai trò quan trọng, nó đang trở nên phổ biến hơn là máy tính đến với mọi tầng lớp trong xã hội. Trong một tương lai gần, điện thoại thông minh hứa hẹn sẽ thay thế cho máy tính cá nhân.
Tuy nhiên, tương tác của nó với người dùng vẫn có những hạn chế cho nên nó không phải đễ dàng trong việc sử dụng đối với mọi người. Sự phát triển việc phát hiện và theo dõi khuôn mặt trên nền tảng điện thoại thông minh là một hướng tiếp cận khác trong việc tương tác với người dung sẽ thân thiện hơn. Kết quả theo dõi có thể được sử dụng để điều khiển các thiết bị hoặc phân tích hành vi người dùng. Ưu điểm của phương pháp này là có thể tận dụng kết cầu phần cứng hiện có của tất cả các điện thoại thông minh và phần mềm.
Vấn đề đặt ra của bài toán phát hiện và theo dõi khuôn mặt được sự quan tâm rất nhiều và cũng có nhiều nghiên cứu tốt trên nền tảng máy tính cá nhân. Tuy nhiên, với nền tảng phần cứng hạn chế của điện thoại thì để tính toán các thuật toán phát hiện va theo doï khuôn mặt với thời gian thực là một thách thức lớn cho những nhà nghiên cứu và phát triển ứng dụng. Vì những vấn đề đặt ra như vậy cho nên đến bây giờ vẫn chưa có một hệ thống nào tỏ ra thực sự hiệu quả để giải quyết các yêu cầu bài toán đặt ra. Bài toán phát hiện mặt người được Viola và Jones [7] thực hiện dựa trên các đặc trưng Haar-like[1] và thuật toán máy học Adaboost [2] — là một thuật toán cải tiến của boosting [6] khá tốt về mặt chỉ phí giải thuật và độ chính xác trên máy tính Bài toán theo dõi đối tượng có nhiều hướng tiếp cận với các giải thuật MeanShift [4] và sau này được cải tiến thành CAMShift [3] với thời gian đáp ứng nhanh nhưng vẫn tồn tại một nhược điểm là sai lệch lớn khi những màu sắc của nền có màu gần giống với đối tượng được theo dõi.2 Mục tiêu đề tài Mục tiêu chính của đề tài là xây dựng một chương trình trên điện thoại có thê phát hiện và theo dõi các đối tượng là khuôn mặt qua camera đáp ứng theo thời gian thực.
Chương trình sẽ được xây dựng với hai phần chính là phát hiện khuôn mặt người và theo dõi khuôn mặt sau khi phát hiện. Với phần phát hiện khuôn mặt chọn những phương pháp phát hiện tốt nhất hiện nay để tích hợp trên platform là IOS. Bài toán theo dõi khuôn mặt sau khi phát hiện được thực hiện sao cho khắc phục được các vấn đề khi khuôn mặt bị che khuất. Nền tảng sử dụng là hệ điều hành ios trên iPhone 5s với camera trước 1.3M và camera sau 8M và chip Apple A7, Dual-core 1.3 Tóm lược nội dung luận văn Đề tài luận văn xây dựng một hệ thống phát hiện và theo dõi khuôn mặt trên điện thoại thông minh.
Các vấn đề nghiên cứu trong luận văn này được thê hiện qua 6 chương trong báo cáo này, tóm lược nội dung các chương như sau: Chương 2: Đề cập đến các lý thuyết trước đây liên quan đến vấn đề phát hiện khuôn mặt và theo dõi khuôn mặt. Về phần phát hiện khuôn mặt dùng những thuật toán Adaboost dùng đặc trưng Haar-like để phát hiện khuôn mặt. Về phần theo dõi khuôn mặt đề cập đến thuật toán Camshift, mô hình chuyên động và bộ lọc Particle. Ngoài ra sẽ có đề cập đến bộ lọc màu da và đặc trưng LBP.
Chương 3: Sẽ tập trung giải thuật của luận văn đề xuất và cũng là phần trọng tâm của luận văn. Phần này sẽ tập trung giải quyết vấn dé theo đõi khuôn mặt đạt được kết quả tốt hơn dựa vào 2 ý tưởng chính là cải tiễn lại thuật toán Camshift và kết hợp nó cùng với bộ lọc Particle để dự đoán được dựa trên mô hình chuyên động. Thuật toán phát hiện khuôn mặt sẽ sử dụng lại từ chương 2. Chương 4 trình bày phương pháp kết hợp ngôn ngữ C++ với thư viện openCV 3.0 được nhúng vào ngôn ngữ OJctive C và ứng dụng các thuật toán được trình bày trong chương 3 nhằm hiện thực hóa vấn đề phát hiện và theo dõi khuôn mặt trong trên smart phone và các kết quả sơ bộ thu được từ ứng dụng.
Chương 5 trình bày các kết quả mô phỏng khi sử dụng matlab và so sánh với các công trinh nghiên cứu liên quan khác để đánh giá về thuật toán đề xuất. Chương 6 kết luận về việc xây dựng chương trình phát hiện và theo dõi khuôn mặt trên thiết bị smart phone đồng thời nêu ra hướng phát triển đề tài. Chương 2: Cơ sở lý thuyết liên quan 2.1 Giới thiệu mô hình Cascade của Viola và Jones 2.1 Phương pháp rút trích đặc trưng Haar-like Đặc trưng Haar Like được tạo thành bằng việc kết hợp các hình chữ nhật đen, trắng với nhau theo một trật tự, một kích thước nào đó. Hình dưới đây mô tả 4 đặc trưng Haar Like cơ bản như sau: Cc D Hinh 2.1: Cac đặc trưng Haar-like duoc Paul Viola str dung Để phát hiện khuôn mặt các đặc trưng Haar Like cơ bản trên được mở rộng (Lienhart, Kuranov, & Pisarevky, 2002; Lienhart & Maydt, 2002) thành nhóm các đặc trưng cạnh, đặc trưng đường và đặc trưng tầm.
Edge features ined @ (b) © @ 2. Line features 0 oo SPQ ao. Center-surround features 7 (a) ‘ Hình 2.2: Các đặc trưng Haar-like mở rộng của Lienhart và Maydt Giá trị của đặc trưng Haar Like là sự chênh lệch giữa tông xám các điểm ảnh của các vùng đen và các vùng trắng. Đề có thể tính nhanh các đặc trưng này, Viola va Jones (2001; 2004) giới thiệu khái niệm ảnh tích phân (Integral Image).
Integral Image là một mảng hai chiều với kích thước bằng kích thước của ảnh cần tính giá trị đặ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-I) 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.3: Cach tinh Integral Image cua anh Giá trị của ảnh tích phân tại điểm P có tọa độ (x, y) được tính như sau: i(y)= LD i@&y) (2.4: Ví dụ dé tinh tong mire xám trong hình chữ nhật Đề tính tổng xám các điểm ảnh trong hình chữ nhật 1234 chỉ cần tính theo công thức : D=i4)+ ñ(1)- 1(2)- 1(3) (2.2) Bộ phân loại yếu được xây dựng như sau : 1 if PLÍ (x)< P,P, otherwise by ()= (2.3) Trong đó x là cửa số con cần xét, f„ là giá trị đặc trung Haar-like , 8. la mức ngưỡng, DỊ, là giá trị quyết định chiều 2.2 Thuật toán Adaboost Thuật toán Adaboost (Adative Boosting) được phát triển dựa trên Boosting là một thuật toán machine learning được đề xuất bởi Yoav Freund and Robert Schapire vào năm 1995. Adaboost với ý tưởng cơ bản sử dụng các bộ phân loại yếu để tạo nên một bộ phân loại mạnh.
A daboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các bộ phân loại yếu (weak classifiers) để hình thành một bộ phan loai manh (strong classifier). La một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng SỐ (weight) để đánh đấu các mẫu khó nhận dạng. Trong quá trình huấn luyện, cứ mỗi weak classifiers đượ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 đựng weak classifier kế tiếp: 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 weak classifer sau có thể tập trung vào các mẫu mà các weak classifiers trước nó làm chưa tốt.
Sau cùng, cac weak classifers sé được kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier.5 minh hoa cho một cách trực quan cho thuật toán adaboost. 10 Weak Weak Weak Strong Classifer1 Classifer2 Classifer3 Classifer @ !l@ \ ® \ !l@ ®“°@ ej| ®e!e|| ®!te se ®!t@ !e 4 \ \ 4 ®'.~~=_ GO ' ® \ ® )_-r- Le” ® ei? lọ ® mm.5: Phân lớp mạnh H dùng Adaboost từ các phân lớp yếu hị,hạ,hạ. Bài toán phân loại được xây dựng dựa trên thuật toán Adaboost: e Cho các mẫu (x.ŒXnsyn) Với y¡ =0,1 lần lượt là non-face và face. e Các trọng số được khởi động WIjE ` = với m là số mẫu non-face > m va 1 la sé mau face.
e Gia str co T bộ phân loại yéu thì vòng lặp sẽ thực hiện t=l,. Chuẩn hóa các trọng số tí W.:t«m—— LÊ SH, ÈEIY j sao cho w ti là một phân phối xác suất. Hệ số đánh giá lỗi được tính cho mỗi phân lớp hj e = LW; hiy)-y; 3. Chon phan lớp h, sao cho lỗi bé nhất và cập nhật £t.
Cap nhat trong SỐ : Le, Wei Mẹ iB 1I Với e= 0 néu x; được phân loại dung , ngoai ra e= 1 va e B6 phan loại mạnh được tính toán : T lot Dp > 5 Dea 0 otherwise h(x) = .3 Mô hình Cascade của Viola và Jones sử dụng phát hiện khuôn mặt Thuật toán để xây dựng một chuỗi các phân loại đạt hiệu suất cao trong khi thời gian tính toán thấp là hình thức tổng thê của quá trình nhận dạng tạo thành một cây quyết định được gọi là "cascade". Quá trình này gồm hai tập dữ liệu: dữ liệu dương (positive) và ảnh nền (background). Background là tập những bức ảnh không chứa đối tượng cần nhận dạng, ngược lại mẫu positive là tập những bức ảnh chứa đối tượng cần nhận dạng. Cascade of boosting classifiers là mô hình cascade of classifiers với mỗi classifier được xây dựng bằng Adaboost sử dung haar-like dé đánh giá kết quả dương ở mỗi lớp phân loại và cho ra kết quả nhận dạng mong muôn.
Ê AlI Sub-windows ) NT x TN T Z" T (Further N ) / J \ Processing) F FoF Hinh 2.6: Mo hinh Cascade cua Viola va Jones 12 Một kết quả đương từ lớp phân loại đầu tiên gây tiếp tục được đánh giá qua một lớp phân loại thứ hai để đạt được tỷ lệ phát hiện cao hơn.