1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu ứng dụng trí tuệ nhân tạo vào bài toán phân vùng tâm thất trong ảnh cộng hưởng từ

74 4 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

Định dạng
Số trang 74
Dung lượng 2,04 MB

Cấu trúc

  • CHƯƠNG 1. ĐẶT VẤN ĐỀ (12)
    • 1.1 Khó khăn và thách thức (12)
    • 1.2 Hướng giải quyết (15)
  • CHƯƠNG 2. BÀI TOÁN PHÂN VÙNG ẢNH (17)
    • 2.1 Bài toán phân vùng ảnh (0)
      • 2.1.1 Phân vùng ảnh là gì (17)
      • 2.1.2. Ứng dụng phân vùng ảnh (19)
    • 2.2 Các phương pháp phân vùng ảnh cổ điển (23)
      • 2.2.1 Phân vùng dựa trên ngưỡng (23)
      • 2.2.2 Phân vùng dựa trên cạnh (24)
      • 2.2.3 Phân vùng dựa trên khu vực (25)
      • 2.2.4 Phân vùng dựa trên kỹ thuật phân cụm (27)
    • 2.3 Các phương pháp phân vùng ảnh dựa trên AI (29)
      • 2.3.1 FCN (Fully Convolutional Network) (34)
      • 2.3.2 Unet (35)
      • 2.3.3 Gated-SCNN (37)
      • 2.3.4 DeepLab (38)
      • 2.3.5 Mask R-CNN (39)
  • CHƯƠNG 3. XÂY DỰNG MÔ HÌNH (41)
    • 3.1 Chuẩn bị công cụ (41)
      • 3.1.1 Yêu cầu dữ liệu (41)
      • 3.1.2 Công cụ hỗ trợ (43)
      • 3.1.3 Các bước triển khai (45)
      • 3.1.4 Các tham số huấn luyện (46)
    • 3.2 Lựa chọn mô hình (50)
      • 3.2.1 Mô hình Double Unet (50)
      • 3.2.2 Mô hình ResUnet++ (52)
      • 3.2.3 Mô hình DC-Unet (53)
      • 3.2.4 Mô hình DR-Unet (54)
      • 3.2.5 Mô hình DR-Unet++ (55)
  • CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC (62)
    • 4.1 Kết quả thử nghiệm mô hình (0)
    • 4.2 Kết quả huấn luyện và dự đoán (64)
    • 4.3 Đánh giá và so sánh (67)
  • KẾT LUẬN (70)
  • TÀI LIỆU THAM KHẢO (72)
  • PHỤ LỤC (74)

Nội dung

BÀI TOÁN PHÂN VÙNG ẢNH

Các phương pháp phân vùng ảnh cổ điển

2.2.1 Phân vùng dựa trên ngưỡng

Phân vùng dựa trên ngưỡng (Threshold Based Segmentation) là một dạng phân vùng ảnh dựa trên việc đặt giá trị ngưỡng để tạo ra một hình ảnh đen trắng (nhị phân).

Hình 2 8 Ảnh gốc và ảnh phân vùng Threshold [24]

Giá trị mỗi pixel trong ảnh nằm trong dải (0-255), trong đó màu đen = 0,màu trắng = 255 Để xác định ngưỡng phù hợp, ta dựa trên biểu đồ giá trị của các pixel trong ảnh, cài đặt giá trị ngưỡng để thu được ảnh phân vùng đối tượng cần quan tâm rõ nhất.

Minh họa: khi xem xét ví dụ trên hình 2.8, nếu đặt ngưỡng có giá trị T = 120. Những pixel có giá trị ≤ 120 sẽ có giá trị 0 và những pixel còn lại sẽ có giá trị

255 Khi cài đặt ngưỡng bằng 120, đối tượng chỉ phân vùng những vùng nào sáng tốt, nên chi tiết nhìn khá rõ, tuy nhiên có một vài điểm sáng nhiễu xuất hiện Lúc đặt ngưỡng giảm xuống còn 80, chi tiết đối tượng xuất hiện nhiều nhiễu do các vùng pixel liền kề có giá trị lân cận ngưỡng.

Công thức xác định phân vùng theo ngưỡng được thể hiện như dưới đây: g(i, j) = 1 for f(i, j) >= T

Do kết quả phụ thuộc giá trị ngưỡng đặt đầu vào nên phương pháp này không được áp dụng đối với ảnh có độ tương phản giữa nền và vật thể không rõ ràng Trong đó có ảnh tâm thất tim, bởi độ tương phản của chúng thay đổi nhiều. Một số phương pháp phân vùng theo ngưỡng thường dùng như Otsu Thresholding, Balanced Histogram Thresholding (BHT), …

2.2.2 Phân vùng dựa trên cạnh

Phân vùng dựa trên cạnh (Edge Based Segmentation): Cạnh xuất hiện ở vị trí xuất hiện gián đoạn do có sự thay đổi mức xám Tuy nhiên có nhiều vùng phát hiện sự gián đoạn đó (phân vùng trung gian), nhưng không phải là cạnh thật Để ra được kết quả cuối, một số thao tác cần làm bao gồm: kết hợp các cạnh tìm được làm một, để giảm số lượng phân vùng và tạo được một đường bao liền mạch quanh đối tượng.

Hình 2 9 Các loại cạnh trong ảnh

Phân vùng dựa trên cạnh bao gồm 2 bước:

-Edge Detection: mục tiêu cần tìm các pixel là pixel cạnh của một đối tượng.

- Edge Linking: liên kết các cạnh liền kề và kết hợp để tạo thành toàn bộ đối tượng Để thực hiện công việc này, người ta thường dùng 2 cách Một, sử dụng gradient và hướng để liên kết các cạnh lân cận, nếu hai cạnh có vectơ chỉ phương giống nhau thì chúng có thể được liên kết với nhau Cách hai là thực hiện bằng cách sử dụng chuyển đổi HOG.

Cạnh tìm được thường có những đặc trưng về “Độ lớn” và “Hướng” Một số toán tử phát hiện cạnh thường dùng như toán tử Sobel, Canny, Kirsch, Prewitt, Robert và toán tử Laplace.

Hình 2 10 Kết quả phân vùng ảnh dựa trên cạnh [25]

2.2.3 Phân vùng dựa trên khu vực

Phân vùng dựa trên khu vực (Region-Based Segmentation): Dùng để phân vùng một nhóm các pixel kề nhau và có các thuộc tính tương đồng về cường độ, màu sắc.

Có 2 nhóm kỹ thuật chính trong phân vùng dựa trên khu vực, bao gồm:

- Phát triển khu vực (Region growing method): Đối với kỹ thuật này, chúng ta bắt đầu với một số pixel làm pixel khởi tạo(hay pixel gốc) và sau đó tiến hành kiểm tra các pixel liền kề Nếu pixel này tuân theo các quy tắc biết trước, thì nó sẽ được thêm vào vùng của pixel ban đầu.Công việc sẽ tiếp tục cho đến khi không tìm được điểm tương đồng nào nữa.

Hình 2 11 Phân vùng khu vực, (a) Region growth, (b) Region splitting and merging

-Phân tách và hợp nhất khu vực (Region splitting and merging method): đầu tiên hình ảnh được chụp một vùng Nếu không thỏa mãn theo các quy tắc được xác định trước, region sẽ được chia thành 1/4 và tiếp tục áp dụng các quy tắc. Công việc này lặp lại đến khi không sự phân chia được nữa.

Hình 1 Phương pháp phân tách và xác lập vùng Điều kiện: Kiểm tra giá trị tuyệt đối của giữa sai số của Zmax (pixel lớn nhất) và Zmin (pixel nhỏ nhất) trong một vùng bé hơn hoặc bằng giá trị ngưỡng (Threshold) thì vùng đó không yêu cầu chia nhỏ thêm.

Zmax → Maximum pixel intensity value in a region

Cả hai phương pháp nêu trên đều là quá trình lặp đi lặp lại Công việc này thực hiện khá tốn thời gian để phân vùng ra được kết quả cuối cùng Tương tự như phân vùng dựa trên ngưỡng, ở những vùng ranh giới giữa vật thể và nền không rõ ràng thì nó không hoạt động hiệu quả Do vậy, phương pháp này cũng không phù hợp trong phân vùng ảnh tim yêu cầu độ chính xác cao.

2.2.4 Phân vùng dựa trên kỹ thuật phân cụm

Phân cụm (Clustering) được sử dụng khá phổ biến trong phân vùng ảnh Ta thường gặp thuật toán KMeans Clustering để phân đoạn ảnh màu.

Dựa trên cường độ của các pixels trên ảnh, thuật toán sẽ phân thành một cụm (clusters) Sau đó dựa trên centroids của chúng để phân đoạn tiếp bằng cách tiến hành tính toán khoảng cách của tất cả các điểm tới các cụm để tìm những điểm có khoảng cách nhỏ nhất Lặp lại quá trình này cho đến khi thuật toán hội tụ.

Hình 2 12 Phân cụm K-means clustering [27]

Thuật toán phân đoạn hình ảnh hoạt động như sau:

-Đầu tiên, chúng ta cần chọn giá trị của K trong phân cụm K-mean.

-Chọn một vectơ đặc trưng cho mỗi pixel (các giá trị màu như giá trị RGB).

-Xác định độ tương tự b/w vectơ đặc trưng như khoảng cách Euclide để đo độ tương tự b/w hai pixel bất kỳ.

-Áp dụng thuật toán K-mean cho các trung tâm cụm

-Áp dụng thuật toán của thành phần được kết nối.

-Kết hợp bất kỳ thành phần nào có kích thước nhỏ hơn ngưỡng với thành phần liền kề tương tự với thành phần đó cho đến khi không thể kết hợp nhiều hơn.

Các phương pháp phân vùng ảnh dựa trên AI

Phân vùng dựa trên mạng nơ-ron nhân tạo (Artificial Neural Network Based Segmentation) sử dụng phương pháp học sâu để tự động phân vùng một hình ảnh và xác định các đặc trưng khác nhau của nó trong vùng quan tâm Các mô hình học sâu đều bắt nguồn và phát triển từ mạng nơ-ron tích chập (CNN - convolutional neural networks).

CNN là một trong những mô hình phổ biến nhất trong học sâu, được dùng trong nhiều bài toán phân loại, nhận dạng ảnh hay ứng dụng trong xử lý ngôn ngữ tự nhiên (âm thanh) Kiến trúc nguyên thủy của CNN được giới thiệu vào năm 1980 Đến năm 1998 được Yan LeCun huấn luyện với thuật toán Back-propagation cho bài toán nhận dạng chữ viết tay Cho đến khi AlexNet được xây dựng vào 2012 và sử dụng card đồ họa để đẩy nhanh quá trình huấn luyện thì mới đạt được kết quả tốt nhất trong cuộc thi Computer Vision thường niên ImageNet, từ đó đã tạo nên làn sóng sử dụng mô hình Machine Learning, Deep Learning Từ CNN cơ bản, người ta có thể tạo ra nhiều kiến trúc mạng khác nhau từ đơn giản đến phức tạp như VGGNet

Cấu trúc mô hình CNN và các khái niệm cơ bản:

Hình 2 15 Cấu trúc mạng CNN trong classification

Cấu trúc CNN bao gồm các lớp: Convolution layer + Nonlinear layer, Pooling layer, Fully connected layer Ảnh đầu vào sẽ được đưa qua tầng tích chập + hàm phi tuyến, rồi đưa tới lớp pooling layer Cấu trúc này có thể được lặp lại nhiều lần trong mạng để trích xuất đặc trưng (feature) từ ảnh Cuối cùng sẽ tổng hợp bởi fully connected layer và softmax để đưa ra kết quả phân loại.

- Convolution Layer (lớp tích chập): Đây là lớp đầu tiên của của mô hình

CNN nhưng có vai trò quan trong nhất, có nhiệm vụ là trích xuất các đặc trưng từ hình ảnh Những đặc trưng này bao gồm góc, cạnh, màu sắc, hoặc đặc trưng phức tạp hơn như bối cảnh của ảnh.

Tham số chính là các bộ lọc (Filter) hay gọi tên khác là Kernel, đó là các bộ lọc có thể học được Các bộ lọc có kích thước hai chiều 3x3 hoặc 5x5 (nhận thấy filter của tầng tích chập đều là số lẻ) và có độ sâu giống ảnh đầu vào đầu vào Để thu được Feature Map chứa các đặc trưng, ta cho bộ lọc trượt dần theo chiều ngang và dọc trên ảnh.

Hình 2 16 Mô tả hoạt động của lớp Convolution

Quá trình trượt các bộ lọc phụ thuộc giá trị của:

+Padding: quy định bộ đệm của bộ lọc

+Stride: quy định bước nhảy trong quá trình thực hiện.

- Nonlinear Layer (Hàm kích hoạt phi tuyến): Hàm kích hoạt được thay từ hàm hàm Sgn bằng các hàm phi tuyến khác Một số hàm phi tuyến thường dùng là Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU,…

Hình 2 17 Các hàm phi tuyến thường dùng

ReLU (Rectified Linear Units) được giới thiệu bởi E.Hinton, là hàm kích hoạt phổ biến nhất cho CNN Trước đó, chủ yếu sử dụng 2 hàm phi tuyến sigmoid hay tanh Hàm ReLU được đặt ngay sau tầng tích chập, nó được dùng nhiều bởi tính đơn giản, giúp hạn chế tình trạng vanishing gradient và cho kết quả tốt hơn.

- Pooling Layer: thường đặt giữa các lớp tích chập, nhằm giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng Nhờ vậy làm giảm việc tính toán trong mô hình Hoạt động của nó cũng tương tự phép tính convolution.

Một số loại pooling layer phổ biến là max-pooling, average-pooling Hoạt động của Pooling được mô tả như hình 2.18, trượt filter 2x2 có stride = 2x2 rồi tính giá trị lớn nhất, hay giá trị trung bình cho vùng ảnh đó.

Hình 2 18 Sử dụng Max pooling và Average pooling

Mục đích của việc sử dụng tầng pooling là giảm chiều dữ liệu, làm hạn chế hiện tượng overfit và giảm thời gian huấn luyện.

- Fully Connected Layer (Dense): Trong bài toán phân loại, thi đây là tầng cuối cùng của mô hình Nhiệm vụ của nó là chuyển ma trận đặc trưng ở tầng trước thành vector chứa xác suất của các đối tượng cần được dự đoán.

Hình 2 19 Cấu trúc các lớp Fully Connected trong CNN

Các lớp Fully Connected được kết hợp với các đặc trưng học được từ tầng tích chập lại với nhau để tạo ra một mô hình Và sử dụng softmax hoặc sigmoid để đưa ra kết quả phân loại ở đầu ra.

- Deconvolutional Neural Network (DNN): Mạng giải chập sử dụng khi chúng ta muốn có upsampling để có được kích thước đầu ra lớn hơn Ngược lại với Convolution - một quá trình thu nhỏ kích thước đầu ra Nó còn được gọi là tích chập lên (Up Convolution) và tích chập chuyển vị (Transposed Convolution).

Hình 2 20 Hình ảnh so sánh ConvNet và DeconvNet

+Upsampling 2D Layer: Nhiệm vụ của khối này là làm tăng kích thước ảnh ở đầu ra Một số phương pháp upsampling là Max-Unpooling, Bed of Nails, Bilinear Interpolation.

Hình 2 21 Hoạt động của Upsampling

+Tích chập chuyển vị (Transposed Convolution): dùng trong mạng giải chập (DNN) để mapping lại đặc trưng (đã được trích xuất ở lớp tích chập) sang giá trị pixel trên ảnh đầu ra.

Hình 2 22 Phép tích chập chuyển vị

Dưới đây là công thức tính kích thước đầu ra mỗi phép chuyển vị, khi biết trước W - Image Width, S - Stride, F - Filter, P - Padding:

Ví dụ: W = 4, S = 2, P = 1, F = 2 thì output là Wout = (4 - 1) x 2 + 2 + 1 = 9

+ Tích chập giãn nở (Dilation Convolution): là một kỹ thuật mở rộng Kernel ởđầu vào bằng cách chèn các lỗ giữa các phần tử liên tiếp của nó Phương pháp này thường được áp dụng trong các mạng giải chập.

Hình 2 23 Phép tích chập giãn nở

Tích chập giãn nở giúp mở rộng vùng ảnh đầu vào được bao phủ mà không cần Pooling Mục tiêu là để cung cấp thêm thông tin từ đầu ra thu được với mọi phép toán tích chập Phương pháp này cung cấp một trường nhìn rộng hơn với cùng một khối lượng tính toán.

Cấu trúc tổng quát mô hình phân vùng ảnh dựa trên AI:

Cấu trúc mạng trong một bài toán Image Segmentation cơ bản gồm hai khối:Encoder và Decoder.

XÂY DỰNG MÔ HÌNH

Chuẩn bị công cụ

3.1.1 Yêu cầu dữ liệu a) Đối tượng nghiên cứu

Có nhiều phương pháp để chụp ảnh tim trong y tế như chụp bằng cộng hưởng từ (MRI), CT Scan, siêu âm,… Trong đó phương pháp lấy ảnh bằng MRI được sử dụng phổ biến nhất nhờ chất lượng hình ảnh của nó có độ chi tiết tốt hơn so với hai phương pháp còn lại Khi phân tích ảnh tim để phục vụ công việc chẩn đoán bệnh và đánh giá tim có hoạt động bình thường không, bác sĩ thường quan tâm các vùng như: tâm thất trái (Left ventricle), tâm thất phải (Right ventricle), vành cơ tim (Myocardium), cũng như biên dạng của chúng: nội tâm mạc (Endo- cardium), ngoại tâm mạc (Epicardium).

Hình 3 1 Các phân vùng trong ảnh tim MRI [38]

Mục tiêu của đề tài là phân vùng ảnh tâm thất tim tự động dựa trên mô hình học sâu, do vậy đối tượng cần quan tâm trong đề tài này là tâm thất, cụ thể là tâm thất trái cùng nội tâm mạc (màu đỏ) và ngoại tâm mạc (màu xanh).

Như đã phân tích từ đầu, nguồn dữ liệu được dùng cho huấn luyện ảnh hưởng rất nhiều đến hiệu quả một mô hình Deep learning Thứ nhất, để phục vụ cho huấn luyện mô hình Segmentation, chúng ta cần chuẩn bị tập dữ liệu (Dataset) bao gồm 2 thông tin Origin image (ảnh gốc) và Ground truth (nhãn). Nếu dữ liệu đầu vào đẹp, độ tương phản tốt thì có lợi nhiều cho mô hình trong lúc huấn luyện Ngoài ra, việc gán nhãn chuẩn cũng là một yêu cầu cốt lõi của bài toán Segmentation do yêu cầu độ chính xác của nó đảm bảo tới từng pixel.

Do đó cần thiết phải có đội ngũ chuyên gia hoặc y bác sĩ có chuyên môn thực hiện các công việc này Thứ hai, dữ liệu huấn luyện phải đủ lớn để mô hình có thể học sâu tốt Trong học máy, người ta thường sử dụng các kỹ thuật tăng cường ảnh bằng cách tác động ảnh đầu vào như thay đổi độ tương phản, xoay-lật ảnh,thêm nhiễu vào,… nhằm bổ xung thêm dữ liệu huấn luyện. b) Dữ liệu huấn luyện

Một số bộ dữ liệu ảnh tim hiện nay:

-SunnyBrook Cardiac Data (SCD) - 2009: là tập dữ liệu Thử thách phân đoạn tâm thất trái MRI Gồm 45 mẫu cine-MRI từ hỗn hợp các bệnh nhân và bệnh lý: khỏe mạnh, phì đại, suy tim có nhồi máu và suy tim không nhồi máu. Tập hợp con của tập dữ liệu này lần đầu tiên được sử dụng trong thử thách phân đoạn cơ tim tự động từ MRI trục ngắn, được tổ chức bởi hội thảo MICCAI vào năm 2009 Tổng cộng số ảnh trong tập dữ liệu SCD là hơn 230 ảnh.

Hình 3 2 Dữ liệu ảnh gốc và nhãn trong SCD

-Automated Cardiac Diagnosis Challenge (ACDC) - 2017: Bộ dữ liệu ACDC tổng thể được tạo ra từ các bài kiểm tra lâm sàng thực tế có được tại Bệnh viện Đại học Dijon Dữ liệu thu được được ẩn danh hoàn toàn và được xử lý theo các quy định do ủy ban đạo đức địa phương của Bệnh viện Dijon (Pháp) đặt ra. Hình ảnh Cine MR thu được trong quá trình nín thở với kiểm tra hồi cứu hoặc tương lai và với trình tự SSFP theo hướng trục ngắn, sử dụng 2 máy quét MRI có cường độ khác nhau Đặc biệt, một loạt các lát cắt trục ngắn bao phủ tâm thất trái từ đáy đến đỉnh, với độ dày 5 mm (hoặc 8 mm) và đôi khi có khoảng cách xen kẽ là 5 mm (sau đó cứ 5 hoặc 10 mm thì có một hình ảnh, theo kỳ kiểm tra) Cơ sở dữ liệu được lấy từ hơn 150 bệnh nhân, được lưu dưới dạng ảnh thô qua định dạng Nifti, với tổng số ảnh lên tới hơn 1900 ảnh MRI.

Hình 3 3 Dữ liệu ảnh gốc và nhãn nội tâm mạc Endo và ngoại tâm mạc Epi trong

- MICCAI 2012 RV: lấy ra từ “The Right Ventricle Segmentation Challenge” gồm dữ liệu phân vùng cho nội tâm mạc và ngoại tâm mạc RV (Right Ventricle) của 48 bệnh nhân Thử thách này là một phần của hội thảo MICCAI-

12 Những người tham gia được cung cấp tập dữ liệu chưa ảnh gốc và nhãn. Qua 3 bộ dữ liệu nêu trên, có thể nhận thấy ACDC có số lượng ảnh gốc và nhãn nhiều hơn hẳn (hơn 1900 ảnh) Để thực hiện quá trình thử nghiệm và đánh giá cho mô hình học sâu, trong đề tài luận văn này học viên đã chọn hai bộ dữ liệu là SunnyBrook và ACDC.

3.1.2 Công cụ hỗ trợ a) Ngôn ngữ và thư viện

Nghiên cứu AI là một trong những lĩnh vực đang gây chú ý của rất nhiều hãng công nghệ lớn Hiện nay có nhiều ngôn ngữ để các lập trình viên có thể sử dụng để phát triển ứng dụng trí tuệ nhân tạo Trong đó 5 ngôn ngữ phổ biến nhất hiện nay bao gồm: Python, Java, Lisp, Prolog, C++ Ngôn ngữ LISP là ngôn ngữ lập trình AI lâu đời nhất Tuy nhiên LISP có khá nhiều hạn chế như thiếu các thư viện hỗ trợ và nhiều cú pháp khó dùng Tiếp theo là C++, được mệnh danh là “ngôn ngữ lập trình nhanh nhất” - điều mà AI rất cần thiết là tốc độ Hạn chế của ngôn ngữ này là cú pháp tương đối phức tạp, chặt chẽ, thiếu nhiều thư viện hỗ trợ AI và tốn khá nhiều thời gian để phát triển Python được xem là một trong những ngôn ngữ phù hợp nhất cho lập trình viên AI, kể cả những lập trình viên mới Bởi cú pháp đơn giản, ít mã hóa và có sẵn số lượng lớn các thư viện hỗ trợ Nó hỗ trợ lập trình hướng đối tượng, là ngôn ngữ lập trình mã nguồn mở, hỗ trợ thu gom rác tự động và có thể được tích hợp với nhiều ngôn ngữ khác.

Hình 3 4 Ngôn ngữ Python và Framework Keras, Tensorflow

Sự phát triển nhanh chóng của AI kéo theo số lượng thuật toán khổng lồ, các Framework và thư viện học máy/học sâu được sinh ra giúp các lập trình viên dễ dàng hơn trong việc tiếp cận và sử dụng Các thư viện mã nguồn mở thường ứng dụng trong bài toán AI trên Python là Keras, TensorFlow Trong đó Keras là một API được thiết kế cho Python được phát triển bởi Google để triển khai mạng nơ- ron dễ dàng hơn Nó là một nền tảng phổ biến cho các nhà phát triển và trở thành một thư viện học sâu phổ biến nhất hiện nay Lý do khiến Keras thành công là bởi API sạch sẽ và đơn giản, cho phép các mô hình học sâu tiêu chuẩn được xác định, phù hợp và đánh giá chỉ trong một vài dòng lệnh Thứ hai là nó cho phép bạn sử dụng hầu hết các thư viện toán học học sâu phổ biến làm chương trình phụ trợ Năm 2019, Google đã phát hành phiên bản mới của thư viện học sâu TensorFlow (TensorFlow 2) tích hợp trực tiếp API Keras thành giao diện tf.keras Keras là sự lựa chọn của nhiều tên tuổi lớn như Netflix, Uber, Square,…

Nhờ những ưu điểm được phân tích ở trên, học viên đã sử dụng ngôn ngữ Python và Framework Keras để xây dựng và huấn luyện mô hình Segmentation cho ảnh tim. b)Trình biên dịch

Trong quá trình phát triển một mô hình Deep Learning, giai đoạn huấn luyện mô hình là giai đoạn mất nhiều thời gian nhất, đặc biệt với những mô hình nặng về thuật toán và có số lượng tham số lớn Để giảm đáng kể thời gian training, việc lựa chọn đơn vị xử lý đồ họa GPU chuyên dụng có hiệu năng tốt là điều hết sức cần thiết.GPU cho phép bạn thực hiện các tác vụ huấn luyện nhiều mô hình song song, hoàn thiện các phép tính nhanh hơn so với CPU, giúp loại bỏ những tắc nghẽn do giới hạn tính toán tạo ra Tuy nhiên việc đầu tư GPU để triển khai cần được cân nhắc phù hợp với ngân sách và lợi ích Để trang bị hoàn chỉnh một bộ máy tính có cấu hình cao,tích hợp GPU hiệu suất cần phải đầu tư một số tiền lớn ban đầu Sau đây, học viên sẽ đề cập đến một sản phẩm đến từ Google cho phép chúng ta xây dựng mô hình AI qua trình duyệt.

Google Colaboratory (gọi tắt là Google Colab) là một dịch vụ đám mây miễn phí, được phát triển dựa trên Jupiter Notebook Trong Colab, chúng ta có thể sử dụng những thư viện được cài sẵn như PyTorch, TensorFlow, Keras và OpenCV. Cho phép chúng ta học tập hay xây dựng mô hình học sâu.

Hình 3 5 Các CPU, GPU, TPU miễn phí trên Google Colab

Google Colab cho phép trải nghiệm lập trình miễn phí (thời gian giới hạn - do số lượng người sử dụng lớn) với những đơn vị xử lý đồ họa nêu trên Cho phép sử dụng tài nguyên máy tính ảo CPU high-speed, GPU NVIDIA Tesla K80 và TPUs Ngoài ra, Google còn cung cấp phiên bản Colab-Pro trả phí để sử dụng GPU hiệu suất tốt hơn, nhanh hơn.

3.1.3 Các bước triển khai Để triển khai mô hình chúng ta cần triển khai các bước như sơ đồ dưới đây:

Bước 1: Chuẩn bị dữ liệu

-Dataset ACDC gồm 1808 ảnh + nhãn (Left Ventricle + Epicardium)

-Chia dữ liệu thành các tập Training, Validation, Test theo tỉ lệ 70:15:15 tương ứng với số lượng ảnh trên từng tập lần lượt là: training (1265), validation (271) và test (272).

Bước 2: Chuẩn hóa dữ liệu (Data augumentation)

- Tập ảnh và nhãn trong bộ ACDC có kích thước lớn, nhưng đối tượng cần được Segmentation có kích thước bé hơn và thường nằm ở giữa ảnh Do vậy trước khi đưa vào huấn luyện cần sử dụng tiền xử lý để cắt bỏ đi vùng ảnh ở ngoài và giữ lại vùng thông tin ở giữa Mục đích của việc cắt ảnh (Crop Image) nhằm giảm thời gian tính toán của mô hình và tốc độ xử lý.

Lựa chọn mô hình

Việc quan trọng nhất trong đề tài luận văn này là lựa chọn mô hình AI nào phù hợp nhất và có hiệu quả tốt nhất Như đã phân tích một số mô hình học sâu áp dụng trong bài toán phân vùng ảnh, mô hình dựa trên kiến trúc Unet được ưa chuộng và có nhiều đóng góp lớn trong lĩnh vực xử lý ảnh y sinh Vậy nên hướng triển khai của học viên trong đề tài này là phát triển và xây dựng mô hình theo kiến trúc Unet Dưới đây là một số biến thể của Unet nổi bật đã được nghiên cứu và công bố bài báo:

Mô hình Double Unet được phát triển bởi Debesh Jha và cộng sự vào năm

2020 để cải thiện hiệu suất của U-Net trên các nhiệm vụ phân đoạn khác nhau trên bộ dữ liệu MICCAI 2015, Science Bowl 2018 [33].

Kiến trúc mạng đuợc tạo nên từ 2 mạng Unet xếp chồng nhau:

-Mạng thứ nhất (Network 1): nhánh encoder của nó sử dụng khối VGG19 để học được nhiều đặc trưng từ ImageNet Bên trong cấu trúc mạng, sử dụng cầu ASPP để kết nối encoder-decoder Để nắm bắt hiệu quả hơn thông tin ngữ nghĩa, tác giả đã đề xuất thêm một mạng Unet khác kế tiếp.

- Mạng thứ hai (Network 2): được tạo từ các khối Encoder-Decoder

Hình 3 8 Kiến trúc Double Unet

Theo kiến trúc được thể hiện ở hình 3.8, ta có thể thấy rằng đầu vào của Network2 được lấy bằng cách nhân Input1 và Output1 của mạng Network1 Còn đầu ra cuối cùng thì kết hợp từ Output của cả 2 mạng qua lớp tích chập Conv 1x1 với hàm Sigmoid.

Hình 3 9 Cấu trúc khối ASPP

Cả 2 mạng đều sử dụng cầu ASPP để kết nối Encoder và Decoder KhốiASPP (Atrous Spatial Pyramid Pooling) thực chất là SPP-Net với việc sử dụng tích chập Atrous, có tác dụng trích lọc đặc trưng đầu vào ở nhiều bộ lọc khác nhau theo tỉ lệ một cách đồng thời, từ đó cho ra các đặc trưng có chất lượng tốt hơn ở nhiều kích thước feature input.

Mặc dù Double-Unet đem lại hiệu quả tốt hơn mạng Unet ban đầu, tuy nhiên cấu trúc khá phức tạp, khó cải tiến và có số lượng tham số tính toán nhiều do kết hợp cả 2 mạng Unet vào một mô hình.

Kiến trúc ResUnet++ được giới thiệu năm 2019 bởi Debesh Jha, là sự kết hợp các điểm mạnh của mô hình ResUnet và Unet được công bố trước đó cho phân vùng hình ảnh nội soi Poly chính xác.

Mô hình này sử dụng điểm mạnh của ResUnet block kết hợp với các khối Squeeze and excited và ASPP vốn đã đạt được hiệu quả ở những mô hình trước đó để xây dựng nên các khối encoder và decoder.

Hình 3 10 Mô hình Res Unet++

Kiến trúc chung của mô hình vẫn dựa trên kiểu chữ U như trong kiến trúc gốc Tuy nhiên, việc triển khai hai nhánh Encoding và Decoding thì có cải tiến.Giữa 2 khối này, tác giả vẫn giữ nhiều nối tắt (skip connection) và cầu ASPP như trong Double Unet Điểm khác biệt thứ hai là thêm khối Attention Units trước mỗi Decoder block.

Mô hình này có ưu điểm là tương đối đơn giản, áp dụng cho bất kì đầu vào nào, chất lượng đặc trưng được nâng cao, khối lượng tính toán nhẹ hơn giúp nó tập trung vào những đặc trưng quan trọng.

DC-Unet (Dual Channel U-Net) được giới thiệu bởi Ange Lou trong bài báo

[15] trong phân vùng ảnh y tế trên 3 tập dữ liệu ISBI 2012, Our IR breast và CVC ClinicDB Đây là phiên bản nâng cao của Unet có kết cấu tương tự như MultiRes- Unet Điểm khác biệt của mô hình này là khối DC Block thay thế cho khối

Hình 3 11 Kiến trúc DC-Unet

Khối DC và MultiRes được lấy ý tưởng từ inception block, sử dụng nhiều bộ lọc có kích thước khác nhau để khám phá được nhiều đặc trưng trên nhiều vùng có kích thước khác nhau, từ đó thu được nhiều thông tin chi tiết có ích cho việc phân vùng ảnh.

Hình 3 12 Cấu trúc khối DC Block Để giảm tải khối lượng phép tính toán, các khối này thay thế các bộ lọc lớn(như 5x5, 7x7) bằng chuỗi các bô lọc 3x3 nối tiếp Do trong khối MultiRes chứa nhánh nối tắt Conv-1x1, được xem là một kết nối dư (residual connection) Nên gian (spatial features) giúp mạng học sâu hơn Đấy là lý do khối DC được đặt tên là Dual Channel.

Mô hình DC Unet có số lượng tham số ít hơn một chút so với Unet cổ điển. Nhưng kết quả đánh giá cho thấy nó vượt qua mô hình Unet và hiệu quả hơn mô hình MultiResUnet.

Kiến trúc DR-Unet được giới thiệu bởi Nhật Minh, Đình Hùng trong bài báo

[16]cho phân vùng ảnh nhân tế bào 2021, được đánh giá trên tập dữ liệu “2018 Data Science Bowl”.

Hình 3 13 Mô hình DR-Unet

Kiến trúc mô hình DR-Unet được thể hiện trên hình 3.13, được cải tiến từ mô hình ResUnet++ Có hai phát triển mới của mô hình, thứ nhất là sử dụng đồng thời cả 2 nhánh ResPath và ResPath + Pooling làm tăng khả năng kết hợp thông tin đặc trưng trong không gian ở nhánh Encoder Thứ hai, sử dụng module PASPP thay cho ASPP giúp mô hình mới giảm số lượng tham số và học được đặc trưng không gian hiệu quả hơn nhờ việc kết hợp từ từ các đặc trưng từ những tích chập Atrous có tỉ lệ tương đồng nhau Do vậy mô hình được đặt tên là DR-Unet (Double Respath Unet)

Từ những điểm mạnh của mô hình DR-Unet và DC-Unet nêu trên, nhóm chúng học viên đã đề xuất một mô hình mới DR-Unet++ có kiến trúc như sau:

Hình 3 14 Mô hình DR-Unet++

KẾT QUẢ ĐẠT ĐƯỢC

Kết quả huấn luyện và dự đoán

Từ kết quả thử nghiệm, đánh giá tham số huấn luyện ở mục 4.1, học viên đã lựa chọn được bộ tham số phù hợp nhất cho mô hình Bao gồm:

-Hàm Loss và Callback giữ nguyên như điều kiện nêu trên.

Kết quả đạt được sau khi hoàn thành huấn luyện DR-Unet++ của hai mô hình Endocardium và Epicardium được biểu thị qua 4 đồ thị Learning Curve gồm: Loss, Accuracy, DSC (Dice Coefficient), IoU.

Hình 4 3 Đồ thị learning curve Endocardium

Theo đồ thị Loss, dễ thấy giá trị của hàm Loss có xu hướng hội tụ về một giá trị gần bằng 0 Nếu mô hình lý tưởng thì giá trị Loss = 0 Còn 3 đồ thị còn lại có xu hướng tiến về giá trị gần bằng 1 Như đã phân tích ở chương 3, nếu giá trị của DSC và IoU càng cao và tiến tới 1 thì mô hình huấn luyện càng thành công.

Hình 4 4 Đồ thị learning curve Epicardium

Bốn đường cong (Learning Curve) được trình bày trên đây là kết quả định tính sau khi hoàn thành huấn luyện mô hình cho 2 phân vùng Endo và Epi-Cardium Từ đồ thị có thể thấy từ Epoch 25, mô hình bắt đầu ổn định trong việc cập nhật trọng số và rất ít biến động.

Sau khi huấn luyện mô hình thành công, học viên đã thực hiện đánh giá kết quả trên tập dữ liệu Test trên từng ảnh (Batch size = 5).

Bảng 4 4 Bảng tổng hợp kết quả mô hình DR-Unet++ trên Epicardium

Chỉ số IoU và DSC có giá trị lần lượt bằng 0.926 và 0.958, một kết quả tốt cho một mô hình Segmentation Có thể thấy đây là một trong những kết quả tốt nhất trong phân vùng ảnh tim với tập dữ liệu ACDC.

Sau đây là kết quả phân vùng ảnh tâm thất, gồm ảnh gốc, nhãn (Ground truth) và kết quả dự đoán (Mask predict) được sắp xếp theo thứ tự từ trái qua phải.

Hình 4 5 Kết quả phân vùng ảnh của mô hình DR-Unet++

Theo kết quả phân vùng được thể hiện trên hình 4.5, dễ thấy các đường bao của cả hai mô hình Epicardium và Endocardium (ảnh thứ 3) bám sát với nhãn đã được đánh dấu (trên ảnh thứ 2) Mô hình vẫn phân vùng tốt ở những chỗ đường biên mờ và không rõ ràng, hay những ảnh có kích thước khá bé thì mô hình vẫn có thể phân vùng được và không bị bỏ sót Nhờ việc lưu giữ những đặc trưng tốt ở nhánh Encoder, mô hình DR-Unet++ cho kết quả phân vùng tốt với đối tượng cần quan tâm (nội tâm mạc và ngoại tâm mạc).

Đánh giá và so sánh

Để thực hiện đánh giá kết quả giữa các mô hình Unet, học viên đã xây dựng và thực hiện huấn luyện bốn mô hình Unet, DC-Unet, DR-Unet và DR-Unet++. Kết quả đánh giá sẽ được thực hiện trên từng bộ dữ liệu ACDC và SunnyBrook với hai phân vùng Endocardium và Epicardium.

Các tham số huấn luyện sử dụng cho cả 4 mô hình như sau:

Bảng 4 5 Bộ tham số huấn luyện đánh giá 4 mô hình

Tham số cơ bản Batch size = 5, Epoch = 150, Learning rate = 10 -3

Callback EarlyStopping(patience , monitor="val_loss")

ModelCheckpoint(os.path.join(save_path,"test.h5"), verbose=2, save_best_only=True)

ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience, min_lr = 1e-7)

Thứ nhất, đánh giá định lượng dựa trên 2 hệ số DSC và IoU được tổng hợp trong bảng 4.6 và bảng 4.7.

Kết quả này thu được khi sau khi huấn luyện thành công mô hình và kiểm tra trên tập ‘Test set’ lần lượt trên hai bộ dữ liệu ACDC và SunnyBrook.

Bảng 4 6 Kết quả định lượng trên tập dữ liệu ACDC

Theo bảng so sánh kết quả 4 mô hình nêu trên, ta có thể thấy có 3 mô hình sau (DC-Unet, DR-Unet và DR-Unet++ là biến thể của Unet) có kết quả tốt với IoU > 0.9, trong đó DR-Unet++ cho kết quả tốt nhất, với IoU = 0.934, DSC 0.964 với phân vùng Epicardium Tuy nhiên mô hình DR-Unet++ có số lượng tham số khá cao ( khoảng 8 triệu), lớn hơn mô hình Unet cổ điển một chút.

Bảng 4 7 Kết quả định lượng trên tập dữ liệu SunnyBrook

Thứ hai là bài đánh giá định tính dựa theo kết quả phân vùng dự đoán (predict mask) Để dễ dàng cho việc đánh giá trực tiếp bằng mắt, kết quả phân vùng của từng ảnh tương ứng với mỗi mô hình sẽ được hiển thị cùng ảnh gốc (Image) và nhãn thực tế (Ground truth) Bài toán phân vùng ảnh cũng thực hiện hai nhiệm vụ là phân vùng Endocardium và Epicardium.

Hình 4 6 So sánh kết quả phân vùng nội tâm mạc Endocardium

Nhìn chung với những ảnh nội tâm mạc rõ ràng, độ tương phản tốt thì tất cả mô hình đều cho ra kết quả tốt khá đều nhau Với những ảnh không đẹp và có độ tương phản không tốt thì giữa các mô hình bắt đầu có sự khác nhau Trong đó mô hình gốc Unet cho kết quả kém hiệu quả nhất, thể hiện qua việc không phân vùng được ảnh số 1, còn ảnh số 3 thì phân vùng chưa được chính xác Còn hai mô hình

DR-Unet và DC-Unet thì kết quả cũng gần tương đương nhau, tuy nhiên ảnh số 1 vẫn bị dự đoán sai.

Tiếp theo là kết quả phân vùng ngoại tâm mạc Epicardium Do vùng này có kích thước lớn hơn, là vùng bao cơ tim ngoài có biên dạng rõ ràng và ít bị nhiễu hơn vùng nội tâm mạc bên trong nên kết quả phân vùng của cả 4 mô hình đều cho kết quả khá tốt và đạt hiệu quả cao hơn trên cả 2 chỉ số DSC và IoU Trong đó mô hình đề xuất DR-Unet++ cho kết quả dự đoán phân vùng bám sát với Ground Truth tốt hơn.

Hình 4 7 So sánh kết quả phân vùng ngoại tâm mạc Epicardium

Qua những kết quả được trình bày ở trên, có thể thấy mô hình mới đề xuất bởi nhóm nghiên cứu có kết quả vượt trội hơn so với 3 mô hình còn lại thông qua chỉ số DSC và IoU trên cả hai tập dữ liệu ACDC và SunnyBrook khi đánh giá trên cùng bộ tham số huấn luyện Việc phân vùng đối tượng tâm thất tim tốt là tiền đề để thực hiện các bước xử lý tiếp theo như đánh giá tình trạng sức khỏe tim, xây dựng hình dạng 3D tâm thất tim hay ứng dụng phân loại bệnh về tim, …Nhờ những kết quả khả quan đạt được, mô hình đề xuất đã được trình bày bài báo tại hội nghị GTSD22.

Ngày đăng: 04/06/2023, 11:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5]. “80% bệnh tim mạch giai đoạn đầu có thể phòng ngừa được nếu làm theo khuyến cáo từ chuyên gia”, https://moh.gov.vn/ Sách, tạp chí
Tiêu đề: 80% bệnh tim mạch giai đoạn đầu có thể phòng ngừa được nếu làm theo khuyến cáo từ chuyên gia
[30]. Avan Suinesiaputra, Charlène A. Mauger, Bharath Ambale-Venkatesh (2021). “Deep Learning Analysis of Cardiac MRI in Legacy Datasets: Multi-Ethnic Study of Atherosclerosis”, Front Cardiovasc Med. 2021; 8: 807728 Sách, tạp chí
Tiêu đề: DeepLearning Analysis of Cardiac MRI in Legacy Datasets: Multi-Ethnic Study of Atherosclerosis
Tác giả: Avan Suinesiaputra, Charlène A. Mauger, Bharath Ambale-Venkatesh
Năm: 2021
[32]. Shruti Jadon (2020), “A survey of loss functions for semantic segmentation”, IEEE, arXiv:2006.14822v4 [eess.IV] Sách, tạp chí
Tiêu đề: A survey of loss functions for semantic segmentation
Tác giả: Shruti Jadon
Năm: 2020
[3]. Tran, P. V. (2016). A fully convolutional neural network for cardiac segmentation in Short- Axis MRI.Arxiv Preprint abs/1604.00494. Available at: http://arxiv.org/abs/1604.00494 Link
[9]. Olaf Ronneberger, Philipp Fischer, Thomas Brox, 2015, U-Net: Convolutional Networks for Biomedical Image Segmentation, https://arxiv.org/abs/1505.04597 Link
[22]. Chung Pham Van, 2021, A survey of loss functions for semantic segmentation, https://viblo.asia/ Link
[1]. Avendi, M. R., Kheradvar, A., and Jafarkhani, H. (2016). A combined deep-learning and deformable-model approach to fully automatic segmentation of the left ventricle in cardiac mri, Medical Image Analysis 30,108–119 Khác
[2]. Bernard, O., Lalande, A., Zotti, C., Cervenansky, F., Yang, X., Heng, P.-A., et al. (2018).Deep learning techniques for automatic MRI cardiac Multi-Structures segmentation and diagnosis: Is the problemsolved? IEEE Transactions on Medical Imaging 37, 2514–2525 Khác
[4]. Oktay, O., Schlemper, J., Folgoc, L. L., Lee, M., Heinrich, M., Misawa, K., et al. (2018).Attention U-Net:Learning where to look for the pancreas, Medical Imaging with Deep Learning.1804.03999 Khác
[6]. Chen Chen, Chen Qin, Huaqi Qiu (2020). Deep Learning for Cardiac Image Segmentation: A Review, Frontiers in Cardiovascular Medicine Khác
[7]. Khened, M., Kollerathu, V. A., and Krishnamurthi, G. (2019). Fully convolutional multi- scale residual DenseNets for cardiac segmentation and automated cardiac diagnosis using ensemble of classifiers, Medical Image Analysis 51, 21–45 Khác
[8]. Jonathan Long, Evan Shelhamer, Trevor Darrell (2015). Fully Convolutional Networks for Semantic Segmentation, arXiv:1411.4038v2 [cs.CV] 8 Mar 2015 Khác
[10]. Sunny Brook Cardiac Dataset, 2009 - Cardiac MR Left Ventricle Segmentation Challenge Khác
[12]. Chen Chen, Chen Qin, Huaqi Qiu, Giacomo Tarroni, Review Frontiers in Cardiovascular Khác
[13]. Foivos I. Diakogiannis, Franỗois Waldner, Peter Caccetta, Chen Wu (2019), ResUNet-a: a deep learning framework for semantic segmentation of remotely sensed data Khác
[14]. Nabil Ibtehaz, M. Sohel Rahman, (2019). MultiResUNet : Rethinking the U-Net Architecture for Multimodal Biomedical Image Segmentation Khác
[15]. Ange Lou, Shuyue Guan, Murray Loew (2020), DC-UNet: Rethinking the U-Net Architecture with Dual Channel Efficient CNN for Medical Images Segmentation Khác
[16]. Nhat-Minh Le, Dinh-Hung Le, Van-Truong Pham, Thi-Thao Tran (2021). DR-Unet:Rethinking the ResUnet++ Architecture with Dual ResPath skip connection for Nuclei segmentation, 2021 8th NAFOSTED Khác
[18]. Image Classification vs Semantic Segmentation vs Instance Segmentation, Nirmala Murali, 2021 Khác
[19]. Medical image segmentation: hard and soft computing approaches, Prajawal Sinha, Mayur Tuteja (2020) Khác
w