đồ án 2 xây dựng ứng dụng khôi phục hình ảnh

40 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 xây dựng ứng dụng khôi phục hình ảnh

Đ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

Mọi người hướng đến những công cụ đơn giản dễ sử dụng trên điện thoại hoặc là trang web để có thể tự mình khôi khục ảnh.. ● Hiện nay muốn khôi phục hình ảnh thì người dùng có thể thông

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM

-🙚🙘🕮🙚🙘 -

BÁO CÁO ĐỒ ÁN 2: XÂY DỰNG ỨNG DỤNG

KHÔI PHỤC ẢNH IRepair

Giảng viên hướng dẫn:

Thầy Huỳnh Tuấn Anh

Sinh viên thực hiện

20520561 – Hồng Gia Hy

Tp.HCM, tháng 1 năm 2024

Trang 2

Nhận xét của giảng viên hướng dẫn

Người nhận xét

Huỳnh Tuấn Anh

Trang 3

LỜI CẢM ƠN

Để hoàn thành đồ án 2 này, em xin gửi lời cảm ơn chân thành đến:

Thầy Huỳnh Tuấn Anh đã giúp đỡ, định hướng hướng đi của đồ án, chỉ ra những thiếu

sót của đồ án nhóm em và hỗ trợ những thông tin cần thiết Đó là những góp ý hết sức quý báu cho nhóm em trong quá trình thực hiện dự án này

Trong quá trình thực hiện vì kiến thức và kinh nghiệm vẫn có hạn chế nên không thể tránh khỏi sai sót vì vậy nhóm em luôn mong muốn tiếp thu những đánh giá, góp ý và phản hồi từ giảng viên

Em chân thành cảm ơn và xin chúc thầy luôn gặp những điều may mắn

TP.HCM, 1 tháng 1 năm 2024 Sinh viên thực hiện

Hồng Gia Hy

Trang 4

TỔNG QUAN BÁO CÁOTÊN ĐỀ TÀI: Xây dựng ứng dụng khôi phục hình ảnh

GIẢNG VIÊN HƯỚNG DẪN: Huỳnh Tuấn Anh

THỜI GIAN THỰC HIỆN: Từ ngày 05/10/2023 đến hết ngày 31/12/2023.NỘI DUNG:

1 Lý do chọn đề tài

● Trong thời đại công nghệ phát triển, mọi người luôn hướng đến những công cụ hoặc những cách tiện lợi hơn trong việc xử lý hình ảnh Chính vì vậy, nhu cầu mong muốn khôi phục những bức ảnh cũ hoặc bị hư hại ngày càng gia tăng Mọi người hướng đến những công cụ đơn giản dễ sử dụng trên điện thoại hoặc là trang web để có thể tự mình khôi khục ảnh

● Hiện nay muốn khôi phục hình ảnh thì người dùng có thể thông qua nhiều cách như photoshop, chỉnh sửa thủ công hoặc sử dụng các phần mềm phức tạp để khôi phục ảnh Do đó, người dùng sẽ khá mơ hồ khi muốn tự mình sửa những tấm ảnh bị hư hại

● Cũng từng là người có mong muốn khôi phục lại những tấm ảnh cũ của gia đình, những tấm bị hỏng do nhiều tác nhân khác nhau, em hiểu rõ và tìm kiếm một giải pháp tiện lợi để biến mong muốn đó thành hiện thực Em quyết định chọn đề tài này để giúp những người muốn tự mình chỉnh sửa những hình ảnh bị hư hại một cách dễ dàng và tiện lợi hơn

Hiện trạng các trang web khôi phục ảnh hiện nay:

● Giao diện khó dùng cho những người mới tiếp xúc với thiết bị công nghệ

● Thường chỉ có một api hoặc một thuật toán khôi phục ảnh

● Thường là không miễn phí

● Chưa được tích hợp nhiều cách khôi phục cho các trường hợp ảnh hư hỏng khác nhau

Trang 5

=> Với những vấn đề trên, em quyết định lựa chọn đề tài xây dựng ứng dụng khôi phục hình ảnh để tiến hành nghiên cứu và xây dựng.

0 Mục tiêu đề ra

● Xây dựng website giải quyết các vấn đề sau:

● Có các filter để nâng cấp hình ảnh ● Xác định được những hư hại trên ảnh

● Hệ thống sẽ tự động khôi phục ảnh theo từng bộ lọc ● Trả về ảnh trước và sau khi sử lý để xem thay đổi

0 Phạm vi, quy mô

● Môi trường, platform: website

● Phạm vi chức năng:

● Nhận một bức ảnh từ trong thiết bị sau đó tiến hành xử lý và khôi phục ảnh trực tuyến trên website

o Có thể xác định những hư hại có trong ảnh

o Hiển thị kết quả sau xử lý

0 Đối tượng sử dụng: Tất cả người dùng có nhu cầu khôi phục ảnh 0 Phương pháp thực hiện:

● Phương pháp làm việc: Thực hiện dưới sự chỉ dẫn của giảng viên hướng dẫn

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

● Phân tích nhu cầu sử dụng của đối tượng người dùng

● Nghiên cứu tài liệu các công nghệ liên quan

● Kiểm tra, tham khảo các website khác để tối ưu hóa trang web

● Phương pháp công nghệ:

● Tìm hiểu về các ngôn ngữ mới và áp dụng framework vào để tối ưu hóa hiệu suất

Trang 6

● Xây dựng giao diện web để tương tác với người dùng và nhận phản hồi, sửa chữa nếu cần thiết để đưa ra sản phẩm hoàn chỉnh nhất

● Tìm hiểu cách thức hoạt động của các tính năng trang web

● Tìm hiểu các thư viện hỗ trợ cho dự án

0 Nền tảng công nghệ:

● Python

0 Kết quả mong đợi:

● Hoàn thiện được website đáp ứng đầy đủ mục tiêu đề ra

● Trang web có thể thực hiện chính xác yêu cầu của người dùng

● Trang web có khả năng tương tác với người dùng với mức độ ổn định

● Các chức năng của website hoạt động đúng đắn, chính xác, dễ sử dụng

● Thời gian thực hiện: Từ ngày 05/10/2023 đến hết ngày 31/12/2023

● Quy trình làm việc được lên kế hoạch triển khai như sau:

Giai đoạn 1 (05/10/2023 - 10/11/2023): Nghiên cứu phát triển phương thức

xác định văn bản trong 1 hình ảnh Giai đoạn này gồm 3 sprint:

o Sprint 1: Tìm hiểu công nghệ, các framework liên quan

o Sprint 2: Phân tích yêu cầu

o Sprint 3: Xây dựng ứng dụng, phát triển một số chức năng cơ bản

Giai đoạn 2 (10/11/2023 - 03/12/2023): Hoàn thiện backend và bắt đầu xây

dựng fontend Giai đoạn này gồm 2 sprint:

Trang 7

o Sprint 4: Hoàn thiện các tính năng còn đang tiến hành ở backend, tìm và sửa lỗi trong quá trình xây dựng chức năng

o Sprint 5 : Triển khai xây dựng fontend, viết báo cáo

Giai đoạn 3 (03/12/2023 - 31/12/2023) Kiểm tra lỗi và hoàn thiện sản phẩm

Giai đoạn này gồm 2 sprint:

o Sprint 6: Kiểm tra lại tổng quan sản phẩm và sửa lỗi

o Sprint 7: kiểm tra file báo cáo, chỉnh sửa hoặc thay đổi nếu có

0 Phân công công việc:

● Công việc:

● Phân tích yêu cầu

● Khảo sát trang web

● Viết báo cáo

● Nguyên cứu công nghệ, ngôn ngữ

● Xây dựng ứng dụng

Trang 8

Table of Contents

Chương 1 – TỔNG QUAN VỀ ĐỀ TÀI 9

1.1 Giới thiệu về đề tài 9

1.1.1 Sự tiện lợi của công cụ khôi phục ảnh và lí do chọn đề tài: 9

1.2 Khảo sát các ứng dụng khôi phục ảnh hiện nay: 9

1.3 Đối tượng nghiên cứu: 11

Chương 2 – CƠ SỞ LÝ THUYẾT 12

Trang 9

IRepair

Chương 1 – TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về đề tài

1.1.1 Sự tiện lợi của công cụ khôi phục ảnh và lí do chọn đề tài:

Trong thời đại ngày nay chúng ta đã quen với việc chỉnh sửa hình ảnh của bản thân, gia đình qua các ứng dụng trên điện thoại hoặc chuyên nghiệp hơn là các phần mềm photoshop trên máy tính Theo nhu cầu đó, mong muốn còn mở rộng ra sang việc khôi phục lại những tấm ảnh bị hư do nhiều tác nhân khác nhau, những tấm ảnh cũ của gia đình Và để có thể tự mình thực hiện khôi phục ảnh, người dùng đã tìm đến những ứng dụng khôi phục ảnh tự động thông qua deep learning và các thư viện thị giác máy tính

Một số ưu điểm của việc khôi phục ảnh trực tuyến có thể kể đến như sau: - Linh hoạt: Người dùng chỉ cần một chiếc điện thoại di động hoặc

laptop và chỉ với một vài thao tác, người dùng đã có thể đọc được nội dung có trong bức ảnh

- Tiện lợi: Có thể tự động khôi phục hình ảnh, người dùng không cần kiến thức sâu để thực hiện chỉnh sửa

Bởi các tiềm năng và tính tiện dụng của nó, chúng em đã chọn đề tài này với mong muốn tạo một ứng dụng giúp cho việc khôi phục ảnh dễ dàng hơn

1.2 Khảo sát các ứng dụng khôi phục ảnh hiện nay:

Hiện nay có một số trang web khôi phục ảnh được chú ý đến đó là Hotpot,PhotoBooth Các trang web vừa nêu đều dễ có giao diện thân thiện, có sự tương đồng về chức năng nhưng ngoài ra cũng có một khuyết điểm là có những

Trang 10

chức năng không cần thiết, có thể lược bỏ đi để hướng đến sự đơn giản và tiện lợi cho người dung, và không hoàn toàn miễn phí,

Trang 11

1.3 Đối tượng nghiên cứu:

Người dùng có nhu cầu khôi phục ảnh Ngôn ngữ: Python, html

Các công nghệ:

+ Flask , Open cv + gfpgan

+ Figma

Trang 12

Chương 2 – CƠ SỞ LÝ THUYẾT

2.1 Python

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển

Python có thể được xem là một ngôn ngữ có độ phổ biến cao trong ngành lập trình, nhờ vào những điểm nổi bật sau:

● Có cấu trúc code dễ đọc và dễ hiểu, dù là người mới bắt đầu ● Có tính ứng dụng rộng rãi

● Tốc độ xử lý của Python nhanh hơn PHP

● Cho phép các lập trình viên thực hiện sửa lỗi các đoạn mã một cách trực tiếp ● Sở hữu lượng lớn các khối cơ sở dữ liệu, phục vụ hiệu quả cho các chương trình

mang tính thương mại

● Nhờ có tính năng đơn giản, nên việc bảo trì các chương trình được tạo ra bởi Python cũng khá đơn giản và nhanh chóng

Trang 13

● Chứa GUI programming hỗ trợ việc hiển thị ảnh minh họa một cách sống động và chân thật

● Khi sử dụng Python, các lập trình viên có thể thoải mải thêm và tùy chỉnh các công cụ, để có thể tối đa hiệu quả trong công việc

2.2 OpenCV

OpenCV là tên viết tắt của open source computer vision library – có thể được hiểu là một thư viện nguồn mở cho máy tính Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực

OpenCV cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động real time Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác

OpenCV được cho là một phần mềm đa nhiệm Nó được ứng dụng trong rất nhiều trường hợp khác nhau Ví dụ, ta sẽ nói về các phần mềm định vị, bản đồ nói chung

Trang 14

Hẳn rằng trong chúng ta ai cũng đã có ít nhất một lần cần sử dụng đến các map online đúng không Bạn sử dụng các map để tìm đường, tra cứu tình hình giao thông hoặc đơn giản là xem xét các hình ảnh thực tế của địa điểm cần đến Những lúc như vậy, OpenCV đóng vai trò là nhà cung cấp dữ liệu hình ảnh cho các app về Map này OpenCV sẽ đem đến cho người dùng hình ảnh về đường phố hay các căn nhà, con người xung quanh địa điểm được chỉ định

OpenCV còn được dùng để khởi tạo ra những hình ảnh 3 chiều phức tạp Hoạt động này rất được yêu thích, nhất là trong thời đại trí tuệ nhân tạo AI phát triển như thế này

Đối với các công nghệ hiện đại, OpenCV cũng là một yếu tố không thể thiếu Tất cả những ứng dụng công nghệ như robot, xe tự lái, bảng cảm ứng thông minh… đều có sự góp mặt của OpenCV trong khâu xử lý hình ảnh Ví dụ gần gũi nhất trong cuộc sống có thể kể đến hệ thống mở khóa điện thoại bằng cách nhận diện khuôn mặt người dùng

2.3 Keras_OCR

Keras_OCR là gói Python mã nguồn mở cung cấp giao diện đơn giản và dễ sử dụng để nhận dạng ký tự quang học (OCR) bằng các kỹ thuật deep learning Nó được xây dựng dựa trên Keras và TensorFlow, đồng thời cung cấp quy trình OCR đầu cuối được đào tạo trước để loại bỏ văn bản khỏi hình ảnh.

2.6 Gfpgan

GFPGAN, viết tắt của cụm từ Generative Facial Prior Generative Adversarial Network, là công cụ miễn phí trên GitHub Bạn có thể tải xuống phần mềm hoặc sử dụng phiên bản trực tuyến để nâng cấp và phục hồi hình ảnh

Trang 15

Phần mềm GFPGAN hiện tại là phiên bản đề mô theo mô hình GAN - đây là mô hình sử dụng tập hợp dữ liệu để xác định các mẫu và lắp đầy vào các khoảng trống trên hình ảnh của bạn bằng thuật toán máy học và mạng thần kinh (gọi tắt là công nghệ AI)

Nói cách khác, công cụ GFPGAN sở hữu thuật toán xử lý thông minh, giúp lắp đầy các chi tiết bị hỏng hoặc bị mờ trên hình ảnh bằng các chi tiết tương tự của những bức ảnh khác giống như vậy

Trang 16

Chương 3 – PHÂN TÍCH HỆ THỐNG

3.1 Tổng quan hệ thống

Trang web Manga Translator là hệ thống giúp người dùng trong việc dịch manga, cụ thể hơn là dịch nội dung ký tự có trong những tấm ảnh Thông qua nhiều công nghệ về nhận diện, thị giác máy tính và chuyển đổi hình ảnh, trang web sẽ là công cụ đắc lực cho việc dịch manga và các tài liệu liên quan

3.2 Sơ đồ UseCase

Trang 17

3.2.1 Danh sách actor

Bảng danh sách các actor

STT Tên actor Ý nghĩa/ ghi chú

1 User Người dùng truy cập vào trang web và tiến hành khôi phục ảnh

Người dùng tiến hành chọn các filter để giúp cho hình ảnh được rõ ràng hơn

3 Xóa nội dung ký tự trong ảnh

Người dùng có thể chọn xóa các ký tự có trong ảnh

Trang 18

Điều kiện sau N/A

Dòng sự kiện chính Hiển thị màn hình bắt đầu và chọn ảnh cần khôi phục ● Người dùng truy cập trang web

Trang 19

Bảng 3.1 Đặc tả Use-case Filter nâng cấp hình ảnh

Tên Use-case Filter nâng cấp chất lượng hình ảnh

Mô tả tóm tắt Người dùng tiến hành chọn filter để nâng cấp chất lượng ảnh

Điều kiện trước Xác nhận chọn và hệ thống xử lí ảnh

Điều kiện sau N/A

Dòng sự kiện chính Hiển thị màn hình bắt đầu và chọn filter cho ảnh cần khôi phục ● Người dùng truy cập trang web

Trang 20

Bảng 3.1 Đặc tả Use-case Xóa nội dung ký tự trong ảnh

Tên Use-case Xóa nội dung ký tự trong ảnh

Mô tả tóm tắt Xóa những ký tự không mong muốn trong ảnh manga

Điều kiện trước Truy cập trang web

Điều kiện sau N/A

Dòng sự kiện chính Hiển thị màn hình lựa chọn xác nhận ảnh muốn sửa Xóa tất cả những ký tự sau khi hệ thống xử lý Lưu ảnh

Dòng sự kiện phụ

3.4 Sơ đồ Activity

Quá trình thực khôi phục ảnh bị hư hỏng:

Trang 22

Chương 4 – HIỆN THỰC HỆ THỐNG

4.1 Quá trình hệ thống hoạt động

4.1.1 Cách thức lấy và xóa văn bản ra khỏi ảnh

Để xóa văn bản khỏi hình ảnh sẽ trải qua ba bước:

● Xác định văn bản trong hình ảnh và lấy tọa độ hộp giới hạn của từng văn bản

Trang 23

● Đối với mỗi hộp giới hạn, hãy áp dụng mặt nạ để cho thuật toán biết chúng ta nên tô phần nào của hình ảnh

● Cuối cùng, áp dụng thuật toán inpainting để inpaint các vùng bị che của hình ảnh, dẫn đến hình ảnh không có văn bản, sử dụng cv2

Lấy văn bản ra từ ảnh:

- Sau khi hình ảnh được xử lý sẽ được xác định văn bản bằng những khung với tọa độ nhất định

Trang 24

Xóa văn bản ra khỏi ảnh:

- Cv2 có hai thuật toán inpainting khả dụng và cho phép áp dụng mask hình chữ nhật, hình tròn hoặc đường thẳng

- Trong trường hợp này, tôi quyết định sử dụng mặt nạ đường kẻ, vì chúng linh hoạt hơn để che văn bản theo các hướng khác nhau (mặt nạ hình chữ nhật sẽ chỉ hoạt động tốt đối với các từ song song hoặc vuông góc với trục x và mặt nạ hình tròn sẽ bao phủ một khu vực lớn hơn mức cần thiết)

- Dựa vào tọa độ đã xác định được tiến hành xóa văn bản khỏi ảnh

Một số các ví dụ cho các bước xác định và xóa văn bản khỏi ảnh:

4.1.2 Mài nhẵn cho ảnh

Làm mờ hình ảnh đề cập đến việc làm cho hình ảnh kém rõ ràng hoặc khác biệt hơn Nó được thực hiện với sự trợ giúp của nhiều hạt nhân bộ lọc khác nhau

Trang 25

Chính vì thế em sẽ sử dụng những phương thức làm mờ khác nhau có trong thư viện open cv để xử lý cho từng ảnh với mục đích khác nhau

Sơ đồ trình tự quá trình văn bản:

Các kiểu làm mờ quan trọng:

Gaussian Blurring: là kết quả của việc làm mờ hình ảnh bằng hàm Gaussian Đây là một

hiệu ứng được sử dụng rộng rãi trong phần mềm đồ họa, thường là để giảm nhiễu hình ảnh và giảm chi tiết Nó cũng được sử dụng như một giai đoạn tiền xử lý trước khi áp dụng các mô hình machine learning hoặc deep learning

Ví dụ: hạt nhân Gaussian (3 × 3)

Trang 26

Median Blur: là một kỹ thuật lọc kỹ thuật số phi tuyến tính, thường được sử dụng để loại

bỏ nhiễu khỏi hình ảnh hoặc tín hiệu Lọc trung vị được sử dụng rất rộng rãi trong xử lý ảnh kỹ thuật số vì trong những điều kiện nhất định, nó bảo toàn các cạnh trong khi loại bỏ nhiễu Đây là một trong những thuật toán tốt nhất để loại bỏ ảnh hư hại dạng hạt muối tiêu

Trang 27

Bilateral Blur: là bộ lọc làm mịn phi tuyến tính, bảo toàn cạnh và giảm nhiễu cho hình

ảnh Nó thay thế cường độ của từng pixel bằng giá trị cường độ trung bình có trọng số từ các pixel lân cận Trọng số này có thể dựa trên phân bố Gaussian Do đó, các cạnh sắc nét được bảo tồn trong khi loại bỏ những cạnh yếu

4.1.3 Gfpgan

GFP-GAN hay Generative Facial Prior là một mô hình trí tuệ nhân tạo giúp người dùng chỉnh sửa, phục hồi hình ảnh cũ, ảnh màu và trắng đen, ảnh bị rách, bị nhạt màu, bị cấn về nguyên bản hoặc tốt hơn ban đầu

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

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

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

Tài liệu liên quan