Hầu hết chúng ta khi xây dựng một thuật toán nhận diện khuôn mặt sẽ không cần phải train lại mô hình facenet mà tận dụng lại các mô hình pretrain sẵn có. Bạn sẽ không cần phải tốn thời gian và công sức nếu không có đủ tài nguyên và dữ liệu. Đó cũng là lý do tôi cho rằng việc xây dựng mô hình nhận diện khuôn mặt ở thời điểm hiện tại rất dễ dàng.
Những mô hình pretrain được huấn luyện trên các dữ liệu lên tới hàng triệu ảnh. Do đó có khả năng mã hóa rất tốt các bức ảnh trên không gian 128 chiều. Việc còn lại của chúng ta là sử dụng lại mô hình, tính toán embedding véc tơ và huấn luyện embedding véc tơ bằng một classifier đơn giản để phân loại classes.
2.3.5 Một số bộ dữ liệu public về face
CASIA-WebFace: Bộ dữ liệu bao gồm gần 500k ảnh được thu thập từ khoảng 10k người.
VGGFace2: Bộ dữ liệu gồm khoảng 3 triệu ảnh được thu thập từ gần 9k người. Trên là 2 bộ dữ liệu về face phổ biến nhất, được sử dụng nhiều trong các bài báo và nghiên cứu về face recognition.
Các bộ dữ liệu từ Trung Quốc cũng khá tốt. Những dữ liệu này được Baidu public để hỗ trợ các nhà nghiên cứu: baidu dataset
Ngoài ra bạn có thể tìm kiếm các bộ dữ liệu từ google, facebook, flickr và các phòng lab đã được liệt kê tại top 15 free image datasets for facial recognition.
2.4 Tổng quan về Keras
Keras chạy trên các thư viện máy mã nguồn mở như TensorFlow, Theano hoặc Bộ công cụ nhận thức (CNTK). Theano là một thư viện python được sử dụng cho các tác vụ tính toán số nhanh. TensorFlow là thư viện toán học biểu tượng nổi tiếng nhất được sử dụng để tạo mạng nơ-ron và mô hình học sâu. TensorFlow rất linh hoạt và lợi ích chính là tính toán phân tán. CNTK là khung học sâu được phát triển bởi Microsoft. Nó sử dụng các thư viện như Python, C #, C ++ hoặc các bộ công cụ học máy độc lập. Theano và TensorFlow là những thư viện rất mạnh nhưng khó hiểu để tạo mạng nơ-ron.
Keras dựa trên cấu trúc tối thiểu, cung cấp một cách dễ dàng và dễ dàng để tạo các mô hình học sâu dựa trên TensorFlow hoặc Theano. Keras được thiết kế để xác định nhanh các mô hình học sâu. Chà, Keras là một lựa chọn tối ưu cho các ứng dụng học sâu.
2.4.1 Đặc trưng của Keras
Keras tận dụng các kỹ thuật tối ưu hóa khác nhau để làm cho API mạng thần kinh cấp cao dễ dàng hơn và hiệu quả hơn. Nó hỗ trợ các tính năng sau
API nhất quán, đơn giản và có thể mở rộng.
Hỗ trợ nhiều nền tảng và backend.
Thân thiện với người dùng chạy trên cả CPU và GPU.
Khả năng mở rộng tính toán cao.
2.4.2 Lợi ích
Keras năng động , mạnh mẽ và có những ưu điểm sau
Cộng động lớn hỗ trợ
Dễ dàng để kiểm tra.
Mạng nơ-ron Keras được viết bằng Python giúp mọi thứ đơn giản hơn.
Keras hỗ trợ cả mạng convolution và recurrent.
Mô hình học sâu là các thành phần rời rạc, do đó, bạn có thể kết hợp thành nhiều cách.
CHƯƠNG 3. TRIỂN KHAI VÀ ĐEMO SẢN PHẨM
3.1 Cài đặt môi trường
3.1.1 Python và Visual studio
Đầu tiên chúng ta cần cài đặt python 3.7.2, một phiên bản ổn định được python phát hành vào ngày 24/12/2018(Dec. 24, 2018).
Hình 3. 1 Cài đặt python
Tiếp theo là Visual Studio 2019
Hình 3. 2 Cài đặt Visual Studio Code
Cụ thể là chúng ta cần tính năng development with C++ của Visual Studio
Sau khi cài đặt xong môi trường chúng ta tiến hành cài đặt các thư viện cần sử dụng (với lệnh pip của python)
o Cmake o Dlib o Face_recognition o Numpy o Opencv-python 3.2 Kết quả thực hiện Hình 3. 4 Xác nhận điểm danh
Hình 3. 5 Lấy mẫu nhận diện
Hình 3. 7 Danh sách được điểm danh
CHƯƠNG IV. ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
4.1. Đánh giá kết quả đạt được:
Do trình độ có hạn và thời gian đầu tư cho đề tài chưa nhiều nên đề tài đạt được kết quả như sau:
- Trình bày được báo cáo một cách khoa học và có hệ thống những kiến thức hiểu biết của bản thân, có tham khảo các tài liệu về các vấn đề có liên quan đến nội dung tìm hiểu, nghiên cứu.
- Trong thời gian làm đồ án đề tài đã hoàn thiện thêm kiến thức đã được học ở trường trong suốt học kì.
- Tăng khả năng tư duy logic, có thể nghiên cứu độc lập một vấn đề mà trước đây chúng em không mấy quan tâm.
- Trau dồi những kinh nghiệm quý giá trong quá trình thiết kế, làm quen và sử dụng các mô hình mạng.
- Tạo được một ứng dụng cơ bản về nhận diện khuôn mặt * Nhận xét về báo cáo.
+ Ưu điểm:
• Đã cố gắng trình bày báo cáo một cách khoa học và có hệ thống những kiến thức hiểu biết của bản thân, có tham khảo các tài liệu về các vấn đề có liên quan đến nội dung tìm hiểu, nghiên cứu.
• Cố gắng bám sát đề cương và làm theo sự hướng dẫn của TsS. Nguyễn Quang Vũ nhưng báo cáo được làm trong một thời gian ngắn nên không thể tránh khỏi những sai sót, rất mong được sự đóng góp ý kiến của các thầy cô để bài báo cáo được hoàn thiện hơn.
+ Nhược điểm:
• Chưa được thử nghiệm trên mạng diện rộng.
• Chưa được thử nghiệm trên các hệ điều hành khác nhau
• Báo cáo chưa giải quyết được trọn vẹn những vấn đề phát sinh trong quá trình xử lý.
• Bài báo cáo chưa đạt tính thẩm mỹ cao, phong cách hành văn còn lủng củng, còn nhiều vấn đề chưa chính xác cần khắc phục trong quá trình phát triển, nâng cấp phần mềm giai đoạn sau.
- Về nhận thức: Trong thời gian làm đồ án đề tài đã hoàn thiện thêm kiến thức đã được học ở trường trong suốt học kì. Báo cáo đã giúp chúng em tăng khả năng tư duy logic, có thể nghiên cứu độc lập một vấn đề mà trước đây chúng em không
mấy quan tâm.
- Trau dồi những kinh nghiệm quý giá trong quá trình thiết kế, làm quen và sử dụng các mô hình mạng.
4.2. Hướng phát triển đề tài:
Đây là một bài toán có nhiều tiềm năng trong quá trình hội nhập, để phát triển thành một hệ thống hoàn chỉnh và có thể đưa ứng dụng vào thực tế một cách rộng rãi chương trình cần:
• Cải tiến, hoàn thiện một số chức năng chưa hoàn chỉnh trong chương trình như có thể dùng được MySQL.
• Nâng cấp hệ thống để có thể áp dụng trên mạng diện rộng trên nhiều hệ điều hành khác nhau.
• Thiết kế giao diện chương trình mang tính chuyên nghiệp hơn.
• Phần mềm ứng dụng được áp dụng cho hầu hết các doanh nghiệp chứ không chỉ là doanh nghiệp vừa và nhỏ.
KẾT LUẬN
Với những kiến thức đã học trong trường, tham khảo các tài liệu chuyên ngành cùng với sự nỗ lực của bản thân và sự giúp đỡ, hướng dẫn nhiệt tình của TS. Nguyễn Quang Vũ, chúng em đã tìm hiểu và xây dựng một hệ thống chấm công và điểm danh bằng nhận diện khuôn mặt . Chương trình tuy chưa phải là một sản phẩm phần mềm hoàn hảo nhưng cũng góp phần thể hiện một hướng nghiên cứu mới cho ngành công nghệ thông tin. Rất mong nhận được những đánh giá, góp ý của quý thầy cô giáo và các bạn để chương trình ngày càng hoàn thiện hơn.
TÀI LIỆU THAM KHẢO
[1] Deep Learning Face Representation by Joint Identification-Verification - Yi Sun, Xiaogang Wang, Xiaoou Tang
[2] Face Recognition Based on Improved FaceNet Model - Qiuyue Wei etc
[3] FaceNet - Florian Schroff, Dmitry Kalenichenko, James Philbin Google Inc.
[4] Introduction to FaceNet: A Unified Embedding for Face Recognition and Clustering - Dhairya Kumar
[5] DeepFace: Closing the Gap to Human-Level Performance in Face Verification - Yaniv Taigman .etc
[6] FaceNet: A Unified Embedding for Face Recognition and Clustering - Florian Schroff .etc