Tải bản đầy đủ (.docx) (18 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (194.32 KB, 18 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠ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

Cơng ty thực tập:

VCCorp

Lớp:

SE501.L11.PMCL

Sinh viên thực hiện: Nguyễn Trường Khoa Nguyên – 17520827
Giảng viên hướng dẫn:

TS.Huỳnh Ngọc Tín

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


2Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

NHẬN XÉT
(Của giảng viên)

........................................................................................................................................................


........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................

22


3Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

MỤC LỤC


33


4Nguyễn Trường Khoa Ngun

TS.Huỳnh Ngọc Tín

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.

44


5Nguyễn Trường Khoa Nguyên


TS.Huỳnh Ngọc Tín

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 tố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

55


6Nguyễn Trường Khoa Ngun

TS.Huỳnh Ngọc Tín

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à
66


7Nguyễn Trường Khoa Ngun

TS.Huỳnh Ngọc Tín

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 ngồ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

77


8Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

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 tố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 .
Ngồ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, q 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.
88


9Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín


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 tố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.

99


10Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

- 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 tốn. Ví dụ, nếu muốn đố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 tố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
1010


11Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

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 tố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 tố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 hố và thống kê
● Tích hợp tốt với các thư viện khác của python
1111


12Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

- Tensorflow – Keras

Tensorflow là một thư viện mã nguồn mở cung cấp khả năng xử lí tính tố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 tố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

Tuần

Cơng Việc

Người hướng dẫn

Mức

Nhận

độ

xét của


hồn

người

thành

hướng
dẫn

1212


13Nguyễn Trường Khoa Ngun
1

- Tìm hiểu về cơng ty, cách tổ
chức của cơng ty.

TS.Huỳnh Ngọc Tín
Anh Nguyễn Thanh Anh
Tun

- 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
2

email
- Tìm hiểu về Machine Learning


Anh Nguyễn Thanh Anh
Tun
Anh Ngơ Trung Hiếu

3

4
5
6

7

- Tìm hiểu về Deep Learning

Anh Nguyễn Thanh Anh
Tun
Anh Ngơ Trung Hiếu

- Tìm hiểu về paper tạo mơ tả cho
hình ảnh

8
9

- Viết Model đầu tiên theo paper

10

- Thực nghiệm và đánh giá


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

Thầy Huỳnh Ngọc Tín
Anh Trần Văn Tùng
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

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

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

1313


14Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

CHƯƠNG 3: CHI TIẾT PROJECT
I. Giới thiệu về bài tố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 tố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

1414


15Nguyễn Trường Khoa Ngun

TS.Huỳnh Ngọc Tín

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
1515


16Nguyễn Trường Khoa Nguyên


TS.Huỳnh Ngọc Tín

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%.

1616


17Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

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] />[4] NLTK 3.5 documentation

[5] Tensorflow for image captioning

1717


18Nguyễn Trường Khoa Nguyên

TS.Huỳnh Ngọc Tín

Tổng Kết
Như vậy, chỉ trong vòng thời gian thực tập, em đã build được base model
để hồn thành mục tiêu của cơng việc, đồng thời từ đó có thể tiếp tục xây dựng và phát
triển nghiên cứu để cải thiện model của mình hơn nữa trong tương lai
Chân thành cảm ơn sự giúp đỡ của các anh trong cơng ty. Cảm ơn thầy Huỳnh
Ngọc Tín đã giúp em hoàn thành bài báo cáo này.

1818



×