Về cơ bản, có n thành phần, tƣơng ứng với n bộ nhận dạng thành phần khác nhau. Việc tổ chức bộ nhận dạng thực ra là xây dựng bộ nhận dạng thành phần và tổ chức bộ nhận dạng tổng hợp.
Vài cách tổ chức đơn giản:
Qua bộ nhận dạng thành phần thứ nhất, lọc ra n1 kết quả gần nhất, qua bộ nhận dạng thành phần thứ 2, lọc ra n2 kết quả gần nhất trong n1 kết quả vừa tìm, làm nhƣ vậy cho đến hết.
Tính kết quả nhận dạng của cả n bộ, sau đó lấy kết quả có % cao nhất.
3.3 Phân tích, thiết kế
Hƣớng tiếp cận phát hiện khuôn mặt dựa trên thành phần đƣợc xây dựng dựa trên tri thức khuôn mặt, qua việc phân tích các thành phần khuôn mặt kết hợp với việc so khớp các mẫu thành phần. Ví dụ: khuôn mặt thƣờng có hai mắt đối xứng nhau qua trục thẳng đứng giữa khuôn mặt và nằm ở nửa trên khuôn mặt, ngay dƣới đôi mắt là mũi, mũi nằm ở khoảng giữa khuôn mặt, dƣới mũi là miệng, miệng nằm ở khoảng nửa dƣới khuôn mặt và đối xứng qua trục thẳng đứng giữa khuôn mặt.
Để xác định một thành phần nằm trong một vùng chứa nó, ta sử dụng kỹ thuật Haar + Adaboost.
Dựa vào việc phân tích vị trí các thành phần khuôn mặt một cách tƣơng đối, ta sẽ xác định đƣợc vùng mà xác suất gần nhƣ chắc chắn sẽ chứa từng thành phần khuôn mặt nhƣ vùng chứa mắt trái, vùng chứa mắt phải, vùng chứa mũi,… Trên cơ sở đó ta xác định một vùng ảnh là ảnh khuôn mặt nếu vùng ảnh đó có đầy đủ các thành phần khuôn mặt.
52
Thuật toán
Ta sử dụng mẫu học dựa trên kỹ thuật Haar + Adaboost cho 6 đối tƣợng sau: mặt thẳng, đôi mắt, mắt trái, mắt phải, mũi, miệng.
Hình 3.2: Nhận dạng khuôn mặt dựa trên thành phần
Bƣớc 1: Phát hiện thô khuôn mặt trên ảnh bằng mẫu mặt thẳng. Sau bƣớc này ta sẽ đƣợc một tập các vùng ảnh có khả năng là khuôn mặt.
Bƣớc 2: Phát hiện đôi mắt ở vùng từ 1/6 đến 1/2 ảnh khuôn mặt tính từ trên xuống. Nếu tìm thấy chuyển qua bƣớc 3.
Bƣớc 3: Phát hiện mắt trái trong vùng từ 1/6 đến 1/2 chiều cao và từ giữa đôi mắt sang trái. Nếu thấy chuyển bƣớc 4.
Bƣớc 4: Phát hiện mắt phải trong vùng từ 1/6 đến 1/2 chiều cao và từ giữa đôi mắt sang phải. Nếu thấy chuyển bƣớc 5.
Bƣớc 5: Phát hiện mũi trong vùng từ 1/4 đến 3/4 chiều rộng và từ giữa đôi mắt đến khoảng 1/8 cận dƣới. Nếu thấy chuyển bƣớc 6.
Bƣớc 6: Phát hiện miệng trong vùng từ 1/8 đến 7/8 chiều rộng và từ giữa mũi đến khoảng 1/8 cận dƣới. Nếu thấy thì thông báo tìm thấy khuôn mặt.
53
// Hàm dò các mặt trong ảnh và vẽ khung vào các bộ phận mặt, mắt, mũi, miệng
void detectAnDraw(const IplImage* src, IplImage* dst, FaceFinder* detector) { vector<CvRect> faces;
IplImage* face;
int i, j;
// khai báo các hình vuông cho các bộ phận
CvRect ep, le, re, no, mo; CvMemStorage *stor;
stor = cvCreateMemStorage(0); detector->detect(src, faces, 0);
// Duyệt tất cả các khuôn mặt có trong ảnh
for (i=0; i<faces.size(); i++) {
face = getSubImage(src, faces[i]);
detector->calcFCs(face, ep, le, re, no, mo, stor);
drawRect(dst, 0, 0, faces[i].x, faces[i].y, faces[i].width, faces[i].height, 0, 255, 0);
drawRect(dst, faces[i].x, faces[i].y, ep.x, ep.y, ep.width, ep.height, 255, 255, 255);
//Vẽ hình vuông vào mắt trái
drawRect(dst, faces[i].x, faces[i].y, le.x, le.y, le.width, le.height, 0, 0, 255);
//Vẽ hình vuông vào mắt phải
drawRect(dst, faces[i].x, faces[i].y, re.x, re.y, re.width, re.height, 0, 255, 255);
//Vẽ hình vuông vào mũi
drawRect(dst, faces[i].x, faces[i].y, no.x, no.y, no.width, no.height, 255, 0, 0);
54
//Vẽ hình vuông vào miệng
drawRect(dst, faces[i].x, faces[i].y, mo.x, mo.y, mo.width, mo.height, 255, 255, 0);
cvReleaseImage(&face); }
3.4 Giao diện và cách sử dụng
* Khởi động chƣơng trình
Chƣơng trình tự phát hiện khuôn mặt, hiện kết quả Kích nút Open image
- Chọn ảnh - Kích nút open
55
3.5 Kết quả thử nghiệm
3.5.1 Góc chụp so với hƣớng ống kính
Các kết quả này đƣợc thực hiện trên các ảnh màu, mỗi ảnh chỉ có duy nhất một khuôn mặt. Khuôn mặt đƣợc lần lƣợt đƣợc chụp theo các góc độ khác nhau từ chính diện, xoay dần đến góc 900
. Các kết quả cho khả năng phát hiện khuôn mặt sẽ khó khăn dần khi khuôn mặt chếch nhiều so với hƣớng ống kính.
Đặc điểm, góc chụp khuôn mặt Kết quả thực nghiệm Khuôn mặt chính diện
56
Khuôn mặt chếch 150 sang trái
Khuôn mặt chếch 450 sang trái
57 3.5.2 Kích thƣớc khuôn mặt 90x100 72x80 63x70 45x50
Các kết quả nhận diện cũng phụ thuộc vào kích thƣớc khuôn mặt. Khuôn mặt cần phải có một kích thƣớc phù hợp thì chƣơng trình mới có khả năng nhận diện.
3.5.3 Các kết quả thực nghiệm khác
58
Biểu cảm khuôn mặt
Trên đây là một số thử nghiệm mang tính chất minh họa, từ đó ta có nhân xét vấn đề kết quả nhận dạng và nhận dạng chính xác khuôn mặt phụ thuộc vào rất nhiều yếu tố trong ảnh nhƣ : kích thƣớc, tƣ thế, nét mặt, che khuất, góc lệch, hình nền, ánh sáng, chất lƣợng ảnh…vv.
59
PHẦN KẾT LUẬN
Bài toán phát hiện mặt ngƣời đã đƣợc đặt ra từ lâu và đi cùng với nó là hàng loạt các đề tài khoa học đƣợc xác lập, các công trình nghiên cứu đƣợc công bố, các ứng dụng đƣợc triển khai. Bài toán này luôn đặt ra nhiều thách thức vì những khó khăn của nó. Các khó khăn chứng tỏ rằng bất cứ phƣơng pháp giải quyết bài toán xác định khuôn mặt ngƣời sẽ không thể tránh khỏi một số khiếm khuyết nhất định. Mỗi hƣớng tiếp cận đƣợc đƣa ra đều đã đạt đƣợc những thành quả nhất định, hƣớng nào cũng có những thành công, những hạn chế vì bài toán này là bài toán không có lời giải tối ƣu cho mọi trƣờng hợp. Tuy nhiên, do tính cấp thiết từ yêu cầu của thực tế mà đây luôn là một đề tài hấp dẫn các nhà khoa học, các chuyên gia nghiên cứu và ứng dụng. Đặc biệt là ở Việt Nam, nơi mà các hệ thống nhận dạng, các hệ thống giám sát chƣa đƣợc phát triển mạnh. Những ứng dụng vẫn chủ yếu là các phần mềm đi kèm với các thiết bị chuyên dụng khá đắt tiền.
Trong luận văn này, tác giả đã tập trung nghiên cứu hƣớng phát hiện mặt ngƣời dựa trên tiếp cận thành phần, cụ thể đã đạt đƣợc những kết quả sau:
Trình bày khái quát về xử lý ảnh và bài toán phát hiện mặt ngƣời trong ảnh.
Hệ thống hoá một số kỹ thuật phát hiện mặt ngƣời trong ảnh
Cài đặt thử nghiệm thuật toán phát hiện mặt ngƣời theo tiếp cận thành phần dựa theo đặc trƣng Haar + Adaboost đã tìm hiểu đƣợc cho 6 đối tƣợng: mặt thẳng, đôi mắt, mắt trái, mắt phải, mũi, miệng.
Để cải tiến độ chính xác cho mô hình hiện tại, các công việc tiếp theo tôi có thể tìm hiểu thêm việc triển khai giai đoạn phát hiện bằng một số kỹ thuật học máy khác nhƣ mạng neural, SVM,... với các cách trích rút đặc trƣng khác nhau mở rộng tập dữ liệu các khuôn mặt và không phải khuôn mặt. Nhằm hƣớng tới một hệ thống nhận dạng hoàn chỉnh, tôi sẽ tiếp tục tìm hiểu và tiếp cận vấn đề nhận dạng khuôn mặt và sau đó hƣớng tới việc tích hợp vào hệ thống giám sát tự động.
60
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Trần Lê Hồng Dũ ( 2005 ), “Phát hiện khuôn mặt dựa trên đặc trưng
lồi lõm”, Khoa Công nghệ thông tin, ĐH Khoa học tự nhiên, Đại học
quốc gia thành phố Hồ Chí Minh.
[2] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn , “Tổng quan các phương pháp xác định khuôn mặt người”
[3] Đỗ Năng Toàn, Phạm Việt Bình (2007), "Giáo trình xử lý ảnh", ĐH Thái Nguyên.
[4] Phạm Anh Phƣơng, Ngô Quốc Tạo, Lƣơng Chi Mai (2008), “Trích chọn đặc trưng wavelet Haar kết hợp với SVM cho việc nhận dạng chữ
viết tay tiếng Việt”, Viện công nghệ thông tin Hà Nội.
Tiếng Anh
[5] Bernhard Froba and Walter Zink, On the Combination of Different
Template Matching Stategies for Fast Face Detection”, MCS 2001,
LNCS 2096, pp. 418-428, Springer-Verlag Berlin Heidelberg, 2001. [6] D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex
Projective Shapes”, Bull. London Math. Soc, vol. 16, pp. 81-121,
1984.
[7] Daniel Keren, Margarita Osadchy and Craig Gotsman, “Antifaces: A
Novel, Fast Method for Image Detection”, IEEE Transaction on
Pattern Analysis and Machine Intelligence, vol. 23, no. 7, IEEE, 2001. [8] Fuzhen Huang and Jianbo Su, “Multiple Face Contour Detection
Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp. 137-
143, Springer-Verlag Berlin Heidelberg, 2004.
[9] Gary G. Yen and Nethrie Nithianandan, “Automatic Facial Feature
Extraction Using Edge Distribution and Genetic Search”,
International Journal of Computational Intelligence and Applications, vol. 3, no. 1, pp. 89-100, Imperial College Press, 2003.
61
[10] H. Rowley, S. Baluja, T. Kanade, “Neural network-based face
detection”, IEEE Transaction on Pattern Analysis and Machine
Intelligence (PAMI), Vol. 20, No. 1, pp. 23-38, Jan 1998.
[11] H.P. Graf, T. Chen, E. Petajan, and E. Cosatto, “Locating Faces and
Facial Parts”, Proc. First Int’l Workshop Automatic Face and
Gesture Recognition, pp. 41-46, 1995.
[12] Hannes Kruppa, Martin A. Bauer, and Bernt Schiele, “Skin Patch
Detection in Real-World Images”, DAGM 2002, LNCS 2449, pp.
109-116, Springer- Verlag Berlin Heidelberg, 2002.
[13] Hideaki Sato, Katsuhiro Sakamoto, Yasue Mitsukura, and Norio Akamatsu, “Face Edge Detection System by Using the GAs”, KES 2004, LNAI 3213, pp. 847-852, Springer-Verlag Berlin Heidelberg, 2004.
[14] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, June 1986.
[15] J. Sobottka and I. Pitas, “Segmentation and Tracking of Faces in
Color Images”, Proc. Second Int’l Conf. Automatic Face and Gesture
Recognition, pp. 236-241, 1996.
[16] Jin Ok Kim, Jin Soo Kim, and Chin Hyun Chung, “Face Region Dectection on Skin Chrominance from Color Images by Facial
Features”, ICADL 2004, LNCS 3334, pp. 646, Springer-Verlag
Berlin Heidelberg, 2004.
[17] K. C. Yow, R. Cipolla, “Feature-Based Human Face Detection”, Image and Vision Computing, Vol. 15, No. 9, pp. 713-735, 1997. [18] K. Lam and H. Yan, “Fast Algorithm for Locating Head
Boundaries,” J.Electronic Imaging, vol. 3, no. 4, pp. 351-359, 1994.
[19] Kang Ryoung Park, “Gaze Detection System by Wide and Auto
Pan/Tilt Narrow View Camera”, DAGM 2003, LNCS 2781, pp. 76-
83, Springer- Verlag Berlin Heidelberg, 2003.
[20] Kenji Iwata, Hitoshi Hongo, Kazuhiko Yamamoto, and Yoshinori Niwa, “Robust Facial Parts Detection by Using Four Directional
62
Features and Relaxation Matching“, KES 2003, LNAI 2774, pp. 882-
888, Springer-Verlag Berlin Heidelberg, 2003.
[21] Kim-Fung Jang, Ho-Man Tang, Michael R. Lyu, and Irwin King, “A Face Processing System Based on Committee Machine: The Approach
and Experimental Results“, CAIP 2003, LNCS 2756, pp.614-622,
Springer-Verlag Berlin Heidelberg, 2003.
[22] Klaus J. Kirehberg, Oliver Jeorsky and Robert W. Frischholz,
“Genetic Model Optimization for Hausdorff Distance-Based Face
Localization”, Biometric Authentication, LNCS 2359, pp. 103-111,
Springer-Verlag Berlin Heidelberg, 2002.
[23] Mark Everingham and Andrew Zisserman, “Automated Person
Identification in Video”, CIVR 2004, LNCS 3115, pp. 289-298,
Springer-Verlag Berlin Heidelberg, 2004.
[24] P. Sinha, “Object Recognition via Image Invariants: A Case Study”, Investigative Ophthalmology and Visual Science, vol. 35, no. 4, pp. 1735-1740, 1994.
[25] P. Sinha, “Processing and Recognizing 3D Forms,” PhD thesis, Massachusetts Inst. of Technology, 1995.
[26] Rein-Lien Hsu, Mohamed abdel-Mottaleb, and Anil K. Jain, “Face
Detection in Color Images”, IEEE Transaction on Pattern Analysis
and Machine Intelligent, vol. 24, no. 5, pp. 696-706, 2002.
[27] Rogerio S. Feris, Jim Gemmell, Kentaro Toyama, and Volker Kruger,
“Hierarchical Wavelet Networks for Facial Feature Localization”,
Proceedings of Fifth IEEE International Conference on Automatic Face and Gesture Recognition, pp. 118-123, 2002.
[28] S. A. Sirohey, “Human Face Segmentation and Identification,
Technical Report”, CS-TR-3176, Univ. of Maryland, 1993
[29] Shou-Der Wei and Shang-Hong Lai, “An Efficient Algorithm for
Detecting Faces from Color Images”, PCM 2002, LNCS 2532, pp.
1177-1184, Springer- Verlag Berlin Heidelberg, 2002.
[30] Stephen C. Y. Chan and Paul H. Lewis, “A Pre-filter Enabling Fast
Frontal Face Detection”, Visual’99,LNCS 1614, pp. 777-785,
63
[31] T. Darrell, G. Gordon, M. Harville, and J. Woodfill, “Integrated
Person Tracking Using Stereo, Color, and pattern Detection”,
International Journal of Computer Vision 37(2), 175-185, Kluwer Academic Publishers, the Netherlands, 2000.
[32] T.K. Leung, M.C. Burl, and P. Perona, “Finding Faces in Cluttered
Scenes Using Random Labeled Graph Matching”, Proc. Fifth IEEE
Int’l Conf. Computer Vision, pp. 637-644, 1995.
[33] http://www.ieev.org/2010/03/adaboost-haar-features-face-