Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin và điện tử phát triển nhanh chóng, trí tuệ nhân tạo (AI) đã đạt được những bước tiến vượt bậc, thúc đẩy sự phát triển của lĩnh vực tương tác giữa người và máy tính (Human-Computer Interaction - HCI). Ứng dụng nổi bật của xu hướng này là mô hình nhà thông minh (smart home) – hệ thống tích hợp các thiết bị gia dụng kết nối qua mạng nhằm tối ưu hóa năng lượng, nâng cao tiện nghi và tự động hóa sinh hoạt.

Bên cạnh các phương thức điều khiển truyền thống như công tắc cơ học hay điều khiển từ xa, phương thức điều khiển bằng cử chỉ tay mang lại trải nghiệm tương tác tự nhiên, trực quan và không tiếp xúc vật lý. Giải pháp này có ý nghĩa thực tiễn đặc biệt đối với người cao tuổi và người bị hạn chế về khả năng vận động.

Tuy nhiên, việc triển khai hệ thống nhận diện cử chỉ tay trong thực tế đối mặt với nhiều rào cản kỹ thuật:

  • Khả năng nhận diện chính xác và phân loại cử chỉ trong điều kiện môi trường phức tạp, ánh sáng thay đổi và góc nhìn đa dạng.
  • Yêu cầu xử lý ảnh độ phân giải cao với tốc độ khung hình nhanh để đảm bảo độ trễ thấp và phản hồi thời gian thực (real-time).
  • Sự cân bằng giữa độ chính xác của mô hình học sâu và tài nguyên tính toán khi triển khai trên các nền tảng phần cứng nhúng.

Để giải quyết các thách thức trên, đề tài "Xây dựng hệ thống điều khiển thiết bị trong nhà bằng nhận diện cử chỉ tay sử dụng mô hình YOLOv8" do sinh viên Trần Minh Đô thực hiện dưới sự hướng dẫn của ThS. Trương Quang Phúc (ngành Hệ thống nhúng và IoT, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã xác định 4 mục tiêu nghiên cứu cụ thể:

  1. Thứ nhất: Thu thập và xử lý một tập dữ liệu chứa các hình ảnh và nhãn cử chỉ tay đầy đủ, đa dạng phục vụ quá trình huấn luyện mô hình.
  2. Thứ hai: Huấn luyện mô hình nhận diện cử chỉ tay sử dụng tập dữ liệu tự tạo thông qua việc áp dụng thuật toán nhận diện đối tượng YOLOv8, tối ưu hóa để đạt hiệu suất và độ chính xác cao.
  3. Thứ ba: Xây dựng giao diện người dùng trực quan, dễ sử dụng bằng thư viện PyQt5 để hiển thị hình ảnh webcam thời gian thực và trạng thái hoạt động của thiết bị.
  4. Thứ tư: Đánh giá hiệu suất hệ thống nhận diện cử chỉ tay và tối ưu hóa các yếu tố liên quan gồm độ chính xác, tốc độ phản hồi và khả năng hoạt động trong các điều kiện môi trường khác nhau.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: 10 cử chỉ bàn tay đặc trưng tương ứng với các lệnh điều khiển bật/tắt thiết bị; mô hình học sâu YOLOv8n; bo mạch vi điều khiển Arduino UNO R3 và mô-đun rơ-le 4 kênh.
  • Phạm vi nghiên cứu: Hệ thống điều khiển 4 thiết bị điện gia dụng trong nhà; xử lý luồng video đầu vào từ webcam máy tính; giao tiếp máy tính - vi điều khiển qua cổng Serial/USB; thực nghiệm kiểm thử trong không gian phòng ở các cự ly khoảng cách 0.5m và 1.0m.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình ứng dụng

Nghiên cứu dựa trên nền tảng kỹ thuật thị giác máy tính và học sâu (Deep Learning). Tác giả phân tích hai nhóm thuật toán nhận diện đối tượng chính:

  • Nhóm RCNN (Region-Based Convolutional Neural Networks): Sử dụng mạng nơ-ron tích chập trích xuất vùng đề xuất, có độ chính xác cao nhưng tốc độ xử lý chậm, khó đáp ứng thời gian thực.
  • Nhóm YOLO (You Only Look Once): Mô hình mạng nơ-ron tích chập (CNN) gộp bước dự đoán vị trí và phân loại đối tượng thành một bài toán hồi quy duy nhất.

Mô hình được lựa chọn là YOLOv8 (phiên bản phát hành năm 2023 bởi Ultralytics). Cấu trúc hoạt động của YOLO dựa trên việc chia ảnh đầu vào thành lưới $S \times S$ ô vuông. Mỗi ô lưới chịu trách nhiệm dự đoán các hộp bao (bounding box), điểm tin cậy (confidence score) và xác suất của các lớp đối tượng nếu tâm đối tượng nằm trong ô đó.

Thuật toán sử dụng kỹ thuật triệt tiêu phi cực đại (Non-Max Suppression - NMS) nhằm loại bỏ các hộp bao trùng lặp có chỉ số giao trên hợp (IoU - Intersection over Union) vượt ngưỡng, giữ lại hộp bao có độ tin cậy cao nhất.

Hàm mất mát (Loss Function) tổng quát trong mô hình YOLO tối ưu hóa đồng thời 3 thành phần:

  1. Classification Loss (Hàm lỗi phân loại): Đánh giá độ chính xác khi dự đoán nhãn lớp của đối tượng trong các ô lưới có chứa vật thể: $$\text{Loss}{cls} = \sum{i=0}^{S^2} \mathbf{1}i^{obj} \sum{c \in classes} \left( p_i(c) - \hat{p}_i(c) \right)^2$$ (Trong đó $\mathbf{1}_i^{obj} = 1$ khi ô lưới $i$ chứa vật thể, $p_i(c)$ và $\hat{p}_i(c)$ lần lượt là xác suất thực tế và xác suất dự đoán).

  2. Localization Loss (Hàm lỗi vị trí): Đánh giá sai số tọa độ tâm và kích thước hộp bao so với ground-truth: $$\text{Loss}{loc} = \lambda{coord} \sum_{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{obj} \left[ (x_i - \hat{x}_i)^2 + (y_i - \hat{y}_i)^2 + (\sqrt{w_i} - \sqrt{\hat{w}_i})^2 + (\sqrt{h_i} - \sqrt{\hat{h}i})^2 \right]$$ *(Trong đó $\lambda{coord}$ là hệ số điều chỉnh trọng số tọa độ; $x, y, w, h$ là tọa độ tâm, chiều rộng và chiều cao).*

  3. Confidence Loss (Hàm lỗi độ tin cậy): Đánh giá mức độ tự tin có đối tượng hay không trong bounding box: $$\text{Loss}{conf} = \sum{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}{ij}^{obj} (C_i - \hat{C}i)^2 + \lambda{noobj} \sum{i=0}^{S^2} \sum_{j=0}^{B} \mathbf{1}_{ij}^{noobj} (C_i - \hat{C}i)^2$$ *(Trong đó $\lambda{noobj}$ kiểm soát trọng số đối với các ô không chứa đối tượng).*

Các chỉ số đánh giá hiệu năng mô hình bao gồm: Precision (Độ chính xác), Recall (Độ thu hồi), Average Precision (AP), Mean Average Precision (mAP), IoU và đường cong PR-Curve.

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

  • Phương pháp thu thập số liệu: Sử dụng phương pháp quan sát trực tiếp cử chỉ tay trong các điều kiện ánh sáng và góc chụp khác nhau; phỏng vấn người dùng/chuyên gia để xác định các cử chỉ trực quan nhất.
  • Phương pháp thực nghiệm: Thiết kế và chế tạo phần cứng (mạch vi điều khiển Arduino UNO R3, khối rơ-le cách ly quang); lập trình giao tiếp nối tiếp Serial; huấn luyện mạng học sâu YOLOv8n trên nền tảng đám mây; kiểm thử thực tế khả năng nhận diện ở các cự ly khác nhau.
  • Phương pháp phân tích tổng kết kinh nghiệm: Đo lường các thông số kỹ thuật, đánh giá tỷ lệ nhận diện đúng/sai qua bảng thống kê thực nghiệm, phân tích nguyên nhân gây nhiễu và đề xuất giải pháp tối ưu.

Nguồn dữ liệu và công cụ triển khai

  • Dữ liệu hình ảnh: Tác giả tự thu thập thông qua webcam, bao gồm 10 lớp cử chỉ tay trong các điều kiện môi trường đa dạng.
  • Công cụ gán nhãn: Nền tảng trực tuyến MakeSense (makesense.ai) để tạo các bounding box $(x_{min}, y_{min}, x_{max}, y_{max})$.
  • Công cụ tiền xử lý & tăng cường dữ liệu: Nền tảng Roboflow.
  • Môi trường huấn luyện: Nền tảng Kaggle sử dụng phần cứng 2 GPU NVIDIA T4.
  • Công cụ phát triển phần mềm: Python 3, thư viện ultralytics, thư viện thiết kế giao diện PyQt5, Arduino IDE.

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc tích hợp giữa thị giác máy tính trên máy tính chủ và khối chấp hành phần cứng thông qua giao thức Serial.

Thiết kế phần cứng

Khối điều khiển phần cứng gồm các linh kiện tiêu chuẩn được kết nối theo sơ đồ nguyên lý:

  1. Khối xử lý trung tâm (Máy tính & Vi điều khiển):
    • Máy tính tiếp nhận luồng video thời gian thực từ webcam, chạy mô hình YOLOv8n để phân loại cử chỉ tay và gửi mã lệnh điều khiển qua cổng USB/Serial.
    • Bo mạch vi điều khiển Arduino UNO R3 tiếp nhận chuỗi ký tự điều khiển và xuất tín hiệu mức logic ra các chân Digital I/O tương ứng.
Thông số kỹ thuật Bo mạch Arduino UNO R3
Chip vi điều khiển ATmega328P (8-bit)
Điện áp hoạt động 5V DC
Điện áp đầu vào (khuyên dùng / giới hạn) 7 - 12V DC / 6 - 20V DC
Số chân Digital I/O 14 chân (trong đó 6 chân hỗ trợ PWM)
Số chân Analog Input 6 chân
Dòng điện DC trên mỗi chân I/O 20 mA
Dòng điện DC trên chân 3.3V 50 mA
Bộ nhớ Flash 32 KB (0.5 KB dùng cho bootloader)
SRAM / EEPROM 2 KB / 1 KB
  1. Khối điều khiển công suất (Mô-đun Rơ-le 4 kênh):

    • Sử dụng mô-đun rơ-le 4 kênh độc lập, có tích hợp opto-coupler và transistor cách ly quang nhằm bảo vệ vi điều khiển khỏi xung điện áp ngược từ tải.
    • Điện áp điều khiển: 5V DC.
    • Thông số tiếp điểm đóng ngắt: AC 250V - 10A hoặc DC 30V - 10A.
    • Tích hợp LED chỉ thị trạng thái đóng/ngắt trên từng kênh.
  2. Ánh xạ chân điều khiển (Pinout Mapping):

    • Chân Digital 7 (Arduino) $\rightarrow$ Điều khiển Kênh Rơ-le 1 (Thiết bị 1).
    • Chân Digital 8 (Arduino) $\rightarrow$ Điều khiển Kênh Rơ-le 2 (Thiết bị 2).
    • Chân Digital 12 (Arduino) $\rightarrow$ Điều khiển Kênh Rơ-le 3 (Thiết bị 3).
    • Chân Digital 13 (Arduino) $\rightarrow$ Điều khiển Kênh Rơ-le 4 (Thiết bị 4).

Thiết kế phần mềm và mô hình nhận diện

Quy trình xây dựng phần mềm bao gồm các công đoạn:

  1. Thu thập và gán nhãn dữ liệu:

    • Định nghĩa 10 lớp cử chỉ tay tương ứng với 10 trạng thái điều khiển: on1, off1, on2, off2, on3, off3, on4, off4, on_all, off_all.
    • Sử dụng MakeSense để xác định tọa độ khung bao cử chỉ tay trên từng ảnh.
  2. Tăng cường dữ liệu (Data Augmentation) trên Roboflow:

    • Xoay ảnh ngẫu nhiên trong khoảng: $-10^\circ$ đến $+10^\circ$.
    • Điều chỉnh độ sáng: $-25%$ đến $+25%$.
    • Tạo độ mờ (Blur): xấp xỉ 2 pixel.
    • Thêm nhiễu hạt (Noise): xấp xỉ 0.1% pixel.
    • Chuẩn hóa kích thước (Resize): Toàn bộ ảnh được đưa về độ phân giải chuẩn $640 \times 640$ pixel.
  3. Phân chia tập dữ liệu và huấn luyện:

    • Tập dữ liệu được phân chia theo tỷ lệ: 70% tập huấn luyện (Train) và 30% tập kiểm thử (Valid).
    • Cấu hình file data.yaml chỉ định đường dẫn và danh mục 10 lớp nhãn.
    • Lựa chọn kiến trúc YOLOv8n (Nano) – phiên bản có số lượng tham số nhỏ nhất trong dòng YOLOv8 nhằm tối ưu hóa tốc độ suy luận thời gian thực.
    • Quá trình huấn luyện thực hiện trong 10 Epochs trên Kaggle (GPU 2x T4), xuất ra tệp trọng số tối ưu best.pt.
  4. Xây dựng giao diện người dùng (PyQt5):

    • Khởi tạo giao diện hiển thị thông tin học thuật (Trường, Khoa, Bộ môn, Tên đề tài).
    • Tích hợp luồng phát webcam trực tiếp, hiển thị bounding box, tên nhãn cử chỉ và độ tin cậy (confidence score) khi nhận diện thành công.
    • Cập nhật đồ họa mô phỏng trạng thái Bật/Tắt của 4 thiết bị theo thời gian thực tương ứng với tín hiệu phản hồi.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Trình bày tính cấp thiết của đề tài trong xu thế phát triển nhà thông minh và công nghệ tương tác không tiếp xúc. Khái quát tình hình nghiên cứu trong và ngoài nước:

  • Nghiên cứu ngoài nước: Okan Kopuklu et al. (2019) ứng dụng mạng CNN phân loại cử chỉ tay thời gian thực; Raj Patel et al. (2018) kết hợp CNN với Attention Model nhằm nâng cao độ chính xác.
  • Nghiên cứu trong nước: Đề tài năm 2022 của nhóm tác giả Nguyễn Thắng Phong và Nguyễn Hải Hưng tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (“Thiết kế hệ thống điều khiển thiết bị điện bằng nhận diện cử chỉ”) – phân tích các ưu điểm và chỉ ra hạn chế về độ phong phú của tập dữ liệu cũng như tính cá nhân hóa của cử chỉ. Chương 1 cũng thiết lập 4 mục tiêu nghiên cứu cụ thể, phương pháp luận và cấu trúc 5 chương của đồ án.

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

Hệ thống hóa toàn bộ kiến thức chuyên ngành liên quan đến thị giác máy tính và nhận diện đối tượng. Trình bày chi tiết nguyên lý hoạt động của mạng nơ-ron tích chập (CNN), dòng thuật toán YOLO, cơ chế chia ô lưới ($S \times S$), kỹ thuật Non-Max Suppression và các công thức toán học tính toán hàm mất mát (Classification, Localization, Confidence Loss). Giới thiệu các đặc tính của kiến trúc YOLOv8 từ Ultralytics (tốc độ suy luận, tăng cường dữ liệu MixUp/CutMix, khả năng tùy chỉnh). Trình bày cơ sở kỹ thuật của bộ công cụ lập trình giao diện PyQt5 trên nền Python và môi trường phát triển Arduino IDE cho vi điều khiển.

Chương 3: Thiết kế và thi công

Xây dựng tài liệu đặc tả yêu cầu hệ thống, sơ đồ khối chức năng và lưu đồ thuật toán tổng thể. Trình bày chi tiết thiết kế phần cứng: thông số kỹ thuật bo mạch Arduino UNO R3, sơ đồ nguyên lý kết nối mô-đun rơ-le 4 kênh điều khiển tải AC/DC. Trình bày quy trình thiết kế phần mềm: các bước thu thập 10 lớp cử chỉ tay, quy trình gán nhãn trên MakeSense, 4 phiên bản tăng cường ảnh trên Roboflow, quy chuẩn kích thước ảnh $640 \times 640$, phân chia tập dữ liệu 70/30, lưu đồ huấn luyện mô hình YOLOv8n trên Kaggle (10 epochs) và lưu đồ thuật toán giao tiếp điều khiển thiết bị qua các chân 7, 8, 12, 13 của Arduino.

Chương 4: Kết quả và đánh giá hệ thống

Công bố các kết quả thực nghiệm đạt được trên phần cứng và phần mềm:

  • Hình ảnh mô hình hoàn thiện, kết nối thực tế giữa máy tính và mạch điều khiển.
  • Đồ thị đánh giá quá trình huấn luyện gồm đồ thị PR-Curve, kết quả hàm mất mát và độ chính xác phân loại.
  • Giao diện PyQt5 khi nhận dạng cử chỉ và cập nhật trạng thái thiết bị thời gian thực.
  • Bảng số liệu thực nghiệm đánh giá hiệu suất nhận diện của 10 lớp cử chỉ ở hai khoảng cách kiểm thử: 0.5m và 1.0m.
  • Phân tích chi tiết các trường hợp nhận diện chính xác, các trường hợp nhận diện nhầm lẫn giữa các cử chỉ tương đồng hoặc không nhận diện được do điều kiện ánh sáng và góc chụp.

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

Đánh giá tổng kết mức độ hoàn thành so với các mục tiêu đề ra ban đầu, nêu bật các mặt làm được về mô hình AI và phần cứng điều khiển. Chỉ ra các hạn chế kỹ thuật còn tồn đọng và đề xuất các hướng mở rộng nghiên cứu trong tương lai.


Kết quả và đóng góp

Kết quả kỹ thuật chính

  • Xây dựng tập dữ liệu cử chỉ tay: Thu thập, gán nhãn thành công 10 lớp cử chỉ điều khiển đặc trưng, áp dụng kỹ thuật tăng cường dữ liệu tạo tập dữ liệu đa dạng về độ sáng, độ xoay và độ nhiễu.
  • Huấn luyện mô hình YOLOv8n: Huấn luyện hoàn chỉnh mô hình trên nền tảng Kaggle với kích thước ảnh đầu vào $640 \times 640$, xuất file trọng số best.pt có khả năng phát hiện cử chỉ tay thời gian thực với độ trễ thấp.
  • Thi công phần cứng và giao diện: Hoàn thiện mô hình điều khiển đóng/ngắt 4 kênh rơ-le thông qua Arduino UNO R3 và giao diện giám sát đồ họa trực quan viết bằng PyQt5.
Nhãn cử chỉ Mã lệnh điều khiển Chân vi điều khiển Arduino Hành vi phần cứng tương ứng
on1 Bật thiết bị 1 Chân Digital 7 Đóng rơ-le 1
off1 Tắt thiết bị 1 Chân Digital 7 Ngắt rơ-le 1
on2 Bật thiết bị 2 Chân Digital 8 Đóng rơ-le 2
off2 Tắt thiết bị 2 Chân Digital 8 Ngắt rơ-le 2
on3 Bật thiết bị 3 Chân Digital 12 Đóng rơ-le 3
off3 Tắt thiết bị 3 Chân Digital 12 Ngắt rơ-le 3
on4 Bật thiết bị 4 Chân Digital 13 Đóng rơ-le 4
off4 Tắt thiết bị 4 Chân Digital 13 Ngắt rơ-le 4
on_all Bật tất cả Chân 7, 8, 12, 13 Đóng toàn bộ 4 rơ-le
off_all Tắt tất cả Chân 7, 8, 12, 13 Ngắt toàn bộ 4 rơ-le
  • Kết quả thực nghiệm theo khoảng cách: Hệ thống duy trì độ chính xác cao ở cự ly gần (0.5m), tuy nhiên khi tăng khoảng cách lên 1.0m, một số cử chỉ có độ tương đồng hình học xuất hiện hiện tượng nhận diện nhầm nhãn hoặc giảm độ tin cậy.

Đóng góp của đề tài

  • Khắc phục các hạn chế của những nghiên cứu trong nước trước đó (như đề tài của Nguyễn Thắng Phong & Nguyễn Hải Hưng năm 2022) bằng việc cá nhân hóa tập dữ liệu 10 lớp cử chỉ rõ ràng và áp dụng kiến trúc mạng YOLOv8 tiên tiến.
  • Đề xuất quy trình khép kín từ thu thập, tiền xử lý, gán nhãn, tăng cường dữ liệu đến huấn luyện trên nền tảng đám mây và triển khai thực tế trên máy tính nhúng/vi điều khiển.
  • Cung cấp giải pháp giao tiếp phần cứng an toàn (cách ly quang) kết hợp giao diện phần mềm trực quan, có tính khả thi trong việc hỗ trợ người hạn chế vận động điều khiển thiết bị điện sinh hoạt.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của hệ thống

  • Dữ liệu huấn luyện: Kích thước tập dữ liệu tự tạo và số lượng epoch huấn luyện (10 epochs) còn ở mức cơ bản, chưa bao phủ toàn diện mọi biến thể ánh sáng môi trường phức tạp hoặc bối cảnh nền có nhiều vật cản chuyển động.
  • Hiện tượng nhầm lẫn cử chỉ: Ở khoảng cách xa (từ 1.0m trở lên) hoặc các góc nghiêng bàn tay lớn, một số cử chỉ có cấu trúc ngón tay tương tự nhau vẫn xảy ra sai số hoặc nhận diện nhầm lớp.
  • Phụ thuộc phần cứng máy tính: Hệ thống vẫn cần một máy tính chủ chạy Python để xử lý thuật toán YOLOv8 và giao tiếp với Arduino qua dây cáp USB/Serial, chưa được đóng gói hoàn toàn thành một thiết bị biên (Edge AI) độc lập.

Hướng phát triển

  • Thu thập bổ sung tập dữ liệu cử chỉ tay với số lượng mẫu lớn hơn, đa dạng hóa người thực hiện, góc nghiêng và cường độ sáng để nâng cao tính tổng quát của mô hình.
  • Nghiên cứu tối ưu hóa trọng số mô hình (sử dụng các kỹ thuật lượng tử hóa hoặc định dạng TensorRT/ONNX) để triển khai trực tiếp trên các máy tính đơn bo nhúng công suất thấp như Raspberry Pi hay NVIDIA Jetson.
  • Bổ sung kết nối không dây (Wi-Fi, Bluetooth, Zigbee) giữa bộ xử lý trung tâm và các cụm rơ-le điều khiển phân tán trong nhà.
  • Mở rộng tập cử chỉ điều khiển cho nhiều thiết bị khác và tích hợp thêm các phương thức tương tác bổ trợ (nhận diện giọng nói, cử chỉ khuôn mặt).

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo kỹ thuật và học thuật cho các nhóm đối tượng sau:

  • Sinh viên và học viên chuyên ngành Hệ thống nhúng & IoT, Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin: Nguồn tài liệu tham khảo trực quan về việc tích hợp thuật toán thị giác máy tính hiện đại với phần cứng vi điều khiển.
  • Người nghiên cứu các đề tài tương tự:
    • Tham khảo chi tiết quy trình xử lý dữ liệu ảnh bằng MakeSense và Roboflow (các thông số xoay, sáng, nhiễu, chuẩn hóa $640 \times 640$).
    • Tham khảo phương pháp cấu hình và huấn luyện mô hình YOLOv8n trên nền tảng Kaggle GPU.
    • Tham khảo mã nguồn và lưu đồ thiết kế giao diện đồ họa PyQt5 kết hợp đọc luồng video thời gian thực từ OpenCV.
    • Tham khảo sơ đồ nguyên lý kết nối vi điều khiển ATmega328P với mô-đun rơ-le cách ly quang điều khiển thiết bị điện AC/DC an toàn.

Câu hỏi thường gặp

1. Tại sao tác giả lại chọn phiên bản YOLOv8n thay vì các phiên bản lớn hơn như YOLOv8s, YOLOv8m hay YOLOv8x?
Trả lời: Tác giả chọn YOLOv8n (Nano) vì đây là phiên bản có số lượng tham số và trọng số nhỏ nhất trong họ YOLOv8. Đặc tính này giúp tối ưu hóa tốc độ xử lý khung hình, giảm tài nguyên tính toán và bộ nhớ, đáp ứng yêu cầu suy luận và phản hồi theo thời gian thực khi tích hợp vào hệ thống điều khiển thiết bị.

2. Hệ thống định nghĩa bao nhiêu cử chỉ tay và nguyên lý điều khiển 4 thiết bị được thiết lập như thế nào?
Trả lời: Hệ thống định nghĩa 10 lớp cử chỉ tay đặc trưng. Trong đó gồm 8 cử chỉ bật/tắt riêng biệt cho từng thiết bị (on1/off1 điều khiển chân Digital 7, on2/off2 điều khiển chân Digital 8, on3/off3 điều khiển chân Digital 12, on4/off4 điều khiển chân Digital 13) và 2 cử chỉ điều khiển đồng thời (on_all bật toàn bộ 4 kênh, off_all tắt toàn bộ 4 kênh).

3. Quá trình tăng cường dữ liệu (Data Augmentation) trên Roboflow đã áp dụng những thông số cụ thể nào?
Trả lời: Quá trình tăng cường dữ liệu thiết lập 4 thông số: độ xoay ảnh ngẫu nhiên từ $-10^\circ$ đến $+10^\circ$; độ sáng biến thiên từ $-25%$ đến $+25%$; độ mờ khoảng 2 pixel; độ nhiễu hạt khoảng 0.1% pixel. Toàn bộ ảnh sau đó được đồng bộ về kích thước $640 \times 640$ pixel.

4. Mô hình được phân chia tập dữ liệu và huấn luyện trong bao nhiêu epoch trên nền tảng nào?
Trả lời: Tập dữ liệu được phân chia theo tỷ lệ 70% dành cho huấn luyện (Train) và 30% dành cho kiểm tra (Valid). Quá trình huấn luyện mô hình YOLOv8n được thực hiện trên nền tảng Kaggle sử dụng 2 GPU NVIDIA T4 với số lượng epoch được thiết lập là 10.

5. Giao diện người dùng (GUI) được lập trình bằng công cụ nào và có nhiệm vụ gì trong hệ thống?
Trả lời: Giao diện được xây dựng bằng ngôn ngữ Python sử dụng thư viện PyQt5. Giao diện có nhiệm vụ hiển thị thông tin học thuật của đề tài, trình chiếu video trực tiếp từ webcam kèm bounding box/độ tin cậy của cử chỉ được nhận diện, đồng thời cập nhật đồ họa trực quan trạng thái Bật/Tắt của 4 thiết bị điện theo thời gian thực.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống điều khiển thiết bị trong nhà bằng nhận diện cử chỉ tay sử dụng mô hình YOLOv8" của sinh viên Trần Minh Đô đã hoàn thành toàn diện các mục tiêu nghiên cứu từ xây dựng tập dữ liệu 10 lớp cử chỉ, huấn luyện mô hình YOLOv8n trên Kaggle đến thiết kế mạch vi điều khiển Arduino UNO R3 và giao diện giám sát PyQt5. Hệ thống chứng minh khả năng nhận diện cử chỉ tay và điều khiển đóng/ngắt 4 kênh thiết bị điện trong điều kiện thực tế với độ trễ thấp và phản hồi trực quan. Kết quả nghiên cứu khẳng định tính khả thi của việc ứng dụng thị giác máy tính vào mô hình nhà thông minh, đặc biệt mở ra giải pháp hỗ trợ sinh hoạt thiết thực cho người cao tuổi và người bị hạn chế về khả năng vận động.