1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh

65 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Tác giả Hà Đức Hải
Người hướng dẫn TS. Phạm Tiến Lâm
Trường học Trường Đại Học Phenikaa
Chuyên ngành Công nghệ thông tin Việt - Nhật
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 65
Dung lượng 4,67 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU (17)
    • 1.1 Giới thiệu tổng quan (17)
    • 1.2 Lý do chọn đề tài (18)
    • 1.3 Mục tiêu nghiên cứu (18)
    • 1.4 Đối tượng và phạm vi nghiên cứu (18)
    • 1.5 Phương pháp nghiên cứu (19)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (20)
    • 2.1 Tổng quan về học máy (20)
    • 2.2 Tổng quan về thị giác máy tính (Computer vision) (21)
    • 2.3 Tổng quan về học sâu (22)
      • 2.3.1 Đơn vị tuyến tính (The Linear Unit ) (24)
      • 2.3.2 Các lớp (Layers) (25)
      • 2.3.3 Hàm kích hoạt (The Activation Function) (26)
      • 2.3.4 Xếp chồng các lớp dense (27)
    • 2.4 Mạng noron tích chập (CNN) (27)
      • 2.4.1 Lớp tích chập (Convolution layer) (29)
      • 2.4.2 Lớp gộp (Pooling layer) (30)
      • 2.4.3 Lớp kết nối đầy đủ (Fully-connected layer) (31)
    • 2.5 Tổng quan về bài toán tăng cường chất lượng ảnh (31)
    • 2.6 Các mô hình deeplearning áp dụng cho bài toán super resolution (33)
      • 2.6.1 Super-Resolution Convolutional Neural Network (SRCNN) (33)
      • 2.6.2 Efficient sub-pixel convolutional neural network (ESPCN) (36)
      • 2.6.3 Super-Resolution Generative Adversarial Network (SRGAN) (39)
  • CHƯƠNG 3. ỨNG DỤNG PHƯƠNG PHÁP VÀ XÂY DỰNG MÔ HÌNH (43)
    • 3.1 Công cụ cài đặt mô hình (43)
      • 3.1.1 Ngôn ngữ python (43)
      • 3.1.2 Các thư viện hỗ trợ (43)
      • 3.1.3 Môi trường triển khai bài toán (46)
    • 3.2 Triển khai bài toán (48)
      • 3.2.1 Mô tả bộ dữ liệu (48)
      • 3.2.2 Các bước giải quyết bài toán (48)
      • 3.2.3 Xây dựng cài đặt và huấn luyện các mô hình (49)
  • CHƯƠNG 4. Kết quả và đánh giá các mô hình (54)
    • 4.1 Đánh giá chất lượng mô hình (54)
      • 4.1.1 Thang đo SSIM (54)
      • 4.1.2 Thang đo PSNR (56)
      • 4.1.3 Thang đo MOS (57)
    • 4.2 Kết quả thu được (58)
  • CHƯƠNG 5. KẾT LUẬN (63)
    • 5.1 Ưu điểm, nhược điểm (63)
      • 5.1.1 Ưu điểm (63)
      • 5.1.2 Nhược điểm (63)
    • 5.2 Kết luận thu được từ các nghiên cứu (63)
    • 5.3 Hướng phát triển của đồ án trong tương lai (64)
  • TÀI LIỆU THAM KHẢO (65)

Nội dung

LỜI CAM ĐOAN Tên tôi là: Hà Đức Hải Ngành: Công Nghệ Thông Tin Việt Nhật Tôi đã thực hiện đồ án tốt nghiệp với đề tài: Nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh Tôi

GIỚI THIỆU

Giới thiệu tổng quan

Ảnh vệ tinh mang lại những ứng dụng to lớn, thiết thực cho đời sống ngày nay Ứng dụng bài toán tăng cường chất lượng ảnh (super resolution) vệ tinh là một lĩnh vực quan trọng trong nghiên cứu và ứng dụng công nghệ vệ tinh Bài toán super resolution nhằm cải thiện độ phân giải của ảnh, giúp tạo ra các hình ảnh chất lượng cao hơn từ ảnh gốc có độ phân giải thấp, mang lại cơ hội cho nhiều ứng dụng, bao gồm lập bản đồ, giám sát, phân tích, nhận dạng đối tượng Một số ứng dụng quan trọng của việc áp dụng super resolution cho ảnh vệ tinh như:

 Phân Tích Đất Đai: Các ảnh vệ tinh với độ phân giải cao có thể được sử dụng để theo dõi và phân tích tình hình sử dụng đất đai Việc tăng cường độ phân giải giúp phát hiện chi tiết nhỏ hơn, như biên giới của các khu vực đất đai khác nhau, đồng thời cải thiện khả năng xác định sự thay đổi về đất đai theo thời gian

 Quản Lý Tài Nguyên Tự Nhiên: Super resolution giúp nâng cao khả năng quan sát thiên nhiên và tài nguyên tự nhiên, chẳng hạn như rừng, hồ, sông, và biển Điều này có thể hỗ trợ trong việc giám sát biến đổi khí hậu, theo dõi thay đổi môi trường, và quản lý tài nguyên tự nhiên một cách hiệu quả hơn

 Dự Báo Thảm Họa Tự Nhiên: Việc cải thiện độ phân giải của ảnh vệ tinh cho phép nhìn thấy các chi tiết nhỏ hơn của các sự kiện tự nhiên như lũ lụt, hoặc sạt lở Điều này có thể giúp cải thiện khả năng dự báo và phản ứng nhanh chóng đối với các thảm họa tự nhiên

 Quản Lý Đô Thị: Trong việc quản lý đô thị, super resolution có thể giúp trong việc theo dõi cơ sở hạ tầng đô thị, đánh giá tình trạng giao thông, và cải thiện quản lý đô thị thông qua việc thu thập dữ liệu về kích thước và hình dạng của các cấu trúc đô thị

 Bảo Vệ Môi Trường: Cải thiện độ phân giải của ảnh vệ tinh cũng hỗ trợ trong việc theo dõi và bảo vệ môi trường Các chi tiết nhỏ hơn có thể giúp trong việc giám sát ô nhiễm môi trường, tìm hiểu tình hình thay đổi của các khu vực tự nhiên, và thúc đẩy các biện pháp bảo vệ môi trường

Copies for internal use only in Phenikaa University

Việc áp dụng super resolution cho ảnh vệ tinh không chỉ cải thiện chất lượng hình ảnh mà còn mở ra nhiều cơ hội mới trong việc nghiên cứu và ứng dụng công nghệ vệ tinh để giải quyết các vấn đề quan trọng của thế giới hiện đại.

Lý do chọn đề tài

Việc tăng cường chất lượng ảnh từ ảnh có chất lượng thấp (low resolution) thành ảnh có chất lượng cao đã đạt được những thành công đáng kể [1][[2] Tuy nhiên, có những thách thức nảy sinh khi áp dụng super resolution cho ảnh vệ tinh, những điều kiện khí quyển và ánh sáng đặt ra những rào cản khiến cho mô hình học sâu bị nhận diện sai các hình thái của vật thể hay chất lượng của ảnh vệ tinh

Nhằm giải quyết các vấn đề tăng cường chất lượng ảnh, tôi chọn đề tài

“Nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh” với mục đích tận dụng được những ứng dụng của học sâu vào bài toán tăng cường chất lượng ảnh vệ tinh.

Mục tiêu nghiên cứu

Mục tiêu chính của đồ án tốt nghiệp là đề xuất các phương pháp tiếp cận phù hợp cho bài toán tăng cường chất lượng ảnh vệ tinh Cụ thể là qua quá trình nghiên cứu các tài liệu, tôi đã lựa chọn được ba mô hình tương đối phù hợp cho bài toán này, đó là Super-Resolution Convolutional Neural Network (SRCNN), Efficient sub-pixel convolutional neural network (ESPCN) và Super-Resolution Generative Adversarial Network (SRGAN) Do đó, mục tiêu đề ra của đồ án tốt nghiệp là:

 Hiểu về các mô hình SRCNN, ESPCN, SRGAN

 Phân tích tổng quan về bộ dữ liệu và bài toán tăng cường chất lượng ảnh vệ tinh

 Thiết kế thực nghiệm và xây dựng mô hình

 So sánh kết quả thu được từ ba phương pháp.

Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của đề tài là ảnh vệ tinh có kích thước lớn (15000x5000 pixel), được chia ra thành nhiều phần (patch) và áp dụng super resolution cho các patch của ảnh vệ tinh để tối ưu bộ nhớ của máy

Phạm vi nghiên cứu của đồ án tốt nghiệp:

Copies for internal use only in Phenikaa University

 Tìm hiểu về các mô hình SRCNN, ESPCN, SRGAN

 Chạy thực nghiệm, huấn luyện mô hình trên máy tính hiệu năng cao (HPC)

 Đưa ra mô hình có kết quả tối ưu nhất phù hợp với bài toán tăng cường chất lượng ảnh vệ tinh

Phương pháp nghiên cứu

Phương pháp nghiên cứu khi thực hiện đồ án tốt nghiệp là tìm hiểu cơ sở lý thuyết chung về áp dụng các phương pháp học sâu giải quyết cho bài toán tăng cường chất lượng ảnh vệ tinh, bao gồm SRCNN, ESPCN, SRGAN, lựa chọn được phương pháp phù hợp nhất Nhằm chứng minh tính hiệu quả của học sâu đối với bài toán tăng cường chất lượng ảnh vệ tinh

Copies for internal use only in Phenikaa University

CƠ SỞ LÝ THUYẾT

Tổng quan về học máy

Học máy (Machine Learning)[3][4] đã nổi lên như một trong những xu hướng công nghệ đáng chú ý của thế giới trong suốt một thập kỷ qua Trong lĩnh vực khoa học, hàng ngàn bài báo được công bố hàng năm về chủ đề này, chứng tỏ sự tạo ấn tượng mạnh mẽ của nó Các tên tuổi lớn như Google, Facebook, Microsoft và các công ty khởi nghiệp đang đổ vốn đầu tư đáng kể vào lĩnh vực Học máy Đến nay, chúng ta đã chứng kiến nhiều ứng dụng xuất sắc của Học máy không chỉ trong lĩnh vực Khoa học máy tính mà còn mở rộng đến các lĩnh vực truyền thống ít liên quan như Vật lý, Hóa học, Y học và thậm chí cả Chính trị Những điển hình như xe tự hành của Google và Tesla, hệ thống tự động nhận dạng khuôn mặt của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, và AlphaGo - máy chơi cờ vây của Google DeepMind, đều là những ví dụ sáng sủa cho sức mạnh phi thường của Học máy so với các phương pháp truyền thống

Lĩnh vực Học máy xuất phát từ những khám phá của Arthur Samuel vào năm

1959 và đã được định nghĩa là một lĩnh vực cho phép máy tính tự học mà không cần phải được lập trình một cách rõ ràng Điều đó có nghĩa là máy tính có khả năng tiếp thu thông tin và kiến thức một cách "tự động" mà không cần sự can thiệp chi tiết của con người Học máy đã lan tỏa và tiến bộ mạnh mẽ qua thời gian, từ việc chúng ta giờ đây có khả năng xây dựng máy tính có khả năng học và tự điều chỉnh thông qua việc xử lý dữ liệu

Học máy không chỉ mang lại những lợi ích như tăng hiệu suất và tiết kiệm thời gian trong việc tự động hóa và học từ dữ liệu, mà còn giúp chúng ta thấu hiểu và khám phá dữ liệu một cách sâu sắc hơn Nó giúp chúng ta phát hiện ra các mối liên hệ và mẫu mã ẩn bên trong dữ liệu, và giải quyết các vấn đề phức tạp mà trước đây là không thể thực hiện được Học máy giúp tối ưu hóa quyết định và giải quyết vấn đề tốt hơn trong nhiều lĩnh vực, từ Khoa học máy tính đến Kinh doanh, Tài chính, Y tế và thậm chí cả Không gian Nó cũng mở ra khả năng giải quyết các thách thức khó khăn và phức tạp mà trước đây gần như là không thể, như việc dịch ngôn ngữ, phân tích dữ liệu lớn, xử lý hình ảnh và video Học máy đang đánh dấu

Copies for internal use only in Phenikaa University một cách rõ ràng sự tiến bộ trong sự kết hợp giữa trí tuệ nhân tạo và khả năng học tập của máy tính Nó là một trong những động cơ mạnh mẽ đằng sau cuộc cách mạng công nghiệp 4.0 và sẽ tiếp tục làm thay đổi cách chúng ta thấy và tương tác với thế giới xung quanh mình.

Tổng quan về thị giác máy tính (Computer vision)

Thị giác máy tính (computer vision)[5] là một lĩnh vực của trí tuệ nhân tạo (artificial intelligence) mà con người đã nghiên cứu và phát triển trong nhiều thập kỷ Nó tập trung vào việc làm cho máy tính có khả năng "nhìn" và hiểu được hình ảnh và video, tương tự như con người

Các nhà khoa học và kỹ sư đã cố gắng phát triển cách máy tính có thể nhìn thấy và hiểu dữ liệu hình ảnh khoảng 60 năm qua Cuộc thử nghiệm bắt đầu vào năm 1959 khi các nhà thần kinh học đã cho một con mèo xtôi một loạt hình ảnh, cố gắng tìm hiểu mối quan hệ với phản ứng trong não của nó Họ phát hiện ra rằng chú mèo phản ứng đầu tiên với các đường viền cứng hoặc đường thẳng, và từ góc đó khoa học cho biết xử lý hình ảnh bắt đầu bằng các hình dạng đơn giản như các đường viền thẳng

Cùng thời điểm đó, công nghệ quét hình ảnh máy tính đầu tiên đã được phát triển, cho phép máy tính số hóa và thu thập hình ảnh Một cột mốc khác đạt được vào năm 1963 khi máy tính có khả năng biến đổi hình ảnh hai chiều thành các hình dạng ba chiều Trong thập kỷ 1960, trí tuệ nhân tạo (AI) nổi lên như một lĩnh vực nghiên cứu học thuật, và đánh dấu sự bắt đầu của việc giải quyết vấn đề về thị giác của con người

Năm 1982, nhà thần kinh học David Marr đã xác định rằng thị giác hoạt động theo cách phân cấp và giới thiệu các thuật toán để máy tính có thể phát hiện các đường viền, góc, đường cong và các hình dạng cơ bản tương tự Đồng thời, nhà khoa học máy tính Kunihiko Fukushima đã phát triển một mạng lưới các tế bào có khả năng nhận ra các mẫu Mạng lưới này, được gọi là Neocognitron, bao gồm các lớp tích chập trong một mạng nơ-ron

Copies for internal use only in Phenikaa University Đến năm 2000, sự tập trung của nghiên cứu dời sang nhận dạng đối tượng, và vào năm 2001, các ứng dụng nhận dạng khuôn mặt thời gian thực đầu tiên đã xuất hiện Quá trình chuẩn hóa cách dữ liệu hình ảnh được gắn thẻ và chú thích đã xuất hiện vào những năm 2000 Năm 2010, bộ dữ liệu ImageNet đã trở nên phổ biến Nó chứa hàng triệu hình ảnh được gắn thẻ trên hàng nghìn lớp đối tượng và cung cấp cơ sở cho các mô hình CNN và mô hình học sâu được sử dụng ngày nay Vào năm 2012, một nhóm từ Đại học Toronto đã tham gia cuộc thi nhận dạng hình ảnh với một mô hình CNN Mô hình này, được gọi là AlexNet, đã giảm đáng kể tỷ lệ lỗi cho việc nhận dạng hình ảnh Sau đột phá này, tỷ lệ lỗi đã giảm xuống chỉ còn một vài phần trăm

Trong thị giác máy tính, mục tiêu chính là phân tích và nắm bắt thông tin từ dữ liệu hình ảnh và video, từ việc nhận dạng các đối tượng, khuôn mặt, vật thể, đến việc hiểu nội dung của hình ảnh Điều này mang lại những ứng dụng đa dạng trong thực tế, từ hệ thống an ninh dựa trên camera, xe tự hành, quản lý tài nguyên tự nhiên, đến lĩnh vực y tế với khả năng phát hiện các bệnh lý từ hình ảnh chụp X- quang và MRI

Tuy nhiên, thị giác máy tính cũng đối mặt với nhiều thách thức khó khăn, như xử lý dữ liệu hình ảnh chất lượng thấp, hiểu biểu đồ không gian và thời gian, và bảo mật thông tin trong các ứng dụng quan trọng Do đó, lĩnh vực này đang tiếp tục phát triển với sự đóng góp của nhiều nhà nghiên cứu và doanh nghiệp công nghệ, nhằm tạo ra những ứng dụng thị giác máy tính ngày càng thông minh và hữu ích trong đời sống hàng ngày Thị giác máy tính không chỉ là một phần của tương lai, mà đã trở thành một phần quan trọng của hiện tại, đóng vai trò quan trọng trong nhiều khía cạnh của cuộc sống và công nghiệp.

Tổng quan về học sâu

Học sâu (Deep Learning) [3]là một lĩnh vực trong trí tuệ nhân tạo (AI), thuộc một nhánh của machine learning, đã thay đổi cách chúng ta xử lý và hiểu dữ liệu

Nó đại diện cho một trong những phát triển quan trọng nhất và đầy thách thức trong lĩnh vực AI và máy học trong những năm gần đây Được xây dựng dựa trên các kiến thức về mạng nơ-ron nhân tạo và học máy Học sâu đã đạt được những

Copies for internal use only in Phenikaa University thành tựu đáng kinh ngạc trong nhiều ứng dụng, từ xử lý ảnh và âm thanh đến ngôn ngữ tự nhiên và tự động hóa

Học sâu là một cách tiếp cận học máy được đặc trưng bởi các khối tính toán sâu Độ sâu tính toán này là điều đã cho phép các mô hình học sâu giải quyết các loại mô hình phức tạp và phân cấp được tìm thấy trong các bộ dữ liệu trong thế giới thực đầy thách thức nhất Thông qua sức mạnh và khả năng mở rộng, mạng lưới thần kinh đã trở thành mô hình xác định của học sâu Mạng lưới thần kinh bao gồm các nơ-ron, trong đó mỗi nơ-ron riêng lẻ chỉ thực hiện một phép tính đơn giản Thay vào đó, sức mạnh của mạng nơ-ron đến từ sự phức tạp của các kết nối mà các nơ-ron này có thể hình thành

Hình 2.1 Mạng nơ-ron được xây dựng dựa trên noron sinh học

Mô hình học sâu có ba thành phần chính gồm: Lớp giá trị đầu vào (Input Layer), Lớp ẩn (Hidden Layer) và lớp đầu ra (Output Layer)

Copies for internal use only in Phenikaa University

Hình 2.2 Ví dụ về các thành phần của một mạng học sâu

2.3.1 Đơn vị tuyến tính (The Linear Unit ) Đơn vị tuyến tính (The Linear Unit) là thành phần cơ bản của mạng nơ-ron, một nơ-ron (hoặc đơn vị) với một đầu vào có cấu trúc như sau:

Hình 2.3 Đơn vị tuyến tính Đầu vào của đơn vị là 𝑥 Kết nối của nó với noron có trọng số là 𝑤 Bất cứ khi nào một giá trị qua một kết nối, ta nhân giá trị đó với trọng số của kết nối Đối với đầu vào 𝑥, giá trị đến được nơ-ron là 𝑤𝑥 Mạng nơ-ron "học" bằng cách sửa đổi trọng số 𝑤 của nó Ở đây ta có 𝑏 là một loại trọng số đặc biệt gọi là độ lệch (bias) Độ lệch không có bất kỳ dữ liệu đầu vào nào liên quan đến nó Thay vào đó, ta đặt số 1 vào sơ đồ sao cho giá trị chạm tới nơ-ron chỉ là b (vì 1 ∗ 𝑏 = 𝑏) Độ lệch cho phép nơ-ron sửa đổi đầu ra một cách độc lập với đầu vào của nó

Giá trị 𝑦 là giá trị cuối cùng mà nơ-ron tạo ra Để có được đầu ra, nơ-ron tổng hợp tất cả các giá trị mà nó nhận được thông qua các kết nối của nó Do đó công thức tính 𝑦 có dạng:

Copies for internal use only in Phenikaa University Đối với nhiều giá trị 𝑥 đầu vào, công thức tính 𝑦 có dạng:

Hình 2.4 Ví dụ đơn vị tuyến tính có ba giá trị đầu vào

Mạng lưới thần kinh thường tổ chức các nơ-ron của chúng thành các lớp (layers) Khi ta tập hợp các đơn vị tuyến tính có một bộ đầu vào chung, ta sẽ có được một lớp dày đặc (dense layer)

Hình 2.5 Một dense layer của hai đơn vị tuyến tính

Thông qua nhiều lớp sâu, mạng lưới thần kinh có thể biến đổi đầu vào của nó theo những cách ngày càng phức tạp hơn Trong một mạng lưới thần kinh được đào tạo tốt, mỗi lớp là một sự biến đổi giúp ta tiến gần hơn một chút đến giải pháp tối ưu hơn

Copies for internal use only in Phenikaa University

2.3.3 Hàm kích hoạt (The Activation Function)

Hai lớp dày đặc (dense layer) không có gì ở giữa cũng không khác gì hơn một lớp dày đặc Bản thân các lớp dày đặc không bao giờ có thể đưa chúng ta ra khỏi thế giới của những đường thẳng và mặt phẳng Do đó ta cần là một thứ gì đó phi tuyến tính, được gọi là hàm kích hoạt (activation function)

Hàm kích hoạt là một số chức năng mà ta áp dụng cho từng đầu ra của layer Phổ biến nhất là hàm chỉnh lưu max(0,x)

Hình 2.6 Hàm chỉnh lưu max(0, x)

Hàm chỉnh lưu có đồ thị là một đường thẳng có phần âm được "chỉnh" về

0 Việc áp dụng hàm này cho đầu ra của nơ-ron sẽ làm thay đổi dữ liệu, khiến ta tránh xa những đường thẳng đơn giản

Khi ta gắn bộ chỉnh lưu vào một đơn vị tuyến tính, chúng ta sẽ có một đơn vị tuyến tính được chỉnh lưu (rectified linear unit) hay còn gọi là ReLu

Copies for internal use only in Phenikaa University

Hình 2.7 Một đơn vị tuyến tính được chỉnh lưu

2.3.4 Xếp chồng các lớp dense

Khi ta có một số tính chất phi tuyến, ta có thể xếp chồng các lớp để thực hiện các phép biến đổi dữ liệu phức tạp

Hình 2.8 Các lớp dense tạo thành mạng kết nối đầy đủ (fully-connected)

Các lớp trước lớp đầu ra đôi khi được gọi là lớp ẩn (Hidden layers) vì chúng ta không bao giờ nhìn thấy trực tiếp đầu ra của chúng Lớp đầu ra cuối cùng là một đơn vị tuyến tính Điều đó làm cho mạng này phù hợp với nhiệm vụ hồi quy, có nghĩa là ta có thể dự đoán một số giá trị số tùy ý Các tác vụ khác (như phân loại) có thể yêu cầu chức năng kích hoạt ở đầu ra.

Mạng noron tích chập (CNN)

Copies for internal use only in Phenikaa University

Mạng lưới thần kinh (neural network)[6] là một tập hợp con của học máy và chúng là trung tâm của các thuật toán học sâu Chúng bao gồm các lớp nút, chứa một lớp đầu vào, một hoặc nhiều lớp ẩn và một lớp đầu ra Mỗi nút kết nối với nút khác và có trọng số và ngưỡng liên quan Nếu đầu ra của bất kỳ nút riêng lẻ nào cao hơn giá trị ngưỡng được chỉ định thì nút đó sẽ được kích hoạt, gửi dữ liệu đến lớp tiếp theo của mạng Mặt khác, không có dữ liệu nào được truyền đến lớp tiếp theo của mạng

Có nhiều loại mạng thần kinh khác nhau được sử dụng cho các trường hợp sử dụng và loại dữ liệu khác nhau Ví dụ: mạng thần kinh tái phát (recurrent neural networks) thường được sử dụng để xử lý ngôn ngữ tự nhiên và nhận dạng giọng nói trong khi mạng thần kinh tích chập (ConvNets hoặc CNN) thường được sử dụng nhiều hơn cho các nhiệm vụ phân loại và thị giác máy tính Trước CNN, các phương pháp trích xuất đặc điểm thủ công, tốn thời gian đã được sử dụng để xác định các đối tượng trong ảnh Tuy nhiên, mạng nơ-ron tích chập hiện cung cấp một cách tiếp cận có khả năng mở rộng hơn để phân loại hình ảnh và nhận dạng đối tượng, tận dụng các nguyên tắc từ đại số tuyến tính, cụ thể là phép nhân ma trận, để xác định các mẫu trong hình ảnh Điều đó có nghĩa là chúng có thể đòi hỏi tính toán cao, yêu cầu các đơn vị xử lý đồ họa (GPU) để huấn luyện các mô hình

Hình 2.9 Ví dụ về một mạng CNN cho bài toán phân loại

Mạng thần kinh tích chập được phân biệt với các mạng thần kinh khác bởi hiệu suất vượt trội của chúng với đầu vào tín hiệu hình ảnh, giọng nói hoặc âm thanh Chúng có ba loại lớp chính, đó là lớp tích chập (Convolutional layer), lớp gộp (Pooling layer) và lớp kết hợp đầy đủ (Fully-connected (FC) layer)

Copies for internal use only in Phenikaa University

Lớp tích chập là lớp đầu tiên của mạng tích chập Mặc dù các lớp tích chập có thể được theo sau bởi các lớp tích chập bổ sung hoặc các lớp gộp, lớp được kết nối đầy đủ là lớp cuối cùng Với mỗi lớp, CNN sẽ tăng độ phức tạp, xác định các phần lớn hơn của hình ảnh Các lớp trước đó tập trung vào các tính năng đơn giản, chẳng hạn như màu sắc và các cạnh Khi dữ liệu hình ảnh di chuyển qua các lớp của CNN, nó bắt đầu nhận dạng các phần tử hoặc hình dạng lớn hơn của đối tượng cho đến khi cuối cùng xác định được đối tượng mong muốn

2.4.1 Lớp tích chập (Convolution layer)

Lớp tích chập là cốt lõi của CNN và đó là nơi diễn ra phần lớn hoạt động tính toán Nó yêu cầu một số thành phần, đó là dữ liệu đầu vào (input data), bộ lọc (filter) và bản đồ tính năng (feature map) Giả sử rằng đầu vào sẽ là hình ảnh màu, được tạo thành từ ma trận pixel ở chế độ 3D Điều này có nghĩa là đầu vào sẽ có ba chiều: chiều cao, chiều rộng và chiều sâu, tương ứng với RGB trong hình ảnh

Ta có một trình phát hiện các đặc trưng của tấm ảnh, còn được gọi là kernel hoặc bộ lọc, sẽ di chuyển qua các trường tiếp nhận của hình ảnh, kiểm tra xtôi các đặc trưng đó có xuất hiện hay không Quá trình này được gọi là tích chập

Hình 2.10 Ví dụ về phép tích chập trong convolution layer

Bộ phát hiện đặc trưng là một mảng trọng số hai chiều (2-D), đại diện cho một phần của hình ảnh Mặc dù chúng có thể khác nhau về kích thước nhưng kích

Copies for internal use only in Phenikaa University thước bộ lọc thường là ma trận 3x3; điều này cũng xác định kích thước của trường tiếp nhận Sau đó, bộ lọc được áp dụng cho một vùng của hình ảnh và nhân tích chập giữa các pixel đầu vào và bộ lọc Kết quả của phép nhân tích chập này sau đó được đưa vào một mảng đầu ra Sau đó, bộ lọc dịch chuyển từng bước, lặp lại quá trình này cho đến khi kernel quét qua toàn bộ hình ảnh Đầu ra cuối cùng từ chuỗi các phép tích chập và bộ lọc được gọi là bản đồ tính năng Sau mỗi thao tác tích chập, CNN áp dụng phép biến đổi Đơn vị tuyến tính chỉnh lưu (ReLU) cho bản đồ đặc trưng, đưa tính phi tuyến vào mô hình

Các lớp gộp hay còn gọi là downsampling, tiến hành giảm kích thước, giảm số lượng tham số trong đầu vào Tương tự như lớp tích chập, hoạt động gộp sẽ quét bộ lọc trên toàn bộ đầu vào, nhưng điểm khác biệt là bộ lọc này không có bất kỳ trọng số nào Thay vào đó, kernel áp dụng hàm tổng hợp cho các giá trị trong trường tiếp nhận, điền vào mảng đầu ra Có hai loại pooling chính:

 Max pooling: Khi bộ lọc di chuyển qua đầu vào, nó sẽ chọn pixel có giá trị lớn nhất để gửi đến mảng đầu ra Ngoài ra, cách tiếp cận này có xu hướng được sử dụng thường xuyên hơn so với cách gộp trung bình

 Average pooling: Khi bộ lọc di chuyển qua đầu vào, nó sẽ tính toán giá trị trung bình trong trường tiếp nhận để gửi đến mảng đầu ra

Hình 2.11 Ví dụ về max pooling và average pooling

Copies for internal use only in Phenikaa University

Mặc dù rất nhiều thông tin sẽ bị mất trong lớp pooling nhưng nó cũng mang lại một số lợi ích cho CNN Chúng giúp giảm độ phức tạp, nâng cao hiệu quả và hạn chế nguy cơ overfiting khi huấn luyện mô hình

2.4.3 Lớp kết nối đầy đủ (Fully-connected layer)

Tên của lớp được kết nối đầy đủ mô tả chính nó Như đã đề cập trước đó, các giá trị pixel của ảnh đầu vào không được kết nối trực tiếp với lớp đầu ra trong các lớp được kết nối một phần Tuy nhiên, trong lớp được kết nối đầy đủ, mỗi nút ở lớp đầu ra kết nối trực tiếp với một nút ở lớp trước đó

Hình 2.12 Ví dụ về fully-connected layer

Lớp này thực hiện nhiệm vụ phân loại dựa trên các đặc điểm được trích xuất qua các lớp trước và các bộ lọc khác nhau của chúng Trong khi các lớp tích chập và gộp có xu hướng sử dụng các hàm ReLu thì các lớp FC thường tận dụng chức năng kích hoạt softmax để phân loại đầu vào một cách thích hợp, tạo ra xác suất từ 0 đến 1.

Tổng quan về bài toán tăng cường chất lượng ảnh

Trong thế giới số hóa hiện đại, hình ảnh là một phần quan trọng của cuộc sống hàng ngày của chúng ta Chúng ta chụp ảnh bằng điện thoại di động, máy ảnh kỹ thuật số và các thiết bị khác, và sau đó chia sẻ chúng trên mạng xã hội, lưu trữ điện toán đám mây hoặc sử dụng trong các ứng dụng cá nhân và chuyên nghiệp Tuy nhiên, không phải lúc nào chúng ta cũng có được các bức ảnh hoàn hảo Các vấn đề như ánh sáng yếu, độ tương phản thấp, nhiễu hạt, hoặc thiếu độ nét có thể làm giảm chất lượng của ảnh và làm mất đi các chi tiết quan trọng

Copies for internal use only in Phenikaa University

Bài toán tăng cường chất lượng ảnh - Super resolution (viết tắt là SR) là một phần quan trọng trong lĩnh vực xử lý hình ảnh và thị giác máy tính Mục tiêu chính của nó là cải thiện sự hiển thị và độ rõ ràng của hình ảnh, từ đó tạo ra các phiên bản tốt hơn so với ảnh gốc Điều này có thể áp dụng cho nhiều mục đích khác nhau, từ cải thiện hình ảnh cá nhân đến nâng cao khả năng nhận dạng đối tượng trong các ứng dụng thị giác máy tính Ứng dụng của bài toán tăng cường chất lượng ảnh rất đa dạng Trong y học, nó có thể giúp bác sĩ xem rõ hơn các hình ảnh chẩn đoán như tia X hoặc MRI Bài toán tăng cường chất lượng ảnh không chỉ đơn thuần là việc cải thiện hình ảnh từ gốc đến tối ưu mà còn liên quan mật thiết đến thẩm mỹ và mục tiêu sử dụng cụ thể Điều này đặc biệt quan trọng trong các lĩnh vực như thiết kế đồ họa, nghệ thuật, và truyền thông, nơi mà chất lượng hình ảnh có thể là quyết định yếu tố quyết định sự thành công của một dự án

Hình 2.13 Super resolution tăng cường độ nét của ảnh

Super resolution gồm hai loại chính:

 Single-Image Super Resolution (SISR) tập trung vào việc tạo ra hình ảnh có độ phân giải cao từ một hình ảnh gốc có độ phân giải thấp Các thuật toán SISR thường sử dụng mạng nơ-ron sâu để học cách tạo ra các chi tiết bị mất trong quá trình giảm độ phân giải

Copies for internal use only in Phenikaa University

 Multi-Image Super Resolution (MISR) sử dụng nhiều hình ảnh đầu vào có độ phân giải thấp hơn để tạo ra hình ảnh độ phân giải cao hơn MISR có thể sử dụng các hình ảnh từ nhiều góc độ hoặc vị trí khác nhau để tạo ra hình ảnh kết hợp với độ phân giải cao hơn và chi tiết nhiều hơn

Bài toán tăng cường chất lượng ảnh đã chứng kiến sự phát triển nhanh chóng trong thời gian gần đây, chủ yếu nhờ vào sự tiến bộ trong lĩnh vực trí tuệ nhân tạo và học máy Các mô hình học máy sâu, chẳng hạn như mạng nơ-ron tích chập (CNNs), đã có khả năng tạo ra các hình ảnh tuyệt đẹp và độc đáo Chúng có thể nhận diện nội dung của hình ảnh và tạo ra các biến thể mà con người thường không thể làm được

Do điều kiện thời gian thực hiện đồ án có hạn nên bài báo cáo này chỉ tập trung vào bài toán Single-Image super resolution.

Các mô hình deeplearning áp dụng cho bài toán super resolution

Có rất nhiều phương pháp giải quyết cho bài toán super resolution đã được áp dụng, trong đó bao gồm các phương pháp Convolutional Neural Network (SRCNN), Efficient sub-pixel convolutional neural network (ESPCN) và Super- Resolution Generative Adversarial Network (SRGAN)

2.6.1 Super-Resolution Convolutional Neural Network (SRCNN)

Super-Resolution Convolutional Neural Network (SRCNN) là một phương pháp học sâu giải quyết cho bài toán super-resolution Phương pháp này tìm hiểu trực tiếp ánh xạ từ đầu đến cuối giữa các bức ảnh thấp-cap Ánh xạ được biểu diễn dưới dạng mạng CNN lấy hình ảnh có độ phân giải thấp (low-resolution image) làm đầu vào và đầu ra là ảnh chất lượng cao (high-resolution image)

Copies for internal use only in Phenikaa University

Hình 2.14 Các bước giải quyết bài toán super-resolution của SRCNN [1]

Với đầu vào là một hình ảnh có độ phân giải thấp, trước tiên SRCNN tăng nó lên kích thước mong muốn bằng cách sử dụng phép nội suy hai chiều, đây là quá trình xử lý trước duy nhất được thực hiện Gọi hình ảnh phân giải thấp đã được nội suy là Y Mục tiêu của SRCNN là khôi phục từ hình ảnh bằng ánh xạ F(Y) giống nhất có thể với hình ảnh X có độ phân giải cao thực tế SRCNN thực hiện bằng các thao tác: Patch extraction and representation (trích xuất các bản vá), Non- linear mapping (ánh xạ phi tuyến tính) và Reconstruction (tái cấu trúc)

2.6.1.1 Trích xuất các bản vá (Patch extraction and representation)

Thao tác này trích xuất các bản vá từ hình ảnh có độ phân giải thấp và biểu thị mỗi bản vá dưới dạng một vectơ Các vectơ này bao gồm một tập hợp các bản đồ đặc trưng (feature map), trong đó số lượng bằng với số chiều của vectơ Hoạt động của lớp đầu tiên được minh họa như sau:

𝑊1 biểu thị các bộ lọc (filters) và B1 biểu thị độ lệch (bias) Phép “ * ” biểu thị cho phép nhân tích chập Ở đây, 𝑊1 tương ứng với 𝑛1 bộ lọc có kích thước 𝑐 × f1 × f1 trong đó c là số kênh màu của ảnh đầu vào, f1 là kích thước của bộ lọc Do đó, 𝑊1 áp dụng 𝑛1 phép tích chập lên ảnh, mỗi phép tích chập có kernel size 𝑐 × f1 × f1 Đầu ra của lớp này gồm 𝑛1 bản đồ đặc trưng

Copies for internal use only in Phenikaa University

2.6.1.2 Ánh xạ phi tuyến tính (Non-linear mapping)

Thao tác này ánh xạ phi tuyến từng vectơ lên một vectơ khác Mỗi vectơ được ánh xạ về mặt khái niệm là sự thể hiện của một bản vá có độ phân giải cao Các vectơ này bao gồm một tập hợp các bản đồ đặc trưng khác

Sau khi lớp đầu tiên trích xuất 𝑛1 đặc trưng từ mỗi bản vá của ảnh đầu vào SRCNN ánh xạ từng vector 𝑛1 chiều thành vector 𝑛2 chiều Hoạt động của lớp thứ hai có công thức như sau:

F2(Y) = max (0, W2∗ F1(Y) + B2) 2-4 Ở đây W2 chứa n2 bộ lọc có kích thước n1 x f2 x f2 và B2 có n2 chiều Mỗi vectơ n2 chiều đầu ra về mặt khái niệm là đại diện cho một bản vá có độ phân giải cao sẽ được sử dụng để tái tạo cấu trúc ảnh

Thao tác này tổng hợp các biểu diễn vá lỗi có độ phân giải cao ở trên để tạo ra hình ảnh có độ phân giải cao cuối cùng Hình ảnh này được cho là giống với ảnh gốc X

Hình 2.15 Minh họa về các phương pháp dựa trên mã hóa thưa thớt (sparse-coding- based methods) dưới góc nhìn của mạng nơ ron tích chập [1]

Trong các phương pháp truyền thống, các bản vá có độ phân giải cao chồng chéo nhau được dự đoán thường được tính trung bình để tạo ra hình ảnh đầy đủ cuối cùng Tính trung bình có thể được coi là một bộ lọc được xác định trước trên một tập hợp các bản đồ đặc trưng (trong đó mỗi vị trí là dạng vectơ “làm phẳng” của một bản vá có độ phân giải cao) Từ điều này, SRCNN xác định một lớp tích

Copies for internal use only in Phenikaa University chập để tạo ra hình ảnh có độ phân giải cao cuối cùng, được minh họa bằng công thức như sau:

F(Y) = W3∗ F2(Y) + B3 2-5 Ở đây, W3 có 𝑐 bộ lọc có kích thước n2× f3× f3 và 𝐵3 là vector 𝑐 chiều

Quá trình huấn luyện SRCNN là quá trình ước tính các tham số Θ {W1, W2, W3, B1, B2, B3} Điều này đạt được thông qua việc giảm thiểu sự mất mát thông tin giữa các hình ảnh được tái tạo 𝐹(𝑌; 𝛩) và hình ảnh có độ phân giải cao thực tế thực tế tương ứng X Với một tập hợp các hình ảnh có độ phân giải cao{Xi}và các hình ảnh có độ phân giải thấp tương ứng của chúng{Yi}, SRCNN sử dụng Lỗi bình phương trung bình (Mean Squared Error - MSE) làm hàm mất mát (Loss function), có công thức như sau:

Trong đó n là số lượng mẫu dữ liệu huấn luyện Sử dụng MSE làm hàm mất mát sẽ có PSNR cao tối ưu PSNR là thước đo được sử dụng rộng rãi để đánh giá định lượng chất lượng phục hồi hình ảnh và ít nhất liên quan một phần đến chất lượng cảm nhận Mạng nơ ron tích chập không loại trừ việc sử dụng các loại hàm mất mát khác Mặc dù mô hình đề xuất được huấn luyện theo hướng sao cho chỉ số PSNR cao nhất, ngoài ra SRCNN vẫn mang lại hiệu suất đạt yêu cầu khi mô hình được đánh giá bằng cách sử dụng các số liệu đánh giá thay thế, ví dụ như SSIM

2.6.2 Efficient sub-pixel convolutional neural network (ESPCN)

ESPCN là mạng thần kinh tích chập (CNN) đầu tiên có khả năng quay video

SR thời gian thực 1080p trên một GPU K2 [2] Để đạt được điều này, ESPCN đề xuất một kiến trúc CNN mới trong đó các bản đồ đặc trưng được trích xuất trong không gian Low-Resolution (LR) Ngoài ra, ESPCN còn giới thiệu lớp tích chập pixel hiệu quả (efficient sub-pixel convolution layer), lớp này tìm hiểu một loạt bộ lọc nâng cấp để nâng cấp bản đồ tính năng LR cuối cùng vào đầu ra High- Resolution (HR) Bằng cách đó, ESPCN thay thế một cách hiệu quả bộ lọc bicubic

Copies for internal use only in Phenikaa University thủ công trong quy trình SR bằng các bộ lọc nâng cấp phức tạp hơn được đào tạo riêng cho từng bản đồ đặc trưng, đồng thời giảm độ phức tạp tính toán của hoạt động SR tổng thể Nhiệm vụ của ESPCN là từ ảnh LR có kích thước 𝐻 × 𝑊 × 𝐶, ta cần upscale lên ảnh HR với kích thước 𝑟𝐻 × 𝑟𝑊 × 𝐶 (𝑟 là hệ số upscale) Để làm được việc đó, ESPCN dùng một lớp deconvolutional layer (hay transposed convolution), trái ngược với các lớp tích chập (convolutional layer) được dùng chủ yếu để giảm chiều không gian (gồm chiều cao - height và chiều rộng - width), thì lớp deconvolutional layer được dùng để đảo lại việc đó, tức là tạo ra ảnh đầu ra (output) có height và width lớn hơn so với ảnh đầu vào (input)

Hình 2.16 Cấu trúc mạng ESPCN [2]

ESPCN dùng 𝑙 lớp tích chập đầu tiên áp dụng cho ảnh LR đầu vào, sau đó áp dụng lớp tích chập để nâng cấp bản đồ đặc trưng (feature maps) của ảnh super resolution Trong cấu trúc ESPCN có 𝐿 lớp, 𝐿 − 1 lớp đầu tiên được mô tả bằng công thức: f1(ILR; W1, b1) = φ(W1∗ ILR+ b1) 2-7 fl(ILR; W1: l, b1: l) = φ(Wl∗ fl − 1(ILR) + bl) 2-8

ỨNG DỤNG PHƯƠNG PHÁP VÀ XÂY DỰNG MÔ HÌNH

Công cụ cài đặt mô hình

Từ cơ sở lý thuyết như trên, ta sẽ tiến hành xây dựng mô hình học sâu cho việc tạo ảnh super resolution bằng ngôn ngữ Python và các thư viện hỗ trợ của Python

Python là một ngôn ngữ lập trình mạnh mẽ và phổ biến, được phát triển bởi Guido van Rossum và ra mắt lần đầu vào năm 1991 Python có cú pháp rất dễ đọc và gần giống với ngôn ngữ tự nhiên, điều này làm cho nó rất thích hợp cho người mới học lập trình Người dùng Python thường tìm hiểu nhanh và dễ dàng chuyển đổi sang các ngôn ngữ lập trình khác Một số thư viện và framework mạnh mẽ như NumPy, pandas, TensorFlow, và Django giúp người lập trình xây dựng các ứng dụng phức tạp Python là công cụ không thể thiếu đối với các lĩnh vực như phân tích dữ liệu và trí tuệ nhân tạo

Hình 3.1 Ngôn ngữ lập trình python

3.1.2 Các thư viện hỗ trợ

Các thư viện của Python hỗ trợ cho việc phân tích dữ liệu và xây dựng mô hình bao gồm các thư viện sau:

Copies for internal use only in Phenikaa University

Thư viện Numpy là một công cụ hữu ích và không thể thiếu đối với những người sử dụng Python trong ngành toán học và khoa học dữ liệu, là thư viện toán học mã nguồn mở trong Python dùng để xử lý các mảng và ma trận số học Nó cung cấp nhiều công cụ hỗ trợ cho việc tính toán đa chiều, tính toán thống kê và xử lý ảnh

NumPy được phát triển bởi Jim Hugunin Phiên bản ban đầu là Numarray được phát triển, có một số chức năng bổ sung Năm 2005, Travis Oliphant đã tạo ra gói NumPy bằng cách kết hợp các tính năng của Numarray và gói Numeric

Numpy là một thư viện toán học rất phổ biến và mạnh mẽ của Python NumPy được cung cấp các hàm toán học cơ bản như tính tích, chia, căn bậc hai, sin, cos và các hàm khác, cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng Python đơn thuần

Thư viện Matplotlib là một thư viện mã nguồn mở trong Python dùng để vẽ các biểu đồ và hình học Nó cung cấp rất nhiều kiểu biểu đồ khác nhau, bao gồm các biểu đồ đơn giản như đồ thị cột và đồ thị tròn, và các biểu đồ phức tạp hơn như đồ thị hàm số và đồ thị trục phức tạp

Thư viện Matplotlib cũng có thể dùng để vẽ các hình học khác nhau, bao gồm cả các hình học trục phức tạp và hình học 3 chiều Nó cũng cung cấp các công cụ hỗ trợ cho việc định dạng và chỉnh sửa các biểu đồ, bao gồm cả các tùy chọn để thay đổi màu sắc, kích thước và loại chữ Thư viện Matplotlib cũng có thể kết hợp với các thư viện khác như Pandas và Numpy để phân tích dữ liệu một cách sâu hơn và vẽ các biểu đồ phức tạp hơn

Thư viện OpenCV, còn gọi là thư viện cv2, hay Open Source Computer Vision Library, là một thư viện mã nguồn mở mạnh mẽ dành cho xử lý hình ảnh

Copies for internal use only in Phenikaa University và thị giác máy tính Thư viện này có tích hợp sẵn với nhiều ngôn ngữ lập trình như Python, C++, Java và MATLAB, và nó có khả năng hoạt động trên nhiều hệ điều hành khác nhau bao gồm Windows, macOS và các phiên bản của Linux OpenCV cung cấp một loạt các tính năng quan trọng như xử lý hình ảnh cơ bản, xử lý video, nhận dạng đối tượng, và thị giác máy tính Nó cũng hỗ trợ xử lý ảnh y tế và ảnh 3D Thư viện OpenCV có một cộng đồng lớn và đa dạng của các lập trình viên và nhà nghiên cứu, cung cấp tài liệu phong phú, ví dụ thực tế và hỗ trợ trực tuyến, và được sử dụng rộng rãi trong nhiều lĩnh vực từ y học đến công nghiệp và thị giác máy tính

PyTorch là một thư viện mã nguồn mở mạnh mẽ được phát triển bởi Facebook's AI Research lab (FAIR) cho việc phát triển mạng neural và các ứng dụng học máy PyTorch tích hợp một cách dễ dàng với Python, cho phép người lập trình tận dụng sự linh hoạt và đơn giản của ngôn ngữ này trong việc định nghĩa và huấn luyện mô hình mạng neural Một điểm mạnh độc đáo của PyTorch là việc sử dụng đồ thị tính toán động, cho phép thay đổi mô hình trong quá trình chạy, điều này rất hữu ích trong việc phát triển và debug PyTorch cũng hỗ trợ GPU mạnh mẽ, giúp tận dụng sức mạnh tính toán của GPU để đào tạo mô hình nhanh hơn Ngoài ra, có một cộng đồng lớn và đa dạng của các lập trình viên và nhà nghiên cứu đang sử dụng PyTorch, cung cấp tài liệu phong phú, mã nguồn mở, và hỗ trợ trực tuyến PyTorch cung cấp module torch.nn mạnh mẽ để xây dựng và tùy chỉnh các mạng neural, bên cạnh đó còn hỗ trợ transfer learning, nơi người dùng có thể sử dụng mô hình đã được đào tạo trước và điều chỉnh nó cho nhiệm vụ cụ thể Điều này đã làm cho PyTorch trở thành một công cụ quan trọng trong cả nghiên cứu và công nghiệp cho phát triển và triển khai các ứng dụng AI và học máy

TensorFlow là một thư viện mã nguồn mở phổ biến và mạnh mẽ cho việc phát triển mô hình học máy và mạng neural trong ngôn ngữ lập trình Python Được phát triển bởi Google Brain Team, TensorFlow cung cấp một cách linh hoạt và

Copies for internal use only in Phenikaa University hiệu quả để xây dựng, đào tạo và triển khai các mô hình học máy và thị giác máy tính Thư viện này là một trong những công cụ hàng đầu cho học máy sâu và phát triển các ứng dụng trí tuệ nhân tạo

TensorFlow sử dụng một biểu đồ tính toán đồng thời tĩnh (static computational graph) để định nghĩa và thực hiện các phép tính Điều này cho phép tối ưu hóa tính toán và tận dụng sức mạnh của GPU, đặc biệt trong việc đào tạo mạng neural lớn TensorFlow cung cấp một loạt các API và lớp cho nhiều mức độ của học máy, từ mô hình đơn giản đến mô hình sâu và phức tạp

TensorFlow cũng hỗ trợ một loạt các mô hình trước (pre-trained models) và các công cụ liên quan đến việc xử lý dữ liệu, tiền xử lý dữ liệu, và đánh giá mô hình Ngoài ra, TensorFlow Lite là một biến thể của TensorFlow được tối ưu hóa cho các thiết bị nhúng và di động

Với một cộng đồng lập trình viên lớn và sự hỗ trợ từ Google, TensorFlow đã trở thành một công cụ quan trọng cho việc phát triển các ứng dụng trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên, thị giác máy tính và nhiều lĩnh vực khác

3.1.3 Môi trường triển khai bài toán

Triển khai bài toán

3.2.1 Mô tả bộ dữ liệu

Bộ dữ liệu được cung cấp bởi tác giả “ADITYA CHANDRASEKHAR” trên Kaggle Bộ dữ liệu bao gồm 855 ảnh High resolution và 855 ảnh Low resolution có cùng kích thước 256x256 Tập ảnh bao gồm chứa đa dạng nội dung và các vật thể giúp huấn luyện mạng học sâu cố gắng khôi phục đa dạng các đường nét cho một tấm ảnh, phục vụ cho bài toán super resolution

Hình 3.3 Một vài dữ liệu trong tập dataset

3.2.2 Các bước giải quyết bài toán Ảnh vệ tinh là một định dạng ảnh có kích thước rất lớn (~5000 × 15000 pixel), vì vậy để có thể thực hiện super resolution trên ảnh vệ tinh, ta sẽ chia ảnh vệ tinh ra thành các mảnh (patch) nhỏ kích thước 256 × 256

Copies for internal use only in Phenikaa University

Hình 3.4 Ảnh vệ tinh được chia thành các mảnh nhỏ kích thước 256 × 256

Sau khi chia ảnh vệ tinh thành các mảnh nhỏ, ta tiến hành super resolution bằng một trong các mô hình SRCNN, ESPCN và SRGAN cho từng mảnh ảnh vệ tinh, rồi sau đó ghép lại thành một ảnh vệ tinh được super resolution hoàn chỉnh

Hình 3.5 Các bước giải quyết bài toán

3.2.3 Xây dựng cài đặt và huấn luyện các mô hình

Mô hình SRCNN được xây dựng như sau:

Hình 3.6 Mô hình SRCNN xây dựng

Mô hình được xây dựng với input đầu vào là ảnh chất lượng thấp (low- resolution), khi đi qua các lớp của mô hình ta được ảnh đầu ra chất lượng cao (high-resolution) có cùng kích thước

Copies for internal use only in Phenikaa University

Tại bước trích xuất các bản vá (patch extraction), ta thiết lập conv2D có 64 bộ lọc có kích thước 9 × 9, độ dịch (stride) trên ảnh là 1 và padding là 4 Tiếp đến phần ánh xạ phi tuyến (Non-linear mapping), ta sử dụng 32 bộ lọc kích thước 5 ×

5, độ dịch là 1 và padding là 2 Cuối cùng để tái cấu trúc lại ảnh super resolution, ta dùng num_channels = 3 bộ lọc có kích thước 5 × 5, độ dịch trên ảnh là 1 và padding là 2 Ngoài ra, trọng số bộ lọc của mỗi lớp được khởi tạo bằng cách vẽ ngẫu nhiên từ phân bố Gaussian với giá trị trung bình bằng 0 và độ lệch chuẩn 0,001 (và 0 cho độ lệch bias)

Tiến hành huấn luyện mô hình SRCNN qua 100 epochs, ta có history train như hình dưới:

Hình 3.7 History train của SRCNN

Qua history train, ta thấy được giá trị của training loss và validation loss của SRCNN giảm từ epoch 0 đến epoch thứ 40 Sau epoch thứ 40, giá trị loss của cả hai có xu hướng ổn định, lúc này, giá trị loss đạt mức tối ưu

Copies for internal use only in Phenikaa University

ESPCN được xây dựng như sau:

Hình 3.8 Mô hình ESPCN được xây dựng

Mô hình được xây dựng với input đầu vào là ảnh chất lượng thấp (low- resolution), khi đi qua các lớp của mô hình ta được ảnh đầu ra chất lượng cao (high-resolution) có kích thước gấp đôi ảnh low-resolution đầu vào

Ta xây dựng ESPCN bởi 8 lớp Conv2D, các lớp Conv2D đầu tiên có số lượng các bộ lọc lớn với mục đích trích chọn đầy đủ các đặc trưng của tấm ảnh, các lớp Conv2D về sau có kích thước giảm dần, giúp giảm chi phí tính toán và giữ lại các đặc trưng quan trọng của ảnh chất lượng thấp

Tại lớp outputs cuối cùng, ta sử dụng cơ chế depth_to_space của tensorflow cung cấp để thể hiện lớp Sub-pixel của ESPCN

Hình 3.9 Cơ chế depth_to_space

Copies for internal use only in Phenikaa University

Tiến hành huấn luyện mô hình ESPCN qua 50 epochs, ta có biểu đồ ghi lại quá trình huấn luyện mô hình như hình dưới:

Hình 3.10 Biểu đồ ghi lại quá trình huấn luyện của ESPCN

Qua history train, ta thấy được giá trị của training loss và validation loss của SRCNN giảm từ epoch 0 đến epoch thứ 10 Sau epoch thứ 10, giá trị loss của cả hai có xu hướng ổn định, lúc này, giá trị loss đạt mức tối ưu

Mô hình Generator của SRGAN được xây dựng như sau:

Hình 3.11 Mô hình Generator của SRGAN được xây dựng

Nhiệm vụ của Generator SRGAN là từ ảnh LR có kích thước 𝐻 × 𝑊 × 𝐶, ta cần upscale lên ảnh HR với kích thước 𝑟𝐻 × 𝑟𝑊 × 𝐶 (𝑟 là hệ số upscale) Kiến trúc mạng Generator sẽ có 8 residual block gồm 2 kernel 3×3 theo sau bởi hàm batch normalization và hàm activation ParametricReLU (PReLU) Để upsample kích thước ảnh, SRGAN sử dụng layer PixelShuffle, mỗi layer sẽ upsample kích

Copies for internal use only in Phenikaa University thước ảnh lên gấp đôi Do đó, output của Generator sẽ gấp 2 lần so với kích thước ảnh input (hay r=2)

Mô hình Discriminator của SRGAN được xây dựng như sau:

Hình 3.12 Mô hình Discriminator của SRGAN được xây dựng

Discriminator của SRGAN chịu trách nhiệm phân biệt ảnh super-resolution do Generator sinh ra với ảnh thật Kiến trúc mạng Discriminator gồm 8 layer convolution 3×3 với số lượng channel tăng dần theo bội số của 2 từ 64 đến 512 Strided convolution được dùng để giảm kích thước ảnh sau mỗi lần tăng gấp đôi số lượng feature, 512 feature map sẽ được đưa vào 2 layer Dense rồi đến một layer linear cuối cùng để lấy ra xác suất phân biệt ảnh

Từ hai mô hình Generator và Discriminator được xây dựng như trên, ta tiến hành huấn luyện mô hình SRGAN qua 50 epochs, ta có history train như hình dưới:

Hình 3.13 Biểu đồ ghi lại quá trình huấn luyện của hai mô hình Generator và

Copies for internal use only in Phenikaa University

Kết quả và đánh giá các mô hình

Đánh giá chất lượng mô hình

Có rất nhiều thang đo dùng để đánh giá chất lượng ảnh tăng cường, trong đó có ba thang đo phổ biến nhất, đó là SSIM, PSNR và MOS

Chỉ số tương đồng về cấu trúc (Structural Similarity Index - SSIM) là một thang đo sử dụng để đánh giá sự tương đồng cấu trúc giữa hai hình ảnh Nó được sử dụng rộng rãi trong lĩnh vực xử lý hình ảnh và thị giác máy tính để đo lường mức độ tương tự giữa hình ảnh gốc và hình ảnh được xử lý hoặc nén

Hình 4.1 SSIM đo lường mức độ tương tự giữa ảnh gốc và ảnh đã xử lý

SSIM đo lường sự tương tự dựa trên ba yếu tố chính:

 Độ tương phản (Luminance Contrast): Đo sự khác biệt về độ tương phản giữa hai hình ảnh Sự tương phản cao hơn thường dẫn đến giá trị SSIM cao hơn

 Chi tiết cấu trúc (Structural Detail): Đo sự tương tự về cấu trúc của hình ảnh SSIM đánh giá sự mất mát điểm ảnh và cấu trúc so với hình ảnh gốc

Copies for internal use only in Phenikaa University

 Độ biến đổi màu sắc (Color Variation): Đo sự tương tự về sự biến đổi màu sắc giữa hai hình ảnh Thường thì sự biến đổi màu sắc nhỏ hơn sẽ dẫn đến giá trị SSIM cao hơn

Công thức tính SSIM cho hai ảnh x và y là:

 𝜇 𝑥 là giá trị trung bình của hình ảnh x

 𝜇 𝑦 là giá trị trung bình của hình ảnh y

 𝜎 𝑥 là phương sai của hình ảnh x

 𝜎 𝑦 là phương sai của hình ảnh y

 𝜎 𝑥𝑦 là ma trận hiệp phương sai giữa x và y

 𝐶 1 và 𝐶 2 là hai hằng số dùng để tránh việc chia cho 0 và điều chỉnh độ nhạy của công thức

Hằng số C thường được xác định xác định bằng:

 𝐿 là phạm vi giá trị của điểm ảnh

 𝑘 là hằng số được thiết lập một cách thường xuyên

Giá trị trung bình của hình ảnh x có kích thước MxN được xác định:

 M và N là chiều rộng và chiều cao của ảnh

 𝑥(𝑖, 𝑗) là giá trị của điểm ảnh tại hàng i và cột j của ảnh

Phương sai của hình ảnh x có kích thước MxN có công thức như sau:

Copies for internal use only in Phenikaa University

 M và N là chiều rộng và chiều cao của ảnh

 𝑥(𝑖, 𝑗) là giá trị của điểm ảnh tại hàng i và cột j của ảnh

 𝜇 𝑥 là giá trị trung bình của hình ảnh x

Kết quả của SSIM nằm trong khoảng [-1, 1], với giá trị 1 thể hiện rằng hai hình ảnh hoàn toàn giống nhau trong mọi khía cạnh cấu trúc và màu sắc Khi sử dụng công thức SSIM, các hằng số 𝐶 1 và 𝐶 2 thường được thiết lập để phù hợp với phạm vi giá trị của điểm ảnh và yêu cầu cụ thể của ứng dụng cụ thể

SSIM được sử dụng rộng rãi trong việc so sánh chất lượng hình ảnh sau khi nó đã trải qua các quá trình xử lý như nén, gắn nhiễu, hoặc cải thiện độ phân giải (super resolution) Nó giúp đánh giá mức độ thay đổi trong hình ảnh và đưa ra thông tin về mức độ bất thường trong quá trình xử lý hình ảnh

PSNR (Peak Signal-to-Noise Ratio) là một thang đo phổ biến trong lĩnh vực xử lý hình ảnh và thị giác máy tính Nó được sử dụng để đo lường mức độ nhiễu hoặc sai lệch giữa hai hình ảnh, thường là hình ảnh gốc và hình ảnh đã được xử lý hoặc nén PSNR thường được sử dụng để đánh giá chất lượng của hình ảnh sau quá trình xử lý bằng cách so sánh với hình ảnh ban đầu

Copies for internal use only in Phenikaa University

Hình 4.2 Hình ảnh với các chỉ số PSNR khác nhau, đơn vị PSNR là dB

Công thức tính PSNR được xác định:

 𝐿 là giá trị tối đa của pixel trên ảnh (255 cho hình ảnh RBG 8-bit)

 𝑀𝑆𝐸 (Mean Squared Error), là giá trị trung bình của bình phương sai lệch giữa hai hình ảnh MSE được tính như sau đối với hai hình ảnh x, y:

 𝑥(𝑖, 𝑗) là giá trị điểm ảnh tại hàng i cột j của ảnh x

 𝑦(𝑖, 𝑗) là giá trị điểm ảnh tại hàng i cột j của ảnh y Đơn vị của PSNR là Decibel Thông thường nếu PSNR >= 40 dB thì hệ thống mắt thường gần như không phân biệt được ảnh gốc và ảnh sinh ra PSNR càng cao thì chất lượng ảnh sinh càng tốt, khi 2 ảnh giống hệt nhau thì MSE=0 và PSNR đi đến vô hạn

Thang đo MOS (Mean Opinion Score) là một phương pháp được sử dụng trong lĩnh vực đánh giá chất lượng âm thanh và hình ảnh MOS được sử dụng để

Copies for internal use only in Phenikaa University đo lường và đánh giá sự hài lòng của con người đối với chất lượng của các dịch vụ hoặc sản phẩm liên quan đến âm thanh và hình ảnh, chẳng hạn như chất lượng cuộc gọi điện thoại, video streaming, codec nén âm thanh và video, chất lượng âm thanh sản phẩm điện tử, và nhiều ứng dụng khác

MOS đo lường cảm quan của người nhìn đối với chất lượng trải nghiệm của họ Điểm MOS thường được gán từ 1 đến 5, với 1 là chất lượng kém nhất và 5 là chất lượng tốt nhất MOS được tính toán bằng cách lấy ý kiến của những người sử dụng tham gia và tổng hợp thành một điểm số trung bình.

Kết quả thu được

Sau quá trình nghiên cứu và thực hiện đồ án tốt nghiệp đề tài, tôi đã thu được kết quả thực nghiệm như sau

- Kiểm thử 1 trên cả ba mô hình nghiên cứu:

Hình 4.3 Kết quả thử nghiệm 1

Copies for internal use only in Phenikaa University

 Với mô hình SRCNN, ta thu được chỉ số PSNR là 42.07, chỉ số SSIM là 0.99

 Với mô hình ESPCN, ta thu được chỉ số PSNR là 41.22, chỉ số SSIM là 0.98

 Với mô hình SRGAN, ta thu được chỉ số PSNR là 15.58, chỉ số SSIM là 0.66

- Kiểm thử 2 trên cả ba mô hình nghiên cứu:

Hình 4.4 Kết quả thử nghiệm 2

Copies for internal use only in Phenikaa University

 Với mô hình SRCNN, ta thu được chỉ số PSNR là 42.13, chỉ số SSIM là 0.99

 Với mô hình ESPCN, ta thu được chỉ số PSNR là 40.09, chỉ số SSIM là 0.98

 Với mô hình SRGAN, ta thu được chỉ số PSNR là 16.26, chỉ số SSIM là 0.66

- Kiểm thử 3 trên cả ba mô hình nghiên cứu:

Hình 4.5 Kết quả thử nghiệm 3

Copies for internal use only in Phenikaa University

 Với mô hình SRCNN, ta thu được chỉ số PSNR là 41.64, chỉ số SSIM là 0.99

 Với mô hình ESPCN, ta thu được chỉ số PSNR là 40.68, chỉ số SSIM là 0.98

 Với mô hình SRGAN, ta thu được chỉ số PSNR là 15.49, chỉ số SSIM là 0.58

- Kiểm thử 4 trên cả ba mô hình nghiên cứu:

Hình 4.6 Kết quả thử nghiệm 4

Copies for internal use only in Phenikaa University

 Với mô hình SRCNN, ta thu được chỉ số PSNR là 41.65, chỉ số SSIM là 0.99

 Với mô hình ESPCN, ta thu được chỉ số PSNR là 40.63, chỉ số SSIM là 0.97

 Với mô hình SRGAN, ta thu được chỉ số PSNR là 15.38, chỉ số SSIM là 0.53

Qua các kết quả thực nghiệm trên ba mô hình xây dựng và nghiên cứu, ta nhận thấy rằng những mô hình có mức độ phục hồi thông tin (PSNR) và mức độ phục hồi cấu trúc (SSIM) cao thì kết quả hình ảnh trả về của mô hình tương đối kém, cụ thể là mô hình SRCNN và ESPCN Ngược lại, đối với kiến trúc mô hình SRGAN cho hai chỉ số PSNR và SSIM thấp hơn cho ra hình ảnh có chất lượng tăng cường tốt hơn, do hai chỉ số PSNR và SSIM đang so sánh dựa trên hai thông tin dữ liệu ảnh đầu vào (ảnh chất lượng thấp) với dữ liệu ảnh trả về (ảnh được tăng cường) của các mô hình

Copies for internal use only in Phenikaa University

Ngày đăng: 17/07/2024, 10:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] C. Dong, C.C. Loy, K. He, X. Tang, Image Super-Resolution Using Deep Convolutional Networks, (2014).http://arxiv.org/abs/1501.00092 Link
[3] C. Janiesch, P. Zschech, K. Heinrich, Machine learning and deep learning, Electronic Markets. 31 (2021).https://doi.org/10.1007/s12525-021-00475-2 Link
[4] Z.H. Zhou, Machine Learning, 2021. https://doi.org/10.1007/978- 981-15-1967-3 Link
[5] A.A. Khan, A.A. Laghari, S.A. Awan, Machine Learning in Computer Vision: A Review, EAI Endorsed Transactions on Scalable Information Systems. 8 (2021). https://doi.org/10.4108/eai.21-4-2021.169418 Link
[6] D. Bhatt, C. Patel, H. Talsania, J. Patel, R. Vaghela, S. Pandya, K. Modi, H. Ghayvat, Cnn variants for computer vision: History, architecture, application, challenges and future scope, Electronics(Switzerland). 10 (2021).https://doi.org/10.3390/electronics10202470 Link
[2] W. Shi, J. Caballero, F. Huszár, J. Totz, A.P. Aitken, R. Bishop, D Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Mạng nơ-ron được xây dựng dựa trên noron sinh học - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.1 Mạng nơ-ron được xây dựng dựa trên noron sinh học (Trang 23)
Hình 2.2 Ví dụ về các thành phần của một mạng học sâu - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.2 Ví dụ về các thành phần của một mạng học sâu (Trang 24)
Hình 2.4 Ví dụ đơn vị tuyến tính có ba giá trị đầu vào - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.4 Ví dụ đơn vị tuyến tính có ba giá trị đầu vào (Trang 25)
Hình 2.6 Hàm chỉnh lưu max(0, x) - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.6 Hàm chỉnh lưu max(0, x) (Trang 26)
Hình 2.7 Một đơn vị tuyến tính được chỉnh lưu - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.7 Một đơn vị tuyến tính được chỉnh lưu (Trang 27)
Hình 2.10 Ví dụ về phép tích chập trong convolution layer - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.10 Ví dụ về phép tích chập trong convolution layer (Trang 29)
Hình 2.11 Ví dụ về max pooling và average pooling - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.11 Ví dụ về max pooling và average pooling (Trang 30)
Hình 2.12 Ví dụ về fully-connected layer - nghiên cứu thuật toán học sâu tăng cường chất lượng ảnh vệ tinh
Hình 2.12 Ví dụ về fully-connected layer (Trang 31)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w