2. Phân tích
2.1. Thiết kế hệ thống
Với các chức năng ở trên, chương trình được chia thành thành 3 phần chính: Phần xử lý đầu vào, phần phát hiện khuôn mặt và phần xử lý đầu ra.
2.2.Xử lý đầu vào:
Chương trình nhận đầu vào là file ảnh, video hoặc webcam, tuy nhiên, việc phát hiện khuôn mặt được thực hiện trên các bức ảnh, do đó, với đầu vào là webcam hay file video, ta phải chuyển thành các ảnh tĩnh và xử lý trên từng ảnh tĩnh. Sau khi đã có ảnh
Đầu vào
(ảnh, video hoặc webcam)
Phát hiện nhanh khuôn mặt bằng
Adaboost
Lưu khuôn mặt vào CSDL Có khuôn mặt 0 HỆ THỐNG PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH NGƯỜI DÙNG Capture ảnh
đầu vào rồi thì sẽ chuyển ảnh cho giai đoạn xử lý tiếp theo, đó là phát hiện các khuôn mặt có trong ảnh.
2.3.Phát hiện khuôn mặt
Phần này xử lý chính nghiệp vụ của hệ thống. Sau khi có ảnh truyền vào, hệ thống sẽ thực hiện chức năng phát hiện khuôn mặt có trong ảnh.
Việc phát hiện khuôn mặt được thực hiện nhanh bằng thuật toán adaboost thông qua hàm cvHaarDetectObjects() của OpenCV. Hàm này thực hiện việc phát hiện đối tượng
dựa trên các đặc trưng haar-like, cụ thể là nhờ vào một bộ Cascade được truyền vào cho hàm. Bộ Cascade được xây dựng theo dạng cây (tree-node) và đã được huấn luyện từ trước.
Việc huấn luyện bộ Cascade có thể thực hiện từ những dữ liệu thu thập được để phục vụ cho quá trình nhận dạng. Ví dụ, muốn nhận dạng một người A, ta thu thập các ảnh khuôn mặt của người A với nhiều tư thế, góc chụp và điều kiện chụp khác nhau, sau đấy cho bộ nhận dạng học theo thuật toán Cascade training. Tuy nhiên việc nhận dạng khuôn mặt là một công việc khó và tốn nhiều thời gian, do đó, tác giả không thực hiện nó trong khóa luận của mình.