Luận án đã đề xuất sử dụng kiến trúc Pix2Pix [79] làm kiến trúc của mạng sinh ảnh nội soi đại tràng có chứa polyp. Mạng Pix2Pix là một loại GAN có điều kiện (CGAN-Conditinal GAN), trong đó bao gồm hai thành phần chính: là Bộ sinh và bộ phân biệt. Bộ sinh dùng để sinh ảnh đầu ra còn gọi là ảnh đích dựa trên điều kiện đầu vào, được gọi là ảnh nguồn. Đầu vào của Bộ phân biệt là ảnh nguồn và ảnh đích, Bộ phân biệt có nhiệm vụ xác định liệu ảnh đích có phải là một biến đổi hợp lý của ảnh nguồn hay không. Mạng sinh ảnh nội soi đại tràng chứa polyp gọi là PolypGenPix2Pix. Mạng này dựa trên kiến trúc mạng Pix2Pix [29] với điều kiện đầu vào là ảnh lọc cạnh của ảnh nội soi kết hợp với polyp mask. Hình 4.1 biểu diễn tổng quan mô hình đề xuất
Hình 4.1. Minh họa mô hình sinh ảnh nội soi chứa polyp.
G là bộ sinh (Generator), G nhận đầu vào x (gọi là ảnh nguồn) được tạo ra bằng kết hợp của ảnh lọc cạnh của ảnh nội soi và polyp mask, có nhiệm vụ sinh ảnh nội soi chứa polyp G(x) so cho giống ảnh đích (y) nhất. D là bộ phân biệt (Discriminator), đầu vào của bộ phân biệt gồm 2 phần: ảnh nguồn x (đầu vào của bộ sinh) và ảnh nội soi chứa polyp, có thể là G(x) (đầu ra của bộ sinh) hoặc y ảnh nội soi thực trong bộ dữ liệu huấn luyện (y có nhãn là polyp mask
Bộ sinh và bộ phân biệt được huấn luyện đồng thời trong một quy trình đối nghịch: Discriminator học để phân biệt (x, G(x)) là giả, (x, y) là thật (real). Ngược lại Generator sẽ học để sinh G(x) sao cho cặp (x, G(x)) đánh lừa được Discrimitor là thật. Hình 4.2 minh họa quá trình huấn luyện bộ phân biệt, Hình 4.3 minh họa quá trình huấn luyện bộ sinh.
Hình 4.2.Huấn luyện bộ phân biệt
Hình 4.3. Huấn luyện bộ sinh
- Kiến trúc bộ sinh: Bộ sinh của PolypGenPix2Pix có kiến trúc dạng UNet bao gồm bộ mã hóa (encoder), bộ giải mã (decoder) với các kết nối cộng (skip connections) giữa bộ mã hóa và bộ giải mã. Hình 4.4 mô tả kiến trúc của Generator.
Hình 4.4. Kiến trúc bộ sinh của PolypGenPix2Pix
Bộ mã hóa của bộ sinh bao gồm 8 khối ENCODE, mỗi khối bao gồm 3 phép biến đổi: Convolution-BatchNorm-LeakyReLU. Lớp tích chập (Convolution) sử dụng stride 2 × 2 và filter 4×4. Trong khi đó, bộ giải mã bao gồm 8 khối DECODE, mỗi khối bao gồm các phép biến đổi: Transpose Convolution-BatchNorm-Dropout-ReLU. Đầu vào x của bộ sinh là ảnh lọc cạnh kích thước 256x256x3, đầu ra của bộ sinh là ảnh nội soi chứa plolyps tổng hợp cùng kích thước với đầu vào 256x256x3. Bộ mã hóa dùng để trích xuất các đặc trưng và giảm dần kích thước của đầu vào. Bộ giải mã đọc đặc trưng ở đầu ra lớp cuối cùng của bộ mã hóa, sử dụng các tích chập chuyển vị (Transpose Convolution) để tăng kích thước và tổng hợp thông tin dần đến ảnh đích.
- Kiến trúc bộ phân biệt: Bộ phân biệt sẽ có đầu vào là 2 ảnh trong đó một ảnh là điều kiện đầu vào của bộ sinh và một ảnh là ảnh nội soi có thể là đầu ra của bộ sinh hoặc ảnh một ảnh nội soi thực. Việc đưa cả ảnh điều kiện đầu vào sẽ giúp bộ phân biệt bộ phân biệt dễ phân biệt hơn ảnh nào là do bộ sinh tạo ra và ảnh nào trong dataset. Hình 4.5 mô phỏng kiến trúc của bộ phân biệt, trong đó bộ phân biệt có đầu vào là 2 ảnh: một ảnh là ảnh điều kiện chính là đầu vào của bộ sinh và một ảnh là ảnh cần phân biệt có thể là đầu ra của bộ sinh hoặc
ảnh thật tương ứng với đầu vào trong bộ dữ liệu học. Việc lấy ảnh điều kiện làm đầu vào sẽ giúp bộ phân biệt dễ phân biệt hơn ảnh nào là ảnh do bộ sinh sinh ra và ảnh nào là ảnh thật trong bộ dữ liệu học. Các ảnh đầu vào được xếp chồng bằng khối CONCAT, tiếp sau đó được đi qua các khối ENCODE, mỗi khối bao gồm 3 phép biến đổi: Convolution-BatchNorm-LeakyReLU. Kernel 4 × 4 và stride 2 × 2 được sử dụng trên tất cả các lớp tích chập trừ 2 lớp cuối cùng. Hàm kích hoạt Sigmoid được sử dụng ở lớp đầu ra để dự đoán đầu vào là ảnh thật tức 1 hay ảnh đầu ra là giả tức 0.
Hình 4.5. Kiến trúc bộ phân biệt của PolypGenPix2Pix
Bộ phân biệt được triển khai dưới dạng PatchGAN do các tác giả trong [29] đề xuất. Bộ phân biệt trong mạng GAN bình thường chính là một bộ phân lớp nhị phân với toàn bộ ảnh đầu vào sẽ được phân lớp với nhãn đầu ra là 0 tức ảnh giả hoặc 1 tức ảnh thật, trong khi đó ý tưởng của PatchGAN Discriminator là thực hiện phân lớp nhị phân trên từng vùng ảnh nhỏ (patch) thay vì trên toàn bộ ảnh. Khi huấn luyện Bộ phân biệt với ảnh thật tất cả các patch được gán nhãn 1, còn với ảnh giả tất cả các patch được gán nhãn 0. Huấn luyện Generator thì ngược lại, tất cả các patch của ảnh giả được gán nhãn 1. Trong nghiên cứu này luận án đã sử dụng PatchGAN 70x70 nghĩa là kích thước của mỗi patch là 70x70. Mỗi pixel từ feature map 30x30 ở đầu ra tương ứng với một đầu ra của mỗi patch 70x70 ở đầu vào.
- Hàm mất mát cho huấn luyện mô hình sinh ảnh nội soi đại tràng có chứa polyp: Mô hình sinh ảnhlà một mô hình CGAN với hai thành phần Bộ sinh và
Bộ phân biệt. Mục tiêu của Bộ sinh (G) là học ánh xạ: 𝐺: 𝑥, 𝑧 → 𝑦 với x là ảnh nguồn, z là vector tơ nhiễu ngẫu nhiên, y là ảnh đích. Mục tiêu của Bộ phân biệt (D) cố gắng phân biệt đâu là ảnh thật (y) và đâu là ảnh giả (G(x,z)), trong khi đó Bộ sinh (G) sẽ học để đánh lừa bộ phân biệt rằng ảnh nó sinh ra (G(x,z))
là ảnh thật. Hàm mất mát của CGAN thông thường được định nghĩa như sau:
ℒ𝑐𝐺𝐴𝑁(𝐺, 𝐷) = 𝐸𝑥,𝑦[𝑙𝑜𝑔𝐷(𝑥, 𝑦)] + 𝐸𝑥,𝑧[log(1 − 𝐷(𝑥, 𝐺(𝑥, 𝑧))))] (4.1) Trong đó 𝐺(∙) và 𝐷(∙) biểu diễn đầu ra của Bộ sinh và Bộ phân biệt, x là ảnh nguồn chính là điều kiện đầu vào của bộ sinh, z là vector tơ nhiễu ngẫu nhiên, y là ảnh đích là ảnh thực lấy từ bộ dữ liệu huấn luyện.
Để tạo ảnh thực hơn luận án đề xuất thêm vào hàm mất mát (4.1) thành phần L1 được tính bằng khoảng cách theo dạng chuẩn 1 giữa đầu ra dự đoán của Bộ sinh và nhãn đúng thực sự (ground truth) y của đầu vào:
𝐿𝐿1(𝐺) = 𝐸𝑥,𝑦,𝑧‖𝑦 − 𝐺(𝑥, 𝑧)‖1 (4.2) Hàm mất mát cuối cùng của PolypGenPix2Pix được biểu diễn như sau:
ℒ𝐺∗ = 𝑎𝑟𝑔 min
𝐺 max
𝐷 𝐿𝑐𝐺𝐴𝑁(𝐺, 𝐷) + 𝜆𝐿𝐿1(𝐺) (4.3) Với 𝜆 là tham số để kiểm soát cân bằng giữa 2 thành phần hàm mất mát,
𝐿𝑐𝐺𝐴𝑁 cho phép GAN học được các chi tiết khung ảnh nhiều hơn còn 𝐿𝐿1 sẽ cho phép học được các chi tiết nhỏ của ảnh, kết hợp hai hàm mất mát này với nhau sẽ cho ra kết quả tốt hơn. Bằng thực nghiệm theo phương pháp tìm kiếm lưới (grid search), luận án đã chọn được tham số 𝜆 = 0,01 là giá trị cho kết quả sinh ảnh nội soi chứa polyp tốt nhất trên bộ dữ liệu thực nghiệm đã sử dụng
4.2.2. Kỹ thuật sinh điều kiện đầu vàocho mạng sinh ảnh
Để tạo ảnh nội soi chứa polyp mạng PolypGenPix2Pix cần có các điều kiện đầu vào. Trong nghiên cứu này, luận án đã đề xuất sử dụng phương pháp sinh điều kiện đầu vào cho mạng sinh ảnh theo Shin và các cộng sự [66] đã đề xuất, sử dụng các ảnh nội soi của ca bệnh bình thường tức ảnh nội soi không chứa các polyp kết hợp với các polyp mask được lấy trong bộ dữ liệu chuẩn.
Các ảnh nội soi bình thường này thu thập khá dễ dàng vì trên thực tế các trường hợp thực hiện nội soi đại tràng không có polyp nhiều hơn và không cần các chuyên gia y tế gán nhãn hình dạng polyp cho các dữ liệu này. Hình 4.6 dưới đây minh họa phương pháp tạo ảnh ảnh đầu vào mà luận án đã sử dụng.
Hình 4.6. Kỹ thuật sinh tạo điều kiện đầu vào cho mô hình sinh ảnh Phương pháp sử dụng có thể mô tả như sau: Ảnh nội soi đại tràng bình thường không có polyp (a) qua bộ dò cạnh sử dụng toán tử Sobel được ảnh lọc cạnh (b). Sau đó ảnh lọc cạnh được kết hợp với polyp mask (c) để được ảnh điều kiện đầu vào (d) cho mạng sinh ảnh nội soi có chứa polyp. Các polyp mask dùng để sinh điều kiện đầu vào lấy từ nhãn trong bộ dữ liệu chuẩn dùng cho huấn luyện và áp dụng các kết hợp các phép biến đổi ảnh đơn giản là: xoay ảnh, lật ảnh theo chiều dọc và chiều ngang, phóng to thu nhỏ ảnh, Dịch ảnh theo chiều dọc và chiều ngang.
Phương pháp sinh điều kiện đầu vào có tác dụng làm cho ảnh nội soi chứa polyp tổng hợp được tạo ra từ mô hình sinh ảnh nội soi đại tràng chứa polyp duy trì được cấu trúc và kết cấu tổng thể của ảnh nội soi chứa polyp thực tế.