Bối cảnh và vấn đề nghiên cứu
Bệnh lý tim mạch hiện là một trong những gánh nặng y tế hàng đầu đối với xã hội toàn cầu, gây ra tỷ lệ tử vong và tàn phế cao. Theo ước tính từ Tổ chức Y tế Thế giới (WHO), mỗi năm có khoảng 17,5 triệu người tử vong do các bệnh liên quan đến tim mạch, kéo theo chi phí chăm sóc và điều trị lên tới hàng trăm tỷ USD mỗi năm. Trong nhóm các bệnh tim mạch, rối loạn nhịp tim là bệnh lý nguy hiểm do sự biến đổi bất thường về tốc độ, tính đều đặn, vị trí xuất phát hoặc quá trình dẫn truyền của xung động điện trong tim.
Rối loạn nhịp tim được chia thành hai nhóm chính:
- Nhóm thứ nhất gồm các tình trạng đe dọa trực tiếp đến tính mạng như rung tâm thất và nhịp nhanh thất, đòi hỏi can thiệp cấp cứu tức thì bằng máy khử rung tim. Nhóm này đã được nhiều mô hình trước đây phát hiện với độ nhạy và độ đặc hiệu cao.
- Nhóm thứ hai gồm các dạng loạn nhịp không gây tử vong ngay lập tức nhưng cần được theo dõi và điều trị liên tục để ngăn ngừa biến chứng nguy hiểm.
Trên thực tế lâm sàng, nhiều dạng loạn nhịp đòi hỏi bác sĩ phải theo dõi tín hiệu điện tâm đồ (ECG) liên tục từ 24 giờ cho đến 1 tuần (ghi điện tim Holter). Việc phân tích thủ công lượng dữ liệu tín hiệu kéo dài này tiêu tốn nhiều thời gian, công sức và phụ thuộc lớn vào kinh nghiệm chủ quan của người đọc. Do đó, việc xây dựng một hệ thống phân loại nhịp tim tự động nhằm hỗ trợ chẩn đoán y khoa là yêu cầu cấp thiết.
Nhiều nghiên cứu trước đây đã tiếp cận bài toán phân loại nhịp tim tự động bằng cách sử dụng các đặc trưng riêng lẻ như hình thái ECG, khoảng nhịp tim, đặc trưng miền tần số, đặc trưng tích lũy bậc cao, phép khai triển Karhunen – Loeve hay các đa thức ẩn; kết hợp với các giải thuật như phân biệt tuyến tính, mạng nơ-ron truyền thẳng (MLP), mạng tự tổ chức (SOM) hoặc lượng tử hóa vector học tập (LVQ). Tuy nhiên, các giải pháp này còn hạn chế do chưa kết hợp đa dạng các miền đặc trưng và chưa tối ưu hóa để triển khai trên các thiết bị phần cứng nhúng chi phí thấp.
Đề tài "Phân loại bệnh tim từ tín hiệu điện tâm đồ sử dụng kit Raspberry Pi" được thực hiện nhằm giải quyết bài toán trên bằng cách nghiên cứu kết hợp nhiều nhóm đặc trưng tín hiệu, ứng dụng thuật toán học máy Support Vector Machine (SVM) trên ngôn ngữ Python và triển khai trực tiếp trên kit máy tính nhúng Raspberry Pi 3.
Mục tiêu nghiên cứu:
Thiết kế bộ phân loại nhịp tim tự động từ tín hiệu điện tâm đồ ECG sử dụng thuật toán SVM trên nền tảng ngôn ngữ Python, chạy thực nghiệm trên phần cứng Raspberry Pi, tạo tiền đề kỹ thuật cho việc phát triển các thiết bị y tế nhúng thương mại hóa phục vụ theo dõi sức khỏe tim mạch.
Nhiệm vụ nghiên cứu (gồm 10 nội dung thực hiện):
- Tìm hiểu về kit Raspberry Pi, bệnh lý rối loạn nhịp tim và các đặc trưng liên quan đến bệnh.
- Tìm hiểu về các mô hình Support Vector Machine (SVM) và lựa chọn mô hình phù hợp.
- Tìm hiểu các phương pháp trích xuất đặc trưng tín hiệu ECG.
- Tính toán và xác định các thông số kỹ thuật cho mô hình SVM.
- Huấn luyện mô hình SVM trên tập dữ liệu chuẩn.
- Kiểm tra và đánh giá độ chính xác của mô hình SVM.
- Viết chương trình chẩn đoán bệnh tim hoàn chỉnh: ngõ vào cho phép nhập mã số bệnh nhân, ngõ ra hiển thị kết quả phân loại nhịp tim.
- Chỉnh sửa và khắc phục các lỗi phát sinh trong quá trình vận hành hệ thống.
- Viết báo cáo luận văn tốt nghiệp.
- Bảo vệ luận văn tốt nghiệp trước hội đồng chuyên môn.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Tín hiệu điện tâm đồ (ECG) số hóa, các thuật toán xử lý tín hiệu số, giải thuật phân loại SVM và phần cứng máy tính nhúng Raspberry Pi.
- Phạm vi dữ liệu: Cơ sở dữ liệu tín hiệu điện tâm đồ chuẩn quốc tế PhysioNet (tập dữ liệu MIT-BIH Arrhythmia Database), được chuyển đổi sang chuẩn phân loại của Hiệp hội vì sự tiến bộ của thiết bị y tế (AAMI).
- Phạm vi phần cứng và công nghệ: Kit Raspberry Pi 3 chạy hệ điều hành nhân Linux (Raspbian), ngôn ngữ lập trình Python và môi trường phát triển IDLE.
- Thời gian và địa điểm thực hiện: Từ ngày 16/04/2018 đến ngày 05/07/2018 tại Bộ môn Điện tử Công nghiệp – Y sinh, Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Cơ sở lý thuyết và phương pháp
Cơ sở sinh lý học tim và tín hiệu điện tâm đồ (ECG)
- Cấu tạo và hoạt động điện học của tim: Tim người gồm 4 buồng (tâm nhĩ trái, tâm nhĩ phải, tâm thất trái, tâm thất phải). Hệ thống tự phát và dẫn truyền xung động điện của tim bao gồm:
- Nút xoang nhĩ (SAN): Đóng vai trò tạo nhịp chủ đạo với tần số phát xung tự nhiên khoảng 120 lần/phút.
- Nút nhĩ thất (AVN): Phát xung với nhịp khoảng 50–60 lần/phút.
- Bó His và mạng sợi Purkinje: Phân nhánh chạy trong cơ tâm thất, phát xung với tần số 30–40 lần/phút.
- Chu chuyển tim kéo dài trung bình 0,8 giây, gồm 3 giai đoạn: Tâm nhĩ thu (0,1 giây), Tâm thất thu (0,3 giây gồm thời kỳ tăng áp 0,05 giây và thời kỳ tống máu 0,25 giây), Tâm trương toàn bộ (0,4 giây).
- Hệ thống chuyển đạo ECG: Ghi nhận chênh lệch điện thế sinh học bề mặt (cỡ mV) qua 12 chuyển đạo tiêu chuẩn:
- 3 chuyển đạo song cực chi (D1, D2, D3) theo tam giác Einthoven.
- 3 chuyển đạo đơn cực chi tăng cường (aVR, aVL, aVF) sử dụng điện cực trung tính qua cầu trở 5000 $\Omega$.
- 6 chuyển đạo trước tim (V1 đến V6) phản ánh biến đổi điện thế của thất phải và thất trái.
- Đặc điểm các thành phần sóng ECG:
- Sóng P: Biểu thị quá trình khử cực hai tâm nhĩ, biên độ bình thường $< 0,2\text{ mV}$ (dưới 2 mm), thời gian $< 0,1\text{ s}$.
- Phức bộ QRS: Khử cực hai tâm thất, gồm sóng Q âm đầu tiên, sóng R dương cao nhọn và sóng S âm theo sau; thời gian kéo dài bình thường từ $0,06\text{ s}$ đến $0,1\text{ s}$.
- Sóng T: Biểu thị quá trình tái cực muộn của tâm thất.
- Sóng U: Sóng nhỏ xuất hiện sau sóng T, phản ánh quá trình tái cực chậm của mạng Purkinje hoặc tế bào cơ tim vùng giữa (M-cells).
- Khoảng PQ (hoặc PR): Thời gian dẫn truyền nhĩ - thất (bình thường $0,12 - 0,20\text{ s}$).
- Đoạn ST: Giai đoạn tái cực thất sớm, rất quan trọng trong chẩn đoán thiếu máu và nhồi máu cơ tim (tiêu chuẩn bệnh lý khi chênh lệch $> 1\text{ mm}$ ở chuyển đạo chi hoặc $> 2\text{ mm}$ ở chuyển đạo trước ngực).
- Đoạn QT: Thời gian tâm thu điện học của tâm thất.
Lý thuyết mô hình máy học Support Vector Machine (SVM)
SVM là giải thuật học máy có giám sát dựa trên nguyên lý tối thiểu hóa rủi ro cấu trúc (Structural Risk Minimization - Vapnik và Chervonenkis, 1995), hướng đến việc cực đại hóa khoảng cách biên (margin) giữa các lớp dữ liệu để giảm thiểu sai số kiểm thử (test error).
- SVM biên cứng (Hard-margin SVM): Áp dụng cho tập dữ liệu phân tách tuyến tính hoàn hảo. Siêu phẳng phân cách có phương trình $w^T x + b = 0$. Khoảng cách biên tối ưu được xác định qua bài toán quy hoạch lồi:
$$\min_{w, b} \frac{1}{2} |w|_2^2 \quad \text{với ràng buộc} \quad y_n(w^T x_n + b) \ge 1, \quad \forall n=1,\dots,N$$
- SVM biên mềm (Soft-margin SVM): Áp dụng khi dữ liệu có nhiễu hoặc gần phân biệt tuyến tính. Đề tài đưa vào biến bù (slack variable) $\xi_n \ge 0$ đo mức độ vi phạm biên và tham số phạt $C > 0$ để cân đối giữa độ rộng của biên và mức độ chấp nhận lỗi:
$$\min_{w, b, \xi} \frac{1}{2} |w|2^2 + C \sum{n=1}^N \xi_n \quad \text{với ràng buộc} \quad y_n(w^T x_n + b) \ge 1 - \xi_n, \quad \xi_n \ge 0$$
- Kernel SVM: Giải quyết bài toán phân loại phi tuyến bằng cách sử dụng hàm ánh xạ $\Phi(x)$ chuyển dữ liệu sang không gian đặc trưng nhiều chiều hơn. Biểu thức tích vô hướng được thay thế bởi hàm hạt nhân (Kernel function) $k(x_n, x_m) = \Phi(x_n)^T \Phi(x_m)$. Đề tài xem xét các dạng kernel:
- Tuyến tính (Linear): $k(x, z) = x^T z$
- Đa thức (Polynomial): $k(x, z) = (\gamma x^T z + r)^d$
- Radial Basis Function (RBF / Gaussian): $k(x, z) = \exp(-\gamma |x - z|^2)$
- Sigmoid: $k(x, z) = \tanh(\gamma x^T z + r)$
- Chiến lược phân loại đa lớp (Multi-class Classification): Mở rộng từ phân loại nhị phân sang đa lớp thông qua các phương pháp:
- One-vs-One (OvO): Xây dựng $N(N-1)/2$ bộ phân loại nhị phân cho từng cặp lớp và sử dụng cơ chế bỏ phiếu đa số (major voting).
- One-vs-Rest (OvR / One-vs-All): Xây dựng $N$ bộ phân loại tương ứng với từng lớp đối với phần còn lại.
- Phân tầng (Hierarchical) và Mã hóa nhị phân (Binary Coding).
Phương pháp xử lý tín hiệu và trích xuất đặc trưng
- Tiền xử lý khử nhiễu: Tín hiệu ECG thô được lọc khử hiện tượng trôi đường đẳng điện (baseline wander) bằng cách kết hợp hai bộ lọc trung vị liên tiếp (bộ lọc trung vị bậc 1 và bậc 2).
- Phân đoạn nhịp tim: Xác định vị trí đỉnh sóng R và cắt các đoạn cửa sổ tín hiệu xung quanh đỉnh R để đại diện cho từng nhịp tim đơn lẻ.
- Trích xuất đặc trưng:
- Đặc trưng khoảng thời gian: Tính toán khoảng cách giữa các đỉnh sóng R liền kề, bao gồm khoảng $pre\text{-}RR$ (khoảng cách từ đỉnh R hiện tại đến đỉnh R liền trước) và $post\text{-}RR$ (khoảng cách từ đỉnh R hiện tại đến đỉnh R liền sau).
- Biến đổi Wavelet rời rạc (DWT): Sử dụng họ Wavelet Daubechies bậc 4 (db4) để phân tích tín hiệu ECG thành các dải tần số khác nhau và trích xuất các hệ số xấp xỉ (approximation coefficients) mô tả dạng hình thái sóng.
- Biến đổi Fourier thời gian ngắn (STFT): Phân tích đặc trưng tín hiệu trong miền thời gian - tần số đồng thời thông qua các hàm cửa sổ (cửa sổ hình chữ nhật, cửa sổ Gaussian).
Kỹ thuật chuẩn hóa dữ liệu
Để tránh hiện tượng các thuộc tính có biên độ lớn lấn át các thuộc tính nhỏ, đề tài khảo sát 3 phương pháp chuẩn hóa vector đặc trưng:
- Chuẩn hóa Min-Max: Đưa dữ liệu về đoạn $[0, 1]$ qua công thức $v' = \frac{v - \min_A}{\max_A - \min_A}$.
- Chuẩn hóa Z-score: Dựa trên giá trị trung bình $\mu_A$ và độ lệch chuẩn $\sigma_A$ theo công thức $v' = \frac{v - \mu_A}{\sigma_A}$.
- Chuẩn hóa theo tỉ lệ thập phân (Decimal scaling): $v' = \frac{v}{10^j}$ (với $j$ là số nguyên nhỏ nhất sao cho $\max(|v'|) < 1$).
Nguồn dữ liệu và phương pháp đánh giá
- Nguồn dữ liệu: Bộ cơ sở dữ liệu nhịp tim MIT-BIH Arrhythmia Database từ nguồn PhysioNet. Nhãn các loại nhịp tim theo chuẩn MIT-BIH được chuyển đổi và nhóm lại thành các lớp bệnh học theo chuẩn của Hiệp hội vì sự tiến bộ của thiết bị y tế (AAMI).
- Phương pháp đánh giá: Đánh giá hiệu năng trên tập kiểm thử (test data) độc lập thông qua:
- Độ chính xác toàn thể (Accuracy): Tỷ lệ số mẫu dự đoán đúng trên tổng số mẫu kiểm thử.
- Ma trận nhầm lẫn (Confusion Matrix): Dạng chưa chuẩn hóa và dạng chuẩn hóa theo tỷ lệ phần trăm.
- Độ nhạy (Recall) và Độ chuẩn xác (Precision) cho từng lớp nhịp tim.
Thiết kế và triển khai hệ thống
Hệ thống phân loại bệnh tim từ tín hiệu ECG được thiết kế theo cấu trúc mô-đun kết hợp giữa phần cứng nhúng và phần mềm xử lý thông minh:
Cấu hình phần cứng máy tính nhúng
Hệ thống sử dụng kit máy tính đơn bo mạch Raspberry Pi 3. Bảng so sánh cấu hình phần cứng cơ bản giữa các dòng kit của Raspberry Pi:
| Thành phần phần cứng |
Model A |
Model B |
| Hệ vi mạch (SoC) |
Broadcom BCM2835 |
Broadcom BCM2835 |
| Bộ xử lý trung tâm (CPU) |
ARM1176JZF-S 700 MHz |
ARM1176JZF-S 700 MHz |
| Xử lý đồ họa (GPU) |
Broadcom VideoCore IV |
Broadcom VideoCore IV |
| Bộ nhớ RAM (SDRAM) |
256 MB |
512 MB |
| Cổng USB 2.0 |
1 cổng |
2 cổng (Model B+ có 4 cổng) |
| Kết nối mạng Ethernet |
Không tích hợp |
10/100 Mbps (RJ45 qua USB hub) |
| Giao tiếp ngoại vi cấp thấp |
8x GPIO, UART, I2C, SPI |
8x GPIO, UART, I2C, SPI |
| Ngõ ra Video / Audio |
HDMI, RCA Video, Jack 3.5mm |
HDMI, RCA Video, Jack 3.5mm |
| Bộ nhớ lưu trữ |
Khe cắm thẻ SD / MicroSD |
Khe cắm thẻ SD / MicroSD |
| Khối lượng / Kích thước |
45 g / $85{,}60 \times 53{,}98\text{ mm}$ |
45 g / $85{,}60 \times 53{,}98\text{ mm}$ |
Kiến trúc phần mềm và quy trình xử lý
Hệ thống phần mềm được xây dựng bằng ngôn ngữ Python trên nền tảng hệ điều hành Raspbian (nhân Linux Debian), lập trình thông qua môi trường IDLE. Quy trình xử lý tín hiệu bao gồm các khối chức năng liên hoàn:
- Khối đọc dữ liệu: Đọc chuỗi tín hiệu ECG số hóa và tệp ghi chú annotation từ tập dữ liệu MIT-BIH PhysioNet tương ứng với mã số bệnh nhân được nhập vào.
- Khối tiền xử lý: Đưa chuỗi tín hiệu qua hai bộ lọc trung vị nối tiếp để triệt tiêu hoàn toàn độ dốc trôi của đường đẳng điện mà không làm méo dạng phức bộ QRS.
- Khối phân đoạn và trích xuất đặc trưng:
- Xác định đỉnh R, cắt nhịp tim theo độ rộng cửa sổ mẫu tối ưu.
- Tính toán các khoảng biến thiên thời gian $pre\text{-}RR$ và $post\text{-}RR$.
- Thực hiện biến đổi Wavelet Daubechies (db4) để lấy các hệ số xấp xỉ bậc cao.
- Biến đổi STFT để lấy thông tin phổ thời gian - tần số của từng chu kỳ tim.
- Khối chuẩn hóa: Đưa toàn bộ các giá trị đặc trưng về miền số học chuẩn thông qua phương pháp Min-Max / Z-score.
- Khối phân loại SVM: Nạp mô hình đã được huấn luyện tối ưu, thực hiện phân lớp nhịp tim (chiến lược OvO / OvR với hàm nhân RBF).
- Khối giao diện người dùng: Giao diện đồ họa Python trên màn hình Raspberry Pi, cho phép người dùng nhập mã số bệnh nhân, hiển thị tín hiệu ECG trực quan và xuất kết quả chẩn đoán phân loại nhịp tim.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 giới thiệu tổng quan về bối cảnh y tế, tính cấp thiết của việc phát hiện sớm rối loạn nhịp tim và gánh nặng kinh tế do bệnh tim mạch gây ra. Tác giả tổng hợp các công trình nghiên cứu đi trước về phân loại ECG tự động, phân tích ưu nhược điểm của các phương pháp trích xuất đặc trưng truyền thống và các bộ phân lớp máy học. Từ đó, chương xác định mục tiêu thiết kế bộ phân loại nhịp tim tự động bằng SVM trên kit Raspberry Pi, vạch rõ 10 nội dung nghiên cứu thực hiện, giới hạn đề tài và bố cục tổng thể của đồ án.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày toàn diện các nền tảng lý thuyết phục vụ việc xây dựng đề tài:
- Trình bày giải phẫu sinh lý tim, cơ chế phát xung nhịp học (SAN, AVN, Bó His), chu chuyển tim 3 pha và ý nghĩa chẩn đoán y khoa của các thành phần sóng ECG (P, QRS, T, U, khoảng PQ, ST, QT) trên 12 chuyển đạo tiêu chuẩn.
- Khảo sát phần cứng kit máy tính nhúng Raspberry Pi, so sánh cấu hình Model A và Model B, cùng các hệ điều hành hỗ trợ (Raspbian, Arch Linux, Ubuntu...).
- Trình bày tổng quan ngôn ngữ Python, các đặc điểm cú pháp, kiểu dữ liệu, cơ chế thông dịch và các thư viện hỗ trợ tính toán khoa học.
- Trình bày chi tiết toán học giải thuật Support Vector Machine (SVM): bài toán tối ưu biên cứng, bài toán biên mềm với biến bù slack variable và tham số điều hòa $C$, Kernel SVM (Linear, Poly, RBF, Sigmoid) giải quyết bài toán phi tuyến (như bài toán XOR), và 4 chiến lược phân loại đa lớp (One-vs-One, One-vs-Rest, Hierarchical, Binary coding).
- Trình bày các kỹ thuật chuẩn hóa số liệu (Min-Max, Z-score, Decimal scaling) và các phép toán trích xuất đặc trưng tín hiệu số: Biến đổi Wavelet rời rạc (DWT họ Daubechies) và biến đổi Fourier thời gian ngắn (STFT).
- Giới thiệu cấu trúc cơ sở dữ liệu ECG PhysioNet MIT-BIH và bảng quy đổi ký hiệu ghi chú theo chuẩn AAMI.
Chương 3: Tính toán và lựa chọn mô hình
Chương 3 tập trung vào khâu thiết kế kỹ thuật và tính toán tham số cho từng khối trong hệ thống:
- Thiết lập sơ đồ khối tổng thể của mô hình phân loại nhịp tim.
- Thiết kế khối tiền xử lý: Xác định thông số cho hai bộ lọc trung vị để loại bỏ nhiễu trôi nền hiệu quả.
- Thiết kế khối xử lý và trích xuất đặc trưng: Khảo sát lựa chọn kích thước cửa sổ cắt phân đoạn nhịp tim quanh đỉnh R; tính toán các khoảng $pre\text{-}RR$, $post\text{-}RR$; thiết lập bậc phân tích Wavelet rời rạc (chọn loại Wavelet db4) và xác định các khoảng tần số theo từng bậc; thiết lập kích thước cửa sổ cho biến đổi STFT (cửa sổ chữ nhật và Gaussian).
- Thiết kế bộ phân lớp SVM: Lựa chọn hàm hạt nhân RBF, khảo sát thực nghiệm lựa chọn tham số điều hòa phạt $C$, so sánh hiệu năng giữa hai chiến lược phân loại đa lớp One-vs-One (OvO) và One-vs-Rest (OvR).
- Lựa chọn phương pháp chuẩn hóa dữ liệu tối ưu và lựa chọn phần cứng kit Raspberry Pi 3 cùng ngôn ngữ Python cho khâu hiện thực hóa.
Chương 4: Xây dựng mô hình
Chương 4 mô tả quá trình lập trình và hiện thực hóa hệ thống trên phần cứng thực tế:
- Xây dựng các lưu đồ thuật toán chi tiết:
- Lưu đồ chương trình huấn luyện mô hình SVM.
- Lưu đồ giải thuật chương trình nạp và xử lý tập đặc trưng (load features).
- Lưu đồ chương trình đánh giá mô hình bằng tập dữ liệu kiểm thử.
- Lưu đồ giải thuật phân đoạn nhịp tim từ chuỗi tín hiệu liên tục.
- Lưu đồ chương trình chẩn đoán nhịp tim hoàn chỉnh.
- Cài đặt hệ điều hành Raspbian và cấu hình môi trường lập trình IDLE trên kit Raspberry Pi.
- Viết mã nguồn chương trình xử lý tín hiệu, trích xuất đặc trưng, huấn luyện mô hình, kiểm thử đánh giá và thiết kế giao diện tương tác người dùng.
Chương 5: Kết quả - Nhận xét - Đánh giá
Chương 5 trình bày toàn bộ số liệu thực nghiệm thu được từ quá trình kiểm thử mô hình:
- Thống kê chi tiết kết quả phân loại khi sử dụng các đặc trưng riêng lẻ (chỉ dùng hình thái, chỉ dùng khoảng cách RR, chỉ dùng hệ số Wavelet db4, chỉ dùng STFT).
- Đánh giá kết quả của bộ phân loại khi kết hợp đồng thời 2 đặc trưng, 3 đặc trưng và 4 đặc trưng khác nhau với nhau.
- Thống kê ma trận nhầm lẫn (Confusion Matrix) trước và sau chuẩn hóa; so sánh độ chính xác giữa các phương pháp chuẩn hóa (Min-Max vs Z-score) và giữa các giá trị tham số $C$.
- Phân tích hiệu năng phân lớp giữa hai chiến lược OvO và OvR trên các tập dữ liệu bệnh nhân khác nhau từ MIT-BIH.
- Đưa ra các nhận xét, đánh giá khoa học về tương quan giữa độ phức tạp tính toán và độ chính xác đạt được trên kit Raspberry Pi.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết toàn bộ các kết quả đạt được của đồ án so với mục tiêu ban đầu, chỉ ra các mặt đã hoàn thành tốt và những hạn chế còn tồn tại do giới hạn dữ liệu kiểm nghiệm offline, từ đó đề xuất các hướng nghiên cứu mở rộng trong tương lai.
Kết quả và đóng góp
Kết quả nghiên cứu chính
- Đồ án đã xây dựng thành công quy trình xử lý tín hiệu điện tâm đồ hoàn chỉnh trên nền tảng ngôn ngữ Python, thực hiện trích xuất đa đặc trưng kết hợp (hình thái thời gian $pre\text{-}RR$, $post\text{-}RR$, hệ số biến đổi Wavelet Daubechies db4 và biến đổi Fourier thời gian ngắn STFT).
- Triển khai và đánh giá chi tiết mô hình Support Vector Machine (SVM) với hàm nhân RBF trên tập dữ liệu chuẩn quốc tế PhysioNet MIT-BIH Arrhythmia Database (đã chuẩn hóa nhãn sang phân lớp AAMI).
- Khảo sát thực nghiệm toàn diện các thông số ảnh hưởng đến độ chính xác của hệ thống:
- So sánh hiệu năng của các đặc trưng riêng lẻ so với việc kết hợp 2, 3 và 4 nhóm đặc trưng với nhau.
- Khảo sát độ chính xác của mô hình theo từng kích thước cửa sổ cắt nhịp tim.
- So sánh độ chính xác giữa các phương pháp chuẩn hóa dữ liệu (Min-Max, Z-score, Decimal scaling).
- Khảo sát sự thay đổi độ chính xác theo các giá trị tham số phạt $C$ trong SVM biên mềm.
- Đánh giá và so sánh thực nghiệm giữa hai chiến lược phân loại đa lớp One-vs-One (OvO) và One-vs-Rest (OvR).
- Xây dựng thành công chương trình chẩn đoán nhịp tim chạy trực tiếp trên kit máy tính nhúng Raspberry Pi 3 có giao diện người dùng qua môi trường IDLE/Raspbian, cho phép nhập mã bệnh nhân và tự động đưa ra kết quả phân loại nhịp tim tương ứng.
Đóng góp so với các nghiên cứu trước
- Khắc phục hạn chế của các nghiên cứu trước đây vốn chỉ sử dụng một vài đặc trưng đơn lẻ hoặc không kết hợp đa miền đặc trưng (thời gian, tần số, thời gian - tần số, Wavelet).
- Chứng minh tính khả thi của việc tích hợp giải thuật học máy SVM đa lớp lên kit máy tính nhúng Raspberry Pi có cấu hình nhỏ gọn, tiêu thụ ít năng lượng và giá thành thấp, mở ra khả năng thương mại hóa các thiết bị hỗ trợ chẩn đoán y tế tự động tại chỗ.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài
- Hệ thống chỉ mới thực nghiệm kiểm chứng trên dữ liệu số hóa có sẵn từ cơ sở dữ liệu PhysioNet (tập dữ liệu MIT-BIH), chưa được kiểm thử trên nguồn tín hiệu ECG thu thập thời gian thực trực tiếp từ bệnh nhân tại các cơ sở y tế.
- Việc tính toán các phép biến đổi Wavelet và STFT kết hợp với SVM đa lớp trên phần cứng Raspberry Pi có thể bị giới hạn về tốc độ xử lý khi khối lượng mẫu dữ liệu đầu vào tăng lên liên tục trong thời gian thực.
Hướng nghiên cứu tiếp
- Thiết kế và tích hợp phần cứng mạch thu nhận tín hiệu điện tâm đồ thời gian thực (các điện cực dán và mạch khuếch đại, lọc tương tự) kết nối trực tiếp với cổng giao tiếp của Raspberry Pi.
- Tối ưu hóa mã nguồn và giải thuật trích xuất đặc trưng để giảm thời gian tính toán, nâng cao tốc độ phản hồi chẩn đoán trực tiếp trên thiết bị nhúng.
- Mở rộng tập dữ liệu huấn luyện và kiểm nghiệm để nâng cao khả năng phân loại đối với các dạng rối loạn nhịp tim phức tạp và hiếm gặp khác.
Giá trị tham khảo
Đồ án tốt nghiệp là tài liệu tham khảo chuyên môn giá trị cho:
- Sinh viên và học viên chuyên ngành: Kỹ thuật Điện tử Truyền thông, Điện tử Công nghiệp, Kỹ thuật Y sinh (Biomedical Engineering), Khoa học Dữ liệu và Kỹ thuật Máy tính / Hệ thống Nhúng.
- Người nghiên cứu các đề tài tương tự: Các nhà nghiên cứu đang phát triển các thuật toán xử lý tín hiệu y sinh học, ứng dụng học máy (Machine Learning/SVM) trên tín hiệu chuỗi thời gian hoặc xây dựng các hệ thống trí tuệ nhân tạo nhúng (Edge AI/Embedded AI).
- Các phần nội dung đáng tham khảo nhất:
- Phần cơ sở toán học chi tiết về SVM biên cứng, SVM biên mềm, Kernel SVM và các kỹ thuật phân loại đa lớp (Chương 2).
- Quy trình tiền xử lý tín hiệu ECG bằng hai bộ lọc trung vị và phương pháp trích xuất đặc trưng kết hợp giữa khoảng $RR$, biến đổi Wavelet Daubechies (db4) và biến đổi STFT (Chương 2 và Chương 3).
- Cấu trúc hệ thống lưu đồ thuật toán và giải pháp triển khai thuật toán học máy bằng Python trên hệ điều hành Raspbian của kit Raspberry Pi (Chương 3 và Chương 4).
Câu hỏi thường gặp
1. Đề tài sử dụng thuật toán học máy nào để phân loại nhịp tim và tại sao lại chọn thuật toán đó?
Đề tài sử dụng thuật toán Support Vector Machine (SVM) với hàm nhân RBF (Radial Basis Function). SVM được lựa chọn vì đây là phương pháp học máy mạnh dựa trên nguyên tắc tối thiểu hóa rủi ro cấu trúc, cho hiệu quả vượt trội trong việc phân lớp dữ liệu phi tuyến, ít bị quá khớp (overfitting) và có khả năng hoạt động tốt với tập mẫu huấn luyện kích thước vừa phải trên nền tảng phần cứng nhúng.
2. Tín hiệu ECG được tiền xử lý loại bỏ nhiễu trôi đường đẳng điện (baseline wander) bằng phương pháp nào?
Tín hiệu ECG thô được xử lý thông qua hai bộ lọc trung vị nối tiếp nhau (bộ lọc trung vị bậc 1 và bậc 2). Phương pháp này cho phép ước lượng chính xác đường trôi nền và trừ nó khỏi tín hiệu gốc để đưa đường đẳng điện về mức chuẩn mà không làm biến dạng các đỉnh nhọn sóng R cũng như phức bộ QRS.
3. Các đặc trưng nào đã được trích xuất từ tín hiệu điện tâm đồ để đưa vào mô hình SVM?
Hệ thống kết hợp 4 nhóm đặc trưng:
- Đặc trưng hình thái nhịp tim cắt theo cửa sổ mẫu quanh đỉnh sóng R.
- Đặc trưng khoảng thời gian biến thiên nhịp tim gồm $pre\text{-}RR$ (khoảng RR liền trước) và $post\text{-}RR$ (khoảng RR liền sau).
- Đặc trưng miền tần số - thời gian qua các hệ số xấp xỉ của phép biến đổi Wavelet rời rạc (sử dụng họ Daubechies bậc 4 - db4).
- Đặc trưng phổ thời gian - tần số thu được từ phép biến đổi Fourier thời gian ngắn (STFT) với các hàm cửa sổ chữ nhật và Gaussian.
4. Dữ liệu huấn luyện và kiểm thử được lấy từ nguồn nào và chuẩn hóa nhãn bệnh ra sao?
Dữ liệu được trích xuất từ cơ sở dữ liệu chuẩn quốc tế MIT-BIH Arrhythmia Database thuộc nguồn PhysioNet. Toàn bộ các ký hiệu nhãn ghi chú nguyên bản của MIT-BIH được chuyển đổi và nhóm lại thành các lớp bệnh học theo chuẩn phân loại quy định bởi Hiệp hội vì sự tiến bộ của thiết bị y tế (AAMI).
5. Phần cứng và môi trường phần mềm cụ thể được sử dụng để triển khai mô hình là gì?
Phần cứng của hệ thống là kit máy tính nhúng Raspberry Pi 3 (SoC Broadcom BCM2835, kiến trúc ARM). Môi trường phần mềm là hệ điều hành Raspbian (dựa trên nhân Linux), ngôn ngữ lập trình Python và môi trường phát triển tích hợp IDLE.
Kết luận
Đồ án tốt nghiệp "Phân loại bệnh tim từ tín hiệu điện tâm đồ sử dụng kit Raspberry Pi" đã giải quyết thành công bài toán phân loại nhịp tim tự động từ tín hiệu điện tâm đồ thông qua việc kết hợp các kỹ thuật xử lý tín hiệu số (lọc trung vị, khoảng thời gian RR, biến đổi Wavelet db4, biến đổi STFT) và mô hình học máy Support Vector Machine (SVM). Nghiên cứu đã tiến hành khảo sát thực nghiệm toàn diện trên cơ sở dữ liệu chuẩn PhysioNet MIT-BIH, chứng minh tính hiệu quả của việc kết hợp đa đặc trưng và tối ưu hóa các tham số phân lớp. Toàn bộ hệ thống được lập trình hoàn chỉnh bằng ngôn ngữ Python và vận hành trực tiếp trên kit máy tính nhúng Raspberry Pi 3, tạo nền tảng thực tiễn cho việc phát triển các thiết bị y tế nhúng phục vụ theo dõi và hỗ trợ chẩn đoán bệnh tim mạch.