Nhận dạng mặt người trong ảnh có nhiều ứng dụng trong cuộc sống. Tuy nhiêntrong luận văn n{y, tôi chỉ x}y dựng một chương trình nhỏ để minh họa cho c|c lý thuyết ở trên. Cụ thể đấy l{ một chức năng đăng nhập hệ thống quản lý điểm sử dụng kết hợp nhận dạng mặt người v{ kỹ thuật mật khẩu để tăng cường độ an to{n cho hệ thống thông tin quản lý. Phần nhận dạng sử dụng Webcam chụp ảnh khuôn mặt. Chương trình được viết trên nền C# (2010) của Microsoft, thư viện m~ nguồn mở EmguCV(2.4.9)
(EmguCV cross platform .Net wrapper to the Intel OpenCV image processing library for C#.Net).
4.1. Sơ lược về EmguCV.
Emgu CV l{ một gói bao bên ngo{i (wrapper) thư viện xử lí ảnh OpenCV của Intel, cho phép lập trình viên có thể gọi c|c h{m của OpenCV từ trong c|c ngôn ngữ .NET C#, VB, VC++, IronPython… Gói n{y có thể được biên dịch trong Mono v{ chạy trên Linux / Mac OS X.
OpenVC l{ thư viện m~ nguồn mở của intel về thị gi|c m|y tính. Nó cung cấp một bộ m~ nguồn bao gồm h{ng trăm h{m, lớp dựa trên c|c thuật to|n về xử lý ảnh cũng như Computer vision dùng ngôn ngữ C/C++. Open CV thể hiện sự đa dạng của trí tuệ nh}n tạo. Được ứng dụng nhiều trong c|c b{i to|n nhận dạng mặt, dò tìm mặt, ph|t hiện mặt, lọc Kalman, …
Cấu trúc tổng quan của OpenCV bao gồm 5 phần chính. 4 trong 5 phần đó được chỉ ra trong hình vẽ dưới.
Hình 4.1 : Cấu trúc cơ bản của OpenCV
4.2. Các bước chính trong hệ thống nhận dạng mặt người.
Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau: ph|t hiện khuôn mặt (face detection), ph}n đoạn khuôn mặt (face alignment hay segmentation), rút trích đặc trưng (feature extraction), v{ ph}n lớp khuôn mặt (face classification).
Ph|t hiện khuôn mặt dò tìm, định vị những vị trí khuông mặt xuất hiện trong ảnh. Ph}n đoạn khuôn mặt sẽ x|c định vị trí của mắt, mũi, miệng v{ c|c th{nh phần kh|c của khuôn mặt sau đó chuyển kết quả n{y cho bước rút trích đặc trưng. Từ những thông tin về c|c th{nh phần trên khuôn mặt, chúng ta có thể dễ d{ng tính được véc-tơ đặc trưng trong bước rút trích đặc trưng. Những véc-tơ đặc trưng n{y sẽ l{ dữ liệu đầu v{o cho một mô hình đ~
CV
Các hàm về xử lý ảnh và giải thuật về
thị giác máy tính
CXCORE
Các cấu trúc dữ liệu cơ bản, cấu trúc XML, các hàm về đồ họa …
MLL
Các thuật toán học máy, bao gồm các bộ
phân cụm, phân loại thống kê
HighGUI
Các hàm và thủ tục làm việc với file ảnh
được huấn luyện trước để ph}n loại khuôn mặt. Bên cạnh những bước chính nêu trên, chúng ta còn có thể |p dụng thêm một số bước kh|c như tiền xử lý, hậu xử lý nhằm l{m tăng độ chính x|c cho hệ thống.
4.3. Phân tích hệ thống.
Nhiệm vụ chính của chương trình l{ dò tìm v{ nhận dạng khuôn mặt webcam, sau đấy so s|nh khuôn mặt với csdl để phục vụ cho mục đích x|c thực.
Hình 4.2: Chức năng nhận dạng của hệ thống Như vậy c|c chức năng chương trình bao gồm: Như vậy c|c chức năng chương trình bao gồm:
Kết nối đến webcam, đọc ảnh.
Ph|t hiệnkhuôn mặt có trong webcam, trích ảnh khuôn mặt đ~ ph|t hiện được ...
Nhận dạng khuôn mặt được ph|t hiện.
Đăng ký người dùng nếungười đó chưa có ảnh trong csdl. X|c thực người dùng bằng mật khẩu.
Hệ thống quản lý điểm.
a. Xử lý đầu vào:
Chương trình nhận đầu v{o l{ file ảnhwebcam, 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 ta
0 HỆ THỐNG PHÁT HIỆN, NHẬN DẠNG MẶT NGƯỜI NGƯỜI DÙNG Capture ảnh
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,nhận dạng c|c khuôn mặt có trong ảnh.
b. Phát hiện khuôn mặt
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 lớp EMGU.CV.CascadeClassifiercủa EmguCV. 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.
c. Nhận dạng
Khuôn mặt sau khi được ph|t hiện sẽ được t|ch ra khỏi bức ảnh v{ tiến h{nh nhận dạng.Việc nhận dạng khuôn mặt được thực hiện bằng thuật to|n eigenface thông qua lớp EMGU.CV.EigenFaceRecognizercủa EmguCV.
Lớp EigenFaceRecognizer |p dụng PCA trên mỗi hình ảnh, kết quả sẽ l{ một ảnh c|c gi| trị Eigen đưa v{o học v{ dùng để đo|n nhận.Ở đ}y, h{m khoảng c|ch Euclid được sử dụng để đưa ra ứng cử viên giống nhất so với ảnh đầu v{o.
d.Hệ thống quản lý điểm.
Sau khi nhận dạng th{nh công, người dùng sẽ chuyển sang chức năng đăng nhập mật khẩu. Vượt qua hai vòng đăng nhập người dùng v{o giao diện để l{m việc với hệ hệ thống quản lý điểm của sinh viên với c|c chức năng cơ bản như thêm, sửa, xóa… c|c thông tin về sinh viên, môn học, điểm, v{ danh mục khoa.
- CSDL ảnh: Ảnh chưa có trong CSDL sẽ được tiến h{nh qu| trình đăng ký. Mỗi khuôn mặt sẽ được chụp 10 ảnh kh|c nhau v{ lưu v{o csdl , c|c thông tin gồm tên người, tên file lưu trong file XML v{ ảnh của người đó. <Faces_For_Training> <FACE> <NAME>NAME</NAME> <FILE>face_NAME_2057798247.jpg</FILE> </FACE> </Faces_For_Training>
- CSDL chương trình quản lý điểm:
4.4. Kết quả chạy chương trình.
- Giao diện Form đăng nhập sử dụng nhận dạng khuôn mặt:
- Giao diện đăng nhập bằng mật khẩu:
KẾT LUẬN
Kết luận
Luận văn có hai kêt quả chính:
1/. Nghiên cứu t{i liệu để trình b{y c|c vấn đề sau:
+ Cơ sở khoa học v{ thực tiễn của vấn đề nhận dạng mặt người. + Phương ph|p Nhận dạng mặt người.
+ Nhận dạng mặt người v{ vấn đề an to{n thông tin.
2/. Thử nghiệm chương trình nhận dạng mặt người kết hợp với kỹ thuật sử dụng mật khẩu v{o b{i to|n đăng nhập hệ thống thông tin quản lý.
Trên cơ sở nghiên cứu về b{i to|n nhận dạng mặt người trong ảnh, tôi đ~ |p dụng th{nh công mô hình Cascade of Classfier v{o b{i to|n ph|t hiện mặt người trong ảnh v{ thuật to|n PCA để nhận dạng mặt người. Về chương trình demo, sau khi thử nghiệm với webcam, chương trình đạt kết quả tốt, thời gian ph|t hiện nhanh đối với c|c ảnh mặt người chụp thẳng, chất lượng ảnh tốt (chụp bằng m|y kĩ thuật số), tuy nhiên đối với c|c ảnh chụp nghiêng hay ảnh có mầu sắc qu| tối thì chương trình gần như không thể nhận dạng được khuôn mặt trong bức ảnh đấy.Chương trình sẽ không thể ph|t hiện mặt người trong điều kiện độ s|ng qu| yếu v{ góc quay nghiêng qu| 20o.
TÀI LIỆU THAM KHẢO
[1]. Ming-Hsuan Yang, David J. Kriegman, Narendra Ahuja, “Detecting Faces in Images: A Survey”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol. 24, No 1, pp. 34-47, Jan 2002.
[2]. Stan Z. Li, Zhen Qiu Zhang, “FloatBoost Learning and Statistical Face Detection”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol. 26, No, pp. 1-12, Sep 2004.
[3]. Stan Z. Li, Juwei Lu, “Face Detection, Alignment and Recognition”, Book Chapter 9, pp. 385-455, Emerging Topics in Computer Vision, Prentice Hall, ISBN 0-13-101366-1, Jul 2004.
[4]. P. Viola, M. Jones, “Robust Real Time Object Detection”, Proc. IEEE ICCV Workshop on Statistical and Computational Theories of Vision, Jul 2001. [5]. P. Viola, M. Jones, “Rapid object detection using a boosted cascade of simple features”, Proc. IEEE Conf. Computer Vision and Pattern Recognition (CVPR’01), pp. 511-518, Dec 2001.
[6]. K. K. Sung, T. Poggio, “Example-based learning for view-based human face detection”, IEEE Transaction on Pattern Analysis and Machine
Intelligence
(PAMI), Vol. 20, No. 1, pp. 39-51, Jan 1998.
[7]. 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.
[8]. H. Schneiderman, T. Kanade, “Probabilistic Modeling of Local
Computer Vision and Pattern Recognition (CVPR’98), pp. 45-51, 1998. [9]. A. Rajagopalan, K. Kumar, J. Karlekar, R. Manivasakan, M. Patil, U. Desai, P. Poonacha, S. Chaudhuri, “Finding Faces in Photographs”, Proc. 6th IEEE Conf. Computer Vision (ICCV’98), pp. 640-645, 1998.
[10]. E. Osuna, R. Freund, F. Girosi, “Training Support Vector Machines: An Application to Face Detection”, Proc. IEEE Conf. Computer Vision and
Pattern
Recognition (CVPR’97), pp. 130-136, 1997.
[11]. G. Yang, T. S. Huang, “Human Face Detection in Complex Background”, Pattern Recognition, Vol. 27, No. 1, pp. 53-63, 1994.
[12]. K. C. Yow, R. Cipolla, “Feature-Based Human Face Detection”, Image and Vision Computing, Vol. 15, No. 9, pp. 713-735, 1997.
[13]. T. K. Leung, M.C. Burl, P. Perona, “Finding Faces in Cluttered Scenes Using Random Labeled Graph Matching”, Proc. 5th IEEE Conf. Computer Vision (ICCV’95), pp. 637-644, 1995.
[14]. C. Kotropoulos, I. Pitas, “Rule-based Face Detection in Frontal Views”, Proc. Int’l Conf. Acoustics, Speech and Signal Processing, Vol. 4, pp. 2637- 2540, 1997.
[15]. A. Lanitis, C. J. Taylor, T. F. Cootes, “An Automatic Face Identification System Using Flexible Appearance Models”, Image and Vision Computing, Vol.
13, No. 5, pp. 393-401, 1995.
[16]. M. Turk, A. Pentland, “Eigenfaces for Recognition”, Journal of Cognitive Neuroscience, Vol. 3, No. 1, pp. 71-86, 1991.
[17]. I. Craw, D. Tock, A. Bennett, “Finding Face Features”, Proc. 2nd European Conf. Computer Vision (ECCV’92), Vol. 2, pp. 92-96, 1992.
[18]. T. Kanade, “Picture Processing Computer Complex and Recognition of Human Faces”, PhD thesis, Kyoto Univ., 1973.
[19]. Intel Open Source Computer Vision Library-OpenCV phiên bản 4.0 http://www.intel.com/technology/computing/opencv/.
[20]. Intel Image Processing Library phiên bản 2.5