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 đó.