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

BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: MÔ PHỎNG TRÒ CHƠI QUICKDRAW

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 (888.54 KB, 18 trang )

ĐẠI HỌC ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

BÁO CÁO ĐỒ ÁN CƠ SỞ
ĐỀ TÀI: MƠ PHỎNG
TRỊ CHƠI QUICKDRAW

Sinh viên thực hiện

: NGUYỄN BẢO MINH HOÀNG – 17IT1
NGUYỄN ĐÌNH TRỌNG – 17IT2
Giảng viên hướng dẫn : PGS. TS. HUỲNH CÔNG PHÁP
Học phần
: ĐỒ ÁN CƠ SỞ 4

Đà Nẵng, tháng 12 năm 2019


ĐẠI HỌC ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

BÁO CÁO ĐỒ ÁN CƠ SỞ
ĐỀ TÀI: MƠ PHỎNG
TRỊ CHƠI QUICKDRAW

Đà Nẵng, tháng 12 năm 2019


MỞ ĐẦU
Lý do chọn đề tài
Trí tuệ nhân tạo là một môn khoa học và một tập hợp các công nghệ máy


tính được lấy cảm hứng từ cách con người sử dụng hệ thống thần kinh và cơ thể
của mình để cảm nhận, học hỏi, lý giải, và hành động nhưng hoạt động theo cách
hoàn toàn khác. Mặc dù các tiến bộ trong trí tuệ nhân tạo khá chắp vá và khơng thể
đốn trước, nhưng lĩnh vực này đã có những bước tiến đầy ý nghĩa kể từ khi bắt
đầu sáu mươi năm trước.
Chúng ta hiện đang bước vào kỷ ngun trong đó trí tuệ nhân tạo có những
tác động to lớn và sâu sắc đến đời sống hàng ngày. Ví dụ, thị giác máy tính và trí
tuệ nhân tạo lập kế hoạch tạo ra các trò chơi video giờ đây đã trở thành một ngành
cơng nghiệp giải trí lớn hơn Hollywood. Học sâu (Deep Learning), một hình thức
học máy (Machine Learning) dựa trên các lớp đại diện của biến số được xem như
các mạng như thần kinh, đã làm cho việc hiểu lời nói trở thành thực tế trên điện
thoại và trong nhà bếp của chúng ta.
Trong đồ án cơ sở 3 lần này, nhóm chúng em xin giới thiệu một nhánh thuộc
trí tuệ nhân tạo đó là Computer Vision và dựa vào đó tạo ra ứng dụng QuickDraw
để nhận biết được vật thể bằng cách nhận diện nét vẽ ảo.
Đặc biệt em xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo PGS. TS.
Huỳnh Công Pháp, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều
kiện giúp đỡ em trong suốt quá trình làm đồ án học phần Đồ án cơ sở.
Em xin chân thành cảm ơn.


NHẬN XÉT
(Của giảng viên hướng dẫn)
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................

..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
Ký, ghi rõ họ tên


MỤC LỤC
Trang
Chương I. GIỚI THIỆU....................................................................................... 1
I.1. Tổng quan đề tài ........................................................................................ 1
I.2. Cấu trúc đồ án ........................................................................................... 1
I.3. Giới thiệu về Computer Vision ................................................................. 1
I.4. Giới thiệu về Python ................................................................................. 2
I.5. Giới thiệu về OpenCV .............................................................................. 3

I.6. Giới thiệu về Pytorch ................................................................................ 3
I.7. Giới thiệu về Numpy ................................................................................. 3
I.8. Các thiết bị cần thiết .................................................................................. 4
I.9. Phương pháp ............................................................................................. 4
I.10. Cách sử dụng ......................................................................................... 5
Chương II.
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG .......................................... 6
II.1.
Mơ tả bài tốn: ....................................................................................... 6
II.2.
Sơ đồ hoạt động ..................................................................................... 6
Chương III. KẾT QUẢ ....................................................................................... 8
III.1. Kết quả thực hiện ................................................................................... 8
III.2. Kết luận .................................................................................................. 9
III.2.a) Điểm mạnh ...................................................................................... 9
III.2.b) Điểm yếu ....................................................................................... 10
III.3. Hướng phát triển .................................................................................. 10
PHỤ LỤC ............................................................................................................. 11


DANH MỤC BẢNG
Trang

Bảng 1 Danh sách đồ vật, hình ảnh được sử dụng ................................................. 9


DANH MỤC HÌNH
Trang
Hình 1 Laptop có sẵn camera ................................................................................. 4
Hình 2 Webcam gắn ngồi ..................................................................................... 4

Hình 3 Đầu vào, đầu ra của bài tốn ....................................................................... 6
Hình 4 Sơ đồ q trình luyện mơ hình ................................................................... 6
Hình 5 Sơ đồ hoạt động quá trình chạy .................................................................. 7
Hình 6 Vẽ hình ở chế độ camera ............................................................................ 8
Hình 7 Vẽ hình ở chế độ chuột ............................................................................... 8


Báo cáo Đồ án cơ sở

Chương I.

Khoa Công nghệ thông tin và Truyền thông

GIỚI THIỆU

I.1. Tổng quan đề tài
Xây dựng ứng dụng QuickDraw đơn giản nhằm nhận diện được vật thể dựa vào
nét vẽ tượng trưng cho vật thể đó.
Ứng dụng gồm các chức năng chính:
 Camera sẽ nhận diện được thao tác vẽ vật thể và chuyển dữ liệu tự nhiên đó thành
các dữ liệu mà máy có thể hiểu được và trả về tên của vật thể mà ta đang vẽ.
 Luyện tập(Training) cho chương trình có thể hiểu được nhiều vật thể hơn.

I.2. Cấu trúc đồ án
Đồ án gồm các chương chính:
Chương I: Giới thiệu tổng quan và các phương pháp, thiết bị sử dụng trong đề tài
Chương II: Phân tích và thiết kế hệ thống
Chương III: Phân tích kết quả và kết luận

I.3. Giới thiệu về Computer Vision

Thị giác máy tính (tiếng Anh: Computer Vision) là một lĩnh vực bao gồm các
phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh và,
nói chung là dữ liệu đa chiều từ thế giới thực để cho ra các thông tin số hoặc biểu tượng,
ví dụ trong các dạng quyết định. Việc phát triển lĩnh vực này có bối cảnh từ việc sao
chép các khả năng thị giác con người bởi sự nhận diện và hiểu biết một hình ảnh mang
tính điện tử. Sự nhận diện hình ảnh có thể xem là việc giải quyết vấn đề của các biểu
tượng thông tin từ dữ liệu hình ảnh qua cách dùng các mơ hình được xây dựng với sự
giúp đỡ của các ngành lý thuyết học, thống kê, vật lý và hình học. Thị giác máy tính
cũng được mơ tả là sự tổng thể của một dải rộng các quá trình tự động và tích hợp và
các thể hiện cho các nhận thức thị giác.
Thị giác máy tính là một mơn học khoa học liên quan đến lý thuyết đằng sau các
hệ thống nhân tạo có trích xuất các thơng tin từ các hình ảnh. Dữ liệu hình ảnh có thể
nhiều dạng, chẳng hạn như chuỗi video, các cảnh từ đa camera, hay dữ liệu đa chiều từ
máy quét y học. Thị giác máy tính cịn là một mơn học kỹ thuật, trong đó tìm kiếm việc
áp dụng các mơ hình và các lý thuyết cho việc xây dựng các hệ thống thị giác máy tính.

1


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

Các lĩnh vực con của thị giác máy tính bao gồm tái cấu trúc cảnh, dị tìm sự kiện,
theo dõi video, nhận diện bố cục đối tượng, học, chỉ mục, đánh giá chuyển động và phục
hồi ảnh.
Đặc điểm
 Computer Vision khác hoàn toàn xử lý ảnh. Xử lý hình ảnh liên quan đến các
cơng nghệ và phương pháp được sử dụng để gia tăng hình ảnh về khía cạnh thông
tin trong khi Computer Vision hướng đến các hành động thực tế.

 Thị giác máy tính gắn liền với Trí tuệ nhân tạo - AI theo nghĩa thiết bị khơng chỉ
cần nhìn mà ngay sau giai đoạn nhận biết này, nó phải phân tích và giải thích
những gì mình thấy, từ đó đưa ra hành động phù hợp và tương tác với môi trường.
Cách thức hoạt động
 Implement những Prototype từ thư viện OpenCV (Một Framework hỗ trợ
Computer Vision mã nguồn mở).
 Thu thập dữ liệu: Chương trình sẽ thu nhận dữ liệu đầu vào từ camera.
 Xử lý dữ liệu: Dữ liệu đầu vào sẽ được phân tích và dựa trên dữ liệu training
trước đó để kiểm tra xem nó thuộc vật thể nào.
 Thu kết quả: Cho biết vật thể đó là gì.

I.4. Giới thiệu về Python
Python1 được tạo ra bởi Guido van Rossum vào năm 1991, là một ngơn ngữ lập
trình thơng dịch (interpreted), hướng đối tượng (object-oriented), và là một ngôn ngữ
bậc cao (high-level) ngữ nghĩa động (dynamic semantics). Python hỗ trợ các module và
gói (packages), khuyến khích chương trình module hóa và tái sử dụng mã. Trình thơng
dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân
miễn phí cho tất cả các nền tảng chính và có thể được phân phối tự do.
Đặc điểm của ngơn ngữ Python:
 Ngữ pháp đơn giản, dễ đọc.
 Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented)
 Hỗ trợ module và hỗ trợ gói (package)
 Xử lý lỗi bằng ngoại lệ (Exception)

1

/>
2



Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

 Kiểu dữ liệu động ở mức cao.
 Có các bộ thư viện chuẩn và các module ngồi, đáp ứng tất cả các nhu cầu lập
trình.
 Có khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho
Jython, hoặc .Net cho IronPython).
 Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface).
Ngày nay, Python được sử dụng trong các mục đích như:
 Phát triển phần mềm.
 Tính tốn, khoa học.
 Machine Learning: Theano, Tensorflow, Scikit-learn,…
 Computer Science: Python OpenCV, Numpy, Panda, Scipy,…

I.5. Giới thiệu về OpenCV
OpenCV2(Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử
lý về thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc viết bằng C/C++, vì
vậy có tốc độ tính tốn rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời
gian thực. Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ được cho
Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người
dùng và số lượng download vượt quá 6 triệu lần.

I.6. Giới thiệu về Pytorch
PyTorch3 là 1 thư viện Python-based hỗ trợ tạo ra các Deep Learning models và
sử dụng chúng cho các ứng dụng khác nhau. Trên thực tế, PyTorch khơng chỉ là 1 thư
viện Deep Learning, mà chính là 1 package về tính tốn khoa học (scientific computing).

I.7. Giới thiệu về Numpy

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

2

/> />4
/>3

3


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thơng

I.8. Các thiết bị cần thiết
Laptop có tích hợp camera hoặc Webcam với mục đích ghi hình lại được chuyển
động lúc vẽ vật thể ảo.

Hình 1 Laptop có sẵn camera

Hình 2 Webcam gắn ngồi

I.9. Phương pháp
Sử dụng ngơn ngữ lập trình Python:
 Thư viện OpenCV, Pytorch, Numpy đã cung cấp đầy đủ các module để thực hiện
quá trình training và xử lý dữ liệu đầu vào.
 Google’s Quick Draw Project5 cung cấp sẵn các dataset để training cho ứng dụng

của chúng ta biết được các vật thể nhất định.
 Sử dụng phương pháp đa tuyến trình (multithreading) để tăng tốc xử lý của ứng
dụng.

5

/>
4


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

I.10. Cách sử dụng
1. Sử dụng một cây bút hoặc bất cứ vật gì với màu nổi bật (khuyến khích màu xanh
lục, đỏ hoặc xanh da trời).
2. Khi cây bút xuất hiện trong tầm nhìn của Camera thì chương trình sẽ bắt và biểu
diễn nó bằng vịng trịn màu vàng.
3. Khi đã sẵn sàng, nhấn phím Space và sau đó vẽ hình bất kì theo ý muốn. Khi vẽ
hồn tất nhấn lại phím Space một lần nữa.
4. Chương trình sẽ xuất ra kết quả hình thể mà chúng ta vừa vẽ trên màn hình.

5


Báo cáo Đồ án cơ sở

Chương II.


Khoa Công nghệ thông tin và Truyền thơng

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

II.1. Mơ tả bài tốn:
Người dùng sẽ vẽ 1 hình vẽ bằng chuột hay thơng qua camera. Sau đó chương
trình sẽ dự đốn xem hình vẽ đó là hình vẽ gì

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

II.2. Sơ đồ hoạt động
Giai đoạn luyện mơ hình(Model training): Ta định nghĩa danh sách các
lớp(classes) có từ trước kèm dataset dưới dạng numpy của nó. Mỗi hình vẽ bản chất là
một ma trận có 28 hàng và 28 cột. Sau đó luyện dữ liệu dưới mơ hình SGD hoặc
Adam(mặc định là SGD). Với mỗi lớp, ta luyện 10.000 hình ảnh của nó. Sau khi hồn
thành xong q trình luyện, ta lưu mơ hình đã được luyện vào 1 file và thơng tin q
trình luyện(tỉ lệ mất mát, tỉ lệ chính xác,...)

Hình 4 Sơ đồ q trình luyện mơ hình

6


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thơng

Giai đoạn chạy: Từ hình vẽ ban đầu, ta chỉnh màu nền ảnh về màu trắng, nét vẽ
về màu đen và điều chỉnh về kích thước ảnh thành 28 x 28 pixel. Sau đó chúng ta sẽ sử
dụng Pytorch dự đốn hình ảnh sau khi được chuẩn hố.


Hình 5 Sơ đồ hoạt động quá trình chạy

7


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thơng

Chương III. KẾT QUẢ
III.1. Kết quả thực hiện

Hình 6 Vẽ hình ở chế độ camera

Hình 7 Vẽ hình ở chế độ chuột

8


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

Thông tin file logs lưu trữ các cấu hình khi lưu trữ cấu hình luyện mơ hình:
Model's parameters: {'optimizer': 'sgd', 'total_images_per_class': 10000, 'ratio':
0.8, 'batch_size': 32, 'num_epochs': 20, 'lr': 0.01, 'es_min_delta': 0.0,
'es_patience': 3, 'data_path': 'data', 'log_path': 'tensorboard', 'saved_path':
'trained_models'}
Danh sách 20 đồ vật, hình ảnh được sử dụng trong chương trình:

#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

Tên đồ vật
Apple
Book
Bowtie
Candle
Cloud
Cup
Door

Envelope
Eyeglasses
Guitar
Hammer
Hat
Ice cream
Leaf
Scissors
Star
T-shirt
Pants
Lightning
Tree
Bảng 1 Danh sách đồ vật, hình ảnh được sử dụng

III.2. Kết luận
Sau khi thực hiện thí điểm phần mềm và trong 1 thời gian khá dài, chúng em đã
phát hiện ra những điểm mạnh, yếu hay hạn chế của phần mềm như sau
III.2.a)
Điểm mạnh
 Tốc độ dự đốn(predict) khá nhanh.
 Chương trình hoạt động được tốt ở 2 chế độ thuận và nghịch.
 Có thể tuỳ chỉnh màu khác nhau cho vật vẽ(xanh lá, đỏ và xanh dương).
 Dataset có sẵn với số lượng lớn từ Google6, nhiều tuỳ chọn phù hợp vào mục
đích sử dụng.
6

/>
9



Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

III.2.b)
Điểm yếu
 Số lượng đồ vật hiện tại có thể dự đốn được khá ít(20).
 Tốc độ dự đốn 1 số hình vẫn cịn chậm, thậm chí là sai ở 1 số model có hình vẽ
tương đồng nhau.
 Chương trình ở chế độ camera dễ bị ảnh hưởng bởi các yếu tố ngoại cảnh như độ
sáng, màu sắc mơi trường xung quanh,...

III.3. Hướng phát triển
Chương trình có thể phát triển về 2 hướng
Mặt số lượng: Tăng số lượng dataset tức là tăng số lượng đồ vật có thể dự đốn.
Việc này khá tốn kém thời gian vì thời gian luyện mơ hình(model training) rất lâu.
Mặt chất lượng: Cải thiện tốc độ và độ chính xác của chương trình. Tăng số lượng
hình ảnh được train ở mỗi hình(hiện tại đang là 10.000 hình/model) và sử dụng những
model có hình dạng khác nhau, không tương đồng.

10


Báo cáo Đồ án cơ sở

Khoa Công nghệ thông tin và Truyền thông

PHỤ LỤC
Mã nguồn: />

11



×