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

KHÓA LUẬN tốt NGHIỆP ỨNG DỤNG máy học TRONG PHÁT HIỆN ĐƯỜNG lưỡi bò 9 đoạn

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 (1.09 MB, 49 trang )

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

HÀ ĐĂNG TÚ
NGUYỄN HỒNG VŨ

KHĨA LUẬN TỐT NGHIỆP

ỨNG DỤNG MÁY HỌC TRONG PHÁT HIỆN ĐƯỜNG
LƯỠI BÒ 9 ĐOẠN
A Nine Dash Line detector in images using machine learning

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2020


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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

HÀ ĐĂNG TÚ – 16521562
NGUYỄN HỒNG VŨ – 16521454

KHĨA LUẬN TỐT NGHIỆP

ỨNG DỤNG MÁY HỌC TRONG PHÁT HIỆN ĐƯỜNG
LƯỠI BÒ 9 ĐOẠN


A Nine Dash Line in images using machine learning

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
PGS.TS VŨ ĐỨC LUNG

TP. HỒ CHÍ MINH, 2020


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo quyết định số .................................
ngày ................................. của Hiệu Trưởng trường Đại học Công Nghệ Thông Tin.


LỜI CẢM ƠN
Đầu tiên, nhóm xin gửi đến thầy PGS. TS. Vũ Đức Lung lời cảm ơn chân thành nhất
vì đã tận tình định hướng, hướng dẫn, giải đáp các thắc mắc, đồng thời cũng là người hỗ
trợ giải quyết các vấn đề khó khăn trong q trình thực hiện đề tài này.
Nhóm cũng gửi lời cảm ơn đến Trường Đại học Cơng nghệ Thơng tin cũng như tồn
thể cán bộ, giảng viên của trường đã tạo điều kiện hỗ trợ nhóm trong suốt q trình học tập
tại trường. Đặc biệt quý thầy cô, cán bộ khoa Công nghệ Phần mềm đã tuyền đạt nhiều
kiến thức nền tảng và chuyên sâu cũng như các kỹ năng quý báu để có thể áp dụng trong
q trình thực hiện khố luận này cũng như trong công việc tương lai.


MỤC LỤC
Chương 1 Tổng quan đề tài ............................................................................................ 4
1.1. Tổng quan vấn đề ................................................................................................. 4
1.2. Tổng quan các đề tài nghiên cứu trong nước. ................................................... 4

1.3. Một số vấn đề còn tồn tại ..................................................................................... 5
1.4. Mục tiêu và nội dung thực hiện .......................................................................... 5
Chương 2 Cơ sở lý thuyết ............................................................................................... 6
2.1. Giới thiệu Máy học............................................................................................... 6
2.1.1. Khái niệm ....................................................................................................... 6
2.1.2. Phân loại thuật toán máy học. ...................................................................... 7
2.2. Khái niêm học sâu và mạng thần kinh nhân tạo ............................................... 7
2.2.1. Khái niệm học sâu ......................................................................................... 7
2.2.2. Khái niệm mạng thần kinh nhân tạo ........................................................... 8
2.2.3. Mang thần kinh tích chập (CNN) ................................................................ 9
2.3. Thuật toán Yolo .................................................................................................. 12
2.3.1. Kiến trúc mạng yolo .................................................................................... 13
2.3.2. Đầu vào của YOLO ..................................................................................... 14
2.3.3. Đầu ra của YOLO ....................................................................................... 15
Chương 3 Phân tích thiết kế chương trình ................................................................. 15
3.1. Kiến trúc hệ thống ............................................................................................. 15
3.2. Hiện thực hệ thống ............................................................................................. 17
3.2.1. Sơ đồ usecase................................................................................................ 17
3.2.2. Sơ đồ tuần tự ................................................................................................ 21
3.2.3. Thiết kế giao diện ........................................................................................ 24
Chương 4 Thực nghiệm và đánh giá ........................................................................... 35
4.1. Tập dữ liệu tự tạo thực nghiệm ........................................................................ 35
4.2. Kịch bản thử nghiệm ......................................................................................... 35
4.2.1. Môi trường thử nghiệm .............................................................................. 35
4.2.2. Thực nghiêm trên bộ dữ liệu tự tạo ........................................................... 36


4.2.3. Kết quả thực nghiệm ................................................................................... 36
4.2.4. Thực nghiệm thực tế ................................................................................... 37
4.2.5. Nhận xét ....................................................................................................... 37

Chương 5 Kết luận và hướng phát triển ..................................................................... 38
5.1. Kết quả đạt được ................................................................................................ 38
5.2. Các vấn đề tồn tại ............................................................................................... 38
5.3. Hướng phát triển ................................................................................................ 39


DANH MỤC HÌNH
Hình 1-1 Ứng dụng Illegal Nine-dash Detection của Zalo AI
Hình 2-1 Sơ đồ tổng quát các lĩnh vực trong Trí tuệ nhân tạo.
Hình 2-2 Mơ hình mạng thần kinh nhân tạo.
Hình 2-3 Thuật tốn Max Pooling.
Hình 2-4 Lớp kích hoạt trong CNN
Hình 2-5 Kiến trúc mạng YOLO.
Hình 2-6 Mạng Darknet53.
Hình 3-1 Kiến trúc Client-Server
Hình 3-2 Sơ đồ usecase
Hình 3-3 Sơ đồ tuần tự "Kiểm tra đường chín đoạn"
Hình 3-4 Sơ đồ tuần tự "Kiểm tra đường chín đoạn trên video"
Hình 3-5 Sơ đồ tuần tự "Kiểm tra đường chín đoạn trên web"
Hình 3-6 Sơ đồ chi tiết màn hình
Hình 3-7 Trang chủ.
Hình 3-8 Trang kiểm tra đường chín đoạn trên ảnh.
Hình 3-9 Trang trạng thái tiến trình quét ảnh.
Hình 3-10 Trang kết quả kiểm tra ảnh.
Hình 3-11 Trang kiểm tra đường chín đoạn trên video
Hình 3-12 Trang trạng thái tiến trình quét video.
Hình 3-13 Trang kết quả kiểm tra video.
Hình 3-14 Trang kiểm tra đường chín đoạn trên một trang web.
Hình 3-15 Trang trạng thái tiến trình tìm đường chín đoạn trên trang web.
Hình 3-16 Trang kết quả kiểm tra trang web.


5
8
8
11
11
13
14
16
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34


DANH MỤC BẢNG
Bảng 3-1 Bảng mô tả actor của hệ thống
Bảng 3-2 Bảng danh sách các usecase của ứng dụng
Bảng 3-3 Đặc tả usecase “Kiểm tra đường chín đoạn trên ảnh”.

Bảng 3-4 Đặc tả usecase "Kiểm tra đường chín đoạn trên video"
Bảng 3-5 Đặc tả usecase "Kiểm tra đường chín đoạn trên trang web"
Bảng 3-6 Danh sách các trang
Bảng 3-7 Bảng mô tả chi tiết các đối tượng trên trang chủ
Bảng 3-8 Bảng mô tả các đối tượng trên trang kiểm tra đường chín đoạn trên ảnh.
Bảng 3-9 Bảng mơ tả chi tiết các đối tượng trên trang trạng thái tiến trình qt ảnh.
Bảng 3-10 Bảng mơ tả chi tiết các đối tượng trên trang kiểm tra ảnh.
Bảng 3-11 Bảng mô tả chi tiết các đối tượng trên trang kiểm tra đường chín đoạn trên
video.
Bảng 3-12 Bảng mơ tả chi tiết các đối tượng trên trang trạng thái tiến trình quét video
Bảng 3-13 Bảng mô tả chi tiết các đối tượng trên trang kết quả kiểm tra video.
Bảng 3-14 Bảng mô tả chi tiết các đối tượng trên trang kiểm tra đường chín đoạn trên
một trang web
Bảng 3-15 Bảng mơ tả chi tiết các đối tượng trên trạng trạng thái tiến trình tìm đường
chín đoạn trên trang web.
Bảng 3-16 Bảng mô tả chi tiết các đối tượng trên trang kết quả kiểm tra trang web.
Bảng 4-1 Bảng số liệu hình ảnh phân theo nội dung
Bảng 4-2 Bảng số liệu hình ảnh phân theo vai trị
Bảng 4-4 Bảng mơ tả kết quả sau khi thực nghiệm trên bộ dữ liệu tự tạo.

17
18
18
19
20
24
25
26
27
28

29
30
31
32
33
34
35
35
36


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

Chữ cái viết tắt/kí hiệu

Cụm từ đầy đủ

1

AI

Artificial Intelligence (Trí tuệ nhân tạo)

2

ML

Machine Learning (Máy học hoặc Học máy)


3

DL

Deep Learning (Học sâu)

4

GPU

Graphic Processing Unit

5

CNN

Convolutional Neural Network

6

ANN

Artificial Neural Network


TÓM TẮT KHÓA LUẬN
Những năm gần đây, cụm từ AI (Trí tuệ nhân tạo) và cụ thể là Machine Learning (Máy
học hay Học máy) được xem là một trong những chủ đề nóng trong thời đại cơng nghệ 4.0.
AI đã và đang len lỏi vào đời sống của chúng ta với một số ứng dụng nhất định mà chúng
ta có thể hiếm khi nhận ra như: xe tự hành của Google và Tesla, hệ thống tự động tag khuôn

mặt của Facebook, FaceID (mở khóa bằng khn mặt) trên IPhoneX của Apple….
Máy học là một tập con của AI có khả năng tự học hỏi thông qua các mẫu dữ liệu được
cung cấp để đưa ra kết quả mà không cần con người phải lập trình. Trái ngược với mơ hình
lập trình cơ bản, chúng ta cung cấp một đầu vào và logic xử lý để nhận được đầu ra mong
đợi, ML cho chúng ta kết quả thông qua các mẫu mà không cần phải cung cấp logic xử lý
đây là ưu điểm lớn nhất của máy học.
Đường chín đoạn là tên gọi dùng để chỉ vùng lãnh hải tại Biển Đông mà Trung Quốc
đơn phương tuyên bố. Bất chấp tuyên bố về đường chín đoạn tại Biển Đơng của Trung
Quốc là khơng có căn cứ pháp lý của Tịa án Trọng tài thường trực. Trung Quốc vẫn đẩy
mạnh tuyên truyền chủ quyền của mình thơng qua các phương tiện như: sách, báo, phim,
ảnh, bản đồ, mạng xã hội…. Việt Nam đã phát hiện nhiều sản phẩm từ sách báo cho đến
các phần mềm trong các thiết bị cơng nghệ có chứa đường lưỡi bị, từ đó xuất phát nhu cầu
nhận dạng đặc điểm này. Đặc biệt là trên các website với lượng thơng tin khổng lồ thì việc
nhận dạng thủ cơng là vơ cùng khó khăn.
Với sự phát triển của phần cứng máy tính trong những năm gần đây và sự phát triển của
các thuật toán ML, tốc độ xử lý để đưa ra kết quả chỉ chưa đến 1 giây với độ chính xác cao,
nhanh hơn nhiều so với các phương pháp thủ công. Điều này giúp làm giảm đáng kể chi
phí phải bỏ ra để phát hiện đường chín đoạn trên ảnh.
Cũng từ nhu cầu đó, nhóm em đã tìm hiểu và quyết định chọn đề tài “ỨNG DỤNG
MÁY HỌC TRONG PHÁT HIỆN ĐƯỜNG CHÍN ĐOẠN”.
Với đề tài này, nhóm em quyết định sẽ xây dựng một chương trình có khả năng phát
hiện ảnh có đường chín đoạn. Ứng dụng tự động nhận diện đường chín đoạn trên hình, tự
1


động khoanh vùng khu vực có đường chín đoạn trong thời gian ngắn giúp tăng năng suất
nhận diện so với cách làm thủ cơng.
Nội dung chính của khóa luận được chia thành 4 chương như sau:
-


Chương 1: Tổng quan đề tài.

-

Chương 2: Cơ sở lý thuyết.

-

Chương 3: Thực nghiệm.

-

Chương 4: Kết luận và hướng phát triển.

2


Mở đầu
Trước những tuyên truyền của Trung Quốc về chủ quyền phi pháp trên Biển Đơng
thơng qua sách, báo, hình ảnh, video, bản đồ, các phần mềm chứa bản đồ có đường chín
đoạn, các nước có vị trí địa lý và chủ quyền liên quan cần có các biện pháp để ngăn
chặn điều phi lý này. Đặc biệt trên các website với lượng thơng tin khổng lồ khó có thể
kiểm sốt được lượng hình ảnh, video có thể chứa hình ảnh đường chín đoạn. Việc kiểm
tra thủ cơng rất tốn chi phí do được thực hiện bởi con người. Chưa kể đến việc này có
thể gây ra sai sót trong q trình kiểm tra dẫn đến việc để sót những sản phẩm có chứa
hình ảnh đường chín đoạn.
Sự phát triển mạnh mẽ của phần cứng máy tính trong những năm gần đây đã phá bỏ
nhiều hạn chế trong việc xử lý tính tốn. Các thuật tốn tưởng chừng khó có thể thực
thi hoặc thực thi với thời gian rất lâu nay đã được cải thiện. Giúp cải thiện nhiều trong
lĩnh vực xử lý tính tốn góp phần cho ra đời nhiều thuật tốn mới với độ chính xác cao

hơn.
Các thuật toán máy học (ML) mới lần lượt ra đời đặc biệt là Deep Learning (Học
sâu) một tập con của máy học có khả năng học trên các tập dữ liệu lớn, tận dụng tối đa
khả năng tính tốn của phần cứng giúp cho việc nhận diện chỉ trong vòng chưa đầy một
giây với độ chính xác cao góp phần hỗ trợ thực hiện tự động và làm giảm sự sai sót của
con người trong q trình xử lý ảnh và đưa ra kết quả dự đốn.
Do đó việc ứng dụng máy học vào giải quyết bài toán phát hiện đường chín đoạn sẽ
giúp giải quyết các vấn đề mà các biện pháp thủ công gây ra đồng thời tiết kiệm chi phí
bỏ ra để phát hiện đường 9 đoạn đặc biệt là vấn đề thời gian khi phải xử lý một khối
lượng lớn hình ảnh.

3


Chương 1 Tổng quan đề tài
Tổng quan vấn đề

1.1.

Sau phán quyết của Tòa trọng tài thường trực trong vụ kiện với Philippines, Trung
Quốc vẫn không ngừng tuyên truyền sai sự thật về đường chín đoạn. Gần đây, Việt
Nam đã phát hiện nhiều ấn phẩm từ sách, báo đến hình ảnh, video có hình ảnh đường
chín đoạn. Đây là một trong những vấn đề đáng quan tâm vì chưa có một lời giải tối ưu
cho việc phát hiện đường chín đoạn. Nếu chỉ dựa vào các cơ qua kiểm duyệt, kiểm sốt
nội dung thì việc bỏ sót ấn phẩm có đường chín đoạn là rất cao vì sử dụng yếu tố con
người trong việc kiểm tra dẫn nên việc để sót là hiển nhiên.
Nắm bắt tình hình đó, đề tài khóa luận này dựa theo định nghĩa về đường chín đoạn
như sau: “Đường chín đoạn là đường phân định lãnh hải trái phép của Trung Quốc
trên Biển Đơng gồm chín đoạn kéo dài qua lãnh hải của các nước khu vực Đơng Nam
Á trong đó có Việt Nam”. Theo định nghĩa đó, đề tài khóa luận đề xuất ứng dụng thuật

tốn máy học để tạo ra một phần mềm có khả năng phát hiện đường chín đoạn trên ảnh,
video và trên một trang web.
Tổng quan các đề tài nghiên cứu trong nước.

1.2.

Hiện tại các đề tài trong và ngoài nước nghiên cứu về nhận diện đường chín đoạn rất
ít. Chỉ có Zalo AI đã phát triển ứng dụng Illegal Nine-dash Line Detection hình 1-1
giúp phát hiện đường chín đoạn trên ảnh.
Ứng dụng của Zalo AI còn tồn tại một số hạn chế:
-

Chỉ áp dụng được cho ảnh, không sử dụng để quét video.

-

Không thể kiểm tra được liệu rằng một trang web có tồn tại đường chín đoạn
hay khơng.

4


Hình 1-1 Ứng dụng Illegal Nine-dash Detection của Zalo AI
Một số vấn đề còn tồn tại

1.3.

Qua phần tổng quan các đề tài nghiên cứu trong và ngoài nước chúng ta thấy được:
-


Chưa có nhiều nghiên cứu ứng dụng trong việc nhận diện đường chín đoạn
trên ảnh.

-

Chưa có ứng dụng có khả năng quét trên video.

-

Chưa có ứng dụng giúp kiểm tra xem có tồn tại hình ảnh chứa đường chín
đoạn trong một trang web hay không.

1.4.

Mục tiêu và nội dung thực hiện

-

Nghiên cứu bài toán phát hiện và nhận dạng đối tượng.

-

Nghiên cứu các hình ảnh, video có đường chín đoạn và thu thập tạo bộ dữ liệu
phục vụ thực hiện KLTN này và hỗ trợ các nhóm nghiên cứu sau này.

-

Tìm hiểu về học sâu và chi tiết thuật toán YOLO (thuật toán dùng trong bài toán
nhận dạng đối tượng).


-

Tìm hiểu về webcrawler như ScrapySharp ứng dụng trong việc lấy thơng tin hình
ảnh, video từ trang web.
5


-

Xây dựng phần mềm thân thiện với người dùng giúp tự động phát hiện đường chín
đoạn trên hình ảnh, video và trang web.

Chương 2 Cơ sở lý thuyết
2.1.

Giới thiệu Máy học

2.1.1. Khái niệm
Máy học (ML) là một lĩnh vực con của trí tuệ của trí tuệ nhân tạo (AI). Mục tiêu
của máy học nói chung là hiểu được cấu trúc của dữ liệu và điều chỉnh dữ liệu đó
thành các mơ hình mà con người có thể hiểu và sử dụng.
Trong máy tính truyền thống, chúng ta xây dựng thuật toán bằng cách sắp xếp
các lệnh theo một thứ tự nhất định một cách rõ ràng để máy tính có thể sử dụng để
đưa ra kết quả. Đối với các thuật tốn máy học, chúng cho phép máy tính học từ dữ
liệu đầu vào từ đó tự động xây dựng các mơ hình dựa trên dữ liệu đầu vào và dựa
vào mơ hình đó để đưa ra kết quả.
-

Một số ứng dụng máy học cơ bản:
+ Dự đoán: Dùng trong các hệ thống dự đoán như dự báo thời tiết, giá


nhà đất, cổ phiếu…
+ Nhận dạng hình ảnh: Dùng để phát hiện các vật thể như nhà cửa, cây

cối, phương tiện giao thơng, khn mặt người…
+ Nhận dạng giọng nói: Dùng trong các phần mềm chuyển giọng nói

thành dạng văn bản hoặc nhận dạng giọng nói trong việc ra lệnh cho
các thiết bị làm việc…
+ Chẩn đoán y tế: Máy học được đào tạo để nhận ra các mô ung thư.
+ Ngồi ra máy học cịn được ứng dụng trong ngành tài chính, ngân

hàng nhằm phát hiện ra gian lận và kiểm tra thẻ tín dụng.

6


2.1.2. Phân loại thuật toán máy học.
Theo phương thức học, các thuật toán máy học được phân loại thành 4 nhóm
chính:
-

Học có giám sát (Supervised learning): là thuật tốn dự đoán đầu ra
dựa trên các cặp (đầu vào, đầu ra) đã biết từ trước. Các cặp dữ liệu này
còn được gọi là (dữ liệu, nhãn). Học có giám sát là thuật toán học phổ
biến nhất trong các thuật toán máy học.

-

Học không giám sát (Unsupervised learning): Trái ngược với học có

giám sát, học khơng giám sát được cung cấp rất nhiều dữ liệu nhưng
không được gán nhãn và sẽ được cung cấp các cơng cụ để có thể hiểu
được các thuộc tính của dữ liệu đã cho. Từ đó nó có thể phân nhóm,
phân cụm hoặc tổ chức dữ liệu theo cách mà con người có thể hiểu và
truy cập được dữ liệu mới được tổ chức.

-

Học bán giám sát (Semi-supervised learning): Học bán giám sát là sự
kết hợp giữa học có giám sát và học khơng giám sát. Nó kết hợp một
phần nhỏ dữ liệu được gán nhãn với một lượng lớn dữ liệu khơng được
gán nhãn để có thể tạo ra sự cải thiện đáng kể về độ chính xác của việc
học.

-

Học tăng cường (Reinforcement learning): Học tăng cường là thuật
toán giúp cho hệ thống xác định hành vi dựa trên hồn cảnh để có thể
đạt được lợi ích cao nhất. Hiện tại, học tăng cường được áp dụng vào
Lí thuyết trị chơi như các thuật tốn để xác định nước đi tiếp theo để
đạt được điểm số cao nhất.

2.2.

Khái niêm học sâu và mạng thần kinh nhân tạo

2.2.1. Khái niệm học sâu
Học sâu (Deep Learning) là tập con của thuật toán máy học dựa trên cách tiếp
cận mạng thần kinh nhân tạo. Thuật toán học sâu cũng sử dụng các phương pháp
học có giám sát và khơng giám sát giống như thuật toán máy học.

7


Hình 2-1 Sơ đồ tổng quát các lĩnh vực trong Trí tuệ nhân tạo.
2.2.2. Khái niệm mạng thần kinh nhân tạo
Mạng thần kinh nhân tạo (Artificial Neural Network – ANN) được thiết kế để
mơ phỏng một số tính năng của mạng thần kinh sinh học. Nó bao gồm các nút được
nối với nhau để tính tốn bằng cách lan truyền thơng tin theo các kết nối và tính tốn
giá trị mới tại các nút đó.

Hình 2-2 Mơ hình mạng thần kinh nhân tạo.

8


Một mạng thần kinh nhân tạo cơ bản gồm 3 lớp: Input Layer, Hidden Layer,
Output Layer. Input Layer là lớp nhận dữ liệu đầu vào. Hidden Layer là tầng phân
tích các thơng tin dựa trên dữ liệu đầu vào. Có thể có nhiều Hidden Layer nối tiếp
nhau để có thể trích rút được các thơng tin cần thiết. Output Layer là tầng nhận kết
quả phân tích từ Hidden Layer để đưa ra kết quả.
2.2.3. Mang thần kinh tích chập (CNN)
Mạng thần kinh tích chập bao gồm nhiều lớp tích chập chuyên dùng để xử lý ảnh,
phân loại, phân đoạn. Tương tự cấu trúc mạng thần kinh của con người, mỗi khi
nhận một hình ảnh có kích thước bất kỳ, nó kích hoạt một loạt các lớp neural để
trích rút ra những đặc trưng của ảnh. Kết quả của lớp phía trước sẽ là đầu vào của
lớp phía sau. Những lớp neural bên ngồi sẽ lọc tìm các đặc trưng về cạnh viền
(cạnh đứng, cạnh dọc) của vật thể trong khi nhựng lớp neural bên trong sẽ tìm các
đặc trưng sẽ nhận diện những đường nét phức tạp hơn. Lớp cuối cùng của mạng
đóng vai trị đưa ra kết quả như phân loại hoặc nhận diện ảnh. Thông thường một
mạng thần kinh tích chập sẽ gồm 3 thành phần: lớp tích chập, lớp giảm kích thước,

lớp kích hoạt và một kết nối đầy đủ (Fully connected).
2.2.3.1.

Lớp tích chập (Convolutional layer).

Lớp tích chập là thành phần quan trọng nhất trong mạng CNN. Đây là lớp có
vai trị lọc ra các đặc trưng của ảnh (lọc các cạnh dọc, đứng và các đường nét
phức tạp). Nó hoạt động như một tấm lọc (filter) có kích thước mxn (m là số
hàng, n là số cột). Tấm lọc này sẽ nhân tích chập với ma trận con cùng kích
thước tương ứng trên ảnh theo thứ tự từ trái qua phải và từ trên xuống dưới. Với
mỗi lần nhân tích chập, từng phần tử của ma trận sẽ được nhân với các phần tử
trên ma trận con sau đó cộng dồn tất cả các kết quả nhân lại. Kết quả sẽ được
sắp xếp trên ma trận mới theo thứ tự di chuyển của filter để tạo ra một ma trận
nhỏ hơn so với ma trận ban đầu gọi là feature map.

9


Hình 2-3 Cơ chế nhân tích chập trong CNN
Do kích thước ảnh mới nhỏ hơn kích thước ảnh ban đầu nên có một số cơ chế
như stride và padding để đảm bảo kích thước ma trận dữ liệu và ma trận đặc
trưng bằng nhau. Stride là khoảng cách dịch chuyển của filter trên ma trận gốc.
Padding là tạo ra phần bao quanh ma trận gốc để tránh trường hợp các vật thể
nằm ở cạnh của ảnh gốc bị lọc mất.
Công thức tính ma trận đầu ra của CNN với:
-

Đầu vào: 𝑛 ∗ 𝑛.

-


Padding: 𝑝

-

Stride: 𝑠

-

Kích thước filter: 𝑓 ∗ 𝑓

-

Đầu ra: [

2.2.3.2.

(𝑛+2𝑝−𝑓)
𝑠

(𝑛+2𝑝−𝑓)

+ 1] ∗ [

𝑠

− 1]

Lớp giảm kích thước (Pooling Layer)


Lớp giảm kích thước (Pooling Layer) làm giảm kích thước ảnh đầu vào để
gia tăng tốc độ tính tốn. Lớp này sẽ chia ma trận đầu vào ban đầu thành các
phần bằng nhau. Với mỗi phần lớp này sẽ chọn ra phần tử lớn nhất (Max Pooling)
hoặc tính trung bình cộng các phần tử (Average Pooling) để cho ra ảnh mới có
kích thước nhỏ hơn thuận tiện cho việc tính toán.

10


Hình 2-4 Thuật tốn Max Pooling.
Hình 2-3 mơ tả cách hoạt động của thuật toán Max pooling. Đầu tiên ảnh đầu
vào là một ma trận 4x4 được chia thành 4 ma trận có kích thước 2x2. Sau đó với
mỗi ma trận 2x2 thuật toán chọn ra phần tử lớn nhất trong từng ma trận. Kết quả
thu được một ma trận có kích thước 2x2 như hình 2-3. Đối với thuật toán
Average Pooling cũng sẽ thực hiện tương tự, nhưng chỉ khác ở chỗ sẽ tính trung
bình cộng trên từng ma trận 2x2.
2.2.3.3.

Lớp kích hoạt (Activation Layer)

Lớp kịch hoạt là lớp dùng để lấy các đặc trưng của ảnh và giữ lại các điểm dữ
liệu quan trọng.

Hình 2-5 Lớp kích hoạt trong CNN

11


2.2.3.4. Lớp kết nối đầy đủ (Fully connected)
Lớp kết nối đầy đủ là lớp kết nối tất cả các tham số từ ma trận đặc trưng để

xây dựng kết quả đầu ra của mơ hình. Thơng thường lớp này sẽ được đặt ở cuối
cùng trong mạng CNN để tổng hợp các đặc trưng và thu gọn lại. Mỗi neural
trong Fully connected đều kết nối đến các neural ở lớp còn lại nhưng khơng kết
nối với neural cùng lớp.
2.3.

Thuật tốn Yolo

YOLO (You Only Look Once) là một thuật toán nhận diện vật thể giống với các
thuật toán như SSD, R-CNN. Về độ chính xác thì YOLO có thể khơng bằng các thuật
toán trên nhưng bù lại tốc độ xử lý lại là một điểm cộng. Nó có thể đạt được tốc độ gần
như real-time mà độ chính xác khơng giảm q nhiều so với các thuật tốn như SSD,
R-CNN. YOLO có thể dự báo và gán nhãn cho cùng lúc nhiều loại vật thể khác nhau
trên một tấm ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức ảnh.
YOLO sử dụng cách tiếp cận hoàn toàn khác so với các thuật tốn nhận diện hình
ảnh khác. Nó áp dụng một neural network cho tồn bộ ảnh thay vì chỉ áp dụng cho các
vị trí và phạm vi. Các vùng có điểm cao trên ảnh được gọi là vùng phát hiện. Yolo chia
hình ảnh thành các vùng sau đó dự đoán các bounding boxes và xác suất trên mỗi vùng
đã chia. Những bounding boxes này được tính theo xác suất dự đốn.
Thuật tốn YOLO có một số lợi thế hơn so với các thuật toán nhận diện vật thể khác.
Trong q trình kiểm tra ảnh, YOLO qt tồn bộ ảnh để đưa ra kết quả dự đoán dựa
trên ngữ cảnh tồn cục của ảnh. Nó đưa ra dự đốn chỉ với một mạng đánh giá duy nhất
không như các thuật tốn như R-CNN cần tới hàng nghìn chỉ cho một ảnh duy nhất.
Điều này cải thiện tốc độ nhận dạng một cách đáng kể, nhanh gấp 1000 lần so với thuật
toán R-CNN, gấp 100 lần so với Fast R-CNN.

12


2.3.1. Kiến trúc mạng yolo

Kiến trúc YOLO bao gồm 2 phần: base network là các mạng CNN làm nhiệm vụ
trích xuất các đặc trưng của ảnh. Phần phía sau là các extra network làm nhiệm vụ
phát hiện các vật thể trên các feature map của base network.

Hình 2-6 Kiến trúc mạng YOLO.
Hình 2-5 Mơ tả kiến trúc mạng YOLO, trong đó thành phần Darknet
Architecture là phần base network đóng vai trò trong việc lọc ra các đặc trưng của
ảnh. Output của thành phần này sẽ là Input cho phần extra network bao gồm các
fully connected để thực hiện nhận diện, gán nhãn và tính tốn tọa độ bounding box
cho vật thể.
Trong YOLO version 3, base network được tác giả sử dụng là mang Darknet53.
Mạng này gồm 53 lớp convolutional kết nối nhau liên tiếp, mỗi layer được theo sau
bởi một batch normalization và một activation layer. Kiến trúc của Darknet53 được
mơ tả như hình 2-6.

13


Hình 2-7 Mạng Darknet53.
Ở phiên bản YOLO 4, tác giả đã thay thế phần base network này bằng mạng
CSPDarknet53. Mạng sử dụng mạng Darknet53 (đã giới thiệu ở phiên bản
Yolov3) kết hợp thuật toán CSPNet trong việc phân chia các feature map (output
của base network) thành 2 phần sau đó kết hợp chúng lại thông qua hệ thống gồm
nhiều giai đoạn.
2.3.2. Đầu vào của YOLO
YOLO hỗ trợ 2 đầu vào chính là 416x416 và 608x608. Mỗi mơt đầu vào sẽ có
thiết kế các layer phù hợp với các shape của đầu vào. Sau khi đi qua các
14



convolutional layer thì kích thước ảnh sẽ giảm theo cấp số nhân là 2. Feature map
thu được có kích thước tương đối nhỏ để dự báo vật thể.
Đối vói input là 416x416, feature map sẽ có các kích thước là 13x13, 26x26 và
52x52. Với inpụt là 608x608, kích thước của feature map sẽ là 19x19, 38x38 và
72x72.
2.3.3. Đầu ra của YOLO
Đầu ra của YOLO là một vector bao gồm các thành phần như sau:
𝑦 𝑇 = [𝑝0 , (𝑡𝑥 , 𝑡𝑦 , 𝑡𝑤 , 𝑡ℎ ), (𝑝1 , 𝑝2 , … , 𝑝𝑐 )]
Trong đó:
-

𝑝0 : xác suất dự báo vật thể xuất hiện trong bounding box.

-

(𝑡𝑥 , 𝑡𝑦 , 𝑡𝑤 , 𝑡ℎ ): giúp xác định bounding box. Trong đó 𝑡𝑥 , 𝑡𝑦 là tọa độ tâm
và 𝑡𝑤 , 𝑡ℎ là chiều dài, rộng của bounding box.

-

(𝑝1 , 𝑝2 , … , 𝑝𝑐 ): vector phân phối xác xuất dự đốn của từng đối tượng nhận
dạng.

Chương 3 Phân tích thiết kế chương trình
3.1.

Kiến trúc hệ thống

Với sự phát triển của các thiết bị phần cứng, việc phát triển một ứng dụng chạy được
trên mọi loại thiết bị đòi hỏi rất nhiều chi phí. Nhu cầu cần tìm một kiến trúc để phát

triển ứng dụng cho mọi loại thiết bị là một việc vơ cùng thiết thực. Sau khi tìm hiểu,
tham khảo các loại kiến trúc phần mềm thì nhóm đã quyết chọn kiến trúc Client-Server
hình 3-1. Kiến trúc này cho phép tách riêng phần xử lý phía dưới với giao diện người

15


dùng, do đó sẽ khơng cần phải viết lại tồn bộ logic xử lý cho ứng dụng trên từng thiết
bị, mà chủ yếu chỉ tập trung xây dựng phần giao diện sao cho phù hợp với các thiết bị.

.
Hình 3-1 Kiến trúc Client-Server
Kiến trúc hệ thống gồm 3 phần chính:
-

Front-end: Đây là thành phần chịu trách nhiệm tương tác với người dùng trên
mọi nền tảng, mọi thiết bị.

-

Application server: Thành phần chịu trách nhiệm xử lý các yêu cầu do người
dùng thực hiện trên Front-end.

-

Database: Nơi lưu trữ và quản lý việc truy suất cơ sở dữ liệu.

Thiết kế này giúp cho hệ thống có thể đáp ứng được trên nhiều nền tảng khác nhau mà
không cần phải phát triển nhiều phiên bản cho các nền tảng phần cứng như điện thoại, máy


16


×