Mục tiêu của đề tài này là phát triển một ứng dụng điểm danh bằng xác minh khuôn mặt. Các nghiên cứu về phát hiện khuôn mặt đã được nhiều nhà nghiên cứu, trong đó các nhà phát triển của OpenCV có chia sẻ với cộng đồng một model đã được train sẵn trên tập dữ liệu lớn giúp phát hiện khuôn mặt. Qua thực nghiệm nhận thấy model này có thể phát hiện tốt các khuôn mặt khi đeo khẩu trang, do đó đồ án lựa chọn xây dựng ứng dụng sử dụng model này cho phát hiện khuôn mặt. Ứng dụng thành công model này là một trong những mục tiêu của đề tài. Phạm vi của đề tài này là ứng dụng sử dụng nghiên cứu có sẵn, bổ sung thêm những kiến thức, công cụ liên quan để phát triển phần mềm phù hợp với bài toán đặt ra.
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT TRƯỜNG ĐẠI HỌC THỦY LỢI NGUYỄN VĂN TÍNH NGHIÊN CỨU XÂY DỰNG HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT TRÊN NỀN TẢNG WEB Ngành: Kỹ Thuật điều khiển tự động hóa Mã số: TLA121 NGƯỜI HƯỚNG DẪN PGS.TS NGUYỄN TRỌNG THẮNG HÀ NỘI, NĂM 2023 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: NGUYỄN VĂN TÍNH Lớp: 60TĐH1 Hệ đào tạo: Đại học quy Ngành: Kỹ Thuật Điều Khiển Và Tự Động hóa Khoa: Điện - Điện Tử 1- TÊN ĐỀ TÀI : NGHIÊN CỨU XÂY DỰNG HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT TRÊN NỀN TẢNG WEB 2- CÁC TÀI LIỆU CƠ BẢN [1] Nhận diện khn mặt tương lai có ứng dụng lợi ích URL: https://fptshop.com.vn/tin-tuc/danh-gia/cong-nghe-nhan-dien-khuon-mat-131746 [2] Raspberry gì? Cấu tạo ứng dụng URL: www.thegioididong.com/hoi-dap/raspberry-pi-la-gi-dung-de-lam-gi-nen-chon-phienban-nao-1369999# [3] Giải pháp nhận diện khuôn mặt URL: http://kztek.net/giai-phap/giai-phap-nhan-dien-khuon-mat/nhan-dien-khuon-mat-kziface [4] Tìm hiểu thư viện sử dụng để ứng dụng vào tốn nhận diện khn mặt URL: https://topdev.vn/blog/opencv-la-gi-hoc-computer-vision-khong-kho/ https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz [5] Tìm hiểu framework thư viện sử dụng tảng web URL: https://niithanoi.edu.vn/flask-la-gi.html https://reactjs.org/ [5] webserver gì? Và sử dụng raspberry làm server URL quantrimang.com/cong-nghe/host-trang-web-tren-raspberry-pi-168653# 3- NỘI DUNG CÁC PHẦN THUYẾT MINH VÀ TÍNH TỐN Nội dung phần Tỷ lệ % Chương 1: Tổng quan đề tài 10% Chương 2: Khảo sát phân tích yêu cầu 30% Chương 3: Phần mềm phần cứng sử dụng thiết kế xây dựng 50% Chương 4: Kết luận kiến nghị 10% 4- GIÁO VIÊN HƯỚNG DẪN TỪNG PHẦN Phần Họ tên giáo viên hướng dẫn Chương 1: Tổng quan đề tài PGS.TS Nguyễn Trọng Thắng Chương 2: Khảo sát phân tích yêu cầu PGS.TS Nguyễn Trọng Thắng Chương 3: Phần mềm phần cứng sử dụng thiết kế xây dựng PGS.TS Nguyễn Trọng Thắng Chương 4: Kết luận kiến nghị PGS.TS Nguyễn Trọng Thắng 5- NGÀY GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Ngày tháng năm 20 Trưởng Bộ môn (Ký ghi rõ họ tên) Giáo viên hướng dẫn (Ký ghi rõ họ tên) Nhiệm vụ Đồ án tốt nghiệp Hội đồng thi tốt nghiệp Khoa thông qua Ngày .tháng .năm 20 Chủ tịch Hội đồng (Ký ghi rõ Họ tên) Sinh viên hoàn thành nộp Đồ án tốt nghiệp cho Hội đồng thi ngày tháng năm 20 Sinh viên làm Đồ án tốt nghiệp (Ký ghi rõ Họ tên) LỜI CAM ĐOAN Tác giả xin cam đoan Đồ án tốt nghiệp/ Khóa luận tốt nghiệp thân tác giả Các kết Đồ án tốt nghiệp/Khóa luận tốt nghiệp trung thực, không chép từ nguồn hình thức Việc tham khảo nguồn tài liệu (nếu có) thực trích dẫn ghi nguồn tài liệu tham khảo quy định Tác giả ĐATN/KLTN Nguyễn Văn Tính i LỜI CÁM ƠN Để hồn thành đồ án tốt nghiệp này, nỗ lực cố gắng thân, em nhận nhiều giúp đỡ hỗ trợ từ tất người Lời cảm ơn đầu tiên, em xin gửi tới PGS.TS Nguyễn Trọng Thắng Ts Ngô Quang Vĩ Trong năm học qua, em có hội học tập thầy qua số môn học thầy người hướng dẫn em đồ án Nhờ có giúp đỡ tận tình thầy trình làm đồ án suốt q trình học tập, em có nhiều kiến thức hơn, định hướng có kinh nghiệm quý giá ngành học Em xin gửi lời cảm ơn tới quý thầy cô Trường Đại học Thuỷ Lợi truyền tải nhiều kiến thức bổ ích với ngành học mà em lựa chọn Em chúc thầy cô có sức khỏe, hạnh phúc có thêm thật nhiều nhiệt huyết để vững bước chèo lái thuyền trồng người đến bờ bến thành công Đồng thời em muốn gửi lời cảm ơn tới gia đình – người yêu thương, động viên em suốt thời gian học tập Lời cảm ơn cuối cùng, em xin gửi tới người bạn học đồng hành giúp đỡ em suốt trình học tập làm đồ án Em xin chúc tất người thật nhiều sức khỏe, thành công ! ii MỤC LỤC DANH MỤC CÁC HÌNH ẢNH v DANH MỤC BẢNG BIỂU vi DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ vii CHƯƠNG TỔNG QUAN ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Mục tiêu phạm vi đề tài 1.3 Định hướng giải pháp 1.4 Bố cục đồ án CHƯƠNG KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU 2.1 Khảo sát trạng 2.2 Tổng quan chức 2.2.1 Biểu đồ tổng quan 2.2.2 Biểu đồ quy trình đăng nhập 2.2.3 Biểu đồ phân rã quản lý hồ sơ nhân viên .5 2.2.4 Biểu đồ phân rã quản lý thời gian làm việc 2.2.5 Biểu đồ phân rã xem thông tin điểm danh 2.2.6 Biểu đồ phân rã xuất báo cáo 2.2.7 Biểu đồ phân rã đổi mật 2.3 Đặc tả chức 2.3.1 Đặc tả use case đăng nhập 2.3.2 Đặc tả use case xem danh sách hồ sơ nhân viên 10 2.3.3 Đặc tả use case tìm kiếm hồ sơ nhân viên 11 2.3.4 Đặc tả use case thêm hồ nhân viên 12 2.3.5 Đặc tả use case sửa hồ sơ nhân viên 13 2.3.6 Đặc tả use case xoá hồ sơ nhân viên 14 2.3.7 Đặc tả use case cập nhật thời gian làm việc 15 2.3.8 Đặc tả use case xem chi tiết điểm danh nhân viên 16 2.3.9 Đặc tả use case xem danh sách điểm danh theo tháng 17 2.3.10 Đặc tả use case xem danh sách lịch sử xuất báo cáo 18 2.3.11 Đặc tả use case xuất báo cáo 19 iii 2.3.12 Đặc tả use case đổi mật 20 2.3.13 Đặc tả use case điểm danh 21 CHƯƠNG PHẦN MỀM, PHẦN CỨNG SỬ DỤNG VÀ THIẾT KẾ, XÂY DỰNG HỆ THỐNG 23 3.1 Thiết kế giải pháp nhận diện khuôn mặt 25 3.1.1 Tổng quan bước tốn nhận diện khn mặt 25 Q trình phân loại khn mặt 25 3.1.2 Lựa chọn cơng cụ thuật tốn cho tốn nhận diện khn mặt 27 3.1.3 Lựa chọn phần mềm cài hệ điều hành cho Raspberry 27 3.1.4 Lựa chọn giao thức để điều khiển Raspberry qua laptop 35 3.2 Thiết kế, xây dựng hệ thống 39 3.2.1 Thiết kế ứng dụng 39 3.2.2 Minh hoạ chức .39 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 43 4.1 Kết luận 43 4.2 Kiến nghị .43 TÀI LIỆU THAM KHẢO 44 iv DANH MỤC CÁC HÌNH ẢNH Hình Biểu đồ tổng quan Hình Biểu đồ đăng nhập Hình Biểu đồ phân rã quản lý hồ sơ nhân viên Hình Biểu đồ phân rã quản lý thời gian làm việc Hình Biểu đồ phân rã xem thông tin điểm danh Hình Biểu đồ phân rã xuất báo cáo Hình Biểu đồ phân rã đổi mật Hình Quá trình tạo tập liệu phân loại khn mặt 25 Hình Q trình nhận diện khn mặt 26 Hình 10 Tiến hành cài phần mềm 28 Hình 11 Giao diện phần mềm 29 Hình 12 Cài hệ điều hành phần mềm cung cấp 29 Hình 13 Các hệ điều hành khác .30 Hình 14 Các hệ điều hành ubuntu 30 Hình 15 Các phiên hệ điều hành Manjaro ARM MATE 31 Hình 16 Các phiên hệ điều hành Apertis 31 Hình 17 Phiên hệ điều hành RISC OS 31 Hình 18 Chọn CHOOSE STORAGE để cấu hình 32 Hình 19 Chọn thiết bị lưu trữ 32 Hình 20 Click để mở Advanced options .33 Hình 21 Cấu hình SSH 33 Hình 22 Cấu hình Wifi 34 Hình 23 Chọn mã quốc gia WiFi 34 Hình 24 Sau cấu hình xong chọn Write 35 Hình 25 Quá trình cài hệ điều hành .35 Hình 26 Cơ chế hoạt động giao thức SSH 36 Hình 27 Giao diện phần mềm 37 Hình 28 Địa WIFI 37 Hình 29 Raspberry kết nối mạng 38 Hình 30 Kết nối tới Raspberry 38 Hình 31 Đã kết nối tới Raspberry 39 Hình 32 Mơ hình triển khai ứng dụng 39 Hình 33 Ảnh chụp hình đăng nhập 40 Hình 34 Ảnh chụp hình quản lý hồ sơ nhân viên 40 Hình 35 Ảnh chụp hình thêm sinh viên 41 Hình 36 Ảnh chụp hình thiết lập thời gian làm việc .41 Hình 37 Ảnh chụp hình điểm danh chi tiết sinh viên 42 Hình 38 Ảnh chụp hình danh sách xuất báo cáo 42 v DANH MỤC BẢNG BIỂU Bảng Kịch đăng nhập Bảng Kịch xem danh sách hồ sơ nhân viên 10 Bảng Kịch tìm kiếm hồ sơ nhân viên 11 Bảng Kịch thêm hồ sơ nhân viên 12 Bảng Kịch sửa hồ sơ nhân viên 13 Bảng Kịch xoá hồ sơ nhân viên 14 Bảng Kịch cập nhật thời gian làm việc 15 Bảng Kịch xem chi tiết điểm danh nhân viên 16 Bảng Kịch xem danh sách điểm danh theo tháng 17 Bảng 10 Kịch xem danh sách lịch sử xuất báo cáo 18 Bảng 11 Kịch xuất báo cáo 19 Bảng 12 Kịch đổi mật 20 Bảng 13 Kịch điểm danh nhân viên 21 vi Hình 15 Các phiên hệ điều hành Manjaro ARM MATE Hình 16 Các phiên hệ điều hành Apertis Hình 17 Phiên hệ điều hành RISC OS 31 Sau cài hệ điều hành mong muốn, tiến hành cấu hình Wifi, SSH Hình 18 Chọn CHOOSE STORAGE để cấu hình Hình 19 Chọn thiết bị lưu trữ 32 Hình 20 Click để mở Advanced options Hình 21 Cấu hình SSH Ở chọn Enable SSH, sau thiết lập mật cho nó(123qweA@) 33 Hình 22 Cấu hình Wifi Nhập SSID WIFI Password wifi muốn kết nối Hình 23 Chọn mã quốc gia WiFi Cấu Hình hồn tất ấn Save 34 Hình 24 Sau cấu hình xong chọn Write Hình 25 Q trình cài hệ điều hành Sau hồn tất cài đặt hệ điều hành cho Raspberry, tiến hành cài công nghệ sử dụng 3.2.4 Lựa chọn giao thức để điều khiển Raspberry qua laptop Hiện có nhiều giao thức người dùng ưa chuộng: SSH, HTTP, HTTPS 35 Trong đề tài lần em, em chọn sử dụng giao thức SSH 3.2.4.1 Giao thức SSH gì? SSH cịn gọi Secure Shell, giao thức cho phép người dùng điều khiển từ xa, kiểm soát chỉnh sửa Server thơng qua Internet Secure Shell cung cấp thuật tốn đề chứng thực người dùng, chuyển Input tới Host từ Client trả kết cho khách hàng Giao thức thay cho trình Telnet khơng có mã hóa, kết hợp sử dụng thêm kỹ thuật Cryptographic để đảm bảo tất hoạt động Server từ xa diễn tình trạng mã hóa Giao thức Secure Shell liên kết với máy chủ đảm nhiệm nhiều chức hệ thống điều khiển Chẳng hạn hỗ trợ truy cập từ xa vào hệ thống, cho phép dịch chuyển File an toàn, thực thi lệnh bảo mật, quản lý thành phần hạ tầng mạng… Chương trình tiền thân giao thức Secure Shell Telnet vốn có tính bảo mật thấp SSH khắc phục vấn đề 3.2.4.2 Cơ chế hoạt động giao thức SSH Hình 26 Cơ chế hoạt động giao thức SSH 3.2.4.3 Lựa chọn phần mềm Có nhiều phần mềm để kết nối với thiết bị giao thức SSH Với đề tài đồ án lần em sử dụng phần mềm Xshell 36 Hình 27 Giao diện phần mềm 3.2.4.4 Cách kết nối với Raspberry từ laptop Đầu tiên cần kiểm tra Raspberry có kết nối mạng chưa, cách vào cửa sổ Terminal laptop gõ từ khố ipconfig cài thêm phần mềm nmap Hình 28 Địa WIFI Sau nhìn thấy địa dòng Default Gateway Gõ lệnh nmap + địa Default Gateway + /24 37 Hình 29 Raspberry kết nối mạng Sau kiểm tra có kết nối mạng, vào phần mềm XShell gõ dòng lệnh để kết nối tới Raspberry Hình 30 Kết nối tới Raspberry Nhập password lúc cấu hình đặt(123qweA@) để tiến hành kết nối 38 Hình 31 Đã kết nối tới Raspberry 3.3 Thiết kế, xây dựng hệ thống 3.3.1 Thiết kế ứng dụng Hình 32 Mơ hình triển khai ứng dụng Mọi yêu cầu đến trang web qua Nginx, với tài nguyên tĩnh build từ mã nguồn ReactJs, Nginx trả file yêu cầu, file mount trực tiếp vào container này, với request với prefix /api/v1 Nginx forward sang API Server chạy container khác 3.3.2 Minh hoạ chức Một số ảnh chụp hình sản phẩm 39 Hình 33 Ảnh chụp hình đăng nhập Hình 34 Ảnh chụp hình quản lý hồ sơ nhân viên 40 Hình 35 Ảnh chụp hình thêm sinh viên Hình 36 Ảnh chụp hình thiết lập thời gian làm việc 41 Hình 37 Ảnh chụp hình điểm danh chi tiết sinh viên Hình 38 Ảnh chụp hình danh sách xuất báo cáo 42 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 4.1 Kết luận Đồ án tích hợp tính nhận diện khuôn mặt vào xây dựng phần mềm quản lý điểm danh Phần mềm hoàn thành xây dựng tính yêu cầu phân tích Trong suốt trình thực ĐATN, sinh viên có thêm kiến thức, kinh nghiệm phát triển triển khai ứng dụng Web, có thêm kiến thức xử lý nhận diện khuôn mặt Bên cạnh phần mềm cịn tính chưa có, ứng dụng nhận diện khuôn mặt mức bản, chưa áp dụng thuật toán tối ưu để hoạt động hiệu triển khai phần mềm với quy mô người dùng lớn Ngồi ra, chưa có thực nghiệm tính hiệu triển khai thực tế với số lượng người dùng thật nhiều 4.2 Kiến nghị Để hoàn thiện chức làm phần mềm, cần đưa vào thực nghiệm để nhận góp ý sửa lỗi phát sinh, ngồi nhận góp ý để bổ sung thêm tính mà người dùng cần Trước mắt góc nhìn sinh viên, cần nâng cấp phần mềm thêm số chức năng, như: Bổ sung tính giúp tích hợp nhanh với hệ thống quản lý mà doanh nghiệp, trường học sử dụng giúp giảm bớt thao tác thêm hồ sơ nhân viên Xây dựng thêm hệ thống gửi báo cáo tới email sinh viên thông tin điểm danh hàng tuần/hàng tháng để sinh viên kiểm tra có sai sót, sinh viên chủ động kiểm tra thơng qua phần mềm Hiện phần mềm hỗ trợ quản trị viên mà chưa có nhân viên Xây dựng hệ thống quản lý nghỉ phép, yêu cầu cập nhật lại thơng tin điểm danh có sai sót để sinh viên có nhu cầu sử dụng thơng qua phần mềm thực Ngồi ra, cần xây dựng phát triển hệ thống nhận diện khuôn mặt đáp ứng hiệu với lượng người dùng quy mô lớn 43 TÀI LIỆU THAM KHẢO [1] Olli-Pekka Heinisuo, Wrapper package for OpenCV python bindings, https://pypi.org/project/opencv-python/, last visited December 2022 [2] Adam Geitgey, Recognize faces from Python or from the command line, https://pypi.org/project/face-recognition/, last visited December 2022 [3] Jordan Walke, ReactJs, https://reactjs.org/docs/getting-started.html, last visited December 2022 [4] Igor Vladimirovich Sysoev, Nginx, http://nginx.org/en/docs/, last visited December 2022 [5] Raspberry Pi, https://www.raspberrypi.com/documentation/computers/getting-started.html, last visited December 44 45 ... 60TĐH1 Hệ đào tạo: Đại học quy Ngành: Kỹ Thuật Điều Khiển Và Tự Động hóa Khoa: Điện - Điện Tử 1- TÊN ĐỀ TÀI : NGHIÊN CỨU XÂY DỰNG HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT TRÊN NỀN TẢNG WEB 2-... điểm danh khn mặt Tính điểm danh: từ thông tin đưa lên hệ thống, nhân viên xác nhận thời gian đến ngày làm việc đơn giản cách đứng trước camera để hệ thống nhận diện Tính xem thơng tin điểm danh. .. 3.2 Thiết kế giải pháp nhận diện khuôn mặt 3.2.1 Tổng quan bước tốn nhận diện khn mặt Q trình phân loại khuôn mặt Tập ảnh đầu vào File kết Phát khuôn mặt Tiền xử lý khuôn mặt Tạo tập liệu huấn