Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
1,92 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO PBL5 - ĐỒ ÁN KỸ THUẬT MÁY TÍNH HỆ THỐNG ĐIỂM DANH LỚP HỌC DÙNG NHẬN DIỆN GƯƠNG MẶT Cán doanh nghiệp hướng dẫn: Trần Phương Nam – B.A.P Giảng viên đồng hướng dẫn: TS Ninh Khánh Duy STT NHÓM: 24 HỌ VÀ TÊN SINH VIÊN LỚP HỌC PHẦN ĐỒ ÁN CHÂU TRƯỜNG LONG 18N14B TRẦN CHÍ MINH 18N14B LÊ ANH TUẤN 18N14B HỒ NGUYÊN VŨ 18N14B ĐÀ NẴNG, 06/2021 TÓM TẮT ĐỒ ÁN Hiện nay, với tốc độ phát triển nhanh chóng cơng nghệ thơng tin ứng dụng rộng rãi nhiều lĩnh vực xã hội Trong hệ thống tự động hóa phần khơng thể thiếu Ở trưởng học nay, việc điểm danh trước học khơng cịn xa lạ Nhưng diễn thủ cơng, thủ cơng nên nhiều thời gian 10 -15 phút cho việc điểm danh Nắm bắt yếu điểm nên ý tưởng cho việc điểm danh tự động cần thiết Để xây dựng hệ thống cần thành phần riêng biệt để xử lý công việc Như camera cho việc ghi hình, server cho việc xử lý điểm danh, sở liệu cho việc lưu trữ mobile app giao diện hoàn chỉnh để giáo viên giảng viên quản lý Từ hệ thống đó, u cầu truyền thơng kết nối chúng vấn đề nan giải hệ thống hoạt động nên tảng riêng biệt Do giải pháp cung cấp API (giao diện lập trình ứng dụng) cho hệ thống kết nối với Cuối xin chân thành cảm ơn thầy TS Ninh Khánh Duy anh Trần Phương Nam – Cơng ty B.A.P nhiệt tình hướng dẫn, gợi ý giải pháp tuyệt vời để chúng em hoàn thành dự án BẢNG PHÂN CÔNG NHIỆM VỤ Sinh viên thực Châu Trường Long Trần Chí Minh Lê Anh Tuấn Hồ Nguyên Vũ Các nhiệm vụ -Face Detection – Haarcascade , MTCNN Kết Đã hoàn thành -Face Encoder – Facenet Đã hoàn thành -Face Identifier – SVM, KNN, FAISS Đã hoàn thành -Backend API – Django Đã hoàn thành -Raspberry Server – Camera Đã hoàn thành -Data Augmentation -Mockup GUI Đã hoàn thành Đã hoàn thành -Mobile App Đã hoàn thành -API Connection Đã hoàn thành -SRS Document -Crawl Data Đã hoàn thành Đã hoàn thành -Mockup GUI Đã hoàn thành -Mobile App Đã hoàn thành -API Connection Đã hoàn thành -Sequence Diagram -Database – MySQL (Using) Đã hoàn thành Đã hoàn thành -Database – MongoDB – NoSQL (Tested) Đã hoàn thành -API – Django Đã hoàn thành -Usecase Diagram Đã hoàn thành -API document Đã hoàn thành MỤC LỤC GIỚI THIỆU GIẢI PHÁP 2.1 TỔ NG QUAN HỆ THỐ NG .8 2.2 GIẢ I PHÁ P PHẦ N CỨ NG 2.3 GIẢ I PHÁ P TRUYỀ N THÔ NG .11 2.3.1 Kết nối có dây 11 2.3.2 RESTful API 11 2.4 GIẢ I PHÁ P PHẦ N MỀ M 12 2.4.1 Tổng quan hệ thống nhận diện 12 2.4.2 Face encoder 12 2.4.3 Face detector 15 2.4.4 Face identifier 15 2.4.5 Database 16 2.4.6 Raspberry 17 2.4.7 Server 17 2.4.8 Mobile: 20 KẾT QUẢ .30 3.1 KẾ T QUẢ NHẬ N DIỆ N 30 3.1.1 Hiệu (FPS) hệ thống nhận diện 30 3.1.2 Độ xác mơ hình xác thực gương mặt 30 3.1.3 So sánh kết nhận diện model Facenet 128d 512d 31 1.1 KẾ T QUẢ API .32 1.2 KẾ T QUẢ MOBILE 33 KẾT LUẬN 37 TÀI LIỆU THAM KHẢO 37 MỤC LỤC HÌNH ẢNH Hình Tổng quan hệ thống Hình Raspberry pi .10 Hình Camera 10 Hình Thẻ nhớ 10 Hình Hệ thống nhận diện .12 Hình Facenet layers [11] 13 Hình Siam network 14 Hình Triple loss .14 Hình Face detection .15 Hình 10 Database diagram 16 Hình 11 Mockup .21 Hình 12 Mơ hình MVVM [10] 21 Hình 13 Sơ đồ thành phần [10] 22 Hình 14 Cấu trúc thư mục 23 Hình 15 Use Case .25 Hình 16 Đăng ký sequence .26 Hình 17 Đăng nhập sequence 26 Hình 18 Điểm danh sequence 27 Hình 19 Quản lý học sinh sequence 28 Hình 20 Xem lịch sử sequence 29 Hình 21 Lấy lại mật sequence 29 Hình 22 Đồ thị accuracy 31 Hình 23 512 chiều .32 Hình 24 128 chiều .32 Hình 25 Login 34 Hình 26 Màn hình 35 Hình 27 Điểm danh 35 Hình 28 Thống kê kết điểm danh .36 Hình 29 Giao diện khác 37 MỤC LỤC BẢNG BIỂU Bảng Danh sách phần cứng 10 Bảng FPS sử dụng MTCNN 30 Bảng FPS sử dụng Haarcascade .30 Bảng Accuracy SVM KNN 31 Giới thiệu 1.1 Lý chọn đề tài Hiện có nhiều loại hệ thống chấm công điểm danh tự động khác như: vân tay, thẻ từ, đặc biệt hệ thống nhận diện gương mặt sử dụng mơ hình deep learning Các hệ thống thường đặt trước cửa vào, cự ly gần Do dự án phát triển hệ thống chấm công dùng nhận diện gương mặt cung cấp giải pháp nghiệp vụ để quản lý thông qua mobile app 1.2 Mục đích đề tài Áp dụng kiến thức học song hành về: trí tuệ nhân tạo, vi điều khiển khoa học liệu để xây dựng kiến trúc hệ thống nhận diện gương mặt Vận dụng kiến thức cho việc thu thập liệu hình ảnh sinh viên Chuẩn hóa làm liệu Tìm hiểu triển khai mơ hình nhận diện gương mặt từ tập liệu Sau tích hợp vào hệ thống backend service cung cấp APIs cho toàn thiết bị hệ thống Phía giao diện người dùng ứng dụng di động phát triển dựa công nghệ xamarin cho mục đích đa tảng, nhằm hỗ trợ nhiều người dùng Giải pháp 2.1 Tổng quan hệ thống Hình Tổng quan hệ thống - Để giải toán phức tạp: Từ hệ thống lớn phức tạp, chia hệ thống thành hệ thống nhỏ hơn, đơn giản hệ thống đảm nhận phần cơng việc khác - Như sơ đồ thấy gồm hệ thống con: Raspberry server Main server Mobile app Database 2.2 Giải pháp phần cứng Tên linh kiện Raspberry Pi Hình ảnh Mơ tả -Raspberry Pi có thành phần như: CPU ARM Cortex-A53 Quadcore 1.2GHz GPU RAM 1GB Khe cắm thẻ microSD Wifi 802.11n Hình Raspberry pi Bluetooth 4.1 cổng USB -Hệ điều hành: Raspbian 64 bit -Camera xiaomi Camera -Độ phân giải: 1080P -Kết nối: USB, Wifi Hình Camera Thẻ nhớ Sandisk Ultra 32 GB Thẻ nhớ Dùng để lưu trữ OS liệu Hình Thẻ nhớ Bảng Danh sách phần cứng 2.3 Giải pháp truyền thơng 2.3.1 Kết nối có dây - Camera kết nối với raspberry thông qua cổng dây USB Raspberry kết nối với server thông dây ethernet 2.3.2 RESTful API API (Application Programming Interface) tập quy tắc chế mà theo đó, ứng dụng hay thành phần tương tác với ứng dụng hay thành phần khác API trả liệu mà bạn cần cho ứng dụng kiểu liệu phổ biến JSON hay XML [8] ViewModels sử dụng model cần định nghĩa liệu Sự liên kết View-ViewModel giúp chúng gửi nhận liệu, để hiểu rõ ta cần tìm hiểu khái niệm Binding, DataContext, Behaviors SDK Nhờ ta tách code-behind View đưa xuống View Model Ngoài lớp ViewModels chứa presentation logic state ứng dụng ViewModels cần chứa chức ứng dụng ViewModels định nghĩa properties, commands, events, để chuyển đổi controls view cần data-bind c Đánh giá MVVM [10] nói mơ hình kiến trúc nhiều cư dân cộng đồng ưa chuộng Điểm tinh hoa kiến trúc ViewModel, giống với Presenter MVP nhiên có điều làm nên tên tuổi kiến trúc là: ViewModel khơng biết View, ViewModel sử dụng cho nhiều View (one-to-many) ViewModel sử dụng Observer design pattern để liên lạc với View (thường gọi binding data, chiều chiều tùy nhu cầu ứng dụng) Chính đặc điểm MVVM thường phối hợp với thư viện hỗ trợ Reactive Programming hay Event/Data Stream, triết lý lập trình đại hiệu phát triển mạnh năm gần - Usecase diagram: Hình 15 Use Case - Sequence diagram: Hình 16 Đăng ký sequence Hình 17 Đăng nhập sequence Hình 18 Điểm danh sequence Hình 19 Quản lý học sinh sequence Hình 20 Xem lịch sử sequence Hình 21 Lấy lại mật sequence Kết 3.1 Kết nhận diện 3.1.1 Hiệu (FPS) hệ thống nhận diện Tốc độ khung hình FPS SVM, KNN FAISS Sử dụng MTCNN detector SVM KNN FAISS 128 Dim 11 FPS 12 FPS FPS 128 Dim (PCA) 10 FPS 10 FPS FPS 512 Dim 10 FPS FPS FPS Bảng FPS sử dụng MTCNN Sử dụng Haarcascade detector SVM KNN FAISS 128 Dim 17 FPS 16 FPS 10 FPS 128 Dim (PCA) 15 FPS 15 FPS FPS 512 Dim 15 FPS 14 FPS FPS Bảng FPS sử dụng Haarcascade Kết cho thấy hiệu hai mơ hình SVM KNN vượt trội so với FAISS Để lựa chọn tiếp mơ hình phù hợp, tiếp tục so sánh độ xác SVM KNN 3.1.2 Độ xác mơ hình xác thực gương mặt Kết thử nghiệm dựa tập liệu 43 sinh viên với 30,524 ảnh Lưu ý tập liệu thu thập từ việc cắt frame từ video cận mặt sinh viên, nên ảnh sinh viên có độ tương đồng cao Có thể mà chúng cho kết accuracy cao Tuy nhiên để tham khảo, kết chạy thực tế khác SVM KNN Test size = 0.99 0.9231 0.7310 Test size = 0.9 0.9862 0.9787 Test size = 0.5 0.9958 0.9869 Test size = 0.3 0.9960 0.9882 Bảng Accuracy SVM KNN Hình 22 Đồ thị accuracy Có thể thấy giảm test size đi, đồng nghĩa với việc tăng training size lên accuracy mơ hình SVM KNN để tăng Nhưng với test size 0.99 SVM lại cho độ xác cao liệu training thấp 3.1.3 So sánh kết nhận diện model Facenet 128d 512d - So sánh độ xác hai model facenet 128 chiều 512 chiều Với ảnh kết nhận diện face encoder sử dụng model 128 chiều cho kết tốt 512 chiều Giải thích: ảnh có q nhiều người crop gương mặt hình bị bể độ phân giải thấp dẫn đến bị nhiễu Hình 23 512 chiều Hình 24 128 chiều - Có thể thấy ảnh model 512 chiều cho kết sai người Nhưng 128 chiều cho độ xác cao nhận diện hoàn toàn 1.1 Kết API Server cung cấp 23 APIs cho phía Mobile sử dụng đến Raspberry cung cấp APIs với chức đóng-mở camera, đọc hình ảnh từ camera 1.2 - Kết mobile Hoàn thành xong giao diện Giao diện đăng nhập Giao diện đăng ký Giao diện trang Giao diện lớp học phần Giao diện xem lịch sử lớp học phần Giao diện thông tin cá nhân giảng viên Giao diện thông tin cá nhân học sinh Giao diện danh sách unknown Giao diện danh sách phòng học Giao diện lấy lại mật Giao diện đồ thị Hồn thành chức Đăng ký, Đăng nhập, Lấy lại mật Tạo môn học Điểm danh lớp học Cập nhật trạng thái cho học sinh Xem lịch sử lớp học Thay đổi thông tin cá nhân Giao diện app: Giao diện đăng ký: Trước tiên giảng viên cần nhập thông tin bắt buộc: Email Password thông tin (Name, Phone, Faculty) để hoàn thành thủ tục đăng ký tài khoản Sau đăng ký, giảng viên cần active account với Email vừa đăng ký Giao diện đăng nhập: Tại giảng viên cần nhập Email Password đăng ký để đăng nhập vào hệ thống Hình 25 Login Giao diện Tại hiển thị danh sách lớp học phần có theo thời khóa biểu giảng viên danh sách tất lớp học phần có giảng viên Giảng viên thêm mơn học cách upload file excel danh sách danh sinh viên lớp chọn thời khóa biểu phù hợp Có Menu điều hướng hình Hình 26 Màn hình Giao diện lớp học Danh sách học sinh lớp học phần hiển thị Giảng viên thao tác với danh sách học sinh qua việc điểm danh lớp học Sau trình điểm danh diễn ra, danh sách sinh viên có mặt hiển thị lên Giảng viên tiến hành so sánh chỉnh sửa trạng thái cho sinh viên nhận diện sai lưu lại lớp học Hình 27 Điểm danh Giao diện lịch sử lớp học Tại giảng viên xem lại danh sách học sinh tất lớp học phần dạy qua file PDF Giảng viên tải file điện thoại theo nhu cầu Hình 28 Thống kê kết điểm danh Một số giao diện khác: Giao diện thông tin cá nhân Giao diện danh sách phòng học Biểu đồ danh sách học sinh tham gia lớp học Giao diện lấy lại mật Hình 29 Giao diện khác Kết luận 2.1 Kết luận - Phần face encoding sử dụng model facenet 128 chiều liệu để giảm nhiễu ảnh trích xuất đặc trưng - Phần classifier model sử dụng mơ hình SVM cho độ xác tốc độ thực thi tốt so với KNN FAISS 2.2 Hướng phát triển - Để cải thiện độ xác hệ thống nhận diện hướng để phát triển triển khai: Chọn camera phù hợp có độ phân giải cao Giảm chiều liệu để giảm nhiễu Sử dụng model deep learning để nâng cao độ phân giải hình ảnh cực cao Đề xuất ESRGAN model - Sử dụng model encoding khác cho yêu cầu đầu vào ảnh nhỏ, ví dụ 20x20, 30x30, … Tài liệu tham khảo [1] Source code, https://github.com/chautruonglong/NHOM_14 [2] davidsandberg(2018), Facenet, https://github.com/davidsandberg/facenet [3] Vũ Hữu Long(2017), Principal Component Analysis, https://machinelearningcoban.com/2017/06/15/pca/ [4] Vũ Hữu Long(2018), Norm, https://machinelearningcoban.com/math/ [5] Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato and Lior Wolf, “DeepFace: Closing the Gap to Human-Level – Yaniv Taigman, https://www.cs.toronto.edu/~ranzato/publications/taigman_cvpr14.pdf [6] xinntao(2020), ESRGAN, https://github.com/xinntao/ESRGAN [7] Xamarin.Forms Documentation, Microsoft, https://docs.microsoft.com/en-us/xamarin/xamarin-forms/ [8] RESTful API, https://topdev.vn/blog/restful-api-la-gi/ [9] Phạm Đình Khánh, Mơ hình Facenet face recognition https://phamdinhkhanh.github.io/2020/03/12/faceNetAlgorithm.html [10] Phạm Văn Thịnh, Cơ MVVM (Model–View–ViewModel) Pattern https://viblo.asia/p/co-ban-ve-mvvm-model-view-viewmodel-patternDo754wdWlM6 [11] Florian Schroff - Dmitry Kalenichenko - James Philbin, FaceNet: A Unified Embedding for Face Recognition and Clustering https://arxiv.org/pdf/1503.03832.pdf [12] SVM, https://viblo.asia/p/gioi-thieu-ve-support-vector-machine-svm6J3ZgPVElmB [13] KNN, https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz [14] FAISS, https://viblo.asia/p/image-retrieval-voi-thu-vien-faiss-LzD5ddJo5jY ... hình Giao diện lớp học Danh sách học sinh lớp học phần hiển thị Giảng viên thao tác với danh sách học sinh qua việc điểm danh lớp học Sau trình điểm danh diễn ra, danh sách sinh viên có mặt... diện Tại hiển thị danh sách lớp học phần có theo thời khóa biểu giảng viên danh sách tất lớp học phần có giảng viên Giảng viên thêm mơn học cách upload file excel danh sách danh sinh viên lớp... tiết môn học danh sách sinh viên) Kích hoạt camera yêu cầu hệ thống điểm danh tự động Xem lịch sử điểm danh bao gồm số sinh viên có mặt/vắng lớp học, chỉnh sửa thủ công qua danh sách Known/Unknown,