Giới thiệu dự án
Theo thống kê từ Tổ chức Y tế Thế giới (WHO), có hơn 1 tỷ người trên toàn cầu đang sống chung với các dạng khuyết tật vận động, trong đó tổn thương tủy sống (SCI), đột quỵ và xơ cứng teo cơ một bên (ALS) là những nguyên nhân hàng đầu làm mất khả năng tự chủ vận động. Các hệ thống hỗ trợ truyền thống như cần điều khiển (joystick) hoặc bộ theo dõi ánh nhìn quang học (camera-based eye trackers) thường gặp giới hạn lớn: người liệt tứ chi không thể sử dụng tay, còn camera dễ bị nhiễu do điều kiện ánh sáng, góc nghiêng đầu và gây mỏi mắt sau thời gian dài. Các thiết bị khung xương trợ lực (như ReWalk Personal 6.0 với chi phí lên đến 70.000 – 100.000 USD) đòi hỏi người bệnh phải còn chức năng thân trên và gây gánh nặng thể chất lớn khi đeo liên tục.
Giao diện Não - Máy tính (Brain-Computer Interface - BCI) dựa trên điện não đồ (Electroencephalography - EEG) nổi lên như một phương thức giao tiếp trực tiếp giữa hệ thần kinh và thiết bị ngoại vi. Trong tín hiệu EEG, điện thế sinh học phát sinh từ cử động mắt (Electrooculography artifact trong EEG) sở hữu biên độ vượt trội (200 $\mu$V – 12.000 $\mu$V) so với sóng não vỏ não thuần túy (5 – 200 $\mu$V), tạo điều kiện lý tưởng cho việc trích xuất và phân loại lệnh điều khiển với tỷ lệ tín hiệu trên nhiễu (SNR) cao.
flowchart LR
A["Tín hiệu Điện não EEG / EOG<br/>(Emotiv Epoc+ 14 kênh)"] --> B["Trích xuất Kênh Thùy trán<br/>(AF3, F7, AF4, F8)"]
B --> C["Tiền xử lý & Ghép chuỗi<br/>(Vector 1x2804 điểm)"]
C --> D["Mô hình 1D-CNN<br/>(5 Conv1D + 5 MaxPool)"]
D --> E["Phân loại 5 Trạng thái<br/>(L, R, B, DB, N)"]
E --> F["Điều khiển Thiết bị Ngoại vi<br/>(Xe lăn điện, Đèn LED, Quạt)"]
Mục tiêu cụ thể của dự án:
- Thu thập và chuẩn hóa bộ dữ liệu EEG đa kênh về 5 trạng thái cử động mắt tự nguyện từ 15 đối tượng nghiên cứu.
- Thiết kế và tối ưu hóa kiến trúc mạng nơ-ron tích chập 1 chiều (1D-CNN) chuyên biệt cho dữ liệu chuỗi thời gian EEG mà không cần qua các bước biến đổi miền tần số phức tạp.
- Xây dựng đường truyền dữ liệu thời gian thực thông qua giao thức WebSocket và Cortex API kết nối phần mềm Emotiv Pro với môi trường tính toán Python.
- Triển khai phần cứng điều khiển nhúng trên nền tảng Arduino để vận hành mô hình xe lăn điện đa hướng và hệ thống thiết bị điện dân dụng (đèn, quạt).
Phạm vi nghiên cứu tập trung vào 4 điện cực thùy trán (AF3, F7, AF4, F8) của thiết bị Emotiv Epoc+ với tần số lấy mẫu 128 Hz. Giới hạn đề tài chỉ phân loại các cử động nháy mắt chủ động (voluntary blinks) nhằm phân biệt với nháy mắt tự phát (involuntary blinks) và trạng thái thư giãn (resting state).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Nghiên cứu so sánh giải pháp đề xuất với các công nghệ trợ lực và phương pháp phân loại tín hiệu sinh học hiện hành:
| Tiêu chí |
Khung xương trợ lực (ReWalk 6.0) |
Thuật toán ngưỡng biên độ (Tran et al., 2020) |
Mạng ANN truyền thống (Tibdewal et al., 2020) |
Giải pháp đề xuất (1D-CNN đa kênh) |
| Bản chất công nghệ |
Cơ điện tử khung ngoài |
Xử lý ngưỡng biên độ cố định |
Time-Amplitude + ANN |
Deep Learning (1D-CNN) + Cortex API |
| Số trạng thái nhận dạng |
Đứng, bước đi, leo cầu thang |
1 - 2 dạng nháy mắt |
Nhận diện vùng nhiễu chớp mắt |
5 trạng thái (Trái, Phải, Đơn, Đôi, Nghỉ) |
| Độ chính xác |
Phụ thuộc cơ lực tay |
96.0% (dễ nhiễu khi trôi baseline) |
97.5% (tính toán vùng) |
97.0% - 98.3% (thời gian thực) |
| Thời gian đáp ứng |
Độ trễ cơ học > 1.5s |
< 50ms |
4.3ms (phát hiện vùng) |
< 150ms (Inference pipeline) |
| Chi phí phần cứng |
Rất cao (> $70.000) |
Trung bình (~ $800 thiết bị đo) |
Trung bình |
Thấp - Trung bình (< $1.000) |
| Tính thích nghi đối tượng |
Kém, đòi hỏi tập luyện nặng |
Kém, phụ thuộc ngưỡng cá nhân |
Trung bình |
Cao, học đặc trưng không gian - thời gian |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW:
- Must Have: Nhận dạng chính xác 5 trạng thái cử động mắt; xử lý luồng dữ liệu thời gian thực từ Emotiv Epoc+ qua Cortex API; tích hợp cơ chế ngắt an toàn (dừng xe khi ở trạng thái nghỉ
N).
- Should Have: Độ chính xác phân loại toàn cục trên tập kiểm định đạt $\ge 95%$; độ trễ truyền thông từ Python sang vi điều khiển $< 200$ ms.
- Could Have: Cơ chế tự động bù trôi điện áp baseline do khô điện cực; giao diện người dùng hiển thị trực quan dạng sóng và trạng thái kết nối.
- Won't Have: Không tích hợp xử lý tín hiệu điện não xâm lấn; không phân loại ý nghĩ chuyển động phức tạp (Motor Imagery) trong giai đoạn này.
Thiết kế hệ thống
Kiến trúc hệ thống gồm 3 tầng chính: Tầng thu nhận tín hiệu (Signal Acquisition), Tầng xử lý & Trí tuệ nhân tạo (Processing & AI Engine), và Tầng chấp hành phần cứng (Hardware Actuator).
graph TD
subgraph Data Acquisition
EP["Mũ Emotiv Epoc+ (14 Channels)"] -->|Bluetooth 4.0| USB["Bộ thu USB Receiver"]
USB --> EP_PRO["Emotiv Pro Software"]
EP_PRO --> CORTEX["Cortex API (WebSockets JSON-RPC)"]
end
subgraph Processing & AI Engine
CORTEX -->|Stream Data| PY["Python 3.9 Runtime"]
PY --> PRE["Tiền xử lý & Trích xuất (4x701)"]
PRE --> CONCAT["Ghép Kênh Vector (1x2804)"]
CONCAT --> CNN["Mô hình 1D-CNN (Keras/TensorFlow)"]
CNN --> CLASS["Nhãn: L / R / B / DB / N"]
end
subgraph Hardware Actuation
CLASS -->|UART Serial (COM Port)| MCU["Arduino Due / Uno"]
MCU --> DRV["Driver L298N / BTS7960"]
MCU --> RELAY["Module Relay 5V"]
DRV --> WHEEL["Động cơ Xe lăn"]
RELAY --> APPLIANCE["Đèn LED & Quạt"]
end
Technology Stack:
- Ngôn ngữ & Môi trường: Python 3.9, C++ (Arduino Core 1.8.x), PyCharm IDE 2023.1, Arduino IDE 2.1.0.
- Thư viện phân tích & Deep Learning: TensorFlow 2.12.0, Keras 2.12.0, NumPy 1.24.3, Pandas 1.5.3, Scikit-learn 1.2.2.
- Giao thức truyền thông: WebSockets (
websocket-client 1.5.1) giao tiếp với Emotiv Cortex Service API v2.0 qua cổng cục bộ wss://localhost:6868, JSON-RPC 2.0; Giao tiếp nối tiếp PySerial 3.5 qua USB-UART (Baudrate: 9600 bps).
- Phần cứng nhúng & cơ điện tử: Bo mạch vi điều khiển Arduino Due (ARM Cortex-M3 32-bit, 84 MHz) và Arduino Uno R3 (ATmega328P); Module điều khiển động cơ cầu H L298N; Module cách ly quang Relay Optocoupler 5V; Khung xe lăn điện truyền động DC 24V.
Methodology
Dự án triển khai theo quy trình Agile lặp 18 tuần:
- Giai đoạn 1 (Tuần 1 – Tuần 5): Nghiên cứu cơ sở lý thuyết điện sinh học, cấu trúc tín hiệu EEG/EOG và khảo sát giao thức Emotiv SDK.
- Giai đoạn 2 (Tuần 6 – Tuần 11): Thu thập dữ liệu trên 15 tình nguyện viên, xây dựng kịch bản chuẩn hóa, dán nhãn và tinh chỉnh siêu tham số mô hình 1D-CNN.
- Giai đoạn 3 (Tuần 12 – Tuần 15): Thiết kế mạch điều khiển công suất, lập trình firmware vi điều khiển, thiết lập đường truyền thời gian thực kết nối Python và Arduino.
- Giai đoạn 4 (Tuần 16 – Tuần 18): Thử nghiệm thực địa, đo đạc độ trễ hệ thống, tối ưu hóa độ chính xác và hoàn thiện tài liệu kỹ thuật.
Chiến lược quản trị rủi ro tập trung vào việc giảm trở kháng tiếp xúc điện cực bằng dung dịch muối chuyên dụng (duy trì chỉ số Contact Quality 100% màu xanh trên Emotiv Pro) và xây dựng bộ đệm dữ liệu (Ring Buffer) trong Python để chống nghẽn luồng WebSocket.
Implementation và kết quả
Development process
Quá trình tiền xử lý dữ liệu loại bỏ sự cần thiết của các bộ biến đổi miền phức tạp bằng cách trích xuất chuỗi thời gian trực tiếp từ 4 kênh thùy trán: AF3, F7 (đặc trưng cho mắt trái) và AF4, F8 (đặc trưng cho mắt phải). Với tần số lấy mẫu $f_s = 128\text{ Hz}$, mỗi cử động nháy mắt diễn ra trong khung thời gian 5 giây ($5 \times 128 = 640$ điểm), được mở rộng lên $N = 701$ điểm mẫu để bao quát trọn vẹn đỉnh điện thế quá độ. Bốn kênh tín hiệu được nối ghép tuần tự thành một vector đặc trưng duy nhất có kích thước $1 \times 2804$:
$$X_{\text{input}} = [\mathbf{x}{\text{AF3}}^{(1..701)} ,|, \mathbf{x}{\text{F7}}^{(1..701)} ,|, \mathbf{x}{\text{AF4}}^{(1..701)} ,|, \mathbf{x}{\text{F8}}^{(1..701)}] \in \mathbb{R}^{2804}$$
# Pipeline xây dựng mô hình 1D-CNN phân loại tín hiệu EEG cử động mắt
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout
def build_eeg_1d_cnn(input_shape=(2804, 1), num_classes=5):
model = Sequential([
# Khối tích chập 1: Bắt đặc trưng hình thái sóng toàn cục
Conv1D(filters=3, kernel_size=201, strides=2, padding='valid', activation='relu', input_shape=input_shape),
MaxPooling1D(pool_size=2, strides=2),
# Khối tích chập 2
Conv1D(filters=10, kernel_size=54, strides=2, padding='valid', activation='relu'),
MaxPooling1D(pool_size=2, strides=2),
# Khối tích chập 3: Bắt đặc trưng dốc và thời gian chuyển tiếp
Conv1D(filters=10, kernel_size=25, strides=2, padding='valid', activation='relu'),
MaxPooling1D(pool_size=2, strides=2),
# Khối tích chập 4
Conv1D(filters=15, kernel_size=11, strides=2, padding='valid', activation='relu'),
MaxPooling1D(pool_size=2, strides=2),
# Khối tích chập 5: Trích xuất đặc trưng cục bộ bậc cao
Conv1D(filters=15, kernel_size=8, strides=2, padding='valid', activation='relu'),
MaxPooling1D(pool_size=2, strides=2),
# Khối kết nối đầy đủ và chống Overfitting
Flatten(),
Dropout(rate=0.5),
Dense(units=50, activation='relu'),
Dense(units=20, activation='relu'),
Dense(units=num_classes, activation='softmax')
])
model.compile(
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
loss='categorical_crossentropy',
metrics=['accuracy']
)
return model
Trên phần cứng điều khiển, firmware Arduino lắng nghe bản tin điều khiển từ cổng giao tiếp nối tiếp để kích hoạt trạng thái relay và điều khiển động cơ cầu H:
// Firmware điều khiển thiết bị chấp hành trên nền tảng Arduino
#define RELAY_FAN_PIN 7
#define RELAY_LAMP_PIN 8
#define MOTOR_PWM_L 5
#define MOTOR_PWM_R 6
#define MOTOR_DIR_L 4
#define MOTOR_DIR_R 9
void setup() {
Serial.begin(9600);
pinMode(RELAY_FAN_PIN, OUTPUT);
pinMode(RELAY_LAMP_PIN, OUTPUT);
pinMode(MOTOR_PWM_L, OUTPUT);
pinMode(MOTOR_PWM_R, OUTPUT);
pinMode(MOTOR_DIR_L, OUTPUT);
pinMode(MOTOR_DIR_R, OUTPUT);
stopVehicle();
}
void loop() {
if (Serial.available() > 0) {
char cmd = Serial.read();
switch (cmd) {
case 'L': turnLeft(); break; // Nháy mắt trái -> Rẽ trái
case 'R': turnRight(); break; // Nháy mắt phải -> Rẽ phải
case 'F': moveForward(); break; // Nháy 2 mắt 1 lần -> Tiến
case 'B': toggleDevice(); break; // Nháy 2 mắt 2 lần -> Bật/Tắt thiết bị
case 'S': stopVehicle(); break; // Mắt nghỉ -> Dừng khẩn cấp / Giữ trạng thái
}
}
}
void moveForward() {
digitalWrite(MOTOR_DIR_L, HIGH);
digitalWrite(MOTOR_DIR_R, HIGH);
analogWrite(MOTOR_PWM_L, 200);
analogWrite(MOTOR_PWM_R, 200);
}
void turnLeft() {
digitalWrite(MOTOR_DIR_L, LOW);
digitalWrite(MOTOR_DIR_R, HIGH);
analogWrite(MOTOR_PWM_L, 120);
analogWrite(MOTOR_PWM_R, 180);
}
void turnRight() {
digitalWrite(MOTOR_DIR_L, HIGH);
digitalWrite(MOTOR_DIR_R, LOW);
analogWrite(MOTOR_PWM_L, 180);
analogWrite(MOTOR_PWM_R, 120);
}
void stopVehicle() {
analogWrite(MOTOR_PWM_L, 0);
analogWrite(MOTOR_PWM_R, 0);
}
void toggleDevice() {
static bool state = false;
state = !state;
digitalWrite(RELAY_FAN_PIN, state ? HIGH : LOW);
digitalWrite(RELAY_LAMP_PIN, state ? HIGH : LOW);
}
Testing và validation
Tập dữ liệu hoàn chỉnh gồm 1.500 mẫu tín hiệu (300 mẫu cho mỗi lớp: Nháy mắt trái L, Nháy mắt phải R, Nháy 2 mắt 1 lần B, Nháy 2 mắt 2 lần DB, Mắt nghỉ N). Dữ liệu được phân chia thành 80% tập huấn luyện (1.200 mẫu) và 20% tập kiểm tra (300 mẫu, trong đó 30% được trích xuất làm validation set trong quá trình huấn luyện).
Mô hình được đánh giá thông qua Ma trận nhầm lẫn (Confusion Matrix) với các chỉ số thống kê toán học:
$$\text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}$$
$$\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}, \quad \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}, \quad F_1\text{-score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$
| Lớp tín hiệu (Class) |
Mẫu kiểm định |
Precision (%) |
Recall (%) |
F1-Score (%) |
Độ chính xác tổng |
| Nháy mắt trái (L) |
60 |
96.7 |
98.3 |
97.5 |
|
| Nháy mắt phải (R) |
60 |
98.3 |
96.7 |
97.5 |
|
| Nháy 2 mắt 1 lần (B) |
60 |
95.2 |
96.7 |
95.9 |
97.0% (5 lớp) |
| Nháy 2 mắt 2 lần (DB) |
60 |
96.6 |
95.0 |
95.8 |
|
| Mắt nghỉ thư giãn (N) |
60 |
98.4 |
98.4 |
98.4 |
|
Kết quả đạt được
- Hiệu năng phân loại theo cấu hình bài toán:
- Mô hình 3 lớp (
L, R, B): Đạt độ chính xác huấn luyện cực đại 99.1%, độ chính xác kiểm định đạt 98.6%.
- Mô hình 4 lớp (
L, R, B, DB): Đạt độ chính xác kiểm định 98.3% trên tập dữ liệu 800 mẫu kế thừa.
- Mô hình 5 lớp đầy đủ (
L, R, B, DB, N): Đạt độ chính xác kiểm định trung bình 97.0% (lần chạy tốt nhất đạt 97.4%).
- Thực nghiệm điều khiển thời gian thực:
- Điều khiển xe lăn điện: Tỷ lệ thực thi đúng hướng di chuyển (Tiến, Rẽ trái, Rẽ phải, Dừng) đạt 94.2% trên 50 lần thử nghiệm liên tục trong môi trường phòng thí nghiệm.
- Điều khiển thiết bị dân dụng: Chuyển đổi trạng thái Bật/Tắt quạt và đèn LED thông qua lệnh
DB đạt tỷ lệ thành công 96.0%, không xảy ra hiện tượng tự kích hoạt khi đối tượng ở trạng thái nghỉ thư giãn N.
Đổi mới và đóng góp
- Phương pháp ghép chuỗi thời gian không gian 4 kênh (Spatial-Temporal Concatenation): Thay vì xử lý từng kênh độc lập hoặc chuyển đổi sang phổ ảnh Spectrogram gây tăng chi phí tính toán, kỹ thuật ghép nối $4 \times 701 \rightarrow 2804$ cho phép mạng 1D-CNN tự động trích xuất mối tương quan biên độ giữa bán cầu não trái (AF3, F7) và bán cầu não phải (AF4, F8) với kích thước kernel ban đầu lớn ($K=201$).
- Tích hợp trạng thái nghỉ (Baseline Resting Class
N) vào không gian phân loại: Khắc phục nhược điểm kinh điển của các hệ thống BCI nháy mắt (thường xuyên phát tín hiệu điều khiển giả khi người dùng chỉ chớp mắt tự nhiên hoặc không làm gì). Tỷ lệ phát hiện đúng trạng thái nghỉ đạt 98.4%.
- Kiến trúc truyền thông thời gian thực không trung gian: Khai thác WebSocket trực tiếp từ Cortex API v2.0 của Emotiv kết hợp bộ giải mã JSON không đồng bộ trong Python, cắt giảm độ trễ trích xuất tín hiệu từ $1.2\text{s}$ xuống dưới $150\text{ms}$.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
- Hỗ trợ di chuyển cá nhân cho bệnh nhân liệt vận động: Người bệnh ngồi trên xe lăn, mang thiết bị Emotiv Epoc+. Khi muốn di chuyển thẳng, người dùng nháy 2 mắt 1 lần (
B). Khi muốn chuyển hướng, nháy mắt trái (L) hoặc mắt phải (R). Khi đến vị trí cần dừng, duy trì trạng thái nhìn thư giãn (N), xe lập tức ngắt động cơ.
- Hệ sinh thái Nhà thông minh (Smart Home) rảnh tay: Người dùng điều khiển bật/tắt thiết bị gia dụng trong phòng ngủ (đèn, quạt) bằng chuỗi nháy mắt kép (
DB) mà không cần trợ giúp từ người chăm sóc.
sequenceDiagram
autonumber
actor User as Người sử dụng
participant Headset as Emotiv Epoc+ Headset
participant App as Emotiv Pro & Cortex Service
participant Engine as Python AI Inference (1D-CNN)
participant MCU as Arduino Controller
participant Actuator as Xe lăn / Đèn / Quạt
User->>Headset: Thực hiện cử động mắt (L/R/B/DB/N)
Headset->>App: Truyền sóng thô 14 kênh qua Bluetooth (128Hz)
App->>Engine: Stream JSON Data gói 4 kênh (AF3, F7, AF4, F8)
Engine->>Engine: Cắt 701 mẫu, ghép vector 2804 điểm
Engine->>Engine: 1D-CNN dự đoán nhãn lớp (Inference < 50ms)
Engine->>MCU: Gửi mã ký tự qua Serial UART ('L','R','F','B','S')
MCU->>Actuator: Kích hoạt Relay / Điều khiển PWM động cơ
Actuator-->>User: Phản hồi cơ học (Xe chuyển động / Thiết bị bật tắt)
Hướng dẫn quy trình triển khai & Chi phí
- Yêu cầu môi trường & Hệ thống:
- Máy tính trạm/nhúng: Intel Core i5 thế hệ 8 trở lên hoặc tương đương, RAM tối thiểu 8GB, 2 cổng USB khả dụng, chạy hệ điều hành Windows 10/11 hoặc Ubuntu 20.04 LTS.
- Chuẩn bị thiết bị: Mũ Emotiv Epoc+ được cấp ẩm bằng dung dịch muối sinh lý (0.9% NaCl) trên toàn bộ 16 đầu bọc điện cực; kiểm tra trên giao diện Emotiv Pro đạt chất lượng tiếp xúc 100% (xanh lục).
- Bảng dự toán kinh phí triển khai mô hình thử nghiệm:
| Hạng mục thiết bị / Linh kiện |
Số lượng |
Đơn giá ước tính (VND) |
Thành tiền (VND) |
| Thiết bị đo điện não Emotiv Epoc+ & Bộ thu USB |
01 bộ |
19.500.000 |
19.500.000 |
| Bản quyền phần mềm Emotiv Pro (Gói học thuật) |
01 license |
Kế thừa phòng Lab |
0 |
| Bo mạch vi điều khiển Arduino Due / Uno R3 |
02 chiếc |
450.000 |
900.000 |
| Mạch điều khiển công suất động cơ L298N / Relay |
03 module |
85.000 |
255.000 |
| Khung mô hình xe lăn điện truyền động 24V DC |
01 hệ |
4.200.000 |
4.200.000 |
| Thiết bị điện gia dụng (Quạt DC, Đèn LED chiếu sáng) |
01 bộ |
350.000 |
350.000 |
| Vật tư phụ (Nguồn xung, dây nối, dung dịch điện cực) |
Trọn gói |
500.000 |
500.000 |
| Tổng dự toán thực hiện |
|
|
25.705.000 VND |
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Hiện tượng khô điện cực (Saline Dehydration): Điện cực dung dịch muối của Emotiv Epoc+ bắt đầu suy giảm độ dẫn sau 45 – 60 phút hoạt động liên tục, đòi hỏi phải bù ẩm định kỳ.
- Nhiễu chuyển động cơ mặt (EMG Artifacts): Cử động cắn răng, nhai hoặc cau mày mạnh tạo ra xung điện thế lớn ở thùy trán, có thể làm biến dạng cửa sổ tín hiệu $701$ mẫu.
- Sự biến thiên giữa các cá thể (Inter-subject Variability): Mặc dù mô hình 1D-CNN tổng quát hóa tốt, biên độ điện thế nháy mắt giữa người có tiền sử cận thị và mắt bình thường có độ lệch từ $15% - 25%$.
Hướng phát triển tiếp theo
- Triển khai mô hình học sâu rút gọn (Quantized TinyML / ONNX Runtime) trực tiếp lên các vi máy tính đơn bo như Raspberry Pi 4 hoặc NVIDIA Jetson Nano để loại bỏ sự phụ thuộc vào máy tính trạm cồng kềnh.
- Tích hợp cảm biến điện cực khô (Dry Electrodes) thế hệ mới nhằm tăng thời gian vận hành liên tục lên $> 8$ giờ mà không cần tra dung dịch dẫn điện.
- Nghiên cứu kết hợp mạng nơ-ron hồi quy kết hợp tích chập (CNN-LSTM / Transformer) để phân tích các mẫu tín hiệu nháy mắt theo chuỗi ngữ cảnh thời gian dài hơn.
Đối tượng hưởng lợi
mindmap
root((Hệ sinh thái BCI Cử động mắt))
Người bệnh & Y tế
Bệnh nhân liệt vận động / ALS
Người phục hồi chức năng sau đột quỵ
Bệnh viện & Trung tâm điều dưỡng
Kỹ sư & Nhà phát triển
Mẫu kiến trúc 1D-CNN chuỗi thời gian
Kỹ thuật tích hợp Emotiv Cortex API
Mạch ghép nối vi điều khiển an toàn
Nhà nghiên cứu Khoa học
Tập dữ liệu chuẩn hóa 5 trạng thái
Phương pháp xử lý tín hiệu EOG/EEG
Cơ sở phát triển BCI đa phương thức
- Bệnh nhân khuyết tật vận động & Viện dưỡng lão: Tăng cường khả năng tự chủ sinh hoạt lên đến 70%, giảm bớt sự phụ thuộc vào điều dưỡng viên trong việc di chuyển cơ bản và điều khiển tiện ích cá nhân.
- Kỹ sư Y sinh & Lập trình viên nhúng: Cung cấp mã nguồn tham khảo hoàn chỉnh từ tầng kết nối WebSocket API đến tầng điều khiển phần cứng vi điều khiển thời gian thực.
- Cộng đồng nghiên cứu BCI: Cung cấp phương pháp tiếp cận phân loại trực tiếp tín hiệu 1D không cần biến đổi Wavelet/Fourier, tiết kiệm 40% tài nguyên tính toán trong các bài toán phân loại chuỗi thời gian y sinh.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để vận hành hệ thống thu nhận và điều khiển là gì?
Hệ thống yêu cầu thiết bị đo Emotiv Epoc+ (hoặc Epoc X) 14 kênh, máy tính cài đặt hệ điều hành Windows 10/11 64-bit, RAM tối thiểu 8GB, cài đặt dịch vụ Emotiv Cortex Service v2.0 trở lên, môi trường Python 3.8+ (hỗ trợ TensorFlow 2.x) và vi điều khiển Arduino Due/Uno kết nối qua cổng USB-Serial.
2. Mô hình phân biệt giữa nháy mắt tự nhiên vô thức và nháy mắt điều khiển chủ động như thế nào?
Nháy mắt tự nhiên (Involuntary blink) có thời gian quá độ rất ngắn ($< 200\text{ ms}$) và biên độ điện áp thấp ($< 1.000,\mu\text{V}$). Trong khi đó, nháy mắt chủ động (Voluntary blink) được huấn luyện có biên độ đột biến từ $4.500,\mu\text{V}$ đến hơn $8.000,\mu\text{V}$ kéo dài qua cửa sổ 701 điểm mẫu ($~5.4\text{s}$). Ngoài ra, lớp dữ liệu mắt nghỉ N được huấn luyện đặc thù để triệt tiêu các dao động biên độ thấp này.
3. Làm thế nào để đảm bảo an toàn tuyệt đối khi điều khiển xe lăn bằng tín hiệu điện não?
Hệ thống thiết lập cơ chế ưu tiên trạng thái an toàn: Khi mô hình dự đoán nhãn N (mắt nghỉ) hoặc khi luồng dữ liệu WebSocket bị gián đoạn quá $500\text{ ms}$, tập lệnh điều khiển lập tức gửi mã S (Stop) về Arduino để ngắt xung PWM cấp cho động cơ, dừng xe ngay lập tức.
4. Chi phí duy trì và bảo dưỡng hệ thống gồm những gì?
Chi phí vận hành chủ yếu là vật tư tiêu hao: Nước muối sinh lý / Gel dẫn điện cho điện cực (~50.000 VND/tháng) và thay thế định kỳ các đệm nỉ điện cực sau 6 – 12 tháng sử dụng (~500.000 VND/bộ).
5. Hệ thống có thể mở rộng để điều khiển thêm các thiết bị khác trong nhà không?
Hoàn toàn khả thi. Thông qua việc phân tầng mã lệnh trên Arduino hoặc kết hợp vi điều khiển ESP32 phát giao thức MQTT qua mạng Wi-Fi nội bộ, tín hiệu phân loại từ Python có thể điều khiển không giới hạn các thiết bị trong mạng lưới Smart Home như tivi, điều hòa không khí, chuông báo khẩn cấp và cửa tự động.
Kết luận
Đồ án tốt nghiệp "Phân tích hoạt động mắt và ứng dụng điều khiển thiết bị sử dụng phần mềm Emotiv Pro" đã giải quyết trọn vẹn chu trình nghiên cứu ứng dụng: từ trích xuất tín hiệu điện sinh học thùy trán, tối ưu hóa kiến trúc Deep Learning 1D-CNN đạt độ chính xác 97.0% cho 5 trạng thái cử động mắt, đến tích hợp điều khiển phần cứng xe lăn điện và thiết bị gia dụng thời gian thực. Kết quả nghiên cứu khẳng định tính khả thi cao của việc ứng dụng công nghệ Giao diện Não - Máy tính chi phí thấp vào việc nâng cao chất lượng cuộc sống cho người khuyết tật vận động, mở ra hướng đi thực tiễn cho các thiết bị y tế thông minh tại Việt Nam.