1. Trang chủ
  2. » Cao đẳng - Đại học

Báo cáo thực tập xây dựng ứng dụng tạo mô tả cho hình ảnh

18 8 0

Đ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

Định dạng
Số trang 18
Dung lượng 119,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Và qua đó, do muốn được tiếp cận, tìm hiểu hơn về quy trình tạo ra một bài toán AI để giải quyết các vấn đề trong hiện tại, do đó VCCorp chính là công ty lý tưởng để cho em thực hiện dự

Trang 1

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

KHOA CÔNG NGHỆ PHẦN MỀM

THỰC TẬP TỐT NGHIỆP

ĐỀ TÀI: Xây dựng ứng dụng tạo mô tả cho hình ảnh

Sinh viên thực hiện: Nguyễn Trường Khoa Nguyên – 17520827

TP Hồ Chí Minh, ngày 14 tháng 1 năm 2021

Trang 2

NHẬN XÉT

(Của giảng viên)

Trang 3

MỤC LỤC

Trang 4

LỜI NÓI ĐẦU

Ngày nay, lĩnh vực AI đang nổi lên với một nhu cầu cấp bách và đầy thiết yếu Các ứng dụng của AI đã gây nên một phần tác động lớn đối với trải nghiệm của người dùng và tính chất thương mại hóa của một công ty

Cùng với xu thế phát triển của thế giới, Việt Nam đã có bước phát triển mạnh

mẽ, trở thành nền kinh tế hội nhập, năng động, hấp dẫn đầu tư trong khu vực Trong bối cảnh phát triển và hội nhập quốc tế, cùng với sự phát triển mạnh mẽ của cuộc cách mạng công nghiệp 4.0, Việt Nam xác định tập trung phát triển công nghệ trí tuệ nhân tạo (AI) - một mũi nhọn, được dự báo trở thành ngành công nghệ đột phá nhất trong tương lai

Sau bốn năm học tập trên trường, do muốn tiếp xúc, học hỏi những lợi ích mà

AI mang lại , nhờ may mắn gặp gỡ thầy Tín đã tạo cơ hội cho em được tiếp xúc và truyền cảm hứng cho em trong lĩnh vực CNTT trong AI Và qua đó, do muốn được tiếp cận, tìm hiểu hơn về quy trình tạo ra một bài toán AI để giải quyết các vấn đề trong hiện tại, do đó VCCorp chính là công ty lý tưởng để cho em thực hiện dự định này và cũng như là có thêm kinh nghiêm để rèn giũa bản thân thật tốt trước khi ra trường

Trang 5

LỜI CẢM ƠN

Em xin gửi lời cảm ơn tới các anh chị tại công ty VCCorp nói chung và thầy Huỳnh Ngọc Tín nói riêng vì đã tạo điều kiện cho em có cơ hội thực tập tại công ty

Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của anh chị trong công ty, những buổi seminar hàng tuần Em đã học hỏi được nhiều điều về kỹ năng cứng cũng như mềm Đồng thời hòa nhập với văn hóa công ty và các hoạt động ngoại khóa nói riêng

Đặc biệt em xin cảm ơn anh Tuyên là người hỗ trợ em từ lúc vào công ty, anh đã tận tình hướng dẫn em từ các thủ tục cần thiết tới setup môi trường bắt đầu làm việc, anh cũng góp ý thêm những điều em còn sai sót để sửa lại và làm việc tốt hơn Cám ơn anh Tùng và anh Hiếu đã giúp đỡ em các vấn đề kỹ thuật , cách làm việc, phương pháp tìm hiểu và tiếp cận một bài toán cụ thể Và cũng cảm ơn bạn Phạm Huỳnh Tấn Đạt và anh Dương Xuân Hiệp đã làm partners của em trong suốt quá trình thực tập, hỗ trợ em trao đổi và củng cố lại các kiến thức, kỹ thuật còn thiếu và sai sót

Em cũng cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện cho em làm báo cáo này

Nguyễn Trường Khoa Nguyên

TP Hồ Chí Minh, ngày 14 tháng 01 năm 2021

Trang 6

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

I Giới thiệu chung về công ty

logo của vccorp

- Được thành lập vào năm 2006, Công ty CP VCCorp (VCCorp) là công ty tiên phong trong lĩnh vực công nghệ và nội dung số Với hơn 10 năm hình thành và phát triển, VCCorp đã xây dựng được một hệ sinh thái Internet rộng lớn với rất nhiều sản phẩm sáng tạo, hữu ích trong nhiều lĩnh vực (quảng cáo trực tuyến, thương mại điện tử, trò chơi trực tuyến ) phủ sóng trên 90% người sử dụng Internet và mobile, có giá trị đóng góp lớn vào sự phát triển của Internet Việt Nam trong một thập kỷ qua

- Với việc được chia thành nhiều bộ phận, bộ phận mà em đang thực tập chính là Adtech

-VCCorp hiện đang sở hữu thương hiệu quảng cáo trực tuyến Adtech là đơn vị quảng cáo trực tuyến lớn nhất hiện nay với hệ thống quảng cáo trên 200 website uy tín hàng đầu, gần 30 website trong số đó thuộc sở hữu của VCCorp hoặc VCCorp là đơn vị độc quyền khai thác quảng cáo Với độ phủ tới trên 50 triệu độc giả, tương đương 90% người dùng Internet và mobile tại Việt Nam, cùng với sức mạnh về công nghệ, và sự sáng tạo không ngừng, Adtech luôn ở vị thế dẫn đầu thị trường, giúp các trang báo và

Trang 7

trang thông tin điện tử Việt Nam có nguồn thu tốt để cung cấp thông tin cho người dân

và cạnh tranh được các website dịch vụ nước ngoài

II Sản phẩm của công ty

Được đáng giá là một Công ty công nghệ hàng đầu Việt Nam, các sản phẩm của VCCorp có độ phủ mạnh trên hầu hết các lĩnh vực về công nghệ và internet như: thương mại điện tử, quảng cáo trực tuyến, online media, mobile content, social

media… Trên 90% lượng người dùng Internet tại Việt Nam sử dụng sản phẩm của VCCorp mỗi ngày đã khẳng định sự phong phú và đa dạng về sản phẩm và lĩnh vực mà không phải công ty công nghệ nào cũng đạt được

Các sản phẩm của công ty:

-Adnetwork : Tiếp cận 97.6% người dùng Internet, với 5 nhóm chuyên mục lớn, hơn

1000+ publishers, 30 đối tác độc quyền, cùng 10000+ nhà mua quảng cáo

-Mobile Adnetwork : Tiếp cận 95% người dùng Mobile, hệ thống Mobile Adnetwork tiếp

cận người dùng trên mobile web & mobile app

-Adtech : Sở hữu hơn 45 tỉ view/tháng, AdTech áp dụng hầu hết những công nghệ tân tiến

nhất vào Adnetwork

-Product Innovation : Dẫn đầu thị trường trong cung cấp tính năng đột phá, sở hữu 22

sản phẩm & giải pháp, nổi bật với: quảng cáo hiển thị, truyền thông, mua tự động, mobile

Trang 8

CHƯƠNG 2: NỘI DUNG THỰC TẬP

Đợt thực tập vừa qua với chủ đề “ Xây dựng ứng dụng tạo mô tả cho hình ảnh” nhằm

giúp cho sinh viên tiếp cận các phương pháp học máy, cũng như nắm được quy trình giái quyết, áp dụng một bài toán AI vào thực tế

I Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

Thời gian: 1 ngày

Nội dung: Giới thiệu về công ty, cách tổ chức của công ty

Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty

Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc, setup các môi trường cần thiết wifi, VPN , git, redmine và giới thiệu qua các bài toán mà team đang giải quyết

Kết quả: Hiểu hơn về bộ phận Adtech, quá trình thành lập và phát triển Có các kỹ

năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn

1 Nghiên cứu kỹ thuật

1.1 Công cụ làm việc

Thời gian : 5 ngày

Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc

Trong thời gian này các anh chị trong team sẽ hướng dẫn thực tập sinh các công cụ giúp ích, hỗ trợ trong công việc sau này

OpenVPN : Sử dụng để làm việc nhóm, server

Trang 9

Hệ điều hành Linux : Setup, cài đặt các package cần thiết để setup môi trường bắt đầu làm việc, chạy thử chương trinh

Skype : Sử dụng để trao đổi, liên lạc giữa các thành viên trong team

VSCode : IDE sử dụng cho việc thực hiện cài đặt đánh giá m, thử nghiệm cho bài toán Jupyter Notebook : sử dụng để setup code bài toán chạy thử nghiệm

Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.

Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ

với nhau

1.2 Tìm hiểu cơ bản về Machine Learning

Thời gian : 5 ngày

Nội dung : Được training các kiến thức cơ bản về toán và các thuật toán máy học

● Tìm hiểu về tổng quan về các thuật toán supervised và unsupervised

● Đọc tài liệu các thuật toán cơ bản trong máy học : Linear Regression, Logistic Regression, …

Thực hiện :

● Tham gia đầy đủ các buổi training của công ty

● Kiểm tra về kiến thức đã học

Kết quả :

● Nắm được các kiến thức cơ bản của Machine Learning

1.3 Tìm hiểu cơ bản về Deep Learning

Thời gian : 15 ngày

Nội dung : Tìm hiểu, áp dụng các kiến thức cơ bản của deep learning như Neural Network, CNN, RNN và LSTM cũng như gradient descent phục vụ cho quá trình backprop

Trang 10

-Khái niệm cơ bản về Neural Network:

Neural Network (Mạng thần kinh nhân tạo), là một thể loại giải thuật của học máy, lấy cảm hứng từ bộ não con người Nó là một trong những giải thuật phổ biến nhất được sử dụng trong thế giới học máy Mục đích là để giải quyết các task cụ thể thông qua việc liên kết các nơron trong mạng neural tương tự cách con người thực hiện

-Khái niệm cơ bản về CNN:

Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến Nó giúp cho chúng ta xây dựng được những

hệ thống thông minh với độ chính xác cao như hiện nay Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao ang tự động

-Khái niệm cơ bản về RNN

Ý tưởng chính của RNN (Recurrent Neural Network) là sử dụng chuỗi các thông tin Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các mô hình này không phù hợp trong rất nhiều bài toán Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt thế nào chứ nhỉ? RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước

đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên

lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài

-Khái niệm cơ bản về LSTM

LSTM (Long short-term memory), là một mạng được sinh ra từ RNN, do trong quá trình học backprop lại của RNN về các dữ liệu ở xa sẽ dẫn tới tình trạng vanishing gradient descent, khiến các trọng số được cập nhật tiến về gần không gây cản trở mô hình trong quá trình học LSTM được giới thiệu thêm để giải quyết những vấn đề này

Trang 11

nhờ vào sự xuất hiện của các cổng forget gate, update gate, output gate và một trạng thái gọi là cell để lưu trữ các thông tin quan trọng hỗ trợ cho việc cải thiện việc ghi nhớ

và học của mô hình

Thực hiện :

● Tham gia đầy đủ các buổi training của công ty

● Kiểm tra về kiến thức đã học

Kết quả :

● Nắm được các kiến thức cơ bản của Deep Learning và vận dụng vào bài toán

1.4 Tìm hiểu các thư viện hỗ trợ cho bài toán

Thời gian : 2 ngày

-Numpy

Numpy là một thư viện lõi phục vụ cho khoa học máy tính của Python, hỗ trợ cho việc tính toán các mảng nhiều chiều, có kích thước lớn với các hàm đã được tối ưu

áp dụng lên các mảng nhiều chiều đó Numpy đặc biệt hữu ích khi thực hiện các hàm liên quan tới Đại Số Tuyến Tính

-Pandas

Pandas là là thư viện mã nguồn mở với hiệu năng cao cho phân tích dữ liệu trong Python được phát triển bởi Wes McKinney trong năm 2008 Chỉ với hơn 1 năm phát triển nó đã trở thành một thư viện chuẩn cho việc phân tích dữ liệu khi dùng Python, một số tính năng nổi bật của pandas:

● Có thể xử lý tập dữ liệu khác nhau về định dạng: chuỗi thời gian, bảng không đồng nhất, ma trận dữ liệu

● Khả năng import dữ liệu từ nhiều nguồn khác nhau như CSV, DB/SQL

● Xử lý, phân tích dữ liệu tốt như mô hình hoá và thống kê

● Tích hợp tốt với các thư viện khác của python

Trang 12

-Tensorflow – Keras

Tensorflow là một thư viện mã nguồn mở cung cấp khả năng xử lí tính toán số học dựa trên biểu đồ mô tả sự thay đổi của dữ liệu Tensor được sử dụng khi bạn cần giải quyết các bài toán supervised learning

Keras là một open source cho Neural Network được viết bởi ngôn ngữ Python Nó là một library được phát triển vào năm 205 bởi Francois Chollet, là một kỹ sư nghiên cứu Deep Learning Keras có thể sử dụng chung với các thư viện nổi tiếng như Tensorflow, CNTK, Theano

Thực hiện :

● Tham gia đầy đủ các buổi training

Kết quả :

● Sử dụng các thư viện hỗ trợ vào bài toán tìm hiểu

1.5 Thực hiện project

Sau hơn một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thức cơ bản về AI, Deep Learning và thư viện đi kèm Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện một project Chi tiết đồ án sẽ được nói ở phần sau

II Lịch làm việc

độ hoàn thành

Nhận xét của người hướng dẫn

Trang 13

1 - Tìm hiểu về công ty, cách tổ

chức của công ty

- Làm quen với các công cụ làm

việc trong công ty

- Học cách làm việc, trao đổi qua

email

Anh Nguyễn Thanh Anh Tuyên

2 - Tìm hiểu về Machine Learning Anh Nguyễn Thanh Anh

Tuyên Anh Ngô Trung Hiếu 3

4 - Tìm hiểu về Deep Learning Anh Nguyễn Thanh Anh

Tuyên Anh Ngô Trung Hiếu Thầy Huỳnh Ngọc Tín

5

6

7 - Tìm hiểu về paper tạo mô tả cho

hình ảnh

Anh Trần Văn Tùng Thầy Huỳnh Ngọc Tín

8 - Viết Model đầu tiên theo paper Thầy Huỳnh Ngọc Tín

Anh Trần Văn Tùng 9

10 - Thực nghiệm và đánh giá Thầy Huỳnh Ngọc Tín

Anh Trần Văn Tùng

11 - So sánh, cài đặt các model khác

nhau để đánh giá , cải thiện

Thầy Huỳnh Ngọc Tín

Trang 14

CHƯƠNG 3: CHI TIẾT PROJECT

I Giới thiệu về bài toán

Hình 1 Model Image Caption trong Show and Tell

Tự động mô tả nội dung của một bức ảnh là một vấn đề cơ bản trong AI Bài toán tuy

có nhiều thách thức nhưng mang lại những tác động tích cực tới cuộc sống hằng ngày, điển hình như giúp đỡ người bị khiếm thị có thể hiểu rõ hơn về nội dung những bức ảnh… Việc xây dựng một mô hình có thể tạo mô tả cho ảnh không chỉ cho ra có những đối tượng gì trong hình mà còn phải cho thấy mối liên hệ giữa các đối tượng Để có thể giải quyết vấn đề có thể nhận biết các đối tượng cũng như cho thấy mối liên hệ giữa chúng, đã kết hợp 2 mô hình deep learning là CNN và RNN

1.1 Paper tham khảo

Paper Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge

1.2 Thuật toán

Trang 15

Mô tả

-Train mạng CNN theo mô hình phân loại ảnh để rút kết ra được các đặc điểm trong một bức hình

-Sau khi rút kết được các feature hình trong tập train, đưa các đặc điểm rút kết được vào làm input cho mạng LSTM

-Mạng LSTM nhận input đầu vào là các đặc điểm của hình được tạo ra từ CNN và các miêu tả đã được gán nhãn từ trước

-Mỗi miêu tả được gán nhãn sẽ được gán 2 token là <start> với <end> để network có thể biết được vị trí bắt đầu và kết thúc câu

-Mạng LSTM sẽ được train để dự đoán ra với những đặc điểm được rút kết trong bức ảnh thì sẽ tạo ra mô tả nào

-Mạng CNN sẽ được pretrained theo bài toàn image classification với input đầu vào là một bức ảnh và output là feature vector

-Mạng LSTM sẽ được pretrained theo bài toán text generation với input đầu vào là <start>

sẽ tạo ra câu description tới khi gặp <end>

1.3 Dataset

Flickr 8k (8091 bức ảnh)

Mỗi bức hình sẽ có 5 descriptions hỗ trợ trong việc đánh giá

II Thực hiện

Nguyễn Trường Khoa Nguyên

III Kế hoạch

Giai đoạn tìm hiểu các paper liên quan:

-Paper về CNN

-Paper về LSTM trong Text generation

Giai đoạn training model

-Training trên tập data flickr 8k

-Chia thành 6000 dữ liệu train và 1000 dữ liệu test

Trang 16

Giai đoạn thử nghiệm

-Sử dụng pretrained trên các kiến trúc CNN khác nhau : Inception, Xception

Giai đoạn đánh giá

-Sử dụng độ đánh giá bleu

Giai đoạn cải tiến

-Tham khảo các paper có thể giúp khả năng cải thiện mô hình

o Improving Image Captioning by Leveraging Knowledge Graphs

o Image Captioning through Image Transformer

IV Kết quả thu được

Sử dụng thông qua mô hình xception mang lại kết quả tốt nhất với các kết quả bleu là 43%

Trang 17

DANH MỤC TÀI LIỆU THAM KHẢO

[1] Paper Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge

[2] Bleu: a method for Automatic Evaluation of Machine Translation

[3] https://machinelearningcoban.com/

[4]NLTK 3.5 documentation

[5] Tensorflow for image captioning

Ngày đăng: 05/09/2021, 21:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w