Nội suy tuyến tính sẽ tính toán giá trị của điểm ảnh mới dựa trên giá trị của các điểm lân cận trong ảnh độ phân giải thấp, hạn chế là tạo ra hình ảnh mờ và thiếu chi tiết khi tăng kí
Giới thiệu
Tổng quan
Tăng cường độ phân giải hình ảnh là một thách thức trong xử lý ảnh, nhằm tái tạo hình ảnh có độ phân giải cao từ hình ảnh có độ phân giải thấp Bài toán này có ứng dụng đa dạng trong nhiều lĩnh vực, bao gồm y học, quan sát vệ tinh, giám sát an ninh, và nâng cao chất lượng hình ảnh trong phim ảnh và trò chơi điện tử.
Bài toán tăng cường độ phân giải nhằm tái tạo chi tiết bị mất trong ảnh có độ phân giải thấp, yêu cầu các phương pháp phục hồi thông tin một cách chính xác Hiện nay, nhiều phương pháp truyền thống, đặc biệt là các kỹ thuật nội suy, đã được áp dụng để giải quyết vấn đề này Trong số đó, nội suy tuyến tính và nội suy bicubic là hai phương pháp phổ biến.
Nội suy tuyến tính tính toán giá trị của điểm ảnh mới dựa trên các điểm lân cận trong ảnh độ phân giải thấp Tuy nhiên, phương pháp này có nhược điểm là tạo ra hình ảnh mờ và thiếu chi tiết khi kích thước ảnh được tăng lên.
Nội suy bicubic sử dụng trọng số của hàm bậc 3 để tính giá trị điểm ảnh mới từ các điểm ảnh xung quanh, thường mang lại kết quả tốt hơn so với nội suy tuyến tính Tuy nhiên, hình ảnh vẫn có thể bị mờ và không rõ ràng ở những vùng phức tạp hoặc chi tiết Hạn chế lớn nhất của các phương pháp truyền thống là chỉ dựa vào thông tin hiện có của hình ảnh đầu vào, không thể tái tạo các chi tiết mà hình ảnh độ phân giải thấp không chứa Do đó, hình ảnh sau khi nội suy có thể thiếu các chi tiết quan trọng, dẫn đến chất lượng không đạt yêu cầu.
Mạng đối kháng sinh (GAN) đại diện cho một bước đột phá trong việc tái tạo chi tiết hình ảnh GAN bao gồm hai mạng nơ-ron: Generator và Discriminator, trong đó quá trình huấn luyện tạo ra sự cạnh tranh giữa hai mạng này Nhờ đó, Generator có khả năng học hỏi và tái tạo các chi tiết phức tạp và tự nhiên hơn.
Sự khác biệt nổi bật giữa GAN và các phương pháp khác là GAN không chỉ tập trung vào việc cải thiện độ phân giải kỹ thuật mà còn học cách tái tạo các kết cấu và chi tiết phức tạp như ảnh thật Nhờ vào sự cạnh tranh với Discriminator, Generator trong GAN có khả năng tạo ra những đặc trưng nhỏ và chi tiết mà các phương pháp trước đây không thể đạt được.
Đề tài "Ứng dụng học sâu trong tăng cường độ phân giải của hình ảnh - Sử dụng mạng tạo sinh đối kháng (GAN)" được chọn để nghiên cứu và phát triển các mô hình GAN nhằm giải quyết vấn đề tăng cường độ phân giải Mục tiêu là tạo ra hình ảnh đầu ra chất lượng cao, đáp ứng các tiêu chuẩn trong các ứng dụng thực tiễn.
Mục tiêu đề tài
Mục tiêu chính của nghiên cứu này là phát triển một phương pháp sử dụng Mạng Tạo Sinh Đối Kháng (GAN) nhằm nâng cao độ phân giải hình ảnh.
Xây dựng và huấn luyện mô hình GAN, từ đó tạo ra hình ảnh có độ phân giải cao từ hình ảnh có độ phân giải thấp
Mô hình GAN cho thấy hiệu quả vượt trội so với các phương pháp truyền thống như nội suy bicubic, được đánh giá thông qua các chỉ số đo lường chất lượng hình ảnh như PSNR và SSIM Sự so sánh này nhấn mạnh khả năng của GAN trong việc tạo ra hình ảnh chất lượng cao hơn, mang lại trải nghiệm tốt hơn cho người dùng.
Đảm bảo mô hình hoạt động ổn định, nhanh chóng và hiệu quả trên các tập dữ liệu lớn là rất quan trọng, đặc biệt trong các ứng dụng thực tế.
Các khái niệm cơ bản và lý thuyết về mặt toán học
Khái niệm về ảnh và tăng cường độ phân giải của hình ảnh (Image Super-Resolution)
2.1.1 Một số khái niệm cơ bản của ảnh Ảnh có thể được hiểu là một hàm hai chiều F(x, y), với x và y là tọa độ không gian xác định vị trí trong hình Tại mỗi cặp tọa độ (x, y), giá trị của F đại diện cho cường độ hoặc độ sáng của hình ảnh tại điểm đó Khi cả tọa độ x, y và giá trị cường độ này được rời rạc hóa và giới hạn trong các giá trị hữu hạn, ảnh trở thành một ảnh số (digital image) Lúc này, hình ảnh được biểu diễn dưới dạng một ma trận hai chiều gồm các điểm ảnh (pixel), mỗi pixel chứa thông tin về màu sắc hoặc độ sáng tại vị trí tương ứng trong lưới của ma trận Ảnh được biểu thị bằng kích thước (chiều cao và chiều rộng) dựa trên số lượng pixel Ví dụ: nếu kích thước của hình ảnh là 500 x 400 (chiều rộng x chiều cao), thì tổng số pixel trong hình ảnh là 200000 Ảnh màu và mô hình màu (color model): Màu là hệ thống trong đó với mỗi điểm ảnh sẽ ương ứng với một màu Các mô hình màu khác nhau sẽ được xác định dựa trên phần cứng hoặc dựa trên ứng dụng Một số mô hình màu dùng để xử lý ảnh có thể kể đến bao gồm: RGB, CMY/CMYK và YUV, các mô hình này được mô tả như sau :
Mô hình màu RGB là hệ thống dựa trên tọa độ Descartes, với không gian màu hình lập phương chứa ba giá trị cơ bản: đỏ, lục và lam Các giá trị màu này được thể hiện ở các đỉnh của khối lập phương.
Hình 2 1: Hệ tọa độ Descartes của không gian màu RGB
Mô hình màu CMY/CMYK bao gồm ba màu cơ bản: màu lục lam (cyan), đỏ lam (magenta) và vàng Hệ màu này thường được áp dụng trong công nghệ in ấn.
Mô hình màu YUV, ban đầu được áp dụng trong mô hình video tín hiệu tương tự, hiện nay đã trở thành tiêu chuẩn cho video kỹ thuật số CCIR 601.
Một số loại định dạng hình ảnh:
BMP (bitmap): một loại định dạng ảnh phổ biến Với định dạng này hình ảnh sẽ không được nén bằng bất kì thuật toán nào
JPEG/JPG là định dạng ảnh nén tổn hao, giúp giảm kích thước tệp mà vẫn duy trì chất lượng hình ảnh tốt Định dạng này hỗ trợ 24-bit màu và thường được sử dụng để lưu trữ ảnh kỹ thuật số Thực tế, JPG và JPEG là hai tên gọi cho cùng một định dạng, với sự khác biệt chỉ ở giới hạn ký tự trên các hệ điều hành cũ.
PNG (Portable Network Graphics) là định dạng ảnh nén không mất dữ liệu, bảo toàn chất lượng hình ảnh Định dạng này hỗ trợ tính năng trong suốt và độ sâu màu 24-bit, rất phù hợp cho đồ họa web và các bức ảnh cần độ chi tiết cao.
2.2.2 Tăng cường độ phân giải hình ảnh
Mục tiêu chính của việc tăng cường độ phân giải hình ảnh là tạo ra ảnh có độ phân giải cao từ ảnh gốc có độ phân giải thấp, giúp cung cấp mật độ điểm ảnh cao hơn, mang lại nhiều chi tiết và độ sắc nét tốt hơn Tuy nhiên, trong các ứng dụng như y tế, vệ tinh và giám sát, hình ảnh có độ phân giải cao không phải lúc nào cũng có sẵn do yêu cầu về tài nguyên lưu trữ và các hạn chế kỹ thuật như cảm biến và công nghệ quang học Việc tăng cường độ phân giải hình ảnh là giải pháp hiệu quả, giúp giảm chi phí cho các hệ thống mà vẫn đảm bảo chất lượng hình ảnh cần thiết.
Tăng cường độ phân giải là quá trình kết hợp nhiều hình ảnh có độ phân giải thấp để tạo ra hình ảnh hoặc chuỗi hình ảnh có độ phân giải cao Mục tiêu chính là phục hồi hình ảnh chất lượng cao từ các hình ảnh đầu vào, đảm bảo rằng khi được lấy mẫu lại, hình ảnh này sẽ tái tạo chính xác các hình ảnh có độ phân giải thấp mà chúng ta đã quan sát Độ chính xác của mô hình đóng vai trò quan trọng trong việc tăng cường độ phân giải Một số phương pháp phổ biến trong lĩnh vực này bao gồm
Nội suy là phương pháp cơ bản và đơn giản nhất để tăng cường độ phân giải hình ảnh Các kỹ thuật như nội suy tuyến tính, bicubic và spline được sử dụng để ước lượng giá trị pixel tại các điểm chưa có dữ liệu trong hình ảnh có độ phân giải thấp Mặc dù dễ thực hiện, các phương pháp này thường không đủ mạnh để phục hồi chi tiết tinh vi, dẫn đến hiện tượng mờ và nhòe.
Phương Pháp Học Máy (Machine Learning)
Sự phát triển của kỹ thuật học máy, đặc biệt là học sâu, đã cách mạng hóa lĩnh vực tăng cường độ phân giải hình ảnh Các mạng nơ-ron tích chập (CNN) và kiến trúc phức tạp như mạng tạo sinh đối kháng (GAN) được sử dụng để học từ dữ liệu, cải thiện chất lượng hình ảnh đầu ra Những mô hình này có khả năng nhận diện các đặc trưng và mẫu phức tạp trong hình ảnh, giúp phục hồi chi tiết một cách chính xác hơn.
Phương Pháp Đa Hình Ảnh (Multi-Image Super-Resolution)
Kỹ thuật này kết hợp nhiều hình ảnh có độ phân giải thấp của cùng một cảnh để tạo ra hình ảnh có độ phân giải cao hơn Để đạt được điều này, các hình ảnh cần được căn chỉnh chính xác nhằm đảm bảo kết hợp hiệu quả các chi tiết từ các nguồn khác nhau Việc sử dụng nhiều hình ảnh không chỉ giúp tận dụng thêm thông tin mà còn giảm thiểu sai lệch trong dữ liệu đầu vào.
Một số khái niệm toán sử dụng
2.2.1 Vector, ma trận và tensor
Vector là một dãy số hoặc giá trị được sắp xếp theo một chiều, được xác định bởi chỉ số i Nó có thể được coi là một mảng một chiều với kích thước n, trong đó n là số lượng phần tử của vector.
Ma trận là một cấu trúc dữ liệu hai chiều, bao gồm các số được tổ chức theo m hàng và n cột, với kích thước mxn Mỗi phần tử trong ma trận được xác định bởi hai chỉ số i và j.
Tensor là một khái niệm mở rộng của vector và ma trận, có khả năng tồn tại ở nhiều chiều khác nhau, bao gồm một chiều, hai chiều, ba chiều và hơn thế nữa.
Hình 2 2: So sánh tensor ở các chiều khác nhau
2.2.2 Một số lý thuyết xác suất
Kỳ vọng của một hàm f(x) dựa trên phân phối xác suất P(x) là giá trị trung bình của các giá trị f(x) với xác suất P(x) tương ứng Đối với các biến rời rạc, kỳ vọng được tính bằng tổng của các tích giữa giá trị f(x) và xác suất P(x).
Tổng quát hơn với các biến liên tục, kỳ vọng sẽ được tính bằng tích phân:
Phương sai được tính bằng cách xác định sự chênh lệch giữa mỗi giá trị trong tập dữ liệu và giá trị trung bình Các chênh lệch này sau đó được bình phương để đảm bảo chúng có giá trị dương và không triệt tiêu lẫn nhau Cuối cùng, tổng các giá trị bình phương được chia cho số lượng quan sát trong tập dữ liệu, đặc biệt là đối với biến rời rạc.
Trong đó: xi là giá trị của quan sát thứ i à là giỏ trị trung bỡnh của tập dữ liệu
N là số mẫu quan sát trong tập dữ liệu
Từ hiệp phương sai có thể suy ra được độ lệch chuẩn:
Hiệp phương sai (Co-variance)
Hiệp phương sai đo lường sự biến thiên cùng chiều của hai hoặc nhiều biến Nếu hai biến quan sát biến thiên cùng chiều, hiệp phương sai sẽ có giá trị dương; ngược lại, nếu chúng biến thiên ngược chiều, giá trị hiệp phương sai sẽ âm.
x y i , i là các biến giá trị của tập hợp các mẫu X và Y
x y , là các giá trị kỳ vọng của các mẫu
2.2.3 Tích chập (Convolution), phần đệm (Padding) và bước tiến (Stride)
Tích chập (Convolution) là kỹ thuật quan trọng trong xử lý ảnh kỹ thuật số Trong lĩnh vực nhận dạng ảnh với deep learning, tầng tích chập giúp biến đổi ma trận đầu vào, làm nổi bật và tách biệt các đặc tính của hình ảnh, đồng thời vẫn giữ nguyên tính tương quan không gian giữa đầu ra và đầu vào.
Công thức tích chập giữa ma trận ảnh X và bộ lọc (kernel) W (kích thước m x n):
Điểm neo của kernel quyết định vùng ma trận tương ứng trên ảnh để thực hiện phép tích chập, thường được chọn là tâm của kernel Mỗi phần tử trên kernel được coi là hệ số tổ hợp với các giá trị của điểm ảnh trong vùng tương ứng Phép tích chập 2 chiều (2D-Convolution) được thực hiện bằng cách dịch chuyển ma trận kernel qua tất cả các điểm ảnh, bắt đầu từ góc trên bên trái và đặt điểm neo tại điểm ảnh đang xét Mỗi lần dịch chuyển, kết quả mới cho điểm ảnh được tính toán theo công thức tích chập.
Hình 2 3: Mô tả cho phép tích chập a) Ma trận ảnh gốc, b) Ma trận kernel, c) Ma trận kết quả
Phép tính convolution trên ảnh có mục đích làm mờ, làm nét và xác định các đường Mỗi loại kernel khác nhau sẽ mang lại kết quả convolution với ý nghĩa và ứng dụng riêng, như được thể hiện trong bảng 2.1.
Bảng 2 1: Một số loại kernel phổ biến
Mục đích hoạt động Kernel
0 0 0 Phát hiện cạnh trong ảnh
1 1 1 Ngoài ra, có hai khái niệm quan trọng cần quan tâm đối với phép convolution đó là phần đệm (padding) và bước tiến (stride)
Padding là quá trình thêm giá trị vào các cạnh của đầu vào trước khi thực hiện phép tích chập, giúp kiểm soát kích thước đầu ra Có hai kiểu padding chính được sử dụng trong các mô hình học sâu.
Valid Padding (Không Padding) là phương pháp không sử dụng padding, tức là chỉ thực hiện tích chập trên kích thước gốc của đầu vào Điều này dẫn đến việc giảm kích thước của đầu ra; ví dụ, với đầu vào kích thước 5x5 và kernel 3x3, nếu không có padding, kích thước đầu ra sẽ chỉ còn 3x3.
Same Padding là kỹ thuật thêm giá trị vào xung quanh biên của đầu vào để giữ cho kích thước không gian của đầu ra tương đương với đầu vào Cụ thể, bằng cách thêm đủ hàng và cột vào đầu vào, ví dụ như với đầu vào 5x5 và kernel 3x3, kích thước đầu ra sẽ vẫn là 5x5 khi áp dụng same padding.
Stride là bước di chuyển của kernel qua input trong phép tích chập, ảnh hưởng trực tiếp đến kích thước đầu ra Khi stride = 1, kernel di chuyển từng bước một, trong khi stride = 2 cho phép kernel di chuyển mỗi lần 2 đơn vị Do đó, việc tăng stride sẽ dẫn đến việc giảm kích thước đầu ra.
Hình 2 4: Ví dụ cho ma trận gốc 5x5 được xử lí với padding=1 và stride=2
Thông qua giá trị của padding và stride, ta có thể xác định được kích thước đầu ra của ảnh bởi công thức sau:
O: Kết quả kích thước đầu ra của ảnh
N: kích thước của ma trận vuông ảnh gốc NxN
F: kích thước của ma trận kernel FxF
P: Giá trị số hàng/cột padding thêm vào được áp dụng dụng
S: Giá trị stride được áp dụng
2.2.4 Các chỉ số PSNR và SSIM
PSNR (Tỉ số đỉnh tín hiệu trên nhiễu) và SSIM (Chỉ số tương đồng cấu trúc) là hai chỉ số quan trọng trong việc đánh giá chất lượng hình ảnh, đặc biệt trong các ứng dụng xử lý ảnh như nâng cao độ phân giải và nén hình ảnh Bài viết này sẽ cung cấp cái nhìn chi tiết về từng chỉ số.
PSNR (Tỷ số đỉnh tín hiệu trên nhiễu) là một chỉ số đo lường sự khác biệt giữa hình ảnh gốc và hình ảnh đã bị thay đổi hoặc tái tạo, với đơn vị tính là dB (decibel) Chỉ số này thường được sử dụng để đánh giá chất lượng của các kỹ thuật nén và phục hồi hình ảnh.
MAX: Giá trị tối đa của một pixel (đối với ảnh 8-bit, MAX = 255)
MSE (Mean Squared Error): Trung bình bình phương sai số giữa các pixel của hình ảnh gốc và hình ảnh tái tạo
[0.11] o m, n là kích thước của ảnh, o I i j( , ) và K i j( , ) là giá trị pixel tại tọa độ (i, j) của hình ảnh gốc và hình ảnh tái tạo, tương ứng
Cơ bản về học máy (Machine Learning) và học sâu (Deep Learning)
Giới thiệu về Machine Learing
Machine learning (ML) là lĩnh vực khoa học máy tính phát triển các thuật toán và mô hình thống kê cho phép hệ thống máy tính thực hiện các tác vụ dựa trên khuôn mẫu và suy luận mà không cần hướng dẫn cụ thể Các thuật toán máy học giúp xử lý khối lượng lớn dữ liệu trong quá khứ để xác định các khuôn mẫu, từ đó dự đoán kết quả chính xác hơn từ cùng một tập dữ liệu đầu vào Hiện nay, ML được chia thành hai loại cơ bản.
Học có giám sát (Supervised learning) là phương pháp mà trong đó mô hình được đào tạo bằng dữ liệu đã được gán nhãn, với mỗi mẫu dữ liệu đầu vào đi kèm một nhãn tương ứng Mục tiêu chính của phương pháp này là học một hàm ánh xạ từ đầu vào đến đầu ra dựa trên dữ liệu huấn luyện, nhằm dự đoán nhãn hoặc giá trị cho dữ liệu chưa thấy.
Học không giám sát là một phương pháp trong đó mô hình được huấn luyện bằng dữ liệu không có nhãn, nhằm mục đích khám phá cấu trúc, mẫu, và mối quan hệ ẩn trong dữ liệu.
Học tăng cường (Reinforcement learning) là mô hình học tập thông qua việc tương tác với môi trường, nơi mà hành động của nó nhận được phần thưởng hoặc hình phạt Mục tiêu của học tăng cường là tìm ra hành động tối ưu nhằm tối đa hóa phần thưởng lâu dài, bằng cách học từ phản hồi của môi trường cho một tác vụ cụ thể.
Học bán giám sát (Semi-Supervised Learning) là phương pháp kết hợp giữa học có giám sát và học không giám sát, trong đó mô hình được đào tạo với một số lượng nhỏ dữ liệu có nhãn và một lượng lớn dữ liệu không có nhãn Mục tiêu chính của phương pháp này là cải thiện khả năng tổng quát của mô hình khi chỉ có ít dữ liệu có nhãn, đồng thời tận dụng dữ liệu không có nhãn để cung cấp thông tin bổ sung, từ đó nâng cao hiệu suất của mô hình.
Các khái niệm trong Machine learning
Mục đích của huấn luyện học máy là tìm ra các tham số tối ưu để hàm mất mát đạt giá trị nhỏ nhất Thuật toán Gradient Descent (GD) được sử dụng để cập nhật trọng số của mô hình, giúp giảm thiểu hàm mất mát khi không thể áp dụng đại số tuyến tính Ý tưởng chính của GD là điều chỉnh các tham số qua từng bước lặp lại với dữ liệu huấn luyện nhằm giảm thiểu hàm mất mát Quá trình này bắt đầu bằng một giá trị khởi tạo cho tham số và tiếp tục lặp lại công thức cho đến khi giá trị thay đổi không đáng kể.
next : giá trị biến nội tại mới
: giá trị biến nội tại được lưu hiện tại
: tốc độ học (learning rate)
J(): là độ dốc của hàm mất mát J theo biến θ
3.2.2 Tốc độ học (learning rate)
Learning rate là một tham số quan trọng trong Gradient Descent, xác định kích thước bước nhảy trong mỗi lần lặp Nếu learning rate quá nhỏ, thuật toán sẽ cần nhiều bước để hội tụ, dẫn đến thời gian xử lý lâu Ngược lại, nếu learning rate quá lớn, thuật toán có thể bỏ qua cực tiểu và không hội tụ được.
Hình 3 1: So sánh giữa các learning rate
Cách hiệu quả nhất để xác định learning rate phù hợp là theo dõi giá trị hàm J(θ) sau mỗi lần lặp Bạn nên vẽ đồ thị với trục x là số lần lặp và trục y là giá trị loss function tương ứng Một learning rate lý tưởng sẽ tạo ra đồ thị giống như đường màu xanh lục trong hình 3.2.
Hình 3 2: Xác định learning rate qua đồ thị
3.2.3 Hàm kích hoạt (activation function)
Hàm kích hoạt (activation function) mô phỏng tỷ lệ truyền xung qua axon của neuron thần kinh và đóng vai trò quan trọng trong các mô hình CNN như một thành phần phi tuyến tại output của nơ-ron Trong báo cáo này, chúng tôi đề cập đến một số hàm kích hoạt thông dụng, trong đó có hàm Sigmoid, có giá trị trong khoảng từ 0 đến 1 và thường được sử dụng trong các mô hình cần dự đoán xác suất kết quả Công thức thực hiện hàm sigmoid sẽ được trình bày cụ thể trong phần tiếp theo.
Hình 3 3: Dạng đồ thị của hàm sigmoid
Hàm Tanh cũng giống nhưng hàm sigmoid nhưng tốt hơn, phạm vi của hàm tanh nằm trong khoảng [-1,1] (hình 3.4)
Hình 3 4: So sánh giữa hàm sigmoid và hàm tanh
Hàm ReLU (Rectified Linear Unit) là một trong những hàm kích hoạt phổ biến nhất hiện nay, thường được áp dụng trong hầu hết các mô hình máy học (ML) và học sâu (DL).
Hình 3 5: Đồ thị của hàm ReLU
Hàm ReLU có thể gây ra hiện tượng "dead neurons" khi các giá trị đầu vào âm, dẫn đến gradient bằng 0 và không cập nhật được trọng số Hiện tượng này khiến một số neuron không bao giờ được kích hoạt lại, gây mất thông tin và giảm khả năng học của mạng Để khắc phục, có thể sử dụng các biến thể khác của hàm ReLU, trong đó báo cáo này sẽ đề cập đến hai biến thể là PReLU và LeakyReLU.
Hàm PReLU là một phiên bản mở rộng của hàm ReLU, cho phép học được hệ số dốc (a) cho các đầu vào âm Điều này giúp mạng tránh tình trạng "chết" của các neuron trong quá trình huấn luyện, khi mà các giá trị âm bị loại bỏ hoàn toàn trong ReLU Công thức thực hiện PReLU được định nghĩa như sau:
Hàm LeakyReLU là một biến thể của hàm ReLU, cho phép giữ lại một phần giá trị âm thay vì loại bỏ hoàn toàn Thông thường, dốc giữ lại này khoảng 0.01 hoặc 0.02 Công thức của LeakyReLU được định nghĩa như sau:
Hình 3 6: So sánh giữa ReLU với hai biến thể PReLU và LeakyReLU
(Đồ thị của hàm ReLU (trái), hàm LeakyReLU (giữa) và hàm PReLU (phải))
Deep Learning (DL) và các khái niệm trong Deep Learning
3.3.1 Tổng quát về Deep Learning
Deep Learning (DL) là một lĩnh vực con của Machine Learning (ML), cho phép máy tính tự học và cải thiện qua các thuật toán DL được xây dựng dựa trên các khái niệm phức tạp hơn và chủ yếu sử dụng mạng thần kinh nhân tạo để mô phỏng khả năng tư duy của bộ não con người Mạng nơron nhân tạo là yếu tố chính thúc đẩy sự phát triển của Deep Learning.
DL Các hệ thống Deep Learning yêu cầu phần cứng rất mạnh để có thể xử lý lượng lớn dữ liệu và thực hiện các phép tính phức tạp
Mạng lưới thần kinh sâu (DNN) là hệ thống bao gồm nhiều lớp tế bào thần kinh, cho phép thực hiện các tính toán phức tạp Deep Learning đang phát triển nhanh chóng và được xem là một trong những bước đột phá quan trọng nhất trong lĩnh vực Machine Learning.
Mạng thần kinh nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người Cách thức hoạt động như sau:
Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, càng nhiều lớp thì mạng sẽ càng
“sâu” Trong mỗi lớp là các node (nút mạng) và được liên kết với các lớp khác bên cạnh
Mỗi kết nối giữa các nút trong mạng nơ-ron đều được gán một trọng số, với trọng số cao hơn thể hiện mức độ ảnh hưởng lớn hơn của kết nối đó đến toàn bộ mạng.
Mỗi nơ-ron sẽ có một chức năng kích hoạt, về cơ bản chịu trách nhiệm "chuẩn hóa" đầu ra từ nơ-ron này
Dữ liệu người dùng nhập vào mạng thần kinh sẽ đi qua tất cả các lớp và cuối cùng trả về kết quả tại lớp đầu ra (output layer).
Trong quá trình đào tạo mô hình mạng nơ-ron, trọng số của mô hình sẽ được điều chỉnh để tối ưu hóa độ chính xác trong các phán đoán Mục tiêu chính là tìm kiếm tập hợp giá trị trọng số phù hợp nhất nhằm nâng cao hiệu suất của mô hình.
3.3.2 Mô hình mạng nơron tích chập (Convolutional Neural Network)
Mạng nơron tích chập (CNN) là một loại mạng nơron nhân tạo chuyên biệt cho việc xử lý dữ liệu hình ảnh Lấy cảm hứng từ cấu trúc vỏ não thị giác của con người, CNN có kiến trúc phân cấp giúp trích xuất đặc điểm từ hình ảnh ở nhiều tỷ lệ khác nhau Cấu trúc của mạng CNN thường được chia thành nhiều lớp khác nhau, như minh họa trong hình 3.7.
Hình 3 7: Cấu trúc của mô hình CNN
Lớp tích chập (Convolutional Layer) sử dụng các kernel kích thước FxF cùng với padding (P) và stride (S) để thực hiện phép tích chập trên ảnh đầu vào, từ đó tạo ra các bản đồ đặc trưng (feature map) chứa các đặc trưng cục bộ Sau khi thực hiện phép tích chập, một hàm kích hoạt được áp dụng nhằm tạo tính phi tuyến cho mạng trước khi chuyển sang lớp tích chập tiếp theo.
Hình 3 8: Mô tả tích chập tại lớp convolutional layer
Lớp pooling thường được sử dụng giữa các lớp convolution để giảm kích thước dữ liệu mà vẫn giữ lại các đặc trưng quan trọng, từ đó giảm thiểu khối lượng tính toán trong mô hình Ngoài ra, việc áp dụng phép pooling giúp giảm kích thước ảnh, cho phép lớp convolution học được các vùng có kích thước lớn hơn.
Trong quá trình xử lý dữ liệu, cửa sổ pooling kích thước K*K được áp dụng cho một lớp pooling có kích thước H*W*D, tách đầu vào thành D ma trận kích thước H*W Đối với mỗi ma trận, chúng ta thực hiện tìm giá trị lớn nhất hoặc trung bình trên vùng K*K, và lặp lại quy trình này cho tất cả các ma trận, từ đó thu được kết quả đầu ra của lớp pooling.
Hình 3 9: Mô tả các filter của pooling layer
Sau khi trải qua nhiều lớp convolutional và pooling, mô hình đã học được các đặc điểm chính của ảnh Tensor đầu ra từ lớp cuối cùng, có kích thước H*W*D, sẽ được chuyển đổi thành một vector kích thước (H*W*D, 1) Tiếp theo, các lớp fully connected sẽ được sử dụng để kết hợp các đặc điểm này nhằm tạo ra đầu ra cho mô hình.
Hình 3 10: Chuyển đổi ở fully connected layer
Output Layer: Lớp cuối cùng chứa các neuron đại diện cho các lớp phân loại, thường sử dụng hàm softmax để tính xác suất phân loại
Mạng CNN được thiết kế với nhiều lớp convolutional và pooling, tùy thuộc vào độ phức tạp của mô hình và đặc tính của dữ liệu đầu vào Cấu trúc mạng CNN cần phải phù hợp với từng bài toán cụ thể mà mô hình giải quyết cũng như các đặc điểm của dữ liệu.
VGG19 là một mạng nơ-ron tích chập (CNN) sâu 19 lớp, được phát triển bởi Karen Simonyan và Andrew Zisserman tại Đại học Oxford vào năm 2014 Mạng này đã được đào tạo với hơn 1 triệu hình ảnh từ bộ dữ liệu ImageNet, cho phép nó đạt được hiệu suất cao trong các tác vụ nhận diện hình ảnh VGG19 nổi bật với cấu trúc đơn giản nhưng hiệu quả, sử dụng các khối tích chập và lớp liên kết dày đặc, giúp cải thiện độ chính xác trong việc phân loại hình ảnh.
VGG-19 sử dụng 1 triệu hình ảnh từ cơ sở dữ liệu ImageNet, bao gồm các ảnh màu có kích thước 224×224 pixel, và có khả năng phân loại lên tới 1000 đối tượng Báo cáo này sẽ so sánh các bản đồ đặc trưng (feature map) của mô hình VGG-19 với feature map trong quá trình huấn luyện.
Hình 3 11: Mô hình mạng VGG19
Mạng ResNet (R) là một mạng CNN được thiết kế cho việc xử lý hàng trăm lớp Khi xây dựng mạng CNN với nhiều lớp chập, hiện tượng Vanishing Gradient có thể xảy ra, gây cản trở quá trình học tập ResNet giải quyết vấn đề này bằng cách sử dụng kết nối "tắt" đồng nhất để vượt qua một hoặc nhiều lớp, với mỗi khối như vậy được gọi là Residual Block.
Hình 3 12: Lưu đồ cho một Residual block
ResNet tương tự như các mạng khác với các thành phần convolution, pooling, activation và fully-connected layer Hình ảnh minh họa cho residual block trong mạng, hoạt động bằng cách tổng hợp giá trị đầu vào vào đầu ra của layer, giúp ngăn ngừa đạo hàm bằng 0 nhờ việc cộng thêm ngõ vào Bài báo này sẽ sử dụng cấu trúc mạng ResNet làm nền tảng để phát triển mô hình huấn luyện.
Residual blocks ở lớp thấp (1,2,3…) sẽ thể hiện rõ các chi tiết cạnh, không khái quát tốt và dễ có nhiễu ở đầu ra
Residual blocks ở lớp giữa sẽ thể hiện cơ bản giữa các chi tiết và khái quát về hình dạng, mẫu,…
Residual blocks ở lớp cuối sẽ chỉ khái quát và dễ bỏ qua chi tiết, gây mờ hoặc thiếu chi tiết
Mô hình mạng tạo sinh đối kháng (GAN)
Cấu trúc và cơ chế hoạt động của GAN
Mạng đối kháng sinh điều kiện (GAN) là một mô hình học máy bao gồm hai mạng neural: mạng sinh (Generator) và mạng phân biệt (Discriminator) Hai mạng này "đối đầu" với nhau thông qua các phương pháp học sâu, giúp cải thiện độ chính xác trong dự đoán và giám sát của cả hai mô hình Nguyên lý hoạt động của GAN được thể hiện rõ ràng trong hình 3.
Hình 4 1: Tổng quát về nguyên lý hoạt động của GAN
Generator (G) là một mô hình CNN có khả năng tạo ra dữ liệu giả dựa trên các đặc trưng đã học từ dữ liệu huấn luyện Đầu vào của Generator thường là một vector nhiễu ngẫu nhiên hoặc hình ảnh đầu vào, trong khi đầu ra là dữ liệu giả với mục tiêu giống dữ liệu thật nhất có thể.
Khi huấn luyện GAN với ảnh thật, mạng sinh (G) sẽ nỗ lực tạo ra dữ liệu giả giống với ảnh thật nhất có thể, nhằm khiến mạng phân biệt (D) không thể phân biệt chúng Quá trình này diễn ra thông qua việc tối ưu hóa hàm loss, trong đó G không trực tiếp tiếp cận dữ liệu thật mà chỉ nhận phản hồi từ D để cải thiện chất lượng hình ảnh sinh ra.
Discriminator (D) là một mô hình CNN có nhiệm vụ phân biệt giữa dữ liệu thật và giả Mô hình này được huấn luyện để xác định xem một mẫu dữ liệu là thật (lấy từ tập dữ liệu gốc) hay giả (do Generator tạo ra).
Kiến trúc mạng đối kháng GAN
Theo Goodfellow và cộng sự [4] đã định nghĩa một mạng discriminator
D D dùng để tối ưu hóa xen kẽ với mạng
G G để giải quyết vấn đề về tối đa và tối thiểu đối nghịch nhau, qua công thức sau:
~ ~ min max ( , ) [log( ( )) [log(1 log( ( )))]
HR Ptrain HR LR PG LR
Ý tưởng của công thức này là huấn luyện một mô hình G nhằm đánh lừa mô hình phân biệt D, đã được đào tạo để phân biệt giữa ảnh thật và ảnh giả Phương pháp này giúp mô hình G học cách tạo ra các hình ảnh tương tự như ảnh thực, thay vì chỉ tập trung vào việc tạo ra ảnh có độ phân giải cao thông qua việc đo lỗi trong các pixel như MSE.
Kiến trúc mạng nhằm phân biệt hình ảnh HR thật với ảnh giả SR do mô hình G tạo ra được minh họa trong hình 4.2, theo nghiên cứu của Radford và cộng sự [7].
Hình 4 2: Kiến trúc của mạng GAN với kích thước kernel (k), số lượng feature map (n) và stride (s) cho mỗi lớp tích chập
Mô hình G được minh họa trong hình 4.1a, với đầu vào là ảnh I LR (độ phân giải thấp) được tạo ra từ ảnh I HR (độ phân giải cao) Ảnh I LR có kích thước W x H x C Nhiệm vụ chính của generator là tạo ra ảnh I SR (độ phân giải siêu) từ ảnh đầu vào I LR.
Trong bài báo này, kích thước của I SR và I HR được xác định là 𝑟𝑊 × 𝑟𝐻 × 𝐶, trong đó 𝑟 là hệ số downsampling trong quá trình xử lý ảnh Kiến trúc của mạng Generator bao gồm B residual block với cấu trúc đồng nhất, mỗi block gồm 2 kernel 3×3 và 64 bản đồ đặc trưng, theo sau là hàm batch normalization và hàm kích hoạt PReLU Để tăng kích thước ảnh, tác giả áp dụng 2 layer PixelShuffle, mỗi layer sẽ làm tăng kích thước ảnh gấp đôi, dẫn đến output của G lớn gấp 4 lần so với kích thước ảnh đầu vào Theo nghiên cứu của C Ledig và cộng sự, số lượng residual blocks trong mạng G ảnh hưởng đến kết quả PSNR và thời gian huấn luyện, với kết luận rằng 16 residual blocks mang lại kết quả train ổn định Do đó, bài báo này sẽ thiết lập số lượng B residual block là 16 khi khởi tạo cho mạng G.
Hình 4 3: Đồ thị đánh giá PSNR và thời gian train cho LR đối với mạng ResNet [3]
Mô hình D được thể hiện trong hình 4.2b, nhằm phân biệt ảnh HR với các ảnh SR được tạo ra Mạng sử dụng hàm kích hoạt LeakyReLU (α = 0.2) và loại bỏ max-pooling Được huấn luyện để tối đa hóa theo phương trình [4.1], mạng D gồm tám lớp tích chập với số lượng kernel 3 × 3 tăng dần từ 64 lên 512, tương tự như mạng VGG19 Các lớp tích chập có stride=2 giúp giảm độ phân giải hình ảnh khi số lượng đặc trưng được nhân đôi Cuối cùng, 512 feature map được theo sau bởi hai lớp dày và một hàm kích hoạt sigmoid để xác định xác suất phân loại mẫu.
Hàm mất mát nhận thức (Perceptual loss function)
Thông thường I SR sẽ được mô hình hóa dựa trên MSE, tuy nhiên theo C Ledig và cộng sự
Để đánh giá các đặc điểm nhận thức của con người, một hàm mất mát mới đã được thiết kế, thay thế cho việc so sánh theo pixel như MSE Hàm mất mát này bao gồm tổng của hàm mất mát nội dung và hàm mất mát đối nghịch.
Với hàm loss MSE theo công thức thông thường (phương trình [4.3]),:
Hàm MSE có hạn chế trong việc phục hồi các chi tiết tần số cao, như các cạnh của đối tượng trong ảnh Thay vì tính toán theo từng pixel, hàm content loss được xác định dựa trên feature map giữa hai ảnh, được lấy từ các activation layer của mạng VGG19 Cụ thể, feature map được ký hiệu là i j, được trích xuất từ layer convolution thứ j trước hàm max-pooling thứ i trong VGG19 Hàm loss giữa ảnh I SR và ảnh I HR được định nghĩa dựa trên các feature map này.
Adversarial loss Để khuyến khích mạng tạo ra ảnh kết quả giống với ảnh thật và đánh lừa được Discriminator
Generative loss được xây dựng dựa trên hàm xác suất của Discriminator ( ( ))
D G I LR trong tất cả các mẫu huấn luyện
Trong đó D G D ( G (I LR )) là xác suất D cho rằng ảnh giả G tạo ra là thật là thật, G G (I LR )) là ảnh
Quá trình thực hiện huấn luyện mô hình GAN
Tiền xử lí dữ liệu
Mô hình thực hiện dựa trên bộ dữ liệu Mirflickr, bao gồm khoảng 10.000 ảnh độ phân giải cao, trong đó 5.000 ảnh được chọn để tạo thành bộ dữ liệu riêng cho nghiên cứu này Việc huấn luyện mô hình sẽ được thực hiện trên GPU NVIDIA L4 Tensor Core qua Google Colab, sử dụng ảnh ở kênh màu RGB Do hạn chế về tài nguyên GPU, các ảnh trong bộ dữ liệu sẽ được sử dụng với kích thước 128x128 pixels cho ảnh độ phân giải cao (HR) và 32x32 pixels cho ảnh độ phân giải thấp (LR).
Bộ ảnh HR sẽ được tạo ra bằng cách thay đổi kích thước ảnh gốc xuống 128x128 pixels, sau đó sử dụng nội suy tuyến tính qua thư viện OpenCV để chuyển đổi thành ảnh kích thước 32x32 pixels cho bộ ảnh LR.
Dữ liệu được chia thành hai phần: 67% cho tập huấn luyện và 33% cho tập kiểm tra, giúp đánh giá mô hình một cách chính xác Tất cả hình ảnh được chuẩn hóa bằng cách chia giá trị pixel cho 255, đưa giá trị pixel vào khoảng [0, 1] Trước khi huấn luyện, các cặp hình ảnh (độ phân giải thấp và cao) được kiểm tra để đảm bảo tính chính xác và đồng nhất, loại bỏ những hình ảnh không đạt yêu cầu.
Các thông số để huấn luyện
Mô hình mạng GAN trong báo cáo này được thực hiện với các thông số như sau:
- Learning rate: mặc định theo Adam 10 3
- Số layer dùng trong VGG19 cho mạng D: 10 layers
- Số B residual blocks trong mạng G: 16 blocks
Thông tin phần cứng sử dụng
CPU: Intel(R) Xeon(R) CPU @ 2.20GHz 6-core 12-thread (x86_64)
Lưu đồ giải thuật
Hình 5 1: Lưu đồ giải thuật cho mạng GAN.
Kết quả thực hiện
5.5.1 So sánh SSIM và PSNR giữa ảnh SR được tạo bởi GAN, ảnh tạo bởi nội suy bicubic và ảnh thật a. b c d
Hình 5.2 trình bày sự so sánh giữa các kết quả PSNR và SSIM của ảnh SR (ảnh được tạo ra) và ảnh nội suy bicubic (ảnh bicubic) so với ảnh gốc (ảnh thật) Trong đó, ảnh LR có kích thước 32x32 được nâng cấp lên 4 lần, đạt kích thước 128x128.
5.5.2 Các đồ thị mất mát (loss)
Dưới đây là hình ảnh các đồ thị Content loss (G loss) và Adversarial loss (D loss)
Hình 5 3: Đồ thị mất mát của G loss và D loss
Đánh giá kết quả
Kết quả từ việc huấn luyện mô hình GAN cho thấy ảnh được tạo ra có chất lượng vượt trội hơn so với ảnh được tạo bằng phương pháp nội suy bicubic Việc so sánh này cho thấy rõ ràng sự cải thiện trong việc tăng cường hình ảnh.
SSIM của các ảnh từ mô hình dao động nằm trong khoảng 0.2 - 0.6, luôn thấp hơn so với phương pháp nội suy Bicubic Điều này cho thấy, mặc dù mô hình đã có sự cải thiện so với các phương pháp cơ bản, nhưng chất lượng cấu trúc và chi tiết của ảnh vẫn chưa đạt được tiêu chuẩn so với phương pháp nội suy truyền thống.
PSNR của các ảnh tạo ra dao động từ 15 đến 25 dB, mặc dù mức này có thể chấp nhận cho một số ứng dụng, nhưng vẫn thấp hơn so với phương pháp nội suy bicubic Điều này cho thấy cần cải thiện rõ rệt về độ rõ nét và chi tiết của ảnh Kết quả từ đồ thị các hàm mất mát của G loss và D loss cũng phản ánh điều này.
Đồ thị G loss cho thấy xu hướng giảm dần theo thời gian, chứng tỏ mô hình G đang cải thiện khả năng tạo ra mẫu Tuy nhiên, giá trị loss vẫn cao, cho thấy mô hình chưa phục hồi chính xác các chi tiết của ảnh gốc Hơn nữa, độ ổn định của mô hình còn thấp, với sự dao động lớn ở một số epoch, đặc biệt là sự gia tăng đột ngột ở epoch thứ 8.
Đối với d_loss (Discriminator Loss) có xu hướng giảm dần theo thời gian và tiến dần đến
Mạng D đang cải thiện khả năng phân biệt giữa ảnh thật và giả với giá trị đạt 0,5 Tuy nhiên, các giá trị này nên duy trì gần 0,5 hoặc dưới 0,5 để đảm bảo Discriminator đủ mạnh nhưng vẫn có thể bị Generator đánh lừa Độ ổn định của mô hình D cần cải thiện, vì có những giá trị cao đột ngột, như ở epoch thứ 4.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Bài báo này trình bày một mô hình mạng đối kháng sinh (GAN) được phát triển để cải thiện chất lượng hình ảnh, nâng kích thước từ 32x32 lên 128x128 Các chỉ số dùng để đánh giá chất lượng hình ảnh bao gồm SSIM.
(Structural Similarity Index) và PSNR (Peak Signal-to-Noise Ratio) đã được sử dụng để đánh giá hiệu quả của mô hình so với phương pháp nội suy bicubic
Mô hình GAN được ứng dụng trong báo cáo này đã có những tiến bộ, nhưng vẫn chưa đạt chất lượng tối ưu So với phương pháp nội suy bicubic, mô hình hiện tại cần cải thiện để nâng cao chất lượng ảnh Nguyên nhân cụ thể cho sự cần thiết này sẽ được đánh giá chi tiết.
Chất lượng ảnh đầu vào rất quan trọng; nếu ảnh có độ phân giải thấp và không rõ nét, việc nâng cao chất lượng lên độ phân giải cao sẽ gặp khó khăn Khi lấy các feature map cho ảnh kích thước 32x32 pixels, hiệu quả của mô hình có thể bị ảnh hưởng, vì các feature map này thiếu thông tin để so sánh hiệu quả với các feature map của mạng VGG19.
Dữ liệu huấn luyện có thể thiếu sự phong phú và đa dạng, khiến mô hình không tiếp xúc đủ với nhiều kiểu hình ảnh khác nhau để cải thiện khả năng nâng cao chi tiết Hơn nữa, nếu mô hình chưa được đào tạo đầy đủ, nó sẽ gặp khó khăn trong việc nhận diện các đặc trưng cao cấp của ảnh, dẫn đến việc không thể phục hồi các chi tiết phức tạp một cách hiệu quả.
Việc tăng cường huấn luyện và áp dụng các kỹ thuật mở rộng dữ liệu là cần thiết để giúp mô hình học tốt hơn các đặc trưng của ảnh, từ đó nâng cao chất lượng đầu ra Đồng thời, cần tiếp tục so sánh và đánh giá các phương pháp khác nhau, bao gồm các kiến trúc mạng mới và các chiến lược huấn luyện khác, nhằm cải thiện các chỉ số chất lượng ảnh.
Dựa trên kết quả hiện tại và những hạn chế của mô hình, có một số hướng phát triển nhằm nâng cao hiệu suất và chất lượng hình ảnh được tạo ra Các đề xuất cụ thể bao gồm cải tiến thuật toán, tối ưu hóa quy trình xử lý dữ liệu và áp dụng công nghệ mới để đạt được kết quả tốt hơn.
Tinh chỉnh siêu tham số như learning rate, kích thước batch và số lượng epoch có thể nâng cao hiệu suất mô hình Bên cạnh đó, áp dụng các kỹ thuật tăng cường dữ liệu như xoay, lật, thay đổi ánh sáng và thêm nhiễu Gaussian giúp mở rộng tập dữ liệu huấn luyện, từ đó cải thiện khả năng tổng quát của mô hình.
Một số ứng dụng và mở rộng:
Xem xét việc tích hợp mô hình vào các ứng dụng thực tế có thể nâng cao chất lượng ảnh trong phần mềm chỉnh sửa ảnh và các ứng dụng truyền thông, mang lại trải nghiệm người dùng tốt hơn và tăng cường khả năng chia sẻ nội dung trực tuyến.
Để cải thiện hiệu quả của mô hình, cần xây dựng và sử dụng các tập dữ liệu mới, đa dạng hơn, đặc biệt là những hình ảnh có chất lượng cao và độ phân giải khác nhau.
Nghiên cứu tiếp theo sẽ tập trung vào việc khám phá các phương pháp mới trong lĩnh vực học sâu và mạng đối kháng, nhằm đảm bảo cập nhật và ứng dụng những công nghệ tiên tiến nhất.