đồ án 1 photo transfer using gans

32 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 photo transfer using gans

Đ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

Đây là một bài toán hỗ trợ cho việc tùy chỉnh ảnh chụp theo các phong cách tranh vẽ của 4 họa sĩ nổi tiếng bao gồm: Monet, Cezanne, Van Gogh, Ukiyo E, nhằm phục vụ cho các mục đích sáng

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

Trương Nguyễn Phước Trí – 21521571 Hồ Thị Thanh Thảo – 21521456

ĐỒ ÁN 1

Photo Transfer using GANs

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN TẤN TRẦN MINH KHANG

TP HỒ CHÍ MINH, 2023

Trang 3

1.4 Mục tiêu và phạm vi nghiên cứu 6

1.5 Đóng góp của nghiên cứu 7

1.6 Bố cục của báo cáo 8

Trang 4

3.3 Hướng dẫn run code 26

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 27

4.1 Kết luận 27

4.2 Hướng phát triển 28

DANH MỤC HÌNH Hình 1-1 Đầu vào và đầu ra của bài toán image-to-image 2

Hình 2-1 Kiến trúc GANs – Mạng đối nghịch tạo sinh 5

Hình 2-2 Đơn giản hóa kiến trúc GANs – Mạng đối nghịch tạo sinh 6

Hình 2-3 Kết quả hình ảnh trực quan hóa 6

DANH MỤC BẢNG Bảng 2-1 Dataset và mô hình 8

Trang 5

[1] TÓM TẮT

Photo Transfer là một bài toán thuộc nhóm bài toán image-to-image sử dụng phương pháp GANs (Mạng đối nghịch tạo sinh), cụ thể ở bài toán này là CycleGANs Bộ dữ liệu của bài toán được xây dựng từ 4 bộ dữ liệu bao gồm: cezanne2photo, monet2photo, ukiyoe2photo, vangogh2photo với tổng số ảnh là 31,569 ảnh Trong đó có 27,715 ảnh train và 3,854 ảnh test Đây là một bài toán hỗ trợ cho việc tùy chỉnh ảnh chụp theo các phong cách tranh vẽ của 4 họa sĩ nổi tiếng bao gồm: Monet, Cezanne, Van Gogh, Ukiyo E, nhằm phục vụ cho các mục đích sáng tạo, cũng như nhu cầu sử dụng hình ảnh của người dùng đa lĩnh vực

Trang 6

Chương 1 MỞ ĐẦU

1.1 Động lực nghiên cứu

Từ khi điện thoại thông minh xuất hiện, việc chụp và lưu trữ hình ảnh hàng ngày đã trở thành một phần không thể thiếu trong cuộc sống của chúng ta Công nghệ di động ngày càng phát triển, mang đến cho chúng ta sự tiện lợi và linh hoạt khi ghi lại những khoảnh khắc đáng nhớ, từ những cảnh đẹp tự nhiên đến những khoảnh khắc giao thoa cuộc sống hàng ngày

Tuy nhiên, không chỉ dừng lại ở việc chụp và lưu trữ, ngày nay, việc biến những bức ảnh thành những tác phẩm ấn tượng hơn thông qua việc áp dụng các bộ lọc hình ảnh mới lạ đã trở thành một trào lưu phổ biến, đặc biệt trong cộng đồng thanh niên Việc này không chỉ giúp tạo ra những bức ảnh độc đáo mà còn là cách để thể hiện cá nhân, phong cách riêng của mỗi người thông qua việc sáng tạo và tinh tế trong việc chỉnh sửa hình ảnh

Các bộ lọc hình ảnh mới mang lại cho người dùng sự đa dạng và phong phú trong việc biến đổi ảnh, từ việc tạo ra hiệu ứng màu sắc độc đáo, đến việc áp dụng các hiệu ứng đặc biệt tạo điểm nhấn cho bức ảnh Nhờ vào sự sáng tạo của các nhà phát triển, người dùng có thể tận dụng và khám phá những tính năng mới này để làm cho bức ảnh của mình trở nên thú vị hơn, độc đáo hơn và phản ánh đúng ý nghĩa mà họ muốn chia sẻ

Tuy nhiên, việc sử dụng bộ lọc cũng đòi hỏi sự khéo léo và cảm nhận để không làm mất đi chất lượng gốc của bức ảnh Sự cân nhắc cẩn thận giữa việc tinh chỉnh và việc giữ nguyên vẹn bức ảnh gốc là điều quan trọng để không làm mất đi sự tự nhiên và ý nghĩa ban đầu của nó

Tóm lại, việc chụp ảnh và biến chúng trở nên đặc sắc hơn thông qua việc sử dụng bộ lọc hình ảnh mới là một phần không thể thiếu trong cuộc sống số hiện đại Điều này không chỉ là cách để tạo ra những bức ảnh ấn tượng mà còn là phương tiện để thể hiện sự sáng tạo và cá nhân hóa trong mỗi tác phẩm của chính mình

Trang 7

1.2 Phát biểu bài toán

Đầu vào của bài toán là một bức ảnh chụp bình thường, đầu ra là một bức ảnh đã được họa theo phong cách của họa sĩ người dùng chọn

Đầu vào Đầu ra theo phong cách Van Gogh

Hình 1-1 Đầu vào và đầu ra của bài toán image-to-image

- Claude Monet (1840-1926) là một trong những họa sĩ hàng đầu của trường phái Ấn tượng Ông được biết đến với những bức tranh phong cảnh rực rỡ, phản ánh ánh sáng và chuyển động của thiên nhiên Các tác phẩm của Monet thường được vẽ ngoài trời, và ông thường sử dụng các nét vẽ ngắn, rời rạc để thể hiện sự thay đổi của ánh sáng và bầu khí quyển

- Paul Cézanne (1839-1906) là một họa sĩ người Pháp, được coi là một trong những nhân vật quan trọng nhất trong lịch sử nghệ thuật Ông là một trong những người tiên phong của trường phái Lập thể, và các tác phẩm của ông đã cách mạng hóa cách nhìn nhận về nghệ thuật

- Vincent van Gogh (1853-1890) là một họa sĩ người Hà Lan, được coi là một trong những họa sĩ vĩ đại nhất trong lịch sử Ông là một trong những người tiên phong của trường phái Biểu hiện, và các tác phẩm của ông thường thể hiện cảm xúc mãnh liệt và sự rung động

Trang 8

- Ukiyo-e là một phong cách nghệ thuật Nhật Bản phát triển vào thế kỷ 17 Ukiyo-e thường được sử dụng để vẽ các cảnh đời thường, phong cảnh và các nhân vật nổi tiếng Ukiyo-e sử dụng các màu sắc tươi sáng và các nét vẽ đơn giản để tạo ra những hình ảnh sống động và hấp dẫn

1.3 Các thách thức

- Bộ dữ liệu tương đối lớn

- Ý tưởng ứng dụng khá mới nên chưa có nhiều nguồn tham khảo - Việc kết nối dataset với ứng dụng khá khó khăn

- Mô hình gốc cần điều chỉnh để phù hợp với ứng dụng

1.4 Mục tiêu và phạm vi nghiên cứu

Mục tiêu mà chúng tôi đặt ra cho dự án này là một hành trình thú vị và đầy tiềm năng trong việc phát triển thuật toán làm filter cho ảnh Điều này không chỉ giúp nâng cao chất lượng và sự sáng tạo trong việc chỉnh sửa hình ảnh mà còn mở ra cơ hội khám phá và áp dụng những phong cách nghệ thuật của các họa sĩ nổi tiếng như Monet, Cezanne, Van Gogh, và Ukiyo E vào việc tạo hiệu ứng filter độc đáo

Để đạt được mục tiêu này, phạm vi của dự án bao gồm nghiên cứu sâu rộng về các phương pháp và thuật toán xử lý ảnh liên quan đến việc tạo filter Chúng tôi sẽ tiến hành nghiên cứu cũng như phát triển thuật toán mới hoặc cải tiến các thuật toán hiện có để tối ưu hóa quá trình tạo ra filter với chất lượng cao và tính sáng tạo

Một phần quan trọng của dự án này là việc huấn luyện một model để thực hiện việc chuyển đổi ảnh theo các phong cách của các họa sĩ nổi tiếng mà chúng tôi đã đề ra Việc này đòi hỏi sự kết hợp giữa kiến thức chuyên môn về xử lý ảnh và sự sáng tạo trong việc tạo ra các mô hình học máy hiệu quả

Không chỉ dừng lại ở việc nghiên cứu và phát triển thuật toán, chúng tôi cũng đặt ra kế hoạch xây dựng một ứng dụng xử lý ảnh để thử nghiệm và đánh giá hiệu năng của mô hình Việc này sẽ giúp chúng tôi kiểm tra và tinh chỉnh mô hình, đảm bảo rằng thuật toán của chúng tôi không chỉ có khả năng tạo ra filter độc đáo mà còn có hiệu suất cao và thân thiện với người dùng

Trang 9

Tóm lại, dự án này không chỉ là về việc nghiên cứu và phát triển thuật toán mà còn là việc áp dụng và thử nghiệm tính hiệu quả của chúng thông qua việc xây dựng một ứng dụng thực tế Chúng tôi hy vọng rằng việc này sẽ đem lại không chỉ những bước tiến quan trọng trong lĩnh vực xử lý ảnh mà còn mở ra những cơ hội mới trong việc sáng tạo và ứng dụng của công nghệ trong nghệ thuật

1.5 Đóng góp của nghiên cứu

- Việc tận dụng khả năng biến hóa một bức ảnh theo nhiều phong cách khác nhau là một trong những điểm mạnh của ứng dụng "Artistic Lens" Việc này không chỉ đơn thuần là việc thêm bộ lọc và hiệu ứng mà còn là khai thác sức mạnh của sự sáng tạo và tùy chỉnh theo mục đích sử dụng của người dùng Việc chuyển đổi một bức ảnh từ chân dung đến cảnh thiên nhiên hoặc từ một bức ảnh chụp hàng ngày đơn giản thành một tác phẩm nghệ thuật sẽ mang đến sự mới mẻ, độc đáo và cá nhân hóa cho mỗi ấn tượng hình ảnh

- Khả năng tùy chỉnh và điều chỉnh theo mục đích sử dụng là một điểm quan trọng trong việc nâng cao sự hấp dẫn của ứng dụng Với các phong cách nghệ thuật khác nhau, người dùng có thể lựa chọn và áp dụng bộ lọc phù hợp để biến đổi hình ảnh theo mong muốn của họ Từ việc tạo ra những bức ảnh sắc nét, đậm chất nghệ thuật đến việc tạo ra ảnh có màu sắc tươi sáng, hoặc thậm chí là biến đổi chúng thành các phiên bản trừu tượng, "Artistic Lens" cho phép người dùng thể hiện sự đa dạng và sáng tạo của mình thông qua việc chỉnh sửa ảnh

- Với tiềm năng của mình, ứng dụng này không chỉ dừng lại ở việc biến đổi ảnh cho mục đích cá nhân mà còn có thể mang lại nhiều ứng dụng tiềm năng trong các lĩnh vực chuyên nghiệp Trong lĩnh vực làm phim, việc áp dụng các bộ lọc và phong cách nghệ thuật từ "Artistic Lens" có thể tạo ra các hiệu ứng đặc biệt, làm phong phú và tạo điểm nhấn cho tác phẩm điện ảnh Từ việc tạo cảm giác cổ điển, retro cho đến tạo ra một thế giới hoàn toàn mới và tưởng tượng, ứng

Trang 10

dụng này có khả năng làm giàu thêm các yếu tố thị giác và cảm xúc cho các bộ phim

- Ngoài ra, trong lĩnh vực thiết kế đồ họa, việc sử dụng "Artistic Lens" cũng mở ra một khoảng không gian sáng tạo lớn Từ việc tạo ra các hiệu ứng động lực, sức mạnh đến việc biến đổi vị trí, tỉ lệ và màu sắc của hình ảnh, ứng dụng này có thể trở thành một công cụ hữu ích để thiết kế các ấn phẩm quảng cáo, bộ nhận diện thương hiệu và nhiều tác phẩm nghệ thuật đa dạng khác

- Với khả năng linh hoạt và đa dạng trong việc biến đổi hình ảnh theo nhiều phong cách khác nhau, "Artistic Lens" không chỉ là một công cụ giải trí mà còn là một nguồn cảm hứng và công cụ sáng tạo mạnh mẽ trong nhiều lĩnh vực chuyên nghiệp Điều này làm nổi bật tiềm năng và giá trị thực tế của ứng dụng này trong cộng đồng sáng tạo và công nghiệp đa dạng ngày nay

1.6 Bố cục của báo cáo

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 2 – PHƯƠNG PHÁP: trình bày những phương pháp, thuật toán được áp

dụng trong quá trình nghiên cứu, phát triển mô hình

CHƯƠNG 3 – TRIỂN KHAI ỨNG DỤNG: trình bày quá trình phát triển và thử

nghiệm mô hình

CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: trình bày tổng kết kết

quả và tương lai của bài toán

Trang 11

Chương 2 PHƯƠNG PHÁP

2.1 Mạng đối nghịch tạo sinh

Hình 2-1 Kiến trúc GANs – Mạng đối nghịch tạo sinh

Hình 2.1 mô tả tổng quan phương pháp 1 về Mạng đối nghịch tạo sinh có tên tiếng Anh là Generative Adversarial Networks được giới thiệu vào năm 2014 bởi Ian Goodfellow GANs có khá nhiều phiên bản và trong đồ án này, chúng tôi sử dụng CycleGAN

Mạng đối nghịch tạo sinh(hay còn gọi là mạng đối nghịch phát sinh, tiếng Anh: generative adversarial network hay viết tắt GAN) là một lớp của khung (framework) học máy do Ian Goodfellow và cộng sự thiết kế vào năm 2014 GAN chứa hai mạng thần kinh (mạng phân biệt và mạng tạo sinh) cạnh tranh lẫn nhau trong một trò chơi (ở dạng một trò chơi có tổng bằng không, trong đó bên thắng sẽ chiếm phần của bên thua, hay nói cách khác là bên thua sẽ bị mất phần cho bên thắng)

Cho một tập huấn luyện, kỹ thuật này học cách tạo ra dữ liệu mới với cùng chỉ số thống kê như tập huấn luyện Ví dụ, một mạng đối nghịch tạo sinh (GAN) huấn luyện các bức ảnh để có thể tạo ra các ảnh mới mà ít nhất nhìn từ bề ngoài là chân thực đối

Trang 12

với những người quan sát, chứa nhiều đặc tính thực tế Mặc dù ban đầu được đề xuất dưới dạng một hình thức mô hình tạo sinh (mô hình phát sinh) cho phương pháp học không có giám sát, GAN cũng được chứng minh là hữu ích cho học nửa giám sát, học có giám sát đầy đủ,và học tăng cường

Ý tưởng cơ bản của GAN dựa trên sự huấn luyện "gián tiếp" thông qua bộ phân biệt (discriminator), mà bản thân nó cũng đang được cập nhật động.Về cơ bản, điều này có nghĩa là bộ tạo sinh (generator) không được đào tạo để giảm thiểu khoảng cách đến một hình ảnh cụ thể, hơn là để đánh lừa bộ phân biệt Do đó, điều này cho phép mô hình học theo cách không bị giám sát

Các mạng GAN tương tự bắt chước trong sinh học tiến hóa, với một sự chạy đua tiến hóa ở cả hai bộ, bộ phân biệt và bộ tạo sinh

Hình 2-2 Đơn giản hóa kiến trúc GANs – Mạng đối nghịch tạo sinh

2.2 CycleGANs

CycleGAN được giới thiệu bởi Zhu et al vào năm 2017, cho phép chuyển đổi hình ảnh giữa hai miền không giống nhau mà không cần cặp dữ liệu huấn luyện tương ứng Thay vì cần cặp dữ liệu tương ứng giữa hai miền, CycleGAN tập trung vào việc xây dựng một mô hình có khả năng ánh xạ từ miền A sang miền B và ngược lại thông qua hai mạng tạo sinh và hai mạng phân biệt

CycleGAN được tạo ra với mục đích sử dụng sự tương quan giữa hai chuỗi ánh xạ ngược lại (A->B->A và B->A->B) để đảm bảo tính nhất quán giữa hai miền dữ liệu Có nghĩa là mô hình sẽ học cách tạo ra một biểu diễn tương tự cho cùng một đối tượng trong hai miền dữ liệu khác nhau

Trang 13

CycleGAN được thiết kế dựa trên Generative Adversarial Network (GAN) Kiến trúc GAN là một cách tiếp cận để huấn luyện một mô hình sinh ảnh bao gồm hai mạng neural: một mạng generator và một mạng discriminator Generator sử dụng một vector ngẫu nhiên lấy từ latent space làm đầu vào và tạo ra hình ảnh mới và Discriminator lấy một bức ảnh làm đầu vào và dự đoán xem nó là thật (lấy từ dataset) hay giả (được tạo ra bởi generator) Cả hai mô hình sẽ thi đấu với nhau, Generator sẽ được huấn luyện để sinh ảnh có thể đánh lừa Discriminator và Discriminator sẽ được huấn luyện để phân biệt tốt hơn hình ảnh được tạo

Generator đầu tiên gọi là G, nhận đầu vào là ảnh từ domain X (ngựa vằn) và convert nó sang domain Y (ngựa thường) Generator còn lại gọi là Y, có nhiệm vụ convert ảnh từ domain Y sang X Mỗi mạng Generator có 1 Discriminator tương ứng với nó

Hình 2-3 Kết quả hình ảnh trực quan hóa

2.3 Mô hình

Link source code, dataset, model: pytorch-CycleGAN-and-pix2pix

Ứng dụng được phát triển với 4 mô hình có sẵn tương ứng với 4 bộ dữ liệu trong Bảng 2-1:

Trang 14

STT Dataset

Số lượng

Tổng Train

A

Train B

Test A

Test B

1 cezanne2photo 526 6,288 59 752 7,625

2 monet2photo 1,073 6,288 122 752 8,235 3 ukiyoe2photo 563 6,288 264 752 7,867 4 vangogh2photo 401 6,288 401 752 7,842 Tổng: 31,569 Bảng 2-1 Dataset và mô hình

Trong mỗi bộ dữ liệu trong Bảng 2-1:

− Tập Train A sẽ chứa các hình vẽ có phong cách tương ứng với bộ dữ liệu dùng để đào tạo mô hình

− Tập Train B sẽ chứa các hình ảnh bình thường dùng để đào tạo mô hình − Tập Test A sẽ chứa các hình vẽ có phong cách tương ứng với bộ dữ liệu dùng

để khi thực nghiệm mô hình trên tập Test A thì các hình vẽ có phong cách tương ứng với bộ dữ liệu trong tập này sẽ được chuyển thành các hình ảnh bình thường tương ứng

− Tập Test B sẽ chứa các hình ảnh bình thường dùng để khi thực nghiệm mô hình trên tập Test B thì các hình ảnh bình thường này sẽ được chuyển thành các hình vẽ có phong cách tương ứng với bộ dữ liệu tương ứng

Trang 15

Chương 3 TRIỂN KHAI ỨNG DỤNG 3.1 Thiết kế

Việc tập trung vào khả năng tương thích với thiết bị di động hoàn toàn phù hợp với việc sử dụng điện thoại thông minh phổ biến trong bối cảnh kỹ thuật số ngày nay Quyết định này nhấn mạnh sự hiểu biết về sở thích và hành vi của người dùng, thừa nhận sự phụ thuộc rộng rãi vào thiết bị di động cho nhiều tác vụ khác nhau, bao gồm chỉnh sửa ảnh và sử dụng ứng dụng

Khả năng tương thích với thiết bị di động đảm bảo rằng ứng dụng của bạn có thể tích hợp liền mạch vào cuộc sống hàng ngày của người dùng, tận dụng sự quen thuộc và tiện lợi của điện thoại thông minh Cách tiếp cận này phục vụ cho tính chất thường xuyên di chuyển của người dùng, cho phép họ tương tác với các tính năng chuyển đổi từ ảnh sang tranh vẽ một cách thuận tiện từ thiết bị cầm tay của họ

Hơn nữa, việc phù hợp với sự phổ biến của công nghệ di động sẽ khuếch đại khả năng truy cập ứng dụng của bạn Nó cho phép phạm vi tiếp cận rộng hơn, khai thác cơ sở người dùng lớn hơn, chủ yếu tương tác với các dịch vụ kỹ thuật số thông qua điện thoại thông minh của họ

Cuối cùng, việc ưu tiên khả năng tương thích với thiết bị di động phản ánh nhận thức sâu sắc về sở thích và hành vi của người dùng, nâng cao khả năng truy cập và sự tiện lợi, đồng thời định vị ứng dụng của bạn để phục vụ hiệu quả cho nhiều đối tượng người dùng trong thế giới tập trung vào thiết bị di động ngày nay

3.1.1 Công nghệ sử dụng

- Front-end: React Native (Ngôn ngữ lập trình JavaScript)

o React Native là một framework mã nguồn mở được sử dụng để phát triển ứng dụng di động đa nền tảng Nó sử dụng ngôn ngữ lập trình JavaScript để tạo ra các ứng dụng di động trên các hệ điều hành iOS và Android với một cơ sở mã duy nhất

Trang 16

o React Native sử dụng thư viện React JavaScript để xây dựng các giao diện ứng dụng cực nhanh và đáp ứng nhiều nhu cầu Ngoài ra, framework này có khả năng kết xuất tuyệt vời và sử dụng cách tiếp cận dựa trên thành phần giúp dễ dàng tạo ra các ứng dụng với giao diện người dùng đơn giản, hoặc phức tạp

o Một số tính năng nổi bật của React Native bao gồm:

▪ Tái sử dụng mã: React Native cho phép bạn tái sử dụng tới 90% mã nguồn giữa các ứng dụng iOS và Android, giúp tiết kiệm thời gian và chi phí phát triển

80-▪ Tính năng đáp ứng: React Native sử dụng các thành phần dựa trên Flexbox, giúp các ứng dụng của bạn có thể thích ứng với các kích thước màn hình khác nhau

▪ Khả năng kết nối với API gốc: React Native cho phép bạn kết nối các ứng dụng của mình với các API gốc của hệ điều hành, giúp bạn truy cập các tính năng và dữ liệu hệ thống

o React Native là một lựa chọn phổ biến cho các nhà phát triển ứng dụng di động Nó là một framework mạnh mẽ và linh hoạt, có thể được sử dụng để tạo ra các ứng dụng chất lượng cao cho cả iOS và Android o Một số ứng dụng nổi tiếng được xây dựng bằng React Native bao gồm:

▪ Facebook ▪ Instagram ▪ Airbnb ▪ Uber ▪ Walmart

o Nếu bạn đang tìm kiếm một framework để phát triển ứng dụng di động đa nền tảng, React Native là một lựa chọn tuyệt vời

o JavaScript là một ngôn ngữ lập trình phổ biến được sử dụng chủ yếu để làm việc trên trình duyệt web Nó được sử dụng để thêm các tính năng tương tác động đến trang web, làm cho trải nghiệm người dùng trở nên

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan