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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Nghiên cứu tích hợp công nghệ tính toán biên cho thiết bị bục giảng trong lớp học Hybrid

87 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 Tích Hợp Công Nghệ Tính Toán Biên Cho Thiết Bị Bục Giảng Trong Lớp Học Hybrid
Tác giả Le Thi Thu Huyen, Phan Ai Linh
Người hướng dẫn TS. Nguyen Minh Son
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Khóa Luận Tốt Nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 27,72 MB

Cấu trúc

  • 2.1. Công nghệ lập trình phần mềm nhúng.....................................----s°.+ceseeetrreezrreee 8 2.2. Lựa chọn phần cứng..................................---ecs-+cccsseeeeEEEtrvvvtrtrrrtrrrrrttrrrrrrrrirrrrrrirree 9 2.3. Nhận diện khuôn mặt dựa trên nền tảng học sâu...............................-.---c--c-erc-crx 11 2.3.1. Mô hình MTCNN.................................................... ki 11 2.3.2. Mô hình rút trích đặc trưng khuôn mặt MobileFacenet (15)
    • 2.3.3. Giải thuật Pruning MobileFaceèNet..........................................ô-ceceeeieree 14 2.3.4... Công nghệ chống giả mạo khuôn mặt................................------cceerreccccet 15 2.4. Công nghệ và môi trường phát triển máy chủ............................-.------:--cccecrree 17 2.4.1. Back-end: NodeJS — ExpressJS kết hợp cùng MongoDB (21)
    • 2.4.2. Sream Video với RTSP.....................................--.eckriHHH hy 19 2.4.3. Giao tiếp thời gian thực với SocketẽO.................................--.-ccccecrreccccer 20 2.5. Triển khai máy chủ trên môi trường local va cloud AWS EC2.................... 20 Chương 3. THIẾT KẾ VÀ HIEN THỰC HIE THỐNG....................................-.-----s:: 23 (26)
  • 4.2. Triển khai giao diện ứng dụng nhúng ban đầu......................................---s----s 39 4.3. Triển khai module nhận diện khuôn mặt...............................cccv+vvvv:rtrttttttttrz++ 41 4.3.1. Chuan bị bộ dữ liệu...........................................cee-eceerreeerreeeerrrerrrreerrrrrrre 41 4.3.2. Huấn luyện mô hình .............................-...--:+eccccttrrreevvvErtrrrrrvrrrrrrrrrrrrrrree 46 4.3.3. Kết quả huấn luyện........................................-ôccereceerreeetrereerrrerrrreerrrerrre 49 4.3.4... Chuyển đổi mô hình xuống nền tảng nhúng [7] (46)
    • 4.3.5. Hiện thực trên C++ dé tính hợp vào ứng dụng Q( (61)
    • 4.3.6. Chuyển đổi mô hình Anti-Spoofing từ Python xuống C++................ 56 4.4. Triển khai stream video với R'TSP.............................--------22E2EEEEEEEEEEEEEEErrrrrrrrrrrrrvee 57 4.5. Triển khai module LOgger.................................--.-----ss++cest+eeesteeeetrrrerrrrrrrrrerrrree 59 4.6. Triển khai ứng dụng xuống thiết bị phần cứng.................................---.------css-++ 60 (63)
  • 5.2. Triển khai kiểm thử khả năng chịu tải máy chủ SocketlO (69)
  • 5.3. Triển khai kiểm thử tính năng nhận diện khuôn mặt (75)
  • 5.4. Triển khai kiểm thử tinh năng stream video của ứng dụng (0)
  • 5.5. Thông số hoạt động của ứng dụng............................--:..cccceirtecvverrrresvvvrrrrreseerrrree 72 Chương 6. DANH GIÁ KẾT QUA VÀ KẾT LUẬN....................................--------s2.ceeree 75 6.1. Đánh giá kết quả và so sánh với mục tiêu ban đầu ..............................--..-------- 75 6.2. Một số điểm hạn chế của đề tài.............................----2:icecetrrrererrrerertrrrrrrtrrrrrrrrre 77 6.3. Hướng phat triển tiếp theo...........................-------+cececosiireeecvcrtrrrervrrrrrrrrrrrrrrrrrrrrrrrre 77 (79)

Nội dung

Mục tiêu của đề tài Thiết kế và triển khai một Miniserver trong phạm vi trường học dé thiết bị bục giảng và các thiết bị IoT khác như bàn học thông minh trong mô hình lớp học Hybrid [6]

Công nghệ lập trình phần mềm nhúng s°.+ceseeetrreezrreee 8 2.2 Lựa chọn phần cứng -ecs-+cccsseeeeEEEtrvvvtrtrrrtrrrrrttrrrrrrrrirrrrrrirree 9 2.3 Nhận diện khuôn mặt dựa trên nền tảng học sâu .-. -c c-erc-crx 11 2.3.1 Mô hình MTCNN ki 11 2.3.2 Mô hình rút trích đặc trưng khuôn mặt MobileFacenet

Giải thuật Pruning MobileFaceèNet ô-ceceeeieree 14 2.3.4 Công nghệ chống giả mạo khuôn mặt cceerreccccet 15 2.4 Công nghệ và môi trường phát triển máy chủ -. : cccecrree 17 2.4.1 Back-end: NodeJS — ExpressJS kết hợp cùng MongoDB

Giải thuật này thành công nhờ vào tiêu chí cắt tia được sử dung Một số tiêu chí cắt tỉa hiệu quả được giới thiệu như sau:

Oracle pruning là một tiêu chí lý tưởng nhưng có chi phí cao, đánh giá tầm quan trọng của từng tham số bằng cách loại bỏ chúng và ghi lại sự thay đổi của hàm mất mát.

— Minimum weight: Pruning dựa trên độ lớn của trọng số, giả định rang các trọng số nhỏ hơn ít quan trọng hơn.

Pruning là quá trình loại bỏ các bản đồ đặc trưng (feature maps) dựa trên giá trị kích hoạt của chúng Giả định chính là nếu giá trị kích hoạt của một bản đồ nhỏ, thì bản đồ đó không có vai trò quan trọng trong mô hình.

— Mutual information: Do lường thông tin chung giữa các kích hoạt va dự đoán.

— Taylor expansion: Sử dụng khai triển Taylor dé ước lượng sự thay đổi của hàm mắt mát khi loại bỏ một tham só.

— APoZ (Average Percentage of Zeros): Đánh giá tam quan trọng của neuron dựa trên tỷ lệ phan trăm trung bình của các kích hoạt dương.

Các tiêu chí này đóng vai trò quan trọng trong việc đánh giá và loại bỏ các tham số không cần thiết, giúp giảm thiểu số lượng phép toán và tối ưu hóa việc sử dụng bộ nhớ, đồng thời vẫn đảm bảo độ chính xác của mô hình.

Quá trình Pruning tông thé:

— Bắt đầu với bộ tham số đầy đủ W.

— Lap lại quá trình nhận dang và loại bỏ các tham số it quan trọng nhất.

— Tiếp tục cắt tia cho đến khi đạt được sự cân bằng giữa độ chính xác và mục tiêu pruning.

Các tiêu chí này cho phép tính toán nhanh chóng và hiệu quả, giúp quá trình cắt tỉa trở nên khả thi cho các mạng nơ-ron lớn và phức tạp.

2.3.4 Công nghệ chống giả mạo khuôn mặt e Giải pháp Silent Face Anti Spoofing của Minivison [17]

Năm 2020, công ty tư nhân Minivision Technology tại Nam Kinh, Trung Quốc, đã phát triển một mô hình mã nguồn mở chống giả mạo khuôn mặt với thiết kế nhanh chóng, nhỏ gọn và độ chính xác cao Mô hình này có kiến trúc đặc biệt, mang lại hiệu quả vượt trội trong việc nhận diện và bảo vệ thông tin cá nhân.

MiniFASNetV1 có kích thước nhỏ gọn và độ chính xác cao, lý tưởng cho việc triển khai trên các thiết bị hạn chế tài nguyên như điện thoại di động và hệ thống nhúng.

+ Convolutional Layers: MiniFASNetV1 sử dung các lớp convolution dé rút trích đặc trưng từ khuôn mặt của ảnh đầu vào.

Depthwise Separable Convolution là một phương pháp giúp giảm số lượng tham số trong mô hình, đồng thời tăng tốc độ tính toán và giảm độ phức tạp MiniFASNetVI thường áp dụng kỹ thuật này để đảm bảo mô hình nhỏ gọn, phù hợp với các thiết bị di động có tài nguyên tính toán hạn chế.

Batch Normalization là một kỹ thuật quan trọng giúp cân bằng đầu ra của các lớp trong mạng nơ-ron trước khi đưa vào hàm kích hoạt Kỹ thuật này không chỉ cải thiện tốc độ hội tụ mà còn tăng cường sự ổn định của mô hình, từ đó nâng cao hiệu quả trong quá trình huấn luyện.

+ Activation Functions: MiniFASNetV1 thường sử dụng các hàm kích hoạt như ReLU (Rectified Linear Unit) nhằm giúp học được các đặc trưng phi tuyến tính cho mô hình.

+ Pooling Layers: Dé giảm kích thước của tensor và giảm số lượng tham số, MiniFASNetV1 sử dung các lớp pooling như MaxPooling.

Các lớp fully connected được sử dụng sau khi rút trích đặc trưng từ các lớp convolution để phân loại đối tượng, chẳng hạn như xác định khuôn mặt hay vật thể.

Dựa trên kết quả nghiên cứu, nhóm đã quyết định tận dụng lại các dữ liệu từ mã nguồn mở hiện có để tiếp tục triển khai dự án.

2.4 Công nghệ và môi trường phát triển máy chủ

2.4.1 Back-end: NodeJS — ExpressJS kết hợp cùng MongoDB

Node.js là một nền tang phát triển dựa trên nền tang JavaScript và sử dung runtime V8 của Google Chrome Các điểm nổi bật của Node.js bao gồm:

Node.js sử dụng mô hình xử lý không đồng bộ (non-blocking), cho phép ứng dụng web xử lý nhiều thao tác I/O một cách hiệu quả Điều này giúp cải thiện hiệu suất và khả năng mở rộng của ứng dụng, đáp ứng tốt hơn nhu cầu của người dùng.

JavaScript là ngôn ngữ lập trình linh hoạt, cho phép phát triển cả frontend và backend, giúp đơn giản hóa quy trình phát triển và bảo trì ứng dụng Việc sử dụng JavaScript trong cả hai lĩnh vực này không chỉ giảm thiểu độ phức tạp mà còn giúp các nhà phát triển dễ dàng hơn trong việc học hỏi và làm quen với công nghệ.

Node.js sở hữu một hệ sinh thái mô-đun phong phú trên npm (Node Package Manager), cung cấp nhiều mô-đun hữu ích giúp phát triển ứng dụng nhanh chóng và mở rộng dễ dàng.

Express.js là một framework web mạnh mẽ cho Node.js, cung cấp cách tiếp cận tối giản để xây dựng ứng dụng web Những đặc điểm nổi bật của Express.js bao gồm tính linh hoạt, khả năng mở rộng và hỗ trợ middleware, giúp phát triển ứng dụng nhanh chóng và hiệu quả.

Express.js là một framework nhẹ và linh hoạt, không yêu cầu nhà phát triển phải tuân theo một cách tiếp cận cụ thể nào Điều này mang lại cho họ sự tự do trong việc lựa chọn công nghệ và cấu trúc phù hợp với dự án của mình.

Sream Video với RTSP .eckriHHH hy 19 2.4.3 Giao tiếp thời gian thực với SocketẽO . .-ccccecrreccccer 20 2.5 Triển khai máy chủ trên môi trường local va cloud AWS EC2 20 Chương 3 THIẾT KẾ VÀ HIEN THỰC HIE THỐNG -. -s:: 23

RTSP, viết tắt của Real Time Streaming Protocol, là một giao thức điều khiển phát trực tuyến âm thanh và video Giao thức này cung cấp các phương pháp điều khiển cho ứng dụng phát trực tuyến đa phương tiện, cho phép người dùng tạm dừng, tua lại và quản lý các dữ liệu đa phương tiện RTSP hoạt động ở lớp ứng dụng trong mô hình OSI, giúp thiết lập và kiểm soát các phiên đa phương tiện giữa người dùng cuối Nó tương tác với nhiều giao thức truyền thông dữ liệu khác như RTP (Real-time Transport Protocol) và RDP (Reliable Data Protocol).

RTSP Connection ATP/RTCP Streams

Randem RTSP UD? Ports UDP Ports

TCP Handshake Client to Server

— RICP Int li la ‘CP Information

Giao thức RTSP (Real-Time Streaming Protocol) chủ yếu được áp dụng trong các ứng dụng phát trực tuyến trực tiếp, như hệ thống video giám sát và giảng dạy trực tuyến Hình 2.6 minh họa cách thức truyền nhận dữ liệu của giao thức này, cho thấy vai trò quan trọng của RTSP trong việc cung cấp nội dung video một cách hiệu quả và liên tục.

2.4.3 Giao tiếp thời gian thực với SocketlO

Socket.IO là thư viện quan trọng cho các ứng dụng web thời gian thực, cho phép truyền tải dữ liệu nhanh chóng và liên tục giữa server và client Đây là lựa chọn hàng đầu cho các ứng dụng cần cập nhật liên tục, như chat, thông báo thời gian thực và trò chơi trực tuyến.

Socket.IO sử dụng giao thức WebSocket để truyền tải dữ liệu hai chiều giữa client và server qua một kết nối duy nhất Trong trường hợp môi trường hoặc trình duyệt không hỗ trợ WebSocket, Socket.IO sẽ tự động chuyển sang các phương thức thay thế như AJAX long-polling, đảm bảo tính ổn định và khả năng tương thích cao.

Thư viện cung cấp các API đơn giản va dé dàng sử dung cho cả server va client.

Socket.IO thường được sử dụng kết hợp với Node.js trên server để quản lý kết nối và giao tiếp với client Thư viện này cung cấp hỗ trợ cho các ứng dụng client, giúp kết nối và giao tiếp với server một cách hiệu quả.

Sử dụng thư viện SocketIO-CPP-Client cho ứng dụng Qt là lựa chọn thông minh, mang lại nền tảng ổn định và linh hoạt để kết nối và giao tiếp với máy chủ Socket.IO bằng ngôn ngữ C++ Thư viện này giúp tiết kiệm thời gian và công sức trong việc triển khai các tính năng giao tiếp thời gian thực.

Việc tận dụng thư viện mã nguồn mở như SocketIO-CPP-Client không chỉ giúp giảm thiểu khối lượng công việc phát triển mà còn nâng cao tính khả dụng và độ tin cậy của ứng dụng.

2.5 Triển khai máy chủ trên môi trường local và cloud AWS EC2

Docker là nền tảng giúp đóng gói và triển khai ứng dụng cùng với các phụ thuộc vào các container độc lập Các container này được thiết kế chặt chẽ, cho phép di chuyển dễ dàng giữa các môi trường máy chủ khác nhau.

20 dàng mà không cần thay đổi code hay cài đặt lại phan mềm Docker có một sé lợi ích sau:

Docker cho phép đóng gói ứng dụng và các phụ thuộc của nó vào các container độc lập, đảm bảo rằng ứng dụng hoạt động nhất quán trên mọi môi trường mà không phụ thuộc vào cài đặt của máy chủ Nhờ vào tính năng này, người dùng có thể dễ dàng khởi chạy container trên bất kỳ hệ thống nào mong muốn.

— Tính nhẹ và hiệu suất: Docker sử dụng các container để chạy ứng dụng, giúp tiết kiệm tài nguyên và hiệu suất.

Docker mang đến tính linh hoạt và khả năng mở rộng dễ dàng cho ứng dụng, cho phép triển khai nhiều container trên nhiều máy chủ Người dùng có thể điều chỉnh số lượng container một cách tự động hoặc thủ công, tùy thuộc vào nhu cầu thực tế.

Dockerfile giúp xác định rõ ràng các phụ thuộc của ứng dụng và cách cài đặt chúng, từ đó dễ dàng quản lý các phiên bản và cập nhật của ứng dụng.

Việc triển khai mô hình tính toán biên (Edge Computing) gần với người dùng cuối, thay vì trên cloud, cho phép nhóm sử dụng một máy tính như một MiniServer Mô hình này mang lại nhiều lợi ích, bao gồm giảm độ trễ, tăng cường hiệu suất và cải thiện khả năng xử lý dữ liệu.

Điện toán biên cho phép xử lý và tính toán dữ liệu ngay tại nguồn, gần nơi thu thập, giúp giảm độ trễ và nâng cao tính phản hồi của ứng dụng Điều này đặc biệt quan trọng trong các ngữ cảnh cần xử lý nhanh chóng và theo thời gian thực.

Xử lý dữ liệu trực tiếp tại các điểm biên giúp giảm tải cho mạng truyền thông và trung tâm dữ liệu, nhờ vào việc hạn chế việc truyền tải dữ liệu lớn giữa các thiết bị và đám mây.

Nhưng với mục tiêu mở rộng hệ thống, nhóm đã triển khai thêm trên môi trường cloud sử dụng Amazon EC2.

Amazon Elastic Compute Cloud (Amazon EC2) là dịch vụ tính toán đám mây mạnh mẽ của Amazon Web Services (AWS), cho phép người dùng thuê máy chủ ảo và quản lý dịch vụ máy chủ theo nhu cầu mà không cần đầu tư vào phần cứng riêng Điểm nổi bật của Amazon EC2 là khả năng mở rộng linh hoạt và môi trường an toàn, hỗ trợ phát triển ứng dụng trên toàn cầu.

Triển khai giao diện ứng dụng nhúng ban đầu -s s 39 4.3 Triển khai module nhận diện khuôn mặt .cccv+vvvv:rtrttttttttrz++ 41 4.3.1 Chuan bị bộ dữ liệu cee-eceerreeerreeeerrrerrrreerrrrrrre 41 4.3.2 Huấn luyện mô hình .- :+eccccttrrreevvvErtrrrrrvrrrrrrrrrrrrrrree 46 4.3.3 Kết quả huấn luyện -ôccereceerreeetrereerrrerrrreerrrerrre 49 4.3.4 Chuyển đổi mô hình xuống nền tảng nhúng [7]

Hiện thực trên C++ dé tính hợp vào ứng dụng Q(

Trong quá trình phát triển hệ thống nhận diện khuôn mặt, nhóm đã tách riêng module nhận diện khuôn mặt và xây dựng lớp FaceCheckService Lớp này cung cấp các phương thức để khởi tạo, tài nguyên, đăng nhập, nhận dạng và tạo mẫu cho việc nhận diện khuôn mặt.

Q OBJECT private: static std::unique_ptr instance; static std::mutex m_ctx;

FaceCheckService(const FaceCheckService &) = delete; // Không cho phép sao chép đối tượng (Singleton) FaceCheckService &operator=(const FaceCheckService &) = delete; // Không cho phép sao chép đối tượng (Singleton)

The FaceCheckService class utilizes smart pointers to manage instances of AntiSpoofingIF, MTCNN, and MobileFacenet, alongside vectors for storing face names and embeddings It features a singleton pattern with a static method to retrieve the instance, an initialization method requiring an ID, and a resource acquisition method based on the same ID Additionally, the class includes functionality to load a custom face recognition model and to perform face-based login using an image input.

The function `recognize` takes a QString `id` and an optional camera number, defaulting to 9, to perform face recognition for the specified ID The `loadDatabase` function is responsible for loading the facial database, while `generatePattern` creates a pattern based on the provided ID.

Hình 4.27 Hình mô tả code interface cho class FaceService

Bộ interface được thiết kế với các phương thức như init(), getResources(), loginWithFace() và recognize() để tương tác với dữ liệu và thực hiện nhận dạng khuôn mặt Đối tượng của lớp được tạo dưới dạng Singleton, đảm bảo chỉ có một phiên bản của FaceCheckService Các biến thành viên asf, mtcnn và mbƒn được lưu trữ bằng con trỏ thông minh, giúp quản lý tự động vòng đời của các đối tượng, cho phép tải và sử dụng các mô hình nhận dạng khuôn mặt tùy chỉnh Các vector nameFaces và fcl lưu trữ tên và nhúng của các khuôn mặt đã được đăng ký trong cơ sở dữ liệu.

5 E D Ễ es i 8 Lè NỘI Liyic65ise63zegkeiea ae SA CN | 25 ù gs) 2 5 a E`?

= Ba ' E -ẹ t 3 Ss) h 5 = ' =a 4 3 s ' đ H o _ h wi = a! ' Ị e| M ms LƠ3Ì-E > _ | = +d5 | *

Biểu đồ tuần tự xử lý nhận diện khuôn mặt đảm bảo an toàn và độ tin cậy, bao gồm đầy đủ các chức năng như phát hiện khuôn mặt.

IỆC x tự của vi an

Hình 5.25 thê hiện các bước tu t, định danh khu ôn ôn mặ

2 iém tra khuôn mặt that hay gia. mat va

Chuyển đổi mô hình Anti-Spoofing từ Python xuống C++ 56 4.4 Triển khai stream video với R'TSP 22E2EEEEEEEEEEEEEEErrrrrrrrrrrrrvee 57 4.5 Triển khai module LOgger . . -ss++cest+eeesteeeetrrrerrrrrrrrrerrrree 59 4.6 Triển khai ứng dụng xuống thiết bị phần cứng . -. css-++ 60

Nhóm đã sử dụng bộ tham số mã nguồn mở Minivision-AI về Anti-Spoofing để chuyển đổi từ nền tảng Python sang nền tảng C++ Qua quá trình chuyển đổi này, nhóm đã đạt được những kết quả đáng chú ý.

Activities [=] Terminal ~ jetson@nano: ~/workplace/SmartDesk/build

The log entries from the FaceCheckService indicate repeated successful executions of the LoginWithFace() function, consistently returning the message "le is real." This suggests a stable and reliable performance of the facial recognition login feature, as evidenced by the timestamped logs from June 27, 2024.

03:08:06] [FaceCheckServic cppl-.LINE0} Fur lLoginWithFace(), Line: , Message:

Activities [-] Terminal ~ do 03:21® jetson@nano: ~/workplace/SmartDesk/build

File Edit View Search Terminal Help

Face is fake [2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: toginWithFace(), Line: 212, Message:

[2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: loginWithFace(), Line: 212, Message:

Face is fake [2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: toginWithFace(), Line: 212, Message:

Face is fake [2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: loginWithFace(), Line: 212, Message:

Face is fake [2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: toginWithFace(), Line: 212, Message:

Face is fake 2024-06-27 03:21:48] [FaceCheckService.cpp] [WARNING] Function: loginWithFace(), Line: 212, Message:

Hinh 4.30 Két qua phát hiện là khuôn mặt gia voi hình ảnh trên điện thoại

Kết quả từ Hình 5.29 và Hình 5.30 cho thấy quá trình kiểm tra khuôn mặt trước camera nhằm xác định xem đó có phải là hình thật hay chỉ là hình ảnh chụp từ điện thoại hoặc các phương thức khác Điều này đảm bảo tính an toàn và bảo mật cho người dùng.

4.4 Triển khai stream video với RTSP

Việc triển khai lớp học hybrid và học trực tuyến yêu cầu sự linh hoạt và tương tác hiệu quả giữa giảng viên và học viên Để tiết kiệm thời gian và công sức trong việc xây dựng server RTSP từ đầu, nhóm đã quyết định sử dụng MediaMTX, một server mã nguồn mở.

MediaMTX, formerly known as rtsp-simple-server, is a real-time media server and proxy that enables users to publish, read, proxy, record, and playback audio and video streams.

MediaMTX là một "media router" được phát triển để định tuyến các luồng media từ nguồn này sang nguồn khác Một số tính năng nổi bật của MediaMTX bao gồm khả năng xử lý đa dạng các loại dữ liệu media, tối ưu hóa hiệu suất truyền tải và hỗ trợ nhiều giao thức khác nhau.

- Publish live streams: Cho phép publish các luồng trực tiếp lên server.

- Read live streams: Cho phép đọc các luồng trực tiếp từ server.

- Protocol conversion: Tự động chuyên đổi giữa các giao thức.

- Multiple streams: Hỗ trợ nhiều luồng cùng lúc trên các đường dẫn riêng biệt.

- Record streams: Ghi lại các luồng vào đĩa.

- Playback recorded streams: Phát lại các luồng đã ghi.

- User authentication: Xác thực người dùng.

- Load balancing: Chuyên hướng người đọc đến các server RTSP khác.

- Control API: Điều khién server thông qua API.

- Hot reloading: Tai lai cau hình mà không ngắt kết nối các client hiện tại.

- Prometheus-compatible metrics: Đọc các số liệu tương thích với Prometheus.

- Hooks: Chạy các lệnh bên ngoài khi client kết nối, ngắt kết nối, đọc hoặc publish các luồng.

Phần mềm này hỗ trợ tương thích đa nền tảng, bao gồm Linux, Windows và macOS, mà không cần bất kỳ thư viện hay trình thông dịch nào, chỉ yêu cầu một tệp thực thi duy nhất để hoạt động.

Để stream video lên server trong ứng dụng Qt, nhóm đã sử dụng GStreamer, một thư viện phổ biến cho việc xử lý video và audio trên thiết bị nhúng Dưới đây là ví dụ về cách triển khai lớp ScreenStreamer, lớp này được thiết kế để stream video màn hình của ứng dụng.

GStreamer trong C++: class ScreenStreamer : public QObject

GstCaps *caps; public: std: :atomic keepRunning{ true };

Q_INVOKABLE void startStream(QString url)/{-

Q_INVOKABLE void stopStream() { - std::thread* m_thread; bool createElements(); bool buildPipeline(QString url); void startStreaming () ; void stopStreaming () ; void callback(); explicit ScreenStreamer(QObject* parent = nullptr);

// Clean up if (caps != NULL) gst_caps_unref(caps); if (m_thread != nullptr){ m_thread->join(); delete m thread; m thread = nullptr;

Hình 4.31 Hình mình họa về bộ interface cho lớp ScreenStreamer Thanh phan của lớp ScreenStreamer như sau:

Pipeline GStreamer chính bao gồm các thành phần như ximagesrc, videoscale, videoconvert, capsfilter, videoconvert2, x264enc, h264parse và rtspclientsink, được sử dụng để lấy màn hình, chuyển đổi định dạng, mã hóa và gửi dữ liệu qua RTSP Bus và msg được dùng để xử lý các thông điệp GStreamer như lỗi và EOS Caps định nghĩa và giới hạn định dạng cho dữ liệu video Biến keepRunning kiểm soát để giữ cho luồng callback luôn hoạt động Địa chỉ RTSP để stream được xác định bởi biến url, trong khi m_thread là con trỏ đến luồng thực hiện việc stream.

- Cac phương thức hỗ trợ cho việc stream video: o createElements(): Tạo các phần tử GStreamer cần thiết cho pipeline.

Nếu không có phần tử nào, hệ thống sẽ ghi log lỗi và trả về giá trị false Hàm buildPipeline(QString url) thêm các phần tử vào pipeline và liên kết chúng, đồng thời thiết lập các thuộc tính mặc định URL được đặt cho phần tử rtspclientsink để gửi stream đến địa chỉ đó Hàm startStreaming() sẽ đặt trạng thái của pipeline thành "đang phát".

Chờ nhận thông điệp lỗi hoặc EOS (End of Stream) để giải phóng tài nguyên khi kết thúc Hàm stopStreaming() sẽ gửi sự kiện EOS đến pipeline để kết thúc stream, đồng thời ghi log thông tin thành công hoặc thất bại Vòng lặp callbackQ liên tục tạo các phần tử, xây dựng pipeline và bắt đầu stream cho đến khi biến keepRunning được đặt thành false.

Trong quá trình phát triển ứng dụng, việc gỡ lỗi thường gặp khó khăn do chương trình có thể dừng đột ngột mà không cung cấp đủ thông tin chi tiết về nguyên nhân Để giải quyết vấn đề này, nhóm đã triển khai một module Logger để ghi lại log của chương trình, giúp việc theo dõi và phân tích lỗi trở nên dễ dàng hơn.

Trong quá trình phát triển ứng dụng, việc theo dõi và phân tích lỗi là rất quan trọng Hình minh họa dưới đây cho thấy cách sử dụng module Logger để ghi lại những thông tin cần thiết, giúp cải thiện hiệu suất và độ tin cậy của ứng dụng.

-06-27 02:59:46] [INFO] Function: getResources(), Line: 173, Message: Downloaded resources successfully 06-27 02:59:46] [INFO] Function: getResources(), Line: 175, Message: Total resources: 7

06-27 02:59:46] [INFO] Function: getResources(), Line: 176, Message: Resources are stored in /tmp/DB 06-27 62:59:46] [INFO] Function: getCurrentPeriod(), Line: 199, Message: ID Teacher: 20520614

-06-27 02:59:46] [ERROR] Function: syncToStartupFile(), Line: 243, Message: Failed to open file for writing 06-27 02:59:46] [INFO] Function: main(), Line: 65, Message: Start app with id teacher: 20520614

96-27 02:59:46] [INFO] Function: init(), Line: 20, Message: ProducerCamIpml: Initializing camera with index 0 06-27 02:59:46] [INFO] Function: init(), Line: 20, Message: ProducerCamIpml: Initializing camera with index 0 vkCreateInstance failed -9 vkCreateInstance failed -9

-96-27 02:59:46] [INFO] Function: load(), Line: 252, Message: Face Mesh load done!

-06-27 02:59:46] [INFO] Function: setQmlClassIF(), Line: 65, Message: mQmLCLassTF:

-06-27 02:59:46] [INFO] Function: setQmlClassIF(), Line: 71, Message: Q_EMIT qmlClassIFChanged() -@6-27 02:59:46] [INFO] Function: operator()(), Line: 27, Message: Get class from server success nh + + PPT WAN AF INE ADA nnd n1 Pe ohadel a lene đ Ea IMAEINETAN

Hình 4.32 Hình minh họa về nhật ký được lưu lại khi khởi động ứng dung Triển khai ứng dụng xuống thiết bị phần cứng

Trong quá trình phát triển ứng dụng nhúng, chuyển đổi từ môi trường máy tính sang môi trường phần cứng nhúng thường gặp nhiều khó khăn và rủi ro Để giảm thiểu những rủi ro này, nhóm đã thực hiện các cải tiến quan trọng.

Việc chuyển đổi môi trường chạy ứng dụng từ máy tính sang thiết bị phần cứng có thể gặp khó khăn và tiềm ẩn nhiều rủi ro do sự không tương thích giữa các thành phần Để giảm thiểu những rủi ro này, nhóm đã thực hiện các biện pháp cần thiết.

Triển khai kiểm thử khả năng chịu tải máy chủ SocketlO

Nhóm đã tiến hành đánh giá khả năng chịu tải của máy chủ Socket.io bằng cách tạo ra một môi trường thử nghiệm mô phỏng tải cao Mục tiêu là thiết lập hàng loạt kết nối đồng thời đến máy chủ nhằm đo lường hiệu suất hoạt động của nó.

Kiểm thử khả năng chịu tải là một nhiệm vụ thách thức, yêu cầu hệ thống kiểm thử mạnh mẽ và đáng tin cậy Việc mô phỏng hàng ngàn người dùng ảo gửi sự kiện đến máy chủ đồng thời cần một cấu hình hệ thống mạnh mẽ Tuy nhiên, do hạn chế về tài nguyên, nhóm chỉ tiến hành kiểm thử dựa trên ba tiêu chí chính.

— Kết nối đồng thời: Đánh giá khả năng xử lý của máy chủ khi phải duy trì nhiều kết nối cùng lúc.

— Xử lý sự kiện: Kiểm tra hiệu suất của máy chủ khi phải xử lý một lượng lớn sự kiện từ các kết nối.

— Tai nặng: Đánh giá kha năng của máy chủ khi phải chịu tải nặng liên tục trong thời gian dai.

Bằng cách tập trung vào các khía cạnh này, chúng ta có thể hiểu rõ hơn về khả năng chịu tải và hiệu suất của máy chủ Socket.io khi đối mặt với áp lực cao Nhóm thực hiện kiểm thử trong một môi trường máy chủ được cấu hình cụ thể.

Bảng 5-1 Bảng thông số máy chủ SocketlO Thuộc tính Câu hình

Hệ điều hành Windows 10 Pro 64-bit ( 10.0, Build 19045 )

CPU & RAM ~1.7GHz với RAM 16381MB

Chi tiét vé két quả do đạc đạt được như sau:

Theo đề cương, số lượng người dùng tối đa là 1000 và thời gian phản hồi không vượt quá 2000 ms trong điều kiện tải bình thường Chúng tôi đã đưa ra 3 kịch bản để đánh giá hiệu suất hệ thống.

+ Đánh giá theo thời gian phản hồi nhỏ hơn 2000 và lượng người dùng lên tới

1000, dung lượng gói tin nhỏ hơn 1 Mb Ta được kết quả như sau:

“+ Tải nặng với data dung lượng nhỏ:

Hình 5.4 Tổng số người dùng truy cập

Bang 5-3 Bảng đánh giá chung cho việc kiểm tra tải với gói tin nhỏ.

Name Số | Request | Fails | Average | Min | Max | Average Max lượng S (ms) | (ms) (ms) size request/

User ID Status In Class

Hình 5.5: Hiển thị người dùng trong trạng thái da đăng nhập và vào lớp.

8:28:45 PM 8:29:00 PM 8:29:15 PM 8:29:30 PM 8:29:45 PM 8:30:00 PM

MiCcoreO Coe1i WCoe2 Mh Core3 [ME Core4 NCoce5 [i Core6 Mi Core7

Hình 6.5: Lượng tiêu thụ CPU khi server socket chịu tải nặng.

SV om © A © O VM & © c6 O A OD a A a NÓ N gS HO LO NO DP MP PPP PD vv %

Hình 5.6: Luong tiêu thu bộ nhớ server socket chịu tai nặng.

Kết quả từ các biểu đồ trên cho thấy kịch bản kiểm tra tai nặng cho yêu cầu giao tiếp thời gian thực với tối đa 1000 người dùng, với tốc độ tăng 100 người dùng mỗi giây, đã được thực hiện liên tục trong 30 phút.

Kết quả cho thấy, khi dung lượng gói tin nhỏ hơn 1 Mb, hệ thống có khả năng phục vụ hơn 1000 người dùng với thời gian phản hồi luôn dưới 2000 ms.

+ Đánh giá kích thước tối da của gói tin khi số lượng người dùng lên đến 1000 và không quan tâm đên thời gian thì kêt quả như sau:

Bảng 5-2 Bảng đánh giá chung cho việc kiểm tra tải với gói tin nhỏ.

Name Số | Request | Fails | Average | Min | Max | Average Max lượng S (ms) | (ms) (ms) size request/

Kết quả nghiên cứu cho thấy rằng khi số lượng người dùng đạt 1000, dung lượng gói tin tối đa chấp nhận được là khoảng 4.45 Mb, trong khi mức tiêu thụ CPU và bộ nhớ vẫn nằm trong giới hạn chấp nhận.

Khi đánh giá lượng người dùng tối đa với gói tin có kích thước lớn hơn 4.45 Mb mà không quan tâm đến thời gian, chúng tôi đã tiến hành kiểm tra tải nặng và thu được kết quả như sau: Đề phù hợp với các trường hợp thực tế, chúng tôi đã thực hiện các thử nghiệm với gói tin có dung lượng lớn hơn và ghi nhận kết quả chi tiết dưới đây.

Bảng 5-3: Bảng đánh giá chung cho việc kiểm tra tải với gói tin lớn Name | Số | Requests | Fails | Average | Min | Max | Average Max lượng (ms) | (ms) size request/

Nghiên cứu cho thấy rằng khi kích thước dữ liệu vượt quá ngưỡng tối đa so với kịch bản 2, số lượng người dùng giảm mạnh Cụ thể, khi kích thước dữ liệu tăng lên khoảng 1.7 lần, số lượng người dùng giảm đến 90%.

Dựa trên số liệu từ các biểu đồ và bảng thống kê, máy chủ SocketIO mặc dù có hạn chế về cấu hình vật lý nhưng vẫn có khả năng xử lý tải nặng với số lượng request lớn và người dùng đông Kết quả cho thấy máy chủ có thể phục vụ đến 1000 người dùng, với thời gian phản hồi trung bình là 417,26 ms cho mỗi request, kích thước gói tin khoảng 11000 Kb, và khả năng tải tối đa lên tới 4.45 Mb.

Triển khai kiểm thử tính năng nhận diện khuôn mặt

Trước khi tiến hành thực nghiệm, nhóm đã kiểm thử mô hình nhận dạng khuôn mặt trên các bộ dữ liệu công khai và đạt tỷ lệ chính xác cao, vượt quá 90%, gần tương đương với các nghiên cứu trước đó Đặc biệt, mô hình cũng được kiểm thử trên bộ dữ liệu khuôn mặt người Việt Nam (VN-Celeb) Chi tiết về các kết quả này được trình bày trong bảng dưới đây.

Bảng 5-4 Độ chính xác kiểm thử trên tập dữ liệu của mô hình

Để kiểm tra hiệu suất của mô hình nhận diện khuôn mặt trên thiết bị Jetson NanoTM Development Kit 4GB, nhóm nghiên cứu đã thực hiện thí nghiệm với năm người trong ba điều kiện ánh sáng khác nhau: Thiếu sáng, Bình thường và Sáng nhiều Các kịch bản này nhằm đánh giá hiệu quả và độ tin cậy của mô hình trong các tình huống thực tế, với các yêu cầu và tiêu chí đánh giá được xác định rõ ràng Kết quả đạt được là 98.91% độ chính xác trong điều kiện ánh sáng tốt, 89.50% trong điều kiện bình thường và 90.20% trong điều kiện thiếu sáng.

Trong nghiên cứu này, có 30 người tham gia được lựa chọn để thực hiện các thử nghiệm Mỗi người thực nghiệm được kiểm tra trong nhiều điều kiện ánh sáng khác nhau và từ các góc độ khuôn mặt khác nhau để thu thập dữ liệu chính xác.

Điều kiện sáng được phân loại thành ba mức độ: Thiếu sáng (dưới 350 lux), Bình thường (từ 350 đến 550 lux) và Sáng nhiều (trên 550 lux) Những mức độ sáng này đóng vai trò quan trọng trong việc đánh giá hiệu suất của mô hình nhận diện khuôn mặt trong các tình huống ánh sáng khác nhau.

Trong kiểm thử, lượng dữ liệu sử dụng là 10 ng/100 ảnh cho mỗi người thực nghiệm, đảm bảo mẫu dữ liệu đủ lớn để đánh giá hiệu suất của mô hình một cách đại diện và đáng tin cậy.

Mô hình được kiểm tra ở các góc khuôn mặt khác nhau, bao gồm thẳng 0°, nghiêng 15° và nghiêng 30° Việc này giúp đánh giá hiệu quả nhận diện và định danh khuôn mặt của mô hình trong các góc độ đa dạng.

Kết quả phát hiện khuôn mặt được thể hiện qua số lần phát hiện đúng, số lần phát hiện sai và tỷ lệ chính xác (%) của mô hình trong việc nhận diện khuôn mặt của từng người tham gia thí nghiệm cũng như trong các điều kiện ánh sáng khác nhau.

Kết quả định danh khuôn mặt được trình bày thông qua số lần nhận diện chính xác, số lần nhận diện sai và tỷ lệ chính xác (%) của mô hình trong việc xác định danh tính khuôn mặt của từng cá nhân trong các điều kiện ánh sáng khác nhau.

Tốc độ xử lý trung bình (ms) cho thấy hiệu suất của mô hình nhận diện khuôn mặt đối với từng người tham gia và điều kiện ánh sáng khác nhau Thông tin chi tiết về số liệu thực nghiệm sẽ được trình bày trong bảng 6.5 dưới đây.

Bảng 5-5 Kết quả thực nghiệm nhận điện khuôn mặt

Tỷ lệ phát Tỷ lệ định ,

Lượng a ; Ty lệ nhận Toc độ xử Điêu kiện | Góc khuôn hiện danh người dạng người lý trung

' sáng mặt khuôn mặt khuôn mặt kiêm thử thật (%) bình (ms)

30 người thườn Nghiên ơ š he 98 98 97.5 52 dùng (350-550 15 độ lux) mm

Độ chính xác của tính năng phát hiện khuôn mặt trung bình đạt trên 96%, trong khi định danh khuôn mặt có độ tin cậy trên 95% Tốc độ xử lý trên phần cứng Jetson Nano cũng rất khả quan, với thời gian trung bình chỉ 60.22 ms cho mỗi khung hình Kết quả kiểm thử cho thấy mô hình này đạt hiệu suất cao và đáng tin cậy trong việc nhận diện và định danh khuôn mặt trên nền tảng Jetson Nano.

5.4 Triển khai kiểm thử tinh nang stream video của ứng dụng

Kiểm thử được thực hiện trên thiết bị nhúng Jetson Nano, nổi bật với khả năng xử lý video mạnh mẽ Ứng dụng Qt sử dụng phiên bản Qt 5.9 và tích hợp thư viện Gstreamer để hỗ trợ giải mã và phát trực tuyến video Máy chủ RTSP được triển khai thông qua MediaMTX, một giải pháp mã nguồn mở giúp quản lý các luồng video hiệu quả.

Nhóm đã thực hiện kiểm tra ở 2 chức năng:

Chức năng chia sẻ bài giảng qua việc stream video màn hình thiết bị cho thấy độ trễ khoảng 1 giây và tốc độ khung hình dao động ở mức 20 fps, tùy thuộc vào điều kiện mạng, chất lượng hình ảnh có thể bị vỡ Hình 6.7 dưới đây minh họa kết quả xem video được stream trên thiết bị nhúng Jetson Nano, với ứng dụng giáo viên, trong khi hai màn hình xem video sử dụng ứng dụng học sinh chạy trên máy ảo với hệ điều hành Ubuntu 18.04 và phần mềm VLC.

Email: duyd@uit.edu.vn

Email: duyd@uit.edu.vn

Hình 5.7 Kết quả xem video từ chức năng stream video màn hình thiết bi

Camera stream từ thiết bị bàn học của giáo viên cho phép theo dõi học sinh trong quá trình thực hiện bài kiểm tra Kết quả thu được tương tự như khi stream video màn hình, nhưng tốc độ khung hình cao hơn, dao động ở mức tối ưu.

Kết quả xem video từ camera được stream qua ứng dụng học sinh trên OS Ubuntu 18.04 với webcam laptop cho thấy hình ảnh từ Jetson Nano đang chạy ứng dụng Qt Tốc độ khung hình đạt từ 25 đến 30 fps, như thể hiện trong Hình 6.8 dưới đây.

Hình 5.8 Kết quả xem video từ chức năng stream video camera

5.5 Thông số hoạt động của ứng dụng

Hiệu suất đóng vai trò quan trọng trong việc triển khai ứng dụng trên thiết bị phần cứng Qua thử nghiệm trên Jetson Nano, nhóm nhận thấy ứng dụng sử dụng không nhiều bộ nhớ RAM.

Thông số hoạt động của ứng dụng : cccceirtecvverrrresvvvrrrrreseerrrree 72 Chương 6 DANH GIÁ KẾT QUA VÀ KẾT LUẬN s2.ceeree 75 6.1 Đánh giá kết quả và so sánh với mục tiêu ban đầu 75 6.2 Một số điểm hạn chế của đề tài 2:icecetrrrererrrerertrrrrrrtrrrrrrrrre 77 6.3 Hướng phat triển tiếp theo -+cececosiireeecvcrtrrrervrrrrrrrrrrrrrrrrrrrrrrrre 77

Hiệu suất là yếu tố quan trọng khi triển khai ứng dụng trên thiết bị phần cứng Qua thử nghiệm trên Jetson Nano, nhóm nhận thấy ứng dụng sử dụng không nhiều bộ nhớ RAM.

Trước khi chạy ứng dụng, hệ điều hành của Jetson sử dụng khoảng 1,4GB RAM, và sau khi ứng dụng được khởi động, bộ nhớ tăng lên khoảng 1,65GB, tạo ra mức chênh lệch khoảng 200MB Việc một ứng dụng AI kết hợp với khả năng stream video chỉ chiếm thêm 200MB trên thiết bị phần cứng được xem là hiệu quả và đáng khen ngợi.

Khi ứng dụng không sử dụng các chức năng AI hoặc stream video, mức sử dụng CPU chỉ khoảng 5-15% Tuy nhiên, khi các chức năng này được kích hoạt, mức sử dụng CPU sẽ tăng lên trên 85% Đây là mức sử dụng tài nguyên CPU cao, nhưng cần chấp nhận để thực hiện các chức năng này.

DOO File Edit View Search TẾT HH NGU Help ett MAXN % GP oe 4) 11-41 (|

F1 eœGGGGGGGGGđG@GG6GG@G@â@đ@ ° œwuwwwwuwwuuuwuuuuuuuuU@@@đ@đ@œđ@đ@@@GG@GGGGGGGGGGG TS h - POđAWOSCAORPNNNNOWHROPHOR @đ@U O @O@hB bi a@NWNNNNO@OG@GUU 0G âœ@đ@@@đ@G@đ@@đ@ỉ@GGG@G@GG@GGG@GG@ /usr/1tb/xorg/Xorg vt2 -displayfd 3 -auth /run/us

/usr/11b/gnome-termtnal/gnome-terminal-server /usr /btn/contatnerd python3 /usr/share/nvpmodel_tndicator /nvpmodel_in python3 /usr/share/nvpmodet_tndtcator /nvpmodet_tn)

/usr/11b/gnome-settings-daemon/gsd-color /usr/btn/dockerd -H fd:// contatnerd=/run/conta f

/usr /btn/gnone-software gapplication-service

/usr/lib/gnome-settings-daemon/gsd-power /lib/systemd/systend-journald r9 F19

Hình 5.9 Hình thông tin về RAM trước khi chạy ứng dụng

73 Đ@ File Edit View Search Terminal Helper

@:00.22 F8 eeGGGGGG6 œœœ@GG@G@œG@GGẴ@oGo@oœo@eoooooxu SN HD Ba 0B GG@GO(0(0G œuwuuuwuwwwwwwwwwwuuuuwuuuœ@G@@®@®@G®@G@®@G@G@GG@GGGGGGGG —— ố

/usr/lib/unity-settings-daemon/unity-settings-da /sbin/init 2

/lib/systemd/systemd-journald /lib/systemd/systemd-udevd

/lib/systemd/systemd-timesyned /lib/systemd/systemd-resolved /lib/systemd/systemd-Logind /usr/btn/dbus-daemon system address=systemd: avahi-daemon: running [duoqg local]

/usr/ttb/accountsservtce/accounts - daemon r9 F19,

Hình 5.10 Hình ảnh bộ nhớ RAM sau khi được chạy ứng dung

Chương 6 ĐÁNH GIÁ KET QUA VA KET LUẬN

6.1 Đánh giá kêt qua và so sánh với mục tiêu ban dau

Trong khóa luận này, nhóm đã kế thừa từ đồ án trước và nhờ vào thời gian thực hiện đề tài, chúng tôi đã đạt được một số kết quả khả quan.

Bảng 6-1 Bảng so sánh kết quả nhận diện khuôn mặt.

Tiêu chí Độ chính xác FPS Tốc độ xử lý | Kích thước trên bộ dữ liệu trung bình trọng sỐ

Khóa luận kế thừa 90.26 14.93 67.00 4.9 Mb

Khóa luận hiện tại 90.20 16.60 60.22 2.5 Mb

Kết quả cho thấy rằng việc áp dụng giải thuật cắt tỉa và tinh chỉnh đã làm giảm độ chính xác trên bộ dữ liệu Việt Nam, tuy nhiên mức giảm này không đáng kể Đổi lại, kích thước trọng số giảm gần 2 lần và chỉ số FPS tăng lên, dẫn đến tốc độ xử lý mỗi khung hình được cải thiện Điều này hoàn toàn phù hợp với đề tài nghiên cứu khi có sự hạn chế về tài nguyên phần cứng.

Dưới đây là tông kết về các kết quả và so sánh với mục tiêu dé ra trong dé cương:

- _ Giao diện người dùng thân thiện: Ứng dung Qt đã được thiết kế với một giao diện thân thiện với người dùng và dễ sử dụng.

- - Nhận diện khuôn mặt: Hệ thống nhận diện khuôn mặt đã được tinh chỉnh lai phù hợp với người dùng Việt Nam và đạt kết quả khả quan.

- Giao tiếp và trao đổi dữ liệu với máy chủ: Ứng dụng có thê kết nối và truyền nhận đữ liệu một cách liên tục với server.

- _ Kết noi thời gian thực tới da thiết bị: Hệ thông hỗ trợ kết nối thời gian thực với nhiều thiết bị khác nhau

- Stream video trong ứng dung Qt: Tích hop được chức năng có thé stream video màn hình và camera vào ứng dụng Qt.

Theo dõi trạng thái học sinh là một ứng dụng quan trọng trong giáo dục hiện đại Việc tích hợp mô hình Facemesh với camera trực tiếp từ thiết bị bàn học giúp giám sát biểu cảm và trạng thái của học sinh trong quá trình làm bài kiểm tra Công nghệ này không chỉ nâng cao khả năng theo dõi mà còn hỗ trợ giáo viên trong việc đánh giá sự tập trung và cảm xúc của học sinh, từ đó cải thiện hiệu quả giảng dạy.

Kết quả kiểm thử ứng dụng Qt và phần Miniserver đã đạt được các mục tiêu đề ra, với những cải tiến rõ rệt ở các tính năng quan trọng Tất cả các mục tiêu trong đề cương đã được hoàn thành Dưới đây là bảng mô tả chi tiết về các tính năng và số liệu kiểm thử.

Bang 6-2 Bảng so sánh kết quả thu được và mục tiêu dé cương

Mục tiêu Kết quả Mục tiêu dé cương Ứng dụng chạy được trên thiết bị nhúng Jetson Nano Đã có thê chạy được trên phần cứng Jetson Nano

Có thê chạy trên phần cứng Jetson Nano

Nhận diện khuôn mặt e Dat 98.91 % độ chính xác cao nhất trên tập dữ liệu kiểm tra LEW,

CFP_FP va 90.26 % trén e VN _ Celeb

Tốc độ xử lý trung bình

- Đạt trên 90.00% độ chính xác trên tập dữ liệu kiểm tra

- Tốc độ xử lý trung bình cho I khung hình nhỏ hơn 100ms

Tích hợp được chức năng stream video trên ứng dụng

Qt Đã tích hợp được Tích hợp được Độ trễ khi giao tiếp giữa các thiết bị e Trung bình 413ms cho

1000 users với kích thước gói tin < 1 Mb e Kích thước gói tin tối đa cho 1000 users là

76 e Lượng người dùng tối đa là 100 users với kích thước gói tin ~ 7.5 Mb

6.2 Một sô điểm hạn chê của dé tài

Mặc dù ứng dụng Qt và Miniserver đã đạt được nhiều kết quả khả quan, thời gian thực hiện đề tài còn hạn chế so với khối lượng công việc, dẫn đến một số điểm hạn chế cần cải thiện Đầu tiên, độ chính xác của hệ thống nhận diện khuôn mặt, mặc dù đã triển khai thành công, vẫn gặp khó khăn trong việc nhận diện người dùng Thứ hai, giao diện người dùng hiện tại được thiết kế cho màn hình 7 inch trên Jetson Nano, nhưng còn hạn chế trong việc tương thích với các kích thước màn hình khác.

Hỗ trợ nên tảng phần cứng giới hạn: Hiện tại, ứng dụng chỉ hỗ trợ thiết bị phan cứng và nén tang cụ thé.

Tính ổn định và độ tương thích của ứng dụng có thể gặp phải các vấn đề liên quan đến hệ điều hành, trình duyệt hoặc phiên bản thiết bị cụ thể.

6.3 Hướng phát triển tiếp theo

Dựa trên kết quả đạt được và những hạn chế hiện tại, nhóm đề xuất các hướng phát triển nhằm nâng cao chất lượng và tính khả dụng của hệ thống trong tương lai.

Để cải thiện độ chính xác trong nhận diện khuôn mặt, nhóm nghiên cứu sẽ tiếp tục phát triển các thuật toán tiên tiến Họ cũng sẽ chuẩn bị các bộ dữ liệu khuôn mặt để tinh chỉnh mô hình, nhằm nâng cao độ chính xác trong quá trình nhận diện.

Mở rộng mô hình bằng cách thực hiện một hệ thống cho nhiều trường học sẽ cải tiến Miniserver, kết nối các Miniserver vào một Cloud Server chung, phục vụ cho một hệ thống lớn hơn trong tương lai.

Nâng cao khả năng tương tác ngôn ngữ là một mục tiêu quan trọng trong phát triển ứng dụng Hiện tại, ứng dụng chỉ tích hợp các tính năng AI về xử lý ảnh, nhưng trong tương lai, việc tích hợp công nghệ xử lý ngôn ngữ tự nhiên (NLP) sẽ giúp xây dựng một hệ thống giao tiếp tự động thông minh, từ đó nâng cao trải nghiệm người dùng.

Nhằm đáp ứng nhu cầu sử dụng đa dạng của người dùng, nhóm phát triển đã mở rộng khả năng hỗ trợ thiết bị bằng cách phát triển ứng dụng trên nhiều hệ điều hành và nền tảng khác nhau Điều này giúp người dùng dễ dàng tiếp cận và sử dụng dịch vụ một cách thuận tiện hơn.

Để tăng cường tính ổn định và tương thích, nhóm phát triển sẽ tiếp tục nghiên cứu và kiểm tra phần mềm trên nhiều hệ điều hành, trình duyệt và phiên bản thiết bị khác nhau Việc sửa lỗi và tối ưu hóa sẽ đảm bảo hoạt động mượt mà và hiệu quả của phần mềm, mang lại trải nghiệm tốt nhất cho người dùng.

[1] Manh Hung LE, Thien Minh DOAN, Duy Dieu NGUYEN va Minh Son NGUYEN, “Smart Desk in Hybrid Classroom: Detecting student's lack of concentration when studying” in ACOMPA 2022.

[2] Nvidia, https://developer.nvidia.com/embedded/jetson-nano-developer-kit.

[3] M A Tanveer, M J Khan, M J Qureshi, N Naseer va K.-S Hong, “Enhanced Drowsiness Detection Using Deep Learning: An fNIRS Study,” 2019.

[4] K Narender and D N Barwar, “Analysis of Real Time Driver Fatigue Detection Based on Eye and Yawning,” 2014.

[5] V Bazarevsky, Y Kartynnik, A Vakunov, K Raveendran and M Grundmann,

“BlazeFace:,” Sub-millisecond Neural Face Detection on Mobile GPUs, 2019.

[6] “Bentley Hybrid Learning” https://www.bentley.edu/atc/hybrid-classroom- project [Truy cập vào | tháng 7 năm 2023].

[7] ncnn GitHub Repository by Tencent [Truy cập vào 1 tháng 7 năm 2023]. https://github.com/Tencent/nenn

[8] Express.js GitHub Repository by ExpressJS [Truy cập vào 1 tháng 7 năm 2023]. https://github.com/expressjs/express

[9] Qt QML GitHub Repository [Truy cập vào 1 tháng 7 năm 2023]. https://github.com/qt/qtdeclarative

Ngày đăng: 23/12/2024, 23:50

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Manh Hung LE, Thien Minh DOAN, Duy Dieu NGUYEN va Minh Son NGUYEN, “Smart Desk in Hybrid Classroom: Detecting student's lack ofconcentration when studying” in ACOMPA 2022 Sách, tạp chí
Tiêu đề: Smart Desk in Hybrid Classroom: Detecting student's lack ofconcentration when studying
[3] M. A. Tanveer, M. J. Khan, M. J. Qureshi, N. Naseer va K.-S. Hong, “Enhanced Drowsiness Detection Using Deep Learning: An fNIRS Study,” 2019 Sách, tạp chí
Tiêu đề: EnhancedDrowsiness Detection Using Deep Learning: An fNIRS Study
[4] K. Narender and D. N. Barwar, “Analysis of Real Time Driver Fatigue Detection Based on Eye and Yawning,” 2014 Sách, tạp chí
Tiêu đề: Analysis of Real Time Driver Fatigue DetectionBased on Eye and Yawning
[5] V. Bazarevsky, Y. Kartynnik, A. Vakunov, K. Raveendran and M. Grundmann,“BlazeFace:,” Sub-millisecond Neural Face Detection on Mobile GPUs, 2019 Sách, tạp chí
Tiêu đề: BlazeFace
[6] “Bentley Hybrid Learning” https://www.bentley.edu/atc/hybrid-classroom-project [Truy cập vào | tháng 7 năm 2023] Sách, tạp chí
Tiêu đề: Bentley Hybrid Learning
[10] Johnson, Jeff, and Joe Conway. "Exploring the performance benefits of Qt QML." In Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, pp.253-262. ACM, 2015 Sách, tạp chí
Tiêu đề: Exploring the performance benefits of QtQML
[11] Sheng Chen, Yang Liu, Xiang Gao, Zhen Han “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices” Sách, tạp chí
Tiêu đề: MobileFaceNets: EfficientCNNs for Accurate Real-Time Face Verification on Mobile Devices
[12] Liu, W., et al, “SphereFace: Deep Hypersphere Embedding for Face Recognition”. arXiv:1704.08063[cs:CV] 26 April 2017 Sách, tạp chí
Tiêu đề: SphereFace: Deep Hypersphere Embedding for FaceRecognition
[13] Wang, H., et al, “CosFace: Large Margin Cosine Loss for Deep Face Recognition”. arXiv:1801.09414 [cs:CV] Jan 29, 2018 Sách, tạp chí
Tiêu đề: CosFace: Large Margin Cosine Loss for Deep FaceRecognition
[14] Jiankang Deng, Jia Guo, Niannan Xue, Stefanos Zafeiriou “Arcface: Additive Angular Margin Loss for Deep Face Recognition” in arXiv:1801.07698 [cs.CV] 9 Feb 2019 Sách, tạp chí
Tiêu đề: Arcface: AdditiveAngular Margin Loss for Deep Face Recognition
[15] Xiang Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun “ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices” in arXiv:1707.01083[cs.CV] 4 July 2017 Sách, tạp chí
Tiêu đề: ShuffleNet: An ExtremelyEfficient Convolutional Neural Network for Mobile Devices
[16] N. Duy Dieu, L. Manh Hung, N. Xuan Huy, N. Hieu Truong va N. Minh Son,“Smart Desk in Hybrid Classroom: Automatic Attendance System based on Face Recognition using MTCNN and ARCFACE,” 2022 Sách, tạp chí
Tiêu đề: Smart Desk in Hybrid Classroom: Automatic Attendance System based on FaceRecognition using MTCNN and ARCFACE
[20] Kieron Seth, Seaco Wei, Isaac Chen, Lumens, “Hybrid Classroom for University| National Tsing Hua University, Taiwan”, 14 April 2022 Sách, tạp chí
Tiêu đề: Hybrid Classroom for University| National Tsing Hua University, Taiwan
[2] Nvidia, https://developer.nvidia.com/embedded/jetson-nano-developer-kit Link
[7] ncnn GitHub Repository by Tencent [Truy cập vào 1 tháng 7 năm 2023].https://github.com/Tencent/nenn Link
[8] Express.js GitHub Repository by ExpressJS [Truy cập vào 1 tháng 7 năm 2023].https://github.com/expressjs/express Link
[9] Qt QML GitHub Repository. [Truy cập vào 1 tháng 7 năm 2023].https://github.com/qt/qtdeclarative Link
[17] Silent-Face-Anti-Spoofing GitHub Repository. [Truy cập vào 1 thang 3 năm 2024]. https://github.com/minivision-ai/Silent-Face-Anti-Spoofing Link
[18] Pruning MTCNN_MobileFaceNet_Using_Pytorch. [Truy cập vào 1 tháng 4 năm 2024].https://github.com/xuexingyu24/Pruning MTCNN_MobileFaceNet_Using_Pytorch Link
[19] Using multiple nodes. [Truy cập vào 1 thang 3 nam 2024].https://socket.io/docs/v4/using-multiple-nodes/ Link

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

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

TÀI LIỆU LIÊN QUAN

w