1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP LỚN Lập trình Python ĐỀ TÀI Hệ thống quản lí sinh viên hỗ trợ giảng viên tích hợp AI

55 5 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 quản lí sinh viên hỗ trợ giảng viên tích hợp AI
Tác giả Nguyễn Thành Chung, Nguyễn Thu Hà, Mai Thị Phượng, Nguyễn Ngọc Quang
Người hướng dẫn ThS. Vũ Minh Mạnh
Trường học Học viện Công nghệ Bưu chính Viễn thông
Thể loại bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 55
Dung lượng 4,75 MB

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA CÔNG NGHỆ THÔNG TIN --- BÀI TẬP LỚN : Lập trình Python ĐỀ TÀI: Hệ thống quản lí sinh viên hỗ trợ giảng viên tích hợp AI Nhóm: 01 PHÂN CÔNG NHI

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN -

BÀI TẬP LỚN : Lập trình Python

ĐỀ TÀI: Hệ thống quản lí sinh viên hỗ trợ giảng viên

tích hợp AI Nhóm: 01

PHÂN CÔNG NHIỆM VỤ NHÓM THỰC HIỆN

Tên các thành viên

Nguyễn Thành ChungNguyễn Thu Hà B22DCCN259Mai Thị Phượng B22DCCN641Nguyễn Ngọc Quang B22DCKH092

Giảng viên hướng dẫn: ThS Vũ Minh Mạnh

Hà Nội 2024

Trang 2

TT Công việc / Nhiệm

Thời hạn hoàn thành

Mức đóng góp

1 Tìm hiểu khái quát

về Moodle LMS

15/9/2024

Trang 3

I MỤC LỤC

LỜI NÓI ĐẦU

Trong thời đại công nghệ thông tin bùng nổ, ứngdụng computer voiersion và trí tuệ nhân tạo (AI) không chỉtạo ra những bước tiến vượt bậc trong nhiều lĩnh vực màcòn đang trở thành nhân tố cốt lõi trong việc cách mạnghóa ngành giáo dục Việc ứng dụng AI và computerversion vào các hệ thống quản lý học tập (LMS - LearningManagement System) mở ra một kỷ nguyên mới, nơi côngnghệ không chỉ hỗ trợ mà còn định hình lại cách giáo dụcđược quản lý và triển khai Sự kết hợp giữa công nghệ hiệnđại và giáo dục truyền thống không chỉ giúp tối ưu hóa cácquy trình quản lý mà còn mang lại trải nghiệm học tập cánhân hóa, hiệu quả và thông minh hơn cho cả giáo viên vàsinh viên

Nhận thức được tiềm năng to lớn này, chúng em đãphát triển một hệ thống quản lý học tập tích hợp AI vàcomputer version với mục tiêu nâng cao chất lượng vàhiệu quả quản lý giáo dục Hệ thống LMS này không chỉđảm nhận các chức năng cơ bản như lưu trữ thông tin sinhviên, theo dõi kết quả học tập, quản lý bài giảng và bàitập, mà còn sử dụng các thuật toán AI tiên tiến để hỗ trợpgiáo viên trong quá trình điểm danh và computer versiontrong quá trình chấm bài

Chúng em xin bày tỏ lòng biết ơn sâu sắc đến giáoviên hướng dẫn ThS Vũ Minh Mạnh, đã tận tình hướngdẫn, định hướng và đồng hành cùng chúng em trong suốtquá trình thực hiện báo cáo Những đóng góp này chính lànguồn động lực to lớn giúp chúng em hoàn thiện báo cáocũng như sản phẩm của mình, với hy vọng sẽ mang lại giátrị thiết thực cho cộng đồng giáo dục và xã hội

Trang 4

I GIỚI THIỆU CHUNG

2.1 Đặt vấn đề

Trong bối cảnh giáo dục ngày càng được chú trọngtrong việc áp dụng công nghệ thông tin để cải thiện chấtlượng và hiệu quả, các hệ thống quản lý học tập (LMS)đang dần trở thành một phần không thể thiếu tại các cơ sởgiáo dục Tuy nhiên, nhiều hệ thống LMS hiện tại vẫn cònnhững hạn chế như thiếu tính cá nhân hóa, giao diện phứctạp, và chưa khai thác hết tiềm năng của trí tuệ nhân tạo(AI) và computer version để nâng cao trải nghiệm ngườidùng

Đối với giáo viên, việc quản lý một lượng lớn thôngtin sinh viên, các bài tập, hay các bài kiểm tra là 1 tháchthức lớn, đặc biệt là việc chấm bài, điểm danh học Vì vậyviệc tích hợp AI và computer version để giải quyết bài toántrên đã một phần nào đó giải quyết được vấn đề

Hệ thống LMS tích hợp AI và computer version khôngchỉ giải quyết các vấn đề quản lý mà còn mở rộng khảnăng tương tác giữa giáo viên và sinh viên, giúp tối ưu hóaquá trình học tập và giảng dạy Đây là bước đi cần thiết đểtheo kịp xu hướng chuyển đổi số trong giáo dục, đặc biệttrong thời kỳ mà học tập trực tuyến và kết hợp đang trởthành xu thế toàn cầu

2.2 Mục tiêu dự án

Dự án phát triển hệ thống quản lý học tập (LMS) tíchhợp AI và computer version được thực hiện với các mụctiêu cụ thể như sau:

Hỗ trợ giáo viên trong quản lý và giảng dạy:

- Tự động hóa các quy trình quản lý sinh viên, từ lưutrữ thông tin cá nhân đến theo dõi tiến độ học tập

Trang 5

- Hỗ trợ thiết kế và phân phối bài giảng một cách tối

ưu, dễ dàng theo dõi kết quả và đánh giá sinh viên

Cải thiện trải nghiệm học tập của sinh viên:

- Cung cấp công cụ hỗ trợ tự học hiệu quả, như bàitập tự động chấm điểm và nội dung bổ sung phù hợp

- Tăng cường sự chủ động và động lực học tập

Tối ưu hóa hệ thống giáo dục:

- Đảm bảo tính hiệu quả, chính xác, và bảo mật caotrong quản lý dữ liệu

- Cung cấp báo cáo chi tiết về kết quả học tập củatừng cá nhân hoặc nhóm, giúp các bên liên quan nắm bắtthông tin một cách trực quan

=> Dự án này không chỉ hướng đến việc giải quyếtcác vấn đề hiện tại mà còn đặt nền móng cho việc pháttriển các giải pháp giáo dục hiện đại, sáng tạo và phù hợpvới sự phát triển không ngừng của công nghệ trong tươnglai

** Đối với giáo viên:

Quản lý Người dùng: Đăng ký, đăng nhập, quản lý

thông tin cá nhân, và phân quyền (giảng viên, học sinh, quản trị viên)

Trang 6

Quản lý Khóa học: Tạo và quản lý các khóa học, bao

gồm mô tả khóa học, hình ảnh, và các tài liệu liên quan

Quản lý Bài học: Tổ chức bài học trong mỗi khóa học,

bao gồm nội dung bài giảng, tài liệu tải lên, trạng thái bài học (Đang học, Hết hạn, Sắp tới)

Quản lý Bài tập: Tạo bài tập, giao cho học viên, theo

dõi tiến độ và chấm điểm bài tập

Quản lý Điểm danh: Hỗ trợ điểm danh học viên trong

mỗi buổi học

Quản lý Bài thi: Tạo và quản lý bài thi, bao gồm thời

gian thi, dạng câu hỏi (trắc nghiệm, tự luận), và chấm điểm tự động

Báo cáo và Thống kê: Theo dõi tiến độ học tập, điểm

số, và tình trạng tham gia khóa học của học viên

Giao diện Người dùng Tối ưu: Cải thiện trải nghiệm

người dùng với các thư viện CSS như Tailwind CSS,

Bootstrap

** Đối với sinh viên:

Đăng ký và Đăng nhập: Cho phép sinh viên tạo tài

khoản và đăng nhập để truy cập nội dung học tập

Xem và Đăng ký Khóa học: Sinh viên có thể duyệt

qua các khóa học, xem chi tiết, và đăng ký tham gia khóa học

Truy cập Nội dung Bài học: Xem các bài học đã đăng

tải trong khóa học, bao gồm video, tài liệu và các tài

nguyên học tập khác

Làm Bài tập và Nộp Bài: Sinh viên có thể làm bài tập

được giao và nộp bài trực tuyến để giảng viên chấm điểm

Xem và Tham gia Bài thi: Tham gia các bài thi của

giáo viên đã tạo

Trang 7

Xem Điểm và Nhận Xét: Xem điểm số và nhận xét từ

giảng viên cho các bài tập và bài thi

Điểm danh bằng Khuôn mặt: Tham gia điểm danh tự

động bằng nhận diện khuôn mặt nếu lớp học có yêu cầu

III THIẾT KẾ VÀ CÀI ĐẶT

Ứng dụng Courses: Quản lý khóa học, tài liệu liên

quan, và việc đăng ký

Trang 8

Ứng dụng Lessons: Quản lý bài giảng thuộc khóa

Trang 11

Giao diện đăng nhập/đăng ký:

 Cho phép người dùng tạo tài khoản mới hoặc đăng nhập vào hệ thống

 Tùy chọn "Ghi nhớ đăng nhập": Cho phép người

dùng lưu thông tin đăng nhập trên thiết bị

 Nút "Đăng Nhập": Nút bấm lớn, màu xanh dương, thu

hút sự chú ý

· ** Liên kết tạo tài khoản:

- Sau khi đăng kí tài khoản hợp lệ Người dung sẽ được

chuyển sang trang đăng nhập Tại đây người dùng sẽ

sử dụng username là email và password đã đăng kí để được đăng nhập vào hệ thống

Trang 12

- Đăng nhập tài khoản thành công, người dùng sẽ được chuyển đến trang chủ chính của trang web.

Trang 13

4.3 Ứng dụng courses

4.3.1 Giáo viên

Cho phép giáo viên tạo mới, cập nhật thông tin, và xóa khóa học trong hệ thống quản lý khóa học

- Với chức năng thêm khóa học: Giáo viên sẽ phải nhập

các phần tiêu đề khóa học, mô tả khóa học, chọn ngày bắt đầu và ngày kết thúc cho khóa học Trong phần ngày bắt đầu và kết thúc, nhóm chúng em đã tích hợp chức năng để giáo viên tránh chọn sai ngày kết thúc sau ngày bắt đầu

Trang 14

Hiển thị các khoá học: Sau khi thêm mới 1 khóa học thành công thì trang web sẽ được chuyển sang phần danh sách các khóa học Tại đây giáo viên có thể xem các khóa học

đã tạo

Trang 15

 Nếu muốn chỉnh sửa thông tin khóa học thì giáo viên

ấn vào phần chỉnh sửa Trang này sẽ hiển thị các thông tin mà giáo viên đã nhập trước đó

Trang 16

 Còn muốn xóa 1 khóa học thì giáo viên chỉ cần ấn vàobiểu tượng thùng rác Sau đó sẽ hiển thị 1 thông báo xác nhận xóa khóa học.

Xem danh sách học sinh trong khóa:

Trang 17

- Tại đây để tham gia vào 1 khóa học, học sinh cần ấn

vào phần xem chi tiết

Trang 18

- Để có thể xem các bài học, và các bài kiểm tra trong

khóa học, người dung bắt buộc phải ấn vào đăng kí khóa học

4.4 Ứng dụng lessons

4.4.1 Giáo viên

 Cho phép giáo viên tạo mới, cập nhật thông tin, và xóa các bài giảng trong hệ thống quản lý khóa học

- Để có thể xem chi tiết và tạo các bài giảng mới Giáo

viên truy cập vào phần chi tiết khóa học của 1 khóa học cụ thể

- Muốn thêm một khóa học mới, giáo viên ấn vào phần

thêm bài học trong phần chi tiết của khóa học

Trang 19

- Giao diện khi tạo 1 bài học mới Tại đây giáo viên sẽ

nhập các thông tin để mô tả khóa học Sau khi nhập xong thì người dùng nhập xong các thông tin thì chọn Lưu Bài học

Trang 20

- Khi các thông tin bài học hợp lệ, bài học sẽ được lưu lại

và trang web sẽ hiển thị ra danh sách các bài học đã tạo trong khóa học tại trang Chi tiết bài học

4.4.2 Học sinh

 Cho phép học sinh xem thông tin của 1 bài học và có thể tham gia bài học để làm bài tập, xem các tài liệu liên quan trong bài giảng

Trang 21

4.5 Ứng dụng Assignment

4.5.1 Giáo viên:

 Cho phép giáo viên tạo mới, cập nhật, xóa bài tập

 Thêm sửa các tài liệu liên quan đến bài tập

 Xem danh sách những sinh viên đã và chưa nộp bài

Trang 22

 Chấm điểm cho bài tập của học sinh kèm nhận xét.

4.4.2 Học sinh

 Cho phép học sinh xem các bài học, làm bài tập, và xem hoặc tải xuống các tài liệu

Trang 23

4.6 Ứng dụng Exam

4.6.1 Giáo viên

 Cho phép giáo viên thêm, sửa, xóa và chấm bài tự động các bài kiểm tra

- Giao diện khi ấn vào phần chi tiết của 1 bài kiểm tra.

- Tại đây sẽ có danh sách các sinh viên đã nộp bài và

danh sách các sinh viên chưa nộp bài kiểm tra, danh sách đáp án của bài kiểm tra đó

Trang 24

- Sau khi ấn vào chức năng chấm bài tất cả thì trang

web sẽ hiện ra danh sách các sinh viên kèm theo điểm.Chức năng chấm bài này được tích hợp computer

version hỗ trợ giáo viên chấm bài thi trắc nghiệm trên giấy

4.6.2 Học sinh

 Cho phép học sinh xem danh sách các bài kiểm tra vàtham gia vào các bài kiểm tra

Chứng năng quét phiếu chấm bài trắc nghiệm.

(Nộp bài tập và kiểm tra trực tuyến.)

Trang 25

Hiển thị kết quả học tập của học sinh: điểm số, tiến

độ khóa học

=> Giáo viên có thể theo dõi và đánh giá kết quả của học sinh

4.5 Ứng dụng assignments – Quản lý bài tập

Thêm, sửa, xoá bài kiểm tra

Trang 26

IV TRIỂN KHAI HỆ THỐNG

5.1 Môi trường phát triển

Hệ điều hành: Windows/MacOS.

Ngôn ngữ lập trình: Python (Django Framework),

JavaScript (front-end)

Cơ sở dữ liệu: SQLite/MySQL/PostgreSQL.

Công cụ hỗ trợ: Visual Studio Code, PyCharm

Thư viện/framework: Django,

 Lệnh khởi chạy server: python manage.py runserver

 Truy cập qua trình duyệt: http://127.0.0.1:8000

5.3 Các đoạn mã chính

Trang 27

5.3.1 Quét phiếu trả lời trắc nghiệm bằng OMR

Optical Mark Reader – Nhận dạng dấu quang học (OMR)

1 Mục đích :

Dùng phương pháp Optical Mark Reader – Nhận dạng dấu quang học (OMR) để quét bài kiểm tra trắc nghiệm của thí sinh sau khi giáo viên nhập đáp án trả về điểm, số báo danh và mã bài thi Sau đó đưa vào hệ thống cơ sở dữliệu SQL

Canny để OpenCv có thể tìm viền dễ dàng (Canny Edge Detection)

 Làm xám, mờ và chuyển sang dạng Canny bằng hàm của cv2

Trang 28

- Tiếp tới ta lấy đường viền của ảnh từ đó tìm ra được đường viền của hình chữ nhật Chia hình chữ nhật thành

Trang 29

 Tìm điểm góc của những hình chữ nhật sau khi đã sắp xếp

Trang 30

 rectContour sẽ giúp tìm những hình chữ nhật bằng cách đếm điểm tọa độ điểm bằng cv2.approxPolyDP (4 điểm : len(approx) == 4 ) và trả về 1 list các hình chữ nhật đã được sắp xếp theo diện tích

 getCornerPoint tìm ra 4 điểm hình chữ nhật

- Thiết Lập mắt chim và áp dụng ngưỡng cho độ xám của ảnh

Trang 31

- Từ ngưỡng sáng ta chọn nơi có ngưỡng cao nhất sẽ là ô của học sinh đã tô.

Ta cần phải chia rõ các ô khoanh tròn để tính ngưỡngchính xác sau đó so sánh với các ô cùng hàng / cột để chọn ô “xám” nhất Cách chia của 2 cột đáp án (chia theo hàng) sẽ khác với cách chia Mã Học Sinh và Mã Đề (chia theo cột):

 Sau khi chia ta sẽ lưu ảnh từng ô tròn vào trong 1 list Sau đó so sánh tìm ra ô ‘Xám nhất’ trong 1 hàng/cột

Trang 32

 Tìm ô ‘Xám nhất’ bằng cách đếm số pixel bằng 0 của ảnh tổng hợp lại sau đó tìm giá trị lớn nhất và lưu kết qủa (ô được khoanh) vào myIndex

 So sánh với đáp án và tính điểm

Trang 33

 Tìm ô được khoanh và lưu Mã sinh viên (mã đề tương tự)

- Class main_scanner: Hàm main : sẽ đọc tất cả ảnh trongFolder Test_Pictures sau đó tiến hành quét tính điểm và lưu lại danh sách các mã học sinh, điểm và mã đề (Xuất

ra file Test_Scanner.csv để thuận tiện cho việc import data vào database SQL)

Trang 34

3 Ưu và Nhược điểm:

- Ưu điểm: Ảnh được xử lí nhanh gọn, code dễ dàng tường minh có performance ổn

- Nhược điểm: Chưa thể xử lí được ảnh trong 1 vài trường hợp đặc biệt (giấy bị nhàu, ảnh chụp thiếu sáng)

II Nhận diện khuôn mặt cá nhân 1 (Face_Recognition)

Trang 35

Hình ***

- Đầu vào mô hình sẽ là 2 hình ảnh (1 ảnh là 1 ma trận 3 chiều với 250x250 pixel) , 1 cặp ảnh Anchor với Positive hoặc Negative Image Hình ảnh đó sau đó sẽ được xử lí qua các HidenLayer sử dụng Phương pháp tích chập, sử dụng Activation Fuction là ReLU để tạo đầu ra cho 1 lớp Layer ( Re_z = max(0,z) ) trước khi tới OutPut_Layer ảnh

sẽ được làm phẳng đưa qua Activation Fuction là

Sigmoid để được đầu ra từ đoạn 0 đến 1 (phù hợp với bài toán Classification).Cuối cùng tổng hợp tại L1

siamese dist (tính toán Cosine_similarity) và đưa ra output đầu ra với giá trị từ 0 tới 1

3 Quá trình tạo model

- Bước 0: Do mô hình DeepLearning có nhiều tham số (parameters) cũng như độ phức tạp hơn model

MachineLearning rất nhiều nên ta nên sử dụng GPU để huấn luyện thay vì CPU để tăng tốc độ huấn luyện cũng như load model:

Trang 36

 Tensorflow có hỗ trợ việc sử dụng GPU (Tuy nhiên rất dễ lỗi và không thể nhận biết được gpu : đó là lí do chính khiến team em không thể load được model vì quá lâu và phải sử dụng 1 model khác nhẹ hơn nhưng có

performance kém hơn)

- Bước 1: Tạo dataset

+ Chia dataset thành 3 bộ nhỏ : Anchor , Positive sẽ ảnh bản thân và Negative sẽ là ảnh ngườ khác

Trang 37

 Ảnh Anchor/Positive

 Ảnh Negative

+ Ảnh negative ta sẽ lấy dữ liệu trên web

https://vis-www.cs.umass.edu/lfw/

Trang 38

+ Ảnh bản thân ta sẽ sử dụng OpenCV , ta chỉ cần mở camera sau đó qua lưu từng frame là ảnh sau đó lưu tại Folder cần thiết

 Tên file được đặt ngẫu nhiên bằng thư viện uuid

+ Tiền xử lí dữ liệu (Preprocessing) : Ảnh sau khi chụp bằng OpenCV sẽ được tiền xử lí : Resize and Scale để

tương đồng với ảnh của Folder Negative 2 input phải tương đồng với nhau

+ Sau khi tiền xử lí ta sẽ gán nhãn (Labeling) cho positives

= input (từng cặp ảnh): input (Anchor,Positive Img) = 1 và negatives = input (Anchor,Negative) = 0 Cuối cùng ta tổng hợp thành 1 luồng data bằng cách kết hợp positives

và negative Sau đây là quá trình Tiền xử lí và Gán nhãn

Trang 39

+ Chia data thành bộ train và bộ test tỉ lệ (3:7):

- Bước 2: Tạo mô hình DeepLearning (Model):

+ Xây dựng lớp nhúng (Embedding Layer) : xây dụng lớp nhúng trên mô hình dựa trên “Hình **” bằng các hàm của thư viện Tensorflow(.keras)

Trang 40

+ Tạo model siamese: make_siamese_model(): sẽ nhận 2 ảnh sau đó tính toán sự khác biệt của 2 ảnh (distances) rồi return về 1 model siamese

Trang 41

- Bước 3: Huấn luyện mô hình (Train Model):

+ Tạo Loss Function là hàm Mất mát Entropy nhị phân bằng hàm có sẵn của thư viện keras và tham sốoptimizer ‘otp’ theo thuật toán Adam để truyền vào checkpoint

+ Tạo folder “checkpoint” để lưu những checkpoint trong quá trình training (sau 10 epoch lưu 1

checkpoint)

+ Tạo train_step:

Trang 42

 Vì input đầu vào có dạng (100,100,3): nên ta chia x là 2 ảnh đầu vào và y sẽ chính là label của input , ta cho yhat

là prediction/hypothesis ( dự đoán của mô hình ) Mục đích chính của train_step là tính toán hàm loss_fuction dựa trên label và hypothesis , dựa vào loss mô hình sẽ

tự điều chỉnh gradient (descent) sau mỗi bước train rồi tối ưu “opt.apply_gradients()” (optimize) mô hình bằng cách thay đổi trọng số

Ngày đăng: 09/12/2024, 06:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w