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

Trong xu hướng phát triển của công nghệ tự động hóa và các hệ thống thông minh, giao tiếp người - máy (Human-Computer Interaction - HCI) đang dịch chuyển dần từ các thiết bị ngoại vi truyền thống (bàn phím, chuột, màn hình cảm ứng) sang các phương thức tương tác tự nhiên. Ngôn ngữ cơ thể, đặc biệt là cử chỉ bàn tay, là một kênh giao tiếp trực quan, mang lại khả năng điều khiển thiết bị không tiếp xúc. Ứng dụng này có ý nghĩa thiết thực trong việc hỗ trợ người khiếm thính (thông qua ngôn ngữ ký hiệu), người suy giảm chức năng vận động điều khiển thiết bị gia dụng, cũng như nâng cao tính tiện nghi trong môi trường nhà thông minh.

Đề tài "Ứng dụng xử lý ảnh trong điều khiển thiết bị bằng cử chỉ tay sử dụng kit Raspberry Pi" được thực hiện nhằm giải quyết bài toán nhận dạng cử chỉ bàn tay theo thời gian thực trên một hệ thống nhúng có chi phí thấp và công suất tiêu thụ nhỏ, khắc phục các hạn chế từ những nghiên cứu trước đó vốn phụ thuộc vào mô phỏng lý thuyết hoặc phần cứng máy tính cồng kềnh.

Các tác giả đã khảo sát các hướng tiếp cận trước đó và chỉ ra các đặc điểm kỹ thuật cụ thể:

Công trình nghiên cứu / Tác giả Phương pháp / Công nghệ Kết quả và hạn chế ghi nhận trong văn bản
Chen Chiung Hsieh & Dung Hua Liou Lịch sử chuyển động ảnh (Motion History Image), phát hiện màu da, digital zoom. Lọc báo động sai dựa trên ngưỡng số lượng điểm ảnh màu da.
Dharani Mazumdar, Anjan Kumar Talukda & Kandapar Kumar Sarma Găng tay dữ liệu (Data Glove) tích hợp cảm biến gia tốc MEMS và vi điều khiển. Phụ thuộc vào thiết bị đeo trung gian, xử lý trên máy tính.
Trần Nguyên Ngọc và cộng sự (Học viện Kỹ thuật Quân sự) Nhận dạng cử động bàn tay theo thời gian thực. Định hướng điều khiển từ xa, robot hỗ trợ người khuyết tật, thiết bị gia dụng.
Võ Đắc Thọ & Trần Quang Tráng (2014 - ĐH SPKT TP.HCM) Phân cụm K-Means và mạng Nơ-ron trên nền tảng MATLAB. Dừng lại ở mức mô phỏng kiểm chứng lý thuyết, hạn chế khi triển khai thực tế.
Duy & Tâm (2015 - ĐH SPKT TP.HCM) Nhận diện khuôn mặt bảo mật/chấm công trên kit Raspberry Pi. Tỷ lệ nhận diện đạt 95% ở cự ly 0,5m; tuy nhiên phải lấy mẫu từng người, góc nghiêng không quá 10°, tốc độ xử lý chậm (khoảng 5 giây).
Phương & Tâm (2014 - ĐH SPKT TP.HCM) Xử lý ảnh cảnh báo tài xế ngủ gật. Tỷ lệ nhận diện đúng trên 90% ở cự ly 0,2m; góc quay giới hạn dưới 40° trên máy tính và 20° trên kit Raspberry Pi.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định rõ:

  1. Nghiên cứu thuật toán tách và trích xuất vùng bàn tay nhanh chóng, chính xác trong môi trường nền đơn giản.
  2. Xây dựng tập dữ liệu huấn luyện và giải thuật nhận dạng các cử chỉ bàn tay tĩnh.
  3. Thiết kế, tính toán và thi công mạch công suất cách ly điều khiển 4 thiết bị điện.
  4. Lập trình nhúng toàn bộ thuật toán xử lý ảnh và giao tiếp phần cứng trên kit Raspberry Pi 2 Model B v1.1.

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

  • Đối tượng nghiên cứu: Hình ảnh cử chỉ bàn tay người thu nhận trực tiếp qua camera; thuật toán phát hiện màu da, đặc trưng HOG (Histogram of Oriented Gradients), thuật toán tăng cường AdaBoost và mô hình Cascade Classifier; mạch công suất chuyển tiếp điều khiển thiết bị điện.
  • Phạm vi không gian và môi trường: Khoảng cách nhận dạng từ camera đến bàn tay đạt hiệu quả trong khoảng từ 0,5m; môi trường ánh sáng đầy đủ (ánh sáng ban ngày tự nhiên hoặc đèn chiếu sáng phòng), phông nền đơn giản, ít nhiễu và không chứa các vật thể có màu sắc trùng với ngưỡng màu da người.
  • Phạm vi chức năng: Nhận dạng tập 5 trạng thái cử chỉ tĩnh tương ứng với lệnh điều khiển 4 thiết bị và 1 trạng thái tắt toàn bộ; thời gian trễ xử lý từ 1 đến 4 giây.

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

Khung lý thuyết và mô hình giải thuật

Đồ án xây dựng giải pháp nhận dạng kết hợp giữa phương pháp phân đoạn màu sắc và học máy phát hiện đối tượng dựa trên các cơ sở lý thuyết:

  1. Lý thuyết xử lý ảnh số và không gian màu:

    • Quá trình xử lý ảnh trải qua các giai đoạn chuẩn tắc: Thu nhận ảnh (Image Acquisition) $\rightarrow$ Tiền xử lý (Image Preprocessing) $\rightarrow$ Phân đoạn ảnh (Image Segmentation) $\rightarrow$ Biểu diễn và trích chọn đặc trưng (Representation & Feature Selection) $\rightarrow$ Nhận dạng và nội suy (Recognition & Interpretation) $\rightarrow$ Cơ sở tri thức (Knowledge Base).
    • Không gian màu RGB: Mô hình lập phương biểu diễn 3 kênh màu Red, Green, Blue (mỗi kênh 8-bit, tương ứng 256 mức, tạo ra 16,78 triệu màu). Hạn chế của RGB là độ sáng và màu sắc bị liên kết chặt chẽ, dễ bị ảnh hưởng khi nguồn sáng thay đổi.
    • Không gian màu HSV: Biểu diễn màu sắc hình nón tách biệt các thành phần Sắc màu (Hue - thang đo $0^\circ - 360^\circ$ từ Đỏ qua Vàng, Lục, Lam, Tím), Độ bão hòa (Saturation - độ tinh khiết của màu) và Giá trị độ sáng (Value/Brightness). Không gian HSV giúp thiết lập ngưỡng lọc vùng màu da ổn định hơn so với RGB.
  2. Đặc trưng Haar-like và Ảnh tích phân (Integral Image):

    • Sử dụng các mẫu đặc trưng hình chữ nhật phân bố theo cạnh (Edge features), theo đường (Line features), xung quanh tâm (Center-surround features) và theo đường chéo (Diagonal features) do Viola & Jones đề xuất. Giá trị đặc trưng $f(x)$ là độ chênh lệch giữa tổng mức xám vùng đen và vùng trắng.
    • Kỹ thuật ảnh tích phân hỗ trợ tính tổng giá trị pixel trong bất kỳ vùng chữ nhật nào chỉ qua 4 phép truy xuất mảng, giảm tối đa độ phức tạp tính toán.
  3. Đặc trưng lược đồ hướng Gradient (HOG - Histogram of Oriented Gradients):

    • Đề xuất bởi Dalal & Triggs (2005), mô tả hình dạng vật thể thông qua sự phân bố gradient cục bộ và hướng biên cạnh.
    • Quy trình trích xuất đặc trưng HOG chuẩn:
      • Chuyển ảnh RGB sang ảnh xám (Grayscale), cân bằng lược đồ mức xám (Histogram Equalization).
      • Tính đạo hàm không gian theo chiều ngang $G_x$ qua mặt nạ $[-1, 0, 1]$ và chiều dọc $G_y$ qua mặt nạ $[-1, 0, 1]^T$.
      • Tính góc pha $\theta = \arctan(G_y / G_x)$ và biên độ $M = \sqrt{G_x^2 + G_y^2}$.
      • Không gian góc $0^\circ - 180^\circ$ được chia thành 9 khoảng (bin), mỗi bin tương ứng $20^\circ$ ($0-20^\circ, 21-40^\circ, \dots, 161-180^\circ$).
      • Chia ảnh thành các ô cơ sở (cell) kích thước $8 \times 8$ pixel; vector đặc trưng của mỗi cell gồm 9 thành phần tích lũy biên độ theo bin.
      • Nhóm các cell thành khối (block) kích thước $2 \times 2$ cell ($16 \times 16$ pixel), tạo thành vector gồm $9 \times 4 = 36$ thành phần.
      • Chuẩn hóa vector block bằng chuẩn L2-norm hoặc L1-sqrt ($|v|_k$) để loại trừ ảnh hưởng của độ tương phản ánh sáng.
      • Với kích thước cửa sổ mẫu chuẩn $64 \times 128$ pixel, số lượng block gối lên nhau (bước trượt bằng kích thước cell 8 pixel) là $((64-16)/8 + 1) \times ((128-16)/8 + 1) = 7 \times 15 = 105$ block. Tổng số chiều của vector HOG là $105 \times 36 = 3780$ thành phần.
  4. Thuật toán tăng cường AdaBoost và cấu trúc phân loại tầng Cascade:

    • AdaBoost (Freund & Schapire) kết hợp tuyến tính tập hợp các bộ phân loại yếu ($h_t(x)$) thành bộ phân loại mạnh ($H(x)$) thông qua việc cập nhật phân bố trọng số mẫu sau mỗi vòng lặp; tăng trọng số đối với các mẫu bị phân loại sai để vòng lặp kế tiếp tập trung tối ưu.
    • Cấu trúc Cascade nối tiếp gồm $N$ giai đoạn (stage, thường trên 20 giai đoạn). Mỗi giai đoạn được thiết lập ngưỡng sao cho tỷ lệ phát hiện đúng (hit rate) đạt xấp xỉ 100% trong khi loại bỏ nhanh các cửa sổ trượt âm tính (negative), đưa tỷ lệ báo động sai tích lũy xuống mức cực nhỏ (khoảng $0.54 \times 10^{-7}$).

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thực nghiệm và tích hợp hệ thống: Tiến hành thiết kế phần cứng mạch động lực, kết nối module vi máy tính, xây dựng tập mã nguồn xử lý ảnh trên nền Python/OpenCV và đánh giá độ chính xác qua thực nghiệm thu hình trực tiếp.
  • Dữ liệu huấn luyện: Sử dụng công cụ Training Image Labeler trên phần mềm MATLAB để gán nhãn vùng quan tâm (Region of Interest - ROI), tạo tập mẫu ảnh tích cực (positive images - chứa bàn tay) và ảnh tiêu cực (negative images - ảnh nền không chứa bàn tay), xuất ra file tham số cấu hình .MAT (L305_GOP.MAT) và tập tin cấu trúc XML (haarcascade_frontalface_default.xml dùng để loại trừ vùng khuôn mặt người sử dụng).

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc gồm hai khối chức năng chính: Khối nhận dạng cử chỉ và Khối công suất điều khiển thiết bị.

+-------------------------------------------------------------+
|                  KHỐI NHẬN DẠNG CỬ CHỈ                      |
|                                                             |
|  +--------------+    CSI Bus    +------------------------+  |
|  |  Camera Pi   | ------------> | Raspberry Pi 2 Model B |  |
|  | (320x240 px) |               |  (ARM Cortex-A7, 1GB)  |  |
|  +--------------+               +------------------------+  |
+---------------------------------------------|---------------+
                                              | GPIO Control
                                              | (GPIO18, 23, 24, 25)
+---------------------------------------------v---------------+
|                     KHỐI CÔNG SUẤT                          |
|                                                             |
|  +--------------+   Cách ly quang   +--------------------+  |
|  | Cách ly Opto | ----------------> | Đệm dòng Transistor|  |
|  | (PC817 x 4)  |                   |    (C1815 x 4)     |  |
|  +--------------+                   +--------------------+  |
|                                                |            |
|                                                v            |
|  +--------------------+             +--------------------+  |
|  | Tải 4 thiết bị điện| <---------- | Rơ-le cơ khí đóng/cắt|
|  |    (AC/DC Load)    |             |   (HF3FF 5V x 4)   |  |
|  +--------------------+             +--------------------+  |
+-------------------------------------------------------------+

Kiến trúc phần cứng và tính toán mạch

  1. Khối nhận dạng cử chỉ (Trung tâm xử lý):

    • Sử dụng bo mạch Raspberry Pi 2 Model B v1.1 tích hợp vi xử lý Broadcom 4 nhân ARM Cortex-A7 xung nhịp 900MHz, bộ nhớ RAM 1GB, card đồ họa VideoCore IV 3D graphics, giao tiếp 40 chân GPIO và cổng nạp hệ điều hành Raspbian qua thẻ Micro SD.
    • Thiết bị thu nhận ảnh là Module Camera Pi kết nối trực tiếp qua giao diện cáp dẹt CSI (Camera Serial Interface), được cấu hình độ phân giải khung hình $320 \times 240$ pixel ở tốc độ 32 khung hình/giây (fps).
    • Tín hiệu điều khiển xuất ra 4 chân logic: GPIO18, GPIO23, GPIO24 và GPIO25.
  2. Khối công suất và phối ghép cách ly:

    • Để bảo vệ các chân GPIO của Raspberry Pi (mức điện áp logic 3,3V, giới hạn dòng nhỏ) khỏi điện áp cảm ứng và dòng ngược từ cuộn dây rơ-le, mạch sử dụng tầng cách ly quang qua IC Optocoupler PC817, sau đó kích mở transistor lưỡng cực NPN C1815 để đóng ngắt rơ-le HF3FF 5VDC.

Bảng tính toán thông số kỹ thuật các linh kiện mạch công suất:

Linh kiện Thông số kỹ thuật từ Datasheet Công thức tính toán & phối ghép Giá trị lựa chọn
Opto PC817 Điện áp kích $V_F = 1,2\text{V}$, dòng định mức $I_F = 2\text{mA}$ $R_2 = \frac{V_{GPIO} - V_F}{I_F} = \frac{3,3\text{V} - 1,2\text{V}}{2\text{mA}} = 1050\ \Omega \rightarrow$ Chọn điện trở hạn dòng ngõ vào Điện trở $100\ \Omega$ (cho mạch phân áp/kích nhạy)
Transistor C1815 $V_{CE(sat)} = 0,2\text{V}$, $V_{BE} = 0,7\text{V}$, độ lợi dòng $h_{FE}$ Dòng cực góp $I_C = 71\text{mA}$ (dòng cuộn hút rơ-le), dòng cực nền yêu cầu $I_B = 3\text{mA}$. $R_3 = \frac{V_{CC} - V_{BE} - V_{CE(opto)}}{I_B} = \frac{5\text{V} - 0,7\text{V} - 0,2\text{V}}{3\text{mA}} \approx 1366\ \Omega$ Điện trở phân cực cực nền $1\text{k}\Omega$
Relay HF3FF 5V Điện áp cuộn dây 5VDC, điện trở cuộn dây $70\ \Omega$, dòng tiêu thụ $71\text{mA}$ Dòng đóng ngắt cho 4 rơ-le: $4 \times 71\text{mA} = 284\text{mA}$ 4 Rơ-le 5V gắn tiếp điểm tải
Diode 1N4007 Dòng thuận $1\text{A}$, điện áp ngược cực đại $1000\text{V}$ Mắc song song ngược cực với cuộn hút rơ-le để dập xung điện áp cảm ứng bảo vệ transistor 4 Diode dập xung
Đèn LED & Domino LED đơn báo trạng thái kích hoạt; Domino 2 chân (cấp nguồn), Domino 3 chân (ngõ ra tiếp điểm COM-NO-NC) Ghép nối tiếp điện trở hạn dòng $1\text{k}\Omega$ 4 LED, 4 Domino 3 chân, 2 Domino 2 chân

Tổng dòng điện tiêu thụ cực đại của khối công suất khi kích hoạt đồng thời 4 kênh: $$I_{total} \approx (4 \times 71\text{mA}) + (4 \times 2\text{mA}) + (4 \times 3\text{mA}) = 284\text{mA} + 8\text{mA} + 12\text{mA} \approx 304\text{mA} \text{ (thiết kế nguồn dự phòng tối đa 1A)}$$

Quy trình phần mềm và giải thuật nhận diện cử chỉ

Quy trình nhận dạng trên kit Raspberry Pi được lập trình bằng ngôn ngữ Python kết hợp thư viện thị giác máy tính OpenCV theo các bước tuần tự:

  1. Khởi tạo và cấu hình: Thiết lập thông số Camera Pi (độ phân giải $320 \times 240$, 32 fps), nạp file cấu hình XML nhận diện khuôn mặt (haarcascade_frontalface_default.xml) và file tham số phân loại bàn tay.
  2. Loại trừ vùng khuôn mặt: Áp dụng bộ phân loại Haar-like phát hiện vị trí khuôn mặt người đứng trước camera; tạo mặt nạ đen che khuất vùng mặt nhằm tránh trường hợp thuật toán phân đoạn màu da nhầm lẫn mặt với bàn tay.
  3. Phát hiện vùng da tay: Chuyển đổi khung hình sang không gian màu HSV, áp dụng ngưỡng lọc màu da để tạo ảnh nhị phân chứa vùng bàn tay; thực hiện phép toán hình thái học (Morphological operations) để khử nhiễu đốm nhỏ và lấp đầy lỗ hổng.
  4. Trích xuất đặc trưng và phân loại: Áp dụng cửa sổ trượt trích xuất vector đặc trưng HOG trên vùng ứng viên; đưa vector vào chuỗi phân loại Cascade đã được huấn luyện bằng AdaBoost để xác nhận sự hiện diện của bàn tay và xác định loại cử chỉ.
  5. Điều khiển ngõ ra GPIO: Khi cử chỉ được nhận dạng ổn định, chương trình xuất mức tín hiệu logic (High/Low) tương ứng qua các chân GPIO để đóng/ngắt mạch công suất.

Bảng quy ước tập lệnh cử chỉ bàn tay điều khiển thiết bị:

Mã cử chỉ Tên cử chỉ thao tác Trạng thái điều khiển xuất ra phần cứng Chân GPIO điều khiển
Cử chỉ 1 Xòe 1 ngón tay Bật thiết bị số 1 GPIO18
Cử chỉ 2 Xòe 2 ngón tay Bật thiết bị số 2 GPIO23
Cử chỉ 3 Xòe 3 ngón tay Bật thiết bị số 3 GPIO24
Cử chỉ 4 Xòe 4 ngón tay Bật thiết bị số 4 GPIO25
Cử chỉ 5 Nắm bàn tay lại (hoặc cử chỉ tắt) Tắt toàn bộ 4 thiết bị Tắt toàn bộ GPIO

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

Chương 1. Tổng quan

Chương 1 trình bày tính cấp thiết của đề tài trong xu thế phát triển giao tiếp người - máy không tiếp xúc. Tác giả tổng hợp các công trình nghiên cứu tiêu biểu trong và ngoài nước về nhận dạng cử chỉ bằng lịch sử chuyển động, găng tay dữ liệu Data Glove, mạng nơ-ron và các hệ thống nhúng nhận dạng khuôn mặt/chống ngủ gật trên Raspberry Pi. Trên cơ sở đó, chương xác định mục tiêu thiết kế hệ thống nhận dạng cử chỉ tay điều khiển 4 thiết bị, lập kế hoạch nghiên cứu 14 tuần (từ tìm hiểu lý thuyết, huấn luyện mẫu trên MATLAB, thi công mạch công suất, đến tối ưu hóa trên kit), đồng thời xác định các giới hạn kỹ thuật về môi trường ánh sáng, khoảng cách nhận dạng ($0,5\text{m}$) và thời gian đáp ứng ($1-4$ giây).

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

Chương này cung cấp nền tảng toán học và kỹ thuật xử lý ảnh phục vụ đề tài. Nội dung bao gồm:

  • Đặc tả cấu hình phần cứng kit Raspberry Pi 2 Model B v1.1 (vi xử lý Quad-core 900MHz, RAM 1GB, hệ thống chân GPIO).
  • Khái niệm ngôn ngữ ký hiệu ASL (American Sign Language).
  • Các bước cơ bản trong xử lý ảnh số, biểu diễn điểm ảnh (pixel), mức xám (8-bit, 256 mức), ảnh nhị phân và nguyên lý phân tích không gian màu RGB, HSV phục vụ tách ngưỡng màu da.
  • Lý thuyết trích xuất đặc trưng Haar-like qua ảnh tích phân và đặc trưng lược đồ hướng Gradient (HOG) với các bước chia cell $8 \times 8$, block $2 \times 2$, phân tích 9 bin góc gradient và chuẩn hóa vector block.
  • Cơ chế học có giám sát của thuật toán AdaBoost trong việc chọn lọc đặc trưng và cấu hình chuỗi phân loại tầng (Cascade Classifier) nối tiếp nhằm tối ưu hóa tốc độ tính toán.

Chương 3. Tính toán thiết kế

Chương 3 chi tiết hóa sơ đồ khối toàn hệ thống gồm Khối nhận dạng cử chỉ và Khối công suất. Tác giả trình bày các công thức tính toán giải tích mạch điện tử: tính toán điện trở hạn dòng $R_2$ cho diode phát quang trong Opto PC817 từ mức áp 3,3V của GPIO Raspberry Pi, tính toán dòng cực nền $I_B$ và điện trở phân cực $R_3$ cho transistor NPN C1815 nhằm đáp ứng dòng kích cuộn hút $71\text{mA}$ cho rơ-le 5V HF3FF. Kết quả tính toán chứng minh tổng dòng tiêu thụ của khối công suất khoảng $350\text{mA}$, cho phép sử dụng an toàn nguồn cấp định mức 1A.

Chương 4. Thi công hệ thống

Chương 4 mô tả toàn bộ quá trình hiện thực hóa phần cứng và phần mềm:

  • Bảng danh mục linh kiện thực tế (Opto PC817, Transistor C1815, Relay 5V, Diode 1N4007, Domino, điện trở các loại).
  • Bản vẽ bố trí linh kiện trên phần mềm và sơ đồ mạch in (PCB) khối công suất.
  • Lưu đồ giải thuật phần mềm: Cấu hình camera ($320 \times 240$, 32 fps), nạp file haarcascade_frontalface_default.xml để loại bỏ mặt, phân đoạn ngưỡng màu da trên HSV.
  • Quy trình huấn luyện phát hiện bàn tay trên máy tính sử dụng công cụ Training Image Labeler của MATLAB, chuẩn bị tập mẫu tích cực (positive) và tiêu cực (negative), trích xuất ROI và tạo tệp dữ liệu huấn luyện L305_GOP.MAT.

Chương 5. Kết quả - Nhận xét - Đánh giá

Chương 5 tổng kết các kết quả đạt được từ mô hình sản phẩm thực tế:

  • Thi công hoàn chỉnh hộp sản phẩm tích hợp kit Raspberry Pi 2, Camera Pi và mạch công suất điều khiển 4 rơ-le.
  • Hệ thống nhận dạng thành công 5 cử chỉ đề xuất và xuất tín hiệu kích đóng ngắt chính xác 4 tải điện tử tương ứng.
  • Đánh giá định lượng: Trong điều kiện môi trường đạt chuẩn (đủ sáng, phông nền đơn sắc không trùng màu da), độ chính xác nhận diện trung bình đạt khoảng 85% với thời gian xử lý từ 1 đến 4 giây.
  • Nhận xét các mặt còn hạn chế về phụ thuộc môi trường chiếu sáng và tốc độ xử lý của vi xử lý nhúng.

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

Tác giả tóm tắt mức độ hoàn thành nhiệm vụ nghiên cứu: làm chủ quy trình huấn luyện và xử lý ảnh trên nền tảng nhúng, thi công thành công phần cứng điều khiển thiết bị thực tế. Hướng phát triển của đề tài bao gồm mở rộng số lượng cử chỉ nhận dạng, nâng cấp thuật toán nhận dạng cử chỉ động (dynamic gestures), cải thiện khả năng thích nghi trong môi trường ánh sáng phức tạp và tối ưu hóa thời gian thực thi.


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

Kết quả thực nghiệm chính

  1. Về mặt phần cứng:

    • Chế tạo thành công mạch công suất 4 kênh sử dụng tiếp điểm rơ-le cách ly hoàn toàn qua Opto PC817 và transistor đệm C1815, bảo đảm cách ly an toàn cho chân điều khiển của Raspberry Pi. Mạch tiêu thụ dòng tối đa khoảng $350\text{mA}$, vận hành ổn định với nguồn nuôi 5VDC.
    • Hoàn thiện mô hình sản phẩm dạng hộp đóng gói hoàn chỉnh, tích hợp Camera Pi thu hình trực tiếp và các cầu đấu nối Domino cho 4 tải điện đầu ra.
  2. Về mặt thuật toán và phần mềm:

    • Xây dựng thành công quy trình kết hợp loại bỏ khuôn mặt bằng Haar-like, phân vùng da tay trên không gian HSV và phát hiện cử chỉ bằng đặc trưng HOG kết hợp bộ phân loại Cascade huấn luyện bởi AdaBoost.
    • Nhận dạng thành công tập 5 cử chỉ bàn tay tĩnh để điều khiển bật/tắt 4 thiết bị độc lập và tắt toàn bộ hệ thống.
    • Tỷ lệ nhận dạng chính xác đạt mức xấp xỉ 85% trong điều kiện môi trường thử nghiệm đạt chuẩn (ánh sáng ban ngày hoặc đèn phòng đầy đủ, nền đơn giản, khoảng cách từ 0,5m).
    • Thời gian đáp ứng từ lúc người dùng thực hiện cử chỉ đến khi thiết bị đóng/ngắt dao động trong khoảng 1 đến 4 giây.

Đóng góp kỹ thuật của đồ án

  • Triển khai thành công một giải pháp nhận dạng xử lý ảnh hoàn chỉnh trên nền tảng phần cứng nhúng giá rẻ (Raspberry Pi 2 Model B), thay vì chỉ dừng lại ở các mô phỏng trên máy tính cá nhân như một số đề tài trước.
  • Đề xuất và thực nghiệm giải pháp kết hợp giữa kỹ thuật tiền xử lý lọc màu da HSV với trích chọn đặc trưng HOG/AdaBoost, giúp giảm thiểu đáng kể không gian tìm kiếm cửa sổ trượt, qua đó tối ưu hóa hiệu năng tính toán cho CPU nhúng 900MHz.

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

Hạn chế kỹ thuật ghi nhận trong văn bản

  • Độ phụ thuộc vào môi trường: Thuật toán phân vùng màu da và trích xuất HOG rất nhạy cảm với điều kiện chiếu sáng. Hệ thống hoạt động kém chính xác hoặc nhận diện sai khi môi trường thiếu sáng, ngược sáng hoặc có nguồn sáng thay đổi đột ngột.
  • Nhiễu phông nền: Phông nền phía sau bàn tay bắt buộc phải đơn giản; hệ thống sẽ phân lớp sai nếu trong khung hình xuất hiện các đồ vật có màu sắc hoặc độ phản xạ tương đồng với ngưỡng màu da người.
  • Giới hạn loại cử chỉ: Hệ thống mới chỉ nhận diện được các cử chỉ tĩnh (static gestures) ở góc nhìn chính diện, chưa nhận dạng được cử chỉ động (chuỗi chuyển động theo thời gian) hoặc bàn tay bị xoay nghiêng góc lớn.
  • Độ trễ xử lý: Thời gian nhận diện từ 1 đến 4 giây trên kit Raspberry Pi 2 vẫn còn tương đối chậm đối với các ứng dụng yêu cầu phản hồi tức thời.

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

  • Nghiên cứu các thuật toán khử nhiễu ánh sáng và cân bằng trắng tự động thích nghi nhằm tăng độ bền vững của hệ thống trong môi trường chiếu sáng phức tạp.
  • Nâng cấp tập dữ liệu huấn luyện để nhận dạng các cử chỉ động phức tạp hơn, mở rộng số lượng thiết bị được điều khiển.
  • Cải tiến và tối ưu hóa mã nguồn xử lý ảnh, tận dụng tập lệnh tăng tốc phần cứng của GPU VideoCore IV hoặc chuyển dịch sang các dòng kit nhúng có năng lực tính toán cao hơn để rút ngắn thời gian đáp ứng xuống dưới 1 giây.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn cao cho các nhóm đối tượng sau:

  • Sinh viên ngành Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Máy tính và Cơ điện tử: Cung cấp tài liệu mẫu chi tiết về phương pháp tính toán, thiết kế và thi công mạch công suất cách ly quang điều khiển rơ-le bảo vệ vi điều khiển/vi máy tính.
  • Người nghiên cứu ứng dụng Thị giác máy tính trên Hệ thống nhúng (Embedded Computer Vision): Cung cấp tài liệu tham khảo thực tế về quy trình trích xuất đặc trưng HOG, thuật toán học AdaBoost, mô hình phân loại Cascade và các bước triển khai thư viện OpenCV trên ngôn ngữ Python cho kit Raspberry Pi.
  • Các đề tài phát triển thiết bị trợ giúp người khuyết tật và Nhà thông minh: Cung cấp giải pháp kỹ thuật cụ thể về giao diện tương tác người - máy bằng cử chỉ bàn tay không tiếp xúc.

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

1. Kit Raspberry Pi 2 Model B v1.1 sử dụng các chân GPIO nào để điều khiển 4 rơ-le trong khối công suất?
Theo tính toán thiết kế của đồ án, hệ thống sử dụng 4 chân ngõ ra kỹ thuật số gồm GPIO18, GPIO23, GPIO24 và GPIO25 để xuất tín hiệu logic điều khiển 4 kênh rơ-le tương ứng với các cử chỉ từ 1 đến 4.

2. Vector đặc trưng HOG cho cửa sổ kích thước $64 \times 128$ pixel trong đồ án có tổng cộng bao nhiêu chiều?
Vector đặc trưng HOG có tổng cộng 3780 chiều (thành phần). Con số này được tính toán từ việc chia ảnh thành các cell $8 \times 8$ pixel (mỗi cell 9 bin góc), nhóm thành các block $2 \times 2$ cell ($16 \times 16$ pixel, mỗi block 36 giá trị). Với kích thước cửa sổ $64 \times 128$ pixel và bước trượt block 8 pixel, số block tạo ra là $((64-16)/8 + 1) \times ((128-16)/8 + 1) = 7 \times 15 = 105$ block; nhân với 36 thành phần mỗi block ta được $105 \times 36 = 3780$ thành phần.

3. Tại sao hệ thống cần sử dụng file haarcascade_frontalface_default.xml trong quy trình nhận dạng cử chỉ bàn tay?
File haarcascade_frontalface_default.xml là mô hình phân loại Haar-like có sẵn của OpenCV dùng để định vị khuôn mặt người trực diện. Do khuôn mặt cũng có ngưỡng màu da tương tự bàn tay, thuật toán cần phát hiện và che phủ (loại trừ) vùng mặt trước khi thực hiện phân đoạn màu da HSV, tránh việc hệ thống nhận nhầm khuôn mặt là cử chỉ bàn tay.

4. Mạch công suất sử dụng linh kiện gì để cách ly và dòng tiêu thụ cực đại của toàn mạch là bao nhiêu?
Mạch công suất sử dụng 4 IC cách ly quang Optocoupler PC817 kết hợp 4 Transistor C1815 để kích 4 Rơ-le 5V (HF3FF) và gắn kèm 4 Diode 1N4007 dập xung. Tổng dòng điện tiêu thụ tính toán của toàn mạch công suất khi đóng cả 4 rơ-le là khoảng $350\text{mA}$, hoàn toàn an toàn khi sử dụng nguồn cấp 5V/1A.

5. Hệ thống đạt độ chính xác và thời gian đáp ứng là bao nhiêu trong điều kiện thực nghiệm?
Trong điều kiện môi trường chuẩn (đầy đủ ánh sáng, phông nền đơn giản, ít nhiễu màu da, khoảng cách từ 0,5m), hệ thống đạt tỷ lệ nhận dạng đúng khoảng 85% với thời gian xử lý và thực thi lệnh dao động từ 1 đến 4 giây.


Kết luận

Đồ án tốt nghiệp "Ứng dụng xử lý ảnh trong điều khiển thiết bị bằng cử chỉ tay sử dụng kit Raspberry Pi" của sinh viên Ngô Hoài Bảo và Nguyễn Trung Đạt đã hoàn thành trọn vẹn mục tiêu thiết kế và thi công hệ sinh thái tương tác người - máy không tiếp xúc. Bằng việc kết hợp hiệu quả giữa kỹ thuật lọc màu da trong không gian HSV, trích chọn đặc trưng HOG và thuật toán phân loại Cascade/AdaBoost trên nền tảng Raspberry Pi 2, nhóm tác giả đã xây dựng thành công hệ thống nhận dạng 5 cử chỉ bàn tay đạt độ chính xác thực nghiệm xấp xỉ 85%. Đồ án là tài liệu tham khảo kỹ thuật hữu ích, minh chứng tính khả thi của việc ứng dụng thị giác máy tính và hệ thống nhúng trong tự động hóa điều khiển thiết bị gia dụng và hỗ trợ người khuyết tật.