Bối cảnh và vấn đề nghiên cứu
Trong môi trường giáo dục phổ thông và đại học, hoạt động quản lý lớp học thường xuyên đối mặt với các tình huống gián đoạn giờ giảng. Theo mô tả của tác giả, giáo viên thường xuyên phải xử lý các trường hợp học sinh gây ồn khi đọc to, hoặc ngắt quãng các phiên thảo luận nhóm nhỏ để đưa ra các yêu cầu cá nhân như xin phép đi vệ sinh, uống nước, xin hỗ trợ hoặc đặt câu hỏi ngoài kế hoạch. Những hành vi này làm phân tán sự tập trung của tập thể và phá vỡ cấu trúc bài giảng. Để khắc phục vấn đề trên, việc sử dụng các tín hiệu cử chỉ tay (classroom hand signals) cho phép người học truyền đạt nhu cầu cá nhân trực tiếp tới giáo viên mà không cần gián đoạn lớp học bằng lời nói, giúp giáo viên duy trì sự kiểm soát và điều phối lớp học thông qua các phản hồi thị giác đơn giản.
Xuất phát từ thực tiễn đó, đồ án tốt nghiệp ngành Công nghệ thông tin của sinh viên Trần Hồng Thu (chuyên ngành Khoa học dữ liệu, Trường Đại học Phenikaa, dưới sự hướng dẫn của TS. Mai Xuân Tráng) đã triển khai đề tài: "Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người". Đề tài hướng tới việc xây dựng một hệ thống phần mềm hỗ trợ học sinh học tập, thực hành và ghi nhớ các cử chỉ tay quy ước, đồng thời hỗ trợ chuyển đổi số trong quản lý lớp học. Ngoài khía cạnh sư phạm, tác giả cũng đề cập đến lợi ích môi trường khi nền tảng trực tuyến giúp loại bỏ nhu cầu in ấn tài liệu hướng dẫn bằng giấy, qua đó tiết kiệm năng lượng và giảm thiểu rác thải trong trường học.
Nhiệm vụ và mục tiêu nghiên cứu của đề tài được xác định qua 4 mục tiêu cụ thể:
- Xây dựng tập dữ liệu hình ảnh phục vụ cho quá trình giải quyết bài toán nhận diện và phân loại cử chỉ tay.
- Nghiên cứu và huấn luyện mô hình YOLOv8 để xác định và định vị vùng bàn tay người đạt hiệu quả tối ưu.
- Nghiên cứu và huấn luyện mô hình học sâu VGG-16 để phân loại các cử chỉ tay cụ thể.
- Ứng dụng nền tảng Flask để phát triển ứng dụng Web hoàn chỉnh, kết hợp hai mô hình đã huấn luyện nhằm nhận diện cử chỉ theo thời gian thực.
Đối tượng nghiên cứu của đồ án là hình ảnh vùng bàn tay người và 7 cử chỉ tay quy ước trong lớp học, bao gồm:
- Đồng ý (
agree)
- Không đồng ý (
disagree)
- Xong bài tập (
done)
- Muốn uống nước (
drink)
- Có câu hỏi (
question)
- Đi vệ sinh (
restroom)
- Cần hỗ trợ (
help)
Phạm vi nghiên cứu tập trung vào không gian lớp học với dữ liệu thu thập qua thiết bị camera/webcam máy tính cá nhân trong điều kiện góc quay và ánh sáng thực tế; thời gian thực hiện và hoàn thành nghiệm thu vào tháng 3 năm 2024.
Cơ sở lý thuyết và phương pháp
Đề tài xây dựng trên nền tảng lý thuyết của học sâu (Deep Learning) và thị giác máy tính (Computer Vision), giải quyết hai nhóm bài toán cốt lõi: phát hiện đối tượng (Object Detection) và phân loại hình ảnh (Image Classification).
Khung lý thuyết và mô hình sử dụng
- Thị giác máy tính và OpenCV: Thị giác máy tính được ứng dụng nhằm thu nhận, lọc nhiễu, biến đổi và phân tích dữ liệu đa chiều từ hình ảnh. Đồ án sử dụng thư viện mã nguồn mở OpenCV (bản quyền BSD, khởi xướng bởi Gary Bradsky tại Intel năm 1999) với các phân hệ chính: module chức năng cốt lõi (
core), module xử lý hình ảnh (imgproc), module phân tích chuỗi video (video), module căn chỉnh camera và tái tạo 3D (calib3d), cùng module trích chọn đặc trưng 2D (features2d).
- Mô hình VGG-16: Kiến trúc mạng nơ-ron tích chập sâu gồm 13 lớp tích chập 2D và 3 lớp kết nối đầy đủ (Fully Connected), sử dụng các bộ lọc kích thước nhỏ $3 \times 3$ kết hợp hàm kích hoạt phi tuyến ReLU và các khối giảm mẫu Max Pooling. Mô hình có tổng số tham số xấp xỉ 138 triệu, được tác giả sử dụng lại trọng số tiền huấn luyện từ tập dữ liệu ImageNet (pre-trained weights) để thực hiện tinh chỉnh (fine-tuning) trên tập dữ liệu cử chỉ tay cá nhân.
- Họ mô hình YOLO và YOLOv8: Khác với các mạng hai giai đoạn dạng R-CNN, Fast R-CNN hay Faster R-CNN xử lý chậm, thuật toán YOLO (You Only Look Once) mô hình hóa bài toán phát hiện đối tượng thành bài toán hồi quy duy nhất từ ảnh đầu vào đến tọa độ hộp bao (bounding box) và xác suất lớp đối tượng. YOLOv8 (phát triển bởi Ultralytics) là phiên bản nâng cấp với cấu trúc gồm 3 thành phần: Backbone (sử dụng mạng Darknet trích xuất đặc trưng), Detector/Head (dự đoán bounding box và nhãn lớp), và Output (tích hợp kỹ thuật loại bỏ hộp bao dư thừa Non-Maximum Suppression). Mô hình hỗ trợ cơ chế tự động điều chỉnh tỷ lệ hình ảnh (AutoScale) và tự động tính toán khung mẫu (AutoAnchor).
- Framework Flask: Nền tảng micro web framework trên ngôn ngữ Python, định tuyến nhẹ, tích hợp công cụ tạo mẫu giao diện Jinja2 và hỗ trợ xây dựng giao diện lập trình ứng dụng (RESTful API) với các phương thức truyền nhận chuẩn HTTP (GET, POST, PUT, DELETE).
Phương pháp nghiên cứu và nguồn dữ liệu
Phương pháp nghiên cứu thực nghiệm được thiết kế theo mô hình hai bước xử lý nối tiếp:
- Phương pháp thu thập dữ liệu: Tác giả sử dụng webcam máy tính và thư viện OpenCV ghi nhận hình ảnh trực tiếp ở nhiều góc chụp, khoảng cách và điều kiện phông nền khác nhau.
- Phương pháp gán nhãn: Sử dụng phần mềm LabelImg tạo các tệp gán nhãn định dạng XML/YAML chứa tọa độ hộp bao cho lớp đối tượng bàn tay (
hand).
- Phương pháp tiền xử lý và tăng cường dữ liệu: Áp dụng cân bằng độ sáng, chuẩn hóa màu sắc, khử nhiễu ảnh và thực hiện các biến đổi tăng cường dữ liệu (Data Augmentation) như lật ảnh ngang/dọc, xoay góc ngẫu nhiên, làm méo hình dạng để chống hiện tượng quá khớp (overfitting).
- Phương pháp huấn luyện và tích hợp: Tách biệt việc phát hiện vị trí bàn tay (huấn luyện trên YOLOv8n) và phân loại cử chỉ (huấn luyện trên VGG-16), sau đó xâu chuỗi hai mô hình để triển khai trên ứng dụng web Flask.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo cấu trúc xử lý luồng khép kín nhằm tối ưu hóa tài nguyên tính toán và thời gian phản hồi:
| Bước xử lý |
Nhiệm vụ kỹ thuật |
Công nghệ / Công cụ đảm nhiệm |
Đầu vào / Đầu ra |
| Giai đoạn 1 |
Ghi nhận khung hình thời gian thực |
Webcam, OpenCV (cv2) |
Khung hình video RGB thô |
| Giai đoạn 2 |
Định vị và trích xuất vùng bàn tay |
Mô hình YOLOv8n (huấn luyện 100 epochs) |
Bounding box tọa độ bàn tay $\rightarrow$ Cắt vùng ảnh bàn tay |
| Giai đoạn 3 |
Tiền xử lý vùng bàn tay đã cắt |
OpenCV |
Ảnh bàn tay được chuẩn hóa kích thước, loại bỏ nhiễu nền |
| Giai đoạn 4 |
Phân loại hành động cử chỉ |
Mô hình VGG-16 (Fine-tuning với Dropout và FC) |
Dự đoán 1 trong 7 nhãn cử chỉ (agree, disagree, v.v.) |
| Giai đoạn 5 |
Hiển thị kết quả lên giao diện Web |
Flask API, HTML, CSS, JavaScript |
Nhãn và độ tin cậy hiển thị trực tiếp cho người dùng |
Triển khai bài toán nhận diện vùng tay (YOLOv8)
- Tập dữ liệu: Tổng cộng 1.502 ảnh được thu thập từ webcam, gán nhãn duy nhất
hand thông qua LabelImg.
- Phân chia dữ liệu: Tỷ lệ phân bổ gồm 70% huấn luyện (1.051 ảnh), 15% kiểm định (226 ảnh), và 15% kiểm thử (225 ảnh).
- Quy trình gán nhãn: Thiết lập môi trường ảo Python (
python -m venv labeling), cài đặt thư viện (pip install labelImg), sau đó khởi chạy giao diện labelimg để vẽ khung bao và xuất tọa độ bounding box cho từng ảnh vào các thư mục cấu trúc train/images, train/labels, val/images, val/labels, test/images, test/labels.
- Huấn luyện: Mô hình YOLOv8 phiên bản nano (YOLOv8n) được cấu hình huấn luyện trong 100 chu kỳ (epochs). Quá trình đánh giá theo dõi các chỉ số hàm mất mát (Loss), độ đo độ chính xác trung bình (mAP) và đồ thị đường cong F1-Confidence Curve.
Triển khai bài toán phân loại cử chỉ tay (VGG-16)
- Chuẩn bị dữ liệu: Dữ liệu đầu vào là các vùng ảnh bàn tay đã được cắt lọc bỏ bối cảnh lớp học và cơ thể người, lưu trữ phân loại trong 7 thư mục tương ứng với 7 nhãn cử chỉ:
agree, disagree, done, drink, question, restroom, help.
- Kỹ thuật tăng cường: Để bù đắp giới hạn số lượng ảnh chụp, hệ thống thực hiện tăng/giảm độ sáng, xoay góc nghiêng, lật ảnh đối xứng và làm biến dạng ngẫu nhiên.
- Cấu hình mô hình: Tận dụng kiến trúc VGG-16 đã nạp sẵn trọng số ImageNet, tiến hành đóng băng các tầng tích chập trích xuất đặc trưng phía dưới, gắn thêm các tầng fully connected mới cùng các tầng Dropout để giảm thiểu quá khớp, sau đó lưu lại trọng số tốt nhất sau từng epoch.
Đóng gói ứng dụng Web với Flask
- Hệ thống backend bằng Flask nhận luồng dữ liệu hình ảnh gửi lên từ client, gọi mô hình YOLOv8 cắt vùng tay, chuyển tiếp vùng ảnh sang VGG-16 để suy luận nhãn, và trả kết quả hiển thị về giao diện web.
- Kiến trúc micro-framework giúp ứng dụng đạt độ trễ thấp, giao diện phân tách rõ ràng với các tệp tĩnh (CSS/JS) và mẫu hiển thị HTML qua Jinja2.
Nội dung chính theo từng chương
Báo cáo khóa luận được cấu trúc thành 4 chương nội dung cùng phần mở đầu và danh mục kỹ thuật:
Mở đầu
Tác giả trình bày tính cấp thiết của việc tích hợp trí tuệ nhân tạo vào môi trường giáo dục nhằm nâng cao kỹ năng giao tiếp không ngôn ngữ. Mục mở đầu cũng phân tích các tác động thứ cấp có lợi của ứng dụng như tiết kiệm giấy in, giảm chi phí vận chuyển tài liệu và nâng cao ý thức bảo vệ môi trường thông qua số hóa tài liệu học tập.
Chương 1: Tổng quan về đề tài
- 1.1 Giới thiệu về đề tài và Đặt vấn đề: Mô tả các xung đột và sự gián đoạn bài giảng trong lớp học thực tế khi học sinh ngắt lời giáo viên; phân tích giải pháp khắc phục bằng ngôn ngữ cử chỉ bàn tay. Đưa ra danh mục 7 cử chỉ cơ bản áp dụng trong nghiên cứu.
- 1.2 Mục tiêu nghiên cứu: Xác định 4 mục tiêu cụ thể từ khâu tạo lập dữ liệu, huấn luyện mô hình YOLOv8, huấn luyện mô hình VGG-16 đến triển khai ứng dụng web trên Flask.
- 1.3 Phương pháp nghiên cứu: Nêu khái quát việc kết hợp học máy, học sâu, kỹ thuật xử lý ảnh của OpenCV và lập trình web API.
- 1.4 Khái niệm về cử chỉ tay: Khái quát vai trò của cử chỉ tay trong giao tiếp phi ngôn ngữ; giới thiệu ngôn ngữ ký hiệu chữ số và ký hiệu cử chỉ tay trong các tình huống đặc thù (như nhảy dù).
- 1.5 Phân tích bài toán nhận diện vùng tay: Làm rõ vai trò của bước định vị vùng tay trong việc giảm thiểu nhiễu nền và giảm tải tính toán cho bước phân loại.
- 1.6 Phân tích bài toán phân loại cử chỉ tay: Nêu rõ các thách thức do biến đổi ánh sáng, phông nền lớp học; lý giải nguyên nhân chọn kiến trúc VGG-16 nhờ tính năng tái sử dụng tri thức và cấu trúc ổn định.
Chương 2: Cơ sở lý thuyết
- 2.1 Deep Learning: Khái niệm học sâu, mô hình mạng nơ-ron nhân tạo với cấu trúc 3 phần cơ bản (Input layer, Hidden layer, Output layer).
- 2.2 Thị giác máy tính: Định nghĩa, phạm vi ứng dụng thực tiễn trong y học, địa chất, khí tượng học, bảo mật và điều khiển tự động. Phân tích các bài toán lớn gồm: Object Detection, Image Classification, Image Segmentation, Face Detection, Object Tracking, Action Recognition, Visual Motor Control và Pose Estimation.
- 2.3 Thư viện OpenCV: Lịch sử phát triển và cấu trúc module chức năng (
core, imgproc, video, calib3d, features2d).
- 2.4 VGG-16: Cấu trúc chi tiết mạng 16 lớp; ưu điểm của việc sử dụng chuỗi bộ lọc nhỏ $3 \times 3$ thay thế bộ lọc lớn $5 \times 5$ nhằm giảm số lượng tham số; nguyên lý của khối tích chập lặp lại.
- 2.5 Object Detection và mô hình YOLO / YOLOv8: Phân tích sự tiến hóa từ R-CNN đến mạng một giai đoạn; giải thích cấu trúc vector đầu ra của YOLO dựa trên số lớp $n_class$ và số lượng anchor box; cấu trúc 3 phần của YOLOv8 (Backbone, Detector/Head, Output) cùng các tính năng AutoScale và AutoAnchor.
- 2.6 Flask - API: Khái niệm micro-framework, kiến trúc API kết nối client-server, các phương thức HTTP cơ bản (GET, POST, PUT, DELETE) và các ưu thế về tính tối giản, bảo mật, khả năng mở rộng.
Chương 3: Giải pháp và triển khai thực nghiệm
- 3.1 Lựa chọn giải pháp: Biện luận lý do chia tách hệ thống thành 2 bài toán độc lập (phát hiện vùng tay bằng YOLOv8 và phân loại cử chỉ bằng VGG-16).
- 3.2 Thuật toán và hướng giải quyết: Phân tích ưu thế về tốc độ suy luận thời gian thực của YOLOv8 và tính chính xác của VGG-16 khi nhận diện ảnh cục bộ.
- 3.3 Triển khai thực nghiệm:
- Bài toán nhận diện vùng tay: Quy trình thu thập 1.502 ảnh bằng webcam; hướng dẫn các bước thiết lập môi trường và gán nhãn qua LabelImg; kỹ thuật cân bằng ánh sáng và khử nhiễu bằng OpenCV; huấn luyện mô hình YOLOv8n trong 100 epochs, phân tích hàm mất mát và mAP.
- Bài toán phân loại cử chỉ tay: Kỹ thuật cắt ảnh vùng tay thành 7 tập dữ liệu cử chỉ; các phép tăng cường dữ liệu; huấn luyện mạng nơ-ron tích chập VGG-16; kết quả nhận diện minh họa cho 7 hành động (
agree, disagree, done, drink, question, restroom, help).
- Triển khai và deploy Flask web app: Tích hợp hai mô hình đã huấn luyện thành dịch vụ web hoàn chỉnh phục vụ người dùng.
Chương 4: Kết luận và hướng phát triển
Đánh giá mức độ hoàn thành so với mục tiêu ban đầu; nêu các hạn chế kỹ thuật hiện tại và đề xuất hướng mở rộng nghiên cứu trong tương lai.
Kết quả và đóng góp
Số liệu thực nghiệm tổng hợp
Toàn bộ các thông số kỹ thuật và cấu trúc phân chia dữ liệu ghi nhận trong văn bản được tổng hợp trong bảng dưới đây:
| Hạng mục dữ liệu / Mô hình |
Tham số và số lượng ghi nhận |
Ý nghĩa thực nghiệm |
| Tổng số lượng dữ liệu nhận diện tay |
1.502 ảnh |
Ảnh chụp cả người và tay từ webcam, gán nhãn hand |
| Tập huấn luyện (Train set - YOLOv8) |
1.051 ảnh (chiếm 70%) |
Dùng tối ưu hóa trọng số mô hình YOLOv8n |
| Tập kiểm định (Validation set - YOLOv8) |
226 ảnh (chiếm 15%) |
Dùng đánh giá và tinh chỉnh siêu tham số trong quá trình train |
| Tập kiểm thử (Test set - YOLOv8) |
225 ảnh (chiếm 15%) |
Dùng kiểm tra độc lập khả năng tổng quát hóa của YOLOv8n |
| Số chu kỳ huấn luyện (Epochs) |
100 epochs |
Huấn luyện mô hình YOLOv8n, theo dõi qua Loss và mAP |
| Số lượng cử chỉ phân loại (VGG-16) |
7 lớp cử chỉ quy ước |
agree, disagree, done, drink, question, restroom, help |
| Kiến trúc mô hình phân loại |
VGG-16 (138 triệu tham số) |
Tận dụng trọng số tiền huấn luyện ImageNet kết hợp Dropout và FC |
| Công cụ gán nhãn và xử lý |
LabelImg, OpenCV |
Gán nhãn bounding box, cân bằng màu, khử nhiễu, tăng cường dữ liệu |
| Nền tảng tích hợp sản phẩm |
Flask Web Framework |
Cung cấp giao diện web demo suy luận theo thời gian thực |
Đóng góp thực tiễn và giải pháp kỹ thuật
- Giải pháp kiến trúc phân tách hai giai đoạn: Việc chia tách bài toán lớn thành hai mô hình chuyên biệt (YOLOv8 cho bài toán định vị không gian và VGG-16 cho bài toán phân loại mẫu biểu diễn) giúp giảm thiểu tối đa ảnh hưởng của nhiễu bối cảnh phòng học (đồ vật xung quanh, chuyển động của các học sinh khác), từ đó nâng cao độ tin cậy của thuật toán phân loại.
- Xây dựng bộ dữ liệu cử chỉ lớp học thực tế: Tác giả đã tự thu thập và gán nhãn bộ dữ liệu gồm 1.502 ảnh thực tế của người học cùng các tập ảnh cử chỉ tay đã cắt cục bộ, phục vụ trực tiếp cho bài toán quản lý lớp học.
- Hiện thực hóa thành sản phẩm phần mềm có thể ứng dụng: Đề tài không dừng lại ở việc đánh giá mô hình học máy trên tập dữ liệu tĩnh mà đã đóng gói và vận hành thành công dưới dạng ứng dụng web thông qua Flask, cho phép học sinh tương tác, học tập cử chỉ và kiểm tra kết quả trực quan ngay trên trình duyệt.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các phân tích kỹ thuật được tác giả và giảng viên hướng dẫn chỉ ra trong đồ án, các hạn chế và hướng mở rộng được xác định như sau:
Hạn chế được văn bản ghi nhận
- Mô hình YOLOv8 đòi hỏi cấu hình tài nguyên tính toán cao để đảm bảo vừa duy trì độ chính xác vừa xử lý mượt mà ở tốc độ thời gian thực.
- Khả năng nhận diện của hệ thống vẫn có thể bị suy giảm trong các môi trường lớp học có điều kiện ánh sáng quá yếu, quá chói hoặc phông nền phía sau quá phức tạp.
- Tập dữ liệu hiện tại (1.502 ảnh) chỉ dừng lại ở quy mô thử nghiệm cá nhân, chưa bao quát toàn bộ sự đa dạng về lứa tuổi, màu da và kích thước bàn tay.
- Số lượng cử chỉ tay hiện dừng lại ở 7 trạng thái cơ bản, chưa bao quát hết các tình huống giao tiếp khác trong lớp học.
Hướng nghiên cứu tiếp
- Mở rộng quy mô và độ đa dạng của tập dữ liệu huấn luyện, bổ sung nhiều góc máy và điều kiện môi trường ánh sáng phức tạp hơn.
- Nghiên cứu tối ưu hóa các tham số của mô hình học sâu hoặc thử nghiệm các biến thể mô hình nhẹ hơn nhằm giảm thiểu yêu cầu tài nguyên phần cứng, cho phép triển khai tốt trên các thiết bị cấu hình thấp.
- Bổ sung và định nghĩa thêm nhiều cử chỉ giao tiếp mới phục vụ đa dạng các hoạt động học tập và thảo luận nhóm.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho các nhóm đối tượng và mục đích nghiên cứu sau:
- Sinh viên ngành Công nghệ thông tin và Khoa học dữ liệu: Tài liệu minh họa quy trình hoàn chỉnh từ khâu đặt vấn đề, thu thập dữ liệu bằng webcam, gán nhãn với LabelImg, thiết lập pipeline tiền xử lý ảnh với OpenCV đến huấn luyện và tinh chỉnh các mạng nơ-ron tích chập (YOLOv8 và VGG-16).
- Người phát triển ứng dụng thị giác máy tính thực tế: Cung cấp giải pháp mẫu về việc kết hợp kiến trúc mô hình hai giai đoạn (Object Detection + Image Classification) nhằm xử lý bài toán nhận diện cử chỉ trong điều kiện nền phức tạp, tránh việc phân loại nhầm do ảnh hưởng của bối cảnh.
- Kỹ sư lập trình triển khai mô hình (Deployment): Phần thiết kế và cấu hình dịch vụ web với Flask cung cấp tài liệu tham khảo cụ thể về cách tích hợp mô hình học sâu vào ứng dụng web micro-framework để hiển thị kết quả suy luận qua giao diện HTML/JavaScript.
Câu hỏi thường gặp
1. Hệ thống của đồ án nhận diện và phân loại bao nhiêu cử chỉ tay, bao gồm những cử chỉ nào?
Hệ thống nhận diện và phân loại chính xác 7 cử chỉ tay cơ bản phục vụ cho việc quản lý lớp học, bao gồm: đồng ý (agree), không đồng ý (disagree), làm xong bài tập (done), muốn uống nước (drink), có câu hỏi (question), đi vệ sinh (restroom), và cần hỗ trợ (help).
2. Tại sao tác giả lại tách bài toán thành hai giai đoạn thay vì sử dụng một mô hình duy nhất?
Tác giả tách thành hai bài toán độc lập nhằm tối ưu hóa hiệu suất và giảm tài nguyên tính toán. Giai đoạn 1 dùng YOLOv8 chuyên biệt hóa để định vị và cắt chính xác vùng bàn tay, giúp loại bỏ các yếu tố gây nhiễu trong khung hình lớp học (như phông nền, các vật thể xung quanh hoặc cơ thể người khác). Giai đoạn 2 dùng VGG-16 tập trung toàn bộ năng lực tính toán để phân loại các nếp gấp, ngón tay trên ảnh đã cắt, giúp tăng cường độ chính xác tổng thể.
3. Tập dữ liệu nhận diện vùng tay gồm bao nhiêu ảnh và được phân chia tỷ lệ như thế nào?
Tập dữ liệu nhận diện vùng tay gồm tổng cộng 1.502 ảnh được thu thập trực tiếp qua webcam và gán nhãn hand. Dữ liệu được phân chia theo tỷ lệ 70% cho tập huấn luyện (1.051 ảnh), 15% cho tập kiểm định (226 ảnh), và 15% cho tập kiểm thử (225 ảnh).
4. Quá trình gán nhãn và tiền xử lý dữ liệu được thực hiện bằng các công cụ và kỹ thuật nào?
Quá trình gán nhãn hộp bao đối tượng bàn tay được thực hiện bằng công cụ mã nguồn mở LabelImg trên môi trường ảo Python. Các kỹ thuật tiền xử lý ảnh sử dụng thư viện OpenCV bao gồm: cân bằng ánh sáng và màu sắc để mô hình thích ứng với môi trường sáng/tối, lọc khử nhiễu để làm sạch dữ liệu, cùng các kỹ thuật tăng cường dữ liệu (lật ảnh, xoay ảnh, biến dạng ngẫu nhiên, chỉnh độ sáng) cho bài toán phân loại cử chỉ.
5. Mô hình YOLOv8n được huấn luyện trong bao nhiêu chu kỳ và theo dõi bằng những chỉ số nào?
Mô hình YOLOv8n được cấu hình huấn luyện trong 100 chu kỳ (epochs). Quá trình huấn luyện được theo dõi và đánh giá thông qua hàm mất mát (Loss), chỉ số độ chính xác trung bình mAP và đồ thị đường cong tương quan giữa F1-Score và ngưỡng tin cậy (F1-Confidence Curve).
Kết luận
Đồ án tốt nghiệp "Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người" của sinh viên Trần Hồng Thu đã giải quyết thành công bài toán hỗ trợ giao tiếp phi ngôn ngữ trong lớp học thông qua mô hình học sâu hai giai đoạn kết hợp YOLOv8 và VGG-16. Tác giả đã tự xây dựng tập dữ liệu thực tế gồm 1.502 ảnh, hoàn thiện quy trình gán nhãn, tiền xử lý và huấn luyện phân loại cho 7 cử chỉ quản lý lớp học phổ biến. Hệ thống được đóng gói hoàn chỉnh thành một ứng dụng web trên nền tảng Flask, đáp ứng yêu cầu kỹ thuật của một đồ án tốt nghiệp ngành Công nghệ thông tin và mở ra tiềm năng ứng dụng thiết thực trong việc xây dựng môi trường lớp học thông minh.