3. Phân tích – thiết kế hệ thống phát hiện mặt ngườ i
3.2. 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.
a. Xử lý đầu vào: Đầ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 Khuôn mặt đã được phát hiện
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 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.
b. 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ôi không thực hiện nó trong khóa luận của mình.
c. Xử lý đầu ra.
Khuôn mặt sau khi được phát hiện sẽ được tách ra khỏi bức ảnh và lưu dưới dạng ảnh bitmap với phần mở rộng là *.jpg.
Đối với đầu vào là các file ảnh, dữ liệu đầu ra cũng là file ảnh đấy nhưng có lưu vị trí khuôn mặt đã được phát hiện trên bức ảnh, đồng thời tách các riêng khuôn mặt và lưu vào cơ sở dữ liệu.
Đối với đầu vào là các file video hoặc webcam. Các khuôn mặt sẽ được tách ra và lưu lại thành các file ảnh riêng rẽ, và được đánh số thứ tự theo tên file video. Ví dụ như file video test.avi thì ảnh các khuôn mặt phát hiện được sẽđược đánh số theo thứ tự như
Hình 18: Biểu đồ phân rã chức năng.