CHƯƠNG 4:
ĐÁNH GIÁ PHƯƠNG PHÁP VÀ HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI
Thuật toán được test trên hệ thống:
- Phần cứng: RAM 4GB, CPU core-i5 1,7GHz, Webcam HD 2.0 UVC, GPU GT635M 2GB.
- Phần mềm: win 7 64-bit, Visual Studio 2010, OpenCV 2.4.2 4.1. Đánh Giá Thuật Tốn Phát Hiện Khn Mặt Viola-Jones:
Kết quả của chương trình được đánh giá trên 3 bộ dữ liệu: Bao [15], AT&T [16] (Cambrigde University) và JAFEE [27] (Psychology Department, Kyushu University). Trong đó, Bao là bộ dữ liệu gồm 100 ảnh màu. Mỗi ảnh chứa một khuôn mặt người ở các vị trí khác nhau như nghiêng đầu, xoay mặt về trái, về phải bao gồm cả ảnh chứa nhiễu như bị mờ, nhịe, đội mũ, đeo kính, các biểu cảm khác nhau trên khn mặt, có cả ngoại cảnh và người đứng phía sau. Đối tượng trong bộ dữ liệu chủ yếu là người Châu Á với các độ tuổi khác nhau. AT&T là bộ dữ liệu của ĐH Cambrigde gồm 100 ảnh xám của 10 người khác nhau. Cứ mỗi 10 ảnh là khn mặt của một người ở các góc độ, biểu cảm khác nhau. Đối tượng trong bộ dữ liệu là người châu âu độ tuổi từ thanh niên đến cao niên, có một số đối tượng đeo kính. Các ảnh trong bộ dữ liệu này chỉ chứa khn mặt, khơng có ngoại cảnh và các yếu tố gây nhiễu, chụp ở độ sáng cố định. JAFFE là bộ dữ liệu của Psychology Department, Kyushu University. Gồm 100 ảnh xám khn mặt chính diện của 6 cơ gái người Nhật với các biểu cảm khác nhau, được chụp trong nhiều điều kiện chiếu sáng khác nhau. Ảnh được chụp với nền tĩnh và đơn sắc.
Bảng đánh giá xác định 3 trạng thái của kết quả phát hiện khuôn mặt: Correct face (phát hiện đúng khuôn mặt), Miss face (không phát hiện ra khuôn mặt), False face (phát hiện ra vùng ảnh không chứa khuôn mặt). Việc phát hiện 3 trạng thái được thực hiện một cách tự động qua các bước:
- Xác định khuôn mặt trên các tập dữ liệu bằng tay. Sau đó, lưu kết quả vào một file có dạng như sau: rawdata/001.bmp 1 10 34 71 68 rawdata/002.bmp 1 11 28 72 75 rawdata/003.bmp 1 7 28 72 77 rawdata/004.bmp 1 2 30 74 72 rawdata/005.bmp 1 9 30 76 74
File có cấu trúc:
<tên ảnh> <số lượng khn mặt có trong ảnh> <tọa độ X của hình chữ nhật chứa khn mặt> <tọa độ Y
của hình chữ nhật chứa khn mặt> <chiều rộng hình chữ nhật> <chiều dài hình chữ nhật>
- Chạy chương trình phát hiện khn mặt, ghi kết quả ra một file với dạng trên. Sau đó so khớp kết quả này với kết quả được thực hiện bằng tay trước đó.
- Việc so khớp được thực hiện như sau:
Hình 4.1
Hình chữ nhật viền đậm là hình chữ nhật có chứa khn mặt được vẽ bằng tay. Hình chữ nhật viền mảnh là hình chữ nhật kết quả của chương trình vẽ ra. Ta tính vùng giao A của 2 hình chữ nhật này. Sau đó tính tổng vùng khơng giao của hai hình B + C rồi lấy tỉ lệ A/(B+C). Tỉ lệ này càng lớn chứng tỏ kết quả của chương trình càng chính xác. Các trạng thái của kết quả phát hiện khuôn mặt dựa trên tỉ lệ này như sau:
Nếu tỉ lệ này < 1 thì kết quả của chương trình là 1 false face. Nếu tỉ lệ này >= 1 thì kết quả của chương trình là 1 correct face.
Miss face được xác định bằng độ chệnh lệch giữa số lượng khn mặt phát hiện được bằng chương trình với số lượng khn mặt được xác định bằng tay trước đó.
- Việc đánh giá được thực hiện với cấu hình intel core i3 3.07 GHz, 4GB RAM, 1GB Graphic Card. Sử dụngVisual Studio 2010 C++, OpenCV 2.4.2. Kết quả của việc test trên 2 bộ dữ liệu được ghi lại dưới bảng sau:
Bảng 4.1 Kết quả đánh giá thuật tốn Viola-Jones
Database
AT&T Bao
Ta có thể thấy thuật tốn hoạt động khá ổn định trên 2 bộ dữ liệu khác nhau. Tuy nhiên, trong quá trình test, trạng thái miss face xuất hiện tập trung ở các khn mặt nghiêng và đeo kính. Dễ thấy rằng, vì bộ huấn luyện ta sử dụng huấn luyện chủ yếu với các ảnh khn mặt chính diện và khơng đeo kính nên ảnh hưởng tới độ chính xác khi làm việc với các khn mặt loại này. Để khắc phục tình trạng trên, ta có thể tăng số ảnh huấn luyện bằng việc thêm vào các bộ ảnh khn mặt nghiêng và đeo kính.