1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế ứng dụng hỗ trợ nhận biết tổn thương da sử dụng deep learning

83 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Ứng Dụng Hỗ Trợ Nhận Biết Tổn Thương Da Sử Dụng Deep Learning
Tác giả Khuất Thu Uyên, Lê Đặng Đăng Khoa
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ Thuật Y Sinh
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 9,5 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (17)
    • 1.1 ĐẶT VẤN ĐỀ (17)
    • 1.2 MỤC TIÊU (18)
    • 1.3 NỘI DUNG NGHIÊN CÚU (18)
    • 1.4 GIỚI HẠN (19)
    • 1.5 BỐ CỤC (19)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (19)
    • 2.1 TỔNG QUAN VỀ CÁC TỔN THƯƠNG DA (21)
    • 2.2 BÀI TOÁN PHÂN ĐOẠN (22)
      • 2.2.1 Phương pháp phân đoạn dựa trên kiến trúc MFSNet (22)
      • 2.2.2 Chỉ số đánh giá mô hình phân đoạn (27)
    • 2.3 BÀI TOÁN PHÂN LOẠI (28)
      • 2.3.1 Một số mô hình phân loại (28)
      • 2.3.2 Chỉ số đánh giá mô hình phân loại (33)
    • 2.4 GIỚI THIỆU PHẦN MỀM (35)
      • 2.4.1 Thư viện Pytorch (35)
      • 2.4.2 Thư viện Tkinter (35)
  • CHƯƠNG 3. XÂY DỰNG MÔ HÌNH (19)
    • 3.1 BỘ DỮ LIỆU ISIC 2018 (38)
      • 3.1.1 Bộ dữ liệu ISIC 2018 cho nhiệm vụ phân đoạn (39)
      • 3.1.2 Bộ dữ liệu ISIC 2018 cho nhiệm vụ phân loại (39)
    • 3.2 XỬ LÝ LOẠI BỎ LÔNG TÓC VÀ TÍNH DIỆN TÍCH VÙNG TỔN THƯƠNG (40)
      • 3.2.1 Phương pháp xử lý loại bỏ lông tóc (40)
      • 3.2.2 Phương pháp tính diện tích vùng tổn thương (41)
    • 3.3 XÂY DỰNG MÔ HÌNH PHÂN ĐOẠN (42)
      • 3.3.1 Res2Net (43)
      • 3.3.2 Mô-đun RFB (Receptive Field Block) (44)
      • 3.3.3 Mô-đun Partial Decoder (45)
      • 3.3.4 Các nhánh RA (Reverse Attention) (46)
      • 3.3.5 Mô-đun Edge Convolution (47)
      • 3.3.6 Mô hình MFSNet (47)
    • 3.4 XÂY DỰNG MÔ HÌNH PHÂN LOẠI (49)
  • CHƯƠNG 4. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG (19)
    • 4.1 TỔNG QUAN HỆ THỐNG (54)
    • 4.2 TÍNH TOÁN VÀ THIẾT KẾ PHẦN CỨNG (54)
    • 4.3 TÍNH TOÁN VÀ THIẾT KẾ ỨNG DỤNG (58)
  • CHƯƠNG 5. KẾT QUẢ VÀ ĐÁNH GIÁ (63)
    • 5.1 ĐÁNH GIÁ KẾT QUẢ TÍNH DIỆN TÍCH VÀ XỬ LÝ LOẠI BỎ LÔNG TÓC (63)
    • 5.2 ĐÁNH GIÁ KẾT QUẢ PHÂN ĐOẠN (64)
    • 5.3 ĐÁNH GIÁ KẾT QUẢ PHÂN LOẠI (67)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯƠNG PHÁT TRIỂN (68)
    • 6.1 KẾT LUẬN (68)
    • 6.2 HƯỚNG PHÁT TRIỂN (68)
  • TÀI LIỆU THAM KHẢO (69)
  • PHỤ LỤC (72)

Nội dung

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à

Ngày đăng: 22/02/2024, 12:39

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w