Giới thiệu dự án

Theo báo cáo của Tổ chức Y tế Thế giới (WHO) và thống kê từ ngành Xương khớp Việt Nam, các bệnh lý và tổn thương hệ cơ xương khớp đang ảnh hưởng đến hơn 1,71 tỷ người trên toàn cầu, trong đó tỷ lệ mắc tại Việt Nam chiếm khoảng 35% dân số và lên đến 70% ở nhóm người cao tuổi (50–70 tuổi). Trong nhóm chấn thương ngoại khoa, gãy xương chi trên (bao gồm xương cánh tay, cẳng tay, cổ tay và các đốt ngón tay) chiếm tỷ trọng lớn do tai nạn lao động, sinh hoạt và giao thông. Mặc dù chụp X-quang kỹ thuật số là kỹ thuật chẩn đoán hình ảnh đầu tay phổ biến nhất nhờ chi phí thấp, tính sẵn sàng cao và không xâm lấn, quy trình chẩn đoán thủ công vẫn tiềm ẩn nguy cơ sai sót từ 10% đến 20% đối với các vết rạn nứt nhỏ dạng sợi (hairline fractures) hoặc gãy xương vùng cổ tay phức tạp dưới áp lực làm việc quá tải của bác sĩ X-quang.

+---------------------------------------------------------------------------------------------------+
|                                 TỔNG QUAN VẤN ĐỀ VÀ THÁCH THỨC                                    |
+---------------------------------------------------------------------------------------------------+
| 1. Áp lực chẩn đoán: Quá tải phim chụp dẫn đến nguy cơ bỏ sót tổn thương vi mô (micro-cracks).    |
| 2. Chất lượng ảnh X-quang: Tương phản thấp, nhiễu nền thiết bị, tư thế chụp không đồng nhất.      |
| 3. Hạn chế mô hình cũ: Phân vùng sót nhiễu, biến dạng đặc trưng khi rescale kích thước ảnh.       |
+---------------------------------------------------------------------------------------------------+

Mục tiêu cụ thể của dự án

  1. Chuẩn hóa dữ liệu y tế: Thu thập, tiền xử lý và chuẩn hóa tập dữ liệu từ nguồn Stanford Musculoskeletal Radiographs (MURA), được thẩm định và gán nhãn vị trí tổn thương trực tiếp bởi các bác sĩ chuyên khoa chẩn đoán hình ảnh tại Bệnh viện Bạch Mai.
  2. Xây dựng module phân vùng giải phẫu (Segmentation): Loại bỏ triệt để vùng phông nền không mang thông tin chẩn đoán, cô lập cấu trúc xương tay nhằm giảm thiểu tối đa báo động giả (False Positives).
  3. Phát triển pipeline xử lý và phục hồi ảnh siêu phân giải: Kết hợp kỹ thuật cân bằng biểu đồ mức xám thích ứng cục bộ giới hạn tương phản (CLAHE) cùng mạng nơ-ron đối nghịch tạo sinh siêu phân giải (SRGAN/AID-SRGAN) để khôi phục cấu trúc vi mô của đường nứt xương.
  4. Tối ưu hóa mô hình phát hiện tổn thương (Object Detection): Ứng dụng kiến trúc mạng nơ-ron học sâu thế hệ mới (YOLOv7) để định vị và phân loại chính xác các vết gãy/nứt xương trong thời gian thực.

Phương pháp tiếp cận và phạm vi nghiên cứu

Đề tài tiếp cận bài toán theo kiến trúc luồng xử lý tầng (cascaded pipeline), tách biệt việc phân tách cấu trúc giải phẫu, tăng cường chi tiết tín hiệu ảnh và nhận diện tổn thương. Phương pháp này giải quyết triệt để hiện tượng mất mát đặc trưng khi trực tiếp đưa ảnh X-quang thô vào mô hình phát hiện. Phạm vi nghiên cứu tập trung vào ảnh X-quang xương chi trên của người bệnh ở dạng ảnh 2D tiêu chuẩn, chưa mở rộng sang tái tạo 3D từ ảnh cắt lớp vi tính (CT) hay cộng hưởng từ (MRI).


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Phương pháp Ưu điểm Nhược điểm Độ chính xác (mAP / IoU) Khả năng ứng dụng lâm sàng
Đọc phim thủ công Trực quan, kết hợp lâm sàng toàn diện Phụ thuộc chủ quan, mỏi mắt, dễ sót vi vết nứt Thay đổi theo bác sĩ (75% - 88%) Tiêu chuẩn truyền thống
Pipeline YOLACT++ & YOLOv4 (Nguyễn H., 2021) Tự động hóa, xử lý nhanh Phân vùng còn sót nhiễu nền, CLAHE gây cháy sáng cục bộ mAP ~ 81.2% Thử nghiệm cục bộ
Giải pháp đề xuất (YOLOv7 + CLAHE/HE + AID-SRGAN) Tách nền chuẩn, khôi phục vi cấu trúc xương, nhận diện vết nứt nhỏ Yêu cầu tài nguyên tính toán GPU trong pha tiền xử lý mAP: 86.48%, IoU: 99.12% Sẵn sàng tích hợp PACS/DICOM

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Phân tách xương tay chính xác khỏi nền nhiễu; tăng cường độ tương phản vết nứt; định vị bounding box tổn thương với mAP > 85%; thời gian suy luận dưới 200ms/ảnh.
  • Should have (Nên có): Tăng độ phân giải ảnh 4x bằng mô hình GAN với PSNR > 40 dB; giao diện hiển thị độ tin cậy trực quan cho bác sĩ.
  • Could have (Có thể có): Khả năng xuất báo cáo định dạng chuẩn y tế DICOM; hỗ trợ chuyển đổi mô hình sang định dạng TensorRT/ONNX.
  • Won't have (Chưa thực hiện): Dự đoán thời gian lành xương hoặc đề xuất phác đồ điều trị phẫu thuật tự động.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế thành một chuỗi 4 khối liên hoàn khép kín:

+------------------+     +------------------------+     +-------------------------------+
|  Ảnh X-quang thô | --> |  1. Khối Phân vùng     | --> | 2. Khối Tăng tương phản       |
|  (MURA Dataset)  |     |  (YOLOv7-mask/Blend)   |     | (Kết hợp CLAHE & Global HE)   |
+------------------+     +------------------------+     +-------------------------------+
                                                                        |
                                                                        v
+------------------+     +------------------------+     +-------------------------------+
| Bounding Box &   | <-- | 4. Khối Phát hiện      | <-- | 3. Khối Tăng siêu phân giải   |
| Vị trí vết gãy   |     | (YOLOv7 Object Detect) |     | (AID-SRGAN Super-Resolution)  |
+------------------+     +------------------------+     +-------------------------------+

Technology Stack và phiên bản cụ thể

  • Ngôn ngữ lập trình: Python v3.10.12
  • Deep Learning Framework: PyTorch v2.0.1 + CUDA v11.8, cuDNN v8.7.0
  • Computer Vision & Image Processing: OpenCV-Python v4.8.0.76, Albumentations v1.3.1
  • Mô hình kiến trúc nền tảng: YOLOv7 (Branch: YOLOv7-mask & YOLOv7-E6), SRGAN / AID-SRGAN Custom
  • Web API & Serving: FastAPI v0.104.1, Uvicorn v0.24.0, Pydantic v2.4.2
  • Containerization: Docker v24.0.6, NVIDIA Container Toolkit v1.14.3

Methodology

Dự án áp dụng quy trình phát triển lặp CRISP-DM kết hợp mô hình Agile:

  • Pha 1 (Tuần 1 - 3): Khảo sát lâm sàng, thu thập và tiền xử lý 4.000 ảnh từ bộ dữ liệu MURA; phối hợp chuyên gia Bệnh viện Bạch Mai thẩm định gán nhãn 405 ca chấn thương phức tạp.
  • Pha 2 (Tuần 4 - 8): Nghiên cứu, huấn luyện và đánh giá độc lập các mô hình phân đoạn (Mask R-CNN, YOLACT, YOLOv7-mask) và module xử lý ảnh (CLAHE, HE, Unsharp Masking).
  • Pha 3 (Tuần 9 - 13): Xây dựng cấu trúc mạng AID-SRGAN với cơ chế Self-Attention; huấn luyện mạng phát hiện YOLOv7; tích hợp toàn bộ pipeline 4 khối.
  • Pha 4 (Tuần 14 - 16): Kiểm thử hiệu năng tổng thể, đo lường tốc độ suy luận (FPS/Latency), tối ưu hóa siêu tham số và đóng gói giải pháp.

Implementation và kết quả

Development process

1. Thuật toán trộn tăng cường độ tương phản (Hybrid CLAHE-HE Blending)

Để khắc phục hiện tượng mất cân bằng vùng sáng và nhiễu biên khi chỉ sử dụng đơn lẻ một thuật toán, giải pháp kết hợp phép biến đổi biểu đồ mức xám toàn cục (Global Histogram Equalization) và CLAHE thông qua kỹ thuật trộn kênh động với trọng số tối ưu:

import cv2
import numpy as np

def hybrid_contrast_enhancement(image_gray: np.ndarray, clip_limit: float = 2.0, tile_grid_size: tuple = (8, 8), alpha: float = 0.65) -> np.ndarray:
    """
    Thuật toán kết hợp CLAHE và Global Histogram Equalization với trọng số điều chỉnh
    """
    # 1. Global Histogram Equalization
    he_img = cv2.equalizeHist(image_gray)
    
    # 2. Contrast Limited Adaptive Histogram Equalization
    clahe = cv2.createCLAHE(clipLimit=clip_limit, tileGridSize=tile_grid_size)
    clahe_img = clahe.apply(image_gray)
    
    # 3. Weighted Blending & Normalization
    enhanced_img = cv2.addWeighted(clahe_img, alpha, he_img, (1.0 - alpha), 0)
    
    # 4. Unsharp masking để làm nổi bật đường gãy vi mô
    gaussian_blur = cv2.GaussianBlur(enhanced_img, (0, 0), sigmaX=3.0)
    sharpened = cv2.addWeighted(enhanced_img, 1.5, gaussian_blur, -0.5, 0)
    return sharpened

2. Kiến trúc mạng AID-SRGAN và hàm mất mát Perceptual Loss

Mô hình tăng cường độ phân giải sử dụng Generator với mạng nơ-ron tích chập sâu kết hợp khối Residual-in-Residual Dense Block (RRDB) cùng cơ chế Attention để tập trung tái tạo dải pixel quanh vết nứt:

$$\mathcal{L}{Total}^{SRGAN} = \mathcal{L}{MSE} + 10^{-3} \cdot \mathcal{L}{Adversarial} + 6 \times 10^{-3} \cdot \mathcal{L}{VGG/5,4}$$

Trong đó, $\mathcal{L}_{VGG/5,4}$ đo lường khoảng cách Euclidean giữa các bản đồ đặc trưng trích xuất từ tầng sâu của mạng pre-trained VGG-19, bảo toàn nguyên vẹn tính chất hình học giải phẫu của xương.

import torch
import torch.nn as nn

class SpatialAttentionBlock(nn.Module):
    def __init__(self, in_channels: int):
        super(SpatialAttentionBlock, self).__init__()
        self.conv = nn.Sequential(
            nn.Conv2d(in_channels, in_channels // 8, kernel_size=1, bias=False),
            nn.BatchNorm2d(in_channels // 8),
            nn.SiLU(inplace=True),
            nn.Conv2d(in_channels // 8, in_channels, kernel_size=1, bias=False),
            nn.Sigmoid()
        )

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        att = self.conv(x)
        return x * att

Testing và validation

Bảng so sánh thực nghiệm các khối kiến trúc

Khối chức năng Mô hình thử nghiệm Tham số / Cấu hình Độ chính xác / Đo lường Tốc độ suy luận (GPU RTX 3060)
Phân vùng (Segmentation) Mask R-CNN ResNet-50-FPN IoU: 94.20% 48 ms
YOLACT DarkNet-53 IoU: 96.15% 18 ms
YOLOv7-mask (Đề xuất) ELAN + BlendMask IoU: 99.12% 14 ms
Siêu phân giải (SRGAN) Bicubic Interpolation Baseline PSNR: 32.10 dB / SSIM: 0.8412 1 ms
SRCNN 3 lớp Conv PSNR: 37.45 dB / SSIM: 0.9105 6 ms
AID-SRGAN (Đề xuất) RRDB + Attention PSNR: 45.78 dB / SSIM: 0.9777 28 ms
Phát hiện (Detection) Faster R-CNN ResNet-101 mAP@0.5: 78.90% 62 ms
YOLOv4-DarkNet CSPDarkNet53 mAP@0.5: 81.20% 22 ms
YOLOv5x C3 Module mAP@0.5: 83.50% 19 ms
YOLOv7 (Đề xuất) ELAN Backbone + CIoU mAP@0.5: 86.48% 12 ms
+---------------------------------------------------------------------------------------------------+
|                              HIỆU NĂNG TỔNG THỂ PIPELINE HOÀN CHỈNH                                |
+---------------------------------------------------------------------------------------------------+
| [Ảnh Đầu Vào] -> (14ms Phân Vùng) -> (3ms Tăng Tương Phản) -> (28ms SRGAN) -> (12ms YOLOv7)      |
| Tổng thời gian xử lý: 57 ms / ảnh (Tương đương ~17.5 FPS trên GPU đơn).                            |
| Độ chính xác tổng thể mAP@0.5 đạt 86.48% (Tăng +5.28% so với hệ thống YOLOv4 cơ sở).              |
+---------------------------------------------------------------------------------------------------+

Đổi mới và đóng góp

  1. Kiến trúc phân tầng triệt tiêu nhiễu nền: Thay vì đưa ảnh X-quang thô kích thước không đồng nhất trực tiếp vào mạng phát hiện, việc sử dụng YOLOv7-mask đạt IoU 99.12% giúp loại bỏ 100% các dị vật kim loại, nhãn đánh dấu của kỹ thuật viên và cấu trúc mô mềm ngoại vi gây sai lệch phán đoán.
  2. Kỹ thuật xử lý ảnh lai Dynamic Hybrid Contrast: Sự kết hợp giữa CLAHE và Global HE giải quyết triệt để hiện tượng vỡ hạt cục bộ hoặc mất cân bằng trắng trong ảnh X-quang tay, giúp tăng độ tương phản bờ xương lên 42% so với ảnh gốc.
  3. Mô hình phục hồi cấu trúc vi mô AID-SRGAN: Đạt chỉ số PSNR kỷ lục 45.78 dB và SSIM 0.9777 trên tập thử nghiệm y tế, giúp tái tạo sắc nét các đường nứt có bề rộng dưới 1mm mà mắt thường dễ bỏ sót.
  4. Tối ưu hóa phát hiện với YOLOv7 ELAN Architecture: Cải thiện độ chính xác phát hiện gãy xương lên 86.48% mAP, vượt trội so với các công trình trước đây trên cùng tập dữ liệu MURA.

Ứng dụng thực tế và triển khai

                     +---------------------------------------+
                     |  Máy Chụp X-Quang / Trạm PACS Y Tế    |
                     +---------------------------------------+
                                         | (Chuẩn DICOM)
                                         v
                     +---------------------------------------+
                     | Gateway / DICOM Parser (Pynetdicom)   |
                     +---------------------------------------+
                                         | (RESTful API / JSON)
                                         v
+---------------------------------------------------------------------------------+
|                       CONTAINER HÓA DỊCH VỤ (FASTAPI SERVER)                    |
|  +-------------------+  +---------------------+  +---------------------------+  |
|  | Module Phân Đoạn  |->| Module Tương Phản   |->| Module Tăng Phân Giải     |  |
|  | (YOLOv7-mask)     |  | (CLAHE-HE Blend)    |  | (AID-SRGAN)               |  |
|  +-------------------+  +---------------------+  +---------------------------+  |
|                                                              |                  |
|                                                              v                  |
|                                                  +---------------------------+  |
|                                                  | Module Nhận Diện Gãy      |  |
|                                                  | (YOLOv7 Object Detection) |  |
|                                                  +---------------------------+  |
+---------------------------------------------------------------------------------+
                                         |
                                         v
                     +---------------------------------------+
                     | Màn hình hỗ trợ chẩn đoán Bác sĩ      |
                     | (Hiển thị Bounding Box & Xác Suất)    |
                     +---------------------------------------+

Kịch bản sử dụng lâm sàng

Hệ thống được đóng gói dưới dạng Docker microservice, kết nối trực tiếp với hệ thống lưu trữ và truyền hình ảnh y tế (PACS) tại bệnh viện thông qua giao thức DICOM tiêu chuẩn. Khi kỹ thuật viên hoàn tất chụp X-quang, tệp ảnh được tự động gửi tới máy chủ phân tích. Trong vòng chưa đầy 1 giây, hệ thống trả về ảnh phân tích kèm theo khung định vị vị trí tổn thương và điểm tin cậy (Confidence Score), đóng vai trò như một ý kiến hội chẩn thứ hai (Second Opinion) hỗ trợ bác sĩ trực cấp cứu.

Yêu cầu triển khai hệ thống

  • Phần cứng máy chủ tối thiểu: CPU Intel Core i7 12th Gen hoặc AMD Ryzen 7, 32GB DDR4 RAM, GPU NVIDIA RTX 3060 12GB VRAM trở lên.
  • Phần cứng khuyến nghị (Bệnh viện tuyến tỉnh/trung ương): NVIDIA RTX 4090 24GB hoặc NVIDIA A10/T4 chuyên dụng cho Data Center.
  • Phần mềm: Ubuntu 22.04 LTS, Docker Engine v24.0+, NVIDIA Drivers >= 525.60.

Hạn chế và hướng phát triển

  • Hạn chế hiện tại: Tập dữ liệu huấn luyện phát hiện gãy xương chi tiết gồm 405 ảnh được thẩm định chuyên sâu là con số còn khiêm tốn; mô hình mới tập trung trên ảnh X-quang chi trên 2D đơn góc chụp, chưa hỗ trợ chuỗi ảnh đối chiếu đa tư thế (AP/Lateral views).
  • Hướng phát triển tương lai:
    1. Tích hợp cấu trúc mạng Vision Transformer (ViT) và mô hình đa phương thức (Multimodal Large Language Models) để tự động sinh báo cáo chẩn đoán hình ảnh bằng văn bản.
    2. Mở rộng tập dữ liệu sang các nhóm xương phức tạp khác như xương chậu, cột sống và xương sọ.
    3. Ứng dụng kỹ thuật Federated Learning để liên kết huấn luyện mô hình giữa nhiều bệnh viện mà không làm lộ lọt dữ liệu bệnh án riêng tư.

Đối tượng hưởng lợi

+------------------+-----------------------------------------------------------------------------------+
| Nhóm đối tượng   | Lợi ích định lượng cụ thể                                                         |
+------------------+-----------------------------------------------------------------------------------+
| Sinh viên & NCKH | Nguồn tài liệu tham khảo chuẩn mực về Deep Learning ứng dụng trong xử lý ảnh y tế.|
| Lập trình viên AI| Pipeline mẫu hoàn chỉnh kết hợp Segmentation, GAN và Object Detection bằng PyTorch.|
| Cơ sở y tế       | Giảm 40% thời gian hội chẩn sơ bộ, giảm tỷ lệ bỏ sót ca chấn thương rạn xương ngầm|
| Chuyên gia y tế  | Công cụ trợ lý số tin cậy, giảm tải áp lực tâm lý trong các ca trực cấp cứu đêm.  |
+------------------+-----------------------------------------------------------------------------------+

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai giải pháp trong thực tế là gì?

Hệ thống yêu cầu máy chủ trang bị GPU tối thiểu NVIDIA RTX 3060 (12GB VRAM) hoặc thẻ tính toán chuyên dụng NVIDIA T4 để đảm bảo thời gian suy luận toàn bộ 4 khối dưới 100ms/ảnh. Đối với môi trường máy trạm không có GPU, mô hình có thể chạy trên CPU (Intel Xeon/Core i7) thông qua việc lượng tử hóa trọng số INT8 (OpenVINO / ONNX Runtime) với độ trễ khoảng 450ms–600ms/ảnh, hoàn toàn chấp nhận được trong tác vụ chẩn đoán không khẩn cấp.

2. Mô hình xử lý thế nào đối với các ca gãy xương phức tạp hoặc có dị vật kim loại can thiệp?

Khối phân vùng YOLOv7-mask đã được huấn luyện đặc thù để nhận biết và tách biệt chính xác biên xương sinh học khỏi các vật thể nhân tạo như đinh nẹp xương, vòng tay, hoặc tấm cố định kim loại. Do đó, dị vật không bị đưa vào khối tăng cường tương phản, loại trừ triệt để nguy cơ tạo ra các tín hiệu giả gây nhầm lẫn cho khối phát hiện.

3. Giải pháp tích hợp vào hệ thống quản lý bệnh viện (HIS/PACS) hiện có như thế nào?

Hệ thống cung cấp sẵn module tiếp nhận file DICOM (dựa trên thư viện Pynetdicom), đóng vai trò như một DICOM Node nhận ảnh từ máy chụp, sau đó phân tích và xuất ngược trở lại hệ thống PACS một tệp ảnh thứ cấp có đánh dấu vị trí tổn thương (Secondary Capture DICOM) hoặc tệp đối tượng đồ họa chuẩn (DICOM Presentation State).

4. Quy trình cập nhật và tinh chỉnh mô hình định kỳ (Maintenance & Fine-tuning) diễn ra ra sao?

Các ca chẩn đoán sai (False Positive / False Negative) được bác sĩ lâm sàng phản hồi thông qua giao diện Web sẽ được lưu trữ tự động vào Data Lake. Định kỳ hàng quý, dữ liệu mới sẽ được gắn nhãn bổ sung và đưa vào quy trình Active Learning để tái huấn luyện tinh chỉnh (Fine-tuning) mô hình, đảm bảo độ chính xác liên tục tăng trưởng theo thời gian.

5. Chi phí đầu tư và thời gian thu hồi vốn (ROI) cho một cơ sở y tế ước tính như thế nào?

Chi phí triển khai một trạm máy chủ AI xử lý ảnh X-quang dao động từ 70 - 120 triệu VNĐ chi phí phần cứng ban đầu. Với năng lực hỗ trợ rà soát 150–300 ca chụp mỗi ngày, hệ thống giúp cơ sở y tế tiết kiệm hàng trăm giờ lao động của chuyên gia, hạn chế tối đa chi phí đền bù hoặc xử lý biến chứng do chẩn đoán sót, đem lại thời gian hoàn vốn đầu tư ước tính trong vòng 6–9 tháng.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu và phát triển giải pháp phát hiện gãy xương tay sử dụng học sâu" của tác giả Nghiêm Tuấn Khôi đã xây dựng thành công một hệ sinh thái AI hoàn chỉnh, kết hợp nhuần nhuyễn giữa thị giác máy tính truyền thống, mạng nơ-ron tạo sinh và các kiến trúc học sâu tiên tiến nhất hiện nay. Với việc đạt được độ chính xác phân vùng 99.12% IoU, chất lượng ảnh siêu phân giải đạt PSNR 45.78 dB / SSIM 0.9777 và độ chính xác phát hiện tổn thương đạt 86.48% mAP, giải pháp không chỉ chứng minh tính đúng đắn về mặt khoa học mà còn mở ra tiềm năng thương mại hóa và ứng dụng thực tiễn to lớn tại các cơ sở khám chữa bệnh. Đây là bước đệm vững chắc thúc đẩy tiến trình chuyển đổi số và ứng dụng trí tuệ nhân tạo vào ngành y tế hiện đại.