Chương 1: Giới thiệu tổng quan đề tài. Chương 2: Trình bày cơ sở lý thuyết và tổng quan về bài toán image inpaint- ing. Chương 3: Trinh bày tổng quan về kỹ thuật và hướng áp dụng vào bai toán image inpainting. Chương 4: Trinh bay kết quả so sánh với phương pháp LAMA [1] va DSI [2] trên bộ dữ liệu CelebA-HQ [6], Places [7] và Paris-Street View.
Chương 5: Trình bày cách xây dựng ứng dụng và tổng quan về ứng dụng minh họa. Chương 6: Trình bày kết luận và hướng phát triển của đề tài. Chương 2 CƠ SỞ LÝ THUYÊT VÀ CÁC NGHIÊN CỨU LIÊN QUAN Để hiểu rõ bài toán image inpainting, ta cần làm rõ các khái niệm liên quan, đồng thời tìm hiểu một số phương pháp tiếp cận hiện nay. Vì vậy, trong chương này, tôi sẽ giới thiệu một số khái niệm cơ bản đồng thời khảo sát các hướng tiếp cận để giải quyết bài toán.1 Bài toán image inpainting Image inpainting là quá trình lấp day, tái tạo lại những vùng bi mất trong một tắm ảnh.
Mục tiêu của quá trình này là tạo ra những hình ảnh được lấp đầy hoàn toàn mà có thể đánh lừa thị giác con người. Image inpainting được ứng dụng nhiều trong những lĩnh vực khác, có thể kể đến như: khôi phục ảnh, chỉnh sửa ảnh, xóa những vật thể không mong muốn trong ảnh, khử nhiễu ảnh,. Thử tưởng tượng, một viện bảo tàng muốn khôi phục lại những bức trang đã bị xuống cấp nhưng không đủ kinh phí để thuê được những nghệ sĩ có kĩ thuật tốt hay khi bạn có bức ảnh của những người bạn yêu quý vì một lý do nào đó đã bị hư hại. Từ đó ta thấy được nhu cầu của bài toán image inpainting trong đời 2.
CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN sống hằng ngày là rất cần thiết. Hiện nay, có hai hướng tiếp cận phổ biến cho bài toán image inpainting: phương pháp không sử dụng mang sinh và phương pháp sử dụng mạng sinh. Chúng tôi sẽ thảo luận về hai hướng tiếp cận này ở mục tiếp theo.2 Các kiến thức cơ sở 2.1 Mạng nơ-ron tích chap (Convolutional Neural Network) M6 hinh mang no-ron tich chap (Convolutional Neural Network hay CNN) 1a một mô hình mang của Deep Learning cho kết quả tốt nhất trong việc giải quyết các bài toán của thị giác máy tính. Nhìn chung CNN là một mô hình mạng ANN truyền thang với kiến trúc chính gồm nhiều thành phan được ghép nối với nhau theo cấu trúc các lớp cơ bản sau: Convolution, Pooling (Subsampling), ReLU.
Bên cạnh đó còn có các lớp phụ như Batch Normalization, Drop out. Phần tiếp theo sẽ trình bày chỉ tiết về các thành phần của CNN.1 Lớp tích chập (Convolution) Filter 1 Input .¡œ“|uamn+ œ[|1mo>eø Ìn|oaMm* œ|@>+elo œ|¬1olkE >=|—œs© 3x3x3 Filter 2 6x6x3 3x31⁄3 4x4 Hình 2.1: Minh họa tích chập của một ảnh RGB và ma trận kernel (Nguồn: aiviet- 1 nam.ai/wp-content/uploads/2019/07/chap9_zz_3. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN Lớp Convolution là lớp quan trọng nhất trong mô hình mạng CNN. Lớp Convolution dựa trên việc tính các giá trị tích chập để trích xuất ra các feature từ dữ liệu.
Với một ảnh đầu vào kích thước mxm, ta sẽ chọn ra một ma trận kernel nxn (thường nhỏ hơn ma trận input). Ta cho ma trận kernel trượt trên ma trận input, mỗi lần trượt ta thực hiện việc tính tích chập ta thu được một kết quả. Kết quả này là giá trị của một pixel trong ma trận output. Khi trượt hết ma trận kernel trên ma trận input ta được ma trận output có kích thước nhỏ hơn hoặc bằng kích thước của ma tran input.
Khi áp dụng phép tính Conv cho xử lý hình ảnh, Người ta nhận thấy rằng Conv sẽ giúp biến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương tự như bộ phát hiện nhằm phát hiện ra các đặc trưng như cạnh, hướng,. Cu thể hon, Conv sẽ trích xuất đặc trưng của ảnh đầu vào qua các vùng ảnh nhỏ. Các vùng này được gọi là Local Receptive Field (LRF). Tích chập sẽ tính toán trên các LRF chồng lấp lên nhau.
Độ chồng lắp này phụ thuộc vào hệ số trượt S (stride) của từng kiến trúc mang cụ thể. Nếu sử dụng với hệ số trượt S = a, thì tương ứng LRF (bằng kích thước với kernel) sẽ dịch chuyển œ đơn vị pixel sau mỗi lần tích chập. Ảnh đầu vào sau khi thực hiện quá trình tích chập sẽ thu được feature map, số LRF ở ảnh đầu vào sẽ tương ứng với số nơ-ron ở feature map và kernel sẽ là trong số liên kết mỗi LRF với một no-ron ở feature map. Lớp conv có thể chứa một hoặc nhiều feature map.
Nếu lớp conv có K feature map, thì ta nói lớp conv này có độ sâu là k. Để hình dung rõ hơn về quá trình này, sau đây sẽ minh họa quá trình trích xuất đặc trưng từ ảnh đầu vào cụ thể như sau: thực hiện xử lý tính giá trị đầu ra của một ảnh có kích thước W\ x H x Dy (W, và Hạ lần lượt là chiều rộng và chiều cao của ảnh và D là chiều sâu hay thực chất là giá trị tại 3 kênh màu tương ứng của ảnh RGB). khi đó, một Conv như một cửa sổ trượt (sliding window, còn được gọi là kernel, filter hay feature detector) với kích thước F x F - giả sử trong trường ta sử dung K filter. Trong quá trình xử ly, mỗi filter sé được 2.
CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN tính toán với tất cả các LRF trong hình và S = œ. Trong một số trường hợp để cân bằng giữa số bước di chuyển và kích thước của ảnh, người ta đã chèn thêm P pixel với một giá tri màu được gán (thông thường là 0) xung quanh viền của ảnh. sau cùng ta thu được ma trận dau ra (feature map) với kích thước W2 x Hạ x D2 với giá trị cụ thể như sau: «1y = ORF HP) 2 e Dạ — K É Ũ Điểm ảnh nguồn < 6 pone ee EDS0DBDD Pea: oe BBDDDDDDSIHEDpELS S5 —] ~ ĩø ee Ma trận filter :5 Điểm ảnh đầu ra r] Hình 2.2: Mô phỏng quá trình tích chập trong CNN (nguồn: miro. Giá trị tại mỗi 6 trong ma tran filter có kích thước là (F x F x D,) + I (cộng một ở đây là tham số ngưỡng của filter) sẽ tương ứng là trọng số của filter.
Các giá trị này sẽ không đổi trong suốt quá trình dịch chuyển tính toán trên toàn bộ hình ảnh. Đây là một đặc tính quan trọng cua CNN, bởi nó làm giảm thêm trọng số cần học cho quá trình huấn luyện mạng. Qua đó, ta có thể ước tính tổng số tham số cần học trong quá trình sử dung Conv là (F x F x DỊ) x K+K (6 đây cộng thêm k tham số ngưỡng của k filter).com/max/3900/1*p-_47puSuVNmRJnOXYPQCg. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN Áp dụng vào ví dụ cụ thể ở hình 2.3, đầu vào là một ảnh màu với kích thước (32 x 32 x3) (W, = Hìị = 32 và Dị = 3 chỉ giá tri của các kênh màu RGB).
Với số lượng filter K = 6, trong đó mỗi filter có kích thước (5 x 5 x 3). E = 3 với bước di chuyển S = 1 và P = 0. Tương ứng với mỗi filter, ta thu được 6 feature map khác nhau ở đầu ra. Trong đó: °Wa=3 4 #+1=28 -WMq=*“®+1=28 ° Dị=6 Mỗi nơ-ron trong một feature map sẽ có số tham số là (F x F x Dị) = 5 x 5 x3 + 1.
nếu không sử dụng tính chat shared weights thì tổng số tham số trong mang cần phải học cho tat cả các feature map là (28 x 28 x 6) x (5x5 x 3+1) = 357504 (tham số). Mặc dù con số đó đã nhỏ hơn nhiều so với việc không sử dụng Conv nhưng con số trên van lơn hơn rất nhiều so với (F x F x D}) x K+ K = (5x5 x 3) x 6+6 = 456 (tham số) khi sử dung shared weights.3: Ví dụ kết quả tính toán tích chập trong hình ảnh (nguồn: leonardoaraujosan- tos!). Nói tóm lại, Việc sử dụng Conv có những ưu điểm sau: ‘https://leonardoaraujosantos.io/artificial-inteligence/content/convolutional_neural_networks. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN « Giảm số lượng tham số: trong mang ANN truyền, mỗi nơ-ron ở lớp trước sẽ liên kết tới tất cả các neural ở lớp kế tiếp (fully connected) khiến cho số lượng các tham số trong mạng rất lớn.
Đây là nguyên nhân chính gây việc thời gian huấn luyện mạng rất lâu. Với việc sử dung Conv, cho phép chia sẻ trọng số liên kết (shared weights), cũng như sử dụng LRF giúp cho số lượng các tham số trong mạng giảm đi đáng kể. * Các tham số trong quá trình sử dung Conv hay các giá tri trong các filter sẽ được học trong quá trình huấn luyện mạng. Sau quá trình tính toán, ta sẽ thu được các thông tin đặc trưng như góc, cạnh, đốm mau trong ảnh,.
Chính vì thế, Conv còn có vai trò xây dựng mô hình tự học cho các đặc trưng.2 Lớp kích hoạt (Activation) Hình 2.4: Mô phỏng phép tính ReLU (Nguồn: deep-learning-stm-6'). Là lớp tiếp theo sau lớp convolution, nhiệm vụ chính của lớp này là biến đổi các giá trị âm của feature map từ lớp trước thành các giá trị không. Việc này giúp 'https://www.net/Tricode/deep-learning-stm-6 11 2. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN cho quá trình học các trọng số bị mắc kẹt tại giá trị không hoặc vô cực.
Khi gặp phải van dé này, việc huấn luyện mạng sẽ bị chậm hơn thông thường. Bên cạnh đó, còn góp phần vào việc tránh tình trạng overfitting ở quá trình huấn luyện. Có các hàm số khác được sử dụng để đánh giá hiệu năng so với hàm ReLU như hàm Sigmoid, Tanh,. Tuy nhiên, các ham số tính toán chậm hơn so với ReLU và độ chính xác khi sử dụng các hàm số này không khác biệt lắm so với hàm ReLU.
Chính vì vậy, hàm ReLU được sử dụng chính cho việc tính toán tham sô thay vì chọn các hàm sô kia. Lớp Pooling Lớp Pooling được sử dụng sau lớp ReLU theo như mẫu thiết kết các lớp theo như trình bày của đại học Standford. Pooling giúp cho mạng giảm số lượng tham số, từ đó giúp đơn giản hóa quá trình tính toán của CNN và qua đó góp phần giải quyết van dé overfiting khi huấn luyện mạng. Có nhiều toán tử pooling như Sum-pooling, Max-pooling, L2-pooling nhưng Max-pooling được sử dụng phổ biến nhất trong kiến trúc mạng CNN vì nó cho kết quả hơn so với những toán tử còn lại.
Ma trận đầu vào Ma trận đầu ra Maxpooling với ma trận filter 2x2 và stride 2 CC II Max(3,4,1,2) = 4 Hình 2.