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