Giới thiệu dự án

Bối cảnh và thực trạng ngành da liễu

Theo thống kê từ Cơ quan Nghiên cứu Ung thư Quốc tế (IARC), hàng năm có hơn 300.000 ca mắc mới ung thư hắc tố da ác tính (Melanoma) được ghi nhận trên toàn cầu. Sự suy giảm của tầng ozone cùng với sự gia tăng bức xạ tia cực tím (UV) là nguyên nhân hàng đầu thúc đẩy tỷ lệ đột biến tế bào biểu mô và tế bào hắc tố. Tại các quốc gia đang phát triển, tỷ lệ bác sĩ chuyên khoa da liễu trên quy mô dân số còn rất thấp, dẫn đến tình trạng quá tải tại các tuyến bệnh viện chuyên khoa và làm chậm trễ thời điểm can thiệp y tế vàng.

Vấn đề nghiên cứu và điểm nghẽn kỹ thuật

Chẩn đoán tổn thương da qua hình ảnh soi da (dermoscopy) lâm sàng đối mặt với ba thách thức lớn:

  • Tính tương đồng hình thái học (Morphological Mimicry): Ung thư tế bào đáy thể sắc tố (Pigmented Basal Cell Carcinoma), ung thư hắc tố ác tính và một số dạng tổn thương mạch máu (Vascular lesions) có biểu hiện màu sắc và ranh giới tổn thương rất giống nhau, dễ gây nhầm lẫn bằng mắt thường.
  • Tính chủ quan của chuyên gia: Tỷ lệ chẩn đoán chính xác phụ thuộc hoàn toàn vào kinh nghiệm lâm sàng của bác sĩ da liễu, với độ nhạy (Sensitivity) dao động lớn từ 65% đến 85% đối với các tổn thương giai đoạn sớm.
  • Nhiễu dữ liệu hình ảnh soi da: Sự xuất hiện của lông, bọt khí gel soi da, phản xạ ánh sáng và viền thước đo làm suy giảm nghiêm trọng chất lượng trích xuất đặc trưng của các thuật toán thị giác máy tính truyền thống.
       [Ảnh soi da thô (HAM10000 / ISIC)]
                       │
                       ▼
┌──────────────────────────────────────────────┐
│  Giai đoạn 1: Tiền xử lý & Phân đoạn vùng da │
│  - Resize 256x256 & Chuẩn hóa Pixel [0, 1]   │
│  - Phân đoạn tổn thương qua BCDU-Net (Mask)  │
│  - Cân bằng dữ liệu (Augmentation: Rot/Flip) │
└──────────────────────┬───────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────┐
│  Giai đoạn 2: Trích xuất đặc trưng & Học sâu │
│  - Inception-V1 (Multi-scale Convolutions)   │
│  - ResNet50 (Residual Skip Connections)      │
│  - ConvNeXt_Tiny (Depthwise Conv & GeLU)     │
│  - Vision Transformer - ViT (Self-Attention) │
└──────────────────────┬───────────────────────┘
                       │
                       ▼
┌──────────────────────────────────────────────┐
│  Giai đoạn 3: Phân loại đa lớp & Dự đoán     │
│  - Softmax Output: [bcc, mel, vasc]          │
│  - Tối ưu hóa siêu tham số (AdamW / SGD-M)   │
└──────────────────────────────────────────────┘

Mục tiêu của đồ án

  1. Xây dựng tập dữ liệu chuẩn hóa gồm 3 nhóm tổn thương da có mức độ nguy hiểm cao từ bộ dữ liệu quốc tế HAM10000/ISIC: Ung thư hắc tố da ác tính (mel), Ung thư biểu mô tế bào đáy (bcc) và Tổn thương mạch máu (vasc).
  2. Phát triển pipeline tiền xử lý ảnh tự động tích hợp mô hình phân đoạn tổn thương BCDU-Net (Bi-Directional ConvLSTM U-Net) nhằm loại bỏ nhiễu nền và trích xuất mặt nạ tổn thương nhị phân.
  3. Cài đặt, huấn luyện và đánh giá đối chuẩn 4 kiến trúc học sâu tiên tiến: Inception-V1, ResNet50, ConvNeXt_Tiny và Vision Transformer (ViT).
  4. Tối ưu hóa các siêu tham số huấn luyện (Learning Rate, Batch Size, Optimizer) nhằm đạt độ chính xác phân loại cao nhất trên tập kiểm tra độc lập.

Phương pháp tiếp cận giải pháp

Đề tài áp dụng phương pháp học có giám sát (Supervised Learning) trên hình ảnh y tế. Giải pháp kết hợp giữa kỹ thuật tăng cường dữ liệu hình học (Geometric Data Augmentation) để giải quyết tình trạng mất cân bằng mẫu, cùng với kỹ thuật trích xuất đặc trưng không gian đa tỷ lệ từ mạng nơ-ron tích chập (CNN) và cơ chế tự chú ý (Self-Attention) từ Transformer thị giác nhằm phân loại chính xác vùng tổn thương.

Kết quả kỳ vọng và chỉ số đo lường

  • Đạt chỉ số F1-Score cho mô hình phân đoạn BCDU-Net trên $0.84$.
  • Đạt độ chính xác tổng thể (Accuracy) trên tập kiểm tra (Test Set) của mô hình phân loại vượt ngưỡng $88%$.
  • Giảm thiểu tỷ lệ âm tính giả (False Negative Rate) đối với phân loại ung thư hắc tố ác tính xuống dưới $10%$.

Phạm vi và giới hạn đề tài

  • Phạm vi dữ liệu: 1.769 ảnh soi da chất lượng cao trích xuất từ kho dữ liệu ISIC Archive (Đại học Y khoa Vienna, Áo).
  • Giới hạn nhân khẩu học: Dữ liệu hình ảnh thu thập chủ yếu từ người da trắng (Fitzpatrick scale loại I đến III); tỷ lệ dữ liệu trên người da vàng thấp và không chứa dữ liệu người da đen.
  • Giới hạn phân loại: Tập trung chuyên sâu vào 3 nhóm bệnh lý da liễu trọng yếu, không bao gồm toàn bộ 7 nhóm bệnh lý của tập HAM10000 đầy đủ.

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

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

Tiêu chí Khám lâm sàng truyền thống Thị giác máy tính cổ điển (SVM/Random Forest) Học sâu CNN truyền thống (Inception/ResNet) Kiến trúc hiện đại (ConvNeXt / ViT)
Độ chính xác trung bình 65% - 80% 70% - 78% 85% - 90% 91% - 95%
Thời gian chẩn đoán 10 - 20 phút/mẫu 2 - 5 giây/mẫu < 100 ms/mẫu < 120 ms/mẫu
Yêu cầu phần cứng Kính soi da thủ công CPU tiêu chuẩn GPU chuyên dụng GPU hỗ trợ Tensor Core
Khả năng chịu nhiễu Phụ thuộc bác sĩ Kém (dễ bắt nhầm lông/bọt khí) Tốt Xuất sắc (nhờ Global Attention)
Khả năng mở rộng Rất khó Trung bình Tốt Rất cao

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc phải có):
    • Tiền xử lý tự động: resize ảnh về $256 \times 256$ pixels, chuẩn hóa giá trị pixel về dải $[0, 1]$.
    • Huấn luyện thành công 4 mô hình: Inception-V1, ResNet50, ConvNeXt_Tiny, Vision Transformer.
    • Phân loại chính xác 3 nhóm tổn thương: bcc, mel, vasc.
  • Should have (Nên có):
    • Tích hợp module phân đoạn vùng tổn thương bằng BCDU-Net tạo binary mask.
    • Cân bằng dữ liệu lớp thiểu số (bcc, vasc) bằng các thuật toán biến đổi affine.
  • Could have (Có thể có):
    • Tinh chỉnh tốc độ học động thông qua các hàm suy giảm learning rate (LR Scheduler).
    • Tối ưu hóa trọng số mô hình thông qua thuật toán tối ưu tiên tiến AdamW.
  • Won't have (Chưa thực hiện trong giai đoạn này):
    • Triển khai ứng dụng di động theo thời gian thực (On-device Edge Inference).
    • Mở rộng phân loại tự động cho toàn bộ 7 lớp tổn thương da liễu.

Thiết kế hệ thống

┌────────────────────────────────────────────────────────────────────────┐
│                        KIẾN TRÚC PIPELINE XỬ LÝ                        │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│   [Ảnh Gốc 600x450] ───► [Resize 256x256] ───► [Chuẩn Hóa Pixel /255] │
│                                                        │               │
│                                                        ▼               │
│                                            [Phân đoạn BCDU-Net]        │
│                                                        │               │
│                                                        ▼               │
│                                            [Mặt nạ nhị phân 0/1]       │
│                                                        │               │
│                                                        ▼               │
│                                          [Trích xuất vùng ROI]         │
│                                                        │               │
│                                                        ▼               │
│                       ┌────────────────────────────────────────┐       │
│                       │   MÔ HÌNH HỌC SÂU (CHỌN 1 TRONG 4)     │       │
│                       ├────────────────────────────────────────┤       │
│                       │ 1. Inception-V1 (Multi-scale Filters)  │       │
│                       │ 2. ResNet50 (Residual Bottleneck)      │       │
│                       │ 3. ConvNeXt_Tiny (Depthwise Conv 7x7)  │       │
│                       │ 4. Vision Transformer (Patch + MSA)    │       │
│                       └───────────────────┬────────────────────┘       │
│                                           │                            │
│                                           ▼                            │
│                             [Global Average Pooling / CLS]             │
│                                           │                            │
│                                           ▼                            │
│                              [Dense Layer + Softmax (k=3)]             │
│                                           │                            │
│                                           ▼                            │
│                         [Xác suất: bcc / mel / vasc]                   │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘

Ngăn xếp công nghệ (Technology Stack)

  • Ngôn ngữ lập trình: Python 3.10.12
  • Thư viện tính toán Tensor và Học sâu: TensorFlow 2.15.0, Keras 2.15.0
  • Xử lý ảnh số & Tăng cường: OpenCV 4.9.0, Albumentations 1.4.0, PIL 10.2.0
  • Tính toán ma trận & Thống kê: NumPy 1.25.2, SciPy 1.11.4, Pandas 2.1.4
  • Đánh giá & Trực quan hóa: Scikit-Learn 1.3.2, Matplotlib 3.7.1, Seaborn 0.13.1
  • Môi trường tính toán: Google Colab GPU Runtime (NVIDIA Tesla T4 16GB VRAM / CUDA 12.2)

Phương pháp nghiên cứu (Methodology)

Tuần 1-2      Tuần 3-5           Tuần 6-8          Tuần 9-13           Tuần 14-17
┌─────────┐   ┌──────────────┐   ┌─────────────┐   ┌───────────────┐   ┌──────────────┐
│ Khảo sát│──►│ Tiền xử lý   │──►│ Thiết kế    │──►│ Huấn luyện    │──►│ Đánh giá &   │
│ Đề tài &│   │ & Phân đoạn  │   │ 4 Kiến trúc │   │ & Tinh chỉnh  │   │ Hoàn thiện   │
│ Dữ liệu │   │ BCDU-Net     │   │ Mô hình DL  │   │ Siêu tham số  │   │ Khóa luận    │
└─────────┘   └──────────────┘   └─────────────┘   └───────────────┘   └──────────────┘

Ma trận đánh giá và giảm thiểu rủi ro (Risk Assessment)

  • Rủi ro mất cân bằng dữ liệu nghiêm trọng: Số lượng ảnh mel (1.113 ảnh) vượt trội so với vasc (142 ảnh).
    • Giải pháp: Áp dụng chiến lược Offline Data Augmentation đưa tập huấn luyện của 2 lớp thiểu số lên mức 500 ảnh/lớp.
  • Rủi ro suy biến Gradient khi học sâu: Mạng nhiều tầng dễ mất mát thông tin lan truyền ngược.
    • Giải pháp: Sử dụng các liên kết tắt (Skip Connections) trong ResNet50 và ConvNeXt, kết hợp chuẩn hóa Layer Normalization / Batch Normalization.
  • Rủi ro quá khớp (Overfitting) trên tập dữ liệu y tế quy mô nhỏ:
    • Giải pháp: Áp dụng Dropout tỉ lệ $0.4$, điều chuẩn hóa khử trọng số (Weight Decay) qua AdamW, và cơ chế dừng sớm (Early Stopping).

Implementation và kết quả

Quá trình phát triển và hiện thực hóa thuật toán

1. Thuật toán phân đoạn tổn thương BCDU-Net

Mô hình Bi-Directional ConvLSTM U-Net thực hiện ánh xạ ảnh đầu vào $X \in \mathbb{R}^{256 \times 256 \times 3}$ thành mặt nạ xác suất nhị phân $\hat{Y} \in [0, 1]^{256 \times 256 \times 1}$. Bước phân đoạn ngưỡng nhị phân được thực thi bằng phương trình:

$$\hat{M}(u, v) = \begin{cases} 1 & \text{nếu } P(u, v) \ge 0.5 \ 0 & \text{nếu } P(u, v) < 0.5 \end{cases}$$

2. Kỹ thuật tăng cường dữ liệu hình học

Ma trận biến đổi xoay một góc $\theta$ quanh tâm điểm ảnh $(x_c, y_c)$:

$$M = \begin{bmatrix} \cos\theta & -\sin\theta & x_c(1-\cos\theta) + y_c\sin\theta \ \sin\theta & \cos\theta & y_c(1-\cos\theta) - x_c\sin\theta \end{bmatrix}$$

Phép lật ngang ma trận ảnh chiều rộng $N$:

$$I_{\text{hflip}}(x, y) = I(x, N - 1 - y)$$

3. Cài đặt khối kiến trúc ConvNeXt_Tiny trong Python/TensorFlow

import tensorflow as tf
from tensorflow.keras import layers

class ConvNeXtBlock(layers.Layer):
    """
    Hiện thực khối ConvNeXt Block chuẩn với Depthwise Conv 7x7,
    Layer Normalization, Pointwise Conv (GELU), và Residual Connection.
    """
    def __init__(self, dim, drop_path=0.0, layer_scale_init_value=1e-6, **kwargs):
        super(ConvNeXtBlock, self).__init__(**kwargs)
        self.dim = dim
        self.dwconv = layers.DepthwiseConv2D(kernel_size=7, padding='same')
        self.norm = layers.LayerNormalization(epsilon=1e-6)
        self.pwconv1 = layers.Dense(4 * dim) # Inverted Bottleneck (1x1 Conv)
        self.act = layers.Activation('gelu')
        self.pwconv2 = layers.Dense(dim)
        self.gamma = None
        self.layer_scale_init_value = layer_scale_init_value

    def build(self, input_shape):
        if self.layer_scale_init_value > 0:
            self.gamma = self.add_weight(
                name='gamma',
                shape=(self.dim,),
                initializer=tf.keras.initializers.Constant(self.layer_scale_init_value),
                trainable=True
            )
        super(ConvNeXtBlock, self).build(input_shape)

    def call(self, inputs, training=None):
        shortcut = inputs
        x = self.dwconv(inputs)
        x = self.norm(x)
        x = self.pwconv1(x)
        x = self.act(x)
        x = self.pwconv2(x)
        if self.gamma is not None:
            x = self.gamma * x
        return shortcut + x

4. Cơ chế Self-Attention trong Vision Transformer (ViT)

Biểu thức toán học tính toán Multi-Head Self-Attention trên chuỗi $N = \frac{HW}{P^2} + 1$ tokens:

$$\text{Attention}(Q, K, V) = \text{Softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$

Trong đó ma trận Query $Q$, Key $K$, Value $V$ thu được từ phép chiếu tuyến tính: $Q = X W_Q, K = X W_K, V = X W_V$ với $W_Q, W_K, W_V \in \mathbb{R}^{D \times d_k}$.

class MultiHeadSelfAttention(layers.Layer):
    def __init__(self, embed_dim, num_heads):
        super(MultiHeadSelfAttention, self).__init__()
        self.embed_dim = embed_dim
        self.num_heads = num_heads
        self.projection_dim = embed_dim // num_heads
        self.query_dense = layers.Dense(embed_dim)
        self.key_dense = layers.Dense(embed_dim)
        self.value_dense = layers.Dense(embed_dim)
        self.combine_heads = layers.Dense(embed_dim)

    def attention(self, query, key, value):
        score = tf.matmul(query, key, transpose_b=True)
        dim_key = tf.cast(tf.shape(key)[-1], tf.float32)
        scaled_score = score / tf.math.sqrt(dim_key)
        weights = tf.nn.softmax(scaled_score, axis=-1)
        output = tf.matmul(weights, value)
        return output, weights

    def call(self, inputs):
        batch_size = tf.shape(inputs)[0]
        query = self.query_dense(inputs)
        key = self.key_dense(inputs)
        value = self.value_dense(inputs)
        # Tách heads và tính attention
        # [Batch, Num_Heads, Seq_Len, Proj_Dim]
        query = tf.transpose(tf.reshape(query, (batch_size, -1, self.num_heads, self.projection_dim)), [0, 2, 1, 3])
        key = tf.transpose(tf.reshape(key, (batch_size, -1, self.num_heads, self.projection_dim)), [0, 2, 1, 3])
        value = tf.transpose(tf.reshape(value, (batch_size, -1, self.num_heads, self.projection_dim)), [0, 2, 1, 3])
        
        out, _ = self.attention(query, key, value)
        out = tf.transpose(out, [0, 2, 1, 3])
        out = tf.reshape(out, (batch_size, -1, self.embed_dim))
        return self.combine_heads(out)

Thử nghiệm và đánh giá định lượng

Kết quả phân đoạn tổn thương của mô hình BCDU-Net (Tập test ISIC 2018: 1.000 ảnh)

  • Độ chính xác (Accuracy): $0.941$
  • Precision: $0.852$
  • Recall (Sensitivity): $0.846$
  • F1-Score (Dice Coefficient): $0.849$
Groundtruth: ────────►  [ ████████████ ]  (Vùng tổn thương thực tế)
Dự đoán BCDU-Net: ───►  [ ██████████░░ ]  (Dice Coefficient: 0.849)

Phân tích tương quan siêu tham số trên mô hình ResNet50

Batch Size Learning Rate ban đầu Optimizer Training Accuracy Validation Accuracy Test Accuracy Test Loss
16 $1 \times 10^{-3}$ Adam 0.942 0.865 0.864 0.412
32 $1 \times 10^{-4}$ Adam 0.978 0.903 0.898 0.285
32 $\mathbf{5 \times 10^{-4}}$ Adam 0.991 0.918 0.913 0.241
64 $1 \times 10^{-4}$ Adam 0.956 0.887 0.883 0.318
32 $1 \times 10^{-2}$ SGD-Momentum 0.912 0.842 0.838 0.495

Đánh giá tổng hợp và so sánh hiệu năng các mô hình

Mô hình Phương pháp dữ liệu Precision (mel) Recall (mel) Precision (bcc) Recall (bcc) Precision (vasc) Recall (vasc) Overall Accuracy
Inception-V1 Dữ liệu gốc 0.84 0.88 0.72 0.65 0.60 0.43 79.2%
Inception-V1 Tăng cường + Mask 0.88 0.90 0.79 0.76 0.78 0.71 84.5%
ResNet50 Dữ liệu gốc 0.87 0.91 0.78 0.73 0.69 0.52 84.1%
ResNet50 Tăng cường + Mask 0.94 0.95 0.88 0.87 0.86 0.81 91.3%
ConvNeXt_Tiny Dữ liệu gốc 0.88 0.92 0.81 0.75 0.70 0.57 85.7%
ConvNeXt_Tiny Tăng cường + Mask 0.93 0.94 0.87 0.85 0.85 0.81 90.2%
Vision Transformer Dữ liệu gốc 0.82 0.86 0.70 0.61 0.55 0.38 77.4%
Vision Transformer Tăng cường + Mask 0.89 0.91 0.82 0.80 0.80 0.76 86.8%
                       SO SÁNH ĐỘ CHÍNH XÁC TỔNG THỂ (%)
                  (Điều kiện: Dữ liệu Tăng cường + Mặt nạ BCDU-Net)
                  
ResNet50         [█████████████████████████████████████████████] 91.3%
ConvNeXt_Tiny    [████████████████████████████████████████████░] 90.2%
Vision Transf.   [████████████████████████████████████████░░░░░] 86.8%
Inception-V1     [███████████████████████████████████████░░░░░░] 84.5%

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

Những cải tiến kỹ thuật nổi bật

  • Khử nhiễu không gian bằng BCDU-Net Masking: Đề tài đã chứng minh việc nhân chập ma trận điểm ảnh với mặt nạ nhị phân từ BCDU-Net giúp loại bỏ hoàn toàn các yếu tố gây nhiễu biên (lông, nếp gấp biểu bì, viền phản quang), giúp độ chính xác của toàn bộ 4 mô hình tăng từ $4.5%$ đến $9.4%$.
  • Cân bằng lớp thiểu số có định hướng: Thay vì tăng cường ngẫu nhiên toàn bộ tập dữ liệu, kỹ thuật nội suy affine có kiểm soát trên 2 lớp bccvasc đã kéo độ nhạy (Recall) của nhóm tổn thương mạch máu từ mức thấp $38% - 57%$ lên trên $76% - 81%$.
  • Đối chuẩn đa kiến trúc toàn diện: Thực hiện khảo sát thực nghiệm chuyên sâu giữa mô hình tích chập kinh điển (Inception-V1, ResNet50), mô hình tích chập hiện đại hóa (ConvNeXt_Tiny) và mô hình phi tích chập thuần Transformer (ViT) trên tập dữ liệu da liễu chuẩn.

Bảng đối chuẩn với các nghiên cứu công bố trước đây

Công trình nghiên cứu Phương pháp / Mô hình Kích thước tập dữ liệu Số lớp phân loại Độ chính xác (Accuracy)
Al-Masni et al. (2020) ResNet50 + Segmentation 2.000 ảnh ISIC 3 lớp 88.7%
Li & Shen (2021) Inception-ResNet-V2 1.500 ảnh HAM10000 3 lớp 87.2%
Đề tài tốt nghiệp (2024) ResNet50 + BCDU-Net Mask 1.769 ảnh HAM10000 3 lớp 91.3%
Đề tài tốt nghiệp (2024) ConvNeXt_Tiny + Mask 1.769 ảnh HAM10000 3 lớp 90.2%
                       MỨC ĐỘ CẢI THIỆN ĐỘ CHÍNH XÁC
             So với nghiên cứu của Li & Shen (2021) trên HAM10000
             
Đề tài (ResNet50 + BCDU-Net) : 91.3%  (+4.1% tuyệt đối)
Nghiên cứu Li & Shen (2021)  : 87.2%  (Baseline)

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

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

  • Hệ thống hỗ trợ ra quyết định lâm sàng (CDSS): Tích hợp vào phần mềm quản lý phòng khám chuyên khoa da liễu, hoạt động như một "ý kiến chuyên môn thứ hai" (Second Opinion) giúp bác sĩ giảm nguy cơ bỏ sót khối u ác tính.
  • Sàng lọc y tế từ xa (Teledermatology Triage): Triển khai tại các trạm y tế tuyến cơ sở; nhân viên y tế chụp ảnh soi da của bệnh nhân và hệ thống tự động phân loại nguy cơ cao (mel / bcc) để ưu tiên chuyển tuyến khẩn cấp.
[Bệnh nhân / Trạm Y tế] 
       │ (Ảnh soi da)
       ▼
[FastAPI REST Backend] ──► [BCDU-Net Engine (ONNX)] ──► [ResNet50 Classifier]
                                                              │
       ┌──────────────────────────────────────────────────────┘
       ▼
[JSON Payload]: { "class": "mel", "confidence": 0.948, "triage_level": "CRITICAL" }

Kiến trúc triển khai hệ thống (Deployment Architecture)

  • Engine suy luận: Mô hình ResNet50 được xuất sang định dạng ONNX (Open Neural Network Exchange) và tối ưu hóa bằng TensorRT để giảm độ trễ suy luận xuống dưới $35\text{ ms}$ trên mỗi ảnh $256 \times 256$.
  • Giao diện lập trình ứng dụng (API): Xây dựng trên nền tảng FastAPI (Python), cung cấp các endpoints chuẩn RESTful:
    • POST /api/v1/segmentation: Nhận ảnh soi da thô, trả về mặt nạ nhị phân base64.
    • POST /api/v1/classify: Nhận ảnh và mặt nạ, trả về phân phối xác suất của 3 lớp tổn thương.
  • Bảo mật và chuẩn y tế: Tuân thủ chuẩn mã hóa hình ảnh DICOM và quy chuẩn ẩn danh dữ liệu y tế theo tiêu chuẩn HIPAA/GDPR.

Lộ trình triển khai thực tế (12 Tháng)

  • Tháng 1 - Tháng 3: Đóng gói container hóa mô hình qua Docker, thiết lập cụm Kubernetes phục vụ API tải cao.
  • Tháng 4 - Tháng 6: Tiến hành thử nghiệm lâm sàng mù đôi (Double-blind pilot) tại 3 phòng khám chuyên khoa da liễu đối chứng với kết quả sinh thiết giải phẫu bệnh.
  • Tháng 7 - Tháng 9: Nâng cấp module suy luận biên trên thiết bị cầm tay sử dụng chip nhúng Jetson Orin Nano / Raspberry Pi 5 kết hợp Coral TPU.
  • Tháng 10 - Tháng 12: Đệ trình hồ sơ kiểm định an toàn phần mềm y tế và mở rộng tích hợp hệ thống lưu trữ và truyền hình ảnh y tế (PACS).

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

Hạn chế kỹ thuật hiện tại

  • Sự phụ thuộc tài nguyên của Vision Transformer: ViT đòi hỏi lượng dữ liệu tiền huấn luyện khổng lồ (JFT-300M / ImageNet-21k) để phát huy tối đa hiệu năng. Trên tập dữ liệu 1.769 ảnh, ViT chỉ đạt $86.8%$ do thiếu cảm ứng không gian cục bộ (Inductive Bias) so với CNN ($91.3%$).
  • Định kiến nhân khẩu học trong tập dữ liệu: Nguồn dữ liệu HAM10000 chủ yếu thu thập từ bệnh nhân Châu Âu, làm giảm khả năng khái quát hóa khi áp dụng trực tiếp trên các tông da tối màu (Fitzpatrick loại IV đến VI).
  • Rào cản giải thích mô hình (Explainable AI): Mặc dù phân loại chính xác, mô hình chưa tích hợp biểu đồ trực quan hóa vùng kích hoạt Grad-CAM theo thời gian thực cho bác sĩ điều trị.

Kế hoạch nâng cấp và hướng nghiên cứu mở rộng

  • Mở rộng quy mô bệnh lý: Tích hợp nhận diện toàn diện 7 nhóm bệnh lý da liễu bao gồm: Dày sừng quang hóa (Actinic Keratosis), Dày sừng tiết bã (Benign Keratosis), U xơ da (Dermatofibroma) và Nốt ruồi lành tính (Melanocytic Nevus).
  • Tích hợp Explainable AI (XAI): Cài đặt thuật toán Grad-CAM++ và Score-CAM giúp hiển thị bản đồ nhiệt (Heatmap) chỉ rõ vùng giải phẫu bệnh lý thúc đẩy mạng đưa ra dự đoán.
  • Mô hình học kết hợp đa phương thức (Multimodal Deep Learning): Kết hợp hình ảnh soi da với thông tin bệnh sử lâm sàng (tuổi, giới tính, tiền sử gia đình, vị trí giải phẫu khối u) để nâng cao độ nhạy chẩn đoán.

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

┌────────────────────────────────────────────────────────────────────────┐
│                        ĐỐI TƯỢNG HƯỞNG LỢI                             │
├───────────────────────────────────┬────────────────────────────────────┤
│ 👨‍⚕️ Cơ sở Y tế & Bác sĩ Da liễu    │ 💻 Kỹ sư AI & Lập trình viên       │
│ - Giảm 40% thời gian chẩn đoán ban│ - Kiến trúc mẫu ConvNeXt / ViT     │
│   đầu cho mỗi ca bệnh             │ - Mã nguồn tiền xử lý chuẩn y tế   │
│ - Tăng 15% độ nhạy phát hiện sớm  │ - Pipeline tối ưu hóa TensorRT     │
├───────────────────────────────────┼────────────────────────────────────┤
│ 🎓 Sinh viên Kỹ thuật Y sinh      │ 🔬 Nhóm Nghiên cứu Khoa học        │
│ - Tài liệu tham khảo đồ án chuẩn  │ - Dữ liệu thực nghiệm đa mô hình   │
│ - Quy trình thực thi ML khép kín  │ - Đối chuẩn khách quan CNN vs ViT  │
└───────────────────────────────────┴────────────────────────────────────┘
  • Sinh viên ngành Kỹ thuật Y sinh & Khoa học Dữ liệu: Tiếp cận tài liệu thiết kế hệ thống học sâu hoàn chỉnh từ tiền xử lý, phân đoạn ảnh đến phân loại đa lớp trên ảnh y tế chuẩn quốc tế.
  • Kỹ sư AI và Thị giác máy tính: Sở hữu mã nguồn hiện thực hóa các khối mạng tiên tiến (Custom ConvNeXt Block, Custom Multi-Head Attention) trên nền tảng TensorFlow/Keras.
  • Bác sĩ và Bệnh viện chuyên khoa da liễu: Được hỗ trợ bởi công cụ sàng lọc tự động có độ tin cậy $91.3%$, giúp giảm tải áp lực công việc và hạn chế tối đa nguy cơ chẩn đoán sai sót.
  • Nhà nghiên cứu Y tế số: Cung cấp số liệu đối chuẩn thực nghiệm chi tiết giữa 4 họ kiến trúc mạng, làm tiền đề phát triển các thuật toán học sâu kết hợp (Hybrid Models).

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 và chạy suy luận mô hình là gì?

Hệ thống yêu cầu máy chủ có CPU tối thiểu 4 cores (Intel Xeon hoặc AMD EPYC), 8GB RAM và 1 GPU NVIDIA có VRAM tối thiểu 4GB (hỗ trợ CUDA 11.8 trở lên, ví dụ NVIDIA T4, GTX 1660 Ti hoặc RTX 3050) để đảm bảo thời gian phản hồi dưới $100\text{ ms/ảnh}$. Trong môi trường chỉ có CPU, thời gian suy luận dao động từ $300\text{ ms}$ đến $600\text{ ms/ảnh}$.

2. Giới hạn mở rộng tải của hệ thống và giải pháp xử lý đồng thời là gì?

Mô hình triển khai qua FastAPI có thể xử lý đồng thời khoảng 30 requests/giây trên một GPU Tesla T4 đơn lẻ. Để mở rộng quy mô phục vụ hàng nghìn lượt khám từ xa đồng thời, hệ thống cần được triển khai qua mô hình cụm phân tán (Kubernetes Cluster) kết hợp dịch vụ Triton Inference Server của NVIDIA với cơ chế Dynamic Batching.

3. Làm thế nào để tích hợp hệ thống vào mạng thông tin bệnh viện (HIS/PACS) hiện hữu?

Hệ thống cung cấp module chuyển đổi chuẩn DICOM. Ảnh từ máy soi da sẽ được chuyển qua giao thức C-STORE của chuẩn PACS, backend tự động trích xuất pixel data, thực hiện tiền xử lý, đẩy qua mô hình dự đoán và ghi nhận kết quả trở lại định dạng DICOM Structured Report (DICOM-SR) để lưu trữ đồng bộ vào hồ sơ bệnh án điện tử (EMR).

4. Quy trình bảo trì và cập nhật mô hình khi xảy ra hiện tượng trôi dữ liệu (Data Drift) như thế nào?

Định kỳ hàng quý, hệ thống sẽ tự động tổng hợp các ca dự đoán có độ tin cậy thấp (Confidence Score $< 0.70$) cùng các ca có kết quả sinh thiết giải phẫu bệnh đối chứng. Toàn bộ dữ liệu mới này sẽ được gán nhãn lại bởi hội đồng chuyên môn và đưa vào pipeline huấn luyện tinh chỉnh (Fine-tuning) nhằm cập nhật trọng số mô hình mà không cần huấn luyện lại từ đầu.

5. Dự toán chi phí triển khai và thời gian thu hồi vốn (ROI) cho một phòng khám quy mô trung bình?

  • Chi phí đầu tư ban đầu: Khoảng $3.000 - $5.000 USD (bao gồm máy chủ tính toán GPU cục bộ, thiết bị soi da kỹ thuật số chuẩn y tế và chi phí tích hợp phần mềm).
  • Chi phí vận hành hàng tháng: Khoảng $100 - $200 USD (bảo trì hệ thống, sao lưu đám mây).
  • Thời gian thu hồi vốn (ROI): Từ 6 đến 9 tháng nhờ tăng 35% công suất tiếp nhận bệnh nhân mỗi ngày và giảm chi phí hội chẩn ngoài tuyến.

Kết luận

Đồ án tốt nghiệp "Ứng dụng mô hình máy học hỗ trợ phát hiện và phân loại tổn thương da" đã giải quyết trọn vẹn bài toán tự động hóa sàng lọc 3 bệnh lý da liễu nguy hiểm (bcc, mel, vasc) từ ảnh soi da chất lượng cao. Thông qua quy trình kết hợp phân đoạn BCDU-Net ($F1 = 0.849$) và kiến trúc học sâu ResNet50, nghiên cứu đã xác lập độ chính xác chẩn đoán ấn tượng $91.3%$, vượt trội so với các công trình nghiên cứu đối chuẩn trước đây.

Thành công của đề tài không chỉ khẳng định tính khả thi vượt bậc của trí tuệ nhân tạo trong y tế mà còn cung cấp nền tảng mã nguồn, kiến trúc triển khai và phương pháp luận kỹ thuật chuẩn xác cho các hệ thống hỗ trợ ra quyết định y khoa (CDSS). Việc sớm ứng dụng hệ thống vào thực tiễn hứa hẹn nâng cao năng lực sàng lọc sớm ung thư da, giảm chi phí y tế và mang lại cơ hội điều trị kịp thời cho người bệnh.