đồ án hệ thống điểm danh sinh viên bằng nhận diện gương mặt. Hệ thống điểm danh bằng nhận diện khuôn mặt thường được tích hợp trong hệ thống quản lí giáo dục, doanh nghiệp để cung cấp giải pháp tự động và hiệu quả cho việc điểm danh và quản lí hiện vật. Công nghệ nhận diện khuôn mặt đã và đang được phát triển liên tục để cải thiện độ chính xác, tốc độ và tiện ích.
Trang 3gian tiếp xúc với thực tế chưa nhiều, vì vậy bài báo cáo đồ án của nhóm emkhông thể tránh khỏi nhiều thiếu sót Em rất mong có được những ý kiếnđóng góp chân thành của các Thầy Cô để cho kiến thức trong cuốn báo cáonày được hoàn thành hơn.
Em xin chân thành cảm ơn!
Hà Nội, ngày 25 tháng 12 năm 2023
Nhóm sinh viên
Trang 4LỜI CẢM ƠN I DANH MỤC CÁC KÝ HIỆU IV DANH MỤC CÁC TỪ VIẾT TẮT V DANH MỤC BẢNG BIỂU VI DANH MỤC HÌNH ẢNH VII
MỞ ĐẦU 1
1 Giới thiệu 1
2 Lý do chọn đề tài 2
3 Nội dung nghiên cứu 2
4 Phân chia công việc nhóm 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5
1.1 Tổng quan về hệ thống 5
1.2 Ngôn ngữ lập trình Python 5
1.3 Các thư viện mã nguồn mở 6
1.4 Bài toán nhận đạng khuôn mặt 7
1.4.1 Tìm khuôn mặt 8
1.4.2 Vị trí của khuôn mặt 9
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ĐIỂM DANH SINH VIÊN BẰNG NHẬN DIỆN GƯƠNG MẶT 12
2.1 Mục đích và yêu cầu 12
2.1.1 Mục đích 12
2.1.2 Yêu cầu 12
2.2 Thiết kế hệ thống 14
2.2.1 Các tác nhân của hệ thống 14
2.2.2 Biểu đồ usecase đăng nhập 15
2.2.3 Biểu đồ use case thông tin sinh viên 16
2.2.4 Biểu đồ use case thông tin giáo viên 18
2.2.5 Biểu đồ use case thông tin lớp học 21
2.2.6 Biểu đồ use case điểm danh sinh viên bằng nhận diện gương mặt .27 2.2.7 Biểu đồ use case xem danh sách điểm danh 28
2.3 Thiết kế cơ sở dữ liệu 29
2.3.1 Cơ sở dữ liệu “SinhVien” 29
Trang 52.4.2 Phác thảo giao diện “Sinh viên” 32
2.4.3 Phác thảo giao diện “Giáo viên” 32
2.4.4 Phác thảo giao diện “Lớp học” 33
2.4.5 Phác thảo giao diện “Điểm danh sinh viên” 34
2.4.6 Phác thảo giao diện “Danh sách điểm danh” 34
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC 36
3.1 Giao diện chương trình 36
3.1.1 Giao diện đăng nhập 36
3.1.2 Giao diện chính của hệ thống 36
3.1.3 Giao diện “Thông tin sinh viên” 37
3.1.4 Giao diện “Thông tin giáo viên” 38
3.1.5 Giao diện “Thông tin lớp học” 38
3.1.6 Giao diện “Điểm danh sinh viên” 39
3.1.7 Giao diện “Danh sách điểm danh sinh viên” 39
3.2 Kiểm thử chức năng 40
3.2.1 Kiểm thử chức năng đăng nhập 40
3.2.2 Kiểm thử chức năng điểm danh sinh viên 50
3.2.3 Kiểm thử chức năng Lớp học 52
3.2.4 Kiểm thử chức năng Danh sách điểm danh 56
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60
1 Kết quả đạt được 60
2 Kế quả chưa đạt được 60
3 Hướng phát triển 60
TÀI LIỆU THAM KHẢO 61
Trang 6Phần tử mô hình Ký hiệu Ý nghĩa
Tác nhân
(Actor)
Một người / nhómngười hoặc một thiết
bị hoặc hệ thống tácđộng hoặc thao tácđến chương trình
Use case
Biểu diễn một chứcnăng xác định của
từ use case kia
Trang 7GUI
Trang 8Bảng 2.2 Cơ sở dữ liệu “GiaoVien” 29
Bảng 2.3 Cơ sở dữ liệu “Khoa” 30
Bảng 2.4 Cơ sở dữ liệu “MonHoc” 30
Bảng 2.5 Cơ sở dữ liệu “LopHoc” 30
Bảng 2.6 Cơ sở dữ liệu “DiemDanh” 31
Bảng 3.1 Kế hoạch và kết quả test case chức năng đăng nhập 40
Bảng 3.2 Kế hoạch và kết quả test case chức năng cập nhật thông tin sinh viên 43 Bảng 3.3 Kế hoạch và kết quả test case chức năng truy cập danh sách giáo viên.46 Bảng 3.4 Kế hoạch và kết quả test case chức năng điểm danh sinh viên 50 Bảng 3.5 Kế hoạch và kết quả test case chức năng truy cập danh sách giáo viên.53 Bảng 3.6 Kế hoạch và kết quả test case chức năng truy cập danh sách giáo viên.56
Trang 9Hình 1.5 68 điểm mốc chúng ta sẽ xác định trên mỗi khuôn
mặt 10
Hình 2.1 Sơ đồ khối thực hiện chương trình 14
Hình 2.2 Biểu đồ Use case đăng nhập 15
Hình 2.3 Biểu đồ Use case thêm sinh viên 16
Hình 2.4 Biểu đồ Use case cập nhật sinh viên 17
Hình 2.5 Biểu đồ Use case xóa sinh viên 18
Hình 2.6 Biểu đồ Use case thêm giáo viên 19
Hình 2.7 Biểu đồ use case cập nhật thông tin giáo viên 20
Hình 2.8 Biểu đồ use case xóa thông tin giáo viên 21
Hình 2.9 Biểu đồ use case thêm môn học 22
Hình 2.10 Biểu đồ use case xóa môn học 22
Hình 2.11 Biểu đồ use case thêm môn học 23
Hình 2.12 Biểu đồ use case xóa lớp học 24
Hình 2.13 Biểu đồ use case thêm lớp học cho giáo viên 25
Hình 2.14 Biểu đồ use case xóa lớp học cho giáo viên 25
Hình 2.15 Biểu đồ use case thêm lớp học cho sinh viên 26
Hình 2.16 Biểu đồ use case xóa lớp học cho sinh viên 27
Hình 2.17 Biểu đồ use case điểm danh sinh viên bằng nhận diện gương mặt 27
Hình 2.18 Biểu đồ use case xem danh sách điểm danh 28
Hình 2.19 Phác thảo giao diện đăng nhập 31
Hình 2.20 Phác thảo giao diện sinh viên 32
Hình 2.21 Phác thảo giao diện giáo viên 33
Hình 2.22 Phác thảo giao diện lớp học 33
Hình 2.23 Phác thảo giao diện điểm danh sinh viên 34
Trang 10Hình 3.2 Giao diện sau khi đăng nhập thành công 37
Hình 3.3 Giao diện cập nhật và thêm thông tin sinh viên 37
Hình 3.4 Giao diện cập nhật và thêm thông tin giáo viên 38
Hình 3.5 Giao diện thông tin lớp học 39
Hình 3.6 Giao diện điểm danh sinh viên theo lớp học 39
Hình 3.7 Giao diện Danh sách điểm danh sinh viên theo ngày và lớp học 40
Hình 3.8 Giao diện hiển thị cảnh báo lỗi khi đăng nhập 41
Hình 3.9 Hiển thị thông báo lỗi khi nhập sai tên đăng nhập hoặc mật khẩu 42
Hình 3.10 Hiển thị thông báo khi đăng nhập thành công 43
Hình 3.11 Hiển thị thông báo “Nhập mã sinh viên” 44
Hình 3.12 Hiển thị thông báo “Nhập đầy đủ thông tin” 45
Hình 3.13 Hiển thị thông báo “Nhập đầy đủ thông tin” 45
Hình 3.14 Hiển thị “Chụp ảnh thành công” 46
Hình 3.15 Test case 1 kiểm thử chức năng truy cập danh sách giáo viên 48
Hình 3.16 Test case 2 kiểm thử chức năng truy cập danh sách giáo viên 49
Hình 3.17 Test case 3 kiểm thử chức năng truy cập danh sách giáo viên 50
Hình 3.18 Hiển thị “Chọn lớp điểm danh” 51
Hình 3.19 Hiển thị webcam và danh sách sinh viên 52
Hình 3.20 Thông báo chưa nhập mã sinh viên 52
Hình 3.21 Test case 1 kiểm thử chức năng truy cập danh sách lớp học 54
Hình 3.22 Test case 2 kiểm thử chức năng truy cập danh sách lớp học 55
Hình 3.23 Test case 3 kiểm thử chức năng truy cập danh sách lớp học 56
Hình 3.24 Test case 1 kiểm thử chức năng truy cập danh sách điểm danh 57
Trang 12MỞ ĐẦU
1 Giới thiệu
Trong thời đại trí tuệ nhân tngày càng phát triển nơi công nghệ đang
phát triển với tốc độ ánh sáng, nhiều những cơ hội và con đường được tạo ratrước mắt nhân loại Phân tích khuôn mặt, nhận dạng khuôn mặt là một trongnhững con đường mang lại hiệu quả tích cực và có lợi cho xã hội Trongnhiều năm, những công nghệ này đã phát triển một cách triệt để thông qua trítuệ nhân tạo và công nghệ học máy Thị giác máy tính cũng là lĩnh vực mà ở
đó công nghệ rất có ích Việc sử dụng các công nghệ như vậy là nhu cầu trongcuộc sống hàng ngày của chúng ta ngày nay
Một trong những vấn đề nổi bật nhất của thị giác máy tính hệ thống lànhận dạng khuôn mặt Nhiều diễn biến mà diễn ra trong những năm gần đâybởi nhiều gã khổng lồ công nghệ là một trong những những tuyên bố ủng hộnhất Vào tháng 9 năm 2017 Apple.inc đó là một trong những công ty đột phánhất trên thế giới, trong sự kiện WWDC đã công bố công nghệ Face ID Theocách tương tự, Facebook cũng giới thiệu công nghệ trong nền tảng truyềnthông xã hội của mình cả trên Instagram và Facebook nơi khuôn mặt của bạn
bè được tự động gắn thẻ trong khi đăng một bức ảnh của họ Facebook báocáo rằng hiệu quả của thuật toán là khoảng 93% Việc nghiên cứu và pháttriển những vấn đề như vậy đã dẫn đến sự phát triển của nhiều thư viện vàAPI khác nhau để nhận dạng khuôn mặt Những thư viện này có thể được sửdụng theo yêu cầu để giải quyết vấn đề cần thiết của chúng ta Phát triểnnhiều thư viện và nhiều API khác bằng cách sử dụng các công nghệ khácnhau và trong nhiều chương trình được hỗ trợ ngôn ngữ được thực hiện.Nhiều công nghệ cũng tìm thấy một hoặc nhiều khuôn mặt trong hình ảnhnhất định theo mô hình nhất định Phát triển có rất nhiều con đường cho mộtvấn đề có thể gây ra nhầm lẫn khi lựa chọn lời giải cho bài toán đã cho
Trang 13Hình ảnh minh họa
Việc lựa chọn đề tài Hệ thống điểm danh bằng nhận diệngương mặt hướng tới mục tiêu kết hợp những công nghệ hiệnđại ứng dụng vào trong môi trường học đường Có cơ hội họctập và nghiên cứu lĩnh vực trí tuệ nhân tạo đang rất nóngbỏng hiện nay Việc điểm danh bằng gương mặt cũng giúptăng sự xác thực cho việc điểm danh, tránh những trường hợpkhông trung thực trong điểm danh Công nghệ xây dựng đơngiản và dễ sử dụng cho người
Đề tài chủ yếu sử dụng thư viện face_recognition củapython để nhận dạng gương mặt Thuật toán trong thư việnchủ yếu sử dụng các gradient định hướng biểu đồ để tìm cáckhuôn mặt, ước lượng các mốc mặt, máy vector hỗ trợ nhậndạng khuôn mặt và mạng tích chập sâu để so sánh nhữngkhuôn mặt
3 Nội dung nghiên cứu
- Xây dựng một dự án phần mềm ứng dụng nhận dạng
khuôn mặt
- Tìm hiểu về thư viện OpenCv
Trang 14- Nghiên cứu phương pháp trích chọn đặc trưng HOG
(Histogram of Oriented Gradients)
- Tìm hiểu các phương pháp xác định khuôn mặt (Face
Detection)
- Nghiên cứu phương pháp phát hiện và nhận diện gương mặt của thư viện face_recognition Python
- Tìm hiểu xây dựng giao diện GUI bằng thư viện Tkinter
- Xây dựng cơ sở dữ liệu với MongoDB
4 Phân chia công việc nhóm
# Công việc –
Task
Ngày bắt đầu
dự kiến – Start date
Ngày bắt đầu thực
tế - Actu
al start date
Ngày kết thúc
dự kiến – Targ
et date
Ngày kết thúc thực
tế - Actu
al end date
Trạng thái –
Status (On-go / Done / Late/
Pending)
Người thực hiện –
Trang 1514/10/2023 Hoàn thành
Nguyễn BáTùng
16/10/2023
20/10/2023
21/10/2023 Hoàn thành
Nguyễn Văn Duy, Đinh Thị Quỳnh Hoa
15/11/2022 Hoàn thành
Nguyễn Văn Duy, Nguyễn BáTùng
20/10/2023
21/11/2023 Hoàn thành
Nguyễn BáTùng
7 Chạy kiểm thử chương trình 22/11
/2023 1/12
Đang thựchiện
Nguyễn BáTùng
8 Hoàn thành báo
cáo
01/12/2023 15/12
Đang thựchiện
Nguyễn BáTùng, ĐinhThị Quỳnh Hoa
Trang 16CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Trong chương này sẽ tập trung nghiên cứu tìm hiểu về ngônngữ lập trình Python, các kĩ thuật nhận diện cùng với sự hỗ trợcủa thư viện Opencv
1.2 Ngôn ngữ lập trình Python
Python là ngôn ngữ lập trình hướng đối tượng bậc cao,dùng để phát triển website và nhiều ứng dụng khác nhau.Hiện nay, python đang được sử dụng rất rộng rãi trong cácứng dụng về trí tuệ nhân tạo, học máy, học sâu Python đượctạo ra bởi Guido và Rossum và được phát triển trong một dự
án mã nguồn mở
Với cú pháp cực kì đơn giản và dễ hiểu, dễ sử dụng,Python là sự lựa chọn hoàn hảo cho những ai lần đầu tiên học
Trang 17Windows, MacOS, Linux,
Python có một cộng đồng lớn và tích cực, là nguồn hỗ trợquan trọng khi gặp vấn đề về mã hóa Python là ngôn ngữđược lựa chọn cho việc triển khai trí tuệ nhân tạo với nhiềuthuật toán sẵn có Hỗ trợ cho các gói xác định trước giảm độphức tạp lập trình và “kiểm tra khi code” giúp giảm số lượng
mã viết
1.3 Các thư viện mã nguồn mở
Mục này sẽ giới thiệu về các thư viện mã nguồn mở được
sử dụng trong đề tài:
Thư viện OpenCV:
OpenCV viết tắt của Open Source Computer Vision đượcxem là một trong những thư viện mã nguồn mở hàng đầu choviệc xử lý ảnh theo thời gian thực OpenCV chính thức được ramắt đầu tiên vào năm 1999, OpenCV là thư viện mã nguồn
mở miễn phí cho cả học thuật và thương mại Thư viện có hơn
2500 thuật toán được tối ưu hóa
OpenCV hỗ trợ đa nền tảng gồm Windows, Linux, Mac OS,iOS và Android OpenCV hỗ trợ ngôn ngữ lập trình C/C++,Python và Java OpenCV được viết bằng C / C ++ và tích hợpOpenCL
Thư viện OpenCV Dlib:
Dlib là một công cụ C++ hiện đại với các thuật toán họcmáy và công cụ để phát triển phần mềm phức tạp trong C++ , đặc biệt hữu ích trong nhiều lĩnh vực như robot, thiết bịnhúng, điện thoại di động và môi trường máy tính hiệu suất
Trang 18cao Bản quyền mã nguồn mở giúp người dùng sử dụng miễnphí
Dlib là một phần của thư viện OpenCV, chủ yếu được sửdụng cho việc xác định khuôn mặt bằng thuật toán HOG( Histogram of Oriented Gradients) và SVM( Support VectorMachine), với khả năng chạy nhanh và ứng dụng trong thờigian thực Dlib cũng hỗ trợ các hàm xác định khuôn mặt dựatrên mạng CNN( Convolutional Neural Network)
Thư viện Face-recognition:
Thư viện face-recognition là một thư viện dùng để nhậndiện khuôn mặt bằng ngôn ngữ lập trình Python Face-recognition sử dụng thư viện dlib, một thư viện xử lí hình ảnh
và học máy, để phát hiện và xác định các đặc trưng củakhuôn mặt, so sánh và nhận dạng các khuôn mặt khác nhau,huấn luyện các mô hình nhận dạng riêng
Với nhiều ưu điểm như độ chính xác cao và tốc độ nhanh,
dễ cài đặt và sử dụng, không giới hạn số lượng khuôn mặt cầnnhận diện, hỗ trợ nhiều loại hình ảnh và video, có nhiều ví dụ
và tài liệu hướng dẫn Do đó được sử dụng nhiều cho các ứngdụng như chấm công nhân viên, khóa màn hình bằng khuônmặt, tạo bộ lọc và hiệu ứng cho khuôn mặt, phân tích cảmxúc và biểu cảm khuôn mặt, ước lượng được tuổi và giới tính
Trang 19Hình 1.1 Ví dụ sau khi sử dụng thư viện face-recognition
Face Recognition Documentation - Adam Geitgey
1.4 Bài toán nhận đạng khuôn mặt
Những vấn đề sau đây cần được giải quyết trước khi đưa ramột thuật toán cho hệ thống điểm danh
- Tìm khuôn mặt – không nhận diện được khuôn mặt bất kểđầu vào là video từ máy quay hay một video từ đoạnphim truyền hình hoặc bất kỳ video nào
- Vị trí của khuôn mặt – Trong các trường hợp thử nghiệmthực tế, nh chủ yếu thấy rằng khuôn mặt thường bị xoayhoặc không đúng vị trí tức là về phía máy ảnh Mục tiêuchính của thời điểm này sẽ biến bức ảnh thành như vậychụp trực tiếp đối diện với máy ảnh
- Xác định các nét đặc trưng trên khuôn mặt – bước này cóthể được coi là bước chính trong nhận dạng khuôn mặtnơi có những nét độc đáo trên khuôn mặt được thu thập
và lưu trữ dưới dạng có giá trị kỹ thuật số
- Nhận dạng người – dữ liệu nhận được từ video đầu vàođược so sánh muộn hơn với dữ liệu có sẵn, nếu cả hai dữliệu đều giống nhau, chúng tôi sẽ điểm danh
Trang 201.4.1 Tìm khuôn mặt
Bước đầu tiên để phát triển một loại hệ thống điểm danh như vậy bướcchính sẽ là xác định một khuôn mặt từ khung hình nhất định của video Nếubất kỳ khuôn mặt nào vẫn không bị phát hiện hoặc bất kỳ vật thể nào khácđược coi như hệ thống nhóm đang phát triển vẫn không tốt và kết quả sẽ đượctạo ra sẽ là không đạt yêu cầu Vì vậy, để khắc phục vấn đề này người ta sửdụng một trong các thuật toán phổ biến nhất để tìm khuôn mặt trong ảnh đượcphát minh vào năm 2005 bởi Navneet Dalal và Bill Triggs,
Thuật toán hoạt động trên các bước sau đây:
- Để tìm khuôn mặt trong một hình ảnh, chúng ta sẽ bắt đầu bằng cách tạohình ảnh của mình đen trắng vì chúng ta không cần dữ liệu màu để tìmkhuôn mặt:
Hình 1.2 Ảnh của Will Ferrel
Face Recognition Documentation - Adam Geitgey+ Mục tiêu của chúng ta sẽ xem xét từng pixel và xem xét pixel xungquanh của chúng và vẽ mũi tên về phía pixel tối hơn Các quá trìnhtương tự được tiếp tục cho tất cả các pixel Cuối cùng, chúng ta đi đếntình huống trong đó tất cả các pixel đều được thay thế bằng mũi tên.Những mũi tên này được gọi là gradient và chúng hiển thị luồng ánhsáng trong khung
Trang 21Hình 1.3 Phiên bản pixel của hình 1 hiển thị hướng chuyển màu
Face Recognition Documentation - Adam Geitgey+ Chia hình ảnh thành các hình vuông có kích thước 16 x16 pixel và mỗikhối được thay thế bằng hướng mũi tên lớn nhất trong khối đã cho Kếtquả cuối cùng sẽ rất đơn gian biểu diễn của khuôn mặt được chụp trongkhung
+ Sau đó, hình ảnh được so sánh với mẫu HOG (Histogram of OrientedGradients) được trích xuất từ một loạt các khuôn mặt huấn luyện, mẫuphổ biến nhất có mẫu đã biết và được đánh dấu Cái này sẽ giúp đánhdấu các khuôn mặt trong khung hình thu được từ video làm đầu vào
Hình 1.4 Hình ảnh dựa trên HOG được so sánh với HOG được tạo ra từ rất
Trang 22Hình 1.5 68 điểm mốc chúng ta sẽ xác định trên mỗi khuôn mặt.
Hình ảnh này được tạo ra bởi Brandon Amos của CMU, người
làm việc trên Openface.Bây giờ chúng ta đã biết vị trí của miệng và mắt, chúng ta sẽ xoay, chia tỷ lệ,cắt hình ảnh sao cho mắt và miệng ở giữa càng nhiều càng tốt Bằng cáchthực hiện căn giữa khuôn mặt, nó sẽ giúp chúng ta rất nhiều trong bước tiếptheo làm cho nó chính xác và hiệu quả hơn
1.4.3 Xác định đặc trưng của gương mặt
Để giải quyết vấn đề này, chúng ta có thể sử dụng một DCNN (DeepConvolutional Neural Networks), sẽ được đào tạo để xác định 128 số duynhất đặc điểm khuôn mặt
Quá trình đào tạo diễn ra theo các bước dưới đây:
• Tải hình ảnh khuôn mặt đào tạo của một người đã biết
• Tải một hình ảnh khác của cùng một người
• Tải ảnh của một người khácDCNN sẽ điều chỉnh kết quả thu được từ hình ảnh 1 và 2 sao cho 128đặc điểm thu được giống nhau nhất có thể và hình ảnh đó được tải ở bước thứ
3 càng khác càng tốt
1.4.4 Nhận diện gương mặt
Trang 24CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ĐIỂM DANH SINH VIÊN BẰNG
NHẬN DIỆN GƯƠNG MẶT 2.1 Mục đích và yêu cầu
2.1.1 Mục đích
Mục đích của đồ án “Hệ thống điểm danh sinh viên bằngnhận diện gương mặt” là tận dụng công nghệ nhận diệntương mặt để tạo ra một giải pháp hiệu quả và tiện lợi trongviệc quản lý và kiểm soát quá trình điểm danh sinh viên.Đồng thời, đây cũng là một phần của sự đổi mới trong lĩnh vựccông nghệ và quản lý, nhằm nâng cao trải nghiệm và tối ưuhóa quá trình quản lý sinh viên
Mục tiêu của hệ thống này là giảm thiểu hoặc loại bỏhoàn toàn các vấn đề phát sinh từ việc điểm danh truyềnthống, như điểm danh hộ, mất mát dữ liệu, và tăng cườngtính chính xác và độ chính xác của quá trình điểm danh Bằngcách sử dụng nhận diện khuôn mặt, hệ thống sẽ giúp giảmthời gian và công sức cần thiết từ giáo viên, đồng thời cungcấp một cơ sở dữ liệu chính xác về việc có mặt hay khôngmặt của sinh viên trong các buổi học
2.1.2 Yêu cầu
Yêu cầu của hệ thống phải đảm bảo được các chức năng sau:
- Xây dựng được giao diện người dùng: Giao diện dễ thao tác
và bắt mắt để tăng trải nghiệm cho người sử dụng
- Có tính bảo mật:
+ Hệ thống chỉ cho phép người có tài khoản và mật khẩu
có thể đăng nhập được Tránh trường hợp sinh viên bất kìcũng có thể truy cập vào hệ thống điểm danh
+ Tính năng Thêm sinh viên, Giáo viên, Lớp học chỉ cóngười có quyền mới có thể thực hiện được tính năng đó
Trang 25tin của sinh viên Trong chức năng này cũng là chức năng
để đưa những ảnh mã hóa của sinh viên lên database
- Chức năng giáo viên: Có thể thêm-sửa-xóa-cập nhật thôngtin của giáo viên
- Chức năng lớp học: Khi truy cập vào chức năng này sẽ cóthể thêm/ xóa thông tin của môn học, lớp học Xem danhsách các lớp học, môn học Thêm/ xóa lớp học của giáoviên và sinh viên
- Chức năng điểm danh: Điểm danh được đúng sinh viên đó
ở đúng lớp đó Những sinh viên lớp khác sẽ không đượcđiểm danh ở lớp đó
- Chức năng xem danh sách điểm danh: Xem danh sáchđiêm danh theo ngày và theo mã lớp Có thể xuất được fileexcel của danh sách điểm danh Xóa điểm danh của sinhviên
Với các chức năng nêu trên, chương trình được chia thành cácphần sau:
1. Tạo thông tin sinh viên và giáo viên Tạo dữ liệu gươngmặt sinh viên
2. Tạo thông tin môn học và lớp học Thêm lớp học giáoviên và sinh viên
Trang 26- Bước 3: Xử lý ảnh đầu ra, kiểm tra có khớp với dữliệu đã được lưu trước đó hay không.
- Bước 4: Lưu điểm danh
Hình 2.6 Sơ đồ khối thực hiện chương trình
2.2 Thiết kế hệ thống
2.2.1 Các tác nhân của hệ thống
Các tác nhân của hệ thống
STT Tác nhân Ý nghĩa, nhiệm vụ của Actor
trò quan trọng của hệ thống Điểm danh,
là người điều hành, quản lý và theo dõimọi hoạt động của hệ thống
Tác nhân Admin có thể thực hiện được tất
cả các chức năng có trong hệ thống như:Đăng nhập, Đăng ký môn học, thêm vàcập nhật thông sinh viên, thêm và cậpnhật thông tin giáo viên, thêm mật khẩuđăng nhập cho giáo viên, điểm danh, xemdanh sách điểm danh
Trang 27như: Đăng nhập,thêm và cập nhật thôngsinh viên, điểm danh, xem danh sáchđiểm danh.
2.2.2 Biểu đồ usecase đăng nhập
Hình 2.7 Biểu đồ Use case đăng nhập
- Tác nhân: Admin, Giáo viên
- Mô tả khái quát:
+ Admin truy cập vào hệ thống để quản lý và thực hiện các chức năngcủa mình
+ Giáo viên truy cập vào hệ thống thực hiện điểm danh và lấy danh sáchđiểm danh
- Điều kiện đầu vào: Chức năng được bắt đầu khi người dùng muốn đăngnhập vào hệ thống
- Dòng sự kiện chính:
+ Hệ thống yêu cầu nhập tên đăng nhập và mật khẩu
+ Người dùng nhập tên đăng nhập và mật khẩu
+ Hệ thống kiểm tra tên và mật khẩu vừa nhập, nếu đúng sẽ cho phép vào
hệ thống
- Dòng sự kiện phụ:
+ Nếu trong kịch bản chính tên hoặc mật khẩu sai thì hệ thống sẽ báo lỗi.+ Người dùng có thể nhập lại và đăng nhập lại
Trang 282.2.3 Biểu đồ use case thông tin sinh viên
a) Thêm sinh viên
Hình 2.8 Biểu đồ Use case thêm sinh viên
Trang 29Hình 2.9 Biểu đồ Use case cập nhật sinh viên
+ Admin nhập thông tin mã sinh viên
+ Admin nhập thông tin cần cập nhật
+ Admin chụp ảnh sinh viên cần cập nhật Ảnh được chụp từ sinh viên sẽđược encoding và tạo ra một danh sách các vector nhúng tương ứng.Vector nhúng này là một mảng số có chiều dài cố định và đại diện chođặc điểm của khuôn mặt, được sắp xếp một cách đặc biệt để dễ dàng sosánh
Trang 30+ Nhấn nút “Cập nhật”.
+ Hệ thống báo cập nhật thành công
- Dòng sự kiện phụ:
+ Nếu không nhập mã sinh viên thì hệ thống sẽ báo lỗi
+ Hệ thống sẽ thông báo nếu sinh viên không có trên hệ thống
c) Xóa sinh viên
Hình 2.10 Biểu đồ Use case xóa sinh viên
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và xóa thông tin sinh viên hệ thống
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện sinh viên
+ Nếu không nhập mã sinh viên thì hệ thống sẽ báo lỗi
+ Hệ thống sẽ thông báo nếu sinh viên không có trên hệ thống
2.2.4 Biểu đồ use case thông tin giáo viên
a) Thêm giáo viên
Trang 31Hình 2.11 Biểu đồ Use case thêm giáo viên
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và thêm thông tin giáo viên
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện giáo viên
+ Hệ thống sẽ cảnh báo nếu như chưa nhập đủ thông tin
+ Hệ thống sẽ cảnh báo nếu như giáo viên được thêm đã có trên hệthống
b) Cập nhật thông tin giáo viên
Trang 32Hình 2.12 Biểu đồ use case cập nhật thông tin giáo viên
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và cập nhật thông tin giáo viên
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện giáo viên
+ Hệ thống sẽ cảnh báo nếu như chưa nhập mã giáo viên
+ Hệ thống sẽ cảnh báo nếu như giáo viên không tồn tại trên hệ thống
c) Xóa thông tin giáo viên
Trang 33Hình 2.13 Biểu đồ use case xóa thông tin giáo viên
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và xóa thông tin giáo viên
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện giáo viên
- Dòng sự kiện chính:
+ Admin nhập thông tin mã giáo viên
+ Nhấn nút “Xóa”
+ Hệ thống báo xóa thông tin giáo viên thành công
+ Thông tin giáo viên được xóa trên database
- Dòng sự kiện phụ:
+ Hệ thống sẽ cảnh báo nếu như chưa nhập mã giáo viên
+ Hệ thống sẽ cảnh báo nếu như giáo viên không tồn tại trên hệ thống
2.2.5 Biểu đồ use case thông tin lớp học
a) Thêm môn học
Trang 34Hình 2.14 Biểu đồ use case thêm môn học
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và thêm thông tin môn học
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện lớp học
- Dòng sự kiện chính:
+ Admin nhập thông tin mã môn học
+ Nhập thông tin tên môn học
+ Nhấn nút “Thêm môn học”
+ Hệ thống báo thêm môn học thành công
+ Thông tin môn học được thêm trên database
Trang 35+ Thông tin môn học được xóa trên database.
- Dòng sự kiện phụ:
+ Hệ thống sẽ cảnh báo nếu như chưa nhập mã môn học
+ Hệ thống sẽ cảnh báo nếu môn học không tồn tại
c) Thêm lớp học
Hình 2.16 Biểu đồ use case thêm môn học
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và thêm thông tin lớp học
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện lớp học
- Dòng sự kiện chính:
+ Admin nhập thông tin, mã môn học, mã lớp học, thời gian bắt đầu, thờigian kết thúc
+ Nhấn nút “Thêm lớp học”
+ Hệ thống báo thêm lớp học thành công
+ Thông tin lớp học được cập nhật lên database
- Dòng sự kiện phụ:
Trang 36+ Hệ thống sẽ cảnh báo nếu như môn học không tồn tại.
+ Hệ thống cảnh báo khi không nhập đầy đủ thông tin
+ Hệ thống thông báo mã lớp học đã tồn tại nếu lớp học đã có trên hệthống
d) Xóa lớp học
Hình 2.17 Biểu đồ use case xóa lớp học
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và xóa thông tin lớp học
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện lớp học
- Dòng sự kiện chính:
+ Admin nhập thông tin mã môn học và mã lớp học
+ Nhấn nút “Xóa lớp học”
+ Hệ thống báo xóa lớp học thành công
+ Thông tin lớp học được xóa trên database
- Dòng sự kiện phụ:
+ Hệ thống sẽ cảnh báo nếu lớp học không tồn tại
e) Thêm lớp học cho giáo viên
Trang 37Hình 2.18 Biểu đồ use case thêm lớp học cho giáo viên
- Tác nhân: Admin
- Mô tả khái quát: Admin truy cập và thêm lớp học cho giáo viên
- Điều kiện đầu vào: Chức năng được bắt đầu khi Admin truy cập vào hệthống và mở giao diện lớp học
- Dòng sự kiện chính:
+ Admin chọn thông tin mã giáo viên, mã lớp
+ Nhấn nút “Thêm”
+ Hệ thống báo thêm lớp học thành công
+ Thông tin lớp học của giáo viên được thêm trên database
- Dòng sự kiện phụ:
+ Hệ thống sẽ cảnh báo nếu lớp học không tồn tại
+ Hệ thống sẽ cảnh báo nếu giáo viên không tồn tại
f) Xóa lớp học cho giáo viên
Hình 2.19 Biểu đồ use case xóa lớp học cho giáo viên
- Tác nhân: Admin