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

TIỂU LUẬN đề tài NHẬN DIỆN ĐỘNG vật BẰNG YOLOv5

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 (2.43 MB, 40 trang )

ĐẠI HỌC ĐÀ NẴNG
PHÂN HIỆU TẠI KON TUM

BÁO CÁO TIỂU LUẬN
ĐỀ TÀI

NHÂN DIỆN ĐỘNG VÂT BẰNG YOLOv5

GIÁO VIÊN HƯỚNG DẪN

: TS. HUỲNH HỮU HƯNG

SINH VIÊN THỰC HIỆỆ̣N

: SY THATOM

LỚP

: K12TT

MSSV

:1817480201026

Kon tum, tháng 10 năm 2022
1

TIEU LUAN MOI download : moi nhat


ĐẠI HỌC ĐÀ NẴNG


PHÂN HIỆU TẠI KON TUM

BÁO CÁO TIỂU LUẬN
ĐỀ TÀI

NHÂN DIỆN ĐỘNG VÂT BẰNG YOLOv5

GIÁO VIÊN HƯỚNG DẪN

: TS. HUỲNH HỮU HƯNG

SINH VIÊN THỰC HIỆỆ̣N

: SY THATOM

LỚP

: K12TT

MSSV

:1817480201026

Kon tum, tháng 10 năm 2022
2

TIEU LUAN MOI download : moi nhat


MỤC LỤC

DANH MỤC HÌNH ẢNH...............................................................................................................
DANH MUC BANG.......................................................................................................................
CHƯƠNG 1: TỔNG QUAN...........................................................................................................
1.1

Giới thiệu..........................................................................................................................

1.2

Mục tiêu đề tài..................................................................................................................

1.3

Giới hạn đề tài....................................................................................................................

1.4

Phương phap nghiên cứu..................................................................................................

1.5

Đối tượng và phạm vi nghiên cứu....................................................................................

1.6

Bố cục quyển bao cao.......................................................................................................

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT................................................................................................
2.1


Tổng quan về YOLO........................................................................................................

2.1.1

Kiến trúc mạng YOLO................................................................................

2.1.2

Nguyên lý hoạt động của mạng YOLO......................................................

2.2

Output của YOLO...........................................................................................................

2.2.1

Dự bao trên nhiều feature map...................................................................

2.2.2

Anchor box.................................................................................................

2.2.3

Hàm mất mat ( Loss Function)..................................................................

2.2.3.1 Classification Loss.............................................................................................................
2.2.3.2 Localization Loss...............................................................................................................
2.2.3.3 Confidence Loss................................................................................................................
2.3

2.3.1
2.4
2.4.1

Dự bao bounding box......................................................................................................

Non-max suppression.................................................................................

Thuật toan sử dụng trong YOLOv5................................................................................

Phân loại YOLOv5.....................................................................................
3

TIEU LUAN MOI download : moi nhat


2.5 Cấu trúc của YOLOv5 trong việc nhận diện vật thể (Object Detection).................................23
2.6 Những cải tiến của YOLOv5 so với cac phiên bản trước........................................................24
CHƯƠNG 3 : THIẾT KẾ HÊ THỐNG.........................................................................................25
3.1 Tập dữ liệu chuẩn bị cho qua trình huấn luyện....................................................................... 25
3.2 Qua trình huấn luyện............................................................................................................... 28
3.2.1 Tiến hành huấn luyện............................................................................................................29
CHƯƠNG 4: KẾT QUA............................................................................................................... 31
4.1 Kết quả qua trình huấn luyện...................................................................................................31
4.2 Hoạt động của hệ thống...........................................................................................................32
CHƯƠNG 5: KẾT LUẬN VA HƯỚNG PHÁT TRIỂN............................................................... 34
5.1 Kết luận....................................................................................................................................34
5.2 Hướng phat triển......................................................................................................................34
PHỤ LỤC...................................................................................................................................... 35
TAI LIÊU THAM KHAO............................................................................................................. 38


4

TIEU LUAN MOI download : moi nhat


DANH MỤC HÌNH ẢNH
Hình 2.1: Kiến trúc mạng YOLO.................................................................................................. 10
Hình 2.2: Các layer trong mạạ̣ng darknet-53..................................................................................11
Hình 2.3: Cach hoạt động của mạng YOLO..................................................................................12
Hình 2.4: Kiến trúc một output của model YOLO........................................................................13
Hình 2.5: Các feature maps của mạng YOLOv3 với input shape là 416x416, output là 3 feature
maps có kích thước lần lượt là 13x13, 26x26 và 52x52................................................................14
Hình 2.6: Xác địạ̣nh anchor box cho mộạ̣t vậạ̣t thểể............................................................................15
Hình 2.7: Khi 2 vậạ̣t thểể người vàà̀ xe trùng mid point vàà̀ cùng thuộạ̣c mợạ̣t cell. Tḥạ̣t tốn sẽ cần
thêm nhữữ̃ng lượạ̣t tiebreak đểể quyếế́t địạ̣nh đâu làà̀ class cho cell.......................................................16
Hình 2.8: Tính toan Loss Function cho 2 object: tam giac và hình thoi........................................17
Hình 2.9: Công thứế́c ướế́c lượạ̣ng bounding box từ anchor box.......................................................20
Hình 2.10: Non-max suppression. Từ 3 bounding box ban đầu cùng bao quanh chiếế́c xe đã giảểm
x́ế́ng cịn mợạ̣t bounding box cuốế́i cùng....................................................................................... 20
Hình 2.11: So sanh kich thươc lưu trữ Model cua cac mẫu mã YOLOv5..................................... 22
Hình 2.12: So sanh độ trễ trung bình giữa cac phiên bản YOLO(v3,v4,v5).................................23
Hình 2.13: Cấu trúc nhận diện vật thể của YOLOv5.................................................................... 24
Hình 3.1: Hình ảnh về Trâu và label của tưng hình.................................................................................. 25
Hình 3.2: Hình ảnh về Hươu và label của tưng hình................................................................................ 26
Hình 3.3: Hình ảnh về Voi và label của tưng hình.................................................................................... 26
Hình 3.4: Hình ảnh về Hươu cao cổể và label của tưng hình.................................................................. 27
Hình 3.5: Sử dụng roboflow.ai để gia tăng tập dữ liệu vốn co.............................................................. 27
Hình 3.6: clone Yolov5 và cài đặt cac dependencies............................................................................... 28
Hình 3.7: Thêm cac hình và label cho qua trình huấn luyện.........................................................28

Hình 3.8: Phân chia hình theo label tưng loài............................................................................................ 29
Hình 3.9: Qua trình huấn luyện với 16 lớp và 100 lân..................................................................29
Hình 4.1: Kết quả display sau khi đa train xong........................................................................... 30

5

TIEU LUAN MOI download : moi nhat


DANH MUC BANG
Bảng 1: Đanh gia mức độ chinh xac cua qua trình nhận diện......................................................32

6

TIEU LUAN MOI download : moi nhat


TỔNG QUAN
Giới thiệu
Ngàà̀y nay, tríế́ tuệạ̣ nhân tạạ̣o-Artificial Intelligence (AI) đang ngày càng phổ biến và goế́p phần thay
đổểi sâu sắc nhiềà̀u khíế́a cạạ̣nh trong cuộạ̣c sốế́ng hằng ngàà̀y. Trong đoế́ thịạ̣ giác máy tíế́nh-Computer
Vision (CV) làà̀ mộạ̣t lĩnh vựạ̣c quan trọng củểa AI 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.
Mạạ̣ng Nơron học sâu (Deep learning Network) làà̀ lĩnh vựạ̣c nghiên cứế́u các thuậạ̣t toán, chương
trìà̀nh máy tíế́nh đểể máy tíế́nh coế́ thểể học tậạ̣p vàà̀ đưa ra nhữữ̃ng dựạ̣ đoán như con người. Noế́ đượạ̣c ứế́ng
dụạ̣ng vàà̀o nhiềà̀u ứế́ng dụạ̣ng khác nhau như khoa học, kỹ thuậạ̣t, các lĩnh vựạ̣c đời sốế́ng khác cũng như
các ứế́ng dụạ̣ng vềà̀ phân loạạ̣i vàà̀ phát hiệạ̣n đốế́i tượạ̣ng. Mộạ̣t víế́ dụạ̣ điểển hìà̀nh làà̀ CNN (Convolutional
Neural Network) áp dụạ̣ng đểể nhậạ̣n dạạ̣ng tựạ̣ độạ̣ng, tìà̀m hiểểu các mẫu phân biệạ̣t từ ảểnh bằng cách
xếế́p chồng liên tiếế́p các lớế́p lên nhau vàà̀ trong nhiềà̀u ứế́ng dụạ̣ng, CNN hiệạ̣n nay đượạ̣c coi làà̀ trìà̀nh
phân loạạ̣i ảểnh mạạ̣nh vàà̀ thúế́c đẩểy các công nghệạ̣ trong lĩnh vựạ̣c thịạ̣ giác máy tíế́nh, làà̀m đòn bẩểy cho

quá trìà̀nh học máy. Nhưng bên cạạ̣nh đoế́, đểể phân loạạ̣i đượạ̣c mộạ̣t đốế́i tượạ̣ng thìà̀ công nghệạ̣ CNN tiêu
tốế́n cựạ̣c lớế́n vềà̀ tàà̀i nguyên như băng thông, bộạ̣ nhớế́ vàà̀ khảể năng xửể lýế́ củểa phần cứế́ng.
Đểể giảểm thiểểu nhữữ̃ng tàà̀i nguyên tiêu hao nàà̀y, nhữữ̃ng tḥạ̣t tốn, mơ hìà̀nh giảểi tḥạ̣t theo thời gian
đượạ̣c ra đời ngàà̀y càà̀ng nhiềà̀u vàà̀ trong đoế́ coế́ mơ hình YOLOv5 cho bàà̀i toán nhậạ̣n diệạ̣n, cụạ̣ thểể làà̀
ứế́ng dụạ̣ng vàà̀o đềà̀ tàà̀i “Nhận diệỆ̣n động vật”.

Mục tiêu đề tài
Vận dụng được những kiến thức cơ bản về huấn luyện mạng nơ-ron.
Xây dựng được một mô hình co khả năng huấn luyện cac tập dữ liệu động vật khac nhau.
Nhận diện được tất cả cac loài động vật co trong tập dữ liệu.

Giới hạn đề tài
Trong đề tài này chỉ nhậạ̣n diệạ̣n đượạ̣c 1loàà̀i độạ̣ng vậạ̣t làà̀: Chim bổể câu Tập
dữ liệu coế́ sốế́ lượạ̣ng khá íế́t ảểnh hưởng đếế́n độạ̣ chíế́nh xác củểa mộạ̣ hìà̀nh.

Phương pháp nghiên cứu
Dựa trên cac kiến thức đa hoc về cach huấn luyện một mạng nơ-ron.
Thu thậạ̣p tàà̀i liệạ̣u, tham khảểo nhữữ̃ng ứế́ng dụạ̣ng liên quan đã coế́ trướế́c đoế́.
Đối tượng và phạm vi nghiên cứu

Nhận dạng cac loài động vật hoang da trong tự nhiên co trong tập dữ liệu, ở
đây làà̀ 1 loàà̀i độạ̣ng vậạ̣t: Chim bổể câu

7

TIEU LUAN MOI download : moi nhat


CƠ SỞ LÝ THUYẾT
Trong vàà̀i năm trở lạạ̣i đây, Object detection làà̀ mộạ̣t trong nhữữ̃ng đềà̀ tàà̀i rấế́t hot củểa deep learning

bởi khảể năng ứế́ng dụạ̣ng cao, dữữ̃ liệạ̣u dễ chuẩển bịạ̣ vàà̀ kếế́t quảể ứế́ng dụạ̣ng thìà̀ cựạ̣c kìà̀ nhiềà̀u. Các thuậạ̣t
toán mớế́i củểa Object detection như YOLO, SSD coế́ tốế́c độạ̣ khá nhanh vàà̀ độạ̣ chíế́nh xác cao nên
giúế́p cho Object Detection coế́ thểể thựạ̣c hiệạ̣n đượạ̣c các tác vụạ̣ dường như làà̀ real time, thậạ̣m chíế́ làà̀
nhanh hơn so vớế́i con người màà̀ độạ̣ chíế́nh xác không giảểm. Các mô hìà̀nh cũng trở nên nhẹ hơn
nên coế́ thểể hoạạ̣t độạ̣ng trên các thiếế́t bịạ̣ IoT đểể tạạ̣o nên các thiếế́t bịạ̣ thông minh.

Tổng quan về YOLO

YOLO(You only look once) làà̀ mộạ̣t mô hìà̀nh mạạ̣ng CNN cho việạ̣c phát hiệạ̣n,
nhậạ̣n dạạ̣ng, phân loạạ̣i đốế́i tượạ̣ng. YOLO đượạ̣c tạạ̣o ra từ việạ̣c kếế́t hợạ̣p giữữ̃a các
convolutional layers vàà̀ connected layers. Trong đoế́p các convolutional layers sẽ
tríế́ch xuấế́t ra các feature củểa ảểnh, cịn full-connected layers sẽ dựạ̣ đốn ra xác suấế́t
đoế́ vàà̀ tọa độạ̣ củểa đốế́i tượạ̣ng.[1]
YOLO coế́ thểể khơng phảểi làà̀ tḥạ̣t tốn tớế́t nhấế́t nhưng noế́ làà̀ tḥạ̣t tốn nhanh
nhấế́t trong các lớế́p mơ hìà̀nh object detection. Noế́ coế́ thểể đạạ̣t đượạ̣c tốế́c độạ̣ gần như real
time màà̀ độạ̣ chíế́nh xác không quá giảểm so vớế́i các model tḥạ̣c top đầu.
YOLO làà̀ tḥạ̣t tốn object detection nên mụạ̣c tiêu củểa mô hìà̀nh không chỉ làà̀
dựạ̣ báo nhãn cho vậạ̣t thểể như các bàà̀i toán classification màà̀ noế́ còn xác địạ̣nh location
củểa vậạ̣t thểể. Do đoế́ YOLO coế́ thểể phát hiệạ̣n đượạ̣c nhiềà̀u vậạ̣t thểể coế́ nhãn khác nhau
trong mộạ̣t bứế́c ảểnh thay vìà̀ chỉ phân loạạ̣i duy nhấế́t mộạ̣t nhãn cho mộạ̣t bứế́c ảểnh.
Mộạ̣t trong nhưng ưu điểểm màà̀ YOLO đem lạạ̣i đoế́ làà̀ chỉ sửể dụạ̣ng thơng tin toàà̀n
bợạ̣ bứế́c ảểnh mợạ̣t lần vàà̀ dựạ̣ đốn toàà̀n bộạ̣ object box chứế́a các đốế́i tượạ̣ng, mô hìà̀nh
đượạ̣c xây dựạ̣ng theo kiểểu end-to-end nên đượạ̣c huấế́n luyệạ̣n hoàà̀n toàà̀n bằng gradient
descent.
Tính đến thơi điểm hiện tại YOLO đa co tổng cộng 5 phiên
bản(v1,v2,v3,v4,v5) . Trong đo bản v5 là bản mới nhất, khac phục được cac nhược
điểm của cac phiên bản trước như: lỗi vềà̀ việạ̣c xác địạ̣nh vịạ̣ tríế́ củểa vậạ̣t thểể, các ràà̀ng
buộạ̣c vềà̀ không gian trên nhữữ̃ng bounding box, mỗi grid cell chỉ coế́ thểể predict rấế́t íế́t
bounding box,...
2.1.1 Kiến trúc mạng YOLO


Kiếế́n trúế́c YOLO bao gồm: Base network làà̀ các mạạ̣ng convolution làà̀m
nhiệạ̣m vụạ̣ tríế́ch xuấế́t đặạ̣c trưng. Phần phíế́a sau làà̀ nhữữ̃ng Extra Layers đượạ̣c áp dụạ̣ng
đểể phát hiệạ̣n vậạ̣t thểể trên feature map củểa base network.
Base network củểa YOLO sửể dụạ̣ng chủể yếế́u làà̀ các convolutional layer vàà̀ các
fully conntected layer. Các kiếế́n trúế́c YOLO cũng khá đa dạạ̣ng vàà̀ coế́ thểể tùy biếế́n
thàà̀nh các version cho nhiềà̀u input shape khác nhau.[1]
8

TIEU LUAN MOI download : moi nhat


Hình 2.1: Kiến trúc mang YOLO

Thàà̀nh phần Darknet Architechture đượạ̣c gọi làà̀ base network coế́ tác dụạ̣ng
tríế́ch suấế́t đặạ̣c trưng. Output củểa base network làà̀ mộạ̣t feature map coế́ kíế́ch thướế́c
7x7x1024 sẽ đượạ̣c sửể dụạ̣ng làà̀m input cho các Extra layers coế́ tác dụạ̣ng dựạ̣ đốn
nhãn vàà̀ tọa đợạ̣ bounding box củểa vậạ̣t thểể.
Ở phiên bản thứ 3 của YOLO tức là YOLOv3 tác giảể áp dụạ̣ng mộạ̣t mạạ̣ng
feature extractor làà̀ darknet-53. Mạạ̣ng nàà̀y gồm 53 convolutional layers kếế́t nốế́i liên
tiếế́p, mỗi layer đượạ̣c theo sau bởi mộạ̣t batch normalization vàà̀ mộạ̣t activation Leaky
Relu. Đểể giảểm kíế́ch thướế́c củểa output sau mỗi convolution layer, tác giảể down
sample bằng các filter vớế́i kíế́ch thướế́c làà̀ 2. Mẹo nàà̀y coế́ tác dụạ̣ng giảểm thiểểu sốế́
lượạ̣ng tham sốế́ cho mô hìà̀nh.

9

TIEU LUAN MOI download : moi nhat



Hình 2.2: Các layer trong mạng darknet-53

Các bứế́c ảểnh khi đượạ̣c đưa vàà̀o mô hìà̀nh sẽ đượạ̣c scale đểể vềà̀ chung mộạ̣t kíế́ch
thướế́c phù hợạ̣p vớế́i input shape củểa mô hìà̀nh vàà̀ sau đoế́ đượạ̣c gom lạạ̣i thàà̀nh batch đưa
vàà̀o huấế́n luyệạ̣n.
Hiệạ̣n tạạ̣i YOLO đang hỗ trợạ̣ 2 đầu vàà̀o chíế́nh làà̀ 416x416 vàà̀ 608x608. Mỗi
mộạ̣t đầu vàà̀o sẽ coế́ mộạ̣t thiếế́t kếế́ các layers riêng phù hợạ̣p vớế́i shape củểa input. Sau
khi đi qua các layer convolutional thìà̀ shape giảểm dần theo cấế́p sốế́ nhân làà̀ 2. Cuốế́i
cùng ta thu đượạ̣c mộạ̣t feature map coế́ kíế́ch thướế́c tương đốế́i nhỏ đểể dựạ̣ báo vậạ̣t thểể
trên từng ô củểa feature map.[1]
Kíế́ch thướế́c củểa feature map sẽ phụạ̣ thuộạ̣c vàà̀o đầu vàà̀o. Đốế́i vớế́i input
416x416 thìà̀ feature map coế́ các kíế́ch thướế́c làà̀ 13x13, 26x26 vàà̀ 52x52. Vàà̀ khi input
làà̀ 608x608 sẽ tạạ̣o ra feature map 19x19, 38x38, 72x72.
2.1.2 Nguyên lý hoạt động của mạng YOLO

10

TIEU LUAN MOI download : moi nhat


Đầu vàà̀o củểa mô hìà̀nh làà̀ mộạ̣t ảểnh, mô hìà̀nh sẽ nhậạ̣n dạạ̣ng ảểnh đoế́ coế́ đốế́i tượạ̣ng
nàà̀o hay không, sau đoế́ sẽ xác địạ̣nh tọa độạ̣ củểa đốế́i tượạ̣ng trong bứế́c ảểnh. Ảnh đầu
vàà̀o đượạ̣c chia thành SxS ô thương thì se là 3x3,7x7,9x9,…. Việc chia ô co ảnh
hương đến việc phat hiện đối tượng của mô hình.[1]

Hình 2.3: Cach hoat động cua mang YOLO

Vớế́i Input làà̀ 1 ảểnh, đầu ra mô hìà̀nh làà̀ mộạ̣t ma trậạ̣n 3 chiềà̀u coế́ kíế́ch thướế́c SxSx(5
x N + M) vớế́i sốế́ lượạ̣ng tham sốế́ mỗi ô làà̀ (5 x N + M) vớế́i N vàà̀ M lần lượạ̣t làà̀ sốế́ lượạ̣ng
Box vàà̀ Class màà̀ mỗi ơ cần dựạ̣ đốn. Xét ví dụ ơ hình trên chia thành 7x7 ô, môi ô cân

dự đoan 2 bounding box và 3 object: con cho, ô tô, xe đạp thì output se là 7x7x13, môi
ô se co 13 tham số, cho kết quả trả về (7x7x2 =98) bounding box.
Output của YOLO

Output củểa mô hìà̀nh YOLO làà̀ mộạ̣t véế́c tơ sẽ bao gồm các thàà̀nh phần:
y

T

=[0,]

Trong đo:
p0 : làà̀ xác suấế́t dựạ̣ báo vậạ̣t thểể xuấế́t hiệạ̣n trong bounding box.
t ,t ,t
x

y

w

,t

y

:

giúế́p xác địạ̣nh bounding box. Trong đoế́ tx,ty làà̀ tọa độạ̣ tâm vàà̀ tw,th làà̀ kíế́ch

boundingbox


thướế́c rộạ̣ng, dàà̀i củểa bounding box.
p , p , …. p
1
2
c : làà̀ véế́c tơ phân phốế́i xác suấế́t dựạ̣ báo củểa các classes.
score of c classes

11

TIEU LUAN MOI download : moi nhat


Việạ̣c hiểểu output khá làà̀ quan trọng đểể chúế́ng ta cấế́u hìà̀nh tham sốế́ chuẩển xác
khi huấế́n luyệạ̣n model qua các open source như darknet. Như vậạ̣y output sẽ đượạ̣c
xác địạ̣nh theo sốế́ lượạ̣ng classes theo công thứế́c (n_class+5). Nếế́u huấế́n luyệạ̣n 80
classes thìà̀ bạạ̣n sẽ coế́ output làà̀ 85. Trường hợạ̣p bạạ̣n áp dụạ̣ng 3 anchors/cell thìà̀ sốế́
lượạ̣ng tham sốế́ output sẽ làà̀:
(n_class + 5) x3= 85x3=255

Hình 2.4: Kiến trúc một output cua model YOLO

Hìà̀nh ảểnh gốế́c làà̀ mộạ̣t feature map kíế́ch thướế́c 13x13. Trên mỗi mộạ̣t cell củểa
feature map chúế́ng ta lựạ̣a chọn ra 3 anchor boxes vớế́i kíế́ch thướế́c khác nhau lần lượạ̣t
làà̀ Box 1, Box 2, Box 3 sao cho tâm củểa các anchor boxes trùng vớế́i cell. Khi đoế́
output củểa YOLO làà̀ mộạ̣t véế́c tơ concatenate củểa 3 bounding boxes. Các attributes
củểa mộạ̣t bounding box đượạ̣c mơ tảể như dịng ćế́i cùng trong hìà̀nh.
Dự bao trên nhiều feature map

Cũng tương tựạ̣ như SSD, YOLO (cụ thể hơn là YOLOv3) dựạ̣ báo trên nhiềà̀u
feature map. Nhữữ̃ng feature map ban đầu coế́ kíế́ch thướế́c nhỏ giúế́p dựạ̣ báo đượạ̣c các

12

TIEU LUAN MOI download : moi nhat


object kíế́ch thướế́c lớế́n. Nhữữ̃ng feature map sau coế́ kíế́ch thướế́c lớế́n hơn trong khi
anchor box đượạ̣c giữữ̃ cốế́ địạ̣nh kíế́ch thướế́c nên sẽ giúế́p dựạ̣ báo các vậạ̣t thểể kíế́ch thướế́c
nhỏ.[1]

Hình 2.5: Các feature maps của mạng YOLOv3 với input shape là 416x416, output
là 3 feature maps có kích thước lần lượt là 13x13, 26x26 và 52x52.
Trên mỗi mộạ̣t cell củểa các feature map chúế́ng ta sẽ áp dụạ̣ng 3 anchor box đểể
dựạ̣ đốn vậạ̣t thểể. Như vậạ̣y sớế́ lượạ̣ng các anchor box khác nhau trong mộạ̣t mô hìà̀nh
YOLO sẽ làà̀ 9 (3 featue map x 3 anchor box).
Đồng thời trên mộạ̣t feature map hìà̀nh vuông SxS, mô hìà̀nh YOLOv3 sinh ra
mộạ̣t sốế́ lượạ̣ng anchor box làà̀: SxSx3. Như vậạ̣y sốế́ lượạ̣ng anchor boxes trên mộạ̣t bứế́c
ảểnh sẽ làà̀:
(13x13+26+52x52)x3=10647( anchor box)
Đây làà̀ mộạ̣t sốế́ lượạ̣ng rấế́t lớế́n vàà̀ làà̀ nguyên nhân khiếế́n quá trìà̀nh huấế́n luyệạ̣n
mô hìà̀nh YOLO vô cùng chậạ̣m bởi chúế́ng ta cần dựạ̣ báo đồng thời nhãn vàà̀ bounding
box trên đồng thời 10647 bounding boxes.
Mộạ̣t sốế́ lưu ýế́ khi huấế́n luyệạ̣n YOLO:
Khi huấế́n luyệạ̣n YOLO sẽ cần phảểi coế́ RAM dung lượạ̣ng lớế́n hơn đểể save đượạ̣c 10647 bounding
boxes như trong kiếế́n trúế́c nàà̀y.
Không thểể thiếế́t lậạ̣p các batch_size quá lớế́n như trong các mô hìà̀nh classification vìà̀ rấế́t dễ Out of
memory. Package darknet củểa YOLO đã chia nhỏ mộạ̣t batch thàà̀nh các subdivisions cho vừa vớế́i
RAM.
Thời gian xửể lýế́ củểa mộạ̣t step trên YOLO lâu hơn rấế́t rấế́t nhiềà̀u lần so vớế́i các mô hìà̀nh
classification. Do đoế́ nên thiếế́t lậạ̣p steps giớế́i hạạ̣n huấế́n luyệạ̣n cho YOLO nhỏ. Đốế́i vớế́i các tác vụạ̣
nhậạ̣n diệạ̣n dướế́i 5 classes, dướế́i 5000 steps làà̀ coế́ thểể thu đượạ̣c nghiệạ̣m tạạ̣m chấế́p nhậạ̣n đượạ̣c. Các

mô hìà̀nh coế́ nhiềà̀u classes hơn coế́ thểể tăng sốế́ lượạ̣ng steps theo cấế́p sốế́ nhân tùy người dùng.
2.2.2 Anchor box
13

TIEU LUAN MOI download : moi nhat


Đểể tìà̀m đượạ̣c bounding box cho vậạ̣t thểể, YOLO sẽ cần các anchor box làà̀m cơ sở
ướế́c lượạ̣ng. Nhữữ̃ng anchor box nàà̀y sẽ đượạ̣c xác địạ̣nh trướế́c vàà̀ sẽ bao quanh vậạ̣t thểể
mộạ̣t cách tương đốế́i chíế́nh xác. Sau nàà̀y thuậạ̣t toán regression bounding box sẽ tinh
chỉnh lạạ̣i anchor box đểể tạạ̣o ra bounding box dựạ̣ đoán cho vậạ̣t thểể. Trong mộạ̣t mô
hìà̀nh YOLO:
Mỗi mộạ̣t vậạ̣t thểể trong hìà̀nh ảểnh huấế́n luyệạ̣n đượạ̣c phân bốế́ vềà̀ mộạ̣t anchor box. Trong trường hợạ̣p
coế́ từ 2 anchor boxes trở lên cùng bao quanh vậạ̣t thểể thìà̀ ta sẽ xác địạ̣nh anchor box màà̀ coế́ IoU vớế́i
ground truth bounding box làà̀ cao nhấế́t.

Hình 2.6: Xác định anchor box cho mộộ̣t vậộ̣t thể
Từ Cell i ta xác địạ̣nh đượạ̣c 3 anchor boxes viềà̀n xanh như trong hìà̀nh. Cảể 3
anchor boxes nàà̀y đềà̀u giao nhau vớế́i bounding box củểa vậạ̣t thểể. Tuy nhiên chỉ
anchor box coế́ đường viềà̀n dàà̀y nhấế́t màà̀u xanh đượạ̣c lựạ̣a chọn làà̀m anchor box cho
vậạ̣t thểể bởi noế́ coế́ IoU so vớế́i ground truth bounding box làà̀ cao nhấế́t.
Mỗi mộạ̣t vậạ̣t thểể trong hìà̀nh ảểnh huấế́n luyệạ̣n đượạ̣c phân bốế́ vềà̀ mộạ̣t cell trên feature map màà̀
chứế́a điểểm mid point củểa vậạ̣t thểể. Chẳng hạạ̣n như hìà̀nh chúế́ choế́ trong hìà̀nh 3 sẽ đượạ̣c phân vềà̀
cho cell màà̀u đỏ vìà̀ điểểm mid point củểa ảểnh chúế́ choế́ rơi vàà̀o đúế́ng cell nàà̀y. Từ cell ta sẽ xác
địạ̣nh các anchor boxes bao quanh hìà̀nh ảểnh chúế́ choế́.

Như vậạ̣y khi xác địạ̣nh mộạ̣t vậạ̣t thểể ta sẽ cần xác địạ̣nh 2 thàà̀nh phần gắn liềà̀n vớế́i
noế́ làà̀ (cell, anchor box). Không chỉ riêng mìà̀nh cell hoặạ̣c chỉ mìà̀nh anchor box.
Mộạ̣t sốế́ trường hợạ̣p 2 vậạ̣t thểể bịạ̣ trùng mid point, mặạ̣c dù rấế́t hiếế́m khi xảểy ra,
thuậạ̣t toán sẽ rấế́t khoế́ xác địạ̣nh đượạ̣c class cho chúế́ng.

14

TIEU LUAN MOI download : moi nhat


Hình 2.7: Khi 2 vậộ̣t thể người và xe trùng mid point và cùng tḥộ̣c mợộ̣t cell. Tḥộ̣t
tốn sẽ cần thêm nhữữ̃ng lượt tiebreak để quyếế́t định đâu là class cho cell.
2.2.3 Hàm mất mat ( Loss Function)

Sau khi đã địạ̣nh nghĩa đượạ̣c nhữữ̃ng thông tin màà̀ mô hìà̀nh cần phảểi dựạ̣ đốn,
vàà̀ kiếế́n trúế́c củểa mơ hìà̀nh CNN. Bây giờ làà̀ lúế́c màà̀ chúế́ng ta sẽ địạ̣nh nghĩa hàà̀m lỗi.
YOLO sửể dụạ̣ng hàà̀m độạ̣ lỗi bìà̀nh phương giữữ̃ dựạ̣ đốn vàà̀ nhãn đểể tíế́nh đợạ̣ lỗi cho
mơ hìà̀nh. Cụạ̣ thểể, độạ̣ lỗi tổểng củểa chúế́ng ta sẽ làà̀ tổểng củểa 3 độạ̣ lỗi con sau:
Độạ̣ lỗi củểa việạ̣c dữữ̃ đốn loạạ̣i nhãn củểa Object-Classification loss
Đợạ̣ lỗi củểa dựạ̣ đốn tạạ̣o độạ̣ cũng như chiềà̀u dàà̀i, rộạ̣ng củểa boundary box - Localization loss
Độạ̣ lỗi củểa ô vuông coế́ chứế́a object nàà̀o hay không - Confidence loss

Chúế́ng ta mong muốế́n hàà̀m lỗi coế́ chứế́c năng sau:
Trong quá trìà̀nh huấế́n luyệạ̣n, mô hìà̀nh sẽ nhìà̀n vàà̀o nhữữ̃ng ô vuông coế́ chứế́a object. Tăng
classification score lớế́p đúế́ng củểa object đoế́ lên.
Sau đoế́, cũng nhìà̀n vàà̀o ô vuông đoế́, tìà̀m boundary box tốế́t nhấế́t trong 2 boxes đượạ̣c dựạ̣ đoán.
Tăng localization score củểa boundary box đoế́ lên, thay đổểi thông tin boundary box đểể gần đúế́ng
vớế́i nhãn. Đốế́i vớế́i nhữữ̃ng ô vuông không chứế́a object, giảểm confidence score vàà̀ chúế́ng ta sẽ không
quan tâm đếế́n classification score vàà̀ localization score củểa nhữữ̃ng ô vuông nàà̀y.[5]
Classification Loss
15

TIEU LUAN MOI download : moi nhat



Chúế́ng ta chỉ tíế́nh classification loss cho nhữữ̃ng ô vuông đượạ̣c đánh nhãn làà̀ coế́
object. Classification loss tạạ̣i nhữữ̃ng ô vuông đoế́ đượạ̣c tíế́nh bằng đỗ lỗi bìà̀nh phương
giữữ̃a nhãn đượạ̣c dựạ̣ đoán vàà̀ nhãn đúế́ng củểa noế́.
s2

Lclassification =

∑ IIiobj

i=0

Với:
IIiobj: bằng 1 nếế́u ô vuông đang xéế́t coế́ object, ngượạ̣c lạạ̣i bằng 0
^pi (c ) : làà̀ xác xuấế́t coế́ điềà̀u củểa lớế́p c tạạ̣i ô vuông tương ứế́ng màà̀ mơ hìà̀nh dựạ̣ đốn

Hình 2.8: Tinh toan Loss Function cho 2 object: tam giac va hình thoi.
Víế́ dụạ̣, trong hìà̀nh minh họa ở trên, chúế́ng ta coế́ 2 object tạạ̣i ô vuông
(dòng,cộạ̣t) làà̀ (2,1) vàà̀ (3,4), chứế́a object làà̀ hìà̀nh tam giác vàà̀ hìà̀nh tứế́c giác đềà̀u. Độạ̣
lỗi classification loss chỉ tíế́nh cho 2 object nàà̀y màà̀ ko quan tâm đếế́n nhữữ̃ng ô vuông
khác. Lúế́c càà̀i đặạ̣t chúế́ng ta cần lưu ýế́ phảểi nhân vớế́i mộạ̣t mask đểể triệạ̣t tiêu giá trịạ̣ lỗi
tạạ̣i nhữữ̃ng ô vuông ko quan tâm.
Localization Loss

Localization loss dùng đểể tíế́nh giá trịạ̣ lỗi cho boundary box đượạ̣c dựạ̣ đốn bao
gồm offset x,y vàà̀ chiềà̀u dàà̀i, rợạ̣ng so vớế́i nhãn chíế́nh xác củểa chúế́ng ta. Các bạạ̣n nên
lưu ýế́ rằng, chúế́ng ta khơng tíế́nh tốn trựạ̣c tiếế́p giá trịạ̣ lỗi nàà̀y trên kíế́ch thướế́c củểa ảểnh
màà̀ cần chuẩển dướế́i kíế́nh thướế́c ảểnh vềà̀ đoạạ̣n [0-1] đốế́i vớế́i tọa đợạ̣ điểểm tâm, vàà̀ khơng
dữữ̃ đốn trựạ̣c tiếế́p điểểm tâm màà̀ phảểi dựạ̣ đoán giá trịạ̣ lệạ̣ch offset x,y so vớế́i ô vuông
tương ứế́ng. Việạ̣c chuẩển hoế́a kíế́ch thướế́c ảểnh vàà̀ dựạ̣ đốn offset làà̀m cho mơ hìà̀nh
nhanh hợạ̣i tụạ̣ hơn so vớế́i việạ̣c dựạ̣ đoán giá trịạ̣ mặạ̣c địạ̣nh.

16

TIEU LUAN MOI download : moi nhat


S2

B

obj

Llocalization =∑∑
i=0 j =0 ij

∏ ¿¿¿¿

Độạ̣ lỗi localization loss đượạ̣c tíế́nh bằng tổểng đỗ lỗi bìà̀nh phương củểa offsetx,
offsety vàà̀ chiềà̀u dàà̀i, rộạ̣ng trên tấế́t cảể các ô vuông coế́ chứế́a object. Tạạ̣i mỗi ô vuông
đúế́ng, ta chọn 1 boundary box coế́ IoU (Intersect over union) tốế́t nhấế́t, rồi sau đoế́ tíế́nh
độạ̣ lỗi theo các boundary box nàà̀y. Theo hìà̀nh mìà̀nh họa trên chúế́ng ta coế́ 4 boundary
box tạạ̣i ô vuông đúế́ng coế́ viềà̀n màà̀u đỏ, chúế́ng ta chọn 1 box tạạ̣i mỗi ơ vng đểể tíế́nh
đợạ̣ lỗi. Cịn box xanh đượạ̣c bỏ qua.
Localization loss làà̀ độạ̣ lỗi quan trọng nhấế́t trong 3 loạạ̣i độạ̣ lỗi trên. Do đoế́, ta
cần đặạ̣t trọng sốế́ cao hơn cho độạ̣ lỗi nàà̀y.
Confidence Loss

Confidence loss thểể hiệạ̣n đợạ̣ lỗi giữữ̃a dựạ̣ đốn boundary box đoế́ chứế́a object so vớế́i
nhãn thựạ̣c tếế́ tạạ̣i ô vuông đoế́. Độạ̣ lỗi nàà̀y tíế́nh nên cảể nhữữ̃ng ô vuông chứế́a object vàà̀
không chứế́a object.
Lconfidence=∑∑∏ ¿¿¿¿


Độạ̣ lỗi nàà̀y làà̀ độạ̣ lỗi bìà̀nh phường củểa dựạ̣ đoán boundary đoế́ chứế́a object vớế́i
nhãn thựạ̣c tếế́ củểa ô vuông tạạ̣i vịạ̣ tríế́ tương ứế́ng, chúế́ng ta lưu ýế́ rằng, độạ̣ lỗi tạạ̣i ô
vuông màà̀ nhãn chứế́a object quan trọng hơn làà̀ độạ̣ lỗi tạạ̣i ô vuông không chứế́a object,
do đoế́ chúế́ng ta cần sửể dụạ̣ng hệạ̣ sốế́ lambda đểể cân bằng điềà̀u nàà̀y.
Tổểng kếế́t lạạ̣i, tổểng lỗi củểa chúế́ng ta sẽ bằng tổểng củểa 3 loạạ̣i độạ̣ lỗi trên
L =L
total

+L
classification

+ L
localization

confidence

Dự báo bounding box
Đểể dựạ̣ báo bounding box cho mộạ̣t vậạ̣t thểể chúế́ng ta dựạ̣a trên mộạ̣t phéế́p biếế́n đổểi từ anchor box vàà̀
cell.
YOLOv2 và YOLOv3 dựạ̣ đoán bounding box sao cho noế́ sẽ không lệạ̣ch khỏi vịạ̣ tríế́ trung tâm quá
nhiềà̀u. Nếế́u bounding box dựạ̣ đoán coế́ thểể đặạ̣t vàà̀o bấế́t kỳ phần nàà̀o củểa hìà̀nh ảểnh, như trong mạạ̣ng
regional proposal network, việạ̣c huấế́n luyệạ̣n mô hìà̀nh coế́ thểể trở nên không ổển địạ̣nh.
Cho mộạ̣t anchor box coế́ kíế́ch thướế́c (pw ,ph) tạạ̣i cell nằm trên feature map vớế́i goế́c trên cùng bên
trái củểa noế́ làà̀ (Cx , Cy) mô hìà̀nh dựạ̣ đốn 4 tham sớế́ ( tx,ty,tw,th) trong đoế́ 2 tham sốế́ đầu làà̀ độạ̣ lệạ̣ch
(offset) so vớế́i goế́c trên cùng bên trái củểa cell vàà̀ 2 tham sốế́ sau làà̀ tỷ lệạ̣ so vớế́i anchor box. Vàà̀ các
tham sốế́ nàà̀y sẽ giúế́p xác địạ̣nh bounding box dựạ̣ đoán b coế́ tâm (bx,by) àà̀ kíế́ch thướế́c (bw,bh) thông
qua hàà̀m sigmoid vàà̀ hàà̀m exponential như các công thứế́c bên dướế́i:
17


TIEU LUAN MOI download : moi nhat


bx= (tx) + cx
by= (ty) + cy
bw=

t
we w

bh=

t
he h

Ngoàà̀i ra do các tọa độạ̣ đã đượạ̣c hiệạ̣u chỉnh theo width vàà̀ height củểa bứế́c ảểnh nên luôn coế́ giá trịạ̣
nằm trong ngưỡng [0, 1]. Do đoế́ khi áp dụạ̣ng hàà̀m sigmoid giúế́p ta giớế́i hạạ̣n đượạ̣c tọa độạ̣ không
vượạ̣t quá xa các ngưỡng nàà̀y.

Hình 2.9: Công thứế́c ước lượng bounding box từ anchor box
Hìà̀nh chữữ̃ nhậạ̣t néế́t đứế́t bên ngoàà̀i làà̀ anchor box coế́ kíế́ch thướế́c làà̀ (pw,ph). Tọa độạ̣ củểa mộạ̣t
bounding box sẽ đượạ̣c xác địạ̣nh dựạ̣a trên đồng thời cảể anchor box vàà̀ cell màà̀ noế́ thuộạ̣c vềà̀. Điềà̀u
nàà̀y giúế́p kiểểm soát vịạ̣ tríế́ củểa bounding box dựạ̣ đoán đâu đoế́ quanh vịạ̣ tríế́ củểa cell vàà̀ bounding box
màà̀ không vượạ̣t quá xa ra bên ngoàà̀i giớế́i hạạ̣n nàà̀y. Do đoế́ quá trìà̀nh huấế́n luyệạ̣n sẽ ổển địạ̣nh hơn rấế́t
nhiềà̀u so vớế́i YOLOv1.
Non-max suppression
Do thuậạ̣t toán YOLO dựạ̣ báo ra rấế́t nhiềà̀u bounding box trên mộạ̣t bứế́c ảểnh nên đốế́i vớế́i nhữữ̃ng cell
coế́ vịạ̣ tríế́ gần nhau, khảể năng các khung hìà̀nh bịạ̣ overlap làà̀ rấế́t cao. Trong trường hợạ̣p đoế́ YOLO sẽ
cần đếế́n non-max suppression đểể giảểm bớế́t sốế́ lượạ̣ng các khung hìà̀nh đượạ̣c sinh ra mộạ̣t cách đáng
kểể.


18

TIEU LUAN MOI download : moi nhat


Hình 2.10: Non-max suppression. Từ 3 bounding box ban đầu cùng bao quanh
chiếế́c xe đãữ̃ giảả̉m xuống cịn mợộ̣t bounding box cuối cùng.
Các bướế́c củểa non-max suppression:
Bước 1: Đầu tiên chúế́ng ta sẽ tìà̀m cách giảểm bớế́t sốế́ lượạ̣ng các bounding box bằng cách lọc bỏ toàà̀n
bộạ̣ nhữữ̃ng bounding box coế́ xác suấế́t chứế́a vậạ̣t thểể nhỏ hơn mộạ̣t ngưỡng threshold nàà̀o đoế́, thường
làà̀ 0.5.
Bước 2: Đốế́i vớế́i các bouding box giao nhau, non-max suppression sẽ lựạ̣a chọn ra mộạ̣t bounding
box coế́ xác xuấế́t chứế́a vậạ̣t thểể làà̀ lớế́n nhấế́t. Sau đoế́ tíế́nh tốn chỉ sớế́ giao thoa IoU vớế́i các bounding
box cịn lạạ̣i.

Nếế́u chỉ sớế́ nàà̀y lớế́n hơn ngưỡng threshold thìà̀ điềà̀u đoế́ chứế́ng tỏ 2 bounding boxes
đang overlap nhau rấế́t cao. Ta sẽ xoế́a các bounding coế́ coế́ xác xuấế́t thấế́p hơn vàà̀ giữữ̃
lạạ̣i bouding box coế́ xác xuấế́t cao nhấế́t. Cuốế́i cùng, ta thu đượạ̣c mộạ̣t bounding box
duy nhấế́t cho mộạ̣t vậạ̣t thểể.
Thuât toán sử dụng trong YOLOv5

YOLOv5 là một bản cải tiến mang tính mơ rộng theo một cach tự nhiên của
YOLOv3 PyTorch bơi tac giả Glenn Jocher. Kho lưu trữữ̃ YOLOv3 PyTorch làà̀ điểểm
đếế́n phổể biếế́n cho các nhàà̀ phát triểển đểể chuyểển các trọng sốế́ YOLOv3 Darknet sang
PyTorch vàà̀ sau đoế́ chuyểển sang sảển xuấế́t. Nhữữ̃ng cảểi tiếế́n nàà̀y ban đầu đượạ̣c gọi làà̀
YOLOv4 nhưng do việạ̣c phát hàà̀nh gần đây củểa YOLOv4 trong khuôn khổể Darknet,
đểể tránh xung độạ̣t phiên bảển, noế́ đã đượạ̣c đởểi tên thàà̀nh YOLOv5.
Tḥạ̣t tốn YOLOv5 vềà̀ cơ bảển cũng thừa kếế́ các phương pháp cơ bảển củểa
các YOLO, tuy nhiên YOLOv5 áp dụạ̣ng mợạ̣t sớế́ tḥạ̣t tốn phát hiệạ̣n vậạ̣t thểể nhanh,

tớế́i ưu hoế́a các phéế́p tốn thựạ̣c hiệạ̣n song song giúế́p tăng tốế́c độạ̣ nhậạ̣n diệạ̣n vàà̀ giảểm
thời gian huấế́n luyệạ̣n mộạ̣t cách tốế́i ưu.
Phân loại YOLOv5

19

TIEU LUAN MOI download : moi nhat


Coế́ 4 mô hìà̀nh khác nhau: YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x. Đầu
tiên làà̀ nhỏ nhấế́t vàà̀ kéế́m chíế́nh xác nhấế́t, cuốế́i cùng làà̀ lớế́n nhấế́t vớế́i độạ̣ chíế́nh xác lớế́n
nhấế́t. Tấế́t cảể các mô hìà̀nh đềà̀u chạạ̣y trên PyTorch.
Về hiệu năng: YOLOv5 nhỏ hơn vàà̀ thường dễ sửể dụạ̣ng hơn trong sảển xuấế́t.
Do noế́ đượạ̣c triểển khai nguyên bảển trong PyTorch (chứế́ không phảểi Darknet), việạ̣c
sửểa đổểi kiếế́n trúế́c vàà̀ rất đơn giản trong việc xuấế́t sang nhiềà̀u môi trường triểển khai
khac nhau.

Hình 2.11: So sanh kich thươc lưu trữ Model cua cac mẫu mã YOLOv5
Về tốc độ : YOLOv5 thựạ̣c hiệạ̣n suy luậạ̣n hàà̀ng loạạ̣t ở khoảểng 140 FPS theo mặạ̣c địạ̣nh.
Về độ chính xac: YOLOv5 gần như chíế́nh xác như YOLOv4 trong các tác vụạ̣ nhỏ (0,895 mAP so
vớế́i 0,892 mAP trên BCCD). Trên các tác vụạ̣ lớế́n hơn như COCO, YOLOv4 hoạạ̣t độạ̣ng hiệạ̣u quảể
hơn.

20

TIEU LUAN MOI download : moi nhat


Hình 2.12: So sanh độ trễ trung bình giữa cac phiên bản YOLO(v3,v4,v5)
Cấu trúc của YOLOv5 trong việc nhân diện vât thể (Object Detection)


Bao gôm 3 phân chính:
Backbone: Backbone làà̀ 1 mô hìà̀nh pre-train củểa 1 mô hìà̀nh học chuyểển (transfer learning) khác đểể
học các đặạ̣c trưng vàà̀ vịạ̣ tríế́ củểa vậạ̣t thểể. Các mô hìà̀nh học chuyểển thường làà̀ VGG16, ResNet-50,...

Head: Phần head đượạ̣c sửể dụạ̣ng đểể tăng khảể năng phân biệạ̣t đặạ̣c trưng đểể dựạ̣ đoán class vàà̀
bounding-box. Ởể phần head coế́ thểể áp dụạ̣ng 1 tầng hoặạ̣c 2 tầng:
Tầng 1: Dense Prediction, dựạ̣ đốn trên toàà̀n bợạ̣ hìà̀nh vớế́i các mô hìà̀nh RPN, YOLO, SSD,...
Tầng 2: Sparse Prediction dựạ̣ đoán vớế́i từng mảểng đượạ̣c dựạ̣ đoán coế́ vậạ̣t thểể vớế́i các mô hìà̀nh
R-CNN series,..
Neck: Ởể phần giữữ̃a Backbone vàà̀ Head, thường coế́ thêm mộạ̣t phần Neck. Neck thường đượạ̣c dùng
đểể làà̀m giàà̀u thông tin bằng cách kếế́t hợạ̣p thông tin giữữ̃a quá trìà̀nh bottom-up vàà̀ quá trìà̀nh topdown (do coế́ mộạ̣t sốế́ thông tin quá nhỏ khi đi qua quá trìà̀nh bottom-up bịạ̣ mấế́t mát nên quá trìà̀nh
top-down không tái tạạ̣o lạạ̣i đượạ̣c).

21

TIEU LUAN MOI download : moi nhat


Hình 2.13: Cấu trúc nhận diện vật thê cua YOLOv5
Những cải tiến của YOLOv5 so với các phiên bản trước
YOLOv5 đượạ̣c triểển khai trong PyTorch ban đầu nên noế́ đượạ̣c hưởng lợạ̣i từ hệạ̣ sinh thái PyTorch
đã đượạ̣c thiếế́t lậạ̣p: hỗ trợạ̣ đơn giảển hơn vàà̀ triểển khai dễ dàà̀ng hơn. Hơn nữữ̃a, làà̀ mộạ̣t khung nghiên
cứế́u đượạ̣c biếế́t đếế́n rộạ̣ng rãi hơn, việạ̣c lặạ̣p lạạ̣i trên YOLOv5 coế́ thểể dễ dàà̀ng hơn cho cộạ̣ng đồng
nghiên cứế́u rộạ̣ng lớế́n hơn. Điềà̀u nàà̀y cũng làà̀m cho việạ̣c triểển khai đếế́n các thiếế́t bịạ̣ di độạ̣ng đơn giảển
hơn vìà̀ mô hìà̀nh coế́ thểể đượạ̣c biên dịạ̣ch sang ONNX vàà̀ CoreML mộạ̣t cách dễ dàà̀ng.[6]
Khảể năng đàà̀o tạạ̣o cũng như khảể năng suy luậạ̣n rấế́t làà̀ nhanh, độạ̣ chíế́nh xác cao. Cuốế́i cùng
YOLOv5 coế́ dung lượạ̣ng nhỏ. YOLOv5 rất nhỏ. Cụạ̣ thểể, mộạ̣t tệạ̣p trọng sốế́ cho YOLOv5 làà̀ 27
megabyte. Trong khi đo một tệạ̣p trọng sốế́ củểa cho YOLOv4 (vớế́i kiếế́n trúế́c Darknet) làà̀ 244
megabyte. YOLOv5 nhỏ hơn gần 90% so vớế́i YOLOv4. Điềà̀u nàà̀y coế́ nghĩa làà̀ YOLOv5 coế́ thểể

đượạ̣c triểển khai cho các thiếế́t bịạ̣ nhúế́ng dễ dàà̀ng hơn nhiềà̀u.[6]

22

TIEU LUAN MOI download : moi nhat


THIẾT KẾ HỆ THỐNG
Tâp dữ liệu chuẩn bị cho quá trinh huấn luyện
Để thực hiện qua trình gan nhan và huấn luyện ta cân chuẩn bị tập dữ liệu khoản 49 ảnh về 1
loài vật làà̀ (Chim bồ câu) với môi hình se co 1 file gan nhan đi kèm.Dướế́i đây làà̀ mộạ̣t sốế́ hìà̀nh ảểnh
vềà̀ tậạ̣p dữữ̃ liệạ̣u.

Hinh1: Về hìà̀nh ảểnh con Chim Bồ Câu của tưng hình
Hinh2. Vềà̀ label con Chim Bồ Câu củểa từng hìà̀nh
23

TIEU LUAN MOI download : moi nhat


Sử dụng công cụ Makesense.ai để tạo khùng cho đốế́i tượạ̣ng, công cụạ̣ nàà̀y dểể sửể dụạ̣ng vàà̀ đơn gian.

24

TIEU LUAN MOI download : moi nhat


Sửể Hinh sửể dụạ̣ng Makesense.ai đểể tạạ̣o khùng cho đốế́i tượạ̣ng

Hinh sửể dụạ̣ng Makesense.ai đểể tạạ̣o khùng cho đốế́i tươngj


25

TIEU LUAN MOI download : moi nhat


×