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

đồ án 1 tạo mô tả bằng tiếng anh

40 1 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 đề Đồ Án 1 Tạo Mô Tả Bằng Tiếng Anh
Tác giả Nguyễn Tuấn Khang
Người hướng dẫn TS. Nguyễn Duy Khánh
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại đồ án
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 40
Dung lượng 1,11 MB

Cấu trúc

  • Chương 1. MỞ ĐẦU (9)
    • 1.1. Đông lực nghiên cứu (9)
    • 1.2. Mục tiêu của đề tài (10)
    • 1.3. Công nghệ và phạm vi (11)
    • 1.4. Đóng góp của nghiên cứu (12)
    • 1.5. Bố cục của báo cáo (13)
  • Chương 2. CƠ SỞ LÝ THUYẾT (13)
    • 2.1. Bộ dữ liệu (14)
    • 2.2. Phương thức huấn luyện (14)
    • 2.3. Tổng quan về React-native (16)
    • 2.4. Tổng quan về Visual Studio Code (17)
    • 2.5. Tổng quan về Docker (17)
    • 2.6. Tổng quan về Amazon Web Services (AWS) (17)
    • 2.7. Tổng quan về backend server (19)
      • 2.7.1. Mô tả tổng quan về backend server (19)
      • 2.7.2. Công nghệ và framework sử dụng (20)
      • 2.7.3. Kiến trúc backend và các API, endpoints (21)
      • 2.7.4. Xử lí dữ liệu (21)
      • 2.7.5. Tương tác với client (22)
  • Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG (23)
    • 3.1. Khảo sát hiện trạng (23)
      • 3.1.1. Mục đích khảo sát hiện trạng (23)
      • 3.1.2. Thực trạng hiện nay (23)
    • 3.2. Xây dựng hệ thống (24)
      • 3.2.1. Công nghệ sử dụng (24)
      • 3.2.2. Sơ đồ Use case (25)
      • 3.2.3. Mô tả Use case (25)
      • 3.2.4. Đặc tả Use case (26)
      • 3.2.5. Sơ đồ Activity (28)
  • Chương 4. CÀI ĐẶT ỨNG DỤNG (29)
    • 4.1. Một số giao diện trang người dùng (29)
      • 4.1.1. Màn hình chính (29)
      • 4.1.2. Màn hình hiển thị câu mô tả (30)
      • 4.1.3. Màn hình hiển thị tác vụ (31)
      • 4.1.4. Màn hình hiển thị thông tin (32)
      • 4.1.5. Màn hình hiển thị thống kê về thuật toán (33)
      • 4.1.6. Màn hình so sánh các thuật toán (34)
    • 4.2. Cài đặt người dùng (35)
    • 4.3. Cài đặt dành cho developers (36)
      • 4.3.1. Font-End (36)
      • 4.3.2. Back-End (36)
  • Chương 5. KẾT LUẬN (38)
    • 5.1. Đánh giá (38)
      • 5.1.1. Thuận lợi (38)
      • 5.1.2. Khó khăn (38)

Nội dung

Mô hình tự động tạo ra mô tả chính xác và nhanh chóng; Hỗ trợ khả năng thị giác, ứng dụng giúp người dùng với khả năng thị giác yếu hoặc khó khăn trong việc mô tả hình ảnh; Tăng tính sán

CƠ SỞ LÝ THUYẾT

Bộ dữ liệu

Tên bộ dữ liệu : Microsoft COCO Caption

Tổng quan về bộ dữ liệu : tập dữ liệu sẽ có hơn 1.500.000 chú thích mô tả hơn 330.000 hình ảnh Đối với mỗi hình ảnh đào tạo sẽ có năm caption độc lập với nhau do con người tạo ra Để đảm bảo tính nhất quán trong việc đánh giá các thuật toán tạo phụ đề tự động, một máy chủ đánh giá đã được sử dụng Máy chủ đánh giá nhận phụ đề ứng viên và cho điểm chúng bằng một số chỉ số phổ biến, bao gồm BLEU, METEOR, ROUGE và CIDer.

Phương thức huấn luyện

Model được đào tạo bằng một mô hình đào tạo trước đa phương thức chung là OFA (One For All)

OFA (One-For-All) là một mô hình đào tạo trước đa phương thức chung, sử dụng khung học tập theo trình tự đơn giản để thống nhất các phương thức (đa phương thức, hình ảnh, ngôn ngữ, v.v.) và các nhiệm vụ (chẳng hạn như tạo hình ảnh, định vị trực quan, v.v.), mô tả ảnh, phân loại ảnh, tạo văn bản, v.v.)

OFA đã thành công đứng đầu danh sách chính thức của Microsoft COCO Captions và đạt được số điểm CIDer 154,9 trong bộ kiểm tra cổ điển phân tách kiểm tra Karpathy chi tiết như sau:

Hình 2 Bảng điểm kết của của OFA [1]

Tiền xử lý đa phương thức: Phương pháp thông thường cho việc tiền xử lý đa phương thức là huấn luyện mô hình Transformer trên các bộ dữ liệu ảnh-văn bản quy mô lớn Điều này đòi hỏi tiền xử lý dữ liệu hoặc các bộ chuyển đổi riêng biệt cho từng phương thức để kết hợp huấn luyện cả thông tin hình ảnh và ngôn ngữ trong kiến trúc Transformer

Hình 3 Kiến trúc mô hình OFA [1][3]

Trích xuất đặc trưng hình ảnh: Thay vì trích xuất đặc trưng phức tạp từ đối tượng, phương pháp của chúng ta tập trung vào sự đơn giản Chúng ta sử dụng các mô-đun ResNet để biến đổi ma trận đặc trưng hình ảnh, biểu diễn là xv ∈ R H×W×C, thành P đặc trưng patch có kích thước ẩn

Xử lý thông tin ngôn ngữ: Đối với việc xử lý thông tin ngôn ngữ, chúng ta áp dụng phương pháp được sử dụng bởi GPT và BART Chúng ta sử dụng mã hóa byte- pair (BPE) cho chuỗi văn bản đã cho, và sau đó nhúng các mã subword thành các đặc trưng

Biểu diễn không gian thống nhất: Để xử lý hiệu quả các phương thức đa dạng mà không cần dựa vào kiến trúc đầu ra cụ thể cho từng nhiệm vụ, việc biểu diễn dữ liệu từ các phương thức khác nhau trong không gian thống nhất là điều quan trọng Một cách tiếp cận khả thi là rời rạc hóa văn bản, hình ảnh và đối tượng, và biểu diễn chúng bằng cách sử dụng các mã từ bộ từ vựng thống nhất Các tiến bộ gần đây trong

8 việc rời rạc hóa hình ảnh đã chứng minh hiệu quả trong tổng hợp văn bản thành hình ảnh Chúng ta sử dụng chiến lược này cho việc biểu diễn hình ảnh, sử dụng mã hóa thưa để giảm độ dài chuỗi biểu diễn hình ảnh

Biểu diễn đối tượng: Ngoài việc biểu diễn hình ảnh, cũng quan trọng là biểu diễn các đối tượng trong hình ảnh, đặc biệt là cho các nhiệm vụ liên quan đến vùng Chúng ta biểu diễn các đối tượng như các chuỗi mã token rời rạc Cụ thể, đối với mỗi đối tượng, chúng ta trích xuất nhãn và hộp giới hạn của nó Các tọa độ góc liên tục (trên cùng bên trái và dưới cùng bên phải) của hộp giới hạn được rời rạc thành các số nguyên là các token vị trí ⟨x1, y1, x2, y2⟩ Nhãn đối tượng, vốn là ngôn ngữ, có thể được biểu diễn hiệu quả bằng mã token BPE

Tổng quan về React-native

React Native [4] là một framework phát triển ứng dụng di động đa nền tảng sử dụng JavaScript, giúp bạn xây dựng giao diện người dùng tương tác trên cả iOS và Android Với React Native, bạn có thể tạo giao diện linh hoạt cho ứng dụng đề xuất phim, hiển thị danh sách phim, chi tiết phim, hình ảnh và video Bạn có thể tương tác với API phim để lấy thông tin phim và hiển thị nó trên ứng dụng của mình

Bên cạnh đó, React Native cung cấp khả năng tích hợp Firebase và hỗ trợ các thư viện và công cụ mở rộng cho ứng dụng của bạn Ví dụ, bạn có thể sử dụng React Navigation để quản lý điều hướng giữa các màn hình, Redux để quản lý trạng thái ứng dụng và Axios để tương tác với API Điều này giúp bạn xây dựng một ứng dụng đề xuất phim đa nền tảng, linh hoạt và có hiệu năng tốt

Tóm lại, React Native là một công cụ mạnh mẽ để xây dựng ứng dụng đề xuất phim đa nền tảng Nó cho phép bạn tạo giao diện tương tác, tích hợp dữ liệu từ API phim, quản lý người dùng và sử dụng các thư viện mở rộng để tăng cường tính năng của ứng dụng

Tổng quan về Visual Studio Code

Visual Studio Code (VS Code) [6] là một trình biên tập mã nguồn mở và miễn phí phát triển bởi Microsoft Nó cung cấp một môi trường phát triển tích hợp (IDE) mạnh mẽ với nhiều tính năng hỗ trợ lập trình viên, như gợi ý mã, kiểm tra lỗi, gỡ lỗi, quản lý phiên bản và tích hợp các công cụ phát triển phổ biến như Git VS Code hỗ trợ nhiều ngôn ngữ lập trình và khả năng mở rộng thông qua các tiện ích và tiện ích mở rộng của cộng đồng.

Tổng quan về Docker

Docker [5] là một nền tảng phần mềm cho việc đóng gói và chạy ứng dụng trong một môi trường ảo hóa gọn nhẹ gọi là container Container cho phép bạn đóng gói tất cả các thành phần cần thiết cho ứng dụng vào một hình ảnh duy nhất, bao gồm cả các phụ thuộc và cấu hình hệ thống Điều này giúp đảm bảo tính nhất quán và di động cho ứng dụng khi chạy trên các môi trường khác nhau Docker cung cấp cách tiếp cận chuẩn hóa và dễ dàng triển khai ứng dụng trên nền tảng điện toán đám mây và môi trường sản xuất.

Tổng quan về Amazon Web Services (AWS)

Amazon Web Services [7] đem đến các dịch vụ điện toán đám mây tin cậy, quy mô linh hoạt và ít tốn kém Tham gia miễn phí, chỉ trả phí cho những gì bạn sử dụng

Amazon Web Services là tập hợp các dịch vụ cung cấp cho người lập trình có khả năng truy cập tới hạ tầng kiến trúc tính toán kiểu sẵn sàng-để-sử dụng (ready-to- use) của Amazon Các máy tính có nền tảng vững chắc đã được xây dựng và tinh chế qua nhiều năm của Amazon bây giờ là có thể cho phép bất cứ ai cũng có quyền cập tới Internet Amazon cung cấp một số dịch vụ Web nhưng trong loạt bài viết này chỉ tập trung vào các dịch vụ khối hợp nhất (building-block) cơ bản, cái mà đáp ứng được một số yêu cầu cốt lõi của hầu hết các hệ thống như: lưu trữ, tính toán, truyền thông điệp và tập dữ liệu

Amazon Web Services (AWS) dịch vụ điện toán đám mây, mà là an toàn nhất và đáng tin cậy

Amazon Web Services (AWS) cung cấp một cơ sở hạ tầng ổn định trực tiếp đến các trung tâm mua sắm lớn nhất (Trung tâm Mua sắm tại Amazon) đã được chứng minh trên thế giới

Amazon Web Services (AWS) cung cấp khả năng mở rộng nhanh chóng và dễ dàng

Amazon Web Services (AWS) để cung cấp một nền tảng để giảm chi phí bằng cách chỉ sử dụng

Amazon Web Services (AWS) có thể được sử dụng mà không trả tốt chỉ về chi phí hoặc dài hạn

Thông thường chúng ta mua các dịch vụ về Hosting để thiết lập và “chạy” ứng dụng của mình trên các hosting truyền thống Họ cung cấp các rất nhiều tính năng và quản trị dễ dàng qua các cpanel, ftp, ssh Có nhiều gói khác nhau (giá cả cũng khác nhau) bao gồm cả shared host và dedicated service Các tuỳ chọn này phù hợp với các ứng dụng và dịch vụ cỡ nhỏ, không dễ dàng mở rộng và cũng rất bó buộc trong các giới hạn nhà dịch vụ cung cấp

AWS giúp chúng ta không cần thiết quan tâm đến việc thiết lập cả 1 hạ tầng từ phần cứng, mạng máy tính (rất mất thời gian) đến chi phí thuê Data Center, và dĩ nhiên tối thiểu hoá chi phí duy trì (maintenance) TD đơn giản, trong môi trường truyền thống, chúng ta cần phải quản lý và chăm sóc các rack các máy chủ với chi phí đắt đỏ; chúng ta có thể “quên đi” chuyện phải mua và thay thế RAM hoặc ổ cứng (bất kể loại gì) và dĩ nhiên tiết kiệm được chi phí về nhân lực Hơn nữa, khi cần cấu hình mạnh hơn, việc nâng cấp sẽ rất dễ dàng và rất nhanh chóng mà người quản trị không cần đi đến data center và cũng không cần quan tâm đến phần cứng

AWS giúp chúng ta đơn giản hoá việc quản trị Private Cloud và máy ảo (VSphere…) được thiết lập trên các máy tính cỡ bự Blade và đằng sau 1 mớ rối rắm các thiết lập nêu trên với các thiết bị Firewall, SAN, Load Balancer…

Elastic computing with Amazon EC2:

Amazon EC2 là dịch vụ Web cho phép bạn yêu cầu các máy ảo trong vòng một vài phút và dễ dàng thay đổi khả năng của bạn hoặc tải xuống dựa trên nhu cầu Bạn chỉ cần phải trả chi phí cho khoảng thời gian mà bạn sử dụng Nếu bạn muốn tăng khả năng tính toán của bạn nên, bạn có thể nhanh chóng tiếp cận khởi tạo máy áo và sau đó chấm dứt chúng khi mà nhu cầu của bạn giảm đi

Những trường hợp mà dựa trên Linux® và có thể chạy trên bất kỳ ứng dụng nào hoặc phần mềm nào bạn muốn Bạn có thực hiện điều khiển cho từng trường hợp cụ thể Môi trường của EC2 là được xây dựng trên cùng mã nguồn mở Xen hypervisor, cái được phát triển tại trường Đại học Cambridge Amazon cho phép bạn tạo ra hình ảnh máy Amazon (AMIs) cái thực hiện hành động như là các khuôn mẫu cho các ví dụ của bạn Truy cập với các ví dụ có thể được điều khiển bằng việc xác định được các quyền cho phép Bạn cũng có thể làm bất cứ cái gì bạn muốn với chúng tuy chỉ có một hạn chế duy nhất là yêu cầu bạn cần sử dụng dựa trên Linux.

Tổng quan về backend server

2.7.1 Mô tả tổng quan về backend server

Backend server của dự án được viết bằng ngôn ngữ Python để xử lý và đưa ra kết quả thông qua API Chức năng chính của server là nhận một bức ảnh từ client và trả về một dòng caption mô tả về bức ảnh đó

Chúng tôi sử dụng một model Image Captioning được cung cấp sẵn bởi OFA (One For All) và tích hợp vào server Để thực hiện việc này, chúng tôi sử dụng thư viện modelscope có sẵn trong ngôn ngữ Python Qua đó, chúng tôi đã lựa chọn Python làm ngôn ngữ chính để viết mã cho server

Khi client gọi API và gửi một bức ảnh, backend server sẽ nhận được bức ảnh đó và tiến hành xử lý Sau quá trình xử lý, server sẽ trả về một câu caption mô tả cho bức ảnh tương ứng Để đóng gói và triển khai backend server lên một máy chủ trong môi trường AWS EC2, chúng tôi sử dụng Docker Docker là một nền tảng ảo hóa dựa trên container, cho phép chúng tôi đóng gói ứng dụng và các thành phần liên quan thành các container độc lập Việc sử dụng Docker giúp đơn giản hóa quy trình triển khai và đảm bảo tính nhất quán giữa môi trường phát triển và môi trường triển khai

Sau khi tạo và đóng gói ứng dụng vào các container Docker, chúng tôi triển khai backend server lên một máy chủ EC2 trong AWS EC2 (Elastic Compute Cloud) cung cấp một môi trường linh hoạt để chạy các ứng dụng web và các dịch vụ khác trên đám mây Việc triển khai backend server trên EC2 cho phép chúng tôi có sẵn nguồn tài nguyên mạnh mẽ và có khả năng mở rộng khi cần thiết

2.7.2 Công nghệ và framework sử dụng

Trong quá trình phát triển phần mềm Image Captioning, chúng tôi đã sử dụng các công nghệ và framework sau trong phần backend: a) Flask [9]: Flask là một framework phát triển ứng dụng web được viết bằng ngôn ngữ Python Chúng tôi đã sử dụng Flask để xây dựng backend của ứng dụng Flask cung cấp các công cụ và thư viện hỗ trợ cho việc xây dựng các API và xử lý các yêu cầu từ phía người dùng b) Python: Ngôn ngữ lập trình Python đã được sử dụng trong toàn bộ quá trình phát triển backend của phần mềm Image Captioning Python cung cấp một hệ sinh thái phong phú của các thư viện và công cụ hỗ trợ cho xử lý ảnh, học máy, và xử lý ngôn ngữ tự nhiên Chúng tôi đã sử dụng Python để triển khai các thuật toán và mô hình cho việc tạo chú thích cho ảnh c) modelscope [2]: Một thư viện hỗ trợ sử dụng model OFA_Image-Caption OFA (One-For-All) là một mô hình đào tạo trước đa phương thức chung, sử dụng

13 khung học tập theo trình tự đơn giản để thống nhất các phương thức (đa phương thức, hình ảnh, ngôn ngữ, v.v.) và các nhiệm vụ (chẳng hạn như tạo hình ảnh, định vị trực quan, v.v.), mô tả ảnh, phân loại ảnh, tạo văn bản, v.v.)

2.7.3 Kiến trúc backend và các API, endpoints

Trong phần mềm Image Captioning, chúng tôi đã tạo ra API và endpoint để giao tiếp với backend server Dưới đây là mô tả về API và endpoint mà chúng tôi đã triển khai:

Url: https://khangnt.space/predict

Mô tả: Endpoint này được sử dụng để gửi một bức ảnh từ client đến server và nhận lại một câu caption mô tả cho bức ảnh tương ứng

Body request: Bức ảnh được gửi dưới dạng multipart/form-data

Body response: Câu caption mô tả bức ảnh

Việc triển khai các API và endpoints này giúp chúng tôi xây dựng một giao diện giữa frontend và backend, cho phép client gửi yêu cầu và nhận kết quả từ server Qua đó, người dùng có thể tận dụng chức năng tạo chú thích cho ảnh thông qua giao diện gọn nhẹ và dễ sử dụng

Trong phần mềm Image Captioning, chúng tôi thực hiện các bước xử lý dữ liệu sau khi nhận được bức ảnh từ client: a) Nhận dữ liệu: Backend server nhận được bức ảnh từ client thông qua API và endpoints đã mô tả ở phần trước b) Tiền xử lý dữ liệu: Bức ảnh được tiền xử lý để phù hợp với mô hình Image Captioning Điều này có thể bao gồm việc thay đổi kích thước ảnh, chuẩn hóa giá trị pixel, và chuyển đổi ảnh thành định dạng phù hợp cho mô hình

14 c) Gửi dữ liệu cho mô hình: Bức ảnh sau khi được tiền xử lý được gửi vào mô hình Image Captioning sử dụng thư viện modelscope Mô hình sẽ xử lý ảnh và đưa ra một câu caption mô tả

Backend server tương tác với phía client thông qua API và endpoints để trao đổi dữ liệu và kết quả Quá trình tương tác này bao gồm: a) Gửi yêu cầu: Client gửi yêu cầu thông qua API, chẳng hạn như gửi một bức ảnh để tạo chú thích b) Nhận kết quả: Backend server xử lý yêu cầu và trả về kết quả cho client thông qua API và endpoints Với phần mềm Image Captioning, kết quả là một câu caption mô tả cho bức ảnh c) Hiển thị kết quả: Client nhận kết quả từ backend server và hiển thị câu caption mô tả cho người dùng Kết quả có thể được hiển thị trên giao diện người dùng, website, hoặc ứng dụng di động

Qua quá trình tương tác này, phía client và backend server có thể giao tiếp và làm việc cùng nhau để cung cấp chức năng Image Captioning cho người dùng một cách trơn tru và hiệu quả

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Khảo sát hiện trạng

Đây là phần khởi đầu cho quá trình phát triển hệ thống, khảo sát hiện trạng giúp làm quen, hiểu rõ cách thức, phương thức hoạt động và thâm nhập vào chuyên môn nghiệp vụ của hệ thống đó, nhằm đáp ứng, tìm hiểu các nhu cầu đặt ra với hệ thống, tập hợp các thông tin cần thiết để xây dựng hệ thống giúp chúng ta dễ dàng hơn trong việc phân tích và thiết kế hệ thống cơ sở dữ liệu hiệu quả

3.1.1 Mục đích khảo sát hiện trạng

Khảo sát hiện trạng nhằm tiếp cận nghiệp vụ chuyên môn, môi trường hoạt động của hệ thống, chức năng, nhiệm vụ và cách thức hoạt động, nâng cấp các chức năng phù hợp và loại bỏ các chức năng không cần thiết hoặc thừa thãi Ngoài ra khảo sát hiện trạng còn nhằm thu thập yêu cầu của người dùng để bổ sung thêm chức năng còn thiếu cho hệ thống, góp phần làm hệ thống thêm hoàn hỏa và chuyên nghiệp hơn, dễ dàng tiếp xúc và thao tác làm việc

Thực trạng hiện nay là việc sử dụng ứng dụng di động với khả năng gắn mô hình Miêu tả Hình ảnh đang trở nên ngày càng phổ biến và quan trọng Cùng với sự phát triển nhanh chóng của công nghệ hình ảnh và trí tuệ nhân tạo, việc tận dụng ứng dụng điện thoại để tự động tạo mô tả cho hình ảnh mang lại nhiều lợi ích rõ ràng cho người dùng và các ngành công nghiệp khác nhau

Lý do sử dụng ứng dụng gắn mô hình Miêu tả Hình ảnh:

Tự động hóa quá trình: Sử dụng ứng dụng với mô hình Miêu tả Hình ảnh giúp tự động hóa quá trình tạo mô tả, tiết kiệm thời gian và công sức so với việc viết mô tả thủ công cho từng bức ảnh

16 Độ chính xác cao: Mô hình dựa trên trí tuệ nhân tạo có khả năng nhận biết và mô tả các chi tiết chính xác trong hình ảnh, giúp đảm bảo rằng mô tả tạo ra là đầy đủ và chính xác

Hỗ trợ đa dạng ngành công nghiệp: Sử dụng ứng dụng điện thoại với mô hình Miêu tả Hình ảnh có thể áp dụng trong nhiều ngành, bao gồm giáo dục, y tế, quảng cáo, thương mại điện tử và nhiều lĩnh vực khác

Dễ dàng sử dụng: Ứng dụng gắn mô hình Miêu tả Hình ảnh thường thiết kế đơn giản và thân thiện với người dùng, đảm bảo rằng người dùng có thể dễ dàng tạo mô tả cho hình ảnh mà không cần có kiến thức chuyên sâu về trí tuệ nhân tạo

Tóm lại, việc sử dụng ứng dụng di động với mô hình Miêu tả Hình ảnh mang lại nhiều lợi ích thực sự cho người dùng, từ việc tăng cường trải nghiệm hình ảnh đến việc tối ưu hóa quá trình tạo mô tả và thúc đẩy sáng tạo.

Xây dựng hệ thống

- Ngôn ngữ lập trình: JavaScript

Hình 4 Sơ đồ Use case

STT Chức năng Mô tả

1 Chọn ảnh từ thư viện Người dùng chọn ảnh từ thư viện

2 Chụp ảnh mới từ máy ảnh Người dùng chụp ảnh mới từ máy ảnh của thiết bị

3 Xem câu mô tả của bức ảnh Người dùng xem chi tiết câu mô tả của bức ảnh bằng tiếng anh do hệ thống trả về

4 Nghe đọc câu mô tả Người dùng nghe hệ thống đọc câu mô tả của bức ảnh

5 Chọn ảnh mới Người dùng chọn ảnh khác

Bảng 1 Bảng mô tả Use cases

Chọn ảnh từ thư viện:

Mô tả: Người dùng chọn ảnh từ thư viện ảnh trên thiết bị di động

1 Hệ thống hiển thị giao diện cho phép người dùng chọn ảnh từ thư viện

2 Người dùng thực hiện lựa chọn một bức ảnh từ thư viện trên thiết bị di động

3 Hệ thống nhận được yêu cầu chọn ảnh từ người dùng

4 Hệ thống hiển thị bức ảnh được chọn trên giao diện và tiến hành dự đoán câu mô tả cho ảnh

Nếu người dùng không chọn ảnh từ thư viện, quá trình chọn ảnh từ thư viện kết thúc

Chụp ảnh mới từ máy ảnh:

Mô tả: Người dùng chụp một bức ảnh mới bằng máy ảnh trên thiết bị di động

1 Hệ thống hiển thị giao diện cho phép người dùng chụp ảnh mới

2 Người dùng thực hiện việc chụp ảnh mới bằng máy ảnh trên thiết bị di động

3 Hệ thống nhận được ảnh mới từ máy ảnh và tiến hành dự đoán câu mô tả cho ảnh

Nếu người dùng không chụp ảnh mới, quá trình chụp ảnh mới kết thúc

Xem câu mô tả của bức ảnh:

Mô tả: Người dùng xem câu mô tả được tạo cho bức ảnh

1 Hệ thống hiển thị câu mô tả đã được tạo cho bức ảnh trên giao diện

2 Người dùng đọc và xem câu mô tả

Không có luồng thay thế

Nghe đọc câu mô tả:

Mô tả: Người dùng nghe đọc câu mô tả của bức ảnh

1 Hệ thống cung cấp công cụ hoặc chức năng để người dùng có thể nghe đọc câu mô tả

2 Người dùng khởi động chức năng đọc câu mô tả

3 Hệ thống đọc câu mô tả của bức ảnh cho người dùng

Không có luồng thay thế

Mô tả: Người dùng chọn ảnh mới để tiến hành dự đoán câu mô tả

1 Hệ thống hiển thị giao diện cho phép người dùng chọn ảnh mới

2 Người dùng thực hiện lựa chọn một bức ảnh mới từ thư viện hoặc chụp ảnh mới bằng máy ảnh trên thiết bị di động

3 Hệ thống nhận được ảnh mới từ người dùng và tiến hành dự đoán câu mô tả cho ảnh

Nếu người dùng không chọn ảnh mới, quá trình chọn ảnh mới kết thúc

Hình 5 Sơ đồ Activity

CÀI ĐẶT ỨNG DỤNG

Một số giao diện trang người dùng

Hình 6 Màn hình chính Ở màn hình này sẽ có 2 chế độ là upload ảnh từ máy lên và chức năng scan cả 2 chức năng đều có thể navigate đến màn hình hiển thị câu mô tả

4.1.2 Màn hình hiển thị câu mô tả

Hình 7 Màn hình hiển thị Ở màn hình này sẽ hiển thị dòng caption mới được generate

4.1.3 Màn hình hiển thị tác vụ

Hình 8 Màn hình tác vụ Ở màn hình này gồm 2 chức năng chính là scan và read (đọc dòng caption mới được generate và còn them chức năng share kết quả gồm ảnh và dòng caption tương ứng

4.1.4 Màn hình hiển thị thông tin

Hình 9 Màn hình hiển thị thông tin Ở màn hình này sẽ hiển thị thông tin của ứng dụng và nhà phát triển

4.1.5 Màn hình hiển thị thống kê về thuật toán

Hình 10 Màn hình thống kê Ở màn hình này chúng ta sẽ thấy tổng quan về modal ứng dụng

4.1.6 Màn hình so sánh các thuật toán

Hình 11 Màn hình so sánh thuật toán Ở màn hình này sẽ bao gồm các thuật toán đã sử dụng để train

Cài đặt người dùng

Hình 12 Ứng dụng trên Play Store Ứng dụng hiện tại đã có mặt trên Play Store Mọi người có thể tải và trải nghiệm

Link: https://play.google.com/store/apps/details?id=com.handwritten

Cài đặt dành cho developers

• GitHub: https://github.com/khang1010/english_image_captioning

Setup thành công env để chạy react native ( https://reactnative.dev/docs/getting- started )

Bước 1: Cài đặt mã nguồn

`git clone https://github.com/khang1010/english_image_captioning.git`

Bước 2: Cài đặt thư viện

Di chuyển vào thư mục: ` cd english_image_captioning`

Cài đặt list thư viện trong file package.json: ` npm i `

` npx react-native run-android`

• GitHub: https://github.com/khang1010/EIC_Server

1 Python đã được cài đặt trên máy tính của bạn.Android Studio ( máy ảo)

Bước 1: Cài đặt mã nguồn

`git clone https://github.com/khang1010/EIC_Server.git`

Bước 2: Cài đặt thư viện

Di chuyển vào thư mục: ` cd EIC_Server`

Cài đặt các dependencies bằng pip:

` pip install torch torchvision torchaudio index-url https://download.pytorch.org/whl/cpui `

Nếu gặp lỗi "Failed to build pycocotools" bạn hãy xử lý như sau:

Xóa thông tin phiên bản sau pycocotools

Chạy lại câu lệnh: ` pip install -r requirements.txt`

`pip install open_clip_torch`

Cấu hình dự án của bạn (nếu có) bằng cách chỉnh sửa các tệp tin cấu hình cần thiết

Chạy dự án bằng lệnh: ` flask run`

Dự án sẽ chạy trên máy tính của bạn và bạn có thể truy cập API với URL: http://localhost:5000

30 Để nhận được caption của hình ảnh bạn hãy gọi API với phương thức POST với URL: http://localhost:5000/predict và truyền ảnh vào body dưới dạng form-data, thông tin trả về sẽ là đoạn caption dành cho bức ảnh đó.

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

HÌNH ẢNH LIÊN QUAN

Hình 2. Bảng điểm kết của của OFA [1] - đồ án 1 tạo mô tả bằng tiếng anh
i ̀nh 2. Bảng điểm kết của của OFA [1] (Trang 14)
Hình 4. Sơ đồ Use case - đồ án 1 tạo mô tả bằng tiếng anh
i ̀nh 4. Sơ đồ Use case (Trang 25)
Hình 5. Sơ đồ Activity - đồ án 1 tạo mô tả bằng tiếng anh
i ̀nh 5. Sơ đồ Activity (Trang 28)

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

TÀI LIỆU LIÊN QUAN

w