Bối cảnh và vấn đề nghiên cứu
Đại dịch COVID-19 do chủng vi-rút SARS-CoV-2 gây ra bùng phát từ tháng 12 năm 2019 tại Vũ Hán (Trung Quốc) và nhanh chóng lan rộng toàn cầu, dẫn đến các cuộc khủng hoảng nghiêm trọng về y tế, xã hội và kinh tế. Tính đến thời điểm đầu năm 2021, thế giới đã ghi nhận hơn 84 triệu ca nhiễm và gần 2 triệu trường hợp tử vong trên 218 quốc gia và vùng lãnh thổ. Tại Việt Nam, ca bệnh đầu tiên được ghi nhận vào ngày 23 tháng 01 năm 2020 tại Bệnh viện Chợ Rẫy (TP. Hồ Chí Minh). Vi-rút tấn công chủ yếu vào hệ hô hấp, làm tổn thương phổi và có thể gây suy hô hấp cấp tính tiến triển (ARDS). Bên cạnh kỹ thuật xét nghiệm khẳng định căn nguyên bằng real-time RT-PCR, việc sàng lọc tổn thương phổi qua chẩn đoán hình ảnh như chụp cắt lớp vi tính (CT) và X-quang ngực đóng vai trò then chốt trong phân loại lâm sàng ban đầu. Tuy nhiên, lượng bệnh nhân tăng nhanh tạo ra áp lực lớn lên đội ngũ bác sĩ chẩn đoán hình ảnh, đòi hỏi các giải pháp tự động hóa hỗ trợ sàng lọc sơ bộ.
Khóa luận xác định hai mục tiêu và nhiệm vụ nghiên cứu cụ thể:
- Thực hiện khảo sát, đánh giá thực nghiệm các phương pháp máy học và các kỹ thuật rút trích đặc trưng hình ảnh cho bài toán phân loại ba trạng thái bệnh lý trên ảnh X-quang phổi: COVID-19, viêm phổi thông thường (Pneumonia) và bình thường (Normal).
- Xây dựng một ứng dụng phần mềm demo trên nền tảng web nhằm trực quan hóa kết quả phân loại, hỗ trợ bác sĩ trong quá trình sàng lọc lâm sàng và quản lý thông tin chẩn đoán hình ảnh.
Đối tượng nghiên cứu của đề tài là các hình ảnh chụp X-quang ngực được thu thập và chọn lọc từ các kho dữ liệu y khoa mở trên Kaggle và các nghiên cứu khoa học công bố trước đó, đã qua kiểm định nhãn bởi các chuyên gia y tế. Phạm vi nghiên cứu tập trung vào việc thử nghiệm, so sánh độ chính xác của các mô hình học máy truyền thống kết hợp trích xuất đặc trưng từ mạng nơ-ron tích chập (CNN) trên tập dữ liệu tổng hợp ở quy mô thực nghiệm phòng thí nghiệm. Toàn bộ nghiên cứu và triển khai được thực hiện tại phòng E10.8, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh trong khoảng thời gian từ tháng 09 năm 2020 đến tháng 02 năm 2021.
Cơ sở lý thuyết và phương pháp tiếp cận
Đề tài tiếp cận bài toán phân loại hình ảnh đa lớp (Multi-class Classification) có giám sát (Supervised Learning), xử lý bài toán gán nhãn 3 lớp không cân bằng (Imbalanced Classification) gồm: COVID-19, PNEUMONIA và NORMAL. Các khung lý thuyết và mô hình kỹ thuật được tác giả sử dụng bao gồm:
- Phương pháp phân lớp dữ liệu: Khóa luận khảo sát 3 thuật toán học máy phổ biến:
- k-Nearest Neighbors (k-NN): Thuật toán phân lớp dạng "lười học" (lazy learning), phân loại mẫu mới dựa trên sự tương đồng khoảng cách với $k$ điểm láng giềng gần nhất. Tác giả khảo sát hai hàm khoảng cách: Khoảng cách Cosine và khoảng cách Minkowski (với các trường hợp $p=1$ tương ứng Manhattan, $p=2$ tương ứng Euclidean).
- Support Vector Machines (SVM): Xây dựng siêu phẳng (hyperplane) tối ưu trong không gian nhiều chiều nhằm tối đa hóa khoảng cách biên (margin) giữa các lớp dữ liệu.
- Logistic Regression: Thuật toán phân loại sử dụng hàm sigmoid biến đổi kết hợp tuyến tính thành giá trị xác suất từ 0 đến 1, áp dụng chiến lược đa lớp One-vs-Rest hoặc One-vs-One.
- Phương pháp biểu diễn và rút trích đặc trưng hình ảnh:
- Đặc trưng ảnh trực tiếp (Raw Feature Vector): Chuyển đổi dữ liệu ảnh thành vector phẳng từ biểu diễn thu nhỏ của ma trận điểm ảnh.
- Đặc trưng kết cấu Haralick: Trích xuất từ Ma trận đồng xuất hiện mức xám (Gray-Level Co-occurrence Matrix - GLCM) sau khi lượng tử hóa mức xám của ảnh. Tác giả sử dụng giá trị trung bình của 4 đặc trưng kết cấu tiêu biểu: Năng lượng (Energy), Độ tương phản (Contrast), Độ đồng nhất (Homogeneity) và Độ tương quan (Correlation).
- Đặc trưng học sâu từ mạng CNN tiền huấn luyện (Deep Transfer Learning Features): Sử dụng các tầng tích chập của mô hình VGG16 (16 lớp, kernel $3\times3$) và Inception-ResNet-V2 (164 lớp, kích thước đầu vào $299\times299$, kết hợp khối Inception với liên kết residual) đã được huấn luyện trên tập ImageNet 1.000 lớp để làm bộ rút trích đặc trưng.
Nguồn dữ liệu được tổng hợp từ 4 tập dữ liệu công khai trên Kaggle: COVID-19 Radiography Database, Covid-19 Image Dataset, COVID-19 Patients Lungs X Ray Images 10000 và COVID19 High quality images.
Thiết kế và triển khai hệ thống phần mềm demo
Để hiện thực hóa kết quả nghiên cứu thành công cụ hỗ trợ thực tế, tác giả đã tiến hành phân tích và phát triển một ứng dụng demo theo quy trình kỹ thuật phần mềm hoàn chỉnh:
- Kiến trúc hệ thống và công nghệ: Hệ thống được xây dựng theo mô hình phân tầng Client-Server. Phía Backend sử dụng ngôn ngữ Python và framework Flask để tiếp nhận yêu cầu, xử lý tiền xử lý ảnh và chạy mô hình phân loại đã được lưu vết. Phía Frontend xây dựng giao diện người dùng bằng thư viện ReactJS với luồng dữ liệu một chiều (Unidirectional Data Flow), hỗ trợ hiển thị danh sách và xử lý ảnh tương tác trực quan.
- Thiết kế mô hình hóa UML:
- Biểu đồ Use Case: Phân định các tác vụ chính gồm Đăng nhập, Quản lý hồ sơ bệnh nhân (Xem danh sách, Thêm mới bệnh nhân), Tải lên ảnh X-quang, Thực hiện chẩn đoán tự động và Hiệu chỉnh/xem chi tiết ảnh.
- Biểu đồ Tuần tự (Sequence Diagram) và Hoạt động (Activity Diagram): Đặc tả chi tiết luồng xử lý dữ liệu từ giao diện đến server khi thêm bệnh nhân mới và khi hệ thống trả về kết quả dự đoán nhãn bệnh từ mô hình học máy.
- Biểu đồ Lớp (Class Diagram): Thiết kế các thực thể cốt lõi bao gồm lớp
Patient (lưu trữ mã bệnh nhân, họ tên, tuổi, giới tính, thông tin liên hệ) và lớp Test (lưu mã xét nghiệm, đường dẫn ảnh X-quang, ngày chụp, kết quả dự đoán và ghi chú của bác sĩ).
- Các phân hệ chức năng giao diện:
- Màn hình danh sách bệnh nhân: Cung cấp công cụ tìm kiếm, lọc theo các trường thông tin hành chính và trạng thái bệnh án.
- Màn hình thêm mới bệnh nhân: Cho phép nhập thông tin nhân khẩu học và đính kèm tệp tin hình ảnh X-quang cần phân tích.
- Màn hình hiển thị chế độ xem ảnh (View mode): Tích hợp thanh công cụ tương tác chuyên dụng cho ảnh y khoa (thu phóng, xoay ảnh, đảo ngược mức xám, đo khoảng cách, chú thích trực tiếp trên ảnh).
- Màn hình hiển thị kết quả chẩn đoán: Trình bày thông tin bệnh nhân kèm nhãn dự đoán của mô hình (
COVID-19, NORMAL, PNEUMONIA), hỗ trợ bác sĩ đối chiếu trước khi đưa ra kết luận lâm sàng cuối cùng.
Nội dung chính theo từng chương
Chương 1. Tổng quan đề tài
Chương này phân tích bối cảnh bùng phát của đại dịch COVID-19 trên thế giới và tại Việt Nam, mô tả đặc điểm sinh học của họ vi-rút Corona và các triệu chứng lâm sàng thường gặp. Tác giả trình bày quy trình chẩn đoán cận lâm sàng theo hướng dẫn của WHO và Bộ Y tế, phân tích vai trò của ảnh X-quang ngực trong phát hiện tổn thương kính mờ hoặc đông đặc phổi. Chương 1 đồng thời xác định tính cấp thiết, mục tiêu, đối tượng, phạm vi nghiên cứu, ý nghĩa khoa học và thực tiễn của đề tài.
Chương 2. Các nghiên cứu liên quan và hướng tiếp cận
Chương 2 hệ thống hóa cơ sở lý thuyết về bài toán phân lớp học máy, phân biệt các dạng bài toán (nhị phân, đa lớp, đa nhãn, dữ liệu mất cân bằng) và các cơ chế học (Lazy Learner vs Eager Learner). Tác giả trình bày chi tiết cấu trúc mạng nơ-ron tích chập (CNN) gồm các tầng Convolution, Pooling, Activation (ReLU) và Fully Connected. Chương này cũng phân tích cơ sở toán học của các thuật toán phân lớp k-NN, SVM, Logistic Regression, phương pháp trích xuất đặc trưng kết cấu Haralick từ ma trận GLCM và kiến trúc hai mạng học sâu VGG16, Inception-ResNet-V2.
Chương 3. Mô tả bộ dữ liệu COVID-19
Chương 3 trình bày chi tiết quá trình thu thập, tiền xử lý và gán nhãn dữ liệu từ 4 nguồn mở trên Kaggle. Dữ liệu sau khi làm sạch được phân thành 3 nhóm bệnh lý rõ ràng.
| Nhãn phân loại |
Số lượng ảnh |
Mô tả tình trạng bệnh lý |
| NORMAL |
1.517 |
Phổi bình thường, không có dấu hiệu viêm nhiễm hay tổn thương dạng kính mờ. |
| PNEUMONIA |
1.467 |
Viêm phổi thông thường do vi khuẩn, vi-rút khác hoặc nấm; có dịch mủ tại túi khí. |
| COVID-19 |
439 |
Nhiễm SARS-CoV-2; tổn thương viêm phổi hai bên, đám mờ dạng kính lan tỏa ngoại vi. |
| Tổng cộng |
3.423 |
Tập dữ liệu hoàn chỉnh phục vụ huấn luyện và kiểm thử |
Chương 4. Thực nghiệm các phương pháp máy học trên bộ dữ liệu COVID-19
Chương này thiết lập kiến trúc hệ thống phân loại tổng thể và xác định các thang đo đánh giá mô hình: Độ chính xác (Accuracy), Độ nhạy (Recall), Độ chuẩn xác (Precision), Điểm F1-score và Ma trận nhầm lẫn (Confusion Matrix). Tác giả tiến hành thử nghiệm kết hợp chéo giữa các phương pháp trích xuất đặc trưng (Raw vector, Haralick, VGG16, Inception-ResNet-V2) và các thuật toán phân loại (k-NN với khoảng cách Cosine/Minkowski, SVM, Logistic Regression). Kết quả cho thấy các đặc trưng trích xuất từ mô hình học sâu Inception-ResNet-V2 và VGG16 mang lại hiệu suất vượt trội so với các đặc trưng kết cấu truyền thống.
Chương 5. Xây dựng ứng dụng demo phát hiện COVID-19
Chương 5 trình bày toàn bộ quá trình phân tích thiết kế phần mềm và xây dựng giao diện ứng dụng web demo. Nội dung bao gồm việc mô tả ca sử dụng (use case), thiết kế lược đồ cơ sở dữ liệu và xây dựng các lớp xử lý đối tượng (Patient, Test). Tác giả công bố các giao diện màn hình thực tế của ứng dụng gồm: trang quản lý danh sách bệnh nhân, form tiếp nhận thông tin kèm tải ảnh X-quang, khu vực thao tác tương tác chỉnh sửa ảnh X-quang và khung hiển thị kết quả phân loại tự động.
Chương 6. Kết luận và hướng phát triển
Chương tổng kết các kết quả đạt được về mặt khảo sát học máy và xây dựng phần mềm demo. Đồng thời, tác giả nêu rõ các hạn chế tồn tại của nghiên cứu và đề xuất các định hướng nghiên cứu tiếp theo để nâng cao độ tin cậy và khả năng triển khai thực tế.
Kết quả và đóng góp
- Kết quả thực nghiệm: Đề tài đã xây dựng thành công bộ dữ liệu tổng hợp gồm 3.423 ảnh X-quang ngực chuẩn hóa từ 4 nguồn khác nhau. Quá trình thực nghiệm đã chứng minh tính hiệu quả của phương pháp Transfer Learning (sử dụng VGG16 và Inception-ResNet-V2 làm bộ trích chọn đặc trưng) khi kết hợp với các bộ phân lớp học máy (SVM, Logistic Regression, k-NN) trên bài toán phân loại đa lớp ảnh y khoa.
- Sản phẩm ứng dụng: Xây dựng hoàn chỉnh một ứng dụng web demo tích hợp mô hình máy học với Backend Flask và Frontend ReactJS, cung cấp đầy đủ các chức năng quản trị bệnh nhân, tải ảnh, phân tích tự động và hỗ trợ các công cụ xem/chú thích ảnh X-quang.
- Đóng góp học thuật: Nghiên cứu đã cung cấp bức tranh so sánh toàn diện giữa đặc trưng truyền thống (Haralick/GLCM, Raw pixel) và đặc trưng học sâu đối với bài toán X-quang COVID-19. Công trình đã có bài báo khoa học được chấp nhận và báo cáo tại Hội thảo Quốc gia lần thứ XXIII (theo đánh giá của Cán bộ phản biện).
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế của nghiên cứu:
- Sự mất cân bằng dữ liệu: Số lượng mẫu nhãn
COVID-19 (439 ảnh) còn chênh lệch đáng kể so với nhãn NORMAL (1.517 ảnh) và PNEUMONIA (1.467 ảnh) do tính chất khan hiếm dữ liệu thực tế tại thời điểm nghiên cứu.
- Rào cản pháp lý và bản quyền: Nhiều nguồn dữ liệu y tế không được công bố công khai vì lý do bảo mật thông tin bệnh nhân, dẫn đến dữ liệu thu thập được chủ yếu từ các nguồn mở rời rạc, có hiện tượng trùng lặp giữa các kho ảnh.
- Giới hạn ứng dụng: Mô hình chỉ dừng lại ở mức độ thử nghiệm hỗ trợ sàng lọc lâm sàng, chưa thể thay thế cho các kết luận chẩn đoán xác định của bác sĩ chuyên khoa.
- Hướng phát triển tiếp theo:
- Mở rộng thu thập và cân bằng bộ dữ liệu với số lượng mẫu COVID-19 lớn hơn khi có các nguồn dữ liệu lâm sàng mới.
- Thử nghiệm fine-tuning trực tiếp các kiến trúc mạng học sâu hiện đại thay vì chỉ sử dụng làm bộ trích xuất đặc trưng cố định.
- Nâng cấp ứng dụng demo thành phiên bản hỗ trợ trên thiết bị di động và máy tính bảng nhằm tăng tính cơ động cho nhân viên y tế tại các khu vực sàng lọc dã chiến.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo hữu ích cho sinh viên, học viên ngành Kỹ thuật Phần mềm, Khoa học Máy tính, Trí tuệ Nhân tạo và Tin học Y sinh đang nghiên cứu bài toán xử lý ảnh y khoa (Medical Image Processing). Đặc biệt, chương mô tả kỹ thuật trích xuất đặc trưng Haralick/GLCM (Chương 2), cấu trúc bộ dữ liệu tổng hợp (Chương 3) và quy trình thiết kế phần mềm y tế bằng Flask và ReactJS (Chương 5) cung cấp các chỉ dẫn cụ thể cho các đề tài phát triển hệ thống hỗ trợ chẩn đoán hình ảnh (CAD).
Câu hỏi thường gặp
1. Bộ dữ liệu của khóa luận gồm bao nhiêu ảnh và được phân bố như thế nào?
Bộ dữ liệu gồm 3.423 ảnh X-quang ngực, được tổng hợp từ 4 nguồn công khai trên Kaggle. Dữ liệu phân bố thành 3 nhãn: 1.517 ảnh NORMAL (người bình thường), 1.467 ảnh PNEUMONIA (viêm phổi thông thường) và 439 ảnh COVID-19.
2. Tác giả đã thử nghiệm những phương pháp trích xuất đặc trưng nào?
Khóa luận thử nghiệm 3 nhóm đặc trưng: vector đặc trưng thu nhỏ trực tiếp từ ảnh gốc (Raw features), 4 đặc trưng kết cấu Haralick tính từ ma trận đồng xuất hiện mức xám GLCM (Energy, Contrast, Homogeneity, Correlation), và vector đặc trưng trích xuất từ các tầng ẩn của mô hình học sâu tiền huấn luyện VGG16 và Inception-ResNet-V2.
3. Những thuật toán học máy nào được dùng để phân loại và độ đo đánh giá gồm những gì?
Tác giả sử dụng 3 thuật toán phân loại: k-Nearest Neighbors (k-NN với hàm khoảng cách Cosine và Minkowski), Support Vector Machines (SVM) và Logistic Regression. Các thang đo đánh giá gồm có: Accuracy, Precision, Recall, F1-score và Confusion Matrix.
4. Ứng dụng demo được xây dựng bằng công nghệ gì và gồm những chức năng chính nào?
Ứng dụng demo được xây dựng dưới dạng website, sử dụng Backend bằng framework Flask (Python) và Frontend bằng ReactJS. Các chức năng chính gồm: Quản lý danh sách bệnh nhân, Thêm mới bệnh nhân kèm ảnh X-quang, Chế độ xem và tương tác với ảnh y khoa (thu phóng, chỉnh độ sáng, đo đạc, chú thích), và Hiển thị kết quả chẩn đoán bệnh tự động.
5. Khóa luận đạt kết quả đánh giá như thế nào từ hội đồng chấm?
Khóa luận được thực hiện bởi sinh viên Võ Thị Một, dưới sự hướng dẫn của TS. Nguyễn Tấn Trần Minh Khang, nhận điểm đánh giá 9.5/10 từ Cán bộ phản biện ThS. Đỗ Thị Thanh Tuyền, đồng thời kết quả nghiên cứu đã được công bố tại Hội thảo Quốc gia lần thứ XXIII.
Kết luận
Khóa luận tốt nghiệp của sinh viên Võ Thị Một đã hoàn thành việc khảo sát thực nghiệm các kỹ thuật rút trích đặc trưng và thuật toán máy học trên bộ dữ liệu 3.423 ảnh X-quang ngực nhằm phân loại bệnh nhân COVID-19, viêm phổi và bình thường. Công trình đã chứng minh tính ưu việt của việc kết hợp đặc trưng học sâu với các bộ phân lớp truyền thống trong phân loại ảnh y khoa, đồng thời hiện thực hóa thành công một ứng dụng web demo bằng Flask và ReactJS phục vụ quản trị và hỗ trợ chẩn đoán lâm sàng. Đây là nghiên cứu có cấu trúc chặt chẽ, kết hợp hài hòa giữa cơ sở khoa học máy tính và kỹ thuật công nghệ phần mềm ứng dụng trong y tế.