Cài đặt chương trình thực nghiệm, kết quả và đánh giá
4.3 Giao diện chương trình
Chương trình ứng dụng của chúng tơi có giao diện đơn giản, hình 4.2.
Hình 4.2 – Giao diện chương trình thực nghiệm. Chương trình bao gồm các nút cơ bản :
• Nút “Load” – nhấp vào nút này để tìm ảnh mà chúng ta cần nhận dạng.
• Nút “Gabor Wavelet” – nhấn vào nút này sẽ hiện ra phần thực của 40 bộ lọc Gabor được sử dụng để rút trích đặc trưng. • Nút “Gaborface” – nhấn vào nút này sẽ hiện ra đại diện
Gabor cho ảnh (hay là các vector đặc trưng Gabor có số chiều 40960).
• Nút “Recognize” – nhấn vào nút để kiểm tra ảnh cần nhận dạng có nằm trong tập dữ liệu hay khơng? Nếu có sẽ xuất ra ảnh và tên của người đó bên dưới, ngược lại thơng báo người đó khơng có trong tập dữ liệu.
• Nút “Exit” – nhấn vào nút này sẽ đóng lại chương trình. Nhấn nút “Gabor Wavelet”, hình 4.3.
Nhấn nút “Gaborface”, hình 4.4. Nhấn nút “Recognize”, hình 4.5.
Hình 4.4 – Đại diện Gabor cho ảnh.
4.4 Kết quả
Với số lượng tập mẫu đem huấn luyện là 1720 (gồm 120 mẫu dương tính và 1600 mẫu âm tính) và số đặc trưng đã lựa chọn là T = 200 thì thời gian huấn luyện là 10.741giây với lỗi huấn luyện là 6,686% , tương ứng 93,313% mẫu huấn luyện được phân loại đúng lớp. Trong đó, tất cả các mẫu dương tính đều được phân đúng lớp và có 115 mẫu âm tính bị phân loại sai lớp, bảng 6.
Việc chọn lựa được 200 đặc trưng quan trọng để đại diện lại cho các ảnh chính lại việc ta lựa chọn vị trí nào trên ảnh và lựa chọn bộ lọc Gabor nào trong số 40 bộ lọc Gabor được sử dụng. Qua kết quả huấn luyện chọn ra được 200 đặc trưng Gabor, ta thấy rằng các vị trí được chọn trên ảnh phần lớn tập trung ở vùng mắt, chân mày, mũi, miệng,… các vị trí trên điều là những vị trí đặc biệt quan trọng để phân biệt các khn mặt với nhau, hình 4.6, hình 4.7.
Hình 4.6 – Các vị trí trên ảnh được lựa chọn
Hình 4.7 – Năm bộ lọc Gabor được chọn.
Sử dụng k-means để gom nhóm tập ảnh huấn luyện gồm 120 ảnh với k = 40 , kết quả là có 11 ảnh bị gom sai nhóm. Q trình nhận dạng có 80 ảnh cần kiểm tra thì kết quả cho thấy là có 69 ảnh được nhận dạng chính xác và có 11 ảnh được nhận dạng khơng chính xác. Do đó, tỉ lệ nhận dạng chính xác đến 86,25%.
Nếu khơng sử dụng k-means để gom nhóm tập huấn luyện thì q trình kiểm tra 80 ảnh có kết quả là 72 ảnh được nhận dạng chính xác và có 8 ảnh được
nhận dạng khơng chính xác. Do đó, tỉ lệ nhận dạng chính xác đến 90%. Tuy nhiên, thực thi chương trình lâu hơn. Ta có bảng thống kê kết quả của cả hai trường hợp, bảng 7.
Mẫu IS Mẫu ES Mẫu huấn luyện Số đặc trưng được chọn (T) Thời gian huấn luyện
Mẫu bị phân sai lớp
Lỗi huấn luyện Mẫu IS Mẫu ES
120 1600 1720 200 10.741 giây 0 115 6,686%
Bảng 6: Kết quả huấn luyện
Số ảnh cần nhận dạng Số ảnh nhận dạng đúng Số ảnh nhận dạng sai Tỉ lệ chính xác (%) Thời gian trung bình AdaBoost kết hợp k-means 80 69 11 86,25 0.1 giây AdaBoost 80 72 8 90 1 giây
Bảng 7: Kết quả của AdaBoost và AdaBoost kết hợp k-means
4.5 Đánh giá
4.5.1 Ưu điểm
Trong đề tài này, trên cơ sở tìm hiểu phương pháp học AdaBoost, Gabor wavelet và phương pháp gom nhóm, chúng tơi đã kết hợp các phương pháp trên lại với nhau và áp dụng để giải quyết bài tốn nhận dạng khn mặt người.
Khi tìm hiểu về bài tốn nhận dạng khuôn mặt người, chúng tôi đã tiếp cận với phương pháp nhận dạng như AdaBoost cũng như phương pháp chọn đặc trưng cho AdaBoost là Gabor wavelet.
Đối với con người, việc nhận dạng khuôn mặt là việc khơng khó. Tuy nhiên, với máy tính việc nhận dạng tự động đơi khi không dễ thực hiện được. Việc chọn phương pháp để biểu diễn thông tin ảnh cho máy lưu trữ để nhận dạng đã được nghiên cứu từ lâu. Trong đề tài này, chúng tôi chọn Gabor wavelet để rút trích các đặc trưng trong ảnh bởi vì mỗi thành phần trong họ Gabor wavelet mơ hình một cấu trúc không gian vùng tiếp thu của một tế bào đơn trong vỏ não nguyên thủy ở động vật có vú . Phân tích Gabor có thể xem như một chiếc kính hiển vi nhạy cảm với hướng và tỷ lệ [5, 6]. Do đó, việc chọn Gabor wavelet là hợp lý cho vấn đề này. Đồng thời, việc sử dụng Gabor wavelet để rút trích vectơ đặc trưng Gabor cho ảnh thực hiện khá nhanh.
Từ khi AdaBoost ra đời, nó đã được sử dụng phổ biến trong nhiều lĩnh vực, đặc biệt là lĩnh vực phân loại mẫu và nhận dạng mẫu. Với những thành công lớn trong hai lĩnh vực trên chúng tôi đã lựa chọn AdaBoost là cơng cụ chính để giải quyết bài tốn nhận dạng mặt người. Ngồi việc xây dựng nên bộ phân loại mạnh dùng trong quá trình phân lớp, AdaBoost cịn hữu ích trong việc chọn lựa các đặc trưng quan trọng để xây dựng nên các vectơ đặc trưng có số chiều nhỏ đại diện cho ảnh.
Bên cạnh đó, chúng tơi đã áp dụng phương pháp gom nhóm dùng thuật tốn k-means để giúp cho q trình kiểm tra có thời gian xử lý nhanh hơn thay vì phải duyệt hết tất cả các ảnh trong cơ sở dữ liệu, đồng thời k-means còn giúp hạn chế việc phân loại sai lớp.
Tập dữ liệu được chọn tương đối đa dạng, các khn mặt trong ảnh có sự biến đổi phong phú (chẳng hạn, có đeo kính, có râu, có các cảm xúc khác nhau,…). Chương trình ứng dụng nhận dạng khá tốt với tỉ lệ nhận dạng chính xác là 86.25% và việc chọn lựa các đặc trưng Gabor tại các vị trí rất phù hợp với các đặc trưng trên khuôn mặt người (chẳng hạn vùng mắt , mũi ,…).