ĐẠ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, SeungWook Kim, and Sung-Jea Ko)
GIẢNG VIÊN HƯỚNG DẪN :
HỌC VIÊN THỰC HIỆN
TS. Trần Thái Sơn
:
Phan Minh Toàn – 20C11057
Võ Thanh Trúc – 20C11058
Nguyễn Thủy Tiên – 20C12032
KHĨA
:
30
NGÀNH
:
Khoa học máy tính
TP.HCM, 05-2021
Mụ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
1
Bảng phân cơng nhiệm vụ
Họ và tên
Phan Minh Tồn
Võ Thanh Trúc
Nguyễn Thủy Tiên
Mã số
20C11057
20C11058
20C12032
Bảng tóm tắt
GAN
CAM
GCA
PEPSI
:
:
:
:
PEPSI++
RED
CE
GL
TTUR
CPU
GPU
SSIM
PSNR
:
:
:
:
:
:
:
:
:
Nhiệm vụ
Generative Adversarial Network
Contextual Attention Module
Generator with Contextual Attention
Parallel Extended-decoder Path for Semantic Inpainting
Network
Diet-PEPSI
Region Ensemble Discriminator
Context Encoder
Globally and Locally completion network
Two-Timescale Update Rule
Central Processing Unit
Graphics Processing Unit
Structural Similarity Index
Peak Signalto-Noise Ratio
Danh 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 tốn, số lượng tham số của các phương pháp trên bộ dữ liệu CelebAHQ. ............................................................................................................................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
2
1. 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 hồ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ự đốn
pixel cho các vùng ảnh bị thiếu sót.
3
2. Nghiên cứu liên quan
Hình 2-1. Sơ đồ các cơng trình 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ể.
4
3. Mở đầu
3.1. Generative adversarial networks
Hình 3-1. Hình minh họa cơ chế hoạt động của Generative adversarial
networks (GAN).
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))
→ {0,1}.
▪ D(G(z)): dự đoán của Discriminator cho fake sample (P(y|fake
sample)) → {0,1}.
Cơ chế hoạt động của Generator là cố gắng tạo fake sample để đánh lừa
Discriminator (G(z)), còn cơ 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)). Generator
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).
at Discriminator D
D(x) → should be maximized
D(G(z)) → should be minimized
Real sample: y = 1
Fake sample: y = 0
at Generator G
D(G(z)) → should be maximized
5
Cơ 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.
Hình 3-2. Hàm lost của Discriminator và Generator.
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
Hình 3-3. 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 tồn bộ bức ảnh (tham khảo Hình 3-3).
6
3.2.2.
Encoder – Decoder Network
HìnhHình 3-4. Coarse-to-fine Network (two-stage 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)
Hình 3-5. Coarse-to-fine Network.
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.
7
Hình 3-6. Hình minh họa cho việc thay thế Refinement network bằng
Contextual attention module (CAM).
Dự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.
Hình 3-7. Hình minh họa của contextual attention layer.
Input feature được chia làm hai phần là Foreground và Background. Sau
đó sử dụng cosine similarity để tính tố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.
8
CAM đạ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)
Hình 4-1. Kiến trúc của PEPSI.
Ở PEPSI, two-stage network được thay thế bằng single-stage encoderdecoder 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.
Ở 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
9
hơ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.
Hình 4-2. Kiến trúc của DietPEPSI.
Để 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-3. Rate-adaptive scaling and shifting operations.
10
Rate-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.
𝛽𝑑 ∈ ℝ1×1×𝐶𝑖𝑛 ×𝐶𝑜𝑢𝑡
𝛾𝑑 ∈ ℝ1×1×𝐶𝑖𝑛×𝐶𝑜𝑢𝑡
𝑊𝑑 = 𝛾𝑑 ∗ 𝑊 + 𝛽𝑑
𝑊𝑑 ∈ ℝ𝑘×𝑘×𝐶𝑖𝑛 ×𝐶𝑜𝑢𝑡
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ố.
Sử dụng kết nối tắt (Skip connection/Resedual block): các layer ở phía
trước có được thơng tin trực tiếp hơn từ các layer phía sau nên khi cập nhật
trọng số sẽ hiệu quả hơn khi thực hiện bước lan truyền ngược.
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 hồn thành một cách nhất quán hay chưa. Tuy nhiên, local
11
discriminator chỉ phân biệt những vùng trống có hình dạng là hình vng 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.
Hình 4-5. Tổng quan về RED.
Bảng 1. Chi tiết kiến trúc của RED.
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
12
cá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.
4.5. Hàm lỗi
Do PEPSI và Diet-PEPSI có kiến trúc parallel decoding nên sẽ thực hiện
tối ưu hóa inpainting path và coarse path.
Đối với inpainting path, chúng tơi sử dụng khung tối ưu hóa GAN [3].
𝐿𝐺 = −𝐸𝑥~𝑃𝑋 [𝐷(𝑥)],
𝑖
𝐿𝐷 = 𝐸𝑥~𝑃𝑌 [𝑚𝑎𝑥(0,1 − 𝐷 (𝑥))] + 𝐸𝑥~𝑃𝑋 [𝑚𝑎𝑥(0,1 + 𝐷 (𝑥))],
𝑖
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 minibatch, 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 số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 ,
𝑁
𝑛=1
(𝑛)
𝑋𝑐
trong đó
là cặp ảnh thứ n của ảnh được tạo qua coarse path trong một minibatch.
Vậy hàm lỗi tổng của mạng PEPSI và Diet-PEPSI như sau:
13
𝐿𝑡𝑜𝑡𝑎𝑙 = 𝐿𝐺 + 𝜆𝑐 (1 −
𝑘
)𝐿 ,
𝑘𝑚𝑎𝑥 𝐶
với 𝜆𝑐 là hyper-parameter kiểm soát nhằm tránh sự lấn át giữa hai hàm loss. Và
𝑘 và 𝑘𝑚𝑎𝑥 lần lượt là số lần lặp và số lần lặp tối đa của quá trình học. Khi quá
trình huấn luyện diễn ra, 𝐿𝐶 sẽ giảm dần sự đóng góp để tập trung vào inpainting
𝑘
)nhằm để giảm đóng góp của 𝐿𝐶 .
path. Cụ thể hơn, (1 −
𝑘𝑚𝑎𝑥
5. Thực nghiệm
5.1. Chi tiết triển khai
5.1.1. Free-Form Mask
Đối với các phương pháp inpainting ảnh truyền thống như CE [4], GL [5],
GCA [1] thường sử dụng các mặt nạ thơng thường (ví dụ vùng trống có dạng
hình chữ nhật) như Hình 5-1 (b) trong quá trình huấn luyện. Tuy nhiên, các
mạng được huấn luyện với mặt nạ thông thường thưởng có hiệu suất thấp trong
việc hồn thiện vùng trống có hình dạng bất kỳ và tạo sự khác biệt về màu sắc
và độ mờ. Để giải quyết vấn đề này, như được mơ tả trong Hình 8 (c), Yu và
cộng sự [6] đã sử dụng thuật toán mặt nạ dạng tự do (free-form mask) trong quá
trình huấn luyện. Về bản chất, các mặt nạ được lấy mẫu phải giống với các mặt
nạ được vẽ trong các trường hợp sử dụng thực tế, đa dạng để tránh over-fitting,
hiệu quả trong tính toán và lưu trữ, có thể kiểm sốt và linh hoạt. Thuật toán
này tự động tạo ra nhiều vùng trống với số lượng, kích thước, hình dạng và vị
trí thay đổi được lấy ngẫu nhiên ở mỗi lần lặp. Cụ thể hơn, thuật toán sẽ vẽ các
đường thẳng và các góc quay lặp đi lặp lại. Để đảm bảo sự trơn tru của hai
đường, thực hiện vẽ một vòng trịn ở các khớp giữa hai đường. Để cơng bằng,
trong các thử nghiệm, tác giả đã sử dụng cùng một thuật toán tạo mặt nạ dạng
tự do để huấn luyện PEPSI và Diet-PEPSI.
(a)
(b)
(c)
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
5.1.2. Quá trình huấn luyện
PEPSI [7] và Diet-PEPSI được huấn luyện cho một triệu vịng lặp với kích
thước mỗi batch là 8. Mơ hình đề xuất được tối ưu hóa sử dụng giải thuật Adam
với tham số 𝛽1 và 𝛽2 tương ứng là 0,5 và 0,9. Áp dụng TTUR [8] trong đó tỷ lệ
học của discriminator và generator lần lượt là 4 × 10−4 và 1 × 10−4 . Ngồi
ra, sau 0,9 triệu vòng lặp tỷ lệ học tập sẽ giảm xuống còn 1⁄10. Các hyperparameters của phương pháp đề xuất được gán các giá trị là 𝜆𝑖 = 10, 𝜆𝑐 = 5 và
𝜆𝑎𝑑𝑣 = 0,1.
Tiến trình huấn luyện được thực hiện trên máy chủ có cấu hình CPU
Intel(R) Xeon(R) CPU E3-1245 v5, GPU TITAN X (Pascal), và được cài đặt
TensorFlow v1.8.
Trong phần thực nghiệm sử dụng 3 bộ dữ liệu CelebA-HQ [9], [10],
ImageNet [11] và Place2 [12] bao gồm mặt người, sự vật và cảnh vật. Đối với
tập dữ liệu CelebA-HQ lấy ngẫu nhiên 27.000 hình ảnh làm tập huấn luyện và
3.000 hình ảnh làm tập thử nghiệm. Bên cạnh đó sử dụng tất cả hình ảnh trong
bộ dữ liệu ImageNet và Place2 lần lượt làm tập huấn luyện và tập thử nghiệm
để đo hiệu suất huấn luyện trên các bộ dữ liệu khác nhau. Các thực nghiệm này
được thực hiện để xác nhận khả năng tổng quát hóa của phương pháp đề xuất.
Để kiểm chứng tác giả đã so sánh định tính, định lượng, tốc độ tính tốn
và số lượng tham số của PEPSI [7] và Diet-PEPSI với các phương pháp khác:
CE [4], GL [5], GCA [1], và GatedConv [6].
5.2. Đánh giá hiệu suất
5.2.1. So sánh định tính
Đối với bộ dữ liệu CelebA-HQ, thực hiện so sánh hiệu suất của PEPSI [7]
và Diet-PEPSI với các phương pháp thông thường: CE [4], GL [5], GatedConv
[6] trên cả mặt nạ vuông và mặt nạ dạng tự do. Các phương pháp thơng thường
được thực hiện theo quy trình huấn luyện trong mỗi bài báo. Kết quả của thực
nghiệm được thể hiện ở Hình 5-2 trên mặt nạ vng và Hình 5-3 trên mặt nạ
dạng tự do.
15
(g)
(a)
(b)
(c)
(d)
(e)
(f)
Hình 5-2. Kết quả so sánh trên mặt nạ vng 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.
(g)
(a)
(b)
(c)
(d)
(e)
(f)
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.
Trong Hình 5-2 và Hình 5-3, CE [4] và GL [5] vẫn cịn hiển thị bóng mờ
của vùng mặt nạ nhất là mặt nạ dạng tự do hoặc hình ảnh bị biến dạng trong
vùng mặt nạ, nên không thể áp dụng cho các ứng dụng thực tế. GatedConv [6]
có hiệu suất tốt hơn so với CE [4] và GL [5], nhưng nó vẫn thiếu sự liên quan
giữa vùng trống và vùng xung quanh chẳng hạn như sự đối xứng của mắt. Trong
khi đó, PEPSI [7] cho ra kết quả tốt hơn hẳn khi có sự liên quan giữa vùng trống
và vùng xung quanh. Bên cạnh đó thì kết quả của Diet-PEPSI có thể so sánh
tương đương với PEPSI mà số lượng tham số giảm được đáng kể. Từ những kết
16
quả này, cho thấy phương pháp đề xuất có hiệu quả vượt trội so với các phương
pháp thông thường, đồng thời giảm đáng kể chi phí phần cứng.
Ngồi ra tác giả cũng huấn luyện và thực nghiệm trên 2 bộ dữ liệu khó hơn là
ImageNet và Place2 để chứng minh rằng các phương pháp được đề xuất có thể
được áp dụng cho các ứng dụng thực tế. Thực hiện so sánh hiệu suất của các
phương pháp được đề xuất với phương pháp GatedConv [6] và phương pháp
PatchMatch [13]. Tác giả chọn kích thước ảnh là 256 × 256. Hình ảnh kết quả
được
mơ
tả
trong
(a)
(b)
(c)
(e)
(f)
(d)
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 . (d) Kết
quả của GatedConv . (e) Kết quả của PEPSI . (f) Kết quả của Diet-PEPSI.
.
17
(a)
(b)
(c)
(e)
(f)
(d)
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 DietPEPSI.
PatchMatch [13] cho kết quả thấp nhất, đặc biệt là ở rìa của hình ảnh vì nó
khơng thể xem xét các bối cảnh chung của hình ảnh. GatedConv [6] cho ra kết
quả tốt hơn khơng có sự khác biệt về màu sắc hoặc biến dạng cạnh so với
PatchMatch [13]. Tuy nhiên, nó tạo ra những hình ảnh có kết cấu sai như ảnh
kết quả ở hàng đầu tiên và hàng thứ ba trong Hình 5-4. Ngược lại với các phương
pháp thơng thường, PEPSI và Diet-PEPSI tạo ra những hình ảnh tự nhiên nhất
mà khơng có hiện tượng giả tạo hoặc biến dạng trên các nội dung khác nhau và
các cảnh phức tạp . Vì vậy, phương pháp được đề xuất có thể được áp dụng cho
ứng dụng thực tế để hoàn thiện hình ảnh.
5.2.2. So sánh định lượng
Trong nghiên cứu này, tác giả sử dụng các độ đo chất lượng ảnh PSNR
cho vùng trống và toàn bộ ảnh và SSIM [14] cho toàn bộ ảnh để đo chất lượng
của phương pháp đề xuất với các phương pháp inpainting khác. Các phương
pháp so sánh được phát triển trước đó gồm CE [4], GL [5], GCA [1] và
GatedConv [6]. Các giá trị cụ thể được thể hiện trong Bảng 2.
18
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 tốn, số lượng tham số của các phương pháp trên
bộ dữNhư
liệu số
CelebA-HQ.
liệu trong Bảng 2, CE [4] và GCA [1] cho thấy hiệu suất kém trên
cả mặt nạ vuông và mặt nạ dạng tự do. GL [5] đạt hiệu suất tương đương với
các phương pháp được đề xuất nhưng chỉ trong mặt nạ. Tuy nhiên, giống như
CE và GCA, GL cho thấy hiệu suất kém khi huấn luyện và thực nghiệm trên
mặt nạ dạng tự do. GatedConv [6] cho thấy hiệu suất tốt hơn ở cả vùng trống
hình vuông và vùng trống dạng tự do so với các phương pháp hiện có khác,
nhưng nó cần nhiều thời gian tính tốn và số lượng tham số nhiều hơn hẳn so
với các phương pháp đề xuất. PEPSI và Diet-PEPSI cho thấy hiệu quả tốt ở cả
mặt nạ vuông và mặt nạ tự do. Đặc biệt, so với GatedConv, PEPSI và DietPEPSI không chỉ thể hiện hiệu suất PSNR và SSIM tốt hơn mà cịn u cầu ít
thời gian tính tốn và chi phí phần cứng hơn. Ngồi ra, Diet-PEPSI đạt được
hiệu suất tương đương với PEPSI trong khi giảm gần 30% số lượng tham số.
Do đó, những quan sát này chỉ ra rằng các phương pháp được đề xuất có thể
hồn thiện ảnh với chất lượng cao và chi phí phần cứng ít hơn so với các kỹ
thuật hồn thiện ảnh thơng thường.
Bên cạnh đó tác giả cũng huấn luyện PEPSI mà không dùng coarse path.
Các kết quả cho thấy PEPSI khơng dùng coarse path có hiệu suất giảm hơn dù
cùng thời gian tính tốn và số lượng tham số. Coarse path giúp rút trích các đặc
trưng bị thiếu một cách thích hợp cho CAM. Nói cách khác, cấu trúc một giai
đoạn của PEPSI có thể khắc phục hạn chế của mạng coarse-to-fine hai giai đoạn
thông qua việc chia sẻ trọng số.
Để giảm hơn nữa chi phí phần cứng của Diet-PEPSI, tác giả đã huấn luyện
Diet-PEPSI bằng cách sử dụng kỹ thuật tích chập nhóm [15] cho cả hai lớp và
sử dụng kỹ thuật xáo trộn kênh giữa hai lớp tích chập của DPU. Như thơng số
trong Bảng 3, mặc dù Diet-PEPSI sử dụng số lượng tham số ít hơn đáng kể,
nhưng nó vẫn đạt được hiệu suất tương đương với PEPSI cũng như cho thấy
hiệu suất vượt trội so với các phương pháp thông thường khác. Những kết quả
19
này xác nhận rằng Diet-PEPSI có thể tạo ra hình ảnh chất lượng cao với chi phí
phần cứng thấp.
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.
Để chứng minh khả năng tổng qt hóa của PEPSI và Diet-PEPSI, tiến hành
một thực nghiệm khác bằng cách sử dụng các bộ dữ liệu khó hơn, ImageNet [11]
và Place2 [12] và so sánh với phương pháp GatedConv [6]. Trong Bảng 4,
PEPSI đạt được hiệu suất tốt hơn GatedConv trong tập dữ liệu Place2. Hơn nữa,
Diet-PEPSI thể hiện hiệu quả vượt trội so với GatedConv và PEPSI. Những kết
quả này chỉ ra rằng các phương pháp được đề xuất có thể tạo ra kết quả chất
lượng cao một cách nhất quán bằng cách sử dụng nhiều nội dung khác nhau và
hình ảnh phức tạp.
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.
6. Kết luận
Như đã thây ở kết quả thực nghiệm, PEPSI là phương pháp inpainting ảnh
được đề xuất không chỉ đạt được hiệu suất vượt trội so với phương pháp thơng
thường mà cịn giảm đáng kể thời gian hoạt động bằng cách thiết kế lại mạng
coarse-to-fine hai giai đoạn thành mạng một giai đoạn và áp dụng chia sẻ bộ
trọng số hiệu quả để huấn luyện. Bên cạnh đó Diet-PEPSI được đề xuất cải tiến
từ PEPSI sử dụng các lớp tích chập rate-adaptive để giảm đáng kể số lượng
tham số. Diet-PEPSI bảo toàn hiệu suất của PEPSI trong khi giảm đáng kể chi
phí phần cứng, tạo điều kiện thuận lợi cho việc triển khai phần cứng. Cả PEPSI
và Diet-PEPSI đều được cải tiến Local và Global Discriminator thành RED để
phân biệt ảnh tạo ra trong các vùng trống hình vng cũng như các vùng trống
20
có hình dạng bất kỳ. Do đó, các phương pháp đề xuất có thể được sử dụng rộng
rãi trong các ứng dụng khác nhau bao gồm tạo hình ảnh, chuyển kiểu và chỉnh
sửa hình ảnh.
7. Demo code
Clip thực hiện demo code: />
Source code: />
21
References
[1] J. Yu, Z. Lin, J. Yang, X. Shen, X. Lu, and T. S. Huang, "Generative image
inpainting with contextual attention," arXiv preprint, 2018.
[2] H. Guo, G. Wang, X. Chen, C. Zhang, F. Qiao, and H. Yang, “Region ensemble
network: Improving convolutional network for hand pose estimation,” in Image
Processing (ICIP), 2017 IEEE International Conference on. IEEE, pp. 45124516, 2017.
[3] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair,
A. Courville, and Y. Bengio, “Generative adversarial nets,” in Advances in
neural information processing systems, pp. 2672-2680, 2014.
[4] D. Pathak, P. Krahenbuhl, J. Donahue, T. Darrell, and A. A. Efros, “Context
encoders: Feature learning by inpainting,” in Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition, pp. 2536-2544, 2016.
[5] S. Iizuka, E. Simo-Serra, and H. Ishikawa, "Globally and locally consistent
image completion," ACM Transactions on Graphics (TOG), vol. 36, no. 4, p.
107, 2017.
[6] J. Yu, Z. Lin, J. Yang, X. Shen, X. Lu, and T. S. Huang, “Free-form image
inpainting with gated convolution,” arXiv preprint arXiv:1806.03589, 2018.
[7] M.-C. Sagong, Y.-G. Shin, S.-W. Kim, S. Park, and S.-J. Ko, “Pepsi: Fast image
inpainting with parallel decoding network,” in Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition.
[8] M. Heusel, H. Ramsauer, T. Unterthiner, B. Nessler, and S. Hochreiter, “Gans
trained by a two time-scale update rule converge to a local nash equilibrium,”
in Advances in Neural Information Processing Systems, pp. 6626-6637, 2017.
[9] T. Karras, T. Aila, S. Laine, and J. Lehtinen, “Progressive growing of gans for
improved quality, stability, and variation,” arXiv preprint arXiv:1710.10196,
2017.
[10] Z. Liu, P. Luo, X. Wang, and X. Tang, “Deep learning face attributes in the
wild,” in Proceedings of the IEEE International Conference on Computer
Vision, pp. 3730-3738, 2015.
[11] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with
deep convolutional neural networks,” in Advances in neural information
processing systems, pp. 1097-1105, 2012.
[12] B. Zhou, A. Lapedriza, A. Khosla, A. Oliva, and A. Torralba, “Places: A 10
million image database for scene recognition,” IEEE transactions on pattern
analysis and machine intelligence, tập 40, số 6, pp. 1452-1464, 2018.
22
[13] C. Barnes, E. Shechtman, A. Finkelstein, and D. B. Goldman, "Patchmatch: A
randomized correspondence algorithm for structural image editing," ACM
Transactions on Graphics (ToG), vol. 28, no. 3, p. 24, 2009.
[14] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, “Image quality
assessment: from error visibility to structural similarity,” IEEE transactions on
image processing, tập 13, số 4, pp. 600-612, 2004.
[15] X. Zhang, X. Zhou, M. Lin, and J. Sun, “Shufflenet: An extremely efficient
convolutional neural network for mobile devices,” in Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition, pp. 6848-6856, 2018.
23