Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
0,92 MB
Nội dung
ĐẠ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 i ĐẠ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 KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Nguyễn Hải Châu HÀ NỘI - 2009 ii Lời cảm ơn Sau thời gian dài học tập nghiên cứu, cuối em hoàn thành khóa luận tốt nghiệp này, dịp tốt để em gửi lời cảm ơn đến 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 suốt thời gian thực đề tài Thầy cho em lời khuyên quý báu giúp em hồ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 thầy khoa tận tình giảng dậy, truyền đạt cho em kiến thức quý báu năm học vừa qua, giúp cho em có tảng kiến thức vững để thực khóa luận nghiên cứu học tập sau Tôi xin cảm ơn tất bạn bè, anh, chị, người giúp đỡ, khích lệ phê bình, góp ý, giúp tơi hồn thành khóa luận cách tốt Cuối cùng, cảm ơn bố, mẹ, người ln ln quan tâm, chăm sóc cho vật chất lẫn tinh thần, tạo điều kiện tốt cho chuyên tâm học tập, nghiên cứu Gia đình ln nguồn động viên, chỗ dựa tinh thần vững cho Hà nội, ngày 24 tháng năm 2009 Sinh viên Lê Mạnh Tuấn iii TÓM TẮT Ngày hệ thống nhận dạng mặt người ứng dụng nhiều lĩnh vực, đặc biệt an ninh bảo mật Nhận dạng mặt người tức đưa thông tin đối tượng đưa vào từ ảnh, hay từ camera quan sát Bước hệ thống nhận dạng mặt người phát khn mặt, tức xác định vị trí khn mặt ảnh, sau tách khuôn mặt khỏi ảnh để tiến hành nhận dạng Trong khóa luận em xin nêu phương pháp để phát khuôn mặt ảnh, sau mở rộng với phát mặt người video webcam Sau xem xét hướng tiếp cận khác nhau, em chọn phương pháp tiếp cận học máy Adaboost mơ hình Cascade of classifiers Điểm mạnh Adaboost tốc độ phát khuôn mặt nhanh Kết thử nghiệm cho thấy chương trình đạt độ xác cao với ảnh mặt người chụp trực diện máy kĩ thuật số iv 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 Chương TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP XÁC ĐỊNH MẶT NGƯỜI 3 Giới thiệu toán xác định mặt người ảnh Định nghĩa toán xác định mặt người Những khó khăn thách thức tốn xác định mặt người Các ứng dụng xác định mặt người 4.1 Xác minh tội phạm 4.2 Camera chống trộm 4.3 Bảo mật 4.4 Lưu trữ khuôn mặt 4.5 Các ứng dụng khác 5 Xác định phạm vi đề tài Chương CÁC CÔNG TRÌNH NGHIÊN CỨU Các phương pháp để xác định mặt người 1.1 Hướng tiếp cận dựa tri thức 1.2 Hướng tiếp cận dựa đặc trưng không thay đổi 10 1.3 Hướng tiếp cận dựa so sánh khớp mẫu 13 1.4 Hướng tiếp cận dựa diện mạo 16 Chương CƠ SỞ LÝ THUYẾT .23 Tổng quan 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 v 1.5 Cascade of boosting classifiers 33 Chương XÂY DỰNG ỨNG DỤNG 34 Sơ lược OpenCV 34 Tổng quan hệ thống phát mặt người ảnh 35 Phân tích – thiết kế hệ thống phát 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ế sở liệu 38 3.4 Thiết kế giao diện 39 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41 vi DANH SÁCH THUẬT NGỮ Thuật ngữ Giải thích Classifier (bộ phân loại) Một phân loại xây dựng theo thuật toán học máy đấy, dùng để phân loại đối tượng (khuôn mặt hay khuôn mặt) False alarm Là tỉ lệ nhận dạng sai 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 Hit rate Các đặc trưng đối tượng ảnh Các đặc trưng thường định nghĩa tính tốn với tổng điểm ảnh vùng ảnh Là tỉ lệ nhận dạng phân loại Max false alarm Đạt tỉ lệ sai phân loại xây dựng thành công, tỉ lệ sai giá trị bé, chấp nhận toán phân loại Strong classifier (bộ phân loại mạnh) Bộ phân loại xây dựng từ nhiều phân loại yếu, có độ xác cao Threshold (ngưỡng) Ngưỡng giá trị ranh giới lớp, giá trị ngưỡng điều chỉnh thường chọn từ thực nghiệm (Người ta thử nhận dạng với giá trị ngưỡng khác để chọn ngưỡng cho tỉ lệ nhận dạng tốt nhất) Weak classifier (bộ phân loại yếu) Bộ phân loại đơn giản có độ xác khoảng 50% vii DANH MỤC HÌNH VẼ Hình 1: Một phương pháp xác định khn 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: 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 khn mặt HMM 21 Hình 7: Boosting .24 Hình : đặt trưng Haar-like .28 Hình 9: Các đặc trưng mở rộng đặc trưng Haar-like sở 29 Hình 10: Cách tính Integral Image ảnh 30 Hình 11:Ví dụ cách tính nhanh tổng điểm ảnh vùng D ảnh 30 Hình 12: Ví dụ cách tính nhanh tổng điểm ảnh vùng D ảnh với đặ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 OpenCV 34 Hình 16: Tổng quan hệ thống phát mặt người ảnh .35 Hình 17: Biểu đồ ngữ cảnh hệ thống 36 Hình 18: Biểu đồ phân rã chức .38 Hình 19: Sơ đồ thực thể quan hệ ( ERM ) 39 Hình 20: Giao diện chương trình 40 viii DANH SÁCH TỪ VIẾT TẮT STT Kí hiệu Từ tiếng anh CSDL Database Cơ sở liệu HMM Hidden Markov Model Mô hình Markov ẩn ML Maximum-Likelihood Phương thức cực đại khả PCA Principal Component Analysis Phân tích thành phần PDF Probility Density Hàm mật độ xác xuất RSAT Rotated Summed Area Table Mảng hai chiều dùng để tính nhanh đặc trưng xoay 45o SAT Summed Area Table Mảng hai chiều dùng để tính nhanh đặc trưng haar-like ix Ý nghĩa MỞ ĐẦU Công nghệ thông tin ứng dụng lĩnh vực sống Với hệ thống máy tính, làm nhiều việc, tiết kiện thời gian công sức Điển cơng việc nhận dạng mặt người Ngày xưa, muốn tìm kiếm kẻ tình nghi siêu thị hay sân bay, nhân viên an ninh phải tìm kiếm hình camera theo dõi Ngày nay, công việc làm tự động nhờ hệ thống nhận dạng mặt người Phát mặt người ảnh phần quan trọng hệ thống nhận dạng mặt người đó, giải tốt việc phát hiên mặt người giúp tiết kiệm thời gian nâng cao độ xác việc nhận dạng khuôn mặt Phát mặt người toán nhận dạng đơn giản, hệ thống cần phân loại đối tượng đưa vào có phải mặt người hay mặt người Ở mức độ cao hơn, sau phát khuôn mặt, khuôn mặt so sánh với khn mặt có liệu để nhận dạng xem khuôn mặt (thường áp dụng nhận dạng khuôn mặt người tiếng tội phạm bị truy nã) Bài toán phát mặt người bắt đầu nghiên cứu từ năm 1990s, có nhiều cơng trình nghiên cứu phát khuôn mặt ảnh, nhiên nay, nhà khoa học khơng ngừng tìm hướng tiếp cận mới, thuật toán nhằm nâng cao hiệu suất việc phát khuôn mặt việc nhận dạng mặt người Với mục tiêu tìm hiểu giải thuật adaboost, đặc trưng haar-like, mơ hình Cascade of Classifiers, đồng thời áp dụng vào toán phát mặt người ảnh, khóa ln trình bầy bốn chương với bố cục sau: Chương 1: Tổng quan phương pháp xác định mặt người : Giới thiệu tổng quan toán xác định mặt người ảnh, ứng dụng khó khăn tốn, đồng thời xác định phạm vi đề tài Chương 2: Các cơng trình nghiên cứu : Nêu chi tiết toán phát mặt người, hướng tiếp cận giải toán, nghiên cứu thành đạt nhà nghiên cứu toán xác định mặt người 1 Hình 10: Cách tính Integral Image ảnh Sau tính Integral Image, việc tính tổng điểm ảnh vùng ảnh thực đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh vùng D hình 11): D = A + B + C + D – (A+B) – (A+C) + A Với A + B + C + D giá trị điểm P4 Integral Image, tương tự A+B giá trị điểm P2, A+C giá trị điểm P3, A giá trị điểm P1 Vậy ta viết lại biểu thức tính D sau: A P1 C B P2 D P4 P3 Hình 11:Ví dụ cách tính nhanh tổng điểm ảnh vùng D ảnh B A D C RSAT(x,y) (b) (a) Hình 12: Ví dụ cách tính nhanh tổng điểm ảnh vùng D ảnh với đặc trưng xoay 45o Với đặc trưng Haar-like xoay 45o Integral Image điểm (x, y) tính theo cơng thức: 30 Tổng pixel vùng ảnh tính theo cách sau: D = A + B + C + D – (A+B) – (A+C) + A Như tổng điểm ảnh hình chữ nhật (kể trường hợp xoay 45º) tính nhanh dựa integral image đỉnh : Sum (D ) = - – + 1.4 Cascade of Classifiers Ta thấy trình huấn luyện, phân loại phải duyệt qua tất đặc trưng mẫu tập training Việc tốn nhiều thời gian Tuy nhiên, mẫu đưa vào, mẫu thuộc loại khó nhận dạng, có mẫu background dễ nhận (ta gọi mẫu background đơn giản) Đối với mẫu này, ta cần xét hay vài đặc trưng đơn giản nhận diện khơng cần xét tất đặc trưng Nhưng phân loại thơng thường cho dù mẫu cần nhận dạng dễ hay khó xét tất đặc trưng mà rút q trình học Do đó, chúng tốn thời gian xử lý cách không cần thiết Cascade of Classifiers xây dựng nhằm rút ngắn thời gian xử lý, giảm thiểu false alarm cho phân loại Cascade tree gồm nhiều stage (hay gọi layer), stage stage classifier Một mẫu để phân loại đối tượng cần phải qua hết tất stages Các stage classifiers stage sau huấn luyện mẫu negative mà stage classifier trước nhận dạng sai, tức tập trung học từ mẫu background khó hơn, kết hợp stage classifiers lại giúp phân loại có false alarm thấp Với cấu trúc này, mẫu background dễ nhận diện bị loại từ stages đầu tiên, giúp đáp ứng tốt độ phức tạp gia tăng mẫu đưa vào, đồng thời giúp rút ngắn thời gian xử lý Thuật toán Cascade training: 31 Gọi: F giá trị false alarm d độ xác weak classifier stage Ftarget: Giá trị max false alarm P, N số lượng mẫu positive negative Pi, Ni tập positive negative cho phân lớp tầng thứ i Fi, Di: Giá trị false alarm độ xác cascade trước đến tầng thứ i Khởi tạo i=0; F0=1.0; D0 = 1.0 Lặp: while Fi>Ftarget • i = i+1; • Huấn luyện phân loại hi từ tập Pi Ni với detection rate d max false alarm f Thêm hi vào phân lớp • Dùng phân lớp có để tính Fi: Duyệt qua N mẫu negative tìm đủ n mẫu mà phân lớp có phân loại sai ( • N := • Nếu Fi >Ftarget N = { số mẫu sai stage phân loại sai } P = { số mẫu positive mà stage phân loại dúng } Minh họa thuật toán Cascade training: stage …… N N-1 hitrate = hN h 1-f h 1-f 1-f h falsealarms = fN 1-f Input pattern classified as a non-object Hình 13: cascade of classifiers Hình 13 minh họa huấn luyện cascade gồm N stages Ở stage, weak classifier tương ứng huấn luyện cho độ xác h false alarm f 32 1.5 Cascade of boosting classifiers Cascade of boosting classifiers mơ hình cascade of classifiers với classifier xây dựng Adaboost sử dụng haar-like I Y N Y N N Y N C L A S S NON-CLASS Hình 14: Cascade of boosting classifiers Viola Jones sử dụng thành cơng cascade of boosting classifiers cho tốn nhận dạng mặt người Với tập huấn luyện gồm 4196 hình mặt người đưa ảnh grayscale kích thước 24x24 9500 hình background, hai ơngđã xây dựng cấu trúc cascade tree gồm 38 stage với tổng cộng 6060 đặc trưng haar-like Thực nghiệm cho thấy classifier stage sử dụng đặc trưng loại khoảng 50% mẫu background (không phải mặt người) có độ xác d = 100% Classifier stage thứ sử dụng 10 đặc trưng loại 80% mẫu background với độ xác 100% Hệ thống so sánh với hệ thống Rowley-Baluja-Kanade (sử dụng mạng neural), Schneiderman-Kanade (sử dụng phương pháp thống kê), cho thấy tỉ lệ nhận dạng ngang nhau, hệ thống Viola Jones chạy nhanh đến 15 lần so với hệ thống Rowley-Baluja-Kanade nhanh 600 lần hệ thống Schneiderman-Kanade Lý mà cấu trúc cascade đạt tốc độ nhận dạng nhanh nhờ sớm loại bỏ mẫu background đơn giản (thường có số lượng lớn nhiều so với mẫu chứa object – mẫu chưa khuôn mặt cần tiến hành nhận dạng) Bên cạnh đó, hệ thống Viola Jones đạt độ xác cao nhờ vào thuật toán cascade training, nhận dạng huấn luyện AdaBoost với đặc trưng Haar-like mô tả tốt thông tin đối tượng, với cách Integral Image tính nhanh đặc trưng, không làm giảm tốc độ nhận dạng hệ thống Như vậy, mơ hình Cascade of Boosted Classifiers thật cách tiếp cận tốt tốc độ lẫn khả nhận dạng, phù hợp với nhận dạng mặt người 33 Chương XÂY DỰNG ỨNG DỤNG Phát mặt người ảnh có nhiều ứng dụng sống, nhiên, khóa luận này, tơi xây dựng chương trình nhỏ để minh họa cho lý thuyết Cụ thể chương trình phát mặt người ảnh viết visual c ++ Microsoft, sử dụng thư viện mã nguồn mở OpenCV Intel Sơ lược OpenCV Open VC thư viện mã nguồn mở intel thị giác máy tính Nó cung cấp mã nguồn bao gồm hàng trăm hàm, lớp dựa thuật toán xử lý ảnh Computer vision dùng ngôn ngữ C/C++ Open CV thể đa dạng trí tuệ nhân tạo Được ứng dụng nhiều tốn nhận dạng mặt, dị tìm mặt, phát mặt, lọc Kalman, … Cấu trúc tổng quan OpenCV bao gồm phần phần hình vẽ CV MLL HighGUI Các hàm xử lý ảnh giải thuật thị giác máy tính Các thuật tốn học máy, bao gồm phân cụm, phân loại thống kê Các hàm thủ tục làm việc với file ảnh file video CXCORE Các cấu trúc liệu bản, cấu trúc XML, hàm đồ họa … Hình 15: Cấu trúc OpenCV Phần CV bao gồm thư viện xử lý ảnh giải thuật thị giác máy tính ML thư viện thuật toán học máy, bao gồm nhiều phân cụm phân loại thống kê HighGUI chứa đựng thủ tục vào ra, chức lưu trữ đọc file ảnh video Phần thứ 4, Cxcore chứa đựng cấu trúc liệu 34 ( ví dụ cấu trúc XML, liệu …) Phần cuối CvAux, phần bao gồm thư viện cho việc phát hiện, theo dõi nhận dạng đối tượng (khuôn mặt, mắt …) Tổng quan hệ thống phát mặt người ảnh Ước lượng đặc trưng Tính đặc trưng nhanh từ nhiều tỉ lệ Các hàm Haar Ảnh Integral Image gốc Cấu trúc phân tầng (Cascade of classifier) I C C 2 N Y N Cn N NON-CLASS Y C L A S S Số lượng lớn đặc trưng Một tập nhỏ đặc trưng Chọn đặc trưng Điều chỉnh thông số Adaboost Quyết định kết Hình 16: Tổng quan hệ thống phát mặt người ảnh Về bản, từ ảnh gốc ban đầu, hệ thống chia ảnh thành vô số vùng nhỏ để tính đặc trưng, sau đưa đặc trưng Tiếp theo, chương trình xác định vùng khả quan (các ứng viên) khuôn mặt, cuối ứng viên đưa vào phân loại để tiến hành xác định ứng viên mặt người Phân tích – thiết kế hệ thống phát mặt người 3.1 Phân tích Nhiệm vụ chương trình dị tìm khn mặt từ ảnh, file video từ webcam, sau lưu khuôn mặt vào csdl để phục vụ cho mục đích khác (sẽ phát triển sau) 35 Capture ảnh HỆ THỐNG PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH NGƯỜI DÙNG Khuôn mặt phát Hình 17: Biểu đồ ngữ cảnh hệ thống Như chức chương trình bao gồm: • Kết nối đến webcam, đọc file ảnh video • Phát nhiều khn mặt có ảnh, video, webcam • Lưu ảnh khuôn mặt phát vào csdl 3.2 Thiết kế hệ thống Với chức trên, chương trình chia thành thành phần chính: Phần xử lý đầu vào, phần phát khuôn mặt phần xử lý đầu Đầu vào (ảnh, video webcam) Phát nhanh khn mặt Adaboost Có khn mặt Lưu khuôn mặt vào CSDL a Xử lý đầu vào: 36 Chương trình nhận đầu vào file ảnh, video webcam, nhiên, việc phát khuôn mặt thực ảnh, đó, với đầu vào webcam hay file video, ta phải chuyển thành ảnh tĩnh xử lý ảnh tĩnh Sau có ảnh đầu vào chuyển ảnh cho giai đoạn xử lý tiếp theo, phát khn mặt có ảnh b Phát khn mặt Phần xử lý nghiệp vụ hệ thống Sau có ảnh truyền vào, hệ thống thực chức phát khn mặt có ảnh Việc phát khn mặt thực nhanh thuật tốn adaboost thơng qua hàm cvHaarDetectObjects() OpenCV Hàm thực việc phát đối tượng dựa đặc trưng haar-like, cụ thể nhờ vào Cascade truyền vào cho hàm Bộ Cascade xây dựng theo dạng (tree-node) huấn luyện từ trước Việc huấn luyện Cascade thực từ liệu thu thập để phục vụ cho trình nhận dạng Ví dụ, muốn nhận dạng người A, ta thu thập ảnh khuôn mặt người A với nhiều tư thế, góc chụp điều kiện chụp khác nhau, sau cho nhận dạng học theo thuật tốn Cascade training Tuy nhiên việc nhận dạng khn mặt cơng việc khó tốn nhiều thời gian, đó, tơi khơng thực khóa luận c Xử lý đầu Khn mặt sau phát tách khỏi ảnh lưu dạng ảnh bitmap với phần mở rộng *.jpg Đối với đầu vào file ảnh, liệu đầu file ảnh có lưu vị trí khn mặt phát ảnh, đồng thời tách riêng khuôn mặt lưu vào sở liệu Đối với đầu vào file video webcam Các khuôn mặt tách lưu lại thành file ảnh riêng rẽ, đánh số thứ tự theo tên file video Ví dụ file video test.avi ảnh khn mặt phát đánh số theo thứ tự sau: test.avi_1.jpg, test.avi_2.jpg … 37 HỆ THỐNG PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH 2.Phát nhanh khuôn mặt Adaboost 1.Xử lý đầu vào 1.1 Capture ảnh Xử lý đầu 3.1. Lưu ảnh vào thư mục thích hợp máy 3.2.Lưu ảnh vào CSDL Hình 18: Biểu đồ phân rã chức 3.3 Thiết kế sở liệu Lưu trữ sở liệu phần quan trọng ứng dụng Việc xây dựng, tổ chức sở liệu ảnh hướng lớn đến tốc độ chương trình Do tơi xây dựng quản sở liệu hệ quản trị sở Oracle, hệ quản trị sở liệu mạnh, đáp ứng nhiều yêu cầu quản lý sở liệu doanh nghiệp lớn, đặc biệt ngân hàng hay kho bạc Tuy tại, chương trình dừng lại mức phát khn mặt ảnh, việc xây dựng sở liệu tốt tiền đề để phát triển chương trình thành ứng dụng lớn sau Hệ thống cần lưu trữ liệu: Ảnh khuôn mặt sau phát Đối với đầu vào file ảnh: • Lưu ảnh đầu vào vị trí khn mặt phát ảnh • Lưu khn mặt phát Đối với đầu vào file video, webcam: • Lưu khuôn mặt phát Như thông tin sở liệu bao gồm thực thể sau: • ẢNH GỐC ( IMAGES ): Ảnh đầu vào Các thuộc tính bao gồm: - ID: Mã ảnh, kiểu Integer, khóa có ràng buộc tự tăng 38 - - Name: Tên ảnh, kiểu liệu varchar2(200) Trong trường hợp đầu vào video tên lấy theo tên file video, đầu vào webcam đặt webcam_ID (thêm ID vào tên) Image: Lưu mã nhị phân ảnh URL: lưu đường dẫn đến ảnh, kiểu giữ liệu varchar2(1000) Lưu ý: Trong trường hợp file đầu vào video webcam trường Image, URL nhận giá trị null • KHN MẶT ( FACES ): Các khn mặt phát Các thuộc tính bao gồm: - ID: Mã ảnh, kiểu Integer, khóa có ràng buộc tự tăng - IMAGE_ID: ID ảnh gốc, kiểu liệu Interger, khóa ngoại tham chiếu đến bảng ẢNH GỐC - Name: Tên khuôn mặt, đặt theo tên ảnh gốc, đồng thời thêm số thứ tự để nhận biết khuôn mặt ảnh gốc - Image: Lưu mã nhị phân ảnh khuôn mặt - URL: lưu đường dẫn đến ảnh khuôn mặt, kiểu giữ liệu varchar2(1000) Name ID Image ỦRL IMAGES ID FACES ỦRL Image_ID Name Image Hình 19: Sơ đồ thực thể quan hệ ( ERM ) 3.4 Thiết kế giao diện Giao diện chương trình thiết kế thân thiện đơn giản Tập trung vào chức phát khn mặt ảnh Bố cục giao diện chia thành phần 39 Phần 1, dành cho người dùng chọn đầu vào, ảnh, video webcam Các ảnh video lưu tùy ý thư mục máy tính người dùng Phần thứ hai danh sách khuôn mặt phát lưu sở liệu Phần thứ danh sách Cascade Cuối phần xử lý kết (số khuôn mặt phát được, thời gian thực hiện) Người dùng chọn ảnh, chọn Cascade, sau nhấn vào nút “Detect” để thực việc xác định khuôn mặt ảnh Giao diện chương trình thể hình Hình 20: Giao diện chương trình 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Trên sở nghiên cứu toán phát mặt người ảnh Đặc biệt thuật toán Adaboost, đặc trưng haar-like mơ hình Cascade of Classifier Tơi áp dụng thành cơng mơ hình Cascade of Classfier vào toán phát mặt người ảnh Tuy kết đạt chưa cao, bước đầu để phát triển toán nhận dạng mặt (face recognition) người sau Bên cạnh đó, trình xây dựng chương trình demo, tơi tìm hiểu thư viện mã nguồn mở OpenCV, hệ quản trị sở liệu Oracle, qua biết cách sử dụng hàm thư viện OpenCV quản lý sở liệu hệ quản trị sở liệu Oracle Về chương trình demo, sau thử nghiệm với tập ảnh lớn webcam Chương trình đạt kết tốt, thời gian phát nhanh ảnh mặt người chụp thẳng, chất lượng ảnh tốt (chụp máy kĩ thuật số), nhiên ảnh chụp nghiêng hay ảnh có mầu sắc tối chương trình gần khơng thể phát khuôn mặt ảnh Đối với webcam, hiệu xuất chương trình cịn tùy theo chất lượng loại webcam sử dụng, nhiên tương tự với phát khuôn mặt ảnh, chương trình khơng thể phát mặt người điều kiện độ sáng yếu góc quay nghiêng 20o Hướng phát triển Có nhiều hướng phát triển cho chương trình này, phát triển mặt ứng dụng mặt thuật toán (để cải thiện hiệu phát mặt người) Có thể xây dựng ứng dụng cần đến phát mặt người mà khơng cần nhận dạng Ví dụ hệ thống ghép hình, ghép khn mặt phát vào ảnh khác (chẳng hạn ghép khuôn mặt người sử dụng cho khuôn mặt người tiếng) Ngồi phát triển chương trình theo hướng nhận dạng khn mặt, xây dựng hệ thống để học đặc trưng người cần nhận dạng Khi thực hiện, ta đưa qua ảnh qua chương trình phát mặt người để phát nhanh khn mặt có ảnh, sau so sách khn mặt với khn mặt mà chương 41 trình “học” từ trước, so sánh đặc trưng hai khuôn mặt, trùng đưa thơng tin khn mặt nhận dạng 42 Tài liệu tham khảo [1] A Lanitis, C.J Taylor, and T.F Cootes, “An Automatic Face Identification System Using lexible Appearance Models”, Image and Vision Computing, vol 13, no 5, pp 393-401, 1995 [2] Andrew King, “A Survey of Methods for Face Detection”, 2003 [3] A Yuille, P Hallinan, and D Cohen, “Feature Extraction from Faces Using eformable Templates”, Int’l J Computer Vision, vol 8, no 2, pp 99-111, 1992 [4] D.G Kendall, “Shape Manifolds, Procrustean Metrics, and Complex Projective Shapes”, Bull London Math Soc., vol 16, pp 81-121, 1984 [5] E Osuna, R Freund, and F Girosi, “Training Support Vector Machines: An Application to Face Detection” Proc IEEE Conf Computer Vision and Pattern Recognition, pp 130-136, 1997 [6] Fuzhen Huang and Jianbo Su, “Multiple Face Contour Detection Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp 137-143, Springer-Verlag Berlin eidelberg, 2004 [7] G Yang and T S Huang, “Human Face Detection in Complex Background”, Pattern Recognition, vol 27, no 1, pp 53-63, 1994 [8] H.P Graf, T Chen, E Petajan, and E Cosatto, “Locating Faces and Facial Parts”, Proc First Int’l Workshop Automatic Face and Gesture Recognition, pp 41-46, 1995 [9] J Canny, “A Computational Approach to Edge Detection”, IEEE Trans Pattern Analysis and Machine Intelligence, vol 8, no 6, pp 679-698, June 1986 [10] J Sobottka and I Pitas, “Segmentation and Tracking of Faces in Color Images”, Proc Second Int’l Conf Automatic Face and Gesture Recognition, pp 236-241, 1996 b [11] K Lam and H Yan, “Fast Algorithm for Locating Head Boundaries,” J.Electronic Imaging, vol 3, no 4, pp 351-359, 1994 [12] K.V Mardia and I.L Dryden, “Shape Distributions for Landmark Data”, Advanced Applied Probability, vol 21, pp 742-755, 1989 [13] Ming-Hsuan Yang, David Kriegman, and Narendra Ahuja, "Detecting Faces in Images: A Survey", IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), vol 24, no 1, pp 34-58, 2002 [14] M Kirby and L Sirovich, “Application of the Karhunen-LoeveProcedure for the Characterization of Human Faces”, IEEE Trans Pattern Analysis and Machine Intelligence, vol 12, no 1, pp 103-108, Jan 1990 [15] P Sinha, “Object Recognition via Image Invariants: A Case Study”, Investigative Ophthalmology and Visual Science, vol 35, no 4, pp 1735-1740, 1994 [16] P Sinha, “Processing and Recognizing 3D Forms,” PhD thesis, Massachusetts Inst of Technology, 1995 [17] P Viola and M J Jones, “Robust Real-Time Face Detection”, International Journal of Computer Vision 57(2), 137-154, Kluwer Academic Publishers, Netherlands, 2004 [18] T.F Cootes and C.J Taylor, “Locating Faces Using Statistical Feature Detectors”, Proc Second Int’l Conf Automatic Face and Gesture Recognition, pp 204-209, 1996 [19] T.K Leung, M.C Burl, and P Perona, “Finding Faces in Cluttered Scenes Using Random Labeled Graph Matching”, Proc Fifth IEEE Int’l Conf Computer Vision, pp 637-644, 1995 [20] T Sakai, M Nagao, and S Fujibayashi, “Line Extraction and Pattern etection in a Photograph”, Pattern Recognition, vol 1, pp 233-248, 1969 [21] Robin Hewitt, “Seeing with OpenCV: A Five-Part Series”, 2007 c