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

Viêm phổi là bệnh lý nhiễm trùng đường hô hấp dưới cấp tính, có thể xuất hiện ở mọi lứa tuổi nhưng đặc biệt nguy hiểm đối với trẻ em dưới 5 tuổi và người cao tuổi. Bệnh khởi phát khi các túi khí trong phổi (phế nang) bị tổn thương do vi khuẩn, vi-rút hoặc nấm, dẫn đến tích tụ dịch tiết và mủ, cản trở quá trình trao đổi oxy của hệ tuần hoàn. Theo thống kê từ Quỹ Nhi đồng Liên Hiệp Quốc (UNICEF) và các tổ chức y tế quốc tế được trích dẫn trong văn bản, viêm phổi là nguyên nhân truyền nhiễm hàng đầu gây tử vong ở trẻ nhỏ trên phạm vi toàn cầu: riêng năm 2017 đã cướp đi sinh mạng của 808.694 trẻ dưới 5 tuổi (chiếm 15% tổng số ca tử vong ở nhóm tuổi này), và con số tử vong năm 2018 tiếp tục vượt mức 800.000 trẻ. Dù tỷ lệ tử vong trẻ em do viêm phổi đã giảm gần 50% so với năm 2000, căn bệnh này vẫn tạo ra áp lực bệnh tật đặc biệt nặng nề.

Thực tiễn chẩn đoán lâm sàng tại các cơ sở y tế thường xuyên đối mặt với tình trạng quá tải bệnh nhân. Hơn 14 nhóm bệnh lý phổi khác nhau có các triệu chứng ban đầu tương đồng như sốt, ho, khó thở và đau ngực. Trên phim chụp X-quang lồng ngực, việc phân biệt tổn thương viêm phổi thông thường với các tổn thương đường hô hấp khác, cũng như phân định căn nguyên giữa vi khuẩn và vi-rút, đòi hỏi bác sĩ chẩn đoán hình ảnh phải có nhiều năm kinh nghiệm. Nhằm hỗ trợ giảm thiểu sai sót chủ quan và rút ngắn thời gian chẩn đoán, đồ án tốt nghiệp ngành Kỹ thuật Y sinh (Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã triển khai nghiên cứu ứng dụng kỹ thuật thị giác máy tính và học sâu (Deep Learning) vào nhận dạng tự động bệnh viêm phổi ở trẻ em.

Mục tiêu cụ thể của đồ án được xác định gồm 3 nội dung chính:

  1. Xây dựng mô hình học sâu theo kiến trúc U-Net để thực hiện phân đoạn và trích xuất tự động vùng hai lá phổi (trái và phải) từ phim chụp X-quang, loại bỏ các vùng giải phẫu gây nhiễu bên ngoài lồng ngực.
  2. Xây dựng hệ thống mạng nơ-ron tích chập (CNN) phân loại bệnh viêm phổi trên tập dữ liệu đã qua phân đoạn, đạt độ chính xác tối thiểu 85% trên tập huấn luyện (training set) và 75% trên tập kiểm tra (testing set).
  3. Thiết kế giao diện đồ họa người dùng (GUI) thao tác trực quan bằng thư viện PyQt5, tích hợp công nghệ nhận dạng tần số sóng vô tuyến (RFID) cùng cơ sở dữ liệu SQLite để quản lý thông tin bệnh án và kết quả chẩn đoán của từng bệnh nhân nhi.

Nhiệm vụ nghiên cứu được phân chia thành 6 công việc:

  1. Thu thập và tiền xử lý các tập dữ liệu ảnh X-quang lồng ngực chuẩn phục vụ phân đoạn và phân loại.
  2. Thiết kế và huấn luyện mạng U-Net cho bài toán phân đoạn phổi, kết hợp thuật toán xử lý ảnh loại bỏ nhiễu vùng biên.
  3. Thiết kế, cấu hình và huấn luyện các mô hình CNN thực hiện phân loại nhị phân (Có bệnh / Không bệnh) và phân loại 3 lớp (Bình thường / Vi khuẩn / Vi-rút).
  4. Đánh giá định lượng hiệu năng mô hình thông qua ma trận nhầm lẫn (Confusion Matrix), độ chính xác (Accuracy), độ nhạy (Recall/Sensitivity) và độ đặc hiệu (Precision).
  5. Thiết kế phần cứng giao tiếp RFID MFRC522 thông qua vi điều khiển Arduino UNO R3 kết nối máy tính.
  6. Xây dựng hoàn chỉnh phần mềm ứng dụng tích hợp chẩn đoán và quản lý hồ sơ bệnh nhân.

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

  • Đối tượng nghiên cứu: Hình ảnh chụp X-quang lồng ngực hướng trước - sau (AnteroPosterior - AP) của bệnh nhi, cấu trúc giải phẫu khoang phổi, và giải thuật học máy hỗ trợ chẩn đoán y tế.
  • Phạm vi dữ liệu và không gian: Sử dụng các bộ dữ liệu X-quang ngực công cộng bao gồm Montgomery County (Mỹ), Bệnh viện Shenzhen (Trung Quốc) cho bài toán phân đoạn; và bộ dữ liệu Chest X-Ray Images (Pneumonia) thu thập từ Trung tâm Y tế Phụ nữ và Trẻ em Quảng Châu (Trung Quốc) gồm 5.863 ảnh chụp của bệnh nhi từ 1 đến 5 tuổi cho bài toán phân loại. Nghiên cứu không thu thập dữ liệu trực tiếp tại các bệnh viện Việt Nam do giới hạn về an toàn thông tin y tế.
  • Phạm vi thời gian thực hiện: Từ ngày 02/03/2020 đến ngày 04/08/2020.
  • Giới hạn chẩn đoán: Trọng tâm đề tài đặt vào việc nhận diện nhị phân (có bệnh hoặc không có bệnh); nội dung phân biệt viêm phổi do vi-rút hay vi khuẩn được xác định ở mức độ thử nghiệm tham khảo cho các định hướng tiếp theo.

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

Đồ án tổng hợp các cơ sở bệnh học, quang tuyến học, lý thuyết xử lý ảnh số, kiến trúc mạng nơ-ron học sâu, tiêu chuẩn công nghệ và kỹ thuật phần cứng nhúng:

  • Đặc điểm quang tuyến bệnh viêm phổi: Phim X-quang viêm phổi thùy thường thể hiện tổn thương dạng đám mờ thuần nhất, ranh giới rõ hình tam giác (thường ở thùy giữa hoặc nửa dưới phổi phải). Viêm phổi do vi-rút (thường gặp do RSV chiếm 36,5%, Rhinovirus 31,5%, Parainfluenza 14%, Adenovirus 7,5%) thể hiện hình ảnh tổn thương mờ nhạt, ranh giới không rõ ràng, phân bố rải rác ở vùng đáy phổi. Ngược lại, viêm phổi do vi khuẩn (phế cầu Streptococcus pneumoniae, Hib, E. coli) có khoảng 50% trường hợp biểu hiện hình ảnh phổi đông đặc điển hình.
  • Kỹ thuật xử lý ảnh số: Ứng dụng quan hệ lân cận điểm ảnh 4 hướng $N_4(p)$, lân cận chéo $N_p(p)$, lân cận 8 hướng $N_8(p)$ cùng các liên kết 4 và 8 để dò biên và phân tích vùng liên thông. Các kỹ thuật phân đoạn ảnh kinh điển được khảo sát gồm phương pháp phân ngưỡng (Otsu, Entropy, cân bằng lược đồ xám), phân cụm (K-means), phân đoạn dựa trên đồ thị và phát hiện cạnh biên.
  • Mạng nơ-ron tích chập (CNN): Mô hình học sâu gồm các lớp tích chập (Convolutional Layer) với các siêu tham số kích thước bộ lọc ($F$), bước nhảy trượt ($S$), khoảng đệm mức 0 ($P$) xác định kích thước đầu ra theo công thức: $$W_{out} = \frac{W - F + 2P}{S} + 1$$ Theo sau là các lớp gộp (Pooling Layer) dạng Max Pooling hoặc Average Pooling nhằm giảm chiều dữ liệu và hạn chế hiện tượng quá khớp (overfitting); lớp kết nối đầy đủ (Fully Connected Layer); các hàm kích hoạt phi tuyến (Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU); cùng hàm mất mát entropy chéo (Cross-Entropy Loss) tối ưu hóa trọng số qua thuật toán lan truyền ngược.
  • Kiến trúc mạng U-Net: Mạng nơ-ron tích chập chuyên dụng cho phân đoạn ảnh y tế gồm cấu trúc đối xứng hai nhánh: nhánh co rút (Encoder) làm nhiệm vụ trích xuất ngữ cảnh không gian và nhánh mở rộng (Decoder) tái tạo độ phân giải không gian nguyên bản, liên kết với nhau bằng các đường kết nối tắt (Skip Connections) giúp truyền trực tiếp bản đồ đặc trưng chi tiết mà không làm mất thông tin biên.
  • Tiêu chuẩn trí tuệ nhân tạo: Đề tài tham chiếu khung tiếp cận của Ủy ban tiêu chuẩn kỹ thuật chung ISO/IEC JTC 1/SC 42 (thành lập năm 2017), bao gồm các tiêu chuẩn nền tảng ISO/IEC AWI 22989 (thuật ngữ, khái niệm AI) và ISO/IEC AWI 23053 (khuôn khổ hệ thống AI sử dụng học máy), chú trọng đến tính toán cậy, an toàn dữ liệu và tính minh bạch của thuật toán hỗ trợ ra quyết định lâm sàng.
  • Hệ thống RFID và phần cứng: Module RFID MFRC522 hoạt động ở dải tần số cao HF 13,56 MHz, giao tiếp qua chuẩn nối tiếp SPI (tốc độ tối đa 10 Mbit/s), hỗ trợ chuẩn thẻ ISO/IEC 14443 A/MIFARE và NTAG với khoảng cách quét 0 - 60 mm. Vi điều khiển xử lý trung gian là bo mạch Arduino UNO R3 (vi điều khiển 8-bit ATmega328, xung nhịp 16 MHz, điện áp hoạt động 5 VDC).

Phương pháp nghiên cứu thực nghiệm được áp dụng tuần tự:

  1. Phương pháp phân tích - tổng hợp tài liệu chuyên ngành về chẩn đoán hình ảnh lồng ngực và các kiến trúc mạng học sâu.
  2. Phương pháp thực nghiệm mô hình hóa: Huấn luyện mạng U-Net trên 662 ca chụp X-quang của tập dữ liệu Montgomery County và Shenzhen để sinh mặt nạ nhị phân tách phổi; áp dụng giải thuật lọc thành phần liên thông để làm sạch nhiễu biên.
  3. Phương pháp phân loại học sâu: Huấn luyện mạng CNN trên 5.863 ảnh X-quang của tập Guangzhou đã qua phân đoạn và chuẩn hóa kích thước, kiểm thử độ chính xác trên các tập dữ liệu độc lập.
  4. Phương pháp tích hợp hệ thống kỹ thuật: Lập trình phần mềm giao diện bằng Python 3.5, PyQt5, kết nối cơ sở dữ liệu SQLite và truyền thông dữ liệu phần cứng qua cổng COM ảo nối tiếp.

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

Hệ thống được thiết kế theo cấu trúc module khép kín, kết hợp giữa thuật toán thị giác máy tính và thiết bị ngoại vi quản trị bệnh án:

Chu trình xử lý dữ liệu và thuật toán nhận diện

  1. Tiếp nhận ảnh đầu vào: Phim X-quang ngực hướng trước - sau (AP) định dạng JPEG được nạp vào hệ thống và chuẩn hóa về kích thước $512 \times 512 \times 1$.
  2. Phân đoạn vùng phổi bằng U-Net:
    • Nhánh mã hóa (Encoder): Gồm 10 lớp tích chập Conv chia thành 5 tầng, mỗi tầng gồm 2 lớp tích chập sử dụng bộ lọc kích thước $3 \times 3$, bước nhảy $S=1$, đệm $P=1$, theo sau bởi hàm kích hoạt ReLU. Giữa các tầng sử dụng 4 lớp Max-Pooling kích thước $2 \times 2$, bước nhảy $S=2$ để giảm một nửa kích thước không gian sau mỗi tầng.
    • Nhánh giải mã (Decoder): Gồm 4 tầng mở rộng đối xứng. Mỗi tầng bắt đầu bằng một lớp tích chập chuyển vị Up-Convolution kích thước $2 \times 2$ để tăng gấp đôi độ phân giải, kết hợp (nối kênh) với bản đồ đặc trưng được sao chép trực tiếp từ tầng mã hóa đối xứng qua đường kết nối tắt, tiếp tục qua 2 lớp tích chập $3 \times 3$ kèm ReLU. Lớp cuối cùng là lớp tích chập $1 \times 1$ sử dụng hàm kích hoạt Sigmoid để xuất mặt nạ phân đoạn nhị phân.
  3. Hậu xử lý lọc nhiễu: Nhân mặt nạ nhị phân với ảnh X-quang gốc để trích xuất hai lá phổi. Nhằm triệt tiêu các mảng nhiễu giải phẫu còn sót lại xung quanh lồng ngực, giải thuật gán nhãn thành phần liên thông (Connected Component Labeling) được thực thi: hệ thống đếm số lượng điểm ảnh liên kết trong từng vùng độc lập, so sánh với một ngưỡng diện tích định trước và loại bỏ toàn bộ các vùng có kích thước nhỏ hơn ngưỡng để thu được ảnh hai lá phổi hoàn chỉnh.
  4. Phân loại bệnh bằng mạng CNN: Dữ liệu ảnh sạch được đưa vào mạng CNN để thực hiện một trong hai chế độ: "Chẩn đoán thông thường" (phân loại nhị phân: Bình thường / Viêm phổi) và "Chẩn đoán chuyên sâu" (phân loại 3 lớp: Bình thường / Vi khuẩn / Vi-rút). Cấu trúc và trọng số tối ưu sau quá trình huấn luyện được đóng gói thành tệp mô hình để tải trực tiếp khi suy luận.

Thiết kế phần cứng và cơ sở dữ liệu

  • Phần cứng RFID: Module MFRC522 kết nối với bo mạch Arduino UNO R3 qua các chân tín hiệu SPI (SDA, SCK, MOSI, MISO, RST). Khi thẻ định danh MIFARE của bệnh nhi được quét qua đầu đọc, Arduino giải mã UID thẻ và truyền qua cáp USB (chuẩn UART ảo) về phần mềm máy tính.
  • Cơ sở dữ liệu: Thiết kế trên DB Browser for SQLite, lưu trữ bảng thông tin bệnh nhân bao gồm các trường: Mã thẻ UID RFID, Họ và tên, Năm sinh, Giới tính, Địa chỉ, Ngày chụp, Đường dẫn lưu trữ hình ảnh X-quang gốc, và Lịch sử kết quả chẩn đoán.
  • Giao diện người dùng PyQt5: Xây dựng bằng công cụ Qt Designer, bao gồm hai cửa sổ tác vụ chính:
    • Cửa sổ "Dữ liệu bệnh nhân": Cho phép đăng ký thẻ mới, đọc thẻ tự động qua cổng nối tiếp, tra cứu hồ sơ bệnh án theo mã UID, sửa đổi thông tin hành chính và xem kho hình ảnh lưu trữ.
    • Cửa sổ "Hệ thống nhận diện và phân loại bệnh viêm phổi ở trẻ em": Tích hợp các nút chức năng chọn ảnh X-quang, nút "Phân đoạn phổi" để chạy U-Net và lọc nhiễu, nút "Chẩn đoán" hiển thị nhãn dự đoán kèm tỷ lệ xác suất trực tiếp lên màn hình, và nút "Lưu kết quả" tự động ghi nhận chẩn đoán vào hồ sơ bệnh nhân trong SQLite.

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

Chương 1. Tổng quan

Chương 1 mở đầu bằng việc phân tích tính cấp thiết của công tác chăm sóc sức khỏe cộng đồng, chỉ rõ tình trạng quá tải tại các bệnh viện nhi và những khó khăn lâm sàng khi đọc phim X-quang phổi. Tác giả trích dẫn số liệu dịch tễ học toàn cầu về tỷ lệ tử vong do viêm phổi ở trẻ dưới 5 tuổi (hơn 800.000 ca tử vong mỗi năm). Chương này điểm luận các công trình tiền nhiệm trên thế giới, tiêu biểu như nghiên cứu của Trung tâm Y tế Langone (Đại học New York - NYU) năm 2018 ứng dụng Deep Learning chẩn đoán ung thư phổi đạt độ chính xác 83% - 97%; công trình của Sivaramakrishnan Rajaraman và cộng sự (2018) dùng mô hình VGG16 tùy chỉnh đạt độ chính xác 96,2% khi phát hiện bệnh và 93,6% khi phân biệt viêm phổi vi khuẩn - vi-rút; và nghiên cứu của Trường Đại học Trung Sơn (Quảng Châu, Trung Quốc) kết hợp FCN, DCNN và SVM trên 4.513 bệnh nhi đạt độ chính xác $0,8048 \pm 0,0202$ và AUC từ 0,6937 đến 0,8234. Trên cơ sở đó, tác giả xác định mục tiêu nghiên cứu, các nhiệm vụ kỹ thuật, phạm vi giới hạn dữ liệu và bố cục toàn văn đồ án gồm 5 chương.

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

Chương 2 trình bày có hệ thống các nền tảng lý thuyết phục vụ đề tài:

  • Bản chất bệnh học viêm phổi, cơ chế tràn dịch phế nang và dấu hiệu phân biệt viêm phổi do vi-rút và vi khuẩn qua phim chụp X-quang.
  • Cơ sở toán học của xử lý ảnh số: Ma trận điểm ảnh, định nghĩa toán học lân cận 4 hướng $N_4(p)$, lân cận chéo $N_p(p)$, lân cận 8 hướng $N_8(p)$ và quy tắc liên kết mức xám để xác định biên vùng.
  • Khái niệm và phương pháp phân đoạn ảnh: Phân ngưỡng nhị phân, phân cụm K-means, phân đoạn dựa trên biểu đồ lược đồ xám và kỹ thuật phát hiện biên cục bộ.
  • Kiến trúc mạng nơ-ron tích chập (CNN): Cấu tạo chi tiết các lớp Convolution, pooling (max pooling, average pooling), fully connected layer; giải thích cơ chế trường tiếp nhận (receptive field), bước nhảy stride, đệm zero-padding; biểu đồ và công thức toán học của các hàm kích hoạt (Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU) cùng hàm mất mát phân loại.
  • Kiến trúc mạng U-Net: Nguyên lý hoạt động của cấu trúc mã hóa - giải mã, cơ chế ghép nối bản đồ đặc trưng đối xứng qua skip-connection để bảo toàn thông tin biên giải phẫu.
  • Tiêu chuẩn hóa AI: Tổng quan về hoạt động của ban kỹ thuật quốc tế ISO/IEC JTC 1/SC 42 và các dự thảo tiêu chuẩn ISO/IEC AWI 22989, ISO/IEC AWI 23053.
  • Công nghệ RFID và phần cứng nhúng: Nguyên lý nhận dạng sóng vô tuyến, thông số kỹ thuật module MFRC522 (tần số 13,56 MHz, chuẩn SPI), phân loại thẻ tag (thụ động, chủ động, bán thụ động; thẻ Read Only, WORM, Read-Write) và cấu hình phần cứng bo mạch Arduino UNO R3.

Chương 3. Hệ thống nhận diện và phân loại bệnh viêm phổi ở trẻ em

Chương 3 mô tả chi tiết quy trình thiết kế và hiện thực hóa hệ thống:

  • Sơ đồ khối tổng thể hệ thống nhận diện phân loại và sơ đồ khối hệ thống quản lý dữ liệu bệnh nhân RFID.
  • Chuẩn bị dữ liệu huấn luyện: Sử dụng dữ liệu X-quang Montgomery County (gồm 336 ca bệnh lao và 326 ca bình thường) và bộ dữ liệu Thâm Quyến có mặt nạ giải phẫu chuẩn để huấn luyện U-Net; sử dụng bộ dữ liệu 5.863 ảnh Chest X-Ray Images (Pneumonia) của Trung tâm Y tế Phụ nữ và Trẻ em Quảng Châu cho khối phân loại. Ứng dụng kỹ thuật tăng cường dữ liệu (Data Augmentation) và giãn nở mặt nạ để bao quát ranh giới rìa phổi.
  • Thiết lập kiến trúc mạng U-Net phân đoạn ảnh: Cấu hình 10 lớp tích chập mã hóa với kích thước đầu vào $512 \times 512 \times 1$, kết hợp 4 lớp Max-Pooling $2 \times 2$; cấu hình 4 tầng giải mã với các lớp Up-Convolution $2 \times 2$, liên kết đối xứng và lớp ra sử dụng hàm Sigmoid để tạo mặt nạ nhị phân.
  • Quy trình lọc ảnh và khử nhiễu: Thiết kế lưu đồ thuật toán loại bỏ các mảng ảnh dư thừa ngoài lồng ngực thông qua kỹ thuật gán nhãn vùng liên thông và so sánh ngưỡng diện tích.
  • Cấu hình mô hình huấn luyện CNN phân loại: Thiết lập hai nhánh thử nghiệm gồm mô hình phân loại nhị phân (Có bệnh / Không bệnh) và mô hình phân loại đa lớp (Bình thường / Vi khuẩn / Vi-rút).
  • Phương pháp đánh giá mô hình: Ứng dụng ma trận nhầm lẫn (Confusion Matrix) với các chỉ số Dương tính thật (TP), Âm tính thật (TN), Dương tính giả (FP), Âm tính giả (FN) để tính toán độ chính xác (Accuracy), độ nhạy (Recall), độ đặc hiệu (Precision).
  • Thiết kế phần mềm và giao diện: Sử dụng Qt Designer tạo dựng các widget điều khiển; kết nối cơ sở dữ liệu bệnh nhân thông qua DB Browser for SQLite; cấu hình giao tiếp nối tiếp giữa vi điều khiển Arduino UNO R3 và module đọc thẻ RC522 theo chuẩn SPI.

Chương 4. Kết quả, nhận xét và đánh giá

Chương 4 công bố toàn bộ dữ liệu thực nghiệm thu được từ quá trình kiểm thử hệ thống:

  • Kết quả phân đoạn phổi: Mạng U-Net tách thành công hai lá phổi từ ảnh X-quang lồng ngực ban đầu. Sau khi qua giải thuật lọc nhiễu vùng liên thông, các mảng nhiễu lớn nhỏ xung quanh xương sườn và vùng ngoài phổi bị triệt tiêu rõ rệt, dù vẫn còn một tỷ lệ nhỏ ảnh xuất hiện vùng nhiễu biên sót lại.
  • Hiệu năng phân loại nhị phân (Có bệnh / Không bệnh): Đạt độ chính xác huấn luyện gần 93%. Trên toàn bộ tập kiểm tra độc lập, độ chính xác tổng thể đạt 92,9%.
  • Hiệu năng phân loại 3 lớp (Bình thường / Vi khuẩn / Vi-rút): Độ chính xác tổng thể trên toàn tập kiểm tra đạt 81,89%.
  • Thử nghiệm tích hợp hệ thống và giao diện: Kiểm tra thực tế bằng bộ đọc thẻ RFID và giao diện PyQt5 trên tập mẫu 20 ảnh phổi bình thường và 20 ảnh phổi mắc bệnh viêm phổi; hệ thống hiển thị chính xác kết quả chẩn đoán, trích xuất đúng thông tin cá nhân từ mã UID thẻ và lưu trữ hồ sơ bệnh án ổn định vào cơ sở dữ liệu SQLite.

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

Chương 5 tổng kết mức độ hoàn thành nhiệm vụ nghiên cứu: Hệ thống đã đáp ứng vượt mức các tiêu chí định lượng đề ra ban đầu (độ chính xác kiểm tra nhị phân đạt 92,9% so với chỉ tiêu tối thiểu 75%). Tác giả phân tích các hạn chế cố hữu về mặt dữ liệu và thuật toán, đồng thời vạch ra các định hướng nghiên cứu tiếp theo để nâng cao độ chính xác nhận diện phân loại vi-rút và hoàn thiện phần mềm ứng dụng lâm sàng.

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

Kết quả định lượng của các mô hình học sâu

Hệ thống nhận diện bệnh viêm phổi được kiểm thử độc lập trên tập kiểm tra của bộ dữ liệu Chest X-Ray Images (Pneumonia). Kết quả thống kê chi tiết theo từng phương thức phân loại như sau:

Phương thức chẩn đoán Lớp phân loại (Nhãn) Số lượng ảnh dự đoán đúng Tổng số ảnh kiểm thử Tỷ lệ chính xác theo lớp (%) Độ chính xác tổng thể (%)
Chẩn đoán 2 ngõ ra (Có bệnh / Không bệnh) Phổi bình thường (NORMAL) 293 317 92,42% 92,90%
Mắc bệnh viêm phổi (PNEUMONIA) 796 855 93,10%
Chẩn đoán 3 ngõ ra (Chuyên sâu) Phổi bình thường (NORMAL) 182 234 77,77% 81,89%
Viêm phổi vi khuẩn (BACTERIA) 236 242 97,52%
Viêm phổi vi-rút (VIRUS) 93 148 62,84%

Kết quả thực nghiệm trên mô hình phân loại nhị phân (92,9%) đã vượt xa chỉ tiêu đặt ra ban đầu trong nhiệm vụ đồ án (tối thiểu 85% trên tập train và 75% trên tập test). Đối với bài toán phân loại căn nguyên 3 ngõ ra, khả năng nhận diện viêm phổi do vi khuẩn đạt mức rất cao (97,52%), trong khi nhận diện viêm phổi do vi-rút đạt 62,84% do đặc trưng mờ nhạt và ranh giới không đồng nhất của tổn thương trên phim X-quang.

Kết quả thử nghiệm thực tế giao diện và phần cứng:

  • Thực nghiệm quét thẻ và phân loại trực tiếp trên 40 mẫu bệnh án kiểm thử gồm 20 ca bình thường và 20 ca viêm phổi: Hệ thống giao tiếp thông suốt giữa đầu đọc RFID MFRC522, Arduino UNO R3 và máy tính qua cổng nối tiếp.
  • Hồ sơ bệnh nhân được hiển thị tức thời khi quét thẻ; kết quả suy luận từ ảnh X-quang được tự động cập nhật vào bảng dữ liệu SQLite và cho phép xem lại hình ảnh trong mục lưu trữ chẩn đoán mà không phát sinh xung đột phần mềm.

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

  • Xây dựng thành công quy trình kết hợp hai giai đoạn: Sử dụng mạng U-Net để chuẩn hóa vùng quan tâm (ROI - trích xuất hai lá phổi) nhằm loại trừ tối đa thông tin nhiễu từ các cơ quan lân cận, sau đó mới đưa vào mạng CNN phân loại bệnh, giúp mô hình học sâu hội tụ nhanh hơn.
  • Đề xuất thuật toán hậu xử lý dựa trên phân tích thành phần liên thông để lọc sạch các mảng ảnh dư thừa sau khi phân đoạn bằng U-Net.
  • Hiện thực hóa một giải pháp ứng dụng hoàn chỉnh: Không dừng lại ở việc huấn luyện thuật toán thuần túy trên môi trường mô phỏng (Google Colab / Anaconda), đồ án đã tích hợp mô hình AI vào một phần mềm ứng dụng máy tính có giao diện đồ họa PyQt5 hoàn chỉnh, liên kết phần cứng nhận dạng bệnh nhân qua RFID và hệ quản trị cơ sở dữ liệu SQLite phục vụ công tác quản lý bệnh án.

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

Hạn chế được ghi nhận

  1. Xử lý nhiễu phân đoạn: Dù đã kết hợp mạng U-Net và giải thuật lọc vùng liên thông, một số ảnh X-quang sau phân đoạn vẫn còn sót lại các mảng nhiễu nhỏ bám sát ranh giới sườn phổi, gây ảnh hưởng nhất định đến giai đoạn trích xuất đặc trưng của mạng CNN.
  2. Độ chính xác nhận diện vi-rút còn hạn chế: Tỷ lệ dự đoán chính xác của tập viêm phổi do vi-rút trong chẩn đoán 3 lớp chỉ đạt 62,84% (93/148 ảnh), thấp hơn nhiều so với vi khuẩn (97,52%). Tác giả xác định kết quả phân loại 3 lớp hiện chỉ dừng lại ở mức độ tham khảo.
  3. Tính đại diện của nguồn dữ liệu: Toàn bộ dữ liệu huấn luyện và kiểm thử đều lấy từ các kho dữ liệu mở quốc tế (Montgomery County, Shenzhen, Quảng Châu), chưa được đánh giá và hiệu chỉnh trực tiếp trên các bộ dữ liệu X-quang thực tế thu thập từ các bệnh viện tại Việt Nam.

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

  1. Tối ưu hóa giải thuật phân đoạn: Nghiên cứu các phương pháp lọc nhiễu nâng cao và cải tiến kiến trúc U-Net để bóc tách triệt để vùng hai lá phổi, loại bỏ hoàn toàn các thành phần xương đòn và mô mềm ngoài rìa.
  2. Nâng cao độ chính xác phân loại vi-rút: Áp dụng các kỹ thuật học sâu tiên tiến hơn, tối ưu hóa siêu tham số hoặc cân bằng dữ liệu huấn luyện để cải thiện khả năng phân biệt tổn thương do vi-rút.
  3. Mở rộng cơ sở dữ liệu thực nghiệm: Tiếp cận và thu thập các tập dữ liệu ảnh X-quang phổi tại các cơ sở y tế trong nước nhằm kiểm chứng độ tin cậy của mô hình trên thể trạng và đặc điểm bệnh lý của trẻ em Việt Nam.
  4. Triển khai mạng diện rộng: Nâng cấp hệ thống quản lý bệnh nhân từ cơ sở dữ liệu cục bộ SQLite lên các hệ quản trị mạng (Client-Server), hỗ trợ đồng bộ dữ liệu hồ sơ bệnh án giữa nhiều khoa phòng trong bệnh viện.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo có giá trị thực tiễn đối với:

  • Sinh viên và học viên chuyên ngành Kỹ thuật Y sinh, Kỹ thuật Điện - Điện tử, Công nghệ Thông tin và Khoa học Dữ liệu đang thực hiện các đề tài nghiên cứu liên quan đến thị giác máy tính trong y tế, xử lý ảnh X-quang và hệ thống chẩn đoán hỗ trợ máy tính (CAD).
  • Các nhà phát triển hệ thống nhúng và phần mềm y tế: Cung cấp phương pháp mẫu về việc kết nối phần cứng nhận dạng (RFID MFRC522, vi điều khiển Arduino) với ứng dụng máy tính (Python GUI PyQt5) và cơ sở dữ liệu quan hệ (SQLite).
  • Các nội dung kỹ thuật có giá trị tham khảo cao nhất trong tài liệu:
    • Thiết kế chi tiết từng tầng của kiến trúc U-Net cho bài toán phân đoạn ảnh y tế và phương pháp ghép nối ma trận đặc trưng qua skip-connections (Chương 2 và Chương 3).
    • Thuật toán giảm nhiễu vùng biên sau phân đoạn bằng kỹ thuật phân tích thành phần liên thông (Chương 3).
    • Bảng thống kê định lượng ma trận nhầm lẫn và độ chính xác phân loại nhị phân / phân loại 3 lớp trên tập dữ liệu Chest X-Ray Images (Pneumonia) (Chương 4).

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

Đề tài sử dụng những bộ dữ liệu X-quang nào để huấn luyện hệ thống?

Đề tài sử dụng ba bộ dữ liệu ảnh X-quang ngực:

  1. Bộ dữ liệu Montgomery County (Mỹ) gồm 336 ca bệnh lao và 326 ca bình thường có mặt nạ phân đoạn thủ công.
  2. Bộ dữ liệu Bệnh viện Shenzhen (Trung Quốc). Hai bộ dữ liệu này được dùng để huấn luyện mô hình U-Net phân đoạn phổi.
  3. Bộ dữ liệu Chest X-Ray Images (Pneumonia) thu thập từ Trung tâm Y tế Phụ nữ và Trẻ em Quảng Châu (Trung Quốc) gồm 5.863 ảnh X-quang JPEG của bệnh nhi từ 1 đến 5 tuổi, dùng để huấn luyện và kiểm thử mô hình phân loại bệnh CNN.

Kiến trúc U-Net trong đề tài được thiết kế với cấu hình cụ thể như thế nào?

Kiến trúc U-Net gồm hai phần đối xứng xử lý ảnh đầu vào kích thước $512 \times 512 \times 1$:

  • Nhánh mã hóa: Gồm 10 lớp tích chập Conv chia làm 5 tầng (mỗi tầng 2 lớp tích chập $3 \times 3$, stride 1, padding 1, hàm ReLU), kết hợp 4 lớp Max-Pooling $2 \times 2$ có stride 2 để giảm mẫu không gian.
  • Nhánh giải mã: Gồm 4 tầng mở rộng, mỗi tầng gồm 1 lớp Up-Convolution $2 \times 2$, ghép kênh đặc trưng sao chép từ nhánh mã hóa qua skip-connection, tiếp theo là 2 lớp tích chập $3 \times 3$ kèm ReLU. Lớp cuối cùng là tích chập $1 \times 1$ với hàm kích hoạt Sigmoid để xuất mặt nạ phân đoạn nhị phân.

Hiệu năng phân loại bệnh viêm phổi đạt được chính xác là bao nhiêu?

Trên tập kiểm tra độc lập của bộ dữ liệu Chest X-Ray Images (Pneumonia):

  • Mô hình phân loại 2 ngõ ra (Có bệnh / Không bệnh) đạt độ chính xác tổng thể 92,9% (trong đó tập Bình thường đoán đúng 293/317 ảnh - 92,42%; tập Viêm phổi đoán đúng 796/855 ảnh - 93,10%).
  • Mô hình phân loại 3 ngõ ra (Chuyên sâu) đạt độ chính xác tổng thể 81,89% (trong đó tập Bình thường đoán đúng 182/234 ảnh - 77,77%; tập Viêm phổi vi khuẩn đoán đúng 236/242 ảnh - 97,52%; tập Viêm phổi vi-rút đoán đúng 93/148 ảnh - 62,84%).

Phần cứng RFID trong đề tài gồm những linh kiện gì và giữ vai trò gì trong hệ thống?

Phần cứng RFID bao gồm module đọc thẻ RFID MFRC522 (tần số 13,56 MHz, giao tiếp SPI) kết nối với bo mạch vi điều khiển Arduino UNO R3 (chip ATmega328, xung nhịp 16 MHz). Module này có nhiệm vụ quét mã số UID từ thẻ RFID MIFARE phát cho mỗi bệnh nhân, truyền qua cổng USB nối tiếp về máy tính để phần mềm PyQt5 tự động truy xuất hồ sơ bệnh án tương ứng trong cơ sở dữ liệu SQLite, giúp liên kết kết quả chẩn đoán ảnh X-quang với thông tin người bệnh.

Tại sao cần phải thực hiện bước phân đoạn phổi trước khi đưa ảnh vào mạng phân loại CNN?

Việc phân đoạn bằng U-Net nhằm cô lập và chỉ giữ lại cấu trúc hai lá phổi, loại bỏ toàn bộ các vùng giải phẫu xung quanh lồng ngực như xương sườn ngoài, mô mềm, cơ hoành, ổ bụng và các ký hiệu quang tuyến trên phim. Việc loại bỏ các thành phần gây nhiễu này giúp dữ liệu đầu vào của mạng CNN đồng nhất hơn, thúc đẩy quá trình học sâu hội tụ nhanh hơn và giảm thiểu hiện tượng học sai các đặc trưng ngoài phổi.

Kết luận

Đồ án tốt nghiệp "Ứng dụng xử lý ảnh và AI để nhận biết bệnh viêm phổi ở trẻ em" đã giải quyết trọn vẹn bài toán xây dựng hệ thống chẩn đoán hỗ trợ máy tính thông qua việc kết hợp mạng U-Net phân đoạn vùng phổi và mạng CNN phân loại bệnh. Hệ thống đạt độ chính xác 92,9% trong phân loại nhị phân và 81,89% trong phân loại căn nguyên vi khuẩn - vi-rút trên tập dữ liệu X-quang thực nghiệm của bệnh nhi. Việc tích hợp thành công phần cứng quét mã RFID MFRC522, bo mạch Arduino UNO R3 và giao diện PyQt5 kết nối cơ sở dữ liệu SQLite đã tạo nên một giải pháp ứng dụng có tính đồng bộ cao, đáp ứng đầy đủ các yêu cầu kỹ thuật đặt ra và định hình cơ sở vững chắc cho các nghiên cứu ứng dụng lâm sàng tiếp theo.