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

đề tài xây dựng hệ thống quản lý thông tin hoạt động của lớp học

62 0 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

Nội dung

Với các tiến bộ trong lĩnh vực nhận dạng, thị giác máytính, các thông tin phản hồi đó có thể được đánh giá một cách tự động thông qua dữliệu hình ảnh, video thu thập từ lớp học.. Trong đ

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌCĐề tài:

XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TINHOẠT ĐỘNG CỦA LỚP HỌC

Sinh viên thực hiện:NGUYỄN TIẾN ĐẠTLớp KTĐTTT-03 K61 MSSV: 20160945

Giảng viên hướng dẫn: PGS TS LÊ THỊ LAN

Trang 2

Hà Nội, 2-2022

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌCĐề tài:

XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TINHOẠT ĐỘNG CỦA LỚP HỌC

Sinh viên thực hiện:NGUYỄN TIẾN ĐẠTLớp KTĐTTT-03 K61 MSSV: 20160945

Giảng viên hướng dẫn: PGS TS LÊ THỊ LAN

Trang 4

Hà Nội, 2-2022

Trang 5

LỜI NÓI ĐẦU

Cuộc cách mạng công nghiệp lần thứ tư (i4.0) với nền tảng trí tuệ nhân tạo (AI),robot, Big-data và internet kết nối vạn vật (IoT) tạo ra tiền đề cho phép thực hiện cácthay đổi mạnh mẽ trong nhiều lĩnh vực của đời sống trong đó có lĩnh vực giáo dục.Nhiều công nghệ, mô hình mới như công nghệ thực tại ảo, mô hình lớp học đảo ngược(flipped classroom), đã được ứng dụng vào lĩnh vực giáo dục cho phép đem đếnnhững tiện ích và trải nghiệm thú vị từ đó giúp nâng cao khả năng tiếp thu, cập nhậtkiến thức Tuy nhiên, cách thức giảng dạy hiện tại mới tập trung chủ yếu vào truyềnđạt thông tin một chiều – chiều từ người dạy/hệ thống đến người học Trong khi cácthông tin phản hồi theo chiều ngược lại – từ người học đến người dạy/hệ thống lànguồn thông tin vô cùng quan trọng nhưng chưa được quan tâm Việc sử dụng hiệuquả thông tin này sẽ mang đến những cải tiến vượt trội về chất lượng của quá trình dạyvà học Các thông tin phản hồi từ người học thường được thu thập thông qua hình thứckhảo sát thủ công với một tập giới hạn các câu hỏi, do đó thường tốn nhiều thời giancông sức, không thể thực hiện được thường xuyên và thường mang ý kiến chủ quancủa người tham gia khảo sát… Với các tiến bộ trong lĩnh vực nhận dạng, thị giác máytính, các thông tin phản hồi đó có thể được đánh giá một cách tự động thông qua dữliệu hình ảnh, video thu thập từ lớp học Đề tài Khoa học và Công nghệ cấp Bộ, Bộ

Giáo dục và Đào tạo “Nghiên cứu phát triển hệ thống tự động đánh giá hoạt động họctập trong lớp học dựa trên công nghệ xử lý ảnh và trí tuệ nhân tạo”, mã số:

CT2020.02.BKA.02 do PGS TS Lê Thị Lan làm chủ nhiệm hướng tới xây dựng mộthệ thống cho phép tự động đánh giá hoạt động của lớp học thông qua công nghệ xử lýảnh và trí tuệ nhân tạo Trong đó, các hoạt động của lớp học thu thập từ các cameragiám sát sẽ được tự động phát hiện và nhận dạng thông qua các giải thuật đề xuất trongkhuôn khổ của đề tài Để có thể thực hiện quản lý hiệu quả và truy xuất, báo cáo lạikhi cần thiết, các thông tin phân tích được về hoạt động lớp học cần được lưu trữ và

quản lý Vì vậy đề tài tốt nghiệp “Xây dựng hệ thống quản lý thông tin hoạt độngcủa lớp học” ra đời với mục đích xây dựng hệ thống cho phép quản lý các thông tin

của lớp học.

Trang 6

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đồ án tốt nghiệp “Xây dựng hệ thống quản lý thông tinhoạt động của lớp học” là công trình nghiên cứu của bản thân mình Những phần có

sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê và nêu rõ ra tại phần tài liệutham khảo Đồng thời những số liệu hay kết quả trình bày trong đồ án đều mang tínhchất trung thực, không sao chép, đạo nhái.

Nếu như sai tôi xin chịu hoàn toàn trách nhiệm và chịu tất cả các kỷ luật của bộ môncũng như nhà trường đề ra.

Trang 7

MỤC LỤC

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i

DANH MỤC HÌNH VẼ ii

DANH MỤC BẢNG BIỂU iv

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1

1.1 Tổng quan về phân tích/nhận dạng tự động hoạt động của người học 1

1.1.1 Giới thiệu chung 1

1.1.2 Các hoạt động quan tâm trong khuôn khổ của đề tài 2

1.1.3 Một số nghiên cứu về nhận dạng hoạt động của người học trong lớp học 3

1.2 Giới thiệu về các công nghệ sử dụng trong đồ án 6

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19

2.1 Yêu cầu bài toán 19

2.1.1 Yêu cầu về chức năng 19

2.1.2 Yêu cầu phi chức năng 19

2.2 Phân tích thiết kế 19

2.2.1 Sơ đồ khối 19

2.2.2 Biểu đồ phân rã chức năng 20

2.2.3 Đặc tả Use Case 21

2.2.4 Sơ đồ luồng hoạt động 23

2.3 Xây dựng cơ sở dữ liệu 23

Trang 8

2.4.2 Triển khai stream luồng video 28

2.4.3 Triển khai phần quản lý dữ liệu 29

2.4.4 Triển khai tính năng thống kê, vẽ biểu đồ 29

2.4.5 Tích hợp kết quả nhận dạng 29

2.5 Xây dựng phần client 33

2.5.1 Công nghệ sử dụng 33

2.5.2 Nhận dữ liệu từ socket và stream video 33

2.5.3 Hiển thị kết quả thống kê và vẽ biểu đồ 34

CHƯƠNG 3 THỰC NGHIỆM HỆ THỐNG QUẢN LÝ 35

3.1 Cách thức thực nghiệm 35

3.1.1 Thực nghiệm tính năng đăng nhập, tạo tài khoản 35

3.1.2 Thực nghiệm tính năng thống kê 35

3.1.3 Thực nghiệm tính năng trực tiếp video 35

3.1.4 Thực nghiệm tính năng quản lý dữ liệu 35

3.1.5 Thực nghiệm kết nối với module Phân tích, nhận dạng 36

Trang 9

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT

APIApplication Programming InterfaceSIFTScale-invariant feature transformSVMSupport Vector Machine

SQLStructured Query LanguageDMLData Manipulation LanguageDDLData Definition Language

SEOSearch Engine OptimizationRTSPReal Time Streaming Protocol

Trang 10

DANH MỤC HÌNH VẼ

Hình 1-1 Các hoạt động được quan tâm trong đề tài 3

Hình 1-2 Sự đa dạng trong hoạt động giơ tay 4

Hình 1-3 Mô hình Client – Server 6

Hình 1-4 Một số module của Nodejs 10

Hình 1-5 Ví dụ về console 10

Hình 1-6 Module cluster 11

Hình 1-7 Biến global trong Nodejs 11

Hình 1-8 Các loại lỗi trong Nodejs 12

Hình 1-9 ReactJS 15

Hình 2-1 Sơ đồ khối chung của hệ thống, trong đó các khối bôi đậm là nội dung đượcthực hiện trong đồ án 20

Hình 2-2 Biểu đồ phân rã chức năng của hệ thống 21

Hình 2-3 Sơ đồ đặc tả use case của hệ thống 22

Hình 2-4 Sơ đồ luồng hoạt động 23

Hình 2-5 Mô hình thực thể liên kết 24

Hình 2-6 Mô hình quan hệ 24

Hình 2-7 Hình ch01_20210402084038_0002.jpg và kết quả phân tích trên ảnh 32

Hình 2-8 Biểu đồ thống kê hình cột về các hoạt động nhận dạng được trong lớp học 34Hình 3-1 Giao diện đăng nhập 36

Hình 3-2 Giao diện trang chủ 37

Hình 3-3 Giao diện đổi mật khẩu 37

Hình 3-4 Giao diện kết nối và xem trực tiếp luồng hình ảnh thu thập từ camera giámsát lớp học 38

Hình 3-5 Chức năng thống kê 38

Hình 3-6 Chức năng vẽ biểu đồ thống kê về các hoạt động nhận dạng được trong lớphọc trong một khoảng thời gian do người dùng lựa chọn 39

Hình 3-7 Quản lý phòng học 40

Trang 11

Hình 3-8 Thêm mới phòng học 40

Hình 3-9 Chỉnh sửa phòng học 41

Hình 3-10 Quản lý camera 41

Hình 3-11 Quản lý hành động 42

Hình 3-12 Quản lý tài khoản 42

Hình 3-13 Chỉnh sửa thông tin tài khoản 43

Trang 12

DANH MỤC BẢNG BIỂU

Bảng 2-1 Từ điển dữ liệu cho cơ sở dữ liệu 30

Trang 13

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

Để xây dựng được một hệ thống quản lý, nhận dạng hoạt động cho lớp học, tacần tìm hiểu các lý thuyết liên quan tới các bài toán phân tích/nhận dạng tự động hoạtđộng Ngoài ra cần có thêm các kiến thức để xây dựng một hệ thống quản lý, bao gồmweb-base, cách thức mà các website hoạt động vào trao đổi thông tin, cơ sở dữ liệu vàcác framework để xây dựng website phổ biến hiện nay

1.1 Tổng quan về phân tích/nhận dạng tự động hoạt động củangười học

1.1.1 Giới thiệu chung

Nhận dạng hoạt động của người là một lĩnh vực nghiên cứu trong khoa học máytính nhằm xây dựng các phương pháp cho phép xác định kiểu hoạt động (ví dụ: đi bộ,chạy, ngã, bắt tay, v.v.) trên dữ liệu thu được từ các cảm biến khác nhau Hoạt độngcủa con người được chia thành 4 mức độ cơ bản: cử chỉ (gesture), hành động (action),tương tác (interaction) và hoạt động nhóm (group activity) Cử chỉ là chuyển động cơbản nhất của một phần cơ thể người và thường được xem là đơn vị để diễn đạt mộtchuyển động của người Ví dụ cử chỉ "kéo căng tay" Hành động có thể được tạo thànhtừ một tập các cử chỉ theo thời gian như hành động đi lại Tương tác là hoạt động liênquan đến 2 người trở lên hoặc liên quan giữa người và đối tượng ví dụ "hai người đangđánh nhau", "một người bỏ lại vali trong sân bay" Hoạt động của nhóm là hoạt độngtạo ra bởi một nhóm gồm nhiều người và/hoặc nhiều đối tượng ví dụ “một nhóm ngườiđang biểu tình”

Bài toán nhận dạng cử chỉ và hành động được phân chia theo yếu tố không gianvà thời gian Theo cách phân chia này, các cử chỉ/hành động có thể chia làm hai loại:

• Hoạt động/cử chỉ tĩnh hay còn gọi là hình trạng là loại cử chỉ sử dụng ảnh đơnlẻ Do đó, các thông tin về cử chỉ và hành động chỉ có yếu tố không gian khôngcó yếu tố thời gian

Trang 14

• Hoạt động/cử chỉ động: là các hoạt động/cử chỉ được thực hiện trong mộtkhoảng thời gian Do đó, các cử chỉ hoạt động này được biểu diễn theo cảkhông gian và thời gian.

Dựa trên phân loại này, các phương pháp nhận dạng hoạt động có thể phân chiathành nhận dạng cử chỉ tĩnh (hình trạng) và nhận dạng cử chỉ động Ngoài cách phânchia này dựa trên các thông tin sử dụng trong các phương pháp nhận dạng cử chỉ, cácphương pháp có thể phân chia thành nhận dạng dựa trên ảnh màu, ảnh độ sâu, khungxương hay phương pháp nhận dạng dựa trên đa phương thức.

1.1.2 Các hoạt động quan tâm trong khuôn khổ của đề tài

Theo các định nghĩa trong phần 1.1.1, đề tài hướng đến các cử chỉ và hành động

của người học trong lớp học trong đó tập trung vào một số cử chỉ sau: ngồi học, giơtay, sử dụng điện thoại, ngủ/gục xuống bàn, và đứng lên phát biểu Đây là các hoạt

động quan trọng, việc nhận dạng và xác định được số lượng các hoạt động này trongmột buổi học là một thông số quan trọng cho phép đánh giá định lượng chất lượng vàkhông khí của lớp học Hình sau minh họa vùng chứa các hoạt động quan tâm đượcthu nhận trong một lớp học thực tế

(a) Hoạt động ngồi học

Trang 15

(b)Hoạt động giơ tay

(c) Hoạt động đứng lên phát biểu

(d) Hoạt động sử dụng điện thoại

(e) Hoạt động ngủ/gục xuống bàn

Hình 1-1 Các hoạt động được quan tâm trong đề tài

1.1.3 Một số nghiên cứu về nhận dạng hoạt động của người học trong lớp học.

Nhận dạng tự động các hoạt động của sinh viên/người học trong lớp học đang thuhút được sự quan tâm của cộng đồng nghiên cứu trong các năm gần đây Một số hoạtđộng thường quan tâm trong lớp học bao gồm: giơ tay, đứng lên phát biểu, ngủ …

Trang 16

Liên quan đến nhận dạng hoạt động giơ tay, một số nghiên cứu đã được đề xuấtđể nhận dạng hoạt động giơ tay tuy nhiên đây vẫn là một bài toán thách thức do môitrường lớp học thường là môi trường không kiểm soát do có sự biến đổi về số lượngsinh viên/người học trong lớp, vị trí, sự che khuất và kích thước nhỏ của bàn tay và sựđa dạng trong việc thực hiện các hoạt động

Hình 1-2 Sự đa dạng trong hoạt động giơ tay

Các tác giả trong [CITATION WACV2002 \l 1033 ] đề xuất phương pháp pháthiện cử chỉ của tay thông qua phương pháp trừ nền để xác định chuyển động và thựchiện tính toán các đặc trưng để đưa ra quyết định về sự tồn tại của cử chỉ tay trong ảnh.Tuy nhiên, phương pháp trừ nền không hiệu quả trong điều kiện lớp học do sự thay đổinhanh của nền

Trong [CITATION Nya11 \l 1033 ] các tác giả đề xuất phương pháp phát hiệnhành động giơ tay trong điều kiện phòng họp và lớp học Phương pháp được đề xuấtthực hiện phát hiện mặt trong từng khung hình để xác định vùng quan tâm (ROI) Sauđó phương pháp xác định vị trí của tay trong vùng quan tâm dựa trên việc phân tíchtính chất hình học của các biên của tay Vị trí và hướng của tay so với mặt sẽ được sửdụng để xác định hành động giơ tay Ngoài ra để giảm lỗi phát hiện nhầm, hệ thống sửdụng tần suất của hoạt động giơ tay trong các khung hình trước đó

Phương pháp đề xuất trong [CITATION Che13 \l 1033 ] tự động xác định vùngứng với học sinh dựa trên trừ nền Sau đó đặc trưng SIFT và bộ phân lớp SVM đượcsử dụng cho bài toán nhận dạng hoạt động giơ tay trong lớp học Các tác giả trong[CITATION Pon13 \l 1033 ], đề xuất ứng dụng các đặc trưng Lienhart-Maydt cho pháthiện mặt và tay trên ảnh Sau đó dựa trên quan hệ của mặt và tay, hoạt động giơ tayđược nhận dạng

Nhóm nghiên cứu ở trường ĐH Khoa học tự nhiên – ĐH Quốc gia Thành phố HồChí Minh [CITATION alV15 \l 1033 ][ CITATION VVo12 \l 1033 ] đã đề xuất

Trang 17

phương pháp phân đoạn và nhận dạng hoạt động trên video Từ chuỗi hình ảnh RGB,các tác giả đã đề xuất trích chọn đặc trưng toàn cục (HOG và HOF) và đặc trưng cụcbộ dựa trên chuyển động và SURF Sau đó, các đặc trưng này được biểu diễn thànhcác từ (visual word) theo mô hình BOW (Bag of word) Với cách biểu diễn này mộtvideo sẽ được biểu diễn thành vector thể hiện sự xuất hiện của các từ trong video Cuốicùng mô hình học SVM được sử dụng để phân loại các hoạt động Phương pháp đượccác tác giả đề xuất đã cải tiến độ chính xác nhận dạng so với một số phương phápđược đề cập trước đó trên 2 cơ sở dữ liệu dùng chung là KTH và Weizmann

Trong [ CITATION TNg14 \l 1033 ], nhóm nghiên cứu ở Đại học Bách Khoa ĐàNẵng đề xuất giải thuật nhận dạng cử chỉ tay sử dụng các đặc trưng hình học vàphương pháp phân lớp SVM Đầu tiên, vùng tương ứng với bàn tay sẽ được tách radựa trên phương pháp phân đoạn màu da Tiếp theo, các đặc trưng như số ngón tay,góc giữa các ngón được trích chọn và đưa vào bộ phân lớp SVM Mặc dù đạt đượckết quả nhận dạng 89.5% trên bộ cơ sở dữ liệu gồm 27 cử chỉ tay tĩnh nhưng phươngpháp đề xuất chỉ hoạt động hiệu quả trong các điều kiện tốt (nền đơn giản, tay đượcphân tách tốt)

Nhóm nghiên cứu tại Viện CNTT, Viện hàn lâm khoa học Việt Nam đã thực hiệnso sánh hai bộ phân lớp là SVM và RVM (Relevance Vector Machines) cho bài toánnhận dạng cử chỉ sử dụng thông tin khung xương [ CITATION DNg15 \l 1033 ] Vớimỗi khớp xương, các tác giả trích 3 thông tin bao gồm tốc độ tương đối, góc, và tốc độcủa góc Các đặc trưng này được nối lại thành một vector đặc trưng đại diện cho mỗicử chỉ Các tác giả đã chỉ ra rằng RVM cho kết quả nhận dạng gần tương đương vớiSVM trong khi thời gian tính toán giảm được đáng kể

Nhóm nghiên cứu tại Trường Đại học Bách Khoa Hà Nội đã đề xuất các phươngpháp kết hợp đặc trưng cho bài toán nhận dạng hoạt động nói chung và nhận dạng hoạtđộng bất thường nói riêng Trong [ CITATION Tha18 \l 1033 ], nhóm đề xuất kết hợpcả thông tin từ cảm biến gia tốc, ảnh màu, ảnh độ sâu trong nhận dạng 20 hoạt độngcủa người Liên quan đến nhận dạng hoạt động dựa trên khớp xương, dựa trên quan sátcác khớp xương có thể đóng các vai trò khác nhau trong nhận dạng hoạt động, nhómđã đề xuất phương pháp trích chọn khớp xương chứa nhiều thông tin nhất và tríchchọn các đặc trưng ma trận hiệp phương sai từ tập khớp xương đã được lựa chọn phục

Trang 18

vụ cho bài toán nhận dạng hoạt động [ CITATION Tie18 \l 1033 ] Trong[ CITATION Van19 \l 1033 ], nhóm cũng đề xuất khai thác thông tin về thời gian vàkhông gian của hoạt động dựa trên việc kết hợp của mạng nơ ron tích chập CNN vàmạng bộ nhớ ngắn dài (LSTM) trong biểu diễn và nhận dạng hoạt động

Như đã phân tích ở trên, một số nhóm nghiên cứu trong và ngoài nước đã tiếnhành các nghiên cứu về nhận dạng hoạt động từ các video thu thập về hoạt động củalớp học Tuy nhiên các nghiên cứu về bài toán nhận dạng trong môi trường lớp họccòn rất hạn chế Ngoài ra, các nghiên cứu mới thực hiện phát triển từng mô đun rờirạc Hiện tại chưa có một hệ thống phân tích tự động hoạt động học tập nào được xâydựng và triển khai trên thực tế Trong khuôn khổ của đề tài cấp Bộ do Trường Đại họcBách Khoa Hà Nội chủ trì sẽ thực hiện các nghiên cứu về nhận dạng hoạt động từ hìnhảnh thu thập trên các cameras giám sát lớp học Nhiệm vụ của đề tài tốt nghiệp của emlà xây dựng hệ thống quản lý các thông tin trong đề tài trong đó hệ thống phải thựchiện kết nối với mô đun nhận dạng, lưu trữ các thông tin cần thiết và cho phép ngườidùng thực hiện truy xuất, thống kê dữ liệu

1.2 Giới thiệu về các công nghệ sử dụng trong đồ án

1.2.1 Mô hình Client-Server

Mô hình Client Server là mô hình mạng máy tính trong đó các máy tính con đượcđóng vai trò như một máy khách, chúng làm nhiệm vụ gửi yêu cầu đến các máy chủ.Để máy chủ xử lý yêu cầu và trả kết quả về cho máy khách đó.

Hình 1-3 Mô hình Client – Server

Trong mô hình Client - Server, server chấp nhận tất cả các yêu cầu hợp lệ từ mọinơi khác nhau trên Internet, sau đó trả kết quả về máy tính đã gửi yêu cầu đó

Trang 19

Máy tính được coi là máy khách khi chúng làm nhiệm vụ gửi yêu cầu đến cácmáy chủ và đợi câu trả lời được gửi về Để máy khách và máy chủ có thể giao tiếpđược với nhau thì giữa chúng phải có một chuẩn nhất định, và chuẩn đó được gọi làgiao thức Một số giao thức được sử dụng phổ biến hiện nay như: HTTPS, TCP/IP,FTP,

Nếu máy khách muốn truy xuất các thông tin từ máy chủ, chúng phải tuân theomột giao thức mà máy chủ đó đưa ra Nếu yêu cầu đó được chấp nhận thì máy chủ sẽthu thập thông tin và trả về kết quả cho máy khách yêu cầu Bởi vì Server - máy chủluôn luôn trong trạng thái sẵn sàng để nhận request từ client nên chỉ cần client gửi yêucầu tín hiệu và chấp nhận yêu cầu đó thì server sẽ trả kết quả về phía client trong thờigian ngắn nhất.

Ưu điểm của mô hình:

 Giúp chúng ta có thể làm việc trên bất kì một máy tính nào có hỗ trợ giaothức truyền thông Giao thức chuẩn này cũng giúp các nhà sản xuất tích hợplên nhiều sản phẩm khác nhau mà không gặp phải khó khăn gì.

 Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiềumáy tính hoặc một máy tính.

 Chỉ mang đặc điểm của phần mềm mà không hề liên quan đến phần cứng,ngoài yêu cầu duy nhất là server phải có cấu hình cao hơn các client.

 Hỗ trợ người dùng nhiều dịch vụ đa dạng và sự tiện dụng bởi khả năng truycập từ xa.

 Cung cấp một nền tảng lý tưởng, cho phép cung cấp tích hợp các kỹ thuậthiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tinđịa lý (GIS).

Nhược điểm:

 Vấn đề bảo mật dữ liệu thông tin đôi khi còn chưa được an toàn do phải traođổi dữ liệu giữa 2 máy tính khác nhau ở 2 khu vực địa lý cách xa nhau Vàđây cũng nhược điểm duy nhất của mô hình này Tuy nhiên vấn đề này cómột số giao thức đã hỗ trợ bảo mật dữ liệu khi truyền tải Giao thức được sửdụng phổ biến như HTTPS.

FrontEnd và BackEnd:

Trang 20

Từ mô hình Client – Server, giới lập trình viên hiện đại đã phân trang web ra làmhai phần để thuận tiện phát triển và quản lý: Front-end - Back-end

Phần front-end của một trang web là phần tương tác với người dùng Tất cả mọithứ ta nhìn thấy khi điều hướng trên Internet, từ các font chữ, màu sắc cho tới cácmenu xổ xuống và các thanh trượt, là một sự kết hợp của HTML, CSS, và JavaScriptđược điều khiển bởi trình duyệt máy tính của ta.

Đâu là những phần giúp phần front-end của một trang web có thể hoạt độngđược? Tất cả dữ liệu sẽ được lưu trữ ở đâu? Đó là phần việc của back end Phần backend của một trang web bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu.Một lập trình viên back-end xây dựng và duy trì công nghệ mà sức mạnh của nhữngthành phần đó, cho phép phần giao diện người dùng của trang web có thể tồn tại được.

1.2.2 Javascript và Nodejs Back-end

1.2.2.1 Javascript

JavaScript được tạo trong mười ngày bởi Brandan Eich, một nhân viên củaNetscape, vào tháng 9 năm 1995 Được đặt tên đầu tiên là Mocha, tên của nó được đổithành Mona rồi LiveScript trước khi thật sự trở thành JavaScript nổi tiếng như bây giờ.Phiên bản đầu tiên của ngôn ngữ này bị giới hạn độc quyền bởi Netscape và chỉ có cáctính năng hạn chế, nhưng nó tiếp tục phát triển theo thời gian, nhờ một phần vào cộngđồng các lập trình viên đã liên tục làm việc với nó.

Trong năm 1996, JavaScript được chính thức đặt tên là ECMAScript.ECMAScript 2 phát hành năm 1998 và ECMAScript 3 tiếp tục ra mắt vào năm 1999.Nó liên tục phát triển thành JavaScript ngày nay, giờ đã hoạt động trên khắp mọi trìnhduyệt và trên khắp các thiết bị từ di động đến máy tính bàn.

JavaScript liên tục phát triển kể từ đó, có lục đạt đến 92% website đang sử dụngJavaScript vào năm 2016 Chỉ trong 20 năm, nó từ một ngôn ngữ lập trình riêng trởthành công cụ quan trọng nhất trên bộ công cụ của các chuyên viên lập trình web Nếuta đang dùng internet, vậy chắc chắn ta đã từng sử dụng JavaScript rồi.

JavaScript có rất nhiều ưu điểm khiến nó vượt trội hơn so với các ngôn ngữ lậptrình khác, đặc biệt trong các trường hợp thực tế Sau đây chỉ là một số lợi ích củaJavaScript:

Trang 21

 Người dùng không cần một compiler vì web browser có thể hiểu vàbiên dịch JavaScript

 Đây là ngôn ngữ dễ học hơn các ngôn ngữ lập trình khác Lỗi dễ phát hiện hơn và vì vậy dễ sửa hơn

 JS hoạt động trên nhiều trình duyệt, nền tảng,

 Ta có thể sử dụng JavaScript để kiểm tra input và giảm thiểu việc kiểmtra thủ công khi truy xuất qua cơ sở dữ liệu.

 JS giúp website tương tác tốt hơn với khách truy cập

 Ngoài ra ngôn ngữ này còn nhanh hơn và nhẹ hơn các ngôn ngữ lậptrình khác.

1.2.2.2 Nodejs

NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết

bằng C++ và Javascript Nền tảng này được phát triển bởi Ryan Lienhart Dahl vàonăm 2009 Node.js ra đời khi các developer đời đầu của JavaScript mở rộng nó từ mộtthứ ta chỉ chạy được trên trình duyệt thành một thứ ta có thể chạy trên máy của mìnhdưới dạng ứng dụng độc lập Giờ đây ta có thể làm được nhiều thứ với JavaScript hơnlà chỉ tương tác với các website.

Node.js có mã nguồn mở, hoàn toàn miễn phí và được hàng ngàn lập trình viêntrên thế giới sử dụng Nó mang lại rất nhiều lợi ích so với các nền tảng phía máy chủkhác như Java hoặc PHP.

NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window chotới Linux, OS X nên đó cũng là một lợi thế NodeJS cung cấp các thư viện phong phúở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thờigian ở mức thấp nhất.

Ý tưởng chính của Node js là sử dụng non-blocking, hướng sự vào ra dữ liệuthông qua các tác vụ thời gian thực một cách nhanh chóng Bởi vì, Node js có khảnăng mở rộng nhanh chóng, khả năng xử lý một số lượng lớn các kết nối đồng thờibằng thông lượng cao.

Nếu như các ứng dụng web truyền thống, các request tạo ra một luồng xử lý yêucầu mới và chiếm RAM của hệ thống thì việc tài nguyên của hệ thống sẽ được sử dụngkhông hiệu quả Chính vì lẽ đó giải pháp mà Node js đưa ra là sử dụng luồng đơn

Trang 22

(Single-Threaded), kết hợp với non-blocking I/O để thực thi các request, cho phép hỗtrợ hàng chục ngàn kết nối đồng thời.

a) Cấu trúc Node.js

Module giống như các thư viện JavaScript sử dụng trong ứng dụng Node.jsapplication bao gồm một bộ các chức năng Để đưa một module vào ứng dụng Node.jsthì phải sử dụng hàm require() function with the với dấu ngoặc đơn chứa tên module.Node.js có rất nhiều module cung cấp các chức năng cơ bản cần thiết cho ứng dụngweb.

Ví dụ như các module trong bảng sau:

Hình 1-4 Một số module của Nodejs

Console

Trang 23

Bảng điều khiển cung cấp phương thức gỡ lỗi tương tự như bảng điều khiển cơbản của JavaScript trên các trình duyệt internet Nó sẽ in các thông báo ra stdout và

Hình 1-6 Module cluster

Biến toàn cục trong Node.js tồn tại trong tất cả các module Những biến này baogồm các hàm, module, string, v…v… Một số biến toàn cục trong Node.js có thể kểđến trong bảng sau:

Trang 24

Hình 1-7 Biến global trong Nodejs

Error Handling

Các ứng dụng Node.js gặp 4 loại lỗi sau.

Hình 1-8 Các loại lỗi trong Nodejs

Lỗi trong Node.js được sử lý qua các exception Chẳng hạn, chúng ta phải xử lýmột lỗi xảy ra khi chia cho 0 Lỗi này sẽ làm crash ứng dụng Node.js, vì vậy chúng taphải xử lý lỗi này để ứng dụng có thể hoạt động bình thường.

Streaming

Trang 25

Stream là các đối tượng cho phép ta đọc và viết dữ liệu một cách liên tục Có 4loại stream như sau:

 Readable: Là loại stream mà từ đó dữ liệu có thể đọc được Writable: Là loại stream mà dữ liệu có thể được viết lên đó Duplex: Là loại stream có thể đọc và viết được

 Transform: Là loại stream có thể thao tác dữ liệu trong khi nó đang đượcđọc hoặc viết

Internal Binding: Error emitter thực thi code trong phương thức run.

External Binding: Error emitter được thêm thẳng vào domain qua phương

Trang 26

Node.js có chức năng gỡ lỗi có thể được sử dụng với một client gỡ lỗi được tíchhợp sẵn Trình gỡ lỗi của Node.js không có quá nhiều tính năng nhưng nó hỗ trợ cácchức năng kiểm tra code cơ bản Trình gỡ lỗi có thể được sử dụng trong bảng lệnhbằng cách sử dụng từ khoá 'inspect' phía trước tên của file JavaScript Ví dụ, để kiểmtra file myscript.js, ta có thể làm theo phương thức sau:

b) Hai NodeJS framework sử dụng phổ biến:

Khi nói đến các framework Node.js phổ biến nhất, Express là lựa chọn đầu tiênvì nó được 73% các nhà phát triển yêu thích và sử dụng Express là một trong nhữngNode.Js Framework động cung cấp sự linh hoạt hoàn toàn và sự tự do cho các nhàphát triển trong việc tùy chỉnh giao diện của ứng dụng Vì nó nhẹ, do đó, nó cực kỳnhanh và giúp định hướng các máy chủ và bộ định tuyến Ngoài ra, framework này lýtưởng cho các ứng dụng web một trang, trang web hoặc các API HTTP công khai.

Hỗ trợ hơn 14 công cụ và mang lại hiệu suất tuyệt vời, Express rất phù hợp chotất cả các loại phát triển web và ứng dụng di động ngay từ cấp nhỏ đến cấp doanhnghiệp Vì framework này của Node.Js có sẵn để tạo API, do đó, ta có thể phát triểnứng dụng web nhanh hơn với Express Ngoài ra, module này đi kèm với tính năng địnhtuyến mạnh mẽ, các tính năng bảo mật và điều khoản xử lý lỗi, vì vậy các nhà pháttriển có thể dễ dàng sử dụng nó phát triển các ứng dụng web trên nhiều nển tảng khácnhau.

SocketIO[ CITATION htt \l 1033 ]

Socket.io là một full-stack framework có thể được sử dụng bởi nhiều ngôn ngữlập trình Để xây dựng một ứng dụng realtime cần sử dụng socket.io Socket.io sẽ giúpcác bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngay lập tứcthông qua server trung gian Socket.io có thể được sử dụng trong nhiều ứng dụng nhưchat, game online, cập nhật kết quả của một trận đấu đang xảy ra,

c) NPM: The Node Package Manager

Trình quản lý gói Node.js (NPM) là trình quản lý gói mặc định và phổ biến nhấttrong hệ sinh thái Node.js và chủ yếu được sử dụng để cài đặt và quản lý các module

Trang 27

bên ngoài trong dự án Node.js Nó cũng thường được sử dụng để cài đặt một loạt cáccông cụ CLI và chạy các tập lệnh dự án NPM theo dõi các module được cài đặt trongmột dự án bằng file package.json , nằm trong folder của dự án và chứa:

 Tất cả các module cần thiết cho một dự án và các version đã cài đặt của chúng

 Tất cả metadata cho một dự án, chẳng hạn như tác giả, giấy phép, v.v.

 Các tập lệnh có thể được chạy để tự động hóa các việc trong dự án

1.2.3 ReactJS

Hình 1-9 ReactJS

Trước đây, một trang web chỉ đơn thuần là html, css, javascript được viết toànbộ trong một file html và được server gửi lên cho trình duyệt đọc và hiển thị (Server-side rendering) Thiết kế web hiện đại có một khái niệm mới, đó là Client-siderendering Thay vì gửi html, css, javascript, server chỉ gửi thông tin thô qua cácresponse json Client sẽ nhận thông tin và tự render ra giao diện ReactJS được pháttriển trên ý tưởng đó Nhà phát triển ReactJs không ai khác chính là ông lớn Facebook.Mục đích của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốcđộ nhanh và hiệu quả cao với những mã hóa tối thiểu Và mục đích chủ chốt củaReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thậtnhanh và có khả năng mở rộng cao và đơn giản thực hiện.

Trang 28

1.2.3.1 Lợi ích của việc sử dụng ReactJS

Lợi ích đầu tiên mà ReactJS đó chính là việc tạo ra cho chính bản thân nó mộtDOM ảo, đây là nơi mà các component được tồn tại trên đó Việc tạo ra dom như vậygiúp cải thiện hiệu suất làm việc rất nhiều, khi có tính toán cần thay đổi hoặc cần cậpnhật những gì lên DOM thì ReactJS đều tính toán trước và việc còn lại chỉ là thực hiệnchúng lên DOM, làm như vậy sẽ giúp cho ReactJS tránh được những thao tác cần cótrên một DOM mà không cần tốn thêm hiệu năng của trang web.

Lợi ích thứ hai mà ReactJS đem lại đó chính là việc viết các đoạn code JS sẽ trởinên dễ dàng hơn vì nó sử dụng một cú pháp đặc biệt đó chính là cú pháp JSX nghĩa làcú pháp này cho phép trộn được giữa code HTML và Javascript Ngoài ra ta còn có thểđem đoạn code thêm vào trong hàm render mà không cần phải thực hiện việc nối chuỗivà đây được đánh giá là một trong những đặc tính thú vị của ReactJS và việc chuyểnđổi các đoạn HTML thành các hàm khởi động đều được thực hiện từ bộ biến đổi chínhđó chính là JSX.

Còn một lợi ích khác đáng nói tới là Reactjs hiện tại đang rất phổ biến do đó córất nhiều nguồn support ở mọi nơi và các library hỗ trợ có rất nhiều Việc này khiếnlập trình viên trở nên linh động và việc lập trình tốn ít thời gian hơn.

1.2.3.2 Nhược điểm của ReactJS

Reactjs chỉ phục vụ cho tầng View React chỉ là View Library nó không phải làmột MVC framework như những framework khác Đây chỉ là thư viện của Facebookgiúp render ra phần view Vì thế React sẽ không có phần Model và Controller, mà phảikết hợp với các thư viện khác React cũng sẽ không có 2-way binding hay là Ajax.Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấu hình lại.React khá nặng nếu so với các framework khác React có kích thước tương tương vớiAngular (Khoảng 35kb so với 39kb của Angular) Trong khi đó Angular là mộtframework hoàn chỉnh

Reactjs không thân thiện với SEO Nếu khách hàng cần một trang landing-pagethân thiện với SEO để có thể chạy qua các công cụ tìm kiếm của Google, Bing,… thìReactjs không làm được điều đó chính bởi vì cơ chế Client-side rendering Toàn bộ dữliệu được xử lý và render tại Client, vì vậy các bot AI của các công cụ tìm kiếm sẽ

Trang 29

hoàn toàn bó tay khi đọc các dữ liệu thô được trao đổi thông qua Client – Server Nếuthực sự cần SEO, ta có thể sử dụng NextJS, một library tương tự như ReactJS nhưnglại có cơ chế Server-side rendering.

1.2.3.3 Kiến trúc cơ bản của ReactJS

React áp dụng một cấu trúc Flux Khác với cấu trúc của một số framework khác(vd: AngularJS) sử dụng bidirectional data flow (dữ liệu đi 2 chiều) thì data trong Fluxluôn đi một chiều uni-directional Các ứng dụng React thường sử dụng thêm một thưviện quản lý global state management Redux Redux có cấu trúc rất đơn giản: chứamột global state, mỗi khi nhận action thì trả về một state mới tùy theo nội dùng củaaction đó Để thực hiện thêm các tính năng phức tạp hơn thì ta dùng các middleware:Redux-persist, Redux-saga, và Redux-logger,…

1.2.4 Cơ sở dữ liệu và hệ quản trị CSDL

Cơ sở dữ liệu có tên tiếng anh là Database, viết tắt là CSDL Là một tập hợp cácdữ liệu có tổ chức, được lưu trữ và truy cập từ hệ thống máy tính Khi cơ sở dữ liệuphức tạp hơn, chúng sẽ được phát triển bằng cách sử dụng các thiết kế và mô hình hóahình thức Tóm lại, có sở dữ liệu là hệ thống gồm rất nhiều thông tin, dữ liệu được xâydựng theo một cấu trúc nhất định để đáp ứng nhu cầu khai thác, sử dụng của nhiềungười hay chạy nhiều chương trình cùng một lúc Khi áp dụng hình thức lưu trữ này,sẽ khắc phục được những điểm yếu của việc lưu file thông thường trên máy tính Cácthông tin dữ liệu đảm bảo được sự nhất quán, hạn chế được việc trùng lặp thông tin.

Từ SQL là viết tắt của cụm Structured Query Language, có nghĩa là loại ngônngữ truy vấn có cấu trúc Đây là một loại ngôn ngữ máy tính giúp hỗ trợ các thao táclưu trữ, truy xuất dữ liệu cùng một cơ sở dữ liệu quan hệ một cách nhanh chóng Ngônngữ này đã được ANSI – viện tiêu chuẩn quốc gia của Hoa Kỳ đặt tiêu chuẩn hóa, vàtrở thành một ngôn ngữ được sử dụng phổ biến Một số thành phần và lệnh thườngđược sử dụng trong ngôn ngữ SQL.

Ngôn ngữ điều khiển dữ liệu DCL: DCL của ngôn ngữ SQL sẽ gồm có những

lệnh sau:

GRANT: Đây là lệnh được sử dụng khi muốn trao quyền cho người dùng

Trang 30

REVOKE: Đây là lệnh được sử dụng khi muốn thu hồi lại quyền đã trao cho

người sử dụng.

Ngôn ngữ sử dụng thao tác dữ liệu DML của ngôn ngữ SQL

Ngôn ngữ thao tác dữ liệu (DML- Data Manipulation Language) bao gồm các lệnh sau:

SELECT: Đây là lệnh thường được dùng khi muốn lấy một hoặc một vài bản ghi

nhất định, có từ một hoặc nhiều bảng khác nhau.

INSERT: Được sử dụng khi ta muốn tạo nên một bản ghi

UPDATE: Lệnh này sẽ được thực hiện để chỉnh sửa một bản ghiDELETE: Đây là lệnh được dùng để xóa bản ghi.

Ngôn ngữ địn nghĩa dữ liệu DDL

DDL là viết tắt của từ Data Definition Language Cụm này gồm có các lệnh như sau:

CREATE: Giúp tạo ra một bảng mới, một view mới của một bảng hoặc là của các

đối tượng khác nhau trong cùng một cơ sở dữ liệu.

ALTER: Được sử dụng khi muốn sửa đổi đối tượng khi đã tồn tại bên trong một

cơ sở dữ liệu.

DROP: Xóa bảng, xóa view của một bảng hoặc là của một đối tượng khác bên

trong cơ sở dữ liệu đó.

Trong đồ án em sử dụng hệ quản trị cơ sở dữ liệu MySQL

1.3 Kết luận

Như vậy trong chương này em đã giới thiệu tổng quan chung về bài toán nhậndạng hoạt động trong lớp học cũng như các cách tiếp cận đang được sử dụng, vai tròcủa hệ thống quản lý thông tin từ các hệ thống nhận dạng và các thông tin cơ bản vềcác công nghệ sẽ được sử dụng trong đồ án Trong phần sau em sẽ trình bày các bướcđược tiến hành để xây dựng một hệ thống quản lý thông tin về hoạt động của lớp học

Trang 31

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 Yêu cầu bài toán

Như em trình bày trong mục Mở đầu, đề tài của em có mục tiêu là Xây dựng hệthống quản lý thông tin hoạt động của lớp học nhằm lưu trữ và quản lý các thông tin

liên quan đến lớp học, camera gắn tại lớp học, quản lý kết quả nhận dạng để thực hiệntruy xuất, báo cáo lại khi cần thiết Các nội dung liên quan đến các kỹ thuật nhận dạng,phát triển mô đung nhận dạng hoạt động từ hình ảnh thu thập từ các camera được thựchiện bởi thành viên khác trong nhóm thực hiện đề tài

2.1.1 Yêu cầu về chức năng

Về mặt chức năng, hệ thống được xây dựng cần đảm bảo các chức năng sau :

 Thu thập hình ảnh của lớp học từ cameras gắn tại các lớp học và gửi về hệthống.

 Tự động kết nối/tích hợp với mô đun phân tích nhận dạng các hoạt độngquan tâm từ hình ảnh thu thập được và lưu trữ kết quả phân tích.

 Hệ thống có khả năng quản lý các thông tin về người dùng, phân quyềnngười dùng

 Quản lý thông tin về lớp học và hệ thống camera gắn tại các lớp học. Hiển thị hình ảnh và kết quả nhận dạng, thống kê và xuất báo cáo.

Ngày đăng: 15/07/2024, 16:28

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

TÀI LIỆU LIÊN QUAN

w