XÂY DỰNG ỨNG DỤNG MINH HOA

Một phần của tài liệu Khóa luận tốt nghiệp: Ứng dụng Denoising Probabilistic Diffusion Model cho bài toán Image Inpainting (Trang 84 - 89)

Trong chương nay, chúng tôi trình bày ứng dụng web nhóm đã hiện thực

nhằm trực quan hóa tính ứng dụng của bài toán trong thực tế. Ứng dụng cho phép người dùng gửi lên ảnh, vẽ vùng cần xóa và nhận lại tam ảnh với vùng bị xóa được thay thế bằng nội dung phù hợp.

5.1 Công nghệ được sử dụng

Ung dung được chia làm 2 phan, phía người dùng chịu trách nhiệm nhận và cho phép người dùng tương tác để tạo mặt nạ ảnh cho phần bị xóa, cũng như lựa chọn các tham số liên quan, phía máy chủ nhận các yêu cầu, xử lý và trả về ảnh cho người dùng để hiện thị.

Để tạo giao diện bắt mắt, nhiều tính năng và nhanh chóng chúng tôi đã sử dụng web framework ReactJS ! kết hợp với các thư viện khác 7 nhằm cung cấp các bộ giao diện cũng như hỗ trợ xử lý ảnh đầu vào.

Phía máy chủ, chúng tôi dùng Cog Ỷ, một công cụ mã nguồn mở cho phép

'Ma nguồn dự án được đăng tải trên trang Github https: //github.com/facebook/react

?Các thư viện được dùng được mô tả trong mã nguồn ứng dụng web của nhóm được đăng

tải công khai tai https: //github.com/drakiez-t13/image-inapainting-webapp/blob/main/

package. json

3Mã nguồn dự án được đăng tải tai https: //github.com/replicate/cog

69

5. XÂY DỰNG ỨNG DỤNG MINH HOA

đóng gói các mô hình máy học trong một container tiêu chuẩn và sẵn sàng dùng trong thực tế. Một số điểm nổi bật của Cog có thể kể đến như:

* Tao container đơn giản: Chỉ cần viết một tệp config đơn giản, Cog sẽ hỗ

trợ sinh Docker image với các tùy chọn tối ưu và phù hợp nhất.

ô Giải quyết van dộ tương thớch CUDA: Cog biết cỏc tổ hợp phiờn bản CU-

DA/cuDNN/PyTorch/Tensorflow/Python tương thích với nhau hay không

và lựa chọn phù hợp.

* Định nghĩa đầu vào, dau ra đơn giản với Python: Cog sẽ sinh ra OpenAPI

schema và kiểm tra đầu vào, đầu ra với Pydantic.

ô Tự tao mỏy chủ HTTP: Cog tự tao RESTful HTTP API dựng FastAPI !.

* Tự tạo hàng đợi: Các mô hình học sâu tốn nhiều thời gian chạy hoạt động

tốt với một hàng. Cog làm điều này tự động với sự trợ giúp của Redis.

5.2 Sơ đồ tổng quan ứng dụng

Ứng dụng được chia làm 2 phần: phía người dùng, và phía máy chủ.

Ở phía người dùng, ứng dụng cho phép người dùng tải lên hình ảnh bất kỳ hoặc chụp trực tiếp từ thiết bị thu hình của thiết bị. Ảnh sau khi chụp xong có

thể được crop trực tiếp trên ứng dụng, tiếp đến người dùng có thể vẽ phần cần xóa trực tiếp lên tấm hình, va chọn các tùy chọn: mô hình sử dụng, số bước time-respacing và jump-n-sample; các tùy chọn này nhằm giúp người dùng chỉ

rõ loại nội dung cần vẽ lại để mô hình đưa ra kết quả phù hợp hơn, hai lựa chọn sau cho phép người dùng tối ưu giữa thời gian sinh ảnh và chất lượng ảnh sinh. Hiện tại ứng dụng cung cấp 3 mô hình sinh ảnh là 3 mô hình được dùng trong

bài đánh giá sử dụng ở chương 4.

!Trang chủ FastAPI https : //fastapi.tiangolo.com/

70

5. XÂY DỰNG ỨNG DỤNG MINH HOA

Ở phía máy chủ, các thông tin đã được cung cấp từ phía người dùng được sử

dụng để chạy mô hình sinh ảnh tương ứng và trả về cho người dùng. Kết quả trả

về bao gồm ảnh gốc, ảnh với phần mặt nạ ảnh được đè lên và ảnh được vẽ lại.

5.3 Giao diện ứng dụng

Giao diện ứng dụng được cài đặt phía người dùng, giúp người dùng tương

tác với hệ thống một cách trực quan hơn. Giao diện người dùng của ứng dụng được chia làm 2 phần: cột bên trái cho phép người dùng đưa ảnh đầu vào và xử

lý chúng cũng như chọn các tùy chọn phù hợp, cột bên phải là kết quả trả vẻ.

Phần đầu vào sẽ có nút chọn tương ứng cho hành động tải ảnh lên hoặc lấy ảnh từ thiết bị thu ảnh trên thiết bị người dùng, người dùng cũng có thể kéo thả

ảnh vào khu vực này để tải ảnh lên. Ảnh được tải lên/chụp sẽ được hiển thị lớn

để chờ đợi người dùng crop; cùng lúc đó, một tam ảnh hiển thị ở dưới cho phép người dùng tạo mặt nạ ảnh. Bên dưới là các tùy chọn, và nút gửi yêu cầu xử lý ảnh. Màn hình chờ sẽ hiện lên trước khi máy chủ gửi trả kết quả, các ảnh được gửi từ máy chủ sẽ hiển thị bên cột phải theo thứ tự ảnh gốc, ảnh bị che bởi mặt

nạ ảnh và ảnh sau khi vẽ lại.

71

5. XÂY DỰNG ỨNG DỤNG MINH HOA

Input Output

1

inpainted image

image

meas & Download

CelebA HQ v |

Hình 5.1: Minh họa kết quả chạy thử

5.4 Đánh gia ứng dụng

Uu điểm:

¢ Giao diện đơn giản và thân thiện với người dùng.

° Nhiều phương pháp lấy input tiện lợi: tải ảnh lên, kéo thả, qua thiết bị thu

ảnh có sẵn.

* Cho phép người dùng crop và tạo mặt na ảnh trực tiếp.

* Các tùy chọn cho phép người dùng tối ưu giữa thời gian sinh ảnh và chất

lượng ảnh sinh.

72

5. XÂY DỰNG ỨNG DỤNG MINH HOA

Nhược điểm:

* Ung dụng chưa đưa ra ước tính thời gian thực thi theo các tùy chọn.

5 Ung dụng chưa thân thiện với thiết bi di động.

ô Chưa tận dụng được phan cứng với nhiều GPU khi xử lý nhiều yờu cầu

cùng lúc.

5.5 Kết chương

Chương này đã giúp chúng tôi hiểu rõ cách xây dựng và áp dụng các mô hình máy học từ các phương pháp và thuật toán trong bài toán thực tế. Chúng tôi cũng

đã học cách sử dụng các công nghệ mới để phát triển và triển khai các ứng dụng. Chúng tôi cũng có cái nhìn rõ hơn về việc triển khai ứng dụng để duy trì và phát triển chúng trong thời gian dài.

73

Chương 6

Một phần của tài liệu Khóa luận tốt nghiệp: Ứng dụng Denoising Probabilistic Diffusion Model cho bài toán Image Inpainting (Trang 84 - 89)

Tải bản đầy đủ (PDF)

(94 trang)