3.3.1 Dữ liệu
Để đánh giá khách quan về hiệu quả dũ tỡm khuôn mặt của hướng phát triển sử dụng thuật toán AdaBoost đề tài đã tiến hành thử nghiệm chương trình demo trờn cỏc tập dữ liệu chuẩn thường được sử dụng, bao gồm:
- Tập dữ liệu từ cơ sở dữ liệu CMU (http://www.ri.cmu.edu/projects/) bao gồm 230 ảnh với nhiều kích cỡ từ 20 20× đến 400 400× .
- Tập dữ liệu CBCL của trường đại học MIT bao gồm 126 ảnh mặt người, 20038 ảnh không phải mặt người chủ yếu có kích cỡ 20 24× .
- Tập dữ liệu 300 ảnh gồm 39 người, trong đó có 180 ảnh trích từ cơ sở dữ liệu ORL của AT&T còn lại là ảnh chụp bằng máy ảnh kỹ thuật số, điện thoại di động.
- Tập 70 ảnh có nền phức tạp với cỡ lớn ( 800 600× đến 1024 768× ) thu thập từ internet.
3.3.2Kết quả Kết quả thực nghiệm
Ghi chú: Kết quả thực nghiệm thu được dưới đây thu được khi tiến hành thử nghiệm chương trình trờn máy PentiumIV 2.0GHz 256MB RAM.
- Bảng kết quả thực nghiệm trên tập dữ liệu CBCL cảu trường đại học MIT Bảng 2: Kết quả trên tập dữ liệu CBCL
Bộ tham số Tỷ lệ dò tìm Tỷ lệ lỗi mẫu dương Tỷ lệ lỗi mẫu âm
22 tầng 91,40% 0,0032% 8,60%
20 tầng 90,10% 0,0038% 9,90%
16 tầng 88,30% 0,0045% 11,70%
- Bảng kết quả với tập dữ liệu lấy từ cơ sở dữ liệu CMU Bảng 3: Kết quả trên tập dữ liệu CMU
Bộ tham số Tỷ lệ dò tìm Tỷ lệ lỗi mẫu dương Tỷ lệ lỗi mẫu âm
22 tầng 92,06% 0,0021% 7,94%
20 tầng 90,40% 0,0027% 9,60%
16 tầng 89,00% 0,0042% 11,00%
- Bảng kết quả với tập dữ liệu lấy từ cơ sở dữ liệu ORL Bảng 4: Kết quả trên tập dữ liệu ORL
Bộ tham số Tỷ lệ dò tìm Tỷ lệ lỗi mẫu dương Tỷ lệ lỗi mẫu âm
22 tẩng 91,11% 0,0024% 8,89%
20 tầng 90,16% 0,0033% 9,84%
16 tầng 88,69% 0,0056% 11,31%
- Bảng kết quả thử nghiệm tốc độ dũ tỡm với ảnh phức tạp cỡ lớn thu thập từ internet
Bảng 5: Kết quả trên tập dữ liệu thu thập từ internet.
22 tầng 42ms 80ms 155ms
20 tầng 38ms 66ms 124ms
16 tầng 32ms 61ms 100ms
3.3.3 Nhận xét
- Với số lượng tầng của chương trình minh họa cũn ớt, số lượng mẫu huấn luyện và thời gian huấn luyện bộ dũ tỡm cũn hạn chế do vậy tỷ lệ dũ tỡm chính xác chưa đạt đến mức tối ưu như lý thuyết.
- Khi số tầng càng tăng thì tỷ lệ dũ tỡm càng cao và tỷ lệ lỗi mẫu dương, lỗi mẫu âm giảm. Nhưng khi số tầng tăng thì tốc độ dũ tỡm giảm.
- Với tốc độ dũ tỡm tớnh bằng ms nên hệ thống thích hợp cho dũ tỡm thời gian thực.
- Thời gian huấn luyện thuật toán AdaBoost rất lâu, mất khoảng 3 ngày liên tục cho một hệ thống chỉ 20 tầng.
- Hiệu quả dũ tỡm cao với các ảnh trực diện, góc nghiêng nhỏ. Lỗi mẫu âm thường mắc phải với những khuôn mặt có góc nghiêng lớn hay bị che khuất (không còn giữ được nguyên vẹn cấu trúc đặc trưng của khuôn mặt).
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Đánh giá thuật toán
a. Ưu điểm
- Phương pháp cho độ chính xác tương đối nhưng lại dũ tỡm khá nhanh, thích hợp trong việc dũ tỡm thời gian thực, trong video.
- Thích hợp với việc huấn luyện trong điều kiện dữ liệu bị nhiễu - Phương pháp trích chọn đặc trưng tiến hành nhanh và trực quan
b. Nhược điểm
- Thuật toán huân luyện chậm do tổ hợp các bộ phân lớp yếu khá lớn
- Chỉ thích hợp với dũ tỡm trong điều kiện các khuôn mặt nhìn thẳng và góc quay nhỏ
- Một số tính chất của AdaBoost mang tính chất nhận định và chưa được chứng minh chặt chẽ.
2. Hướng phát triển
a. Về mặt thuật toán
- Kết hợp các phương pháp khác như SVM ở những tầng cuối cùng để tăng độ chính xác
- Sử dụng các mô hình cải tiến của thuật toán AdaBoost như FloatBoost để cải thiện tỷ lệ dũ tỡm cũng như hạn chế lỗi.
b. Về mặt thực tiễn
- Dũ tìm khuôn mặt trong thời gian thực kết hợp với theo vết khuôn mặt trong các đoạn Video-camera để tăng độ chính xác và giảm thời gian dũ tỡm.
- Đối với dữ liệu học: Cần phải tăng dần số mẫu học và thu thập mẫu học từ những nguồn đa dạng, chuẩn để có thể giúp bộ học định nghĩa được một cách đầy đủ nhất về đối tượng “khuụn mặt”.
- Cần phải xây dựng một hệ thống dũ tỡm khuôn mặt có khả năng thích nghi với những ảnh hưởng của mỗi trường và đặc biệt phải giải quyết bài toán dũ tỡm khuôn mặt ở nhiều góc độ khác nhau so với mặt phẳng ảnh để đảm bảo giảm thiểu việc bỏ sót những đối tượng cần dũ tìm.
3. Tổng kết
Dũ tìm khuôn mặt là một bài toán phức tạp, mỗi hệ thống dũ tỡm thường chỉ thích hợp với một số hoàn cảnh nhất định. Sẽ rất khó khăn để có thể xây dựng một hệ thống dũ tỡm phát huy hiệu quả trong mọi điều kiện. Bộ dũ tỡm khuôn mặt dựa trên thuật toán AdaBoost và các đặc trưng hình học Haar cũng không phải là ngoại lệ. Bộ dũ tỡm này phù hợp với yêu cầu dũ tỡm trong thời gian thực nhưng lại chỉ phát huy hiệu quả với những khuôn mặt thẳng. Với những thuật toán cải tiến dựa trên AdaBoost sẽ được phát triển thì những hạn chế của phương pháp này sẽ được khắc phục và hệ thống dũ tỡm sẽ cho kết quả tốt hơn.
Đề tài này là những tìm hiểu đầu tiên của tôi về lĩnh vực xử lý ảnh với một bài toán cụ thể. Vì vậy, tôi không có tham vọng trong thời gian ngắn có thể ngay lập tức cải tiến hay nâng cấp thuật toán để đạt những kết quả tối ưu hơn. Qua đề tài này, tôi mong muốn khám phá những tri thức khoa học thực sự trong một lĩnh vực rất lý thú, đó là xử lý ảnh.
Với những mục tiêu khiêm tốn đặt ra ban đầu, đề tài đã cơ bản giải quyết được. Do kiến thức của bản thân còn nhiều hạn chế, thời gian tìm hiểu bài toán ngắn nên trong quá trình thực hiện đề tài sẽ không tránh khỏi những sai sót.
PHỤ LỤC 1: Cấu trúc chương trình demo
CFaceDetect class : FaceDetect.cpp Training.cpp
Initial_PossibleFeatures(); // tao cac kieu dac trung
Make_WeakClassifier(); //khoi tao bo phan lop yeu
Get_PrositiveExamples(); //tai mau duong tu thu muc luu tru
Get_NegativeExamples(); //tai mau am tu thu muc luu tru
Initial_PositiveImage(); //khoi tao anh duong(mat nguoi)
Make_IntegralImage(BYTE* src, double* dst, int width, int height);
// tao anh tich phan cua cac mau
Initial_NegativeImage(); //khoi tao cac mau anh am
Make_IntegImage(BYTE* src, double* dst, int width, int height);
// tao anh tich phan cua cac mau
Start_CascadeClassifier(); //bat dau vong lap phan lop cau truc thap
AdaBoost(n[nNode], nNode -1); //ap dung voi tung buoc thuat toan Adaboost
Get_EachFeature(m_ImgPositive[j].IntegrailImage,0,0,&minsc); //lay dac trung cua mau duong
// tinh toan tat ca cac gia tri qua n lan phan lop yeu voi mot dac trung cho moi mau (voi mau duong)
Get_EachFeature(m_ImgNegative[j].IntegrailImage,0,0,&minsc);
// tinh toan tat ca cac gia tri qua n lan phan lop yeu voi mot dac trung cho moi mau (voi mau am)
// Lay gia tri nho nhat va cap nhat loi va trong so va luu giu cac bo hoc yeu // tiep tuc lap lai
CImageProc class : ImageProc.cpp
InitVJFaceDetect(); //khoi tao tap du lieu huan luyen
CFaceDetect class : FaceDetect.cpp
VJFaceDetector(grayImg, image2, TRUE);//xu ly do tim
VJFaceDetector(CvArr* image1, CvArr* image2, BOOL nFlip);
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Đinh Đức Hùng. Một số kỹ thuật hỗ trợ tìm kiếm ảnh theo nội dung. Luận văn Thạc sỹ. Hà Nội, 2003, tr. 2-10
[2] Trần Phước Long. Nhận dạng người dựa vào thông tin khuôn mặt xuất hiện trên ảnh. Khóa luận tốt nghiệp đại học. TP HCM, 2003. tr 18-80.
[3] Ts. Nguyễn Kim Sách. Xử lý ảnh và Video số. Nxb KHKT, 1997, tr. 5-33 [4] PGS-TS Ngô Quốc Tạo. Bài giảng Xử lý ảnh (Đại học Công nghệ), 2006
Tiếng Anh
[5]Alexander Kurnov, Rainer Lienhart. Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection. Intel Corporation,2002. tr.1-18.
[6] Bo WU, Chang HUANG. Fast Rotation Invariant Multi-View Face Detection
[7] Hyeonjoon Moon, P Jonathon Phillips.Computational and performance aspects of PCA-based face-recognition algorithms.
[8] K. Sung and T. Poggio. Example-based learning for view-based human face detection. IEEE Trans. On PAMI, 1998 tr.19–51.
[9] P. Viola and M. Jones. Fast and robust classification using asymmetric AdaBoost and a detector cascade.InNIPS 14, 2002.
[10] P. Viola and M. J. Jones. Robust real-time face detection. IJCV, 2004.tr. 1-110. [11] Ming Jing Li, Rong Xiao. Robust Multi-Pose Face Detection in Images. Tr 4-17. [12] S.Charles Brubaker, Jianxin Wu. On the Design of Cascade of Boosted Ensembles for Face Detection Based on Real Adaboost. Tr 3-4.
[13] Rafael C.Gonzalez, Richard E.Woods. Digital Image Processing. Addison- Wesley, 1992. Tr 45-133