1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án điểm danh sinh viên bằng nhận diện gương mặt

74 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Điểm Danh Sinh Viên Bằng Nhận Diện Gương Mặt
Người hướng dẫn GV. Phạm Thị Quỳnh Trang
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Khoa Điện Tử
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 74
Dung lượng 5,97 MB
File đính kèm đồ án điểm danh sinh viên bằng nhận diện gương mặt.rar (8 MB)

Nội dung

đồ á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 3

gian 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 4

LỜ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 5

2.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 6

Phầ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 7

GUI

Trang 8

Bả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 9

Hì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 10

Hì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 12

MỞ ĐẦ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 13

Hì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 15

14/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 16

CHƯƠ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 17

Windows, 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 18

cao 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 19

Hì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 20

1.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 21

Hì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 22

Hì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 24

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 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 25

tin 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 27

như: Đă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 28

2.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 29

Hì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 31

Hì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 32

Hì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 33

Hì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 34

Hì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 37

Hì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

Ngày đăng: 06/03/2024, 17:49

TỪ KHÓA LIÊN QUAN

w