Thiết kế hệ thống

Một phần của tài liệu tìm hiểu kĩ thuật và ứng dụng opencv trong bài toán phát hiện, theo dõi khuôn mặt (Trang 35 - 36)

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.

Một phần của tài liệu tìm hiểu kĩ thuật và ứng dụng opencv trong bài toán phát hiện, theo dõi khuôn mặt (Trang 35 - 36)