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

Khóa luận tốt nghiệp Mạng máy tính và truyền thông dữ liệu: Nghiên cứu, phát triển hệ thống điểm danh cho lớp học thông minh sử dụng công nghệ Bluetooth năng lượng thấp và nhận diện gương mặt

115 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

Thông tin cơ bản

Tiêu đề Nghiên Cứu, Phát Triển Hệ Thống Điểm Danh Cho Lớp Học Thông Minh Sử Dụng Công Nghệ Bluetooth Năng Lượng Thấp Và Nhận Diện Gương Mặt
Tác giả Vũ Quốc An, Nguyễn Phúc Bảo
Người hướng dẫn PGS. TS. Lê Trung Quân, ThS. Nguyễn Khánh Thuật
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Mạng Máy Tính Và Truyền Thông Dữ Liệu
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 39,87 MB

Nội dung

Hệ thống bao gồm các thiết bi Internet of Things IoT được triển khai tại mỗi phòng học để liên tục thu thập thông tin liên quan đến sự hiện diện của mỗi cá nhận sinh viên trong buổi học,

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHO HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG

VŨ QUOC AN - 20521056 NGUYEN PHÚC BẢO - 20521104

KHOÁ LUẬN TỐT NGHIỆP

CHO LỚP HỌC THÔNG MINH SỬ DỤNG CÔNG NGHỆ

BLUETOOTH NĂNG LƯỢNG THÂP VÀ NHAN DIEN

GƯƠNG MẶT

RESEARCH AND DEVELOP ATTENDANCE SYSTEMS FOR SMART

CLASSROOMS USING BLUETOOTH LOW ENERGY AND FACIAL

RECOGNITION TECHNOLOGIES

CU NHÂN NGANH MẠNG MAY TÍNH VÀ TRUYEN THONG DU LIEU

GIANG VIEN HUGNG DAN

PGS TS Lé Trung Quan

ThS Nguyén Khanh Thuat

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Trong suốt thời gian thực hiện khóa luận tốt nghiệp, chúng tôi đã nhận được sựgiúp đỡ và hỗ trợ không ngừng từ quý thầy cô Chúng tôi muốn bày tỏ lòng biết ơn

sâu sắc của mình đến những người đã có đóng góp lớn vào công việc nghiên cứu và

hoàn thiện của chúng tôi.

Đầu tiên, chúng tôi xin được gửi lời cảm ơn chân thành đến PGS TS Lê Trung

Quân và ThS Nguyễn Khánh Thuật, những người đã truyền nguồn cảm hứng to lớn

và cung cấp cho chúng tôi những kiến thức, lời khuyên và định hướng cực kì hữu ích

từ giai đoạn nghiên cứu đến thực nghiệm

Bên cạnh đó, tôi cũng muốn gửi lời cảm ơn đặc biệt đến KS Nguyễn Văn Bảo, người luôn sẵn sàng hỗ trợ và chỉ dạy một cách nhiệt tình trong quá trình thực hiện khóa luận tốt nghiệp này.

Cuối cùng, tôi xin gửi lời cảm ơn sâu sắc nhất đến tất cả những người đã đóng

góp, trực tiếp hoặc gián tiếp, vào công việc nghiên cứu này Sự hỗ trợ của mọi người

đã giúp cho khóa luận tốt nghiệp đạt được kết quả mong đợi và mang lại cho chúng

tôi những trải nghiệm, bài học quý báu.

Nhóm tác giả

li

Trang 3

TÓM TẮTTrong khóa luận này, chúng tôi muốn dé xuất một hệ thống điểm danh thông

minh áp dụng cho các phòng học tại các trường đại học, sử dụng các công nghệ

nhận dạng gương mặt và Bluetooth năng lượng thấp

Hệ thống điểm danh này hướng đến việc khắc phục các khuyết điểm về mặt thời

gian, tính minh bạch của các phương pháp điểm danh đang được áp dụng thời điểm

hiện tại Chúng tôi muốn hệ thống dé xuất khi vận hành sẽ đảm bảo được các yếu tố

sau: xác minh sinh viên thực sự hiện diện tại phòng học, phát hiện khi sinh viên rời

phòng học/vào lại phòng học, tính toán tổng thời gian sinh viên thực sự góp mặt vào buổi học.

Hệ thống bao gồm các thiết bi Internet of Things (IoT) được triển khai tại mỗi phòng học để liên tục thu thập thông tin liên quan đến sự hiện diện của mỗi cá nhận

sinh viên trong buổi học, bao gồm: hình ảnh khuôn mặt và tín hiệu Bluetooth từ

điện thoại cá nhân Các dữ liệu này sẽ liên tục được đưa gửi phía server để xử lý và

dựa vào đó, xác minh rằng sinh viên có tham gia buổi học hay không

Điểm nhấn của hệ thống dé xuất là khả năng lấy dữ liệu khuôn mặt từ nhiều góc

độ, khoảng cách trong phạm vi toàn bộ phòng học và thực hiện nhận dạng gương

mặt một cách liên tục Kết hợp với việc sử dụng dữ liệu tín hiệu Bluetooth thu thập

từ thiết bi di động của từng cá nhân sinh viên làm yêu tố xác minh thứ hai Qua đó,

đảm bảo được được trạng thái có mặt của sinh viên có thể được đánh giá một cách

minh bạch, căn cứ vào nhiều nguồn dữ liệu Bên cạnh đó, kết quả điểm danh củamột sinh viên sẽ được đánh giá từ dữ liệu của quá theo dõi suốt buổi học, thay vì chỉ

điểm danh qua một lần duy nhất như các phương pháp truyền thống.

1H

Trang 4

MỤC LỤC

Thông tin hội đồng bảo vệ khóa luận i

Lời cảm on ii

Tóm tắt iii

Muc luc iv

Danh muc cac bang viii

Danh mục các hình vẽ và đồ thị ix

Danh mục từ viết tat xiii

Chương1 Mở dau 1

11 Lýdochọnđểtài 1

1.2 Các nghiên cứu lên quan - 2

1.3 Mục tiêu, đối tượng và phạm vi nghiên cứu 5

1.3.1 Mục tiêunghiên cỨu 5

1.3.2 Đối tượng nghiêncứu - 5

143.3 Phạmvinghincứu 5

1.4 Phương pháp nghiên cỨu - 5

1.4.1 Thiết kế mô hình ldF - 5

1.4.2 Lựa chọn mô hình máy học phù hợp, thu thập dataset, huấn luyện và đánh giá 6

1.4.3 Thiết lập các thiết bị thu thập dữ liệu và các thiết bị biên, bố trí tại môi trường thửnghiệm 6

1.4.4 Xây dung server, tìm hiểu và triển khai Kafka 7

1.4.5 Phat triển ứng dụng web 7

1.5 Các đóng góp chính của đề tài - 7

1.6 Cấu trúc Khoá luận tốtnghiệp - 8

Chương 2 Co sở lý thuyết 9

1V

Trang 5

MỤC LỤC

2.1 Thị giác máy tính Ặ Ặ Ặ QẶ Q Q Q 9

2.2 Nhận dạng khuôn mặt 9

2.2.1 Phát hiện khuôn mặt bằng You Only LookOnce 10

2.2.2 Trích xuất đặc trưng bằng FaceNet 18

2.2.3 Phân loạibằngSVM 21

2.2.4 Lựa chọn kết hợp FaceNet với SVM_ 23

23 Pytorch Q Q ee 25 2.4 TensorRl Ặ HQ HQ eee eee 25 2.5 Bluetooth Low Energy Ặ Ặ Ặ Q Q eee eee 25 26 MOTT Quy va 26 2.7 KafKka Q Q Q Q HQ ee 26 2.8 SpringBOOL Q Q Q Q Q1 1xx 2 28 2.9 PostgresSQL Ặ Q2 v2 30 2.10 Flutter .ZZ⁄2⁄ gr ww Ne Re 31 Chương 3 Phuong pháp thực hiện 33 3.1 Thiết kế mô hình IoT và mô hình họat động 33

3.1.1 Mô hình bồ trí thiết bị tạ phòng học 33

3.1.2 Lu6ng hoạt động tổng quan của hệ thống 34

3.1.3 Để xuất cấu trúc topic Kafka 36

3.1.4 Luôồng xử lí dữ liệu tạ biên 37

3.1.4.1 Tiến trìnhchính 37

3.1.4.2 Tiến trình xử lý dữ liệu hnhảnh 39

3.1443 Tiến trình xử lý dữ liệu BLE 40

3.1.5 Phương pháp đánh giá dựa trên nhiều nguồn dữ liệu 41

3.1.6 Mô hình triển khai hệthống 43

3.2 Thu thập dataset, huấn luyện các mô hình và đánh giá 45

3.21 Mô hình phát hiện khuôn mặt 45

3.2.1.1 Dataset 2 0 000000004 45 3.2.1.2 Huấn luyện mô hình phát hiện khuôn mặt và đánh giá 47 3.2.2 Mô hình trích xuất đặc trưng và phân loại 50

Trang 6

MỤC LỤC

3.2.2.1 DafasetL ee Ko 51

3.2.2.2 Huấn luyện mô hình trích xuất đặc trưng và đánh giá 52

3.2.2.3 Huấn luyện mô hình phân loại và đánh gid 33

3.3 Thiết lập và cấu hình các thiết bị tại biên 55

3.3.1 Thiết bị thu thập dữ liệu hình ảnh 55

3.3.2 Thiết bị thu thập dữ liệu BLE 59

3.3.3 Lập lịch thực thi trên các thiétbi 61

3.4 Triển khai hệ thống Backend - 63

3.4.1 Tạo dựng các service tại S€TVeT 63

3.4.1.1 Nền tẳảngOpenstack 63

3.4.1.2 Các serviceDocker 64

3.4.2 Xây dựng hệ thống cơ sở dữ liệu sử dụng PostgreSQL 66

3.4.3 Xây dựng Hệ thống API server sử dung Spring boot 67

3.5 Phát triển ứng dụngWeb 73

3.5.1 Phát triển ứng dụng mobile app dành cho Học sinh/ Sinh viên với/Bttena g SẼ vn / 73

3.5.1.1 Mục Tiêu Xây Dựng Ứng Dụng 73

3.5.1.2 Tổng quanứngdụng 73

3.5.1.3 Đánh giá ứng dụng dựa trên tiêu chí datra 80

3.5.2 Phát triển ứng dung web app dành cho Quan trị viên/Giảng viên với FÏluffer ẶẶẶ Ặ So 81 3.5.2.1 Mục Tiêu Xây Dựng Ứng Dụng 81

3.5.2.2 Manhinh đăng nhập 82

3.5.2.3 Trang Quản libudihoc 82

3.5.2.4 Trang Quản lí tài khoản thành vién 86

Chương 4 Thực nghiệm, đánh giá và thảo luận 88 4.1 Đánh giá về mặt tài nguyên tài nguyên cho quá trình diện khuôn mặt 88 4.2 Đánh giá mô hình nhận diện khuôn mặt dựa trên khoảng cách 88

4.3 Đánh giá vận hành của BLE station và app hỗ trợ điểm danh 89

4.4 Đánh giá mô hình nhận diện khuôn mặt qua một số kịch ban 91

VI

Trang 7

MỤC LỤC

4.5 Thử nghiệm và đánh giá hệ thống với một buổi hoc mô phéng

4.5.1 Kịch bản mô phỏng

4.5.2 Thực hiện thửnghiệm

4.5.3 Kếtquảvàđánhgiá

-4.5.3.1 Kết quả thựenghiệm

4.5.3.2 Đánh giáhệthống

Chương 5 Kết luận và hướng phát triển 5.1 Kếtluận

52 Hanché

5.3 Hướng phát triển

Tài liệu tham khảo

vil

91 92 92 94 94

97

98 98 98 99 102

Trang 8

DANH MUC CAC BANG

Đánh giá dự đoán của YOLOv5 50 Đánh giá dự đoán của YOLOv8 50

Tài nguyên khi chạy luồng nhận diện khuôn mat 88 Bảng số liệu hiệu năng model trên các khoảng cách khác nhau 89 Kết quả quá trình nhận diện khuôn mặt đối với một số kịch bản 91 Bảng đối tượng và kịch bản - 92 Bảng chi tiết số liệu kết quả điểm danh 96

VII

Trang 9

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ

2.1 Hai đối tượng điển hình để phân loại trong object detection: chó va

¡2 ẰẮẰ ee 10

2.2 Minh họa chỉ sốlOU .- 11

2.3 Minh hoa Precision Recall Curve 12

2.4 Minh hoa mAP của một bài toán phát hiện đối tượng 13

2.5 Cấu trúc mạng CNN trong ứng dung phân loại đối tượng hình anh 13

2.6 Cấu trúc của R.CNN Ặ co 14 2.7 Cấu trúc củaSSD ee ee eee 15 2.8 Cấu trúc tổng quát của YOLO 15

2.9 Biểu đồ hiệu suất của YOLOVS so với các phiên bản mới hơn trên tập dữ liệu COCO Q0 ee 16 2.10 Biểu đồ của các weights YOLOv5 trên tập dữ liệu COCO (va so với kiến trúc EfficientDet) 16

2.11 Thông số của các weights YOLOv5 trên tập dữ liệu COCO 17

2.12 Kiến trúc của YOLOv5 18

2.13 Tham số của YOLOv5 backbone 18

2.14 Luéng hoạt động giao thức MQTT 26

2.15 Kiến trúc cơ bản của môt hệ thống Kafka 28

2.16 Spring boot Ặ Q Q Q LH ee 30 2.17 PostgreSQL Ặ.Ặ ee 31 3.1 Mô hình bồ trí thiết bị tai phòng học - 34

3.2 Luông hoạt động tổng quan của hệ thống 35

3.3 Cấu trúc topic kafka cho hệ thống 36

3.4 Main Process trong chương trình xử lý dữ liệu biên tại Server 38

3.5 Process | xử lí dữ liệu hình ảnh nhận từ Kafka Broker 40

3.6 Process 2 xử lí dữ liệu BLE từ MQTT Broker 4I 3.7 Đề xuất phân phối dữ liệu từ nhiều nguồn từ biên đến server 42

3.8 Minh họa xử lý dữ liệu khuôn mặt thu thập từ 2 camera trong cùng một môi trường lớp học -.- - 42

1X

Trang 10

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ

3.9 Mô hình triển khai hệ thống

-3.10 Dataset face detection FDDB

3.11 Dataset face detection tự thu thập

3.12 Kết quả huấn luyện mô hình YOLOv5

3.13 Các metrics huấn luyện mô hình YOLOv5

3.14 Kết quả huấn luyện mô hình YOLOv8

3.15 Các metrics huấn luyện mô hình YOLOv8

3.16 Ví dụ về các góc mặt của mỗi đối tượng trong Dataset

3.17 Cau trúc thư mục lưu trữ Dataset

3.18 Import và sử dụng FaceNet

3.19 Ví dụ về giá trị embedding là các output từ hàm get_embedding

3.20 Phan chia Data train và Data

test -3.21 Import và sử dụng SVC để thực hiện tran .

3.22 Kết quả quá trình train trên tệp dữ liệu test

-3.23 Camera sử dụng Ặ cẶ ee ee 3.24 Máy tính nhúng sử dụng

3.25 Các bước để xuất mô hình phát hiện khuôn mặt sang định dạng Ten-3.26 Doan mã load mô hình vào chương trình

3.27 Doan mã đọc frame ảnh từ camera và tiến hành sử dụng mô hình

3.28 Doan mã gửi các hình ảnh khuôn mặt đến Kafka Broker

3.29 Mau dữ liệu gửi đến Kafka Broker - Trường "data"

3.30 Mẫu dữ liệu gửi đến Kafka Broker - Trường "timestamp"

3.31 BLE station sử dụng ẶẶ ee 3.32 Đoạn mã quét các thiết bị BLE lân cận và publish thông tin đến MQTT Broker .Ặ.ẶẶ es 3.33 Doan mã đóng gói dữ liệu JSON trước khi publish đến MQTT Broker 3.34 Mẫu dữ liệu gửi đến MQTT

Broker -3.35 Cơ chế lập lịch các chương trình trong hệ thống

3.36 Doan mã nhận về thông tin lập lich từ MQTT Broker

3.37 Doan mã tiến hành lập lịch với Crontab

52 52

53 53

54 54 55 55 55

56 56 57 58 59 59 59

Trang 11

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ

3.38 Shell script đã được lập lịch để chạy

3.39 Các VPS sử dụng HQ va 3.40 Các Security group sử dụng

3.41 File định nghĩa docker-compose trên instnace "web01"

3.42 File định nghĩa docker-compose trên instnace "computeO1" .

3.43 Sơ đồ cơ sở dữ liệu Ặ

3.44 Mô hình kiến trúc Layered

Architecture -3.45 Mô hình xác thực và ủy quyền sử dụng JWT Eilter và Spring Security 3.46 Ví dụ về một số class quan trọng trong quá trình phát triển API server 3.47 Ví dụ về một số dịch vụ khả dụng đối với hệ thông API server

3.48 Ví dụ về một yêu cau thành công của class member_class va reponse 3.49 Màn hình Account của ứng dụng Studen

3.50 Hộp thoại cập nhật địa chỉ Bluetooth vật lí của thành viên .

3.51 Thông báo lỗi cập nhật BLE kèm thời gian cho đến khi người dùng có thể tiếp tục sử dụng chức năng này

3.52 Màn hình Classes của ứng dụng Studem

3.53 Màn hình History của ứng dụng Studem

3.54 Màn hình Login của ứng dụng Student

3.55 Màn hình Reconnect của ứng dung Studem

3.56 Màn hình đăng nhập của ứng dụng Web

3.57 Trang Quản lí buổi học của ứng dụng Web .

3.58 Hộp tạo buổi học tại màn hình quản lí buổi học

3.59 Giao diện chọn ngày cho buổi học .

3.60 Giao diện chọn giờ cho buổi

học -3.61 Hộp hiển thị thông tin buổi học khi có ít nhất một trường vào chế độ chỉnh sửa Ặ eee 3.62 Hộp hiển thị thông tin buổi học, hiển thị các thành viên thuộc buổi học hiện tại và không thuộc buổi học hiện tại với các thao tác để thêm hoặc xóa thành viên đối với lớp

đó -3.63 Giao diện trang Quản lí tài khoản

XI

63

66 68 69 70 71

72

72 74 75

76

T1

78 79 80 82 83 84 84 85

85

Trang 12

Các đối tượng thực hiện đăng nhập và sử dụng ứng dụng

Các đối tượng tham gia một buổi học như bình thường

Kết quả điểm danh của một đối tượng có tỉ lệ tham gia từ 50 đến 80%

Log tại tiến trình Đoạn log kết quả trả về của quá trình trình nhận diện khuôn mặt.

Hai -Doan log kết quả điểm danh sử dụng nhận diện khuôn mặt

Log tại tiễn trình Main

Process -XI

87

89

Trang 13

DANH MỤC TU VIET TAT

AI Artifial Intelligence

ANN Artificial Neural Networks

AP Average Precision

BLE Bluetooth Low Energy

CGAN Conditional Generative Adversarial Networks

CNN Convolutional Neural Network

CV Computer Vision

DLA NVIDIA Deep Learning Accelerator

FDDB Face Detection Dataset and Benchmark

GAN Generative Adversarial Networks

HOG Histogram Of Oriented Gradients

Tol Internet Of Things

IoU Intersection over Union

LBPH Local Binary Patterns Histograms

M2M Machine to Machine

mAP Mean Average Precision

ML Machine Learning

MQTT Message Queuing Telemetry Transport

MTCNN Multi-task Cascaded Convolutional Neural Network R-CNN _ Region-Based Convolutional Neural Network

RFID Radio Frequency Identification

RSSI Received Signal Strength Indication

SRGAN Super Resolution Generative Adversarial Networks SSD Single Shot MultiBox Detector

SVM Support Vector Machines

VPS Virtual Private Server

YOLO You Only Look Once

xiii

Trang 14

Chương 1 MỞ ĐẦU

1.1 Lý do chọn dé tài

Trong lĩnh vực giáo dục bậc dai học, yếu tố chuyên cần của mỗi sinh viên là cực

kì quan trọng Đầu tiên, sinh viên tham gia đầy đủ các buổi học sẽ có đầy đủ nền

tảng kiến thức để có kết quả đầu ra của môn học tốt nhất Bên cạnh đó, giảng viên

cũng cần nắm rõ được tình trạng chuyên cần của sinh viên để có thể đưa ra những

nhắc nhở vi phạm, cũng như có cơ sở để đánh giá kết quả đầu ra cho sinh viên Hiệntại, việc ghi nhận sự có mặt hoặc vắng mặt của sinh viên, hay còn gọi là điểm danh,đang được áp dụng bằng các hình thức phổ biến như:

° Hình thức 1: Gọi tên và hồi đáp

¢ Hình thức 2: Ký tên vào danh sách.

» Hình thức 3: Điền thông tin trực tuyến.

¢ Hình thức 4: Quét thẻ Radio Frequency Identification (RFID).

Các hình thức kể trên tồn tại những hạn chế như sau:

* Không đảm bảo được thời gian Cần bỏ ra một phan thời lượng đáng kể của

buổi học để thực hiện (hình thức 1 & 2).

* Không đảm bam được tính minh bạch Tat cả các hình thức trên có thể được

thực hiện bởi bat cứ ai thay thế cho sinh viên vắng mặt Giảng viên rất khó có

thể kiểm soát.

¢ Không đảm bảo được sự có mặt trong toàn bộ buổi học Sinh viên có thể chi

có mặt để tại thời điểm cần thực hiện một trong những hình thức điểm danh trên và rời lớp Giảng viên rất khó có thể kiểm soát.

Từ những van dé đã trình bày, chúng tôi dé xuất xây dựng một hệ thống điểm danh lớp học thông minh và hiệu quả, có thể thay thế các hình thức đang được áp dụng.

Đảm bảo được 3 tiêu chí sau: hạn chế thao tác thủ công, đảm bảo tính minh bạch và

đánh giá hợp lí dựa trên thời lượng tham gia.

Trang 15

CHƯƠNG I MỞ ĐẦU

1.2 Các nghiên cứu liên quan

Nhóm tác giả [1] triển khai hệ thống điểm danh hoàn toàn trên một thiết bi Raspberry

Pi 3 Model B, bao gồm chức năng nhận diện khuôn mặt lẫn chức năng thông báođến điện thoại của sinh viên Raspberry Pi được kết nối với module Pi camera 5 MP,

có kha năng ghi hình với độ phân giải 1080p và 60fps Nhóm tác giả thực hiện đánh

giá 2 mô hình face detection là Haar Cascade và Multi-task Cascaded Convolutional

Neural Network (MTCNN), kết quả cho thay MTCNN có độ chính xác vượt trội tuynhiên hiệu suất rất chậm khi được chạy trên Raspberry Pi Bên cạnh đó, nhóm tácgiả lựa chọn FaceNet làm bộ trích xuất đặc trưng, với ưu điểm mô hình đã được huấnluyện với dataset lớn và thực hiện tinh chỉnh (fine-tune) với dataset của mình Cuối

cùng, Support Vector Machines (SVM) được sử dụng làm bộ phân loại xác định

danh tính khuôn mặt Những sinh viên được nhận diện cùng với thời gian sẽ được

tự động ghi nhận vào file csv nhờ các module python Bên cạnh đó, Raspberry Pi

sẽ gửi thông tin lên server Twillio để trả về tin nhắn SMS xác nhận điểm danh đến

số điện thoại của sinh viên Kết quả thực nghiệm trong môi trường phòng học chothấy hệ thống dé xuất cho độ chính xác khá cao, có khả năng nhận diện nhiều sinh

viên trong khung hình Tuy nhiên, kết quả phân loại sẽ thiếu chính xác trong những trường hợp gặp ánh sáng kém, hoặc đối tượng quay mặt đáng kể khỏi camera.

Công trình [2] thực hiện huấn luyện và so sánh 4 mô hình face detection: Faster

Region-Based Convolutional Neural Network (R-CNN), ResNet, MTCNN và

Mo-bileNet Single Shot MultiBox Detector (SSD) Kết qua cho thay Faster R-CNN cho

độ chính xác vượt trội, tuy thời gian thực thi lên một bức ảnh của nó là chậm hơn 3

mô hình còn lại Bên cạnh đó, nhóm tác giả đề xuất một phương pháp giải quyết tình trạng false-positive khi nhận diện một đối tượng dựa vào các thông số như tần suất

của khuôn mặt được nhận diện, độ chính xác của các lần nhận diện thành công

Nhóm tác giả [3] sử dụng phần cứng Jetson Nano để chạy mô hình nhận diệnkhuôn mặt cho hệ thống điểm danh của họ Tác giả kiểm thử các mô hình facedetection (phát hiện các khuôn mặt trong ảnh) sau đây trên cùng một phần cứng:

SSD (Single Shot Detector), MTCNN, MobileNetV2, RectinaNet Két qua cho thaySSD có độ chính xác cao tương đương các mô hình còn lại nhưng đạt được trên 20

Trang 16

CHUONG 1 MỞ ĐẦU

FPS, trong khi đó các mô hình còn lại chỉ đạt được dưới 5 FPS.

Công trình [4], [5] áp dụng sử dụng kỹ thuật học sâu không giám sát Generative

Adversarial Networks (GAN) với hai biến thể là Conditional Generative Adversarial

Networks (CGAN) va Super Resolution Generative Adversarial Networks (SRGAN)

để cải tiến giai đoạn tiền xử ly anh, từ đó cải tiến hiệu quả nhận diện GAN là môhình mạng có khả năng sinh ra dữ liệu mới giống với dữ liệu trong dataset có sẵn

sau quá trình học GAN được các tác giả này sử dụng để cải thiện độ phân giải hình

ảnh từ camera, giúp giảm mờ bởi các yếu tố như chuyển động, khoảng cách của đối

tượng G xa.

Công trình [6] triển khai hệ thống điểm danh sử dụng công nghệ nhận diện khuôn

mặt Đối với quá trình nhận diện khuôn mặt, nhóm tác giả sử dụng 3 loại mô hìnhCNN đã được huấn luyện trước (pre-trained): AlexNet, GoogleNet và SqueezeNet

Tại bước tạo dataset, nhóm tác giả áp dụng tăng cường dữ liệu để tăng hiệu quả huấn luyện cũng như giảm tỉ lệ overfitting Hình ảnh thu thập từ các đối tượng được

chụp với nhiều góc độ, điều kiện ánh sáng khác nhau Ngoài ra trước khi được nạp

vào mang, các hình ảnh từ dataset còn được xoay va tăng tỉ lệ một cách ngẫu nhiên Bên cạnh đó, nhóm tác giả cũng thực hiện tinh chỉnh (tuning) một vài tham số của

mạng trước khi tiến hành huấn luyện cho phù hợp với mục đích, bao gồm tham sốtại lớp tích chập 2D (convolution 2D layer) và lớp phân loại đầu ra (classification

output layer) thông qua công cu deep network designer của MATLAB Các tham số

learning rate, training time, epochs, validation frequency cũng được nhóm tác giả

điều chỉnh cho phù hợp Độ chính xác lên tập kiểm tra trong quá trình huấn luyện

của cả 3 mạng đều cho độ chính xác rất cao ( > 90% ), với AlexNet đứng đầu Kếtquả dự đoán thực nghiệm đối với hình ảnh mới cũng cho độ chính xác cao tương tự.AlexNet cũng được tác giả kiểm chứng độ hiệu quả đối với các mạng CNN khác nhưResnet50, ResNet-101 và nó cho kết quả vượt trội hơn

Nhóm tác giả [7] triển khai hệ thống điểm danh với công nghệ nhận diện khuônmặt thông qua một ứng dụng web viết bằng framework Flask Với công việc face

detection, tac gia sử dụng You Only Look Once (YOLO), đây một mạng CNN hoc sâu được pre-trained Hai mô hình face recognition được tác gia thử nghiệm đó là

Local Binary Patterns Histograms (LBPH)) và Dlib Tại mỗi buổi học, sinh viên

Trang 17

CHUONG 1 MỞ ĐẦU

sẽ sử dụng giao diện của ứng dụng web kết hợp với webcam để chụp lại ảnh mặt

mình và gửi đi Tại server sẽ chạy lần lượt bước face detection lên ảnh gốc và face recognition lên khuôn mặt đã xác định Nếu nhận diện thành công, thông tin của sinh viên sẽ được tự động trích xuất từ database (SQLite 3) và ghi nhận vào một file

csv Khi buổi học kết thúc, file csv này sẽ được gửi qua mail đến admin Kết quảcho thấy YOLO phát hiện tốt khuôn mặt kể cả khi xoay ở các góc khác nhau và độ

chính xác nhận diện khi sử dụng Dlib cao hơn.

Nhóm tác giả [8] và [9] đề xuất hệ thống điểm danh sử dung công nghệ Bluetooth

năng lượng thấp Bluetooth Low Energy (BLE) Các BLE stations (trạm) bồ trí trong

phòng học liên tục phát tín hiệu tìm kiếm các thiết bị BLE khác trong phạm ví bằngchế độ discovery, nếu thiết bị không tạo kết nối Bluetooth với station thì nó sẽ phảnhồi lại station giá trị Received Signal Strength Indication (RSSI) Công trình [11] sửdụng phương pháp toán hoc, bao gồm Distance calculation và Trilateration method

(Geometrical Method) để tính toán vị trí dựa trên RSSI Trong khi đó, công trình [10] có cách tiếp cận phức tạp hơn, sử dụng thêm dif liệu địa chi MAC (địa chỉ độc

nhất dùng để định danh từng smartphone) Phương pháp fingerprint localization

được áp dụng để tạo nên fingerprint database Fingerprint database này được sử

dụng làm dataset để huấn luyện mô hình dự đoán vị trí BLE enabled — device dựa

vào các giá trị RSSI Nhóm tác giả chọn Artificial Neural Networks (ANN) làm

mô hình để dự đoán vi trí indoor của các BLE device Tác giả chỉ ra rằng mô hìnhnày hoạt động giúp kết quả ít sai lệch trong các trường hợp tín hiệu vô tuyến bị ảnh

hưởng bởi vật cản, tường.

Các công trình [10], [11], [12] vẫn áp dụng thuật toán face detection cũ Haar Cascade vào ứng dụng điểm danh thông minh của mình Nhóm tác giả [10] thực

hiện so sánh và đưa ra kết quả độ chính xác của Haar Cascade trong face detecting

vượt trội hơn so với các thuật toán Histogram Of Oriented Gradients (HOG) và

Convolutional Neural Network (CNN) Tuy nhiên, một trong những khuyết điểm

của Haar Cascade là tỉ lệ nhận diện sai (false-posifive) cao.

Trang 18

CHƯƠNG I MỞ ĐẦU

1.3 Mục tiêu, đối tượng và phạm vi nghiên cứu

1.3.1 Mục tiêu nghiên cứu

- Thiết lập và cấu hình các thiết bị IơT trong phòng hoc.

- Chuẩn bị dataset phù hợp và huấn luyện mô hình nhận diện khuôn mặt hoạt động

tốt trong môi trường triển khai

- Triển khai và cầu hình Kafka phục vụ xử lý dữ liệu lớn và phân tán

- Đề xuất phương pháp tính toán để đánh giá một cách hợp lý trạng thái hiện diện

của sinh viên trong lớp dựa trên dữ liệu thu thập.

- Xây dựng ứng dụng web cho phép giảng viên quản lý và lập lịch các phiên điểm danh, cũng như người dùng tra cứu thông tin kết quả điểm danh.

1.3.2 Đối tượng nghiên cứu

- Máy tính nhúng Raspberry Pi va Jetson Nano.

- Trích xuất, xử lý đữ liệu đầu vào từ camera và BLE station.

- Dataset: dataset tự thu thập và Face Detection Dataset and Benchmark (FDDB).

- Các mô hình cho việc nhận diện khuôn mặt: YOLO, FaceNet, SVM.

- Nền tảng Kafka [13], [14]

1.3.3 Phạm vi nghiên cứu

- Ví trí lắp đặt thiết bị: phòng Lab E3.1 tại trường Đại học Công Nghệ Thông tin

- Phạm vi nghiên cứu: hệ thống điểm danh thông minh cho lớp học sử dung dữ liệu nhận diện khuôn mặt từ camera và tín hiệu BLE từ smartphone để liên tục theo dõi

trạng thái có mặt của sinh viên trong suốt thời lượng buổi học Kết quả điểm danh

hoàn chỉnh sau buổi học được tính toán, lưu trữ và có thể được tra cứu qua ứng dụng

web.

1.4 Phương pháp nghiên cứu

1.4.1 Thiết kế mô hình IơT

Phương pháp:

Trang 19

CHUONG 1 MỞ ĐẦU

° Nghiên cứu thông tin về các thiết bị, giao thức và công nghệ sử dung qua

Internet, tài liệu từ nhà phát triển, các công trình liên quan.

« Quan sát kiến trúc phòng cần triển khai để quyết định số lượng và vi trí các module camera, BLE station theo các tiêu chí sau: mọi sinh viên cần được ghi hình,

mọi thiết bị Smartphone của sinh viên đều phải nam trong phạm vi giao tiếp với

BLE station.

Kết quả dự kiến:

« Hoàn thành được mô hình tổng quan hệ thống và mô hình bồ trí thiết bi đảm

bảo tính khoa học và thực tiễn Đồng thời khả thi để triển khai

1.4.2 Lua chọn mô hình máy học phù hợp, thu thập dataset, huấn luyện va

đánh giá

Phương pháp:

« Đảm bảo số lượng dé liệu trong dataset cũng như tính đa diện Có thể kết hợp

sử dung dataset public và kĩ thuật tinh chỉnh hình ảnh để làm phong phú dataset.

¢ Đối với dataset cho face detection: hình ảnh nên chứa các khuôn mặt với đa

diện kích thước, biểu cảm, góc mặt, điều kiện ánh sáng Đối với dataset cho mô hìnhface recognition: phản ánh nhiều trạng thái cảm xúc, góc mặt, điều kiện ánh sáng

s Lựa chon mô hình hoạt động tốt trong ngữ cảnh triển khai cũng như tài nguyên

phần cứng đang có.

Kết quả dự kiến:

* Mô hình nhận diện khuôn mặt qua camera với hiệu suất và độ hính xác tốt.

1.4.3 Thiết lập các thiết bị thu thập dữ liệu và các thiết bị biên, bo trí tại môi

trường thử nghiệm

Phương pháp:

« Tham khảo các tài liệu hướng dẫn từ cộng đồng và nhà phát triển

« Bố trí môi trường thử nghiệm để có thể kiểm thử hệ thống một cách khách quan.Kết quả dự kiến:

« Các thiết bị biên được bố trí và thiết lập đầy đủ các tư viện, chương trình, mô

hình cần thiết Đảm bảo chúng có thể thu thập và gửi dữ liệu hiệu quả.

Trang 20

CHƯƠNG I MỞ ĐẦU

1.4.4 Xây dựng server, tim hiểu và triển khai Kafka

Phương pháp:

* Tham khảo các tài liệu hướng dẫn từ cộng đồng và nhà phát triển

« Kiểm thử kết nối và hoạt động của tat cả các thành phan.

« Chuẩn bị tài nguyên phần cứng đáp ứng được hoạt động của hệ thống.

Kết quả dự kiến:

s Triển khai phía server có thể tiếp nhận, xử lý và lưu trữ dữ liệu gửi đến từ cácthiết bị biên Hệ thống được hoàn thiện

1.4.5 Phát triển ứng dung web

Phương pháp: * Thiết kế cấu trúc database một cách khoa học.

* Lựa chọn web framework phù hợp, hoạt động tốt API và database sử dụng

° Đảm bảo các tiêu chí: giao diện rõ ràng, dé sử dụng, quản lý truy cập và hỗ trợ

được các chức năng cần thiết cho giảng viên

Kết quả dự kiến:

* Ứng dụng web phục vụ tốt các chức năng cho giảng viên cũng như sinh viên

trong việc điểm danh và tra cứu thông tin.

1.5 Các đóng góp chính của đề tài

Trong đa số các hệ thống xác thực hiện nay, khuôn mặt là một trong những dữ liệu

đáng tin cậy nhất Do đó, chúng tôi sẽ áp dụng phương pháp nhận diện khuôn mặt

(facial recognition) làm yếu tố chính để định danh đối tượng trong hệ thống điểmdanh thông minh đề xuất Bên cạnh đó, chúng tôi cũng áp dụng công nghệ BLE vào

hệ thống, đây cũng là dữ liệu để xác định sự có mặt của sinh viên thông qua thiết bị

smartphone từng cá nhân sở hữu Dữ liệu này đóng vai trò là yếu tố bổ trợ trong các mốc thời gian khuôn mặt của đối tượng không thể được nhận diện.

Những dữ liệu nhận diện khuôn mặt và tín hiệu BLE sẽ được phân tích liên tục

để phát hiện và ghi nhận những trường hợp sinh viên ra/vào lớp trong suốt buổi học.Chúng tôi sử dụng công cụ Kafka [11],[12] để hỗ trợ xử lý luồng lớn dữ liệu hình

ảnh, BLE một cách phân tán mà vẫn đảm bảo tốc độ truyền tải cũng như thứ tự dữ

Trang 21

CHƯƠNG 1 MỞ ĐẦU

liệu.

Mô hình IoT được áp dụng vào môi trường lớp học để triển khai hệ thống điểm danh thông minh, sử dụng các máy tính nhúng và module để có thể thu thập dữ liệu, tính toán biên (Edge Computing), cũng như giao tiếp với Server.

1.6 Cấu trúc Khoá luận tốt nghiệp

Khóa luận với đề tài “NGHIÊN CỨU, PHÁT TRIỂN HỆ THONG ĐIỂM DANH

CHO LỚP HỌC THÔNG MINH SỬ DỤNG CÔNG NGHỆ BLUETOOTH NĂNG

LUONG THAP VÀ NHẬN DIỆN GƯƠNG MAT” được trình bày bao gồm 5 chương |

Nội dung tóm tắt từng chương được trình bày như sau:

* Chương 1: Mở đầu.

* Chương 2: Cơ sở lý thuyết.

» Chương 3: Phương pháp thực hiện.

« Chương 4: Thực nghiệm, đánh giá và thảo luận.

* Chương 5: Kết luận và hướng phát triển.

Trang 22

Chương 2 CƠ SỞ LÝ THUYET

Trong chương này, chúng tôi sẽ đề cập đến cơ sở lý thuyết cần thiết để hiểu sâuhơn về van dé được nghiên cứu trong khóa luận Chúng tôi sẽ trình bày các kháiniệm, lý thuyết, kiến trúc và thông số, tạo nền tảng cho việc phát triển phần thực

nghiệm và phân tích kết quả sau này.

2.1 Thị giác máy tính

Thị giác máy tính Computer Vision (CV) là công nghệ trong đó máy tính có khả

năng tự động nhận biết và mô tả hình ảnh một cách chính xác Hiện nay, có rất

nhiều nguồn dữ liệu hình ảnh mà máy tính có thể đọc được như thoại thông minh,

camera giao thông, camera giám sát Do đó, ứng dụng thị giác máy tính sử dụng trí

tuệ nhân tạo Artifial Intelligence (AI) và may hoc Machine Learning (ML) được áp

dụng ngày càng phổ biến Chi với những dữ liệu hình ảnh này, một số lượng lớn các ứng dụng liên quan đến thị giác máy tính có thể được triển khai như xác minh danh tinh, phân tích cảm xúc, theo dõi mật độ giao thông, dự báo thời tiết,

2.2_ Nhận dạng khuôn mặt

Nhận dạng khuôn mặt (Facial Recognition) là một ứng dụng thị giác máy tính, gồm

quá trình xác định hoặc xác nhận danh tính của một người qua khuôn mặt của họ.

Công nghệ này hoạt động bằng cách xác định và đo lường các đặc điểm khuôn mặt

trong hình ảnh Nó có khả nắng xác định khuôn mặt người trong hình ảnh hoặc

video, kiểm tra xem khuôn mặt xuất hiện trong hai hình ảnh có phải là cùng một người không hoặc tìm kiếm một khuôn mặt trong một bộ sưu tập lớn các hình ảnh

hiện có Các hệ thống bảo mật sinh trắc học sử dụng công nghệ nhận dạng khuônmặt để xác định cá nhân độc nhất cho quá trình đăng nhập, cũng như tăng cường cho

hoạt động xác thực người dùng.

Quá trình nhận dạng khuôn mặt trải qua 3 bước chính như sau: phát hiện khuôn mặt

(Face Detection), trích xuất đặc trưng (Feature Extraction) và phân loại

(Classifica-tion).

Trang 23

CHƯƠNG 2 CƠ SỞ LÝ THUYET

2.2.1 Phát hiện khuôn mặt bang You Only Look Once

s« Phát hiện đối tượng:

© Phát hiện đối tượng hay phát hiện vật thể (Object Detection), là một ứng

dụng thị giác máy tính giúp nhận diện và xác định vị trí các đối tượngthuộc các lớp được xác định trước trong các hình ảnh đầu vào

© Với sự phát triển của học sâu (Deep Learning), việc phát hiện đối tượng

đã đạt được những kết quả hứa hẹn Nhiều thuật toán và mô hình đã được

phát triển cho phát hiện đối tượng như: R-CNN, Faster R-CNN, YOLO

và SSD Các thuật toán và mô hình này đang được sử dụng trong các ứng

dụng khác nhau, như xe tự lái, hệ thống giám sát và theo dõi đối tượng

Hình 2.1 Hai đối tượng điển hình để phân loại trong object detection: chó và mèo.

© Các thông số đánh giá (metrics) hiệu suất chính của mô hình phát hiện

đối tượng:

- Intersection over Union (IoU): IoU IoU là tỷ lệ giữa phần giao và phan

hợp của vùng dự đoán và vùng đối tượng thật.

Trong đó:

+ Area of Overlap là diện tích vùng giao nhau giữa hộp giới hạn

(bound-ing box) phát hiện bởi mô hình và hộp giới hạn thực tế (đã dán nhãn trước

đó).

+ Area of Union là diện tích toàn bộ phần hợp của hộp giới hạn phát hiện

bởi mô hình và hộp giới hạn thực tế.

10

Trang 24

CHƯƠNG 2 CƠ SỞ LÝ THUYET

area of overlap _ [|

area of union [7]

Hình 2.2 Minh họa chỉ số IOU

IOU =

Dé xác định dự đoán là đúng hay là sai, chúng ta dựa vào một ngưỡng

(threshold) cho trước (có thể là 0.5, 0.75, 0.95, ), nếu IoU lớn hơnhoặc bằng ngưỡng thì đó là kết luận dự đoán đúng, ngược lại là dự đoán

sai Định nghĩa True/false positive/negative:

+ True Positive (TP): dự đoán đúng, khi IoU lớn hơn hoặc bằng ngưỡng

+ False Positive (FP): dư đoán sai, IoU bé hơn ngưỡng.

+ False Negative (FN): không thé dự đoán, khi mô hình không cho ra được hộp giới nhưng theo thực tế phải có hộp giới hạn.

-Average Precision (AP):

Đối với bài toán Object Detection, hai chỉ số precision va recall được định

nghĩa như sau:

+ Precision: thể hiện độ chính xác của dự đoán (%)

+ Recall: thể hiện độ tốt của khả năng cho ra các dự đoán đúng (%)

Công thức tinh precision:

TP TP Precision = = NASON TP +FP all detections (2.1)

Công thức tinh recall:

Precision = TP TẾ (2.2) TP+FN all ground truth

Theo mỗi mức IoU threshold chạy trong một khoảng, ta tính toán ra được giá tri Precision va Recall tại các mức đó và vẽ ra được Precision Recall

lãi

Trang 25

CHƯƠNG 2 CƠ SỞ LÝ THUYET

Curve, ví dụ như với 11 mức:

11 Point Interpolated Precision-Recall Curve

° ° ° °

0 Of 02 03 04 05 06 07 08 09 1

Recall

Hinh 2.3 Minh hoa Precision Recall Curve.

AP chính là vùng diện tích màu vàng nằm dưới đường cong Precision

Recall.

+ AP lớn nếu vùng này lớn, suy ra đường cong có xu hướng gần góc trên

bên phải và có nghĩa là tại các threshold khác nhau thì Precision và Recall

đều khá cao Từ đó suy ra model tốt

+ AP nhỏ thì cả Precision và Recall đều khá thấp và model không tốt

-Mean Average Precision (mAP): mỗi class trong bài toán sẽ có một giá

trị AP, mAP là trung bình cộng giá trị AP của các class khác nhau Ví dụ

với một bài toán phát hiện vật thể với 30 lớp đối tượng:

s Phát hiện khuôn mặt:

Phát hiện khuôn mặt (Face Detection) là ứng dụng thị giác máy tính liên quan

đến việc tự động nhận dạng và xác định vị trí các khuôn mặt trong hình ảnh

hoặc video Đây là một công nghệ quan trọng đứng sau nhiều ứng dụng như

nhận dạng khuôn mặt, theo dõi khuôn mặt và phân tích khuôn mặt.

Khuôn mặt là một dạng đối tượng có thể áp dụng vào lĩnh vực Object tion Qua đó, ta có thể sử dụng những mô hình object detection và huấn luyện

Detec-nó với dữ liệu khuôn mặt.

Mô hình sử dụng: YOLOv5

© Region-Based CNN:

Mang nơ-ron tích chập dựa trên vùng R-CNN là một thuật toán phát hiện

đối tượng sử dụng CNN để phát hiện các đối tượng trong hình ảnh Ý

12

Trang 26

CHƯƠNG 2 CƠ SỞ LÝ THUYET

heater coffeetable

._ tap

tincan 79.00

shelf 70.00 dol] 70.00

-0.4 0.6

Average Precision

00 02 08 10

Hình 2.4 Minh họa mAP của một bài toán phát hiện đối tượng

tưởng cơ bản đằng sau R-CNN gồm: trước tiên tạo ra tập hợp các vùng

ứng cử trong hình ảnh hoặc video, sau đó sử dụng một CNN để phân loại mỗi vùng, xác định liệu nó có chứa một đối tượng nào đó hay không Các vùng được phân loại là chứa đối tượng sau đó được xử lý tiếp để làm rõ vị

trí của đối tượng và phân loại nó vào một lớp cụ thể Quá trình này đượcbiết đến với tên gọi: phát hiện đối tượng hai giai đoạn (Two-stage Object

Detection).

A Typical Convolutional Neural Network (CN?

‘a ammmnnl

maps

Pooled Featured maps

Featured

maps

Pooled Flatten Featured maps _ layer

Hình 2.5 Cấu trúc mang CNN trong ứng dung phân loại đối tượng hình anh

Các biến thể của CNN như Fast CNN, Faster CNN, và Mask CNN được đề xuất để cải thiện tốc độ và độ chính xác của quá trình phát

R-hiện đối tượng.

13

Trang 27

CHƯƠNG 2 CƠ SỞ LÝ THUYET

R-CNN: Regions with CNN features

¬ worped region PA aeroplane? no

Input Extract Region Compute CNN Classify

image proposals (~2K) features Regions

Hình 2.6 Cấu trúc của R-CNN

Mặc dù R-CNN có thể giải quyết nhiệm vụ phát hiện đối tượng với độ

chính xác tương đối tốt, nó vẫn tồn tại một số điểm yếu như: hạn chế về yếu t6 tổng quát và bối cảnh, chi phi tính toán cao, qua đó không tối ưu

cho việc phát hiện đối tượng thời gian thực trên các thiết bị có công suấtthấp

© Bộ phát hiện đối tượng đơn giai đoạn:

Phát hiện đôi tượng đơn giai đoạn (Single-shot Object Detection) là một

loại thuật toán phát hiện đối tượng có khả năng phát hiện các đối tượngtrong hình ảnh hoặc video trong một lần duyệt mà không cần sử dụngnhiều giai đoạn và vùng ứng cử

Các bộ phát hiện đối tượng đơn giai đoạn như YOLO và SSD, sử dụngmột mạng CNN duy nhất để trực tiếp dự đoán các lớp (classes) và hộp giới

hạn của các đối tượng trong một hình ảnh hoặc video Những mô hình

này được huấn luyện end-to-end bằng cách sử dụng một bộ dữ liệu lớn

của các hình ảnh được gan nhãn (labeled) và các hộp giới hạn (bounding

boxes) của đối tượng tương ứng

Phát hiện đối tượng đơn giai đoạn được coi là nhanh hơn và hiệu quả hơn

so với các phương pháp phát hiện đối tượng hai giai đoạn, vì nó tối giản

số giai đoạn và có thể chạy trong thời gian thực trên các thiết bị có công

suất thấp Tuy nhiên, mức độ chính xác sẽ tương đương phương pháp pháthiện đối tượng hai giai đoạn

© You Only Look Once (YOLO):

YOLO là một thuật toán phát hiện đối tượng thời gian thực (Real-time

14

Trang 28

CHƯƠNG 2 CƠ SỞ LÝ THUYET

tượng trong các hình ảnh đầu vào YOLO ban đầu được triển khai bằng

Hình 2.8 Cấu trúc tổng quát của YOLO.

Thuật toán YOLO chia hình ảnh đầu vào thành một mạng lưới các ô, và

đối với mỗi ô, nó dự đoán xác suất hiện diện của một đối tượng và tọa độhộp giới hạn của đối tượng Nó cũng đồng thời dự đoán lớp của đối tượng

đó Khác với acR-CNN và các biến thể của nó, YOLO xử lý toàn bộ hình

ảnh qua một lần duyệt, nhờ đó quá trình dự đoán trở nên nhanh và hiệu

quả hơn.

YOLO luôn tục được phát triển qua các phiên bản khác nhau, gồm:

YOLOv1, YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOv6, YOLOv7,

YOLOv§ và mới nhất là YOLOv9 Mỗi phiên bản đã được xây dựng trên

cơ sở của phiên bản trước đó với các tính năng được cải thiện như độ chính

xác tăng cường, xử lý nhanh hơn và xử lý tốt hơn các đối tượng nhỏ.

© YOLOv5 (YOLO version 5):

Một tháng sau khi YOLOv4 được công bố, nhà nghiên cứu Glenn Jocher

và đồng nghiệp của ông (Ultralystics) đã ra mắt YOLOv5 Ultralystic

là một công ty chuyển đổi các phiên bản trước của YOLO với một trong

15

Trang 29

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

những framework học sâu nổi tiếng nhất, PyTorch, được viết bang Python

Kiến trúc của YOLOv4 và YOLOv5 tương đối giống nhau, version 5

không có nhiều tiến bộ đáng chú ý hơn phiên bản trước đó YOLOv4.

Tuy nhiên, YOLOv5 có ưu điểm hơn về mặt kỹ thuật Nó được viết bằngPython thay vì C ở các phiên bản trước đó Điều này làm đơn giản hóaquá trình cài đặt và tích hợp trên các thiết bị Internet Of Things (IoT).Hơn nữa, cộng đồng PyTorch rộng lớn hơn cộng đồng Darknet, PyTorch

sẽ nhận được nhiều đóng góp hơn và có tiềm năng phát triển lớn hơn trong

Faster <Ế————— c?u Speed (ms/img)

Hình 2.10 Hiệu suất của các weights YOLOVS trên tập dữ liệu COCO (và so với kiến trúc EfficientDet).

16

Trang 30

CHƯƠNG 2 CƠ SỞ LÝ THUYET

Speed Speed Speed

(ms) (ms) (ms)

YOLOv5n 640 28.0 45.7 45 6.3 0.6 1.9 45

YOLOv5s 640 37.4 56.8 98 6.4 0.9 rz 16.5 YOLOvSm 640 45.4 64.1 224 8.2 17 21.2 49.0

YOLOv5l 640 49.0 67.3 430 10.1 27 46.5 109.1

YOLOv5x 640 50.7 68.9 766 12.1 4.8 86.7 205.7

YOLOv5n6 1280 36.0 54.4 153 8.1 21 3.2 4.6 YOLOv5s6 1280 44.8 63.7 385 8.2 3.6 12.6 16.8 YOLOv5m6 1280 51.3 69.3 887 11.1 6.8 Sout 50.0

Kiến trúc cơ ban:

+ Lu6ng xử lý hình ảnh đầu vào (quá trình inference):

+ Hình ảnh được xử lý thông qua một lớp đầu vào (input) và được gửiđến phần lõi để trích xuất đặc trưng

+ Backbone thu được các ma trận đặc trưng (feature map) với các

kích thước khác nhau, sau đó hợp nhất các đặc trưng này thông qua

feature fusion network (neck) để cuối cùng tạo ra ba feature map P3,

P4 và P5 (trong YOLOv5, dimension được biểu diễn với kích thước là

80x80, 40x40 va 20x20) để phát hiện các đối tượng nhỏ, trung bình

và lớn trong hình ảnh.

+ Sau khi ba feature map đã được gửi đến đầu dự đoán (head), việctính toán độ tin cậy và hồi quy bounding-box được thực hiện cho mỗipixel trong feature map bằng cách sử dụng prior anchor đã được địnhsẵn Kết quả thu được một mảng đa chiều (BBoxes) bao gồm thôngtin lớp đối tượng, độ tin cậy của lớp, tọa độ hộp, chiều rộng và chiều

cao.

+ Bang cách thiết lập các ngưỡng tương ứng (ngưỡng tin cậy, ngưỡng

đối tượng) để lọc thông tin không cần thiết trong mảng, và thực

17

Trang 31

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

hiện loại bỏ các dự đoán dư thừa Non-maximum suppression (NMS),

thông tin detection cuối được xuất ra

+ Kiến trúc và tham số backbone của YOLOv5 được thể hiện lần lượt

trong hình 2.12 và hình 2.13:

Backbone

Ì_ eps CBS Gf as a Bs cả cas 3 SPPE

Ì | ian a3 | am [| aan 7) asm |” G32 7) cin [aman lane }*| aoe

Hình 2.12 Kiến trúc của YOLOVS.

Cc From n Params Module Arguments

Hình 2.13 Tham số của YOLOv5 backbone

2.2.2 Trích xuất đặc trưng bằng FaceNet

Trước tiên ta cần phải hiểu "Feature extraction" (trích xuất đặc trưng) là một

giai đoạn quan trọng trong quy trình nhận diện Feature extraction là quá trình trích

xuất các đặc điểm quan trọng từ hình ảnh khuôn mặt, nhằm tạo ra một biểu diễn số

(numeric representation) của khuôn mặt đó Những đặc điểm này thường bao gồmcác yếu tổ như hình dáng, kết cấu, màu sắc, và các điểm đặc biệt (landmarks) trên

khuôn mặt.

Việc thực hiện Feature extraction là điều kiện tiên quyết hỗ trợ cho quátrình huấn luyện mô hình máy học nhận diện khuôn mặt, giúp giảm lượng dữ liệucần xử lý, tăng hiệu quả và tốc độ của hệ thống Một mô hình trích xuất đặc trưngtốt có thể giúp mô hình phân loại tập trung vào các đặc trưng quan trọng nhất của

18

Trang 32

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

khuôn mặt, cải thiện độ chính xác của quá trình nhận diện Đồng thời quá trình này

cũng giúp hệ thống nhận diện hoạt động tốt hơn trong các điều kiện môi trường khác

nhau (như ánh sáng, góc nhìn).

Một số mô hình trích xuất đặc trưng phổ biến có thể kể đến như:

- Eigenfaces (PCA) - sử dụng Principal Component Analysis (PCA)

để giảm chiều dif liệu và biểu diễn khuôn mặt bằng một số ít các thành phan chính

- Fisherfaces (LDA)- sử dung Linear Discriminant Analysis (LDA) để

tim ra các đặc trưng phân biệt nhất giữa các lớp khuôn mặt khác nhau

- Local Binary Patterns (LBP) - trích xuất các đặc trưng kết cấu bằngcách phân tích các mẫu kết cấu cục bộ

- Histogram of Oriented Gradients (HOG) - trích xuất các đặc trưng

về hình dáng và hướng của các gradient trong hình ảnh

FaceNet là một hệ thống nhận diện khuôn mặt phát triển bởi Google,

sử dụng mạng neural convolutional để thực hiện nhận diện khuôn mặt và xác minh danh tính FaceNet được thiết kế để ánh xạ (embed) các hình ảnh khuôn mặt vào một

không gian vector có kích thước thấp, nơi khoảng cách Euclidean giữa các vector

biểu diễn cho sự tương đồng giữa các khuôn mặt.

FaceNet thực hiện quá trình trích xuất đặc trưng theo các bước sau:

- Preprocessing (Tiên xử lý): Hình ảnh khuôn mặt được chuẩn bị bằng

cách điều chỉnh kích thước và chuẩn hóa để đảm bảo rằng các điều kiện ánh sáng vàgóc chụp khác nhau không ảnh hưởng đến quá trình trích xuất đặc trưng

- Embedding Network: Sử dụng một mang neural sâu (Deep

Convo-lutional Neural Network) để ánh xạ hình anh khuôn mặt vào một vector đặc trưng

có kích thước cô định (thường là 12§-D hoặc 512-D) Đây là quá trình trích xuất đặctrưng, nơi mỗi vector đầu ra biểu diễn cho các đặc điểm quan trọng của khuôn mặt

- Triplet Loss: FaceNet được huấn luyện sử dụng ham mat mát tripletloss, mục tiêu là làm cho các vector của các hình ảnh khuôn mặt giống nhau gần

nhau hơn và các vector của các hình ảnh khác nhau xa nhau hơn trong không gian

vector.

Với tinh chat là một Pretrained model (mô hình huấn luyện trước), FaceNet

đã được được huấn luyện trước trên các tập dữ liệu lớn và đa dạng về khuôn mặt

19

Trang 33

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

Quá trình huấn luyện này đã tạo ra một mạng neural có khả năng nhận diện và phânbiệt các đặc điểm khuôn mặt rất tốt Điều này cho phép FaceNet có thé được sử dụng

ngay mà không cần phải huấn luyện thêm, giúp thêm phần dễ dàng cho quá trình implementation đồng thời mang lại một số thế mạnh về hiệu xuất và độ chính xác.

Mặc dù các mô hình trích suất đặc trưng phổ biến hiện nay có những ứngdụng riêng của chúng, FaceNet có nhiều ưu điểm nổi bật khiến nó trở thành lựa chọntốt hơn cho việc trích xuất đặc trưng khuôn mặt:

- Độ Chính Xác Cao: FaceNet được huấn luyện trên các tập dữ liệu

lớn và đa dạng, cho phép nó nhận diện và phân biệt các khuôn mặt với độ chính

xác cao hơn nhiều so với các mô hình truyền thống như PCA, LDA, LBP, và HOG

Trên tập dữ liệu LFW (Labeled Faces in the Wild), FaceNet đạt độ chính xác lên tới 99.63% trong nhận diện khuôn mặt, đây là một trong những mức chính xác cao

nhất từng được báo cáo Trong khi đó Eigenfaces (PCA) đạt độ chính xác khoảng

85-90% trên tập dữ liệu tương tự Fisherfaces có thể cải thiện độ chính xác so với Eigenfaces, đạt khoảng 90-95% trên LEW LBP, khi kết hợp với các phương pháp khác, đạt độ chính xác khoảng 95% trên LEW HOG kết hợp với SVM đạt khoảng

93% trên LFW

- Trích Xuất Đặc Trưng Robust: Được thiết kế để ánh xạ hình ảnhkhuôn mặt vào một không gian vector có kích thước thấp, FaceNet tạo ra các đặc

trưng robust với các biến thể về ánh sáng, góc nhìn, và biểu cảm Khoảng cách

Euclidean giữa các vector của các khuôn mặt giống nhau rất nhỏ, trong khi khoảng

cách giữa các vector của các khuôn mặt khác nhau rất lớn PCA không thực sự

robust với các biến thể lớn về ánh sáng và góc nhìn, do chỉ tập trung vào các thànhphần chính của dữ liệu hình ảnh LDA tốt hơn PCA trong việc phân biệt các lớp,nhưng vẫn bị hạn chế khi gặp các biến thể lớn về hình dạng và ánh sáng LBP làmviệc tốt trong điều kiện ánh sáng thay đổi và HOG tốt trong việc phát hiện và nhận

diện hình dạng tổng quát, nhưng cả hai không tốt trong việc nhận diện các biến thể

hình dang và chi tiết nhỏ

- Tiết Kiệm Thời Gian và Tài Nguyên: Vì FaceNet đã được huấn luyệntrước, khi ứng dụng không cần phải tốn thời gian và tài nguyên để huấn luyện lại môhình từ đầu Điều này rất hữu ích trong các ứng dụng thực tế, giúp việc triển khai

20

Trang 34

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

nhanh chóng và hiệu quả là quan trọng.

- Khả Năng Tổng Quát Hóa Cao: Các đặc trưng được trích xuất từ

FaceNet có khả năng tổng quát hóa cao, nghĩa là chúng hoạt động tốt trên nhiều tập

dữ liệu khác nhau va các tình huống thực tế.

2.2.3 Phân loại bằng SVM

Classification (Phân loại) là một bài toán thuộc loại supervised learning

(học có giám sát), nơi mà mục tiêu là học một hàm ánh xạ từ các đầu vào (inputs)

sang các nhãn (labels) hoặc các lớp (classes) Bài toán này thường liên quan đến

việc dự đoán nhãn của một đối tượng dựa trên các đặc trưng của nó

Khi được áp dụng vào quy trình nhận diện danh tính dựa trên các đặc trưng

khuôn mặt, phân loại là quá trình sử dụng các mô hình máy học để phân loại hình

ảnh khuôn mặt thành các lớp khác nhau, tương ứng với các danh tính khác nhau.

Ứng dụng của classification trong nhận diện khuôn mặt có thể kể đến như:

- An Ninh và Giám Sát: Nhận diện khuôn mặt trong các hệ thống

giám sát để xác định và theo dõi các đồi tượng

- Điểm Danh và Kiểm Soát Truy Cập: Sử dụng nhận diện khuôn mặt

để điểm danh sinh viên hoặc nhân viên, và kiểm soát truy cập vào các khu vực an

ninh.

- Thanh Toán và Xác Minh Danh Tính: Xác minh danh tính người

dùng trong các giao dịch tài chính hoặc hệ thống xác thực danh tính.

- Cá Nhân Hóa Trải Nghiệm Người Dùng: Sử dụng nhận diện khuôn

mặt để cá nhân hóa trải nghiệm người dùng trong các ứng dụng như quảng cáo và dịch vụ khách hàng.

Một số các thuật toán phân loại phổ biến có thể kể đến như:

- Logistic Regression: Một mô hình tuyến tính đơn giản sử dung cho

các bài toán phân loại nhị phân.

- K-Nearest Neighbors (KNN): Một phương pháp dựa trên khoảng

cách, trong đó nhãn của một điểm dữ liệu mới được xác định bởi nhãn của các điểm

dữ liệu gần nhất trong không gian đặc trưng

- Support Vector Machine (SVM): Một thuật toán phân loại mạnh mẽ,

21

Trang 35

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

đặc biệt hữu ích trong các bài toán phân loại với dữ liệu có nhiều chiều SVM tìm

kiếm một siêu phẳng tối ưu để phân tách các lớp khác nhau

- Decision Trees và Random Forests: Decision Trees là các mô hình

phân loại dựa trên cấu trúc cây quyết định, trong khi Random Forests là một tập hợp

của nhiều cây quyết định để cải thiện độ chính xác và tránh overfitting

- Neural Networks: Các mang neural sâu (Deep Neural Networks) có

thể hoc các đặc trưng phức tap từ đữ liệu va được sử dung rộng rãi trong các bài toán

phân loại hình ảnh, giọng nói, và văn bản.

Support Vector Machine (SVM) là một thuật toán phân loại mạnh mẽ,

đặc biệt hữu ích trong các bài toán phân loại với dữ liệu có nhiều chiều, chẳng

hạn như trích xuất đặc trưng khuôn mặt SVM nổi bật so với các thuật toán phân

loại khác như Logistic Regression, K-Nearest Neighbors (KNN), Decision Trees,

Random Forests, va Neural Networks trong một số khía cạnh cu thể

Một số ưu điểm nổi bật của thuật toán phân loại SVM có thể dé dang thấy

như:

- Hiệu Quả Với Dữ Liệu Cao Chiều: SVM tìm kiếm siêu phẳng

(hy-perplane) tối ưu để phân tách các lớp trong không gian đặc trưng cao chiều Điềunày đặc biệt hữu ích trong trích xuất đặc trưng khuôn mặt, nơi mà các vector đặctrưng thường có chiều cao

- Khả Năng Tống Quát Hóa Cao: SVM sử dụng các vectơ hỗ trợ

(support vectors) để xác định siêu phẳng phân tách, làm cho mô hình có khả năng

tổng quát hóa tốt hơn với dữ liệu mới Điều này giúp SVM tránh overfitting, một

vân đề phổ biến trong các thuật toán phân loại khác như Decision Trees và Neural

Networks.

- Hiệu Suất Tốt Trên Các Tap Dữ Liệu Nhỏ Đến Trung Binh: SVMhoạt động tốt trên các tập dữ liệu nhỏ đến trung bình, nơi mà các thuật toán khácnhư Neural Networks có thể yêu cầu rất nhiều dữ liệu để huấn luyện một mô hình

hiệu quả.

Khi so sánh SVM với một số thuật toán phân loại phổ biến khác ta cũng có

thể chỉ ra được một số điểm nổi bật sau:

- SVM tránh hiện tượng overfitting tốt hơn và hiệu quả hơn Decision

22

Trang 36

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

Trees và Random Forests do sử dụng các vectơ hỗ trợ.

- SVM tốt hơn trong việc phân loại các lớp trong không gian đặc trưng cao chiều khi so sánh với Logistic Regression khi Logistic Regresssion dù đơn giản hơn và phù hợp với các bài toán phân loại nhị phân tuyến tính, nhưng không hiệu

quả khi số chiều của dữ liệu tăng cao

- SVM tìm kiếm siêu phẳng tối ưu, không phụ thuộc vào số lượng

hàng xóm gần nhất như KNN kém với dữ liệu cao chiều và lớn

- SVM cũng hoạt động tốt với các tập dữ liệu nhỏ đến trung bình mà

không cần quá nhiều tài nguyên tính toán Trong khi đó, Neural Networks cần rất

nhiều dữ liệu và tài nguyên tính toán, mặc dù có thể học các đặc trưng phức tạp hơn

từ dữ liệu.

- Khi so sánh về hiệu suất trên tập dữ liệu LEW: SVM đạt độ chínhxác lên tới 97% khi kết hợp với các đặc trưng trích xuất từ FaceNet hoặc các mô

hình học sâu khác Trong khi đó, Logistic Regression đạt khoảng 85-90%, Decision

Trees đạt khoảng 85-90% và Random Forests đạt khoảng 93-95%.

Qua đó ta có thể kết luận, SVM là một lựa chọn tuyệt vời cho bài toán phân loại khuôn mặt nhờ vào khả năng xử lý dữ liệu cao chiều, tránh overfitting tốt và yêu

cầu it dif liệu hơn so với các mang neural sâu Mặc dù Neural Networks có thé đạt

độ chính xác cao hơn, nhưng chi phí tính toán và yêu cau dif liệu lớn khiến SVM trở

thành lựa chọn hợp lý và hiệu quả cho nhiều ứng dụng thực tế trong nhận diện khuôn

mặt.

2.2.4 Lựa chọn kết hợp FaceNet với SVM

Qua những khái niệm và phân tích trên, ta có thể khái quát được rằng

FaceNet là một trong những mô hình trích xuất đặc trưng khuôn mặt tiên tiến nhất

hiện nay, nhờ vào việc ánh xạ hình ảnh khuôn mặt vào một không gian vector có

kích thước thấp nhưng rất giàu thông tin SVM (Support Vector Machine) là một

thuật toán phân loại mạnh mẽ, đặc biệt hiệu quả trong việc phân loại dữ liệu có nhiềuchiều

Việc kết hợp FaceNet nhằm trích xuất đặc trưng khuôn mặt, và SVM nhằm

phân loại danh tính dựa trên các đặc trưng đó sẽ mang lại hiệu quả trên một số mặt

23

Trang 37

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

như:

- Độ Chính Xác Cao: Trên tập dữ liệu LFW (Labeled Faces In the

Wild), kết hợp này đạt độ chính xác lên tới 99.63% Trong khi đó, các phương pháp

khác như FaceNet và KNN (khoảng 97-98%) và FaceNet + Logistic Regression

Ngoài ra, khi kết hợp SVM với một số phương pháp trích xuất đặc trưngkhác ta cũng dễ dàng thấy được hiệu quả của chúng kém hơn so với việc kết hợp

FaceNet va SVM:

- SVM va Eigenfaces (PCA): D6 chinh xac khoang 85-90% trén LFW,

không hiệu qua bang FaceNet va SVM do PCA không robust với các biến thể về ánh

sáng và góc nhìn

- SVM và Eisherfaces (LDA): Độ chính xác khoảng 90-95%, tốt hơn

PCA nhưng vẫn thấp hơn FaceNet và SVM

- SVM và LBP (Local Binary Patterns): Độ chính xác khoảng 95%,

nhưng vẫn kém hơn FaceNet và SVM, đặc biệt trong các trường hợp có nhiều biến thể hình dạng

Từ những so sánh và ưu điểm kể trên ta có thể thấy rằng sự kết hợp giữa

FaceNet và SVM mang lại nhiều lợi ích Mô hình kết hợp này cho phép tinh chỉnh

và mở rộng một cách linh hoạt, dẫn đến hiệu suất cao trong việc nhận diện khuônmặt, như đã được bàn luận trong nghiên cứu của Nyein và đồng nghiệp [16] Đặcbiệt, khi đối mặt với sự đa dạng về kích thước, góc chụp và điều kiện ánh sáng, kết

hợp giữa FaceNet và SVM mang lại sự linh hoạt và chính xác cao trong quá trình nhận diện khuôn mặt.

24

Trang 38

CHƯƠNG 2 CƠ SỞ LÝ THUYET

2.3 Pytorch

PyTorch là một framework mã nguồn mở cho machine learning, được phát triển bởiFacebook’s AI Research lab (FAIR) Nó cung cấp các công cụ mạnh mẽ cho việctạo và huấn luyện các mô hình học sâu PyTorch dễ sử dụng và tích hợp tốt với

hệ sinh thái Python, sử dụng đồ thị tính toán động (Dynamic Computation Graphs) giúp theo dõi quá trình huấn luyện tốt hơn Ngoài ra, nó còn hỗ trợ tối ưu hóa trên

GPU, giúp tăng tốc quá trình huấn luyện mô hình

2.4 TensorRT

TensorRT là một thư viện được phát triển bởi NVIDIA và là một phần của NVIDIADeep Learning Accelerator (DLA), dùng để tối ưu hóa mô hình AI,ML chạy trênGPU Từ đó, giúp cải thiện tốc độ và hiệu suất khi triển khai môi hình trên các hệ

thống nhúng.

Khi xây dựng các mô hình AI, chúng có thể trở nên rất nặng và tốn kém tài nguyên

tính toán TensorRT giúp khắc phục vấn đề đó: giảm thiểu tài nguyên tính toán và

bộ nhớ cần thiết để chạy các mô hình AI một cách hiệu quả, cải thiện hiệu suất về

thời gian chạy mô hình.

2.5 Bluetooth Low Energy

BLE là một phiên bản mới của công nghệ Bluetooth được giới thiệu vào năm 2010.

BLE, còn được biết đến với tên gọi Bluetooth Smart, được thiết kế cho các ứng dụng

tiết kiệm năng lượng như các thiết bị theo dõi sức khỏe, các thiết bị thông minh trong nhà BLE sử dụng băng tần ISM 2,4 GHz giống như Bluetooth Classic, nhưng nó

có mức tiêu thụ năng lượng thấp hơn và phạm vi hoạt động ngắn hơn

- Quá trình dò tìm thiết bị (discovery process): Quá trình này bao gồm việc cácthiết bị sử dụng các kênh quảng bá (advertising channels) để tìm thấy nhau, với mộtthiết bị thực hiện quảng bá (advertising) và một thiết bị thực hiện quét (scanning)

25

Trang 39

CHƯƠNG 2 CƠ SỞ LÝ THUYET

¢ Broker: máy chủ trung gian, giữ vai trò quản lý và phân phối thông điệp giữa

các thiết bị Broker nhận thông điệp từ các thiết bị gửi và chuyển đến các thiết

¢ Topic: một chuỗi văn bản định danh mô tả nội dung của thông điệp Các

thiết bị Publisher gửi thông điệp đến một Topic và các thiết bị Subscriber nhận

thông điệp từ các chủ đề đã đăng ký

Trang 40

CHƯƠNG 2 CƠ SỞ LÝ THUYET

liên tục từ hàng nghìn nguồn dif liệu khác nhau, các nguồn này thường gửi các bảnghi dữ liệu đồng thời Nền tảng truyền phát cần phải xử lý luồng dif liệu liên tục này

và xử lý dữ liệu theo trình tự và tăng dan.

Kafka cung cấp ba chức năng chính cho người dùng:

Publish và Subcribe các luồng thông điệp

Lưu trữ hiệu quả các luồng bản ghi theo thứ tự tạo thông điệp

Xử lý các luồng thông điệp trong thời gian thực.

Topic: một chuỗi văn bản định danh mô tả nội dung của thông điệp Các

thiết bị Publisher gửi thông điệp đến một Topic và các thiết bị Subscriber nhận

thông điệp từ các chủ đề đã đăng ký.

Các thành phần chính của Kafka bao gồm:

Producer: thành phan tao ra và gửi các thông điệp tới các Topic trong Kafka.Producer chịu trách nhiệm sửi dữ liệu từ nguồn (như ứng dụng, hệ thống, thiết

bi) tới Kafka.

Broker: các máy chủ trong hệ thống Kafka, chịu trách nhiệm lưu trữ va xử ly

các thông điệp Mỗi broker có thể được triển khai trên một máy chủ riêng biệt

hoặc trên một cụm máy chủ.

Consumer: thành phần đọc và xử lý các thông điệp từ các topic trong Kafka.Consumer đăng ký để nhận các thông điệp từ một hoặc nhiều topic và sau đó

tiêu thụ đữ liệu đó để thực hiện các công việc như xử lý, lưu trữ hoặc hiển thị.

Topic: Tập hợp các thông điệp trong Kafka được tổ chức theo các nhóm logic.

Producer gửi các thông điệp tới các topic, và các Consumer đọc thông điệp từ

các Topic mà họ đã đăng ký.

Partition: mỗi topic trong Kafka có thể được chia thành nhiều phân vùng Mỗi

phân vùng là một đối tượng lưu trữ dữ liệu độc lập và có thể được nhân bản trên nhiều broker để đảm bảo sự phân tán và tính sẵn sàng cao.

27

Ngày đăng: 08/12/2024, 15:39

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

TÀI LIỆU LIÊN QUAN