Bối cảnh và vấn đề nghiên cứu
Tổn thương da là một trong những vấn đề sức khỏe phổ biến trong y tế, được phân chia thành hai nhóm chính gồm tổn thương lành tính và tổn thương ác tính. Các tổn thương lành tính tuy không đe dọa trực tiếp đến tính mạng nhưng ảnh hưởng tiêu cực đến thẩm mỹ, chất lượng sống và sinh hoạt thường nhật; đồng thời một số tổn thương có thể diễn tiến phức tạp. Ngược lại, các tổn thương ác tính—đặc biệt là u hắc tố ác tính (Melanoma) và các dạng ung thư da ngoài Melanoma như ung thư biểu mô tế bào đáy (Basal Cell Carcinoma - BCC)—nếu không được phát hiện và can thiệp kịp thời sẽ có nguy cơ xâm lấn mô xung quanh và di căn xa, gây nguy hiểm nghiêm trọng đến tính mạng người bệnh.
Trong quy trình thăm khám lâm sàng da liễu thông thường, bác sĩ phải tiếp nhận thông tin bệnh nhân, quan sát trực tiếp, chụp ảnh lưu trữ và tiến hành đo đạc kích thước tổn thương bằng các phương pháp thủ công nhằm theo dõi tiến triển về diện tích, hình dạng và màu sắc qua từng giai đoạn điều trị. Thao tác đo đạc thủ công này tiêu tốn nhiều thời gian và công sức, đồng thời độ chính xác có thể bị ảnh hưởng bởi tính chủ quan của người thực hiện. Sự phát triển của các kỹ thuật học sâu (Deep Learning) cùng với việc công bố các bộ dữ liệu ảnh da liễu tiêu chuẩn quốc tế như HAM10000, PH2, DermNet, BCN20000 và ISIC đã mở ra tiềm năng ứng dụng trí tuệ nhân tạo vào việc tự động hóa quá trình phân tích hình thái, phân vùng ranh giới và phân loại bệnh lý.
Xuất phát từ thực tiễn trên, đồ án tốt nghiệp ngành Kỹ thuật Y sinh với đề tài "Thiết kế ứng dụng hỗ trợ nhận biết tổn thương da sử dụng Deep Learning" được nhóm tác giả Khuất Thu Uyên và Lê Đặng Đăng Khoa thực hiện dưới sự hướng dẫn của TS. Nguyễn Mạnh Hùng tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khoảng thời gian thực hiện từ 20/02/2023 đến 03/07/2023).
Mục tiêu nghiên cứu của đồ án là thiết kế một ứng dụng hoàn chỉnh hỗ trợ nhận biết tổn thương da sử dụng kỹ thuật học sâu, bao gồm các tính năng chính:
- Phân đoạn vùng da bị tổn thương từ hình ảnh đầu vào;
- Phân loại 7 nhóm tổn thương da: Melanoma (MEL), Basal Cell Carcinoma (BCC), Actinic Keratoses (AKIEC), Vascular Lesion (VASC), Defomatofibroma (DF), Benign Keratosis (BKL), Melanocytic Nevi (NV);
- Xử lý tiền ảnh nhằm loại bỏ các yếu tố gây nhiễu từ lông và tóc;
- Tính toán diện tích thực tế của vùng tổn thương dựa trên hệ số diện tích pixel xác định từ thiết bị thực nghiệm;
- Lưu trữ dữ liệu hình ảnh (định dạng PNG) và xuất phiếu kết quả khám bệnh (định dạng PDF).
Để đạt được mục tiêu trên, đề tài xác định và giải quyết 8 nội dung công việc cụ thể:
- Khảo sát bộ dữ liệu ISIC 2018 và tìm hiểu các dạng tổn thương da;
- Nghiên cứu phương pháp xử lý loại bỏ lông, tóc và giải thuật tính diện tích tổn thương;
- Xây dựng, huấn luyện mô hình phân đoạn và phân loại tổn thương da;
- Thiết kế và thi công thiết bị mô phỏng (hộp chụp ảnh chuyên dụng có đèn LED);
- Khảo sát yêu cầu và thiết kế giao diện đồ họa cho ứng dụng;
- Lập trình và đóng gói ứng dụng SkinAI thành tệp thực thi chạy trên hệ điều hành Windows;
- Đánh giá thực nghiệm hiệu năng các mô hình và hệ thống;
- Viết báo cáo tổng kết đồ án.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hình ảnh chụp tổn thương da từ bộ dữ liệu ISIC 2018 (và tập DermNet phục vụ kiểm thử ngoài); các mô hình học sâu phân đoạn (MFSNet) và phân loại (EfficientNet_v2, Swin Transformer v2); thiết bị mô phỏng thu nhận ảnh cố định tiêu cự.
- Phạm vi không gian và giới hạn kỹ thuật: Nghiên cứu thực hiện 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 TP. Hồ Chí Minh. Phạm vi nhận diện giới hạn trong 7 phân lớp tổn thương da theo tiêu chuẩn ISIC 2018; phép tính diện tích phụ thuộc vào hệ số quang sai và khoảng cách cố định của thiết bị mô phỏng được chế tạo trong đề tài; phần mềm được tối ưu và đóng gói cho hệ điều hành Windows.
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng trên nền tảng kết hợp giữa y học da liễu hình thái, xử lý ảnh số truyền thống và thị giác máy tính dựa trên học sâu.
Về phân loại bệnh lý, tổn thương da được chia thành hai nhánh lớn:
- Nhóm tổn thương lành tính: Bao gồm Actinic Keratoses (AKIEC), Vascular Lesion (VASC), Defomatofibroma (DF), Benign Keratosis (BKL) và Melanocytic Nevi (NV).
- Nhóm tổn thương ác tính: Bao gồm nhóm Melanoma với đại diện là ung thư hắc tố ác tính (MEL), và nhóm ngoài Melanoma với đại diện là ung thư biểu mô tế bào đáy (BCC).
Về bài toán phân đoạn ảnh (Image Segmentation), đề tài ứng dụng kiến trúc mạng MFSNet (Multi-scale Feature Fusion and Segmentation Network). MFSNet sử dụng mạng Res2Net (phiên bản res2net50_v1b_26w_4s) làm mạng xương sống (backbone) để trích xuất đặc trưng đa tỷ lệ. Cấu trúc mạng tích hợp các mô-đun chức năng:
- Mô-đun Boundary Attention (BA): Tiếp nhận đặc trưng cấp thấp $F_2, F_3$ nhằm học và làm rõ đường biên ranh giới tổn thương, tránh nhầm lẫn giữa vùng bệnh lý và mô lành lân cận;
- Mô-đun Partial Decoder (PD): Tái tạo và tổng hợp đặc trưng sâu từ các tầng $F_4, F_5$ dựa trên nguyên lý Receptive Field Block (RFB) để tạo ra bản đồ phân đoạn toàn cục;
- Mô-đun Reverse Attention (RA): Gồm các nhánh $RA_2, RA_3, RA_4$ thực hiện giám sát ngược, tinh chỉnh vùng tổn thương từ tầng sâu lên tầng nông;
- Mô-đun Edge Convolution: Tích chập trích xuất đường viền từ đặc trưng cấp thấp.
Quá trình tối ưu mạng MFSNet sử dụng hàm tổn thất kết hợp toàn cục và cục bộ:
$$\mathcal{L} = \mathcal{L}_s + \mathcal{L}B$$
Trong đó $\mathcal{L}s = \mathcal{L}{\omega BCE} + \mathcal{L}{\omega IoU}$ với hệ số trọng số $\delta = 0{,}9$ nhằm tăng cường trọng số cho các pixel khó phân loại ở vùng biên; $\mathcal{L}_B$ là tổn thất Binary Cross-Entropy trên bản đồ biên.
Về bài toán phân loại hình ảnh (Image Classification), nghiên cứu khảo sát hai kiến trúc học sâu tiên tiến:
- EfficientNet_v2: Kiến trúc mạng tích chập tối ưu hóa đồng thời độ sâu, độ rộng và độ phân giải hình ảnh thông qua hệ số tỷ lệ phức hợp (compound scaling); sử dụng khối MBConv cải tiến với cơ chế Window-based Self-Attention (W-MSA), chuẩn hóa Layer Normalization và hàm kích hoạt GELU. Nhóm tác giả khảo sát phiên bản EfficientNet_v2_s và EfficientNet_v2_m.
- Swin Transformer v2 (Swin_v2): Kiến trúc thị giác dựa trên Transformer với cơ chế phân chia cửa sổ trượt (shifted window attention) giúp giảm độ phức tạp tính toán và học các phụ thuộc không gian dài hạn; khảo sát các phiên bản T, S và B.
Hàm mất mát cho bài toán phân loại 7 lớp là CrossEntropyLoss, tiếp nhận nhãn biểu diễn dưới dạng One-Hot Encoding:
$$\text{Loss} = -\sum_{c=1}^{M} y_c \log(p_c)$$
Phương pháp nghiên cứu thực nghiệm và nguồn dữ liệu:
- Dữ liệu nghiên cứu: Toàn bộ mô hình được phát triển dựa trên bộ dữ liệu mở quốc tế ISIC 2018 (International Skin Imaging Collaboration). Tập dữ liệu được phân chia cụ thể cho hai nhiệm vụ:
- Nhiệm vụ phân đoạn (Task 1): Tổng cộng 2.594 mẫu huấn luyện, 100 mẫu kiểm định và 1.000 mẫu kiểm tra kèm mặt nạ nhị phân ground-truth.
- Nhiệm vụ phân loại (Task 3): Gồm 10.015 mẫu huấn luyện, 193 mẫu kiểm định và 1.512 mẫu kiểm tra thuộc 7 nhãn bệnh. Ngoài ra, 140 mẫu ngẫu nhiên từ bộ dữ liệu DermNet được sử dụng để kiểm thử độc lập.
- Độ đo đánh giá:
- Phân đoạn: Dice Similarity Coefficient (DSC), Intersection over Union (IoU), Sensitivity và Specificity.
- Phân loại: Accuracy, Precision, Recall và F1-score tính toán từ ma trận nhầm lẫn (Confusion Matrix).
Thiết kế và triển khai
Hệ thống được thiết kế hoàn chỉnh theo mô hình tích hợp giữa thiết bị thu nhận phần cứng và ứng dụng phần mềm máy tính mang tên SkinAI.
Thiết kế phần cứng thiết bị mô phỏng
Thiết bị phần cứng là một hộp chụp ảnh kín chuyên dụng được dựng mô hình 3D trên phần mềm SolidWorks và gia công hoàn thiện:
- Cấu trúc quang học: Tích hợp camera kỹ thuật số bên trong hộp kín cùng hệ thống đèn LED chiếu sáng nhân tạo đồng đều, loại bỏ ảnh hưởng của ánh sáng môi trường bên ngoài.
- Tiêu cự cố định: Khoảng cách từ thấu kính camera đến bề mặt tiếp xúc tổn thương da được xác lập cố định ở mức $d = 5\text{ cm}$. Qua các thí nghiệm kiểm tra khả năng lấy nét ở các khoảng cách khác nhau, cự ly 5 cm cho hình ảnh sắc nét, không bị biến dạng quang học và đảm bảo hệ số quy đổi pixel sang đơn vị đo thực tế có tính lặp lại cao.
Giải thuật tiền xử lý và tính diện tích
Quy trình tiền xử lý loại bỏ nhiễu lông, tóc bao gồm chuỗi thao tác xử lý ảnh số:
- Chuyển đổi ảnh gốc hệ màu RGB sang ảnh mức xám (Grayscale);
- Áp dụng phép biến đổi hình thái học BlackHat với phần tử cấu trúc (structuring element) hình chữ thập kích thước $17 \times 17$ nhằm làm nổi bật các cấu trúc tối và mảnh;
- Phân ngưỡng nhị phân với giá trị ngưỡng cố định bằng 10 để tạo mặt nạ nhị phân tách lông, tóc (các pixel lớn hơn ngưỡng mang giá trị 1 - màu trắng);
- Áp dụng thuật toán Inpainting để tái tạo vùng ảnh bị che khuất bằng cách nội suy từ các pixel lân cận, tạo ra ảnh sạch không còn lông tóc trước khi đưa vào mô hình học sâu.
Công thức tính diện tích tổn thương thực tế:
$$S_{\text{tổn thương}} = \text{Hệ số diện tích pixel} \times \text{Số lượng pixel vùng tổn thương}$$
Hệ số diện tích pixel được chuẩn hóa thông qua thực nghiệm đo đạc các mẫu chấm tròn có diện tích hình học biết trước đặt trong hộp chụp ở cự ly $d = 5\text{ cm}$.
| Mẫu chuẩn nghiệm |
Đường kính (mm) |
Diện tích thực tế $S$ ($mm^2$) |
Số lượng pixel ghi nhận |
Hệ số diện tích pixel ($mm^2$/pixel) |
| Chấm tròn 1 |
20 |
314,159 |
20.803 |
0,015101 |
| Chấm tròn 2 |
10 |
78,5398 |
5.218 |
0,015051 |
| Toàn vùng chụp |
- |
1.914 |
126.084 |
0,015180 |
| Giá trị trung bình |
- |
- |
- |
0,015098692 |
Căn cứ kết quả thực nghiệm, nhóm tác giả chọn hệ số cố định là $0{,}0151\text{ }mm^2/\text{pixel}$ để nạp vào hệ thống tính toán diện tích.
Xây dựng phần mềm SkinAI
Ứng dụng SkinAI được xây dựng bằng ngôn ngữ Python, sử dụng thư viện PyTorch để thực thi các mạng nơ-ron học sâu và thư viện Tkinter để phát triển giao diện người dùng đồ họa (GUI).
Quy trình vận hành của ứng dụng gồm các bước:
- Giao diện tiếp nhận thông tin bác sĩ phụ trách, hệ số pixel (mặc định 0,0151) và hồ sơ bệnh nhân;
- Thu nhận ảnh trực tiếp thông qua camera kết nối USB hoặc nạp tệp ảnh có sẵn từ bộ nhớ máy tính;
- Thực hiện tiền xử lý loại bỏ lông tóc tự động;
- Nạp ảnh vào mô hình MFSNet (kích thước chuẩn hóa $256 \times 256$) để trích xuất mặt nạ phân đoạn, đếm số pixel tổn thương và tự động tính diện tích thực tế ($mm^2$);
- Nạp ảnh vào mô hình Swin_v2_b để phân loại và trả về xác suất chẩn đoán 7 nhóm tổn thương;
- Hiển thị trực quan ảnh gốc, ảnh đã khử nhiễu, mặt nạ phân vùng, diện tích và kết quả phân loại;
- Hỗ trợ bác sĩ nhập chẩn đoán lâm sàng bổ sung, lưu ảnh mặt nạ (PNG) và kết xuất phiếu kết quả khám bệnh tự động sang định dạng PDF.
Toàn bộ ứng dụng được đóng gói độc lập bằng công cụ PyInstaller, chuyển hóa mã nguồn Python thành tệp thực thi (.exe) chạy trực tiếp trên các máy tính sử dụng hệ điều hành Windows mà không cần cài đặt môi trường lập trình.
Nội dung chính theo từng chương
Chương 1. Tổng quan
Chương 1 trình bày lý do chọn đề tài dựa trên tính cấp thiết của việc phát hiện sớm tổn thương da ác tính và sự cần thiết của công cụ hỗ trợ đo lường khách quan trong lâm sàng. Tác giả xác định rõ mục tiêu đề tài là xây dựng ứng dụng Deep Learning tích hợp đo đạc diện tích, liệt kê 8 nội dung công việc triển khai, chỉ ra các giới hạn kỹ thuật (phân loại 7 nhóm tổn thương, hệ số diện tích gắn liền với thiết bị mô phỏng) và phác thảo bố cục báo cáo gồm 6 chương.
Chương 2. Cơ sở lý thuyết
Chương này tổng quan về phân loại bệnh lý da liễu, nêu rõ đặc điểm của từng nhóm tổn thương từ lành tính đến ác tính. Tác giả trình bày chi tiết toán học của bài toán phân đoạn ảnh, đi sâu vào cấu trúc bên trong của mạng MFSNet với các khối BA, RA, PD và thiết lập hàm tổn thất $\mathcal{L}_s$. Về bài toán phân loại, chương phân tích nguyên lý compound scaling của EfficientNet_v2, cơ chế tự chú ý cục bộ W-MSA, cấu trúc khối MBConv và kiến trúc Swin Transformer v2. Các chỉ số đo lường hiệu năng chuyên biệt cho phân đoạn (DSC, IoU, Sensitivity, Specificity) và phân loại (Accuracy, Precision, Recall, F1) cùng hướng dẫn sử dụng thư viện PyTorch, Tkinter và công cụ đóng gói phần mềm PyInstaller được tổng hợp đầy đủ.
Chương 3. Xây dựng mô hình
Chương 3 tập trung vào công tác chuẩn bị dữ liệu và cài đặt kỹ thuật cho các giải thuật:
- Thống kê chi tiết bộ dữ liệu ISIC 2018 theo từng phân lớp nhãn;
- Trình bày thuật toán lọc nhiễu lông tóc qua biến đổi BlackHat (kernel $17 \times 17$, threshold 10) kết hợp Inpainting;
- Thiết lập quy trình đo đạc thực nghiệm tính hệ số diện tích pixel ($0{,}015098692\text{ }mm^2/\text{pixel}$);
- Cài đặt chi tiết kiến trúc mạng MFSNet: Sử dụng backbone Res2Net-50 (
res2net50_v1b_26w_4s), kết hợp các nhánh tích chập cơ bản trong mô-đun RFB, các phép upsampling trong PD, mô-đun Edge Convolution và 3 nhánh Reverse Attention. Mô hình nhận đầu vào $256 \times 256$, tối ưu hóa bằng Adam với learning rate ban đầu 0,0001 (giảm 0,1 sau mỗi 20 epoch) qua 100 epoch huấn luyện, lấy đầu ra từ lateral_map_2 qua hàm Sigmoid;
- Xây dựng mô hình phân loại: Cấu hình lại tầng Fully Connected cuối của các mạng pre-trained (EfficientNet_v2_s, EfficientNet_v2_m, Swin_v2_t, Swin_v2_s, Swin_v2_b) thành 7 đầu ra tương ứng 7 nhãn bệnh; áp dụng hàm tổn thất CrossEntropyLoss, tối ưu bằng Adam và SGD trong 20 epoch.
Chương 4. Tính toán và thiết kế hệ thống
Chương 4 mô tả quá trình thiết kế hiện thực hóa hệ thống:
- Sơ đồ tổng quan liên kết giữa người dùng, thiết bị phần cứng, mô-đun xử lý học sâu và cơ chế xuất báo cáo;
- Thiết kế phần cứng: Trình bày chi tiết bản vẽ kỹ thuật hộp chụp (kích thước mặt trên, mặt trước), bố trí camera và dàn đèn LED chiếu sáng nhân tạo ở cự ly lấy nét tối ưu $d = 5\text{ cm}$;
- Thiết kế ứng dụng SkinAI: Xây dựng lưu đồ luồng dữ liệu (data flow) và giao diện màn hình chính bằng Tkinter, phân bổ các nút chức năng nhập liệu thông tin bệnh nhân/bác sĩ, nút chụp ảnh, nút chọn tệp, khu vực hiển thị hình ảnh và vùng xuất phiếu kết quả PDF.
Chương 5. Đánh giá kết quả
Chương này trình bày các số liệu thực nghiệm thu được sau khi triển khai hệ thống:
- Đánh giá thuật toán xóa lông tóc và độ chính xác tính diện tích: Kiểm tra sai số diện tích tại các vị trí trung tâm và vị trí góc của khung hình thu nhận;
- Đánh giá phân đoạn: Kiểm thử MFSNet trên 1.000 mẫu kiểm tra ISIC 2018 Task 1, ghi nhận các trường hợp phân đoạn chính xác và phân tích các ca tổn thương dị dạng gây khó khăn cho mô hình;
- Đánh giá phân loại: So sánh hiệu năng giữa EfficientNet_v2 và Swin Transformer v2 trên tập kiểm tra ISIC 2018 và trên tập thử nghiệm độc lập 140 mẫu DermNet; phân tích ma trận nhầm lẫn để chỉ ra tỷ lệ phân loại sai giữa các cặp bệnh lý có hình thái tương đồng.
Chương 6. Kết luận và hướng phát triển
Tác giả tổng kết lại các mục tiêu đã đạt được: Hoàn thành thiết bị phần cứng mô phỏng, thuật toán loại bỏ lông tóc, mô hình phân đoạn MFSNet, mô hình phân loại Swin_v2_b và ứng dụng SkinAI hoàn chỉnh. Đồng thời, chương đề xuất các giải pháp kỹ thuật cần tiếp tục nâng cấp trong tương lai.
Kết quả và đóng góp
Nghiên cứu đạt được các kết quả định lượng cụ thể được trích xuất trực tiếp từ các thực nghiệm trong văn bản:
| Nội dung thực nghiệm |
Mô hình / Phương pháp |
Dữ liệu kiểm thử |
Kết quả định lượng |
| Phân đoạn vùng tổn thương |
MFSNet (Backbone Res2Net) |
ISIC 2018 Task 1 (1.000 mẫu test) |
Chỉ số mDSC đạt 0,93 |
| Phân loại 7 nhóm tổn thương |
Swin Transformer v2 (Swin_v2_b) |
ISIC 2018 Task 3 (1.511/1.512 mẫu test) |
Độ chính xác (Accuracy) đạt 80,21% |
| Phân loại độc lập |
Swin_v2_b |
DermNet (140 mẫu ngẫu nhiên) |
Kiểm định qua ma trận nhầm lẫn |
| Lượng hóa quang học |
Đo nghiệm mẫu chấm tròn chuẩn |
Hộp chụp chuyên dụng ($d = 5\text{ cm}$) |
Hệ số diện tích pixel: 0,015098692 $mm^2$/pixel |
| Tiền xử lý ảnh |
BlackHat ($17 \times 17$) + Inpainting |
Ảnh tổn thương dính lông tóc |
Loại bỏ hoàn toàn sợi lông, tái tạo bề mặt da |
| Đóng gói hệ thống |
Tkinter + PyInstaller |
Máy tính hệ điều hành Windows |
Xuất tệp thực thi .exe độc lập, xuất PDF |
Số lượng mẫu phân bố trong bộ dữ liệu ISIC 2018 mà đề tài sử dụng được tổng hợp như sau:
| Nhiệm vụ / Nhãn tổn thương da |
Tập huấn luyện (Train) |
Tập kiểm thử (Validation) |
Tập kiểm tra (Test) |
| Nhiệm vụ phân đoạn (Task 1) |
2.594 |
100 |
1.000 |
| Nhiệm vụ phân loại (Task 3) |
10.015 |
193 |
1.512 |
| 1. Melanocytic Nevi (NV) |
6.705 |
123 |
909 |
| 2. Melanoma (MEL) |
1.113 |
21 |
171 |
| 3. Benign Keratosis (BKL) |
1.099 |
22 |
217 |
| 4. Basal Cell Carcinoma (BCC) |
514 |
15 |
93 |
| 5. Actinic Keratoses (AKIEC) |
327 |
8 |
43 |
| 6. Vascular Lesion (VASC) |
142 |
3 |
35 |
| 7. Defomatofibroma (DF) |
115 |
1 |
44 |
Đóng góp của đồ án so với các nghiên cứu trước được tác giả tự xác định:
- Đã liên kết đồng thời quy trình tiền xử lý khử nhiễu lông tóc, phân đoạn bóc tách vùng tổn thương, tự động tính diện tích thực tế và phân loại đa lớp trong cùng một phần mềm duy nhất, thay vì chỉ giải quyết đơn lẻ từng bài toán học máy riêng biệt.
- Thiết kế phần cứng hộp chụp có khoảng cách tiêu cự và nguồn sáng cố định ($d = 5\text{ cm}$), tạo cơ sở quang học tin cậy để chuyển đổi số lượng pixel phân đoạn thành diện tích vật lý thực ($mm^2$), hỗ trợ bác sĩ giảm thiểu thời gian đo đạc thủ công trong quy trình khám bệnh.
- Đóng gói giải pháp thành một phần mềm máy tính có giao diện thân thiện (SkinAI), cho phép nạp ảnh linh hoạt, quan sát trực quan kết quả phân tích học sâu và kết xuất tự động hồ sơ bệnh án định dạng PDF.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của nghiên cứu:
- Hệ số diện tích pixel ($0{,}0151\text{ }mm^2/\text{pixel}$) chỉ mang tính chính xác trên thiết bị mô phỏng được chế tạo trong đề tài với khoảng cách cố định $d = 5\text{ cm}$; khi thay đổi loại camera, thấu kính hoặc cự ly chụp, hệ số này sẽ không còn chuẩn xác.
- Mô hình phân loại chỉ giới hạn trong phạm vi 7 loại tổn thương da được cung cấp bởi bộ dữ liệu ISIC 2018, chưa bao quát được các bệnh lý da liễu phức tạp khác gặp trong thực tế lâm sàng.
- Quá trình phân đoạn đòi hỏi nén kích thước ảnh về chuẩn $256 \times 256$ pixel, làm giảm độ phân giải của các chi tiết vi mô ở rìa tổn thương.
- Bộ dữ liệu huấn luyện có sự mất cân bằng lớp nghiêm trọng (lớp NV chiếm tới 6.705 mẫu trong khi DF chỉ có 115 mẫu và VASC có 142 mẫu), gây khó khăn cho việc nhận diện chính xác các phân lớp thiểu số.
Hướng phát triển tiếp theo:
- Mở rộng tập dữ liệu huấn luyện sang các bộ cơ sở dữ liệu lớn khác và bổ sung thêm các phân lớp bệnh lý da liễu mới ngoài 7 nhóm hiện tại;
- Nghiên cứu cơ chế tự động căn chỉnh và hiệu chuẩn hệ số diện tích pixel linh hoạt theo tiêu cự để ứng dụng có thể tương thích với nhiều thiết bị soi da thương mại hoặc camera cầm tay khác nhau;
- Tối ưu hóa kiến trúc mạng để tăng tốc độ xử lý suy luận, nâng cao độ chính xác phân loại đối với các nhóm bệnh có số lượng mẫu ít.
Giá trị tham khảo
Đồ án tốt nghiệp là tài liệu tham khảo kỹ thuật hữu ích đối với:
- Sinh viên và học viên chuyên ngành Kỹ thuật Y sinh, Công nghệ Thông tin, Kỹ thuật Máy tính và Điện tử - Viễn thông đang thực hiện các nghiên cứu về xử lý ảnh y tế và ứng dụng học sâu trong chẩn đoán hỗ trợ (Computer-Aided Diagnosis - CAD).
- Những người phát triển ứng dụng thị giác máy tính thực tế cần tham khảo quy trình khép kín: Từ thiết kế phần cứng hộp chụp quang học, tiền xử lý hình thái học (BlackHat, Inpainting), cài đặt kiến trúc mạng tích chập kết hợp cơ chế chú ý (MFSNet) và mạng Transformer (Swin Transformer v2), đến xây dựng giao diện người dùng Tkinter và đóng gói tệp thực thi .exe.
- Phần đáng tham khảo nhất trong công trình là kỹ thuật triển khai chi tiết các khối chức năng của mạng MFSNet (RFB, Partial Decoder, Reverse Attention, Edge Convolution) viết trên nền tảng PyTorch và phương pháp thực nghiệm hiệu chuẩn hệ số diện tích pixel bằng các mẫu chấm tròn chuẩn.
Câu hỏi thường gặp
1. Ứng dụng SkinAI có khả năng phân loại những bệnh lý tổn thương da nào?
Ứng dụng có khả năng phân loại 7 nhóm tổn thương da theo chuẩn ISIC 2018 gồm: U hắc tố ác tính (Melanoma - MEL), ung thư biểu mô tế bào đáy (Basal Cell Carcinoma - BCC), dày sừng quang hóa (Actinic Keratoses - AKIEC), tổn thương mạch máu (Vascular Lesion - VASC), u xơ da (Defomatofibroma - DF), dày sừng lành tính (Benign Keratosis - BKL) và nốt ruồi sắc tố lành tính (Melanocytic Nevi - NV).
2. Phương pháp nào được sử dụng để loại bỏ lông và tóc gây nhiễu trên bề mặt ảnh da?
Nhóm tác giả chuyển ảnh màu RGB sang ảnh mức xám, áp dụng phép biến đổi hình thái học BlackHat với phần tử cấu trúc hình chữ thập kích thước $17 \times 17$, phân ngưỡng nhị phân với ngưỡng cố định bằng 10 để tạo mặt nạ định vị các sợi lông/tóc, và cuối cùng dùng thuật toán Inpainting để tái tạo vùng ảnh bị che khuất dựa trên các điểm ảnh lành xung quanh.
3. Làm thế nào hệ thống tính toán được diện tích thực tế ($mm^2$) của vùng da bị tổn thương?
Diện tích được tính bằng công thức: $S_{\text{tổn thương}} = \text{Hệ số diện tích pixel} \times \text{Số lượng pixel vùng tổn thương}$. Trong đó, số lượng pixel tổn thương được xác định từ mặt nạ phân đoạn nhị phân của mô hình MFSNet, còn hệ số diện tích pixel được chuẩn hóa bằng thực nghiệm đo mẫu chấm tròn chuẩn trên hộp chụp ở cự ly $d = 5\text{ cm}$, cho giá trị trung bình là $0{,}015098692\text{ }mm^2/\text{pixel}$ (hệ thống làm tròn chọn $0{,}0151\text{ }mm^2/\text{pixel}$).
4. Mô hình học sâu nào được lựa chọn cho bài toán phân đoạn và cấu hình huấn luyện ra sao?
Bài toán phân đoạn sử dụng kiến trúc mạng MFSNet với backbone Res2Net-50 (res2net50_v1b_26w_4s), kết hợp các khối RFB, Partial Decoder, Edge Convolution và Reverse Attention. Ảnh đầu vào được chuẩn hóa kích thước $256 \times 256$, mô hình được tối ưu bằng giải thuật Adam với learning rate khởi tạo là 0,0001 (giảm hệ số 0,1 sau mỗi 20 epoch) qua 100 epoch trên 2.594 mẫu tập huấn luyện ISIC 2018 Task 1, trích xuất mặt nạ từ tầng lateral_map_2 qua hàm Sigmoid.
5. Hiệu năng định lượng của các mô hình học sâu trong đề tài đạt mức bao nhiêu?
Trên tập dữ liệu kiểm tra ISIC 2018, mô hình phân đoạn MFSNet đạt chỉ số tương đồng xúc giác trung bình mDSC là 0,93 trên 1.000 mẫu kiểm tra. Đối với bài toán phân loại 7 nhóm tổn thương, mô hình pre-trained Swin Transformer v2 phiên bản Swin_v2_b đạt độ chính xác (Accuracy) 80,21% trên 1.511 mẫu kiểm tra của Task 3.
Kết luận
Đồ án tốt nghiệp "Thiết kế ứng dụng hỗ trợ nhận biết tổn thương da sử dụng Deep Learning" của sinh viên Khuất Thu Uyên và Lê Đặng Đăng Khoa đã xây dựng thành công một giải pháp tích hợp phần cứng và phần mềm hoàn chỉnh nhằm hỗ trợ bác sĩ trong quy trình khám bệnh da liễu. Công trình đã kết hợp đồng bộ thuật toán tiền xử lý khử nhiễu lông tóc, mô hình phân đoạn MFSNet đạt mDSC 0,93, mô hình phân loại đa lớp Swin_v2_b đạt độ chính xác 80,21% trên tập kiểm tra ISIC 2018, cùng cơ chế quy đổi diện tích thực tế dựa trên hệ số pixel $0{,}0151\text{ }mm^2/\text{pixel}$. Ứng dụng SkinAI được đóng gói thành tệp thực thi (.exe) độc lập trên nền tảng Windows, cung cấp đầy đủ các tính năng nạp ảnh, phân tích tự động, lưu trữ dữ liệu và xuất phiếu kết quả chẩn đoán dạng PDF, mang lại giá trị thực tiễn và tính tham khảo kỹ thuật rõ ràng trong lĩnh vực Kỹ thuật Y sinh.