Image inpainting là một quá trình hồi phục trong đó các phần bị hư hỏng hoặc thiếu của một hình ảnh được điền vào để tạo ra một hình ảnh hoàn chỉnh. Image inpainting có thể được chia chủ yếu thành hai nhóm. ▪ Nhóm đầu tiên đại diện cho phương pháp truyền thống dựa trên khuếch tán hoặc dựa trên bản vá (patch – base method) với các feature cấp thấp. Phương pháp này chỉ sử dụng low level features, do đó không mang lại hiệu quả cao. ▪ Nhóm thứ hai cố gắng giải quyết inpainting bằng cách tiếp cận dựa trên learningbased.
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC MÁY HỌC
Đề tài :
PEPSI++: FAST AND LIGHTWEIGHT NETWORK FOR IMAGE INPAINTING
Dựa trên bài báo :
PEPSI++: Fast and Lightweight Network for Image Inpainting (Yong-Goo Shin, Min-Cheol Sagong, Yoon-Jae Yeo, Seung- Wook Kim, and Sung-Jea Ko)
GIẢNG VIÊN HƯỚNG DẪN : TS Trần Thái Sơn
HỌC VIÊN THỰC HIỆN :
Phan Minh Toàn – 20C11057
Võ Thanh Trúc – 20C11058 Nguyễn Thủy Tiên – 20C12032
Trang 2Mục Lục
Mục Lục 1
Bảng tóm tắt 1
Danh sách bảng 2
Danh sách hình ảnh minh họa 2
1 Giới thiệu Image Inpainting 3
2 Nghiên cứu liên quan 4
3 Mở đầu 5
3.1 Generative adversarial networks 5
3.2 Generative Image Inpainting Network 6
3.2.1 Encoder – Decoder Network 6
3.2.2 Encoder – Decoder Network 7
3.3 Contextual Attention Module (CAM) 7
4 Phương pháp đề xuất 9
4.1 Kiến trúc của Parallel Extended-decoder Path for Semantic Inpainting Network (PEPSI) 9
4.2 Kiến trúc của Diet-PEPSI 10
4.3 Region Ensemble Discriminator (RED) 11
4.4 Chỉnh sửa từ CAM 12
4.5 Hàm lỗi 13
5 Thực nghiệm 14
5.1 Chi tiết triển khai 14
5.1.1 Free-Form Mask 14
5.1.2 Quá trình huấn luyện 15
5.2 Đánh giá hiệu suất 15
5.2.1 So sánh định tính 15
5.2.2 So sánh định lượng 18
6 Kết luận 20
7 Demo code 21
References 22
Trang 3Bảng phân công nhiệm vụ
GCA : Generator with Contextual Attention
PEPSI : Parallel Extended-decoder Path for Semantic Inpainting
Network
GL : Globally and Locally completion network
SSIM : Structural Similarity Index
Trang 4Danh sách bảng
Bảng 1 Chi tiết kiến trúc của RED 12
Bảng 2 Kết quả của độ đo PSNR (vùng trống, toàn ảnh) và SSIM trên cả 2 loại mặt nạ, thời gian tính toán, số lượng tham số của các phương pháp trên bộ dữ liệu CelebA-HQ 19
Bảng 3 Kết quả thực nghiệm giảm số lượng tham số bằng kỹ thuật tích chập nhóm 20
Bảng 4 Kết quả của độ đo PSNR (vùng trống, toàn ảnh) và SSIM trên cả 2 loại mặt nạ của các phương pháp trên bộ dữ liệu Place2 20
Danh sách hình ảnh minh họa Hình 1-1 Ví dụ về training deep convolutional neural networks để dự đoán pixel cho các vùng ảnh bị thiếu sót 3
Hình 2-1 Sơ đồ các công trình nghiên cứu liên quan 4
Hình 3-1 Hình minh họa cơ chế hoạt động của Generative adversarial networks (GAN) 5
Hình 3-2 Hàm lost của Discriminator và Generator 6
Hình 3-3 Encoder – Decoder Network 6
HìnhHình 3-4 Coarse-to-fine Network (two-stage network) 7
Hình 3-5 Coarse-to-fine Network 7
Hình 3-6 Hình minh họa cho việc thay thế Refinement network bằng Contextual attention module (CAM) 8
Hình 3-7 Hình minh họa của contextual attention layer 8
Hình 4-1 Kiến trúc của PEPSI 9
Hình 4-2 Kiến trúc của DietPEPSI 10
Hình 4-3 Rate-adaptive scaling and shifting operations 10
Hình 4-4.Minh họa kỹ thuật để tổng hợp thông tin global contextual trong khi giảm số lượng tham số 11
Hình 4-5 Tổng quan về RED 12
Hình 5-1 Ví dụ cho mặt nạ trên ảnh (a) Ảnh gốc (b) Ảnh với mặt nạ thông thường (c) Ảnh với mặt nạ dạng tự do 14
Hình 5-2 Kết quả so sánh trên mặt nạ vuông với bộ dữ liệu CelebA-HQ (a) Ảnh gốc (b) Ảnh cần hoàn thiện (c) Kết quả của CE [4] (d) Kết quả của GL [5] (e) Kết quả của GatedConv [6] (f) Kết quả của PEPSI [7] (g) Kết quả của Diet-PEPSI 16
Hình 5-3 Kết quả so sánh trên mặt nạ dạng tự do với bộ dữ liệu CelebA-HQ (a) Ảnh gốc (b) Ảnh cần hoàn thiện (c) Kết quả của CE [4] (d) Kết quả của GL [5] (e) Kết quả của GatedConv [6] (f) Kết quả của PEPSI [7] (g) Kết quả của Diet-PEPSI 16
Hình 5-4 Kết quả so sánh với bộ dữ liệu Place2 (a) Ảnh gốc (b) Ảnh cần hoàn thiện (c) Kết quả của PatchMatch [13] (d) Kết quả của GatedConv [6] (e) Kết quả của PEPSI [7] (f) Kết quả của Diet-PEPSI 18
Trang 51 Giới thiệu Image Inpainting
Image inpainting là một quá trình hồi phục trong đó các phần bị hư hỏng hoặc thiếu của một hình ảnh được điền vào để tạo ra một hình ảnh hoàn chỉnh Image inpainting có thể được chia chủ yếu thành hai nhóm
▪ Nhóm đầu tiên đại diện cho phương pháp truyền thống dựa trên khuếch tán hoặc dựa trên bản vá (patch – base method) với các feature cấp thấp Phương pháp này chỉ sử dụng low level features,
do đó không mang lại hiệu quả cao
▪ Nhóm thứ hai cố gắng giải quyết inpainting bằng cách tiếp cận dựa trên learning-based
Ví dụ: Training deep convolutional neural networks để dự đoán pixel cho các vùng ảnh bị thiếu sót tham khảo Hình 1-1
Hình 1-1 Ví dụ về training deep convolutional neural networks để dự đoán pixel cho các vùng ảnh bị thiếu sót
Trang 62 Nghiên cứu liên quan
Năm 2014, Generative Adversarial Network (GAN) ra đời, tạo nên một
sự thay đổi lớn của Neural Network GAN là một phương pháp học và tạo ra
dữ liệu dựa trên phân bố có sẵn của dữ liệu gốc Từ khi GAN ra đời, rất nhiều paper sử dụng đến GAN cũng xuất hiện
Từ năm 2014 trở đi, GAN cũng được áp dụng vào các bài toán Image Inpainting Song song đó, nhiều mô hình đã được đưa ra để giải quyết bài toán Image Inpainting Vào năm 2018, một cải tiến của GAN cho bài toán Image Inpainting là Contextual Attention Module (CAM) ra đời CAM đã cải tiến được một số vấn đề cho bài toán Image Inpainting nhưng vẫn còn một số hạn chế về mặt hiệu suất và resource computing Do đó vào năm 2019, Parallel Extended - decoder Path for Semantic Inpainting Network (PEPSI) ra đời, cải thiện đáng
kể về mặt hiệu suất, tuy nhiên số lượng tham số của mạng Neural Network vẫn khá cao Vì lý do này, năm 2020, Diet-PEPSI (PEPSI++) ra đời, PEPSI++ vẫn giữ nguyên hiệu suất nhừ PEPSI nhưng giảm số lượng tham số của mạng Neural Network đáng kể
Hình 2-1 Sơ đồ các công trình nghiên cứu liên quan
Trang 73 Mở đầu
3.1 Generative adversarial networks
GAN gồm 2 network chính là Generator và Discriminator Bên dưới là giải thích các ký hiệu được mô tả ở Hình 3-1 trên:
▪ z: feature đầu vào của Generator
▪ x: dữ liệu thật từ bộ dataset (real sample)
▪ G(z): ảnh được sinh ta từ Generator (fake sample)
▪ D(x): dự đoán của Discriminator cho real sample (P(y|real sample))
và Discriminator sẽ không thực hiện song song, khi Generator hoạt động thì Discriminator sẽ đóng băng và ngược lại Cũng vì cơ chế hoạt động đối đầu nhau của Generator và Discriminator nên có tên gọi là mạng chống đối (adversarial networks)
Trang 8Cơ chế hoạt động của Discriminator là cố gắng xác định real sample (x)
từ fake sample được tạo ra bới Generator (G(z)) Do đó, Discriminator muốn tối
đa hóa D(x) và tối thiểu hóa D(G(z)) Ngược lại, Generator lại muốn tối đa hóa D(G(z)) để Discriminator không phân biệt được thật giả Do đó, hàm lost của hai network Discriminator và Generator được thể hiện như Hình 3-2
Từ hai hàm lost của hai network Discriminator và Generator, ta có hàm lost tổng hợp như sau:
min
𝜃𝑔 max
𝜃𝑑 [𝐸𝑥~𝑝𝑑𝑎𝑡𝑎𝑙𝑜𝑔𝐷𝜃𝑑(𝑥) + 𝐸𝑧~𝑝(𝑧)𝑙𝑜𝑔 (1 − 𝐷𝜃𝑑(𝐺𝜃𝑔(𝑧)))]
3.2 Generative Image Inpainting Network
Sau khi ra đời, GAN đã được áp dụng rộng rãi vào các bài toán Image Inpainting Trong đó, Encoder – Decoder Network và Coarse-to-fine Network (two-stage network) là hai mạng phổ biến áp dụng GAN
3.2.1 Encoder – Decoder Network
Encoder – Decoder Network extract features và thông qua Generator cho ra Inpainting result Từ Inpainting result sẽ đi qua 2 Discriminator là: Global Discriminator và Local Discriminator Local Discriminator sẽ tập trung phân biệt thật giả cho vùng được sinh ra và Global Discriminator sẽ nhìn vào toàn bộ bức ảnh (tham khảo Hình 3-3)
Hình 3-2 Hàm lost của Discriminator và Generator
Hình 3-3 Encoder – Decoder Network
Trang 93.2.2 Encoder – Decoder Network
Khác với Encoder – Decoder Network, Coarse-to-fine Network (tham khảo HìnhHình 3-4) có hai gian đoạn, mỗi giai đoạn sử dụng một mạng Generator khác nhau Giai đoạn thứ nhất, Input và mask đi qua mạng Generator thứ nhất để extract ra Corase result (kết quả thô) Ở giai đoạn này hàm lost là L1 Ở giai đoạn hai, Corase result tiếp tục đi qua mạng Generator thứ hai để cho
ra Inpainting result Sau đó Discriminator thực hiện để phân biệt thật giả Việc chia ra làm hai giai đoạn Corase result và Inpainting result giúp có kết quả tốt hơn so với Encoder – Decoder Network
3.3 Contextual Attention Module (CAM)
Vì Coarse-to-fine Network không đạt hiệu quả cho việc lấy các feature từ các vị trí xa trong ảnh nên Contextual attention layer ra đời để khắc phục vấn
đề này
Giai đoạn đầu Coarse Network vẫn được giữ nguyên, ở giai đoạn hai Refinement network được thay thế bằng Contextual attention module (CAM) Contextual attention layer học và sao chép những feature thông tin từ background patches và dùng để sinh ra phần bị thiếu
HìnhHình 3-4 Coarse-to-fine Network (two-stage network)
Hình 3-5 Coarse-to-fine Network
Trang 10Dựa trên Coarse result từ mạng encoder-decoder ở giai đoạn đầu, ở giai đoạn sau, hai mạng decoders song song được thực hiện và sau đó hợp nhất lại thành một single decoder để có được Inpainting result Để trực quan hóa attention map, màu sắc cho biết vị trí tương đối của background patch cho mỗi pixel trong foreground Ví dụ: màu trắng (trung tâm của bản đồ mã hóa màu)
có nghĩa là pixel tự tập trung vào chính nó, màu hồng ở dưới cùng bên trái, màu xanh lá cây có nghĩa là ở trên cùng bên phải
Input feature được chia làm hai phần là Foreground và Background Sau
đó sử dụng cosine similarity để tính toán matching score của foreground và background Tiếp theo làm áp dụng softmax để lấy giá trị lớn nhất được tính từ bước trên làm attention score cho mỗi pixel Cuối cùng hồi phục lại foreground với background bằng cách thực hiện Deconvolution dựa trên attention score
Hình 3-6 Hình minh họa cho việc thay thế Refinement network bằng
Contextual attention module (CAM)
Hình 3-7 Hình minh họa của contextual attention layer
Trang 11CAM đạt hiệu quả cho việc lấy các feature từ các vị trí xa trong ảnh, tuy nhiên, phương pháp này sử dụng tài nguyên tính toán đáng kể do sử dụng kiến trúc two-stage network Do đó Parallel Extended - decoder Path for Semantic Inpainting Network (PEPSI) ra đời để cải thiện vấn đề này
4 Phương pháp đề xuất
4.1 Kiến trúc của Parallel Extended-decoder Path for Semantic Inpainting Network (PEPSI)
Ở PEPSI, two-stage network được thay thế bằng single-stage decoder network PEPSI bao gồm một single encoding network và parallel decoding networks bao gồm coarse and inpainting paths PEPSI trích xuất các feature thông qua single encoding network, tiếp theo parallel decoding networks được tiến hành
encoder-Ở giai đoạn theo parallel decoding networks:
▪ Coarse path tạo ra kết quả thô từ encoded features
▪ Song song bên cạnh đó, Inpainting path cũng lấy encoded features làm input và hồi phục feature map bằng cách sử dụng CAM
▪ Sau đó, feature map được hồi phục sẽ decoded để tạo ra kết quả higher-quality inpainting
▪ Bằng cách chia sẻ trọng số giữa 2 path (Coarse path và Inpainting path) giúp cho việc điều chỉnh trọng số trong inpainting path của Decoding network
▪ Coarse path sử dụng L1 loss và Inpainting path sử dụng cả L1 loss
và GAN loss
Nhờ thay thế two-stage network bằng single-stage encoder-decoder network, PEPSI mạng lại hiệu suất cao hơn so với các phương pháp thông thường Tuy nhiên, nó vẫn cần bộ nhớ đáng kể do sử dụng một loạt dilated convolutional layers trong encoding network, chiếm gần 67% tham số mạng Cách trực quan để giảm tiêu thụ bộ nhớ là cắt bớt channels trong dilated convolutional layers, tuy nhiên phương pháp này thường mang lại kết quả kém
Hình 4-1 Kiến trúc của PEPSI
Trang 12hơn Để giải quyết vấn đề này Diet-PEPSI (PEPSI++) đã ra đời, làm giảm đáng
kể số tham số mạng trong khi vẫn giữ nguyên hiệu suất
4.2 Kiến trúc của Diet-PEPSI
Diet-PEPSI (PEPSI++) là cải tiến của PEPSI nhằm giảm số lượng parameters mà vẫn giữ nguyên hiệu suất
Để giảm số lượng parameters mà vẫn giữ nguyên hiệu suất, PEPSI++ đã thay thế multiple dilated convolutional layers với Diet-PEPSI units (DPUs) Trong các DPUs, rate-adaptive convolution layers chia sẻ trọng số của chúng trong khi các 1 x 1 standard convolutional layers không chia sẻ trọng số của chúng
Hình 4-2 Kiến trúc của DietPEPSI
Hình 4-3 Rate-adaptive scaling and shifting operations
Trang 13Rate-adaptive scaling and shifting operations 𝛽𝑑 and 𝛾𝑑 có giá trị khác nhau phụ thuộc vào tỉ lệ đã cho Tensor broadcasting được bao gồm trong các hoạt động scaling and shifting
Sử dụng Convolution với kernel size 1x1: giúp giảm số lượng parameter
mà vẫn giữ feature của feature map trước đó
4.3 Region Ensemble Discriminator (RED)
Mạng GCA [1] sử dụng global và local discriminators để xác định xem một hình ảnh đã được hoàn thành một cách nhất quán hay chưa Tuy nhiên, local
Hình 4-4.Minh họa kỹ thuật để tổng hợp thông tin global contextual trong khi giảm số lượng tham số
Trang 14discriminator chỉ phân biệt những vùng trống có hình dạng là hình vuông với kích thước cố định, và rất khó khăn với những hình dạng tùy ý bất kỳ trong thực
tế Để giải quyết vấn đề này, RED đã ra đời lấy cảm hứng từ mạng region ensemble [2] phát hiện vùng thật giả với mọi hình dáng và bất kỳ đâu trong ảnh bằng cách xử lý riêng lẻ nhiều vùng đặc trưng
Như được mô tả trong Hình 4-5, RED phân chia đặc trưng của lớp cuối cùng thành pixel-wise block và phân biệt từng đặc trưng là thật hay giả bởi các lớp fully-connected Trái ngược với local discriminator, RED có thể xử lý các vùng trống khác nhau có thể xuất hiện ở bất kỳ đâu trong hình ảnh ở bất kỳ kích thước nào Kiến trúc chi tiết của RED được liệt kê trong Bảng 1
4.4 Chỉnh sửa từ CAM
CAM [1] sử dụng cosine để đo similarity scores giữa các đặc trưng của foreground và background Tuy nhiên, trong cosin, vì độ lớn của foreground và background bị bỏ qua, cách tính này có thể trả về kết quả bị biến dạng Để giảm bớt vấn đề này, CAM được sửa đổi sử dụng khoảng cách Euclidean để đo similarity scores (𝑑(𝑥,𝑦),(𝑥′ ,𝑦′)) mà không cần quy trình chuẩn hóa Vì khoảng
Hình 4-5 Tổng quan về RED
Bảng 1 Chi tiết kiến trúc của RED
Trang 15cách Euclidean xem xét đồng thời góc giữa hai vectơ và độ lớn, nên nó thích hợp hơn để tái tạo lại mảng đặc trưng Tuy nhiên, vì phạm vi của khoảng cách Euclidean là [0, ∞), nên khó có thể áp dụng trực tiếp cho softmax Để xử lý với vấn đề này, sẽ thực hiện rút ngắn khoảng cách similarity scores như sau:
𝑑̃(𝑥,𝑦),(𝑥′ ,𝑦′) = 𝑡𝑎𝑛ℎ (− (𝑑(𝑥,𝑦),(𝑥
′ ,𝑦′)− 𝑚 (𝑑(𝑥,𝑦),(𝑥′ ,𝑦′))𝜎(𝑑(𝑥,𝑦),(𝑥′ ,𝑦 ′ )) )), với 𝑑(𝑥,𝑦),(𝑥′ ,𝑦′) = ‖𝑓𝑥,𝑦− 𝑏𝑥′ ,𝑦′‖,𝑓𝑥,𝑦 là mảng foreground và 𝑏𝑥′ ,𝑦′ là mảng background Vì 𝑑̃(𝑥,𝑦),(𝑥′ ,𝑦′) có các giá trị giới hạn trong [−1,1], nó hoạt động giống như một ngưỡng để chọn ra distance scores nhỏ hơn giá trị trung bình Nói cách khác, 𝑑̃(𝑥,𝑦),(𝑥′ ,𝑦′) hỗ trợ chia các background thành hai nhóm có thể
có hoặc không liên quan đến foreground
trong đó 𝑃𝑋𝑖 và 𝑃𝑌 lần lượt biểu thị sự phân bố dữ liệu của các kết quả inpainting
và hình ảnh đầu vào Áp dụng spectral normalization [32] cho tất cả các lớp trong RED để ổn định hơn trong việc huấn luyện của GAN Vì mục tiêu của inpainting path để khôi phục phần bị thiếu của hình ảnh gốc một cách chính xác, nên tác giả thêm hàm 𝐿1 vào hàm lỗi của GAN:
𝐿𝐺 =𝜆𝑖
𝑁∑‖𝑋𝑖(𝑛) − 𝑌(𝑛)‖
1 𝑁
𝑛=1
− 𝜆𝑎𝑑𝑣𝐸𝑥~𝑃
𝑋𝑖[𝐷(𝑥)], trong đó 𝑋𝑖(𝑛) và 𝑌(𝑛) đại diện cho cặp hình ảnh thứ n của hình ảnh được tạo ra thông qua inpainting path và hình ảnh gốc tương ứng của nó trong một mini-batch, tương ứng N là số cặp hình ảnh trong một mini-batch, và 𝜆𝑖 và 𝜆𝑎𝑑𝑣 là các hyper-parameter kiểm soát tính quan trọng của mỗi hàm loss
Mặt khác, coarse path chỉ cần tối ưu hóa bằng cách sử dụng hàm 𝐿1 như sau:
𝐿𝐶 = 1
𝑁∑‖𝑋𝑐(𝑛)− 𝑌(𝑛)‖
1 𝑁