43 Trang 15 DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Tên dầy đủ 1 CNN Convolutional Neural Network 2 NV Melanocytic Nevi 3 MEL Melanoma 4 BKL Benign Keratosis 5 BCC Basal Cell Carcinoma
TỔNG QUAN
ĐẶT VẤN ĐỀ
Tổn thương da là một vấn đề phổ biến trong chăm sóc sức khỏe y tế Nó được phân thành hai nhánh chính là tổn thương lành tính và ác tính Các loại tổn thương da lành tính sẽ không gây nguy hiểm đến sức khỏe, tính mạng nhưng lại ảnh hưởng rất nhiều đến tính thẩm mỹ, chất lượng đời sống và sinh hoạt Các loại tổn thương da ác tính nếu không được phát hiện và chữa trị kịp thời sẽ lan truyền và di căn đến các bộ phận khác khiến bệnh tình càng thêm nghiêm trọng hơn Như vậy, cho dù là tổn thương lành tính hay ác tính, ta vẫn nên thăm khám định kỳ để phát hiện sớm và ngăn ngừa biến chứng
Một quy trình thăm khám sẽ bao gồm các bước tiếp nhận thông tin từ bệnh nhân, kiểm tra, đánh giá tổn thương da và cuối cùng là đưa ra kết quả chẩn đoán Để kiểm tra và đánh giá vùng tổn thương phải tiến hành đo đạc kích thước và chụp lại hình ảnh của vùng tổn thương da nhằm theo dõi sự thay đổi của các yếu tố kích thước, hình dạng, màu sắc theo thời gian Tuy nhiên, việc đo đạc theo cách truyền thống có thể tốn thời gian và công sức của bác sĩ Ở một khía cạnh khác, việc nghiên cứu và áp dụng Deep Learning vào trong các ứng dụng y tế, đặc biệt là các ứng dụng hỗ trợ phát hiện tổn thương da được đánh giá là có tiềm năng phát triển lớn trong tương lai Bằng chứng là trong những năm qua, nhiều tổ chức, viện nghiên cứu đã không ngừng thu thập dữ liệu và công khai các bộ dữ liệu lớn về các tổn thương da như HAM10000 [1], PH2 [2], DermNet [3], BCN20000 [4], ISIC [5] với mục đích tìm kiếm các mô hình tốt nhất để phân tích các loại tổn thương da Qua quá trình khảo sát, nhóm nhận thấy đã có nhiều nghiên cứu về mô hình Deep Learning đạt được hiệu suất cao trong cả hai nhiệm vụ phân đoạn và phân loại các tổn thương da Trong nhiệm vụ phân đoạn có mô hình MFSNet đạt chỉ số DSC trên cả ba bộ dữ liệu HAM10000 là 0.906, PH2 là 0.954 và ISIC 2017 là 0.987 [6] Trong nhiệm vụ phân loại, một vài mô hình điển hình có thể kể đến như FixCaps với độ chính xác lên đến 96.49% trên bộ dữ liệu HAM10000 [7], mạng VGG19 đạt độ chính xác 80.00% trên bộ dữ liệu ISCI 2020
[5] Như vậy, việc phát triển một ứng dụng áp dụng mô hình Deep Learning để hỗ trợ bác sĩ phân tích hình ảnh của tổn thương da là có cơ sở và khả thi
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" nhóm mong muốn đưa ra một giải pháp xác định kích thước vùng tổn thương từ hình ảnh đầu vào để rút ngắn quy trình khám bệnh ở bước đo đạc kích thước Đồng thời, áp dụng mô hình Deep Learning trong việc phân đoạn, phân loại vùng tổn thương, từ đó giúp bác sĩ có thêm thông tin và kết quả để tham khảo, đưa ra chẩn đoán chính xác hơn.
MỤC TIÊU
Mục tiêu của đề tài là “Thiết kế ứng dụng hỗ trợ nhận biết tổn thương da sử dụng Deep Learning” với các tính năng chính bao gồm:
- Phân đoạn được vùng tổn thương da
- Phân loại được 7 loại tổn thương da bao gồm: MEL, BCC, AK, VASC,
- Xử lý loại bỏ các nhiễu lông, tóc
- Tính toán diện tích vùng tổn thương dựa trên hệ số diện tích pixel
- Lưu trữ hình ảnh và xuất ra kết quả khám bệnh dưới dạng tệp PDF.
NỘI DUNG NGHIÊN CÚU
Trong quá trình thực hiện Đồ án tốt nghiệp với đề tài “Thiết kế ứng dụng hỗ trợ nhận biết một số tổn thương da sử dụng Deep Learning”, nhóm chúng em tập trung giải quyết và hoàn thành được những nội dung sau:
Nội dung 1: Khảo sát bộ dữ liệu ISIC 2018, tìm hiểu các loại tổn thương da
Nội dung 2: Xử lý loại bỏ lông, tóc và tính toán diện tích tổn thương
Nội dung 3: Xây dựng và huấn luyện mô hình phân đoạn, phân loại tổn thương Nội dung 4: Thiết kế và thi công thiết bị mô phỏng
Nội dung 5: Thiết kế giao diện ứng dụng hỗ trợ nhận biết tổn thương da
Nội dung 6: Lập trình cho ứng dụng SkinAI
Nội dung 7: Viết báo cáo.
GIỚI HẠN
Các thông số giới hạn của đề tài bao gồm:
- Phân loại được 7 loại tổn thương da bao gồm: MEL, BCC, AK, VASC,
- Diện tích được tính toán dựa trên hệ số diện tích pixel của thiết bị mô phỏng trong đề tài
- Xây dựng một ứng dụng hỗ trợ nhận biết tổn thương da với các chức năng: Xử lý loại bỏ lông tóc, phân loại, phân đoạn và tính toán diện tích vùng tổn thương; Hỗ trợ lưu trữ hình ảnh dưới dạng tệp PNG và xuất kết quả khám bệnh thành tệp PDF
BỐ CỤC
Trình bày lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, thông số giới hạn và bố cục đề tài.
CƠ SỞ LÝ THUYẾT
TỔNG QUAN VỀ CÁC TỔN THƯƠNG DA
Tất cả mọi người ở mọi lứa tuổi đều có khả năng mắc các tổn thương da Các nốt tổn thương da có thể xuất hiện ở nơi trên cơ thể, thông thường xuất hiện nhiều ở mặt, tay, chân, lưng, cổ, ngực Để đánh giá và xác định các tổn thương da, các chuyên gia thường dựa vào các yếu tố như kích thước, hình dạng màu sắc, vùng biên tổn thương, sự thay đổi và triệu chứng [8]
Hình 2.1 Tổng quan về phân loại các tổn thương da Tổn thương da được chia thành hai nhánh chính là tổn thương lành tính và tổn thương ác tính Tổn thương lành tính thường không gây nguy hiểm đến sức khỏe, tuy nhiên nó có thể ảnh hưởng rất nhiều về mặt thẩm mỹ cũng như trong một vài trường hợp hiếm hoi sẽ phát triển thành ác tính Như trong hình 2.1, một số loại tổn thương lành tính có thể kể đến như: AK, VASC, DF, BKL, NV Tổn thương ác tính nếu không phát hiện và chữa trị kịp thời có thể gây ra các vấn đề nghiêm trọng, bao gồm sự lan truyền của tế bào ung thư vào các cơ quan và mạch máu, gây ra sự lan rộng và tổn thương toàn bộ hệ thống cơ thể Tổn thương ác tính lại được phân loại thành nhóm Melanoma với đại diện là MEL và nhóm ngoài Melanoma với đại điện là BCC [9]
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
BÀI TOÁN PHÂN ĐOẠN
Phân đoạn hình ảnh là một lĩnh vực quan trọng trong xử lý ảnh và máy học Đây là quá trình cực kỳ hữu ích để phân tách và xác định các vùng khác nhau trong hình ảnh dựa trên các thuộc tính như màu sắc, cường độ, kết cấu, và các thông tin khác Mục tiêu của phân đoạn hình ảnh là tạo ra các vùng riêng biệt và đa dạng, mỗi vùng đại diện cho một đối tượng hoặc phần cụ thể trong bức ảnh Việc này cho phép máy tính hiểu và phân loại các đối tượng trong hình ảnh một cách tự động, giúp cải thiện hiệu suất của hệ thống xử lý ảnh và các ứng dụng ứng dụng liên quan
Có nhiều phương pháp phân đoạn hình ảnh khác nhau được áp dụng, phụ thuộc vào tính chất của dữ liệu và yêu cầu của ứng dụng Trong các ứng dụng đơn giản, phân đoạn hình ảnh có thể dựa vào cơ sở dữ liệu màu sắc và ngưỡng để tách các vùng theo màu sắc hoặc cường độ khác nhau Tuy nhiên, đối với các ứng dụng phức tạp hơn, nhất là trong lĩnh vực y tế, cần sử dụng các thuật toán tiên tiến hơn và dựa vào sự tiến bộ của Deep LearningCác phương pháp phân đoạn hình ảnh có thể bao gồm các kỹ thuật cơ bản như phân đoạn theo màu sắc hoặc các thuật toán phân đoạn tiên tiến sử dụng Deep Learning như mạng nơ-ron tích chập CNN (Convolutional Neural Networks), mạng Unet [10]
2.2.1 Phương pháp phân đoạn dựa trên kiến trúc MFSNet a) Tổng quan kiến trúc MFSNet
MFSNet là một kiến trúc mạng được đề xuất bởi Hritam Basak và các cộng sự [6]
Nó được xây dựng trên backbone Res2Net, một mạng CNN để trích xuất đặc trưng
Có 5 lớp tích chập được sử dụng trong đó F2 và F3 được đưa vào mô-đun BA, hai lớp tiếp theo F4 và F5 sẽ được đưa vào mô-đun PD Đồng thời, F4 và F5 cũng được đưa vào các nhánh RA Cuối cùng, đầu ra đi qua hàm Sigmoid để tạo ra kết quả mặt nạ phân loại cuối cùng
Hình 2.2 Tổng quan kiến trúc mô hình MFSNet [6]
Dựa vào kiến trúc trong hình 2.2 thì quá trình từ hình ảnh đầu vào đến hình ảnh phân đoạn cuối cùng sẽ như sau:
1 Hình ảnh ban đầu được qua một loạt các lớp tích chập để trích xuất đặc trưng bằng cách dùng Res2Net là backbone, nơi thực hiện down- sampling Trong đó, F2 và F3 sẽ đi qua mô-đun BA để học thông tin của đường biên Up-sampling được thực hiện ở mô-đun PD
2 BA lấy đặc trưng từ bản đồ phân đoạn toàn cục (đầu ra của mô-đun PD) và đặc trưng của lớp tính chập, sau đó thực hiện một loạt phép biến đổi sẽ thu được một bản đồ tách biên hoàn chỉnh hơn Bản đồ biên này sẽ được dùng tiếp tục ở mô-đun RA
3 RA lấy đặc trưng của 2 lớp tích chập cuối cùng là F4 và F5 kết hợp với
BA và up-sampling của lớp sau RA dùng 2 nhánh riêng biệt để tìm các đặc trưng nhằm tạo ra các mặt nạ phân đoạn với 2 vùng khác nhau là vùng tổn thương và nền RA dự đoán vùng có tổn thương với các chi tiết nhỏ nhất, bắt đầu từ lớp tích chập cuối cùng để tạo ra độ tin cậy ngữ nghĩa cao nhất sau đó sẽ đi tuần tự tới lớp tích chập F4 Cuối cùng dự đoán của hai nhánh này kết hợp lại và kết quả của quá trình kết hợp sẽ đi qua hàm Sigmoid để tạo ra đầu ra phân đoạn cuối cùng
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT b) Mô-đun BA (Boundary Attention)
Mục đích của mô-đun BA là giúp cải thiện khả năng phát hiện và tập trung vào biên của vùng tổn thương, đồng thời giảm thiểu ảnh hưởng của các vùng không quan trọng Việc thêm thông tin về biên sẽ hữu ích trong việc tránh gây nhầm lẫn các vùng phân đoạn gần ranh giới tổn thương Dựa vào thực tế cho thấy, các đặc trưng cấp thấp (F1, F2, F3) sẽ chứa nhiều thông tin về biên hơn, do đó ta sẽ đưa các đặc trưng F2 và F3 vào mô-đun BA để xử lý
Hình 2.3 Kiến trúc của mô-đun BA [6] c) Mô-đun RA (Parallel Reverse Attention branch)
Trong mạng nơ-ron, việc học và cải thiện quá trình tinh chỉnh nếu không có sự giám sát đúng đắn sẽ dẫn đến kết quả phân đoạn không chính xác Vì thế, việc sử dụng
RA là một phương pháp để cải thiện quá huấn luyện của mô hình
Hình 2.4 Kiến trúc của mô-đun RA [6]
Mô-đun RA sẽ hướng dẫn quá trình học của toàn bộ mạng Lớp tích chập F4 và F5 kết hợp với đầu ra của mô-đun BA sẽ tạo nên một cặp lớp tích chập với kích thước bộ lọc là 64 Lớp tích chập này sẽ thực hiện phép nhân phần tử với một tensor 64 kênh được tạo ra từ đầu ra up-sampling của mô-đun RA kế tiếp và cuối cùng tạo thành đầu ra của mô-đun RA hiện tại d) Mô-đun Partial Decoder
Mô-đun PD là một mô-đun giải mã riêng biệt được sử dụng trong mạng MFSNet để tái tạo thông tin đặc trưng của các lớp đặc trưng sâu nhất Nó giúp khôi phục thông tin từ các lớp đầu vào có độ phân giải thấp, giúp cải thiện khả năng phân đoạn của mô hình Nó được xây dựng dựa trên ý tưởng của mô-đun Receptive Field Block (RFB) [11]
Hình 2.5 Kiến trúc của mô-đun PD [6]
Cụ thể, ba lớp đầu tiên được coi là các đặc trưng cấp thấp sẽ không dùng cho mô- đun PD, thay vào đó là lớp F4, F5 sẽ được đưa vào mô-đun này Để tăng tốc quá trình lan truyền đặc trưng, một loạt các hoạt động chuẩn hóa tích chập đã được thêm như trong hình 2.5 Mô-đun PD tạo ra một bản đồ phân đoạn toàn cục thông qua các phép nhân phần tử và phép nối Bản đồ phân đoạn toàn cục đóng vai trò hướng dẫn toàn bộ mô hình MFSNet Các hoạt động downsampling và upsampling thích hợp sẽ được thực hiện xuyên suốt sao cho kích thước của các khối khớp với nhau trước khi ghép nối Tổng thể, mô-đun PD trong MFSNet giúp khôi phục thông tin từ các lớp F4, F5 và cải thiện khả năng phân đoạn tổng thể của mạng e) Hàm tổn thất
ℒ 𝐵 là tổng của các tổn thất được tính toán cho tất cả các điểm ảnh trong bản đồ biên Mục tiêu của quá trình huấn luyện là điều chỉnh các tham số của mô hình sao
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT cho ℒ 𝐵 giảm, từ đó cải thiện hiệu suất của mô hình phân đoạn biên trên tập dữ liệu huấn luyện Hàm tổn thất ℒ 𝐵 được tính theo công thức cross-entropy loss giữa bản đồ biên dự đoán 𝑂 𝐵 và bản đồ biên thực tế 𝐺 𝐵
- ℒ 𝐵 là hàm tổn thất BCE, được tính toán dựa trên 𝐺 𝐵 và 𝑂 𝐵
- 𝐺 𝐵 là bản đồ biên thực tế
- 𝑂 𝐵 là bản đồ biên được dự đoán bởi mô hình
Bởi vì bản đồ biên chỉ chứa giá trị 0 hoặc 1 (đại diện cho các điểm thuộc biên và các điểm không thuộc biên), nên hàm tổn thất ℒ 𝐵 sử dụng hàm log likelihood để tính toán mức độ sai lệch giữa dự đoán và thực tế Để giám sát hiệu suất phân đoạn, nghiên cứu [6] đã đề xuất một hàm tổn thất kết hợp để cung cấp giám sát toàn cục hiệu quả và giám sát cục bộ giúp tăng cường khả năng phân đoạn ảnh Nó được biểu diễn bằng công thức (2.2) Trong đó, δ là trọng số được đặt là 0.9 trong thực nghiệm của nghiên cứu
ℒ 𝑠 = δℒ 𝜔𝐵𝐶𝐸 + (1 − 𝛿)ℒ 𝜔𝐼𝑜𝑈 (2.2) Hàm tổn thất kết hợp ℒ 𝑠 được tính bằng cách lấy tổng của hàm tổn thất ℒ 𝜔𝐵𝐶𝐸 và hàm tổn thất ℒ 𝜔𝐼𝑜𝑈 Mục đích của việc sử dụng hàm tổn thất kết hợp là tăng cường trọng số của các pixel khó thay vì gán trọng số bằng nhau cho mỗi pixel như trong các hàm tổn thất IoU và BCE tiêu chuẩn Các đầu ra phụ từ CNN được tăng kích thước để tạo thành bản đồ phân đoạn có cùng kích thước với đúng nhãn G Do đó, hàm tổn thất tổng thể được mở rộng thành công thức (2.3)
- ℒ 𝑠 (G, O 𝑠 ): Tổn thất kết hợp giữa đầu ra của mô hình phân đoạn và Ground truth, dùng để phân doạn hiệu suất cấp ảnh
- ℒ 𝑆 (G, O 𝑖 𝑈𝑃 ): Tổn thất kết hợp giữa đầu ra được usampled O 𝑖 𝑈𝑃 và Ground truth để giám sát hiệu suất phân đoạn cấp pixel
- ℒ 𝐵 (G 𝐵 , O 𝐵,𝑖 ): Tổn thất BCE được giới thiệu ở công thức (2.1)
BÀI TOÁN PHÂN LOẠI
Phân loại là một tác vụ quan trọng giúp phân loại các mẫu dữ liệu vào các lớp hoặc nhãn khác nhau dựa trên thông tin mang lại Quá trình này yêu cầu xây dựng một mô hình dự đoán phân loại dựa trên dữ liệu huấn luyện đã biết trước
2.3.1 Một số mô hình phân loại
Trong phần dưới đây, nhóm giới thiệu hai kiến trúc mô hình bao gồm một đại diện mô hình phân loại dựa trên CNN là Efficientnet_v2 và một đại diện cho mô hình phân loại dựa trên kiến trúc transformer là Swin_v2 a) EfficientNet_v2
EfficientNet là một kiến trúc mạng nơ-ron nhân tạo được giới thiệu bởi Mingxin Tan và Quoc V Le vào năm 2019 [12] Được xây dựng dựa trên ý tưởng chính là sử dụng hệ số mở rộng (compound scaling) để đồng thời tăng kích thước mô hình và độ phân giải của đầu vào, nhằm đạt được hiệu suất cao với số lượng tham số và tài nguyên tính toán hạn chế EfficientNet bao gồm ba yếu tố chính: độ sâu (depth), độ rộng (width), và độ phân giải (resolution)
Hình 2.6 Mô tả sự khác biệt của EfficientNet với các phương pháp thông thường
[12].(a) Mô tả phương pháp thông thường (b), (c), (d) Mô tả phương pháp tăng kích thước theo độ rộng, độ sâu và độ phân giải (e) Mô tả phương pháp EfficientNet
Trong kiến trúc của EfficientNet có khối MBConv như hình 2.14, khối này được sử dụng để điều chỉnh độ sâu và độ rộng của mô hình Nó bao gồm một loạt các lớp tích chập và các phép biến đổi như squeeze-and-excitation Khối MBConv giúp tăng khả năng biểu diễn và hiệu suất của mô hình bằng cách áp dụng các kỹ thuật như đặt trọng số, giảm kích thước đặc trưng thông qua lớp tích chập nhỏ 1x1 và mở rộng đặc trưng thông qua lớp tích chập lớn 3x3 hoặc 5x5 Khối MBConv cũng có thể được lặp lại nhiều lần để tạo ra độ sâu và độ rộng của mô hình tùy theo yêu cầu
EfficientNet_v2 là phiên bản tiếp theo của EfficientNet, được phát triển nhằm cải thiện hiệu suất và khả năng biểu diễn của mô hình, đồng thời giữ lại ưu điểm về kích thước nhỏ và tính linh hoạt của EfficientNet
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.7 Kiến trúc của khối MBConv [13]
Các mô hình EfficientNet_v2 sử dụng các kỹ thuật để cải thiện hiệu suất gồm:
- Cơ chế tự chú ý: EfficientNet_v2 giới thiệu cơ chế tự chú ý mới gọi là Window-based Self-Attention (W-MSA) Đây là một biến thể của nhóm tự chú ý, trong đó sự tương tác giữa các vị trí không chỉ dựa trên khoảng cách vị trí tương đối, mà còn dựa trên cửa sổ trượt áp dụng trên không gian đặc trưng
- Chuẩn hóa đầu ra: Trong EfficientNet_v1, Batch Normalization được sử dụng để chuẩn hóa đầu ra của các lớp Trong khi đó, EfficientNet_v2 sử dụng Layer Normalization thay thế Batch Normalization để thực hiện chuẩn hóa đầu ra trong các khối MBConv
- Hàm kích hoạt: Trong EfficientNet_v1, hàm kích hoạt Swish được sử dụng nhưng trong EfficientNet_v2 lại sử dụng hàm kích hoạt GELU (Gaussian Error Linear Unit) vì cho hiệu suất tính toán và khả năng biểu diễn tốt hơn trong mô hình
EfficientNet_v2 có các phiên bản như S, M, L Các phiên bản này khác nhau chủ yếu ở số lớp và số tham số của mô hình Từ bảng 2.2 cho thấy, phiên bản L có hiệu suất cao nhất với độ chính xác là 85.7% nhưng do lượng tham số quá nhiều nên thời gian huấn luyện lâu Phiên bản M cho thời gian huấn luyện giảm hơn một nửa nhưng dộ chính xác hầu như gần bằng phiên bản L Phiên bản S có số lượng tham số ít nhất, thời gian huấn luyện nhanh nhưng vẫn đạt được độ chính xác cao 83.90% Từ những yếu tố trên, nhóm nhận thấy EfficientNet_v2 phiên bản S và M phù hợp với ứng dụng và quyết định chọn hai phiên bản này để thử nghiệm trong phần 3.4
Bảng 2.1 So sánh giữa các phiên bản EfficientNet_v2 khi huấn luyện trên cùng một tập dữ liệu ImageNet với batch size là 16 [13]
EfficientNet_v2 Top Acc Tham số Thời gian huấn luyện (giờ)
Kiến trúc Transformer dựa trên cơ chế chú ý để xử lý thông tin không gian dài và mối quan hệ giữa các phần tử trong dữ liệu Điểm đặc biệt của Transformer là không sử dụng các lớp tích chập hay lớp tuần tự như các kiến trúc mạng truyền thống khác Thay vào đó, Transformer sử dụng các lớp tự chú ý để tính toán sự chú ý của các phần tử trong một chuỗi đầu vào liên quan đến nhau Quá trình này cho phép mô hình tìm ra các mối quan hệ không gian và phụ thuộc dài hạn giữa phần tử trong chuỗi
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.8 Kiến trúc của Swin Transformer [14]
Swin Transformer chia ảnh đầu vào thành một lưới các khối (block) và mỗi khối chứa một số kênh Swin Transfomer sử dụng một lớp Swin Transformer Block, trong đó các kênh được chia thành các nhóm nhỏ (windows) và được thực hiện quá trình của Transformer trên mỗi nhóm Sau đó, các kết quả được tổng hợp lại để tạo ra đầu ra cuối cùng
Hình 2.9 Mô tả và so sánh cấu trúc của Swin Transformer v1 và v2 [15]
Swin_v2 có các phiên bản bao gồm T, S và B Mỗi phiên bản khác nhau về số lượng kênh và số khối trong mỗi giai đoạn Chi tiết về số lượng kênh và số khổi của các phiên bản được thể hiện trong bảng 2.2 Ba phiên bản này sẽ được nhóm thử nghiệm trong phần 3.4
Bảng 2.2 So sánh giữ các phiên bản của swin_v2 [15]
2.3.2 Chỉ số đánh giá mô hình phân loại Để đánh giá hiệu suất của mô hình phân loại, ta cũng cần xác định các thành phần trong ma trận nhầm lẫn để từ đó tính toán các chỉ số đánh giá thích hợp như Accuracy, Precision, Recall, Specificity, F1-score
Hình 2.10 Ma trận nhầm lẫn
Ma trận nhầm lẫn trong phân loại là một ma trận vuông có kích thước NxN, với N là số lượng lớp (classes) Các hàng trong ma trận biểu thị các lớp thực tế, trong khi các cột biểu thị các lớp được dự đoán bởi mô hình Các phần tử của ma trận đại diện cho số lượng các mẫu thuộc từng kết hợp lớp thực tế và lớp dự đoán Ma trận nhầm lẫn cũng bao gồm bốn thành phần chính: True Positive (TP), False Positive (FP), False Negative (FN) và True Negative (TN)
Swin_v2 Kênh Số khối trong mỗi giai đoạn
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT a) Accuracy
Accuracy là tỷ lệ phần trăm các dự đoán chính xác trong tổng số các dự đoán Được tính bằng công thức sau:
Precision chỉ ra khả năng của mô hình phân loại đưa ra tỷ lệ giữa số dự đoán chính xác cho các mẫu được phân loại là dương tính Nó được tính bằng công thức:
Recall (Sensitivity hoặc True Positive Rate) chỉ ra khả năng của mô hình phân loại phát hiện đúng các mẫu dương tính thông qua công thức:
XÂY DỰNG MÔ HÌNH
BỘ DỮ LIỆU ISIC 2018
ISIC 2018 (International Skin Imaging Collaboration) [19] là bộ dữ liệu chuyên về hình ảnh da Nó là một tài nguyên mở, được cộng đồng nghiên cứu y tế toàn cầu công nhận và cùng đóng góp ISIC 2018 được thu thập nhằm mục đích xây dựng các hệ thống hỗ trợ chẩn đoán tổn thương da Các mẫu trong bộ dữ liệu được thu thập từ nhiều nơi khác nhau trên toàn cầu Mỗi hình ảnh được chụp từ các loại máy soi da khác nhau, có chất lượng và độ phân giải đa dạng Điều này giúp tăng tính đa dạng và khả năng chẩn đoán linh hoạt trên nhiều loại thiết bị Ngoài ra, trong thử thách ISIC 2018, tổ chức đã công bố các bộ dữ liệu phục vụ cho cả hai mục đích là phân loại và phân đoạn, điều này đáp ứng được yêu cầu đặt ra của nhóm là tạo ra một ứng dụng có thể phân đoạn vùng tổn thương và hỗ trợ bác sĩ phân loại chúng Bảng 3.1 Số lượng mẫu của bộ dữ liệu ISIC 2018 trong nhiệm vụ phân đoạn phân loại
3.1.1 Bộ dữ liệu ISIC 2018 cho nhiệm vụ phân đoạn Đối với nhiệm vụ phân đoạn, bộ dữ liệu ISIC 2018 cung cấp hình ảnh chụp từ nhiều máy loại máy soi da khác nhau được lưu dưới dạng jpg và ảnh mặt nạ nhị phân với kích thước tương đương được lưu dưới dạng png Như thống kê trong bảng 3.1, nhiệm vụ phân đoạn chia dữ liệu thành các tệp huấn luyện, kiểm thử và kiểm tra Tuy nhiên trong bài báo cáo này, mô hình chỉ huấn luyện trên tập huấn luyện và đánh giá kết quả mô hình phân đoạn bằng tập kiểm tra
Hình 3.1 Hình ảnh tổn thương và mặt nạ nhị phân tương ứng của bộ dữ liệu ISIC 2018
3.1.2 Bộ dữ liệu ISIC 2018 cho nhiệm vụ phân loại Đối với nhiệm vụ phân loại, bộ dữ liệu ISIC 2018 cung cấp hình ảnh dưới dạng jpg của 7 loại tổn thương da với nhiều kích thước khác nhau Hình ảnh một số mẫu được thể hiện trong hình 3.2
Hình 3.2 Hình ảnh một số mẫu của 7 loại tổn thương da trong bộ dữ liệu ISIC 2018
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH
Các nhãn của chúng được chú thích đầy đủ trong một tệp csv Tệp chú thích được cấu trúc theo kiểu "One-Hot Encoding" Mỗi hàng trong tệp chú thích đại diện cho một mẫu trong bộ dữ liệu, và 7 cột chứa thông tin về nhãn của mẫu tương ứng
Hình 3.3 Tệp chú thích của tập huấn luyện với 5 mẫu đầu tiên
Hình 3.3 cho thấy cấu trúc tệp chú thích bao gồm cột đầu tiên với tên "image" chứa tên tệp ảnh và 7 cột tiếp theo mang tên các nhãn cụ thể là "MEL", "NV", "BCC",
"AKIEC", "BKL", "DF", "VASC" Các giá trị trong các ô biểu thị cho sự hiện diện hoặc vắng mặt của nhãn tương ứng Ví dụ, giá trị 1 trong ô "NV" cho mẫu
ISIC_0034321 cho biết mẫu đó được gán nhãn là "NV" Số lượng mẫu chi tiết của từng phân lớp trong bộ dữ liệu đã được thống kê trong bảng 3.1
XỬ LÝ LOẠI BỎ LÔNG TÓC VÀ TÍNH DIỆN TÍCH VÙNG TỔN THƯƠNG
Việc loại bỏ lông, tóc là một bước quan trọng để cải thiện khả năng nhìn thấy và đánh giá tổn thương của bác sĩ Do đó, ở phần này nhóm sẽ trình bày một phương pháp loại bỏ lông, tóc bao gồm một chuỗi các phép xử lý ảnh được thể hiện như trong hình 3.4
Hình 3.4 Quy trình xử lý loại bỏ lông, tóc Đầu tiên, nhóm chuyển đổi từ ảnh màu sang ảnh xám để giảm chiều dữ liệu, thuận tiện cho các bước xử lý ảnh phía sau Tiếp theo, áp dụng phép biến đổi Blackhat với phần tử cấu trúc dạng hình chữ thập có kích thước 17x17 Phép biến đổi BlackHat này sẽ làm nổi bật những phần tử tối và mảnh Sau đó, đặt một giá trị ngưỡng để chuyển đổi thành ảnh nhị phân Những pixel có giá trị lớn hơn giá trị ngưỡng sẽ được đặt lại thành mức 1 (màu trắng), trong phương pháp này nhóm chọn giá trị ngưỡng là 10 Lông, tóc được đánh dấu là vùng màu trắng và phần còn lại là vùng màu đen Cuối cùng, sử dụng phương pháp inpainting để tái tạo giữa ảnh gốc và ảnh đã được phân ngưỡng nhị phân, đưa ra được hình ảnh cuối cùng đã được xóa bỏ đi lông, tóc Như vậy, sau khi thực hiện các bước xử lý trên, nhóm thu được kết quả như hình 3.5
Hình 3.5 Kết quả từng giai đoạn của quy trình xử lý loại bỏ lông, tóc
3.2.2 Phương pháp tính diện tích vùng tổn thương Để xác định diện tích thực tế của vùng tổn thương từ một hình ảnh, nhóm sử dụng phương pháp tính toán dựa trên công thức sau:
- 𝑆 𝑡ổ𝑛𝑡ℎươ𝑛𝑔 là diện tích thực tế của vùng tổn thương trên da
- Hệ số diện tích pixel đại diện cho diện tích thực của một pixel trong hình ảnh
- Số lượng pixel vùng tổn thương là tổng số pixel được xác định là tổn thương Để xác định hệ số diện tích pixel cho thiết bị sử dụng trong đề tài, nhóm đã sử dụng thiết bị thu lại hình ảnh một số chấm tròn với diện tích cho trước Sau đó, thực hiện đếm số lượng pixel của các chấm tròn Cuối cùng, áp dụng công thức (3.1) để suy ra hệ số diện tích hệ số pixel Kết quả tính toán của thí nghiệm này được trình bày trong bảng 3.2
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH
Bảng 3.2 Kết quả tính toán hệ số pixel cho thiết bị sử dụng trong đề tài Đường kính
Hệ số diện tích pixel (S/pixel)
Trung bình hệ số diện tích pixel 0.015098692
Dựa vào bảng 3.2 nhóm quyết định chọn hệ số diện tích pixel là 0.015 Cần lưu ý rằng, mỗi loại thiết bị khác nhau sẽ có hệ số diện tích pixel khác nhau nên hệ số này chỉ áp dụng cho thiết bị mô phỏng trong đề tài.
XÂY DỰNG MÔ HÌNH PHÂN ĐOẠN
Trong phần này, nhóm trình bày quá trình xây dựng mô hình phân đoạn MFSNet, một kiến trúc mạng nơ-ron tích chập đề xuất bới [6], được thiết kế đặc biệt cho việc phân đoạn hình ảnh về tổn thương da Nhóm lựa chọn bộ dữ liệu ISIC 2018 làm môi trường thử nghiệm để khảo sát hiệu suất phân đoạn của kiến trúc MFSNet ISIC
2018 chứa những hình ảnh tôn thương da đa dạng và phức tạp, đòi hỏi một mô hình mạnh mẽ để thực hiện phân đoạn chính xác Toàn bộ chương trình được triển khai dựa trên lớp nn.Mô-đun trong PyTorch bao gồm các thành phần chính như Res2Net, mô-đun RFB, mô-đun PD, mô-đun Egde Convolution và các nhánh RA
Mô hình sử dụng kiến trúc Res2Net để làm backbone với phiên bản res2net50_v1b_26w_4s có sử dụng các trọng số pre-trained
Hình 3.6 Backbone Res2Net Các lớp residual block sẽ tương ứng với layer1, layer2, layer3, layer4 trong mạng Res2Net Mỗi một lớp residual block sẽ tùy chỉnh số lượng block và số kênh đầu ra Nếu stride khác 1 hoặc số kênh đầu vào khác số kênh ra nhân với expansion của block đó, nó sẽ tạo một lớp downsample để thích ứng giữa kích thước của residual với đầu ra Cuối cùng, trả về một chuỗi các lớp residual block
Như hình 3.6, đầu vào sẽ đi qua một chuỗi các phép tích chập conv1 để xử lý đầu vào Sau mỗi lớp tích chập là các lớp Batch Normalization 2D (BN2D) Tiếp theo, áp dụng BN2D với số kênh là 64, hàm kích hoạt ReLU và Max Pooling 2D để trích
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH xuất đặc trưng cấp thấp nhất Tiếp theo sẽ lần lượt đi qua các layer 1, layer 2, layer
3 và layer 4 để trích xuất các đặc trưng cấp cao, có nhiều thông tin ngữ nghĩa Áp dụng Adaptive Average Pooling 2D để giữ kích thước không đổi Sắp xếp lại kích thước sao cho phù hợp với đầu vào của lớp Linear Cuối cùng, đưa qua lớp Fully Connected để tính toán đầu ra
3.3.2 Mô-đun RFB (Receptive Field Block)
Mô-đun RFB tạo ra một cơ chế tái cấu trúc đặc trưng trong quá trình xử lý hình ảnh Bằng cách sử dụng các nhánh và các phép tích chập khác nhau, lớp này giúp mô hình có khả năng nhận diện các đặc trưng từ các kích thước và vị trí khác nhau trong hình ảnh
Mô-đun RFB có tổng cộng 4 nhánh: branch0, branch1, branch2 và branch3.Nhánh branch0 sử dụng một lớp BasicConv2d đơn giản với kernel size = 1 để trích xuất đặc trưng từ dữ liệu đầu vào Các nhánh branch1, branch2 và branch3 có cấu trúc tương tự, được thiết kế từ các phép tích chập BasicConv2d có kernel size và padding khác nhau để tạo ra đặc trưng từ các kích thước vùng quét khác nhau Đặc biệt, ở phép tích chập cuối cùng trong mỗi nhánh sẽ có dilation (mở rộng) để mở rộng vùng quét và tăng cường khả năng nhận diện đặc trưng từ xa
Sau đó, đầu ra từ các nhánh được ghép nối với nhau và đi qua một lớp BasicConv2d để kết hợp thành một tensor đặc trưng tổng hợp duy nhất Mô-đun RFB còn sử dụng thêm một lớp BasicConv2d để ánh xạ đầu vào sang không gian đặc trưng, tạo ra một tensor có cùng kích thước với tensor đặc trưng tổng hợp Hai tensor này sẽ đi qua phép cộng và áp dụng hàm kích hoạt ReLU để tạo ra đầu ra của lớp RFB
Mô-đun Partial Decoder được sử dụng để thực hiện phép tổng hợp dữ liệu sau quá trình xử lý ảnh thông qua RFB trong mô hình
Mô-đun Partial Decoder có ba đầu vào x1, x2 và x3 Các đầu vào sẽ thực hiện các phép upsample để tăng kích thước theo tỷ lệ là 2 Các đầu ra upsample sẽ đi qua các lớp conv1 và thực hiện các phép nhân phần tử, ghép nối Tiếp theo, nó sẽ lần lượt đi qua lớp conv2, conv3, conv4 và conv5 như hình 3.8 Ngõ ra của quá trình này sẽ là một bản đồ toàn cục dùng để hướng dẫn toàn bộ quá trình của mạng
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH
Hình 3.8 Mô-đun Partial Decoder
3.3.4 Các nhánh RA (Reverse Attention)
Có ba nhánh RA khác nhau RA_2, RA_3, RA_4 để tăng cường đặc trưng và tạo ra các bản đồ cục bộ Mỗi nhánh trong mô-đun RA là một chuỗi các lớp BasicConv2d có các thông số padding và kernel kích thước khác nhau như hình 3.9 Điều này nhằm tạo ra các bản đồ đặc trưng có kích thước và độ chi tiết khác nhau
Mục đích chính của mô-đun Edge Convolution là tạo ra các bản đồ cạnh từ các đặc trưng thấp của hình ảnh đầu vào Cụ thể, mô-đun Edge Convolution được triển khai bằng cách sử dụng các lớp BasicConv2d với các kernel kích thước và thông số padding như hình 3.10 Các lớp này thực hiện các phép tích chập trên đầu vào để tạo ra bản đồ cạnh
Hình 3.10 Mô-đun Edge Convolution
Kết nối tất cả các khối Res2Net, mô-đun RFB, mô-đun Partial Decoder, mô-đun Egde Convolution và các nhánh RA theo hình 3.11 sẽ tạo ra một mạng MFSNet hoàn chỉnh Ở đây, chỉ sử dụng Res2Net với mục đích trích xuất đặc trưng của ảnh đầu vào nên ta không sử dụng Adaptive Average Pooling 2D và Fully Connected
CHƯƠNG 3 XÂY DỰNG MÔ HÌNH
Hình 3.11 Toàn bộ mô hình MFSNet
Mô hình sẽ được huấn luyện trên tập huấn luyện với 2564 mẫu như đã được giới thiệu ở phần 3.1 Ảnh đầu vào và mặt nạ nhị phân tương ứng sẽ phải thực hiện resize thành kích thước 256x256 Hàm tổn thất được áp dụng được thể hiện trong công thức (2.3) Mô hình sẽ tính toán tổn thất trên letaral_map_5, letaral_map_4, letaral_map_3, letaral_map_2 và sau đó tính tổng tất cả tổn thất Mô hình được huấn luyện qua 100 lần Hàm tối ưu hóa được sử dụng là Adam Learning Rate ban đầu được đặt là 0.0001 và cứ sau 20 lần học nó sẽ giảm 0.05 𝑛 lần Kết thúc quá trình huấn luyện ta lưu lại trọng số của mô hình thành tệp MFSNet.pth
Hình 3.12 Letaral_map_2 trước sau khi qua hàm Sigmoid
Mô hình dự đoán sẽ trả về 5 kết quả bao gồm letaral_map_5, letaral_map_4, letaral_map_3, letaral_map_2 và letaral_egde Trong đó, letaral_map_2 sẽ là bản đồ phân loại được chọn, nó sẽ được đi qua một lớp sigmoid để cho ra kết quả phân đoạn cuối cùng như hình 3.12.
TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
TỔNG QUAN HỆ THỐNG
Chương này sẽ trình bày cách tính toán, thiết kế phần cứng và ứng dụng hệ thống Tổng quan hệ thống sẽ bao gồm một thiết bị mô phỏng để thu nhận hình ảnh từ các vùng da tổn thương Thiết bị này sẽ kết nối với máy tính thông qua cổng USB Hình ảnh thu từ thiết bị sẽ được đưa vào ứng dụng để thực hiện các chức năng phân đoạn, phân loại, xử lý loại bỏ lông, tóc và tính diện tích Ngoài ra, kết quả xử lý có thể lưu trữ trong các thư mục máy tính dưới dạng tệp PNG và tệp PDF
Hình 4.1 Sơ đồ tổng quan hệ thống
Hệ thống sử dụng camera Logitech C920 Sau khi huấn luyện và đánh giá các mô hình như được trình bày ở chương 3, nhóm quyết định áp dụng kiến trúc MFSNet cho bài toán phân đoạn, mô hình pre-train swin_v2_b cho bài toán phân loại và hệ số tính diện tích pixel được đặt là 0.015.
TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG
Để chẩn đoán các tổn thương da, các bác sĩ da liễu sử dụng một thiết bị gọi là máy soi da Có 2 loại máy soi da được sử dụng rộng rãi là máy soi da phân cực và máy soi da không phân cực Cả 2 loại máy soi da đều cần có các hệ thống quang học phức tạp để đánh giá được tổn thương ở các mức độ, các tầng da khác nhau Tuy nhiên mục tiêu chính của đề tài là xây dựng một hệ thống hỗ trợ nhận biết các tổn thương da, do đó nhóm đề xuất thiết kế một thiết bị đơn giản bao gồm camera được bao phủ bởi hộp kín Mục đích của hộp này là cố định khoảng cách từ camera tới vùng tổn thương, cố định vùng chụp và tránh tình trạng ảnh thu được bị phụ thuộc bởi ánh sáng môi trường bên ngoài Bên cạnh đó, nhóm còn tạo một hệ thống LED để cung cấp nguồn ánh sáng vừa đủ cho việc thu hình ảnh trong hộp kín
Hình 4.2 Mô tả khoảng cách d từ camera tới vùng tổn thương
Gọi d là khoảng cách từ camera tới vùng tổn thương như thể hiện trong hình 4.2 Để xác định khoảng cách d phù hợp, bước đầu tiên nhóm tiến hành kiểm tra khoảng cách lấy nét tối thiểu của camera Như đề cập trong phần 2.1, các loại tổn thương da thường có đường kính dưới 10mm nên trong thử nghiệm này, nhóm tạo ra các chấm tròn có đường kính lần lượt là 10, 8, 6, 4, 2, 1mm Sau đó, nhóm tiến hành thu hình ảnh từ các khoảng cách d khác nhau trong môi trường ánh sáng tự nhiên bên ngoài Với d lần lượt là 6, 5, 4, 3, 2, 1 và