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

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống học trực tuyến sử dụng các mô hình máy học nhận diện cảm xúc và theo dõi ánh nhìn của học viên

74 1 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

Định dạng
Số trang 74
Dung lượng 85,76 MB

Nội dung

Dé giải quyết van dé này, một hệ thống giảng dạy trực tuyến được đề xuất, kết hợp công nghệ nhận diện cảm xúc và độ tập trung của học viên, nhằm nâng cao chất lượng giảng dạy và học tập.

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA HE THONG THONG TIN

DO DANG KIÊN NAM - 20521627

PHAM PHU TUAN - 20522125

KHOA LUAN TOT NGHIEP

XAY DUNG HE THONG HOC TRUC TUYEN SU DUNG CAC MO HINH MAY HOC NHAN DIEN CAM XUC VA

THEO DOI ANH NHIN CUA HOC VIEN

BUILDING AN ONLINE LEARNING SYSTEM UTILIZING

MACHINE LEARNING MODELS FOR EMOTION

RECOGNITION AND EYE GAZE TRACKING OF STUDENTS

CU NHAN NGANH HE THONG THONG TIN

GIANG VIEN HUONG DAN PGS TS NGUYEN DINH THUAN

TP Hồ Chi Minh, thang 6 năm 2024

Trang 2

LỜI CÁM ƠN

Lời đầu tiên cho phép nhóm em gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến các thầy cô khoa Hệ thống thông tin Trường Đại học Công nghệ thông tin —

ĐHQG TPHCM và quý Thay Cô khoa Hệ thống thông tin, đặc biệt là Thầy Nguyễn

Đình Thuân đã trực tiếp hướng dẫn, tận tình sửa chữa, đóng góp nhiều ý kiến, kinh

nghiệm quý báu cho chúng em hoàn thành báo cáo khóa luận.

Trong suốt quá trình thực hiện đề tài, nhóm em đã vận dụng tối đa những kiến

thức nền tảng đã tích lũy, đồng thời nghiên cứu những kiến thức mới đề phục vụ làm khóa luận Tuy nhiên, chúng em cũng gặp nhiều khó khăn nhất định nên những hạn

chế, thiếu sót là điều khó tránh khỏi Chính vì vậy chúng em rất mong nhận được sự góp ý, nhận xét từ phía hội đồng dé hoàn thiện hơn Nhóm em xin chân thành cảm

on.

Tp.HCM, ngay 17 thang 6 nam 2024

Nhom sinh vién thuc hién

Đỗ Đặng Kiến Nam

Phạm Phú Tuấn

Trang 3

MỤC LỤC

CHUONG 1: GIỚI THIỆU VÀ MÔ TẢ DE TÀII - :-2c:255+vtcccxvvrerrrvrrrrrrrrrrre |

1.1 Đặt vấn đề và lý do chọn T0 11.2 Thông tin về đề tài -¿- 2-52 s2 ExEEEExEEXE71211211211111211211211211 21121111 11c re 2

1.2.1 Mục tiêu đề tài ccccccntttnhhHHnH HH de 2

1.2.2 Phạm vi và đối "10221717 2

1.2.3 Các công nghệ được sử dụng trong việc nhận diện cảm XÚC - - 3

1.2.4 Giới thiệu các bộ dữ liỆu - -:- 5+2 E SE SE **EE+EESEESEESEEerEsrkrrkrrkrrkrrkrrkrske 4

1.2.5 Công nghệ được sử dụng trong việc phát trực tiếp và phát triển sản pham 4

CHƯƠNG 2: CƠ SỞ LÝ THUYÊT 55:2S2+t2EEEEtctEEkrrrtrrtrrrtrrrrrrrirrrrriirrrrk 8

2.1 Lý thuyết về mạng thần kinh 2 ¿s92 t+E£EE£EEEEE+EEEEEEEEEEEEEEEEEESEEEErkerkerrree 8

2.1.1 Lý thuyết về mạng than kinh - - + 2 +9 9EE+E£EEEEESEEEEEEEEEEEEErkerkerkerees 8

2.1.2 Dinh nghĩa mang nơ-ron nhân tao (Artificial Neural Network - ANN)[38] 9

2.1.3 Convolutional Neural Network (CNN) - Q.1 22112 111211 11 2.1.4 Multi-task Cascaded Convolutional Networks (MTCNN) - 12

QV.S c9 15

2.2 Lý thuyết tối ưu mô hình máy hỌc 2- 2 + + E£+E££E£+E2EE2EE2EE2EE2EEeEkerxrrxered 19

2.2.1 SGD (Stochastic Gradient Descent) .- 2c 2222111221 11111111111 xk2 19 2.2.2 Adam (Adaptive Moment Estimation) - - 5-5525 *++***+sEcxeeerereeereerese 19 2.2.3 AdaMaX nh ố.ố 20

2.3 Lý thuyết về công nghệ phát trực tiẾp -¿ 2 ©+222+EE+2EE2EECEEEEEECEEErrkrrrree 21

2.3.1 Giao thức WeDRTC - - cv TT TH TH HH HH nh TT TC nh HH 21 2.3.2 WebssOCK€K Án TT TT TT TH TH HH HT TT TT CC ng 23 2.3.3 So sánh webrtc và websocket - - - -L Q01 1 111g 01111111 kkrrrre 24

Trang 4

2.3.4 Cách 2 peer thiết lập kết nối với nhau 2 2+£2+E£+E++E++E++EE+Ex+rxerxees 25

3.2.1 Kết quả thực nghiệm nhận diện cảm xúc của các nghiên cứu khác 34

3.2.2 Nhận diện cảm XÚC - - - 2c 22 1322281112111 81511 1128111118211 188111188111 2g xee 35

3.2.3 Kết quả thực nghiệm nhận điện độ tập trung của các nghiên cứu khác 37

3.2.2 Nhận diện độ tập trung - - - ¿2 22 132111321 11E111 191118111111 111 1181118111 key 38

3.3 Kết quả thực nghiệm các mô hình kết hợp tối ưu SGD - ADAMAX 38

ca 0n nh Đ:bốổố cổỔ “đa 40

CHƯƠNG 4: PHAN TÍCH THIET KE HỆ THÓNG - -c¿22s+cvccvvvsrervereez 41

4.1 So đồ kiến trúc hệ thong o c.eeceecccccccsscesscssessessessessessessessessssessessesssssscssessessessesseeseees 414.2 Cách hoạt động của hệ thống "— 43

4.3 Thiết kế hệ thống dạy học trực tuyến — 47

4.3.1 Thiết kế thành phần chức năng 2- 2 2 E£EE££E££E2E+2EE2EE2EE2EEEEEeExerkeri 474.3.2 Thiết kế thành phần dữ liệu -2- 2-2 SSE£SE£EE£EEEE2EE2EE2EE2E12E12E1Ex xe 504.3.3 Thiết kế thành phần xử lý - + 2 SE +E£EE£EE£EEEEEE2EE2E12E1211211211211 E1 xe 544.3.4 Triển khai hệ thống lên Google Cloud Platform 2 2 2+ s2 se: 554.4 Thiết kế giao diện người đùng -¿- St Sx 9x EEEEE211211211211211211 21111 1xx 57CHƯƠNG 5: KET QUA DAT DUOC VÀ HƯỚNG PHAT TRIÉN -2- 59

Trang 5

5.1 Kết quả đạt được 5.2 Hướng phát trién TÀI LIỆU THAM KHẢO

Trang 6

Hình 6: Cấu tạo một mạng thần Kinh[34] - c1 1122111111 11111111181 111811 111881111 xe, 8Hình 7: Cấu trúc và cách hoạt động của ANN[39] . - S ck +2 2x re 10Hình 8: Cấu trúc của một ClNN[[14] -¿- + xeSx+E£EE£EkEEE+EEEEEEEEEEEEEEEEEEEEEEEEEEEEkerkrrrriera 12Hình 9: Kiến trúc MTCNN[ 16] -2¿22 5+ 22222E22E22EE22E1221211221211221211221 21.2112 crk 13

?0118108-4:5.8s 1504661100 00777 15

Hình 11: Cấu hình VGG[43] wececcccccccccescsescescsscssessesesessessesscsessessesnesessessestssesssseseseeseeseeaess 18Hình 12: Kiến trúc WeblR TC [4Š] - 2 2 1+S9E15E2EEE12E1211215715112112111211 11111 re 21Hình 13: WebRTC - kiến trúc JSEP[46] 2 222 SE+2E+EE+EEtEEEEEEEESEESEEzExzrserkered 22

Hình 14: Client, Server hoạt động với WebSocket[48] - -+++-++++ccs+seesseersxes 23

Hình 15: Một mẫu của Fer2013 (trạng thái tức giận) - ¿2 + 2+s+£zx+£zx+zzxrxe¿ 31 Hình 16: Một mẫu của KDEF (trang thái tức giận) + 2s s+s+££+E+£zE+zzzxerszxrxee 32

Hình 17: Hình minh hoa EALR 5 211111122311 111112531 11111955 11111183111 k ng key 33

Hình 18: Hình minh hoa MAR - 2111111223111 111193531 11111855 11111991111 key 34

Hình 19: Kiến trúc hệ thống ¿2-2 E+SE+E£EE9EE2EE2EEEEEEEEE12171112111111111E 11111 1y 41

Hình 20: Usecase tông quan hệ thống giảng dạy trực tuyến - 2 ©522cz+ccz+ce2 47

Hình 21: Class Diagram của hệ thống -+- 2 2 +E+SE+EE+E£EE£EEEEE2EEEEEEEEEEEEEEEEEkrrrrreei 50

Hình 22: Sequence Diagram của đăng ký tài khoản, tạo lớp học va học viên tham gia lớp

92 54

Hình 23: Sequence Diagram của việc bắt đầu lớp học, tham gia lớp học và kết thúc buổi

2 55

Hình 24: Màn hình lớp học đang diễn ra - ¿+ ¿+ S£+SSE+E£EE2E£EE2EeEzEeEzxrxrrxrree 57

Hình 25: Biểu đồ cảm xúc của từng học viên -¿- 2: s2E+SE+2E£2E2E2E22E2222221221 2x crk 57

Trang 7

Hình 26: Biểu đồ cảm xúc của toàn lớp học

Hình 27: Giảng viên chia sé màn hình trong UG: học -¿- 2sz+sz+sz+c++£z+zx+zxd

Trang 8

DANH MỤC BANG

Bảng 1: So sánh WebRTC và WebSocK€t - óc 2119211121121 11 111 1 9111111 ky nh 24

Bảng 2: Kết quả nhận diện cam xúc thực nghiệm trên dataset Fer2013 cua Yousif

Khaireddin và Zhuofa Chen [62] - <2 22 3321133111311 33553 155135111511 1811 11111111 E1 ke 34

Bảng 3: Kết quả nhận diện cảm xúc thực nghiệm trên dataset KDEF của Chong và các

đồng sự [Ó4] -:- 2-5222 E12E521E71511211211111211111101111 1111211111111 11101201 g 35

Bảng 4: Kết quả thực nghiệm trên Fer20 13 - 2 s2 2+EE£EE22EE£EEE2EEEEEE2EEEEEEEErrkrrred 35Bang 5: Kết quả thực nghiệm trên KDEE - 2-2 SSE‡SE£EE£EE£EEEEE2EE2EE2EE2EEEExerkrred 36Bảng 6: Kết quả nhận diện độ tập trung thực nghiệm trên dataset Student-Engagement của

Nuha Alruwais và Mohammed Zakariah [63] - ¿+ 23322183221 E*2E2E+2EE+eeerses 37

Bang 7: Bảng kết quả thực nghiệm trên Student-Engagement 2 2 s2 s2 2£: 38Bang 8: Bảng kết quả thực nghiệm khi kết hợp với OptiimiZer 2-5 s2 55522 39Bảng 9: Đặc tả Usecase Xem kết quả nhận diện cảm XÚC - 5 +55 +++s++s++s++s+2 47

Bang 10: Đặc tả Usecase Xuất kết quả nhận diện cảm xÚC ¿555352 **++++ss++s 48Bảng 11: Đặc tả Usecase Tạo lớp học trực tuyến LJI / Â ĂĂằ ào 48

Bảng 12: Đặc tả Usecase Quan lý thông tin cá nhân - 55-5 +52 *++s£++eex+eerssexss 49

Bảng 13: Đặc tả Usecase Tham gia vào lớp học ¿- ¿+ 52+ +2 *++£+zv£+e+eerserreerss 49 Bảng 14: Bảng thuộc tính của User - (2 2322182113211 E2EE2EEEEEEEESE1EEErkrrrkrrkkree 50 Bảng 15: Bảng hàm của User €Ï24SS óc 2c 3321112311321 1191 1181158111811 11811181 xe 51

Bang 16: Bang thuộc tinh của Class - - c2 221 2112911151151 1 911 1 11 vn ngư 51 Bảng 17: Bảng hàm của Class - - - c1 191121119119 11 1 911 nh ng nh nh ng nh Hư 52 Bảng 18: Bảng thuộc tính của ROOIm - G2 3311332113911 1351 1153115111131 E111 11 11 re 52 Bảng 19: Bảng hàm của lOOTN - óc 1111131191189 11 11 11v nh nh ng cư 52 Bang 20: Bảng thuộc tinh của Detected ReSulÏ( - ¿5c + + + 13+ ESErseirrrrersrerre 53

Bang 21: Bảng ham của Detected ResuÏ( - - - 2c 22c 3133511331321 Ekrrkres 53

Trang 9

DANH MỤC TU VIET TAT

Số thứ tự Thuật ngữ Mô tả

Convolutional Neural CNN

Trang 10

TOM TAT KHOA LUẬN

Trong thời đại kỹ thuật số ngày càng phat triển, giáo dục trực tuyến đã trở thành một phươngpháp học tập phố biến, giúp mở rộng cơ hội tiếp cận kiến thức cho nhiều người Tuy nhiên,

việc duy trì sự tương tác và đánh giá hiệu quả học tập của học viên vẫn là một thách thức lớn

đối với giáo viên Dé giải quyết van dé này, một hệ thống giảng dạy trực tuyến được đề xuất,

kết hợp công nghệ nhận diện cảm xúc và độ tập trung của học viên, nhằm nâng cao chất lượng

giảng dạy và học tập.

Hệ thống giảng dạy trực tuyến này sử dụng Mediasoup làm media server, một giải pháp mạnh

mẽ cho việc xử lý các luồng dit liệu truyền thông Với Mediasoup, hệ thống hỗ trợ việc tạo ra

các buồi học trực tuyến trong đó giáo viên và học viên có thé chia sẻ âm thanh, màn hình, va

camera một cách mượt mà Điều này tạo điều kiện cho việc tương tác trực tiếp giữa giáo viên

và học viên, giúp tăng cường hiệu quả truyền đạt kiến thức

Điểm nổi bật của hệ thống nay là tích hợp công nghệ nhận điện cảm xúc và độ tập trung củahọc viên Một server riêng dành cho Machine Learning được triển khai dé thực hiện các nhiệm

vụ nảy Server này kết nối trực tiếp với media server dé tiêu thụ các luồng đữ liệu, bao gồm

hình anh tu webcam của học viên Quá trình nhận diện cảm xúc va độ tập trung dựa trên các

mô hình học sâu (deep learning), sử dụng các kiến trúc mạng nơ-ron tích chập (CNN) như

Trang 11

CHUONG 1: GIỚI THIỆU VÀ MÔ TẢ DE TÀI

1.1 Đặt vấn đề và lý do chọn đề tài

Nhận dạng cảm xúc và độ tập trung của học viên là một phần quan trọng của lĩnh vực giảng

day trực tuyến[ 1], [2] Điều này sẽ tác động đáng kê đến chất lượng giảng day, tăng cườngtương tác giữa giáo viên và học sinh, đồng thời mang đến môi trường học tập lý tưởng déphát triển cả IQ[3] và EQ[4] Điều quan trong hơn là phải thiết lập được sự gan kết chặtchẽ giữa hai bên mà không bị giới hạn về khoảng cách, khi mà giờ đây khoảng cách lớnnhất trong một lớp học chỉ là lượng kiến thức có hạn trong một bài học Bằng việc xác địnhđược cảm xúc và độ tập trung của học sinh trong khi giảng dạy, giáo viên sẽ chủ động năm

bắt các tình huống có thể phát sinh và giải quyết kịp thời [5], [6] [7]

Một số nghiên cứu đã giúp củng cố quan điểm cho rằng: cảm xúc sẽ tác động rất lớn đếnhành động [8] Trong lớp học truyền thông, giáo viên có thé dé dàng quan sát và đánh giá

cảm xúc cũng như mức độ tập trung của học viên thông qua các tín hiệu phi ngôn ngữ như

biểu cảm khuôn mặt, cử chỉ, và hành vi Tuy nhiên, trong lớp học trực tuyến, việc nay trở

nên khó khăn hơn do sự hạn chế về mặt không gian và cách thức giao tiếp Vì vậy, việcphát triển một hệ thống có khả năng nhận diện cảm xúc và độ tập trung của học viên trongmôi trường học trực tuyến là rất cần thiết

Với sự bùng né của giáo dục trực tuyến, nhu cầu nâng cao chất lượng giảng dạy và học tậptrực tuyến ngày càng trở nên cấp thiết Nhận diện cảm xúc và độ tập trung của học viên là

một trong những yếu tố then chốt dé cải thiện sự tương tác và hiệu quả giảng dạy trong lớp

học trực tuyến Bên cạnh đó, sự phát triển của trí tuệ nhân tạo (AI) và học máy (Machine

Learning) mở ra nhiều cơ hội mới cho việc ứng dụng các công nghệ này vào giáo dục Việc

sử dụng các mô hình học sâu (Deep Learning) như VGG16 và MTCNN dé nhận diện cam

xúc và độ tập trung không chỉ là một hướng đi mới mẻ mà còn mang lại nhiều tiềm năng

phát triển

Trang 12

Và quan trọng nhất là đề tài không chỉ mang ý nghĩa khoa học mà còn có giá trị thực tiễn

cao, gop phan nang cao chat lượng giáo dục và hỗ trợ học viên trong quá trình học tập Hệ thống giảng dạy trực tuyến tích hợp nhận diện cảm xúc và độ tập trung sẽ giup tạo ra một

môi trường học tập tích cực, khuyến khích sự tham gia và cải thiện kết quả học tập của họcviên Ngoài ra hệ thống này có tiềm năng phát triển và mở rộng không chỉ trong giáo dục

mà còn trong nhiều lĩnh vực khác như đào tạo nhân sự, chăm sóc sức khỏe tâm ly, và các

dịch vụ khách hàng Điều này tạo ra nhiều cơ hội nghiên cứu và ứng dụng trong tương lai

Những điều trên là nền tảng của một sản phẩm để triển khai những ý nghĩ đấy thành

Streamy là tên cho hệ thống dạy học trực tuyến đó do nhóm đề xuất và những phần sau sẽ

đưa ra những khảo sát, phân tích và phương thức hoạt động của hệ thống này

1.2 Thông tin về đề tài

1.2.1 Mục tiêu đề tàiPhát triển được hệ thống học trực tuyến dành cho giáo viên và học sinh, cho phép tương

tác trực tuyến (nói chuyện, camera khuôn mặt, chia sẻ màn hình máy) Hệ thống sẽ có tínhnăng nhận diện cảm xúc và độ tập trung được trích xuất từ ánh nhìn của học viên cho ra

các phân tích thời gian thực.

Phát triển được mô hình máy học nhận diện cảm xúc từ khuôn mặt sử dụng các mô hìnhCNN [12], MTCNN và VGG [13] cho các chỉ số từng loại cảm xúc của học sinh, từ đó

đánh giá tiết học, khả năng giảng dạy có phù hợp và thu hút với học sinh hay không

Phát triển được mô hình máy học theo dõi tia nhìn của học sinh, tính toán các độ đo liên

qua về mắt, miệng của học viên Kết quả cho ra chỉ số tập trung của học sinh, và được kết

hợp với kết quả từ mô hình cảm xúc dé cho ra kết quả tông quan của học sinh ở thời gian

thực.

1.2.2 Phạm vi và đối tượng

Trong khuôn khô của khoá luận này, nhăm đên việc tạo ra một ứng dụng mà ở đó giảng viên là người có thê theo dõi được diễn biên cảm xúc và độ tập trung của các học viên của

Trang 13

mình ở thời gian thực và từ đó có thê nhanh chóng điều chỉnh phương thức giảng dạy chophù hợp với thực trạng của lớp học, tương tự như việc giảng viên dé dàng điều chỉnh haynhắc nhở các học viên của mình ngay tại giảng đường hay lớp học trực tiếp.

1.2.3 Các công nghệ được sử dụng trong việc nhận diện cảm xúc

Trong phạm vi đề tài thử nghiệm trên các công nghệ dự báo sau:

Mô hình CNN (Convolutional Neural Network)[12] được minh hoạ ở Hình 1 bên dưới:

Cow:3x3 Conv: 3x3 Con3x3 Conv:2x2 fully

MP:32 MP:3i MP:22 huêt q fac? classification

1 1

imput size 95.9339 10x10x64 4x4x64 3x3xI2§ va rest ta

4§x4§x3 10

Hình 2: Cấu trúc của MTCNN[16]

3

Trang 14

Mô hình VGG-16 [13] (là kiến trúc mạng thần kinh tích chập CNN) được minh hoạ ở Hình

1.2.4 Giới thiệu các bộ dữ liệu

Một trong hai bộ dit liệu được sử dụng trong bài viết này đã được Kaggle xuất bản tại hộinghị ICML 2013, đó là Fer2013 [11] Dữ liệu này bao gồm các hình ảnh 48x48, mỗi hình

ảnh chỉ chứa các khuôn mặt, được căn giữa trong hình ảnh và được chia tỷ lệ để bao phủphần lớn diện tích của hình ảnh Hình ảnh được gan nhãn cảm xúc (tức giận, chan nan, sợhãi, vui, buồn, bất ngờ, trung tinh) và Fer2013 bao gồm 32.298 hình ảnh

KDEF [10], [18] là bộ di liệu gồm 4900 hình ảnh về nét mặt con người Tương tự nhưFer2013, KDEF cũng thé hiện 7 cảm xúc khác nhau của 70 con người với 5 góc nhìn khácnhau Với bộ dir liệu nay, có thé thực hiện một cách tiếp cận khác khi thay vì xác định cảmxúc của một người chỉ bằng 1 khung hình và có thé xác định cảm xúc của một người bằngnhiều khung hình Cách tiếp cận này có thể sẽ cải thiện khả năng nhận dạng

1.2.5 Công nghệ được sử dụng trong việc phát trực tiếp và phát triển

sản phâm

NodeJS [19] với Express [20]: là một môi trường chạy JavaScript [21] / Typescript [22]

phía server, xây dung trên engine V8 của Chrome Node.js cho phép các nhà phát triển sử

Trang 15

dụng JavaScript dé viết mã server-side, giúp tạo ra các ứng dụng mạng có khả năng mở

rộng cao và xử lý nhiều kết nói đồng thời một cách hiệu quả Với kiến trúc event-driven và

non-blocking I/O, Node.js lý tưởng cho các ứng dụng thời gian thực như phát trực tiếp và

chat trực tuyến

ReactJS [23] là một thư viện JavaScript mã nguồn mở do Facebook phát triển, dùng déxây dựng giao diện người dùng (UI) React.js giúp tạo ra các thành phần UI có thể tái sửdụng và cập nhật hiệu quả khi dit liệu thay đồi, nhờ vào cơ chế Virtual DOM Điều này rất

hữu ích trong việc phát triển các ứng dụng web có UI phức tạp và yêu cầu tương tác caonhư các trang phát trực tiếp

Mediasoup [24] là một thư viện đa phương tiện mã nguồn mở cho Node.js, hỗ trợ các tínhnăng như SFU (Selective Forwarding Unit) và MCU (Multipoint Control Unit) dé xử lý và

truyén tai media trong các cuộc hop video va hội thao trực tuyến Mediasoup được thiết kế

dé hoạt động với WebRTC, cung cấp khả năng mở rộng và hiệu suất cao, giúp xây dựngcác ứng dụng phát trực tiếp và truyền thông thời gian thực

WebRTC (Web Real-Time Communication)[25]: là một công nghệ ma nguồn mở chophép trình duyệt và các ứng dụng di động thực hiện các cuộc gọi âm thanh, video và truyền

dữ liệu trực tiếp mà không cần plugin WebRTC sử dụng các giao thức peer-to-peer détruyền tai đữ liệu, giúp giảm độ trễ và cải thiện chất lượng kết nối trong các ứng dụng phát

trực tiếp và hội nghị truyền hình Dưới đây là ví dụ về WebRTC:

Trang 16

Web RTC Connection Diagram

Hình 4: Ví dụ về WebRTC với máy chủ báo hiệu[26]

Socket.IO [27] là một thư viện JavaScript cho Node.Js, cho phép xây dựng các ứng dụng

web thời gian thực bằng cách cung cấp một giao thức truyền tải hai chiều giữa client vàserver Với khả năng tự động kết nối lại và phát hiện client ngắt kết nối, Socket.IO rất phùhợp cho các ứng dụng cần giao tiếp liên tục và ôn định như chat trực tuyến và phát trựctiếp Dưới đây là ví dụ về Socket.IO:

Trang 17

Python Socket.IO [29] là phiên bản của Socket.IO cho Python, cung cấp các tính năngtương tự như phiên bản Node.js Nó giúp các nhà phát triển Python xây dựng các ứng dung

web thời gian thực một cách dé dang, cho phép giao tiếp hai chiều giữa client và server, hỗ

trợ các tính năng như broadcasting, rooms, va namespaces.

Trang 18

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

2.1 Lý thuyết về mạng thần kinh

2.1.1 Lý thuyết về mạng thần kinh

Một mang Neural Network[33] có ø đầu vào mỗi ngõ vào, mỗi ngõ vào xi có trọng số Wi

Hình 6 đưới đây minh hoạ về câu tạo của một mạng thần kinh:

Hình 6: Cau tạo một mạng thần kinh[34]

Các trọng số wi, Wa, Wn trong công thức (1) thay đổi trong quá trình học của mangNeural Network Weighted Sum của một lớp 4n được xác định như sau:

n

» xiWj (1)

(=1

Một hệ số quan quan trọng là wo được gọi la bias, hệ số này rất quan trọng vì nếu phương

trình Weighted Sum không có hệ số tự do wo thì phương trình của sẽ trở thành

¡/=i#¡w; = 0, phương trình này luôn qua gốc tọa độ nên không tông quát của một phương

trình đường thắng nên cộng thêm một hệ số tự do để phương trình Weighted Sum có dạng

sau đây:

Trang 19

> xim + Wo (2)

i=1

Tổng có trọng số (weighted sum) là một hàm tuyến tinh, không phan ánh đúng bản chat

phi tuyến của nhiều quá trình dự báo thực tế Thực tế, mô hình dự báo thường có các quan

hệ phi tuyến, có thể tăng hoặc giảm không theo quy luật tuyến tính Vì vậy, cần áp dụngmột hàm kích hoạt phi tuyến, như hàm hardlim, để chuyền đổi hàm tuyến tính này thành

hàm phi tuyến Nhờ đó, giá trị dự báo y được xác định một cách chính xác hơn, phản ánh

đúng sự phức tạp của quá trình dự báo.

Mạng Neural nhân tạo được huấn luyện theo 3 kiểu học của máy học là học có giám sát

(Supervised learning[35]), học không giám sát (Unsupervised learning[36]) và học tăng cường (Reinforcement learning[37]).

2.1.2 Định nghĩa mạng noron nhân tao (Artificial Neural Network

-ANN)438|

Là một hệ thống tính toán được lay cảm hứng từ cấu trúc và chức năng của não người Nóbao gồm nhiều đơn vị tính toán đơn giản gọi là nơ-ron (neurons), được kết nối với nhauthành các lớp (layers) Mục đích chính của mạng no-ron là học cách biểu diễn và xử ly dit

liệu theo cách mà não người làm, nham thực hiện các tác vụ như phân loại, dự đoán, vànhận diện mẫu Hình 7 dưới đây là cau trúc và cách hoạt động của ANN:

Trang 20

Input layer Hidden layer Output layer

Inputs a Outputs

Các cấu trúc cơ bản của mạng nơ-ron nhân tạo bao gồm:

- Neuron (Nơ-ron):

1 Đầu vào (Inputs): Mỗi no-ron nhận một sỐ lượng đầu vào từ các nơ-ron khác

hoặc từ dữ liệu đầu vào ban đầu

2 Trọng số (Weights): Mỗi đầu vào được gán một trọng số, biểu thị mức độ quan

trọng của đầu vào đó

3 Hàm kích hoạt (Activation Function): Sau khi nhận đầu vào và tính toán tổng

trọng số của các đầu vào, một hàm kích hoạt sẽ được áp dụng dé quyét dinh dau racủa no-ron Cac hàm kích hoạt phổ biến bao gồm ReLU, sigmoid, va tanh

- Cac Lớp (Layers):

1 Lớp Dau Vào (Input Layer): Nhận đữ liệu đầu vào và truyền dữ liệu đó vào các

lớp tiếp theo

2 Lớp An (Hidden Layers): Các lớp nằm giữa lớp đầu vào và lớp dau ra, nơi diễn

ra hầu hết quá trình tính toán và học của mạng nơ-ron

3 Lớp Dau Ra (Output Layer): Sản sinh đầu ra cuối cùng của mang, phan ánh kết

quả của quá trình học.

10

Trang 21

- Qua Trình Huan Luyện (Training Process):

1 Truyền Tiến (Forward Propagation): Quá trình truyền dữ liệu từ lớp đầu vào

qua các lớp ân đến lớp đầu ra

2 Tinh Toán Lỗi (Error Calculation): So sánh đầu ra của mạng với giá trị mong

muốn (ground truth) đề tính toán lỗi

3 Truyền Ngược (Backpropagation): Điều chỉnh trọng số của các nơ-ron dựa trên

lỗi đã tính toán dé giảm thiểu sai số trong các lần huấn luyện tiếp theo Quá trình

nay sử dụng thuật toán gradient descent.

- Ưu Điểm và Ứng Dụng của Mạng Nơ-ron Nhân Tạo:

1 Ưu điểm:

e Kha Năng Học Từ Dữ Liệu: ANN có khả năng học từ dữ liệu và cải thiện hiệu

suất theo thời gian

e Khả Năng Tổng Quát: Mạng nơ-ron có thé học và tông quát hóa các mẫu phức

tạp từ dữ liệu, làm cho nó phù hợp với nhiều bài toán khác nhau

2 Ứng Dụng:

e Nhận Dạng Hình Ảnh: Phân loại và nhận diện các đối tượng trong hình ảnh

e Xử Lý Ngôn Ngữ Tự Nhiên (NLP): Dịch máy, phân loại văn bản, và trích xuất

thông tin.

e Du Đoán và Phân Tích Dữ Liệu: Dự đoán xu hướng thị trường, phân tích dữ liệu

khách hàng, và dự báo thời tiết

2.1.3 Convolutional Neural Network (CNN)

Convolutional Neural Networks[12] (CNNs) là một loại mạng nơ-ron nhân tạo được sử

dụng phổ biến trong xử lý hình ảnh và video CNNs có khả năng học và trích xuất các đặctrưng từ dữ liệu đầu vào thông qua các lớp convolutional, pooling va fully connected

11

Trang 22

Convolutional Layers: Lớp này áp dụng các bộ loc (filters) lên hình ảnh dé trích xuất cácđặc trưng như cạnh, góc, và các mẫu phức tạp hơn Hình § dưới đây là cau trúc của một

mang CNN:

Fully

Convolution Connected

Hình 8: Cấu trúc của một CNN[14]

Pooling Layers: Lớp này giảm kích thước của đữ liệu đầu ra từ lớp convolutional dé giảm

số lượng tham số và tính toán trong mạng

Fully Connected Layers: Lớp này thực hiện phân loại dựa trên các đặc trưng đã trích xuất

được từ các lớp trước đó.

Ưu điểm: CNN là khả năng tự động trích xuất đặc trưng từ đữ liệu đầu vào và cùng với đó

là hiệu suất cao trong các bài toán nhận dạng và phân loại hình ảnh Trong công việc nhận

diện cảm xúc thi CNN có thé được huấn luyện dé nhận diện các biéu cảm khuôn mặt thông

qua việc học các đặc trưng đặc biệt từ các hình ảnh khuôn mặt.

2.1.4 Multi-task Cascaded Convolutional Networks (MTCNN)

MTCNN{15] là một kiến trúc mạng nơ-ron sâu được thiết kế để thực hiện cả việc phát hiệnkhuôn mặt và căn chỉnh khuôn mặt cùng lúc Hình 9 dưới đây là một kiến trac MTCNN:

12

Trang 23

Conv:3X3 Coọnv:3x3 Conv: 3x3 face

Conv:3x3 Conv:3x3 Conv: 3x3 Convi2x2 - fully

MP: B MP: i MP: is connect (|| fae? classification

e P-Net (Proposal Network): Tìm kiếm các vùng có khả năng chứa khuôn mặt

Ở bước đầu tiên sẽ sử dụng mạng FCN (Fully Convolutional Network[40]) Mạng FCNkhác mạng CNN ở chỗ mạng FCN không sử dụng lớp Dense layer P-Net được sử dụng dé

có được các windows tiêm năng va bounding box regression vectors của chúng (tọa độ).

13

Trang 24

Bounding box regression[41] là kỹ thuật để dự đoán vị trí của bounding box khi cần pháthiện đối tượng (ở đây là khuôn mặt) Sau khi có được tọa độ của bounding boxes một vàitỉnh chỉnh được thực hiện để loại bỏ một số bounding boxes overlap với nhau (xem trong

code sẽ có) Đâu ra của bước này là tât cả bounding boxes sau khi đã thực hiện sàng lọc.

Ở đây có dùng PRelu layer[42] (giá trị không âm thì giữ nguyên, giá trị âm sẽ được nhân

với hệ số, hệ số này được học trong quá trình training) Chú ý sau PReLu layer 3 tách thành

2 nhánh, nhánh 4-2 dùng dé dự đoán tọa độ của bounding box, nhánh 4-1 dùng dé dự đoán

xác suât xuât hiện khuôn mặt trong bounding box.

e R-Net (Refinement Network): Xác nhận va tinh chỉnh các đề xuất từ P-Net

Tất cả bounding boxes từ P-Net được đưa vào R-Net Chú ý rằng R-Net là mạng CNN chứkhông phải FCN R-Net giảm số lượng bounding boxes xuống, tinh chỉnh lại tọa độ, có áp

Đầu ra của R-Net được sử dụng làm đầu vào của O-Net Trong O-Net có đưa ra vi trí cua

facial landmarks (2 mắt, mũi, 2 vị trí của miệng) Như hình trên có thê thấy gần cuối có 3nhánh: xác suất xuất hiện khuôn mặt, tọa độ bounding box, tọa độ của facial landmarks

(mỗi vị trí có toa độ x va y, cái này ảnh hưởng đến số lượng units trong layer).

Ưu điểm: MTCNN là kha năng phát hiện và căn chỉnh khuôn mặt hiệu quả ngay cả trong

các điều kiện khó khăn như ánh sang yếu hoặc khuôn mặt bị che khuất một phần và tốc độ

xử lý nhanh chóng và độ chính xác cao MTCNN giúp xác định vi trí và căn chính khuôn

mặt trước khi đưa vào các mô hình nhận diện cảm xúc, đảm bảo rằng dữ liệu đầu vào đượcchuẩn hóa và phù hop

14

Trang 25

2.1.5 VGG16

VGGI6[13] là một kiến tric CNN do nhóm Visual Geometry Group tại Đại học Oxfordphát triển VGG16 có 16 lớp với 13 lớp convolutional và 3 lớp fully connected VGG16 sửdụng các lớp convolutional với bộ lọc nhỏ (3x3) và các lớp pooling dé giảm kích thước củađầu vảo, giúp mạng học được các đặc trưng phức tạp hơn Nó được đặc trưng bởi độ sâucủa nó, bao gồm 16 lớp, trong đó có 13 lớp chập và 3 lớp được kết nối day đủ VGG-16nổi tiếng vì tinh đơn giản và hiệu quả cũng như khả năng đạt được hiệu suất mạnh mẽ trongcác tác vụ thị giác máy tính khác nhau, bao gồm phân loại hình ảnh và nhận dạng đối tượng.Kiến trúc của mô hình có một chồng các lớp tích chập, theo sau là các lớp tông hợp tối đa,với độ sâu tăng dần Thiết kế này cho phép mô hình tìm hiểu các cách biểu diễn phân cấpphức tạp của các tính năng trực quan, dẫn đến những dự đoán mạnh mẽ và chính xác Mặc

dù đơn giản so với các kiến trúc gần đây hơn, VGG-16 van là lựa chọn phổ biến cho nhiềuứng dung deep learning do tính linh hoạt và hiệu suất tuyệt vời của nó Hình 10 dưới đây

là hình minh hoạ một kiến trúc VGG16:

Hinh 10: Kién trac VGG16[17]

Kién trac VGG-16 la mang no ron tích chập sâu (CNN) được thiết kế cho các nhiệm vụ

phân loại hình ảnh Nó được giới thiệu bởi Nhóm Hình hoc Trực quan tại Dai hoc Oxford.

VGG-16 được đặc trưng bởi sự đơn giản và kiến trúc thống nhất, giúp dé hiểu và thực hiện

15

Trang 26

Cấu hình VGG-16 thường bao gồm 16 lớp, trong đó có 13 lớp chập và 3 lớp được kết nốiday đủ Các lớp này được tô chức thành các khối, trong đó mỗi khối chứa nhiều lớp tíchchập, theo sau là lớp tổng hợp tối đa dé lay mẫu xuống.

Lớp đầu vào: Kích thước đầu vào là (224, 224, 3).

Lớp tích chập (64 bộ lọc, bộ lọc 3 x 3, phần đệm giống nhau):

e Hai lớp tích chập liên tiếp với 64 bộ lọc mỗi lớp và kích thước bộ lọc là 3x3

e Phần đệm tương tự được áp dụng dé duy trì kích thước không gian

Lớp gộp tối đa (2x2, bước 2):

e Lớp gộp tối đa với kích thước nhóm là 2x2 và sai chân là 2

Lớp tích chập (128 bộ lọc, bộ lọc 3 x 3, phần đệm giống nhau):

e Hai lớp tích chập liên tiếp với 128 bộ lọc mỗi lớp và kích thước bộ lọc là 3x3

Lớp gộp tối đa (2x2, bước 2):

e Lớp gop tối đa với kích thước nhóm là 2x2 và sai chân là 2

Lớp gộp tối đa (2x2, bước 2):

e©_ Lớp gộp tối đa với kích thước nhóm là 2x2 và sai chân là 2

Ngăn xếp các lớp chập và gộp tối đa:

e Hai lớp tích chập bổ sung sau ngăn xếp trước đó

Trang 27

e© Lớp đầu tiên có kích thước đầu vào là 25088 và kích thước đầu ra là 4096.

e Lớp thứ hai có kích thước đầu vào là 4096 và kích thước dau ra là 4096

e Lớp thứ ba có kích thước đầu vào là 4096 và kích thước dau ra là 1000, tương ứng

với 1000 lớp trong ILSVRC.

¢ Kích hoạt Softmax được áp dụng cho dau ra của lớp được kết nối day đủ thứ ba dé

phân loại.

Kiến trúc này tuân theo các thông số kỹ thuật được cung cấp, bao gồm việc sử dụng chức

năng kích hoạt ReLU và xác suất xuất ra lớp được kết nối đầy đủ cuối cùng cho 1000 lớp

sử dụng kích hoạt softmax.

Sự khác biệt chính giữa cấu hình VGG-16 C và D nằm ở việc sử dụng kích thước bộ lọctrong một số lớp chập Mặc dù cả hai phiên bản chủ yêu sử dụng bộ lọc 3x3, nhưng ở phiênbản D, có những trường hợp bộ lọc 1x1 được sử dụng thay thé Sự thay đổi nhỏ này dẫn

đến sự khác biệt về số lượng tham SỐ, trong đó phiên bản D có SỐ lượng tham số cao hơn

một chút so với phiên bản C Tuy nhiên, cả hai phiên bản đều duy trì kiến trúc và nguyên

tắc tổng thể của mẫu VGG-16

Dé thực hiện ban địa hóa, cần thay thế điểm lớp băng tọa độ vi trí hộp giới hạn VỊ trí hộp

giới hạn được biểu thị bằng vecto 4-D (tọa độ trung tâm (x, y), chiều cao, chiều rộng) Có

hai phiên bản kiến trúc bản địa hóa, một phiên ban là hộp giới hạn được chia sẻ giữa các

ứng viên khác nhau (đầu ra là vectơ 4 tham số) và phiên bản còn lại là hộp giới hạn dành

riêng cho lớp (đầu ra là vectơ tham số 4000 ) Bài báo đã thử nghiệm cả hai cách tiếp cậntrên kiến trúc VGG -16(D) Ở đây, cũng cần thay đổi tốn thất từ ton thất phân loại sanghàm tồn thất hồi quy (chang hạn như MSE ) dé xử lý độ lệch của tổn thất dự đoán so vớithực tế

17

Trang 28

conv3-512 -512 | conv3-512

convl-512 | conv3-512 | conv3-512

conv3-512 conv3-512 | conv3-512

conv3-512 conv3-512 | conv3-512

convl-512

soft-max

Hình 11: Cấu hình VGG[43]

Hạn chế của VGGI6 [17]:

e Quá trình dao tạo rất chậm (mô hình VGG ban đầu được đào tạo trên GPU Nvidia

Titan trong 2-3 tuần)

e Kich thước của trọng lượng imageNet được huấn luyện VGG-16 là 528 MB Vi vậy,

nó tôn khá nhiều dung lượng 6 đĩa và băng thông khiến nó không hiệu quả

e 138 triệu tham sô dân đên van dé bùng nô độ doc.

18

Trang 29

2.2 Lý thuyết tối ưu mô hình máy học

2.2.1 SGD (Stochastic Gradient Descent)

Từ "stochastic" có nghĩa là một hệ thống hoặc một quá trình được liên kết với một xác suất

ngẫu nhiên Do đó, trong Stochastic Gradient Descent, một vài mẫu được chọn ngẫu nhiên

thay vì toàn bộ tập dữ liệu cho mỗi lần lặp Trong Gradient Descent, có một thuật ngữ gọi

là "batch", biểu thị tổng số mẫu từ tập dữ liệu được sử dụng dé tính toán gradient cho mỗilần lặp Trong tối ưu hóa Gradient Descent điển hình, như Batch Gradient Descent, lô đượccoi là toàn bộ tập dữ liệu Mặc dù, việc sử dụng toàn bộ tập dữ liệu thực sự hữu ích dé điđến cực tiểu theo cách ít ồn ào hon và ít ngẫu nhiên hơn, nhưng van đề nảy sinh khi tập dit

liệu lớn hơn.

Trong trường hợp có một triệu mẫu trong tập dữ liệu, nếu sử dụng kỹ thuật tối ưu hóaGradient Descent điển hình thì sẽ phải sử dụng tất cả một triệu mẫu đề hoàn thành một lầnlặp trong khi thực hiện Gradient Descent, và nó phải được thực hiện cho mỗi lần lặp chođến khi đạt đến cực tiểu Do đó, nó trở nên rất tốn kém về mặt tính toán để thực hiện Vàvan đề này được giải quyết bằng Stochastic Gradient Descent Trong SGD, nó chỉ sử dụngmột mẫu duy nhất, tức là kích thước lô của một mẫu, đề thực hiện mỗi lần lặp Mẫu đượcxáo trộn ngẫu nhiên và được chọn để thực hiện lặp lại.

Trong SGD, gradient của chi phí hàm của một ví dụ duy nhất tai mỗi lần lặp thay vì tổnggradient của ham chi phí cua tất cả các ví du Vì chi có một mẫu từ tập dữ liệu được chọn

ngẫu nhiên cho mỗi lần lặp, nên đường dẫn mà thuật toán thực hiện dé đến cực tiểu thường

ồn ào hơn so với thuật toán Gradient Descent điển hình của bạn Nhưng điều đó khôngquan trọng lắm vì đường đi của thuật toán không quan trọng, miễn là chúng ta đạt đến cựctiểu và với thời gian đào tạo ngắn hơn đáng kể

2.2.2 Adam (Adaptive Moment Estimation)

Khác với SGD (stochastic gradient descent), một phương pháp dé tối ưu objective functiontrong deep learning, Adam áp dụng các learning rate khác nhau cho mỗi parameter dựa vào

19

Trang 30

các tham số betal (first momentum of gradient) và beta2 (second momentum of gradient).Adam có ưu điểm của hai optimization algorithm phổ biến khác là Adaptive gradient

algorithm và Root mean square propagation.

Hiện nay, Adam là một thuật toán phổ biến và được hỗ trợ trong nhiều framework khácnhau, chăng hạn như TensorFlow, Keras, và Torch Việc sử dụng Adam từ thư viện củacác framework khá là tiện lợi, cần lưu ý đến bốn tham số chính như sau:

e alpha: hay còn được biết đến là learning rate; tham số này phan ánh tỷ lệ cập nhật

của các trọng số trong quá trình huấn luyện; giá trị của tham số càng lớn, thì tốc độ

học ban đầu càng nhanh

e befal: tỉ lệ giảm dan theo cấp số nhân cho the first moment estimates

e beta2: tỉ lệ giảm dan theo cấp số nhân cho the second moment estimates

e epsilon: một giá trị lớn hơn 0 và rất nhỏ nhằm tránh lỗi DIV/0 trong quá trình thực

thi.

Các tác giả cũng đã đề nghị nên sử dụng bộ tham số (0.001, 0.9, 0.999, 10-8) cho (alpha,

betal, beta2, epsilon) [61].

2.2.3 Adamax

Adamax là một biến thé của thuật toán tối ưu hóa Adam được sử dụng trong học máy và

học sâu đê tôi ưu hóa quá trình huân luyện các mạng nơ-ron.

Tương tự như Adam, Adamax cũng duy trì một trung bình động của các động mômen

đầu tiên và thứ hai của gradient Tuy nhiên, thay vì sử dung mômen thứ hai của gradient

như trong Adam, Adamax sử dụng norm L-infinity của gradient Điều này hữu ích trongnhững tình huống mà các gradient rất thưa thớt hoặc có phương sai rất cao

Việc sử dung norm L-infinity trong Adamax làm cho nó ôn định hon Adam khi xử lý cácgradient thưa thớt Ngoài ra, sự vắng mặt của thuật ngữ mômen thứ hai cho phép đạt

được sự hội tụ nhanh hơn và yêu câu bộ nhớ ít hơn.

20

Trang 31

Nhìn chung, Adamax là một thuật toán tối ưu hóa mạnh mẽ có thé giúp tăng tốc quá trìnhhuấn luyện các mạng nơ-ron sâu và cải thiện hiệu suất của chúng, đặc biệt là trong nhữngtình huống mà các gradient thưa thớt hoặc có phương sai cao.

2.3 Lý thuyết về công nghệ phát trực tiếp

2.3.1 Giao thức WebRTC

WebRTC[44] (Web Real-Time Communication) là một tập hợp các tiêu chuẩn cho phépcác trình duyệt web hoặc ứng dụng di động có thể thực hiện giao tiép audio, video va dữ

liệu thời gian thực mà không cần cài đặt thêm plugin hay phần mềm nào khác WebRTC

được phát triển bởi Google và hiện đang là một phần của hầu hết các trình duyệt hiện đại

như Google Chrome, Mozilla Firefox, Microsoft Edge va Safari Hình 18 dưới đây là hình

minh hoạ về một kiến trúc WebRTC:

The web

Your browser

GHEE itor ved developers (CC Pi torbrowsermaters C777 overrideable by browser makers

Hinh 12: Kién trac WebRTC[45]

Đặc điểm chính của WebRTC là Peer-to-peer Communication: WebRTC cho phép truyềnthông trực tiếp giữa hai thiết bị (peer), không cần qua máy chủ trung gian Điều này giúp

giảm độ trễ và tăng hiệu suất.

21

Trang 32

Signaling Signaling

App

WebRTC

Caller Callee

Hình 13: WebRTC - kiến trúc JSEP[46]

Media Streams: Hỗ trợ truyền tải các luồng media (audio và video) với độ trễ thấp, chất

lượng cao.

Data Channels: Cho phép truyền tải dữ liệu tùy ý giữa các peer, phù hợp cho các ứng dụngnhư trò chơi trực tuyến, chia sẻ tệp tin, và các ứng dụng thời gian thực khác

NAT Traversal: Sử dung ICE (Interactive Connectivity Establishment) để vượt qua NAT

va firewall, giúp kết nối peer-to-peer dé dang hon.

Secure Communication: Tất ca các kết nối WebRTC đều được mã hóa dé đảm bảo tinh bảo mật và riêng tư Media streams được mã hóa băng SRTP (Secure Real-time TransportProtocol) và data channels được mã hóa bằng DTLS (Datagram Transport Layer Security)

WebRTC có rất nhiều ứng dụng thực tế, từ các cuộc gọi video, hội nghi trực tuyến, đến các

ứng dụng thực tế ảo (VR) và thực tế tăng cường (AR) Một số ví dụ cụ thé bao gồm: Video

call, Live streaming: phát trực tiép, chat trực tuyén.

22

Trang 33

2.3.2 Websocket

WebSocket[47] là một giao thức truyền thông dựa trên TCP, được thiết kế để cung cấp mộtkênh giao tiếp hai chiều toàn thời gian giữa client và server Giao thức này được chuẩn hóabởi IETF đưới RFC 6455 và hỗ trợ trong hau hết các trình duyệt hiện đại

Hình 14: Client, Server hoạt động với WebSocket[48]

Đặc điểm chính của WebSocket:

e©_ Full-duplex Communication: WebSocket cho phép giao tiếp hai chiều giữa client

va server đồng thời Client có thé gửi dữ liệu đến server và nhận đữ liệu từ servercùng một lúc mà không cần phải chờ phản hồi

e Low Latency: Được thiết kế dé giảm độ trễ trong truyền thông so với các giao thức

truyền thong như HTTP, WebSocket sử dụng một kết nối duy nhất đề truyền tải dir

liệu, không cần phải mở và đóng kết nói liên tục

e Protocol Agnostic: WebSocket có thé được sử dụng dé truyền tải bat kỳ loại dit liệu

nào, bao gồm cả văn bản và nhị phân Điều này làm cho WebSocket trở thành một

lựa chọn linh hoạt cho nhiều loại ứng dụng khác nhau

23

Trang 34

e Persistent Connection: Kết nỗi WebSocket duy tri liên tục, giup truyền dt liệu một

cách hiệu quả hơn so với việc mở và đóng kết nối HTTP liên tục Điều này đặc biệt

hữu ích cho các ứng dụng yêu cầu cập nhật dữ liệu thường xuyên như trò chơi trực

tuyến, chat, và các ứng dụng thời gian thực

e Lightweight Header: WebSocket sử dụng header nhẹ, giúp giảm overhead và tăng

hiệu suất truyền tải đữ liệu

WebSocket được sử dụng rộng rãi trong các ứng dụng yêu cầu giao tiếp thời gian thực và

độ trễ thấp Một số ví dụ cụ thể bao gồm: Ứng dụng web thời gian thực, nhắn tin và thông

báo.

2.3.3 So sánh webrtc va websocket

WebRTC và WebSocket đều là các công nghệ mạnh mẽ dé truyền thông thời gian thực,

nhưng chúng phục vụ các mục đích khác nhau và có các đặc điểm riêng biệt

Bảng 1: So sánh WebRTC và WebSocket

Đặc điểm WebRTC WebSocket

Muc dich Truyén thông thời gian thực | Truyền thông đữ liệu hai

(audio, video, dữ liệu) chiêu giữa client và server Kiêu kết nôi Peer-to-peer Client-server

Giao tiếp Độ trễ thấp, tối ưu cho |Độ trễ thấp, tôi ưu cho

truyền tải media truyền tải đữ liệu văn bản và

nhị phân

Bảo mật Mã hóa theo mặc định | Có thê sử dụng mã hóa TLS

(SRTP cho media, DTLS

cho data)

Co ché NAT ICE (Interactive | Khong hỗ trợ trực tiếp, cần

Connectivity cau hinh thém néu can thiét

Establishment)

24

Trang 35

Trường hợp sử dụng Video call, chat trực tuyến, Ứng dụng web thời gian

chia sẻ màn hình, VR thực, game trực tuyến, chat,

thông báo

Sử dụng WebRTC khi: Bạn cần truyền tải audio, video, hoặc dữ liệu thời gian thực giữa

các peer một cách trực tiếp Vi du, cho các ứng dụng video call, hội nghị trực tuyến, hoặc

chia sẻ màn hình.

Sử dụng WebSocket khi: Bạn cần một kênh giao tiếp hai chiều liên tục giữa client vàserver đề truyền tải dữ liệu văn bản hoặc nhị phân Ví dụ, cho các ứng dụng chat, thôngbáo thời gian thực, hoặc game trực tuyến

2.3.4 Cách 2 peer thiết lập kết nối với nhau

Quá trình thiết lập kết nồi giữa hai peer trong WebRTC gồm nhiều bước phức tạp, sử dụng

các kỹ thuật và giao thức như SDP (Session Description Protocol)[49] va ICE (Interactive Connectivity Establishment)[50].

e Signaling: Ban dau, hai peer cần trao đổi thông tin về cách thiết lập kết nối Thông

tin này bao gồm SDP (Session Description Protocol) và ICE candidates Quá trình

signaling thường được thực hiện qua một máy chu signaling sử dụng WebSocket,

HTTP[51] hay bất kỳ giao thức nào khác mà cả hai peer có thé liên lạc được

e ICE Gathering: Mỗi peer thu thập các dia chỉ (ICE candidates) mà nó có thé sử

dụng dé kết nối Cac ICE candidates này có thé là địa chi IP và cổng của máy tính

cua peer, địa chỉ của máy chủ STUN (Session Traversal Utilities for NAT)[52], hoặc địa chỉ của máy chủ TURN (Traversal Using Relays around NAT)[53].

e Exchange of SDP and ICE Candidates: Hai peer trao đôi SDP va ICE candidates

thông qua signaling server SDP chứa thông tin về định dang media (codec), các

kênh media (audio, video), và các tham số khác cần thiết đề thiết lập kết nối

e ICE Connectivity Checks: Sử dụng các ICE candidates, hai peer thực hiện kiém

tra kết nối dé tìm ra con đường tốt nhất dé truyền thông Quá trình này liên quan đến

25

Trang 36

việc gửi các gói tin kiểm tra (STUN binding request) qua lại giữa các peer để xác

định địa chỉ nào có thể sử dụng được

e Establishing Media and Data Channels: Khi kết nối ICE đã được thiết lập, các

kênh media (audio và video) và các kênh dữ liệu sẽ được thiết lập giữa hai peer Các

luồng media sẽ được mã hóa bằng SRTP và các luồng đữ liệu sẽ được mã hóa bằngDTLS[54] dé đảm bảo tinh bảo mật

e Secure Communication: Mọi dữ liệu truyền qua kết nỗi WebRTC đều được mã

hóa để đảm bảo tính bảo mật Các kết nối SRTP và DTLS đảm bảo rằng dữ liệu

không bị nghe trộm hoặc giả mạo.

Sau đây là một ví dụ:

e Peer A khởi tạo một phiên kết nói và tạo một offer SDP, sau đó gửi offer này đến

Peer B qua signaling server.

e Peer B nhận offer SDP từ Peer A, tạo một answer SDP và gửi answer này trở lại

Peer A qua signaling server.

e Cả hai peer bắt đầu quá trình ICE gathering và gửi các ICE candidates cho nhau qua

signaling server.

e Khi cả hai peer đã thu thập du ICE candidates và xác định được con đường kết nối

tốt nhất, họ sẽ thiết lập các kênh media và data channels

2.3.5 Mediasoup

Mediasoup[24] là một thư viện media server mạnh mẽ, mã nguồn mở, được sử dụng déxây dựng các ứng dụng truyén thông thời gian thực dựa trên WebRTC Mediasoup hỗ trợcác tính năng như truyền tải và điều khiển media streams, mixing, recording, và forwarding

media streams g1ữa các peer.

Đặc điểm chính của Mediasoup:

e©_ Scalability: Mediasoup được thiết kế dé xử lý một số lượng lớn kết nối đồng thời

Nó có thé chia sẻ tải giữa nhiều lõi CPU, giúp mở rộng hệ thống dé dàng

26

Trang 37

Flexibility: Mediasoup cung cấp API phong phú và linh hoạt, cho phép các nhà pháttriển tùy chỉnh và cau hình theo nhu cầu cụ thé của ứng dụng.

Interoperability: Hỗ trợ chuân WebRTC, dé dàng tích hợp với các ứng dụng và trình

Các thành phần của Mediasoup:

Router: Thành phần chính của Mediasoup, chịu trách nhiệm định tuyến các luồng

media giữa các Producer và Consumer.

Transport: Quản lý các kết nối giữa Router và các peer, có thê là PlainTransport,

WebRtcTransport hoặc PipeTransport.

Producer: Đại điện cho một nguồn media stream (audio, video) từ một peer

Consumer: Đại diện cho một điểm đích media stream (audio, video) tới một peer

DataProducer: Đại diện cho một kênh dữ liệu từ một peer.

DataConsumer: Đại diện cho một kênh dữ liệu tới một peer.

Cách hoạt động của Mediasoup:

Initialization: Khi một peer muốn kết nối, nó sẽ khởi tạo một kết nốiWebRtcTransport đến Mediasoup Router

Media Publication: Peer gửi media stream (audio, video) đến Mediasoup thông qua

Producer.

Media Subscription: Các peer khác có thé đăng ký nhận media stream từ Mediasoup

thông qua Consumer.

Data Channels: Peer có thể gửi và nhận đữ liệu thông qua DataProducer và

DataConsumer.

27

Ngày đăng: 06/12/2024, 15:25

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w