đồ án 1 tạo chú thích trực tiếp từ nguồn cấp dữ liệu máy ảnh

35 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 tạo chú thích trực tiếp từ nguồn cấp dữ liệu máy ả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

TÓM TẮT Bài toán này trình bày một phương pháp sử dụng luồng hình ảnh từ camera để tạo ra chú thích bằng ngôn ngữ tự nhiên trong thời gian thực.. Động lực nghiên cứu chính trong đồ án nà

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN TẤN TRẦN MINH KHANG

Trang 2

1.4 Mục tiêu và phạm vi nghiên cứu 3

Trang 4

PHỤ LỤC 27

Trang 5

DANH MỤC HÌNH

Hình 1 Đầu vào và đầu ra của bài toán 3

Hình 2 Ví dụ về mô hình sinh câu mô tả cho hình ảnh 5

Hình 3 Sơ đồ minh họa kiến trúc mô hình [3] 6

Hình 11 Home & Live Camera Screen 20

Hình 12 Result Display & History Screen 21

Hình 13 About App Screen 22

Trang 6

DANH MỤC BẢNG

Trang 7

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ nguyên gốc

Trang 8

TÓM TẮT

Bài toán này trình bày một phương pháp sử dụng luồng hình ảnh từ camera để tạo ra chú thích bằng ngôn ngữ tự nhiên trong thời gian thực Trong dự án này, chúng tôi sẽ tạo một ứng dụng camera sử dụng một mô hình được đào tạo trước tùy chỉnh lưu trữ trên thiết bị Chúng tôi sử dụng bộ dữ liệu Microsoft COCO gồm 330,000 ảnh với hơn 200,000 ảnh được gán nhãn Mô hình này sử dụng mạng nơ-ron tích chập sâu (CNN) và mạng nơ-ron ngắn hạn dài (LSTM) cho việc tạo ra các chú thích

Trang 9

Chương 1 MỞ ĐẦU

Ở Chương 1 – Nhóm chúng em xin trình bày về động lực nghiên cứu, phát biểu bài toán, các thách thức, mục tiêu và phạm vi nghiên cứu, đóng góp của nghiên cứu và sơ lược về bố cục của bài báo

Động lực nghiên cứu chính trong đồ án này là tạo ra một giải pháp mang tính tự động, nhanh chóng và chính xác trong việc tạo chú thích trực tiếp từ nguồn dữ liệu máy ảnh Nghiên cứu này rất có ích đối với những người khiếm thính, đồng thời nghiên cứu này cũng giúp ích cho rất nhiều các lĩnh vực như giáo dục, truyền thông, an ninh, … đồng thời cũng giảm thiểu sự phụ thuộc vào con người trong quá trình tạo ra các chú thích trực tiếp Ví dụ như trong lĩnh vực an ninh, camera sẽ liên tục thu vào dữ liệu và ứng dụng sẽ đưa ra các dòng chú thích trực tiếp từ nguồn dữ liệu đó nhằm cung cấp thông tin cho nhân viên an ninh

Cuối cùng, nghiên cứu này có thể mở ra các khả năng mới cho ứng dụng của trí tuệ nhân tạo và học sâu trong việc xử lý dữ liệu thời gian thực Nó có thể dẫn đến những tiến bộ đáng kể trong các lĩnh vực khác như phân tích ngôn ngữ tự động, xử lý âm thanh, và ứng dụng trí tuệ nhân tạo khác

Đầu vào của bài toán là nguồn dữ liệu trực tiếp từ máy quay của điện thoại, đầu ra là những dòng chú thích miêu tả khung cảnh đó

Trang 10

1 Ly chứa cà phê 2 Ly được đặt trên bàn

3 Chiếc thìa được để trên bàn

Hình 1 Đầu vào và đầu ra của bài toán

Thách thức về thời gian thực: Các ứng dụng trực tiếp yêu cầu kết quả được tạo ra ngay lập tức, do đó, các hệ thống phải xử lý dữ liệu và tạo ra chú thích trong thời gian gần như thực sự Điều này đòi hỏi các giải pháp có thể đáp ứng được yêu cầu về tốc độ xử lý

Thách thức về phân tích hình ảnh: Các giải pháp phân tích hình ảnh cần phải đối mặt với nhiều thách thức khác nhau, bao gồm ánh sáng yếu, chất lượng hình ảnh kém, nhiễu hình ảnh và các cảnh quay phức tạp Ứng dụng phải được thiết kế để có khả năng phân tích và xử lý các điều kiện khác nhau để đảm bảo chất lượng chú thích cao

Thách thức về việc tích hợp các công nghệ mới: Các giải pháp tốt nhất trong việc tạo ra chú thích trực tiếp từ nguồn dữ liệu máy quay sử dụng các công nghệ tiên tiến như học sâu, học máy và xử lý ngôn ngữ tự nhiên Do đó, ứng dụng cần phải tích hợp các công nghệ này để đảm bảo tính khả dụng và nâng cao trải nghiệm người dùng

- Mục tiêu: xây dựng thành thành công ứng dụng di động tích hợp mô hình “Tạo chú thích trực tiếp từ nguồn dữ liệu máy quay”

Trang 11

- Phạm vi: sử dụng model đã được huấn luyện trước đó Đưa ra chú thích trực tiếp cho nguồn dữ liệu từ máy quay

Nghiên cứu sẽ giúp ích rất nhiều cho những người khiếm thính hoặc gặp khó khăn với nghe trong việc truy cập các thông tin từ video trực tiếp Ngoài ra, nghiên cứu còn hữu ích trong rất nhiều các lĩnh vực đời sống như giáo dục, an ninh, truyền thông, … đồng thời cũng đóng góp vào các nghiên cứu liên quan đến học sâu, xử lý ngôn ngữ tự nhiên và phân tích hình ảnh Các công trình nghiên cứu có thể giúp tăng cường kiến thức và kỹ năng của cộng đồng nghiên cứu về các công nghệ mới trong lĩnh vực này

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT

CHƯƠNG 3 – PHÂN TÍCH THIẾT KẾ HỆ THỐNG

CHƯƠNG 4 – CÀI ĐẶT ỨNG DỤNG

CHƯƠNG 5 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trang 12

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

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

- Tổng quan bộ dữ liệu: Bộ dữ liệu là một bộ dữ liệu phổ biến được sử dụng trong rất nhiều các bài toán hiện nay vì số lượng ảnh lớn và tính đa dạng của bộ dữ liệu Bộ dữ liệu bao gồm 330,000 ảnh với hơn 200,000 ảnh đã được gán nhãn, trong đó bao gồm 1,5 triệu trường hợp đối tượng, 80 danh mục đối tượng và 91 danh mục vật thể Mỗi ảnh dùng trong huấn luyện và đánh giá sẽ có 5 caption độc lập với nhau được cung cấp bởi con người [1]

Mô hình Image Caption Generator tạo ra các chú thích mô tả nội dung của các hình ảnh trong Bộ dữ liệu COCO Mô hình bao gồm một encoder model (một mạng tích chập sâu sử dụng kiến trúc Inception-v3 được huấn luyện trên dữ liệu ImageNet-2012) và một decoder model (một mạng lưới LSTM được huấn luyện dựa trên mã hóa từ mô hình mã hóa hình ảnh) Đầu vào của mô hình là một hình ảnh, và đầu ra là một câu mô tả nội dung của hình ảnh Mô hình này được xây dựng dựa trên mô hình Show and Tell Image Caption Generator

- Ví dụ minh họa:

Hình 2 Ví dụ về mô hình sinh câu mô tả cho hình ảnh

Kiến trúc mô hình:

Trang 13

Mô hình Show and Tell là một ví dụ về encoder-decoder neural network Nó hoạt động bằng cách "mã hóa" một hình ảnh thành một biểu diễn vector có độ dài cố định, và sau đó "giải mã" biểu diễn thành một mô tả ngôn ngữ tự nhiên [2] Bộ mã hóa hình ảnh là một mạng nơ-ron tích chập sâu Loại mạng này được sử dụng rộng rãi cho các nhiệm vụ hình ảnh và trong thời điểm mô hình Show and Tell ra mắt thì đây là một công nghệ tiên tiến nhất để nhận dạng và phát hiện đối tượng Loại được chọn ở đây cụ thể là mô hình nhận dạng hình ảnh Inception v3 được huấn luyện trước trên tập dữ liệu phân loại hình ảnh ILSVRC-2012-CLS [2] Bộ giải mã là mạng bộ nhớ ngắn hạn dài (LSTM) Loại mạng này thường được sử dụng cho các nhiệm vụ mô hình chuỗi như mô hình ngôn ngữ và dịch máy Trong mô hình Show and Tell, mạng LSTM được huấn luyện như một mô hình ngôn ngữ dựa trên mã hóa hình ảnh

Các từ trong các chú thích được biểu diễn bằng một mô hình nhúng Mỗi từ trong kho từ vựng được liên kết với một biểu diễn vector có độ dài cố định mà đã được học trong quá trình huấn luyện

Hình 3 Sơ đồ minh họa kiến trúc mô hình [3]

Trong biểu đồ này, {s0, s1, , sN-1} là các từ trong chú thích và {wes0, wes1, , wesN-1} là các vectơ nhúng tương ứng của chúng Các đầu ra {p1, p2, , pN} của

Trang 14

LSTM là phân bố xác suất được tạo ra bởi mô hình cho từ tiếp theo trong câu Các {log p1(s1), log p2(s2), , log pN(sN)} là log-likelihood của từ chính xác ở mỗi bước Tổng của các log này là mục tiêu tối thiểu hóa của mô hình [2]

Trong giai đoạn đầu tiên của việc huấn luyện, các tham số của mô hình Inception v3 được giữ cố định: đó chỉ đơn giản là một chức năng mã hóa hình ảnh tĩnh Một lớp có thể được huấn luyện được thêm vào đầu mô hình Inception v3 để biến đổi vectơ nhúng hình ảnh thành không gian vectơ nhúng từ Mô hình được huấn luyện liên quan đến các tham số của nhúng từ, các tham số của lớp trên cùng của Inception v3 và các tham số của LSTM Trong giai đoạn thứ hai của việc huấn luyện, tất cả các tham số (bao gồm cả các tham số của Inception v3) được huấn luyện để điều chỉnh cùng nhau mã hóa hình ảnh và LSTM [2]

Cho mô hình được huấn luyện và một hình ảnh, sử dụng thuật toán beam search để tạo ra các chú thích cho hình ảnh đó Các chú thích được tạo ra từng từ một, trong đó tại mỗi bước t, sử dụng tập các câu đã đã được tạo với chiều dài t - 1 để tạo ra một tập các câu mới với chiều dài t Chúng tôi chỉ giữ lại top k ứng viên tại mỗi bước, trong đó tham số siêu k này được gọi là kích thước của dải (beam size) Chúng tôi đã tìm thấy hiệu suất tốt nhất với k = 3 [2]

Flutter là một bộ công cụ phát triển giao diện người dùng (UI) mã nguồn mở được tạo ra bởi Google giúp xây dựng ứng dụng đa nền tảng Với Flutter, nhà phát triển có thể viết code bằng ngôn ngữ lập trình Dart và triển khai trên nhiều nền tảng khác nhau, bao gồm di động, web và máy tính để bàn Ứng dụng Flutter cung cấp hiệu suất nhanh nhờ vào bộ công cụ xây dựng hình ảnh Skia và cung cấp giao diện người dùng tùy chỉnh với một bộ tiện ích phong phú Tính năng hot reload cho phép thay đổi mã nguồn ngay lập tức và cập nhật ứng dụng trong thời gian thực Flutter tích hợp tốt với các tính năng gốc của các nền tảng và có một

Trang 15

cộng đồng mã nguồn mở có thể trợ, làm cho nó trở thành lựa chọn phổ biến cho các nhà phát triển muốn phát triển ứng dụng hiệu quả và hấp dẫn về mặt thị giác

Hình 4 Flutter

Visual Studio Code (VS Code) là một trình soạn thảo mã nguồn được phát triển bởi Microsoft Nó cung cấp một trải nghiệm viết mã mượt mà trên các nền tảng và ngôn ngữ lập trình khác nhau Với hệ sinh thái mở rộng phong phú, giao diện trực quan, tích hợp kiểm soát phiên bản, khả năng gỡ lỗi, tự động hóa nhiệm vụ và tính năng cộng tác trực tiếp, VS Code mang đến cho nhà phát triển môi trường linh hoạt và hiệu quả cho việc viết mã Nó có khả năng tùy chỉnh cao, tối ưu hóa hiệu suất và đã trở nên phổ biến trong cộng đồng nhà phát triển nhờ tính đa năng và trải nghiệm thân thiện với người dùng

Trang 16

Hình 5 Visual Studio Code

Trang 17

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

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

Mục đích của phần khảo sát hiện trạng là để xác định tình hình và tiến độ của các nghiên cứu, ứng dụng và công trình liên quan đến việc sinh câu mô tả cho bức ảnh Bằng cách tiến hành khảo sát này, chúng ta có thể hiểu rõ hơn về các phương pháp, thách thức và tiềm năng trong lĩnh vực này, từ đó định hình hướng phát triển cho hệ thống của dự án

3.1.2 Hiện trạng hiện nay

Trong thời gian gần đây, việc nghiên cứu và phát triển các phương pháp tự động sinh câu mô tả cho bức ảnh đã thu hút sự quan tâm đáng kể từ cộng đồng nghiên cứu trong lĩnh vực Trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên Dưới đây là một số điểm quan trọng trong thực trạng hiện nay:

- Phát triển mô hình học sâu: Các mô hình học sâu, đặc biệt là mạng nơ-ron đệ quy (RNN) và mạng nơ-ron biến thể (LSTM, GRU), đã được áp dụng để tạo ra các câu mô tả cho ảnh Các mô hình này học cách ánh xạ từ dữ liệu ảnh sang ngôn ngữ tự nhiên

- Ứng dụng trong dịch thuật tự động: Việc sinh câu mô tả ảnh có thể hỗ trợ việc dịch thuật bằng cách tạo ra các mô tả tiếng mục tiêu cho ảnh nguồn - Thách thức về hiểu biết ngữ nghĩa: Mô hình vẫn gặp khó khăn trong việc

hiểu sâu hơn về ngữ nghĩa của hình ảnh và tạo ra các mô tả phản ánh mặt sâu của nội dung

- Các ứng dụng thực tế: Các ứng dụng thực tế của sinh câu mô tả ảnh bao gồm hỗ trợ người khiếm thị, nội dung đa phương tiện trên mạng xã hội, và dịch thuật tự động

Trang 18

- Các thách thức trong đánh giá chất lượng: Để đánh giá chất lượng của mô hình sinh câu mô tả ảnh vẫn là một vấn đề phức tạp, bởi vì không có một tiêu chuẩn đánh giá duy nhất

3.2.1 Công nghệ hệ thống

- Ngôn ngữ lập trình: Dart - UI Framework: Flutter - IDE: Visual studio code - Database: Firebase

- Deploy: Google Cloud Run [4]

Trang 19

1 Người dùng chọn tùy chọn “Camera roll”

2 Ứng dụng mở thư viện ảnh của người dùng để cho phép họ duyệt qua các ảnh có sẵn

3 Người dùng chọn ảnh mà họ muốn sinh câu mô tả

4 Ứng dụng xác nhận việc chọn ảnh và hiển thị ảnh được chọn trong giao diện ứng dụng và gửi yêu cầu lên server để tiến hành xử lý

5 Sau khi server xử lý xong sẽ trả về kết quả (các câu mô tả tương ứng với ảnh) cho người dùng và hiển thị kết quả lên giao diện ứng dụng

6 Ứng dụng sẽ tự động lưu ảnh và các câu mô tả tương ứng vào database thông qua Firebase

Luồng thay thế:

1 Trong bước 3 của luồng chính, người dùng có thể huỷ bỏ việc chọn ảnh 2 Ứng dụng đóng thư viện ảnh và không thực hiện việc chọn ảnh

- Nếu xảy ra lỗi trong quá trình gửi ảnh:

1 Server sẽ trả về một thông báo “Something wrong, do you want to try again?”,

2 Nếu người dùng chọn nút “Go back”, ứng dụng sẽ quay lại màn hình Home

Trang 20

3 Nếu người dùng chọn nút “Try again”, ứng dụng sẽ gửi lại yêu cầu đó lên server để xử lý và trả về kết quả cho người dùng

Take a photo:

Mô tả: Người dùng chụp một bức ảnh mới bằng camera của thiết bị Luồng chính:

1 Người dùng chọn tùy chọn “Take a Photo”

2 Hệ thống kích hoạt máy ảnh trước hoặc sau của thiết bị, hiển thị hình ảnh trực tiếp trong giao diện ứng dụng

- Nếu xảy ra lỗi trong quá trình gửi ảnh:

1 Server sẽ trả về một thông báo “Something wrong, do you want to try again?”,

2 Nếu người dùng chọn nút “Go back”, ứng dụng sẽ quay lại màn hình Home 3 Nếu người dùng chọn nút “Try again”, ứng dụng sẽ gửi lại yêu cầu đó lên

server để xử lý và trả về kết quả cho người dùng

Trang 21

2 Chọn một ảnh muốn hiển thị xem lại kết quả

3 Firebase nhận yêu cầu từ ứng dụng và dựa vào id của thiết bị để tìm id kết quả trùng khớp với yêu cầu

4 Gửi lại kết quả đã lưu trên database về cho người dùng và hiển thị lên màn hình giao diện

Luồng thay thế: Không có luồng thay thế

Trang 22

3.2.4 Sơ đồ activity

Hình 6 Sơ đồ Activity

Hệ thống sử dụng đồng thời hai server để tiến hành xử lý yêu cầu người dùng và lưu cơ sở dữ liệu cho ứng dụng Trong đó, server chính chứa mô hình máy học đã được huấn luyện trước và server thứ hai chứa cơ sở dữ liệu của hệ thống

Trang 23

Hình 7 Kiến trúc server

3.3.1 Deploy

- Server MAX Image Caption Generator được deploy trên nền tảng Google Cloud Run Google Cloud Run là một môi trường quản lý máy chủ của Google dành cho triển khai và phát triển trên những serverless HTTP containers mà không cần lo lắng về việc cung cấp machines, cấu hình cluster hoặc autoscaling

- Server thứ hai là Firebase, một nền tảng giúp phát triển các ứng dụng di động trong web Bên cạnh đó, Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây cloud với hệ thống máy chủ mạnh mẽ của Google

3.3.2 Chức năng

- MAX Image Caption Generator là server chính của hệ thống Server có nhiệm vụ tiếp nhận dữ liệu đầu vào (dữ liệu dạng ảnh) dưới dạng các yêu cầu (request) được gửi từ phía người dùng sau đó đưa qua mô hình máy học đã được huấn luyện trước để xử lý và cuối cùng trả về cho người dùng kết quả dự đoán (response) là các dòng mô tả tương ứng với dữ liệu nhận vào

Trang 24

- Firebase có nhiệm vụ lưu trữ kết quả vào database sau khi server chính gửi phản hồi thành công về cho người dùng Sau khi nhận được kết quả trả về từ server chính, ứng dụng sẽ tự động gửi yêu cầu lưu trữ kết quả bao gồm ảnh và các dòng mô tả tương ứng kèm theo Device ID để xác định dữ liệu lưu trữ thuộc thiết bị nào Sau đó Firebase thực hiện lưu trữ dữ liệu được yêu cầu và trả về kết quả hiển thị trong màn hình History

3.3.3 Cơ sở dữ liệu

- Class Diagram: - Lớp device:

+ id: Định danh duy nhất cho thiết bị - Lớp "Predict":

+ id: Định danh duy nhất cho dự đoán

+ imageUrl: Đường dẫn của hình ảnh được sử dụng cho dự đoán

+ predicts: Dữ liệu dự đoán được tạo ra

+ time: Thời điểm khi dự đoán được thực hiện

Hình 8 Class diagram

- Firestore Database: được thiết kế để lưu trữ và đồng bộ dữ liệu thời gian thực giữa các ứng dụng web và di động Dựa trên mô hình tài liệu (document-oriented), Firestore hỗ trợ lưu trữ dữ liệu dưới dạng các tài liệu (documents) trong các bộ sưu tập (collections) Hình dưới là tổ chức dữ liệu của class diagram ở trên firestore

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

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

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

Tài liệu liên quan