Trong Hình 1, Mạng thần kinh bao gồm tập hợp các lớp co bản: lớp thần kinh và lớpphi tuyến, các lớp tổng hợp và lớp được kết nói đầy đủ.. Thông thường, một hình ảnh sẽ được truyền qua lớ
Trang 1VIETNAM NATION UNIVERSITY HO CHI MINH CITYUNIVERSITY OF INFORMATION TECHNOLOGY
COMPUTER ENGINEERING DEPARTMENT
PHAN HUNG CUONG
GRADUATION THESIS
RESEARCH TO IMPROVE INTEGRATION OF YOLO
ALGORITHM ON FPGA ZYNQ-7020
NGHIEN CUU CAI TIEN THUAT TOAN YOLO TREN FPGA
ZYNQ 7020
ENGINEER OF COMPUTER ENGINEERING
Trang 2ĐẠI HỌC QUOC GIA THÀNH PHO HO CHÍ MINH
TRUONG DAI HỌC CÔNG NGHỆ THONG TIN
BO PHAN KY THUAT MAY TÍNH
PHAN HUNG CUONG - 17520310
GRADUATION THESIS
RESEARCH TO IMPROVE INTEGRATION OF YOLO
ALGORITHM ON FPGA ZYNQ-7020
NGHIEN CUU CAI TIEN THUAT TOAN YOLO TREN FPGA
ZYNQ 7020
KỸ SU KỸ THUAT MAY TÍNH
Giang vién huéng din
PhD NGUYEN MINH SON
Trang 3DANH SÁCH HỘI DONG BẢO VỆ LUẬN ÁN
Hội đồng chấm luận văn tốt nghiệp được thành lập theo Quyết định số
462/QD-DHCNTT ngày 23 tháng 07 năm 2021 của Hiệu trưởng Trường Đại hoc Công nghệ
Thong tin.
Trang 4Lời cảm ơn
Để hoàn thành luận án tốt nghiệp này, em xin gửi lời cảm ơn chân thành đến các thầy
cô giáo khoa Kỹ thuật Máy tính và Trường Đại học Công nghệ thông tin - Đại học
Quốc gia Thành phó Hồ Chí Minh đã dạy em những kiến thức và truyền đạt nhữngkinh nghiệm quý giá trong suốt hành trình học tập
Đặc biệt, em xin chân thành cảm ơn Thầy Nguyễn Minh Sơn đã giúp đỡ em và dànhthời gian hướng dẫn em trong suốt luận án dé em có thê hoàn thành luận án tốt nghiệp.Một lần nữa, em xin cảm ơn tất cả mọi người đã bỏ thời gian quý báu để hướng dẫn
em trong suốt quá trình thực hiện khóa luận
Triển khai
Phan Hùng Cường - 17520310
Bộ phận Kỹ thuật Máy tính, lớp MTCL2017.2
Trang 5MỤC LỤC
Chương 1 TONG QUAN 2 2222222222222222212222111122221112221112 2211122221 e 6
1.1 Tình hình nước ngoài - ¿+ + E1 0101 1.1 6 1.2 Tình hình trong nưỚC -:- ¿+ 5t+t2t tt g1 2121 1e 6
1.3 Mục tiêu để tài -2222222 2222222 E2 E221 rrrrrrrrrrrrree 7
Chương 2 CƠ SỞ LÝ THUYÉT
2.1 Mạng nơ-rOn c1 H HH HH HH HH it 8
2.1.1 Lớp thần Kin o ccceccccecccssssessssssseccssssssccssssseccsssueseessssesesssseecessseecessees §
2.1.2 Lớp phi tuyến -.2¿-5222+222222ECE22EEEtEEEEEetEErrrrrrrve 20
2.1.3 Lớp tổng hợp cc2cvccc2222vccScEvrrrrerrttrrrrrrrrrrrrrrrree 212.1.4 Lớp kết nối đầy đủ -:c2222ccccccvvrrrerrktrrrrrrkrrrrrrrrvee 21
2.1.5 _ Trọng lượng SH 22 2.2 YOLOvI.
2.2.1 _ Hệ thống ô lưới -cccccc5c222cvvvcvrerrrrrrverrrrrrrrer 252.2.2 Mạng thần kinh cho YOLOvI -ccz+2222vvsccccez+crz 26
2.2.3 Hàm mất mát -2222cvcerittrtrtrtrrrirtrrrrrrrrrrri 27
2.2.4 Giao lộ qua Liên minh ¿5-5552 S+S+St+xexexerexererrree 29
2.2.5 Nhược điểm của YOLOvI
2.3.1 Chuẩn hóa hàng loạt (Batch Normalization) ‹- - - s= 30
2.3.2 Phân loại độ phân giải CaO -ccccccttrterererkerrrrerree 31
2.3.3 Sử dụng kiến trúc hộp neo (Anchor Box) dé đưa ra dự đoán 32
2.3.4 Cụm K-mean cho lựa chọn neO + 5c + ss+esvxevreeerxeer 34
Trang 62.3.5 Dự đoán vị trí trực tiếp -©222.+cc+cEEketrerrkkrrrrrrkrrrrrrrce 35
2.3.6 Thêm các tính năng chỉ tiẾt .-:-22c++22cvvzeccvvrrrerrrsree 36
2.3.7 Đào tạo đa quy mÔ ch tt re 38
2.3.8 Trọng lượng nhẹ Xương sống 38
2.3.9 0) 60.00) O°) 2.4 Vivado & Petalinux oo ceeccecesescseseeeesssesseeeenseseeeeeseeeeeeeeesseeseeeeeeeeeeeeeaeees 40
2.4.1 — Vivado HLS
2.4.2 Petalinux + Xilinx SDK G5 2 32233 3 2v eerseessreree 42
2.5 Mang công lập trình trường (EPGA) ¿¿+2222+ctecvxvererrrreerrrg 43
2.6 Tổng quan về ZedBOard .cc:¿-22222222+++t222222Yvvvrrrerrrrvrvrrrrrrrrrre 45
2.7 Bus giao diện mở rộng nâng cao (AXI) c5cc+ccccrcrekerercee 48
2.8 Công cụ phát triển và kiến trúc tổng thẻ:d - -:-ccccccc++crx 50
2.8.1 _ Công cụ phát triỀn 2222+ccSEEEketrerrttrrrrrrkrrrrrrrve 502.8.2 Kiến trúc tổng thể
Trang 72.0.5 Ứng dụng -ccc22EEECEEEEEEEEEEErrrrrrrrre 60
2.10 AXIDMA TT." re 60
2.10.1 Tổng quan -cccccc2222Ecvrerirtrrrrrtrrrrrirrrrrrrrrrerrri 602.10.2 Sơ đồ khối reo 61
2.11 AXT Stream Data FIFO cccccsessesseeeseseessesesessssesssessessseessessssneseensseesee 61
2.11.1 Tổng Quam seccccsssesscssssessssssseccsssssccssssussssssuseccsssussessssuesesssuseeesssueeesssnes 622.11.2 Thong số kỹ thuật
2.11.3 Tùy chọn chung 5c S2 S+ 2x tt 62
2.11.4 Thuộc tính tín hiệu - «(Sư 63
Chương 3 THIẾT KE VÀ TRIÊN KHAI HE THÓNG - 65
3.1 Mô đun đầu ra và đầu vào ::-2222+cttcckvrrerrrrtrrrrrrrrrrerrkrrrrr 653.2 Mô-đun tế bào thần kinh -:-2¿22222+++222EE++ttEEExvrerrrxxrrerrkreerrr 66
3.3 Mô-đun tổng hợp :-¿:222+2222222222221112222111 2.1111.111 673.4 Mô-đun sắp xép lại
3.5 Thực hiện xử lý công nhận - - + 2+ ++++++£++++k+xexererrezxerrrsrx 69 3.5.1 Thực hiện trên ViVadO óc te St Exexesrrrersssrrrrerreeesrer 69
3.5.2 Kiểm tra và độ chính Xác - ¿+ + ggrrêt 75Chương 4 ĐỊNH HƯỚNG KET LUẬN VA PHÁT TRIÊN - 71
4.1 Tình trạng của toàn bộ đỀ tài -2cc+22222vvvvrrrrsrtrrrrxrrrrrrrrrrrrree 71
4.1.1 Kết quả dự kiến: .ccc2222ccceEcEvrrerrkrrrerrrrerreer 714.12 Kết quả thực tế
4.2 Những gì em đạt được, hạn chế và định hướng phát triển
4.2.1 _ Những gì em dat ẨưỢC - thiet 77
Trang 84.2.2 — Giới hạn
4.2.3 Định hướng phát triỂn . -22++s22cvvrreecrrvrrerrrrrrrrrrTÀI LIỆU THAM KHẢO
Trang 9DANH SÁCH SÓ LIỆU
Hình 1: Cấu hình chung của Mạng thần kinh phổ biến để xử lý hình ảnh đầu vào vàphân loại các đối tượng dựa trên giá tTỊ - 5< 25+ tEkekekerrrkrkrkerer 18Hình2: Quá trình tính toán than kinh +2222+++222v+z+ettvxvrerrrsrrrrrr 19Hình 3: Bộ lọc 5x5 được sử dụng đề phát hiện góc / cạnh -: 19
Hình 4: Quy trình ReLU „21 Hình 5: YOLOv1 dự đoán như thé nào ¿52+ 3+ +vx+eErverreerrrrrrrrrrrrer 23
Hình 6: Kiến trúc YOLOv1 24
Hình 7: Khung hình trên giây của mỗi thuật toán ¿ - ¿5+ 5+ 5s <+c+x+x++ 24
Hình 8: Ví dụ đối tượng duy nhất mà hình vuông chứa . - 25Hình 9: Mỗi hình vuông chịu trách nhiệm cho mỗi dự đoán 2 hộp ranh giới 26
Hình 10: Một vectơ có 2 hộp và 3 lớp cho mỗi hình vuông .: -+ 26
Hình 11: Mô hình Neural Network cho YOLOV!1
Trang 10Dòng chảy HLS của Vivado Design - 5556 Sccccsetsrrkekererree 41
Cấu hình dé tạo tệp tin khởi động có thé truy cập hệ thống tệp gốc 42Cấu hình bộ nạp khởi động cho Zynq ZC702 và Zedboard 42
Cấu hình dé làm cho Zedboard sử dụng tệp khởi động - 42Cấu hình dé gắn bộ nạp khởi động vào BOOT - ¿s2 43
Cấu hình dé truy cập tệp hạt nhân :¿-©2z+2222++z+zcvvvrecrrrxz 43Kiến trúc chung FPGA
Cấu trúc của khối logic có thé cấu hình -. -©c¿2222+zcsvczsseez 45
Lớp phủ chức năng của ZedBOard - 5: + 5+5++c+c+cexsrezxersrerre 46
Sơ đồ khối của ZedBoard . -+++22222+++2EE++2+tEEEEEerrErEkkrrrrrrkerrrg 47
Giao diện và kết nối -22cccccct22222EEEttriitttrtkrrrrrtrrrrrrirrrrrrir 49
Kênh trong giao diện AXÌ ¿5-5252 S+S++xxtreekerrrerrrerree 50
Kiến trúc tổng thể
Tiến độ thực hiện
Kiến trúc tong thé của máy gia tốc .:¿-++22cv++zvccvvvreerrrve 55
Sơ đồ khối của OV7670 Camera Module .-¿:2cz+222sszz+ccxxe 59
So d6 khGi ctta AXTDMA 01a 61Thông số của IP AXI Stream Data FIFO - ¿+22222zz222+scez 62
Truyền dữ liệu một kênh -2 ©2¿£22EE+z++2EEE+zt2EEEEEztrEEEEerrrrrrrcee 65
Mô-đun tế bào thần kinh(Tn = 4 và Tm = 2) ¿ ¿©5522 66
Mô-đun tong hợp
Mô-đun T€OTE, 1kg HT 68
Kiến trúc tổng thé thực hiện trên ZedBoard 2: z- ssccsszses+ 69
Trang 11Kết quả mô phỏng với đối tượng Xa .- 2¿¿22+cz+222vzcecccree 72Kết quả mô phỏng đối tượng với khoảng cách 40em - 72
: Khoảng cách 8m ¿+ - + 5+1 k2 E112 112111 1 1111 1gp 73
Độ chính xác với khoảng cách 80cm
Khoảng cách I2Cm - - SxS E 3k vn HH tr nườt 74
Độ chính xác với khoảng cách I20cm + 2+ + 5+ £sc++++++c+ese+ 74
Trang 12Chuyển đổi chuẩn hóa hàng loạt, áp dung cho kích hoạt x trên một lô nhỏ30
Luông mạng tế bào thần kinh -.2 - 2¿©+++2222++++222S+zevtrvszeerrr 51
bo 0 Ô.Ô 59
Sơ đồ tín hiệu
So sánh đối tượng với khoảng cách khác nhau -: 2 74
So sánh kết quả giữa darknet phần mềm và việc thực hiện của em 75
Trang 13DANH SÁCH CÁC TỪ VIẾT TÁT
ASIC: Application Specific Integrated Circuit
AXI: Advanced Extensible Interface
BN: Batch Normalization
BRAM: Block Random Access Memory
CLB: Configurable Logic Block
COCO: Common Objects in Context
DDR: Double Data Rate
DMA: Direct Memory Access
DSP: Digital Signal Processing
DSP48E: Digital Signal Processing Logic Element
FF: Flip-Flop
FIFO: First in First Out
FPGA: Field Programmable Gate Array
GPU: Graphics Processing Unit
HDF: Hardware Descriptor File
HDL: Hardware Description language
HLS: High-level Synthesis
IOU: Intersection Over Union
IP: Intellectual Property
ISE: Integrated Synthesis Environment
LUT: Look-Up Table
Trang 14mAP: mean average precision.
NNW: Neuron Net Work
PL: Processing Logic
PS: Processing System
RAM: Read Access Memory
RCNN: Region-Based Convolution Neural Networks
ReLU: Rectified Linear Units
RTL: Register-transfer Level
SD: Secure Digital
SRAM: Static Random-access Memory
YOLO: You Only Look One
Trang 15TOM TAT DE TÀI
Trong những năm trở lại đây, các mô hình Deep Learning đã được nhiều nhà khoa
học quan tâm và tham gia nghiên cứu, đáng chú ý là mô hình Mạng thần kinh (Neural
Network) như một ứng cử viên hàng đầu đề giải quyết các vấn đề như nhận dạng và
xử lý đối tượng
Nhiều ứng dụng thực tế thường có độ trễ (delay) thấp trong phần mềm hoặc chiếm
rất nhiều tài nguyên trong phần cứng Dé đối phó với van dé này, các giải pháp tối ưu
hóa như thực hiện FPGA được áp dụng.
Em lập kế hoạch, thiết kế và trién khai FPGA của kiến trúc tăng tốc Mang thần kinh
và sử dụng thuật toán phát hiện You Only Look Once phiên bản 2 (YOLOv2).
Trang 16Chương 1 TONG QUAN!
1.1 Tình hình nước ngoài
Ở nước ngoài, có rất nhiều quốc gia dẫn đầu về vi mạch như Hoa Kỳ, Án Độ, Đức,
Trung Quốc, Nhật Bản, Do đó, chúng ta có thé dé dàng tim ra các tài liệu về vi
mạch thông qua Internet và quốc gia Án Độ là một trong những quốc gia có rất nhiềutài liệu trực tuyến về vi mạch
Trong Giải thưởng Hiệp hội vì sự tiễn bộ của trí tuệ nhân tạo (AAAT) 2020, GeoffreyHinton (Google, Viện Vector và Đại học Toronto) mang đến cách tiếp cận mới với
mục tiêu nhận dạng đối tượng cho mạng thần kinh Kéo dai cho đến cuối năm 2017,
Trung Quốc đã triển khai công nghệ nhận dạng khuôn mặt và trí tuệ nhân tạo tại Tân
Cương
Đề tài của WalkerLau về tăng tốc Mạng thần kinh với FPGA trên github Trong dé
tài này, họ chỉ có thé so sánh tốc độ của CPU và CPU + FPGA bằng cách thực thi
nhận dạng khuôn mặt với 7 lớp thần kinh Kết quả là hệ thống tăng tốc CPU + FPGA
hoạt động nhanh hơn 45x-75x.?
Đề tài của Mohamed Atri, Fethi Smach, Johel Miteran và Mohamed Abid về thiết kế
phân loại Mạng thần kinh dé phát hiện khuôn mặt Trong chủ dé này, họ có một kháiniệm mới là Perceptron nhiều lớp Kết quả của đề tài đó là họ nhận được độ chínhxác 99,67% của 500 hình ảnh mẫu bằng cách sử dung Xilinx FPGA?
1.2 Tình hình trong nước
Ở Việt Nam, chúng ta có rất nhiều hạn chế về nguồn lực, chi phí, công nghệ dẫn đếnnguồn nhân lực phải đi du học để có được chat lượng cao Hau hết tat cả các công tylàm việc về vi mạch cũng dừng lại ở việc đóng gói mạch hoặc trung gian cho các
1 The 16® AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment
? Acceleration CNN computation with FPGA from WaklerLau.
3 Neural Networks Classifier for Face Detection.
Trang 17công ty lớn bên ngoài Việt Nam Vì vậy, hầu hết các chủ đề nghiên cứu được xuất
bản từ nước ngoài.
Việc nghiên cứu và triển khai thuật toán YOLO trên FPGA rất khó khăn vì em khôngthể tìm ra bắt kỳ tài liệu hoặc đề tài nào đo người dân ở Việt Nam thực hiện
1.3 Mục tiêu đề tài
Có ba mục tiêu chính trong dé tài của em:
- Đầu tiên là nghiên cứu thuật toán YOLO dựa trên Mạng than kinh
- Thứ hai là thiết kế IP camera
- Cuối cùng là có thé kết nối IP camera cùng với YOLO dé có thực hiện phát
hiện đối tượng thời gian thực
Trang 18Chương 2 CƠ SỞ LÝ THUYÉT*
2.1 Mạng nơ-ron
Mạng nơ-ron là một thuật toán trong DeepLearning có thể lấy dữ liệu đầu vào là một
hình ảnh Các yêu cầu xử lý trước trong mạng nơ-ron thấp hơn nhiều so với các thuật
toán phân loại khác Trong khi đó ở các phương diện khác như: các bộ lọc được thiết
kế thủ công, đào tạo đủ, Mạng nơ-ron có khả năng cải thiện các tính năng đó
Trong Hình 1, Mạng thần kinh bao gồm tập hợp các lớp co bản: lớp thần kinh và lớpphi tuyến, các lớp tổng hợp và lớp được kết nói đầy đủ Thông thường, một hình ảnh
sẽ được truyền qua lớp thần kinh đầu tiên và lớp phi tuyến, sau đó tính toán giá trị vàlan truyền thông qua lớp tổng hợp Lớp thần kinh, lớp phi tuyến và lớp tổng hợp có
thể được lặp lại nhiều lần trong mạng Và sau đó, đữ liệu được truyền qua lớp được
kết nối day đủ và softmax dé tính xác suất mà hình ảnh chứa
FEATURE LEARNING CLASSIFICATION
Hình 1: Cấu hình chung của Mạng than kinh phổ biến dé xử lý hình ảnh đầu vào va
phân loại các đối tượng dựa trên giá tri.
2.11 Lớp thần kinh
Lớp thần kinh là lớp đầu tiên trích xuất các tính năng từ hình ảnh đầu vào và hoạtđộng bằng cách đặt một bộ lọc trên một mảng pixel Lớp này sẽ duy trì mối tương
quan giữa các pixel bằng cách tìm hiểu các tính năng của hình ảnh bằng cách sử
* Understanding of convolutional Neural Network-Deep Learning
Trang 19dụng các ô vuông nhỏ của dữ liệu đầu vào Đây là một phép toán với 2 đầu vào :
ma trận hình anh và 1 bộ lọc." Xem Hình 2, ta có công thức:
e Ma trận hình ảnh (âm lượng) kích thước (h x w x d)
© BOloc (f x fy X đ)
¢ Xuất kích thước âm lượng (h — ƒ„ + 1) x (w— fy $1) x1
Hình2: Quá trình tính toán thần kinh®
Vi bộ lọc quét toàn bộ hình ảnh, các tinh năng này có thé ở đâu đó trong hình ảnh,ngay cả khi hình ảnh được xoay sang trái hoặc phải, các tính năng này vẫn đượcphát hiện.
© c
Hình 3: Bộ lọc 5x5 được sử dụng để phát hiện góc / cạnh
Em có ví dụ về bộ lọc Trong Hình 3, giá trị 1 sẽ được kết nói với một giá trị khác
để biểu thị cho tính năng mà em muốn phát hiện
5 The Definition of Convolution in Deep Learning by using Matrix
® Understanding of convolutional Neural Network-Deep Learning
7 Object Detection with Deep Learning: A Review
Trang 20Kích thước bộ lọc là một trong những thông số quan trọng nhất của lớp thần kinh.Kích thước này tỷ lệ thuận với số lượng tham số cần tìm ở mỗi lớp thần kinh vàđánh lừa trường tiếp nhận của lớp này Kích thước bộ lọc phổ biến nhất là 3x3.
Các tính năng được trích xuất sẽ đa Ít đa dạng hơn của cây thông được
dang và hữu ích hơn ở lớp sau chiết xuất
Giảm kích thước hình ảnh chậm Giảm kích thước hình ảnh nhanh
hơn, do đó cho phép mạng sâu hơn chóng, do đó chỉ cho phép mạng
nông
Giảm trọng lượng (weight), chia sẻ Việc chia sẻ trọng lượng (weight)
trọng lượng tốt hơn không có ý nghĩa nhiều
2.12 — Lớp phi tuyến
Don vi tuyến tính được chỉnh sửa, f = max (0, x) là hàm kích hoạt phổ biến nhấtcho Mạng thần kinh được Giới thiệu bởi Geoffrey E Hinton vào năm 2010 *Chitc
năng ReLU được sử dụng phố biến vì tính đơn giản của nó, giúp giảm độ đốc biến
mắt và cho kết quả tốt hơn ReLU nằm ngay sau lớp thần kinh ReLU sẽ gan các
# Rectified Linear Units Improve Restricted Boltzman Machines.
Trang 21giá trị âm bằng 0 và giữ giá trị đầu vào khi nó lớn hơn 0 Trong Hình 4, tất cả cácgiá trị âm sẽ được đặt bằng 0 sau quá trình ReLU.
Lớp tổng hợp làm giảm kích thước mẫu của bản dé đối tượng và giúp xử lý nhanh
hon vì nó làm giảm tổng số tham số mà mạng cần xử lý Lớp tổng hợp có thé có
nhiêu loại khác nhau:
© _ Tổng hợp lớn nhất
e Tổng hợp trung bình
e _ Tổng của lớp tông hợp!?
Tổng hợp lớn nhất nhận phần tử lớn nhất từ tensor của các đối tượng hoặc tổng
hợp trung bình của tensor đó Tổng của tat cả các phần tử trong tensor được gọi
là tổng hợp
2.1.4 Lop kết nối đầy đủ
Lớp kết nối đầy đủ hoàn toàn đơn giản là nguồn cấp đữ liệu cho các mạng thầnkinh chuyền tiếp Các lớp này tạo thành một vài lớp cuối cùng trong mạng Đầu
° Understanding of convolutional Neural Network-Deep Learning
19 RunPool: A Dynamic Pooling Layer for Convolution Neural Network
Trang 22vào của lớp kết nối đầy đủ là đầu ra từ lớp trước nó, được làm phẳng sau đó đưavào lớp kết nối đầy đủ Làm phẳng là như thế nào? Đầu ra của lớp tổng hợp làmột ma trận 3 chiều, dé làm phẳng nghĩa là hủy tất cả các giá trị của nó dé biến
nó thành một vec-tơ
2.1.5 Trọng lượng
Mỗi tế bào thần kinh trong mạng nơ-ron, tính toán một giá trị đầu ra bằng cách ápdụng một hàm cụ thể cho các giá trị đầu vào đến cho trường tiếp nhận trong lớp
trước Hàm được áp dụng cho các giá trị đầu vào được xác định bởi một vectơ có
trọng lượng và độ lệch (thường là số thực)!1, Trong Mạng thần kinh, quá trình tiến
bộ thực hiện bằng cách điều chỉnh lặp đi lặp lại những độ lệch và trọng lượng
Vecto trọng lượng va độ lệch được gọi là bộ lọc và đại diện cho tính năng cu thể
của đầu vào (ví dụ: một hình dạng cụ thé) Một tính năng phân biệt của Mạng thầnkinh là nhiều tế bào thần kinh có thể chia sẻ cùng một bộ lọc Điều này làm giảm
mức chiếm dụng bộ nhớ vì độ lệch và vectơ trọng lượng duy nhất được sử dụngtrên tất cả các trường tiếp nhận chia sẻ bộ lọc đó, như được áp dụng cho mỗi
trường tiếp nhận có độ lệch va trọng số vecto riêng
2.2 YOLOv1
YOLO (YOU ONLY LOOK ONE) là một trong những phương pháp tốt nhất vànhanh nhất Nó được kết hợp từ các lớp thần kinh và các lớp kết nói Với lớp thầnkinh, nó sẽ xuất các tính năng của hình ảnh, các lớp được kết nối sẽ dự đoán xác suất
và tọa độ đối tượng.
YOLO có rất nhiều ứng dụng trong thực tế như: Hệ thống theo dõi xe tự lái, hệ thống
theo dõi con người
1! Effect of bias in Neural Network
Trang 23Class probability map
Hình 5: YOLOv1 dự đoán như thé nao!”
Trong Hình 5, YOLOv1 chia hình ảnh thành lưới SxS (S=7), sau đó nó sẽ phát hiện
tắt cả các khối, đối tượng và phân loại từng ô thành nhóm màu Nếu tâm của một
đối tượng rơi vào một ô lưới, ô lưới đó có nhiệm vụ phát hiện đối tượng đó Màu
xanh là chó, màu vàng là xe đạp và màu hồng là xe hơi
Mỗi ô lưới dự đoán các ô giới hạn B (B=2) và điểm tin cậy cho các ô đó Các điểmtin cậy phản ánh độ chính xác của mô hình rằng hộp chứa một đối tượng, tức là bat
kỳ đối tượng nào trong hộp Mỗi hộp giới hạn bao gồm 5 parametes x, y, w, h, độ
tin cậy Tương ứng, tọa độ của trung tâm (x, y) đại diện cho tâm của hộp so với các
giới hạn của ô lưới, chiều Tộng, chiều cao dự đoán so với toàn bộ hình ảnh và độ tin
cậy đại diện cho IOU giữa hộp dự đoán và bắt kỳ hộp sự thật nào Sau khi phân tích
phát hiện đối tượng sẽ trả về Output là một ma trận có kính thước Sx Sx (Š x B +
C).
1? You Only Look Once: Unified, Real-Time Object Detection.
Trang 24Ưu điểm lớn nhất của YOLO là tốc độ cao và FPS cao (Khung hình mỗi giây) khi so
sánh với các thuật toán khác nhau Xem Hình 7, chúng ta thấy được sự so sánh được
thực hiện bởi Jonathan Hui để so sánh YOLO với thuật toán khác nhau:
¢ FPS cao dé xử lý thời gian thực
¢ YOLO phát hiện đối tượng trên mỗi ô trong hình ảnh, nó làm cho thuật toán
có thé được tính toán nhanh hơn các thuật toán khác
© C6 rất nhiều đề tài liên quan đến thuật toán nghiên cứu được viết bởi giáo sư,
Faster R-CNN (low) Fastor R-CNN (high) RLECN (low) S80 0o) '580 (righ) YOLO pow), 'YOLO righ)
Frames per second
Hình 7: Khung hình trên giây của mỗi thuật toán
Trang 25trọng tâm của cô gái trong hình vuông màu xanh lá cây, vì vậy model phải dự
đoán rằng nhãn (label) chính là cô gái Lưu ý, ngay cả khi một phần ảnh của côgái ở một hình vuông khác nhưng trung tâm không thuộc về hình vuông đó nên
nó không được tính là chứa nhãn của cô gái cho hình vuông đó Tuy nhiên, chúng
ta có thé tăng kích thước lưới từ 7x7 lên kích thước lớn hơn dé có thé phát hiện
nhiều đối tượng hơn Ngoài ra, kích thước của hình ảnh đầu vào phải là bội số của
kích thước lưới.
Hình 8: Ví dụ đối tượng duy nhất mà hình vuông chứa
Mỗi hình vuông chịu trách nhiệm dự đoán 2 hộp ranh giới của đối tượng Mỗi hộpranh giới chứa một đối tượng Thông tin vị trí của hộp ranh giới bao gồm hộp ranhgiới trung tâm của đối tượng và chiều rộng và chiều dài của hộp ranh giới TrongHình 9, một hình vuông màu xanh lá cây cần dự đoán 2 ô ranh giới chứa cô gáinhư hình dưới đây Một điều cần lưu ý, tại thời điểm cài đặt, chúng ta không dự
đoán giá trị pixel, chúng ta cần chuẩn hóa kích thước hình ảnh của phân đoạn
Trang 26[0-1] và dự đoán độ lệch của trung tâm của đối tượng với hộp chứa đối tượng đó Ví
dụ, thay vì dự đoán vị trí pixel của điểm đỏ, chúng ta cần dự đoán độ lệch a, btrong hình vuông chứa tâm của đối tượng
Hình 9: Mỗi hình vuông chịu trách nhiệm cho mỗi dự đoán 2 hộp ranh giới.
Kết luận, đối với mỗi hình vuông, dự đoán là sau đây thông tin:
¢ _ Hình vuông có chứa bat kỳ đối tượng nào hay không?
¢ Du đoán độ lệch của 2 hộp chứa đối tượng từ hình vuông hiện tại
¢ Lớp của đối tượng đó
Đối với mỗi hình vuông, chúng ta cần dự đoán một vectơ có kích thước (N_box+4*N_box + Nclass) Ví dụ, xem Hình 10, chúng ta cần dự đoán 2 hộp và 3 lớpcho mỗi hình vuông, nó sẽ là tensor 7x7x13x3 chứa tat cả các thông tin cần thiết
Hình 10: Một vectơ có 2 hộp và 3 lớp cho mỗi hình vuông
2.2.2 Mang thần kinh cho YOLOv1
YOLO có 24 lớp tích chập, tiếp theo là 2 lớp kết nói đầy đủ Một số lớp tích chập
sử dụng xen kẽ các lớp giảm Ix1 dé giảm độ sâu của bản đồ đối tượng địa lý Đối
với lớp chập cuối cùng, nó xuất ra một tensor có hính dạng (7,7,1024) Sau đó
Trang 27được làm phẳng Sử dụng 2 lớp kết nối đầy đủ như một dạng hồi quy tuyến tính,
nó xuất ra các tham số 7x7x30 và sau đó định hình lại thành (7,7,30), tức là 2 dự
đoán hộp biên cho mỗi vị trí.
ANA
“.
12]
3 WE cr Tom Toa 4096 3
Hình 11: Mô hình Neural Network cho YOLOv[!3
Trong Hình II, với hình ảnh đầu vào là 448x448, mô hình Neural Network với 6tầng pooing tối đa với kích thước 2x2 sẽ giảm kích thước hình ảnh 64 lần, xuống
7x7 ở đầu ra Thay vì sử dụng một layer được kết nối đầy đủ trong layer cuốicùng, Mạng thần kinh có thé thay thé nó bằng một lớp thần kinh 1x1 với 13 bản
dé tính năng dé dễ dang xuất hình dang 7x7x13
2.2.3 Ham mat mat
YOLO sử dung hình vuông mat mát (square lose function) giữa dự đoán và nhãn
dé tính lỗ cho mô hình Nó bằng tổng cộng 3 ham mắt mát:
e Mất nhãn dự đoán của vật thể (Mắt phân loại)
e Mat chiều rộng và chiều cao dự đoán của hộp ranh giới (Mat nội dia hóa)
© Mất 6 có chứa đối tượng hoặc không (Mất tự tin)
Leotaa = Lctassification + Liocatization + LconfidenceTrong hình anh đào tao, mô hình sẽ chọn từng 6 có đối tượng, tăng điểm phan
loại, sau đó, tìm hộp ranh giới bên ngoài giữa 2 hộp dự đoán Tiếp theo là tăng
13 Low costs object detection using yolo.
Trang 28điểm bản địa hóa của hộp ranh giới và thay đổi thông tin của hộp này thành cùngvới nhãn Với ô không có đối tượng, điểm tin cậy sẽ giảm và em không sử dụngđiểm phân loại và điểm bản địa hóa.
I]; obj : bằng 1 nếu ô có đối tượng, ngược lại là 0
B,(c): là xác suất có thé xảy ra của lớp C trong hình vuông tương ứng được
dự đoán bởi mô hình.
2 Mat nội địa hóa:
Nó sử dung dé tính toán giá trị lỗi của hộp ranh giới dự đoán bao gồm x, y bù
đắp và chiều rộng, chiều cao Chỉ đếm hộp có đối tượng
Tén that nội địa hóa được tính bằng tổng tổn thất vuông của offset x, offset y
và chiều rộng, chiều cao của ô, có đối tượng Với mỗi ô, chúng ta chon | hộp
ranh giới có IOU tốt nhất (Intersection over union) và tính toán lỗi của hộp
ranh giới.
3 Mất độ tin cậy:
Nó hiển thị giá trị lỗi giữa hộp ranh giới dự đoán với nhãn thực tế
Tổn thất độ tin cậy tính toán trên cả hai ô đều có đối tượng và không có đối
tượng.
Trang 292.2.4 Giao 16 qua Lién minh
IOU (Intersection Over Union) là một ham đánh giá độ chính xác của may dò đối
tượng trên một tập dữ liệu cụ thể
Em chỉ giữ cho mỗi hộp ranh giới có đối tượng Đề tính IOU giữa 2 hộp, chúng
ta cần tính trung bình 2 hộp giao nhau và chia cho tổng trung bình của 2 hộp
loU: 0.4034 loU: 0.7330 loU: 0.9264
Poor Good Excellent
Hình 12: Ví dụ IOU
Hình 12 cho thấy độ chính xác của đối tượng Nếu IoU > 0,5, dự đoán được đánh
giá là tốt và ngược lại là không tốt Phép tính cho IoU:
IOU = S-yellow / (S-đỏ + S-yellow + S-violet)
2.2.5 Nhược điểm của YOLOv1
YOLOvI áp đặt các ràng buộc không gian trên các hộp giới hạn, mỗi 6 lưới có
thé dự đoán rat ít hộp giới hạn B và chỉ có một lớp Những ràng buộc này hạn chế
Trang 30khả năng của chúng ta để nhận ra các đối tượng gần nhau, cũng như đối tượng
2.3 YOLOv2
YOLOv? có tên YOLO9000 đã được Joseph Redmon va Ali Farhadi công bố vào
cuối năm 2016 Cải tiến chính của phiên bản này tốt hơn, nhanh hơn, nâng cao hơn
để bắt kịp R-CNN (phương pháp sử dụng Mạng dé xuất khu vực), xử lý các van dé
gặp phải bởi YOLOv1.'4
2.3.1 Chuẩn hóa hàng loạt (Batch Normalization)
Kỹ thuật Chuẩn hóa hàng loạt đã được giới thiệu sau tất cả các lớp thần kinh của
YOLOv?2 Kỹ thuật này không chỉ làm giảm thời gian đào tạo mà còn làm tăng
tính phổ quát (khái quát hóa) của mạng Trong YOLOv2, chuân hóa hàng loạt
giúp tăng mAP khoảng 2%.
Bang 2: Chuyên đổi chuẩn hóa hàng loạt, áp dụng cho kích hoạt x trên một lô
nhỏ!Š
Đầu vào: Giá trị của x trên một lô nhỏ: = (x ?n);
Các thông số cần biết: y, B
Ra: {yj = BNys(%j)}
14 YOLO9000: Better, Faster, Stronger
15 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Trang 31Vi = YRi + 8 = BNy,p (xi) Ty lệ va sự thay đổi
Chuan hóa hàng loạt là một phương pháp hiệu quả khi đào tao một mô hình mangthần kinh Mục tiêu của phương pháp này là chuẩn hóa các tính năng (đầu ra của
mỗi lớp sau khi kích hoạt) sang trạng thái zero-mean với độ lệch chuẩn.
Chuẩn hóa hàng loạt có thể giúp ngăn chặn giá trị x rơi vào độ bão hòa sau khi
vượt qua các trình kích hoạt không chọn Vì vậy, nó đảm bảo rằng không có kíchhoạt nào quá cao hoặc quá thấp Điều này giúp trọng lượng khi không sử dụng
BN, có thể áp dụng bình thường mà trước đây là điều không thể Điều này giúpYOLOv?2 giảm sự phụ thuộc vào giá trị khởi tạo tham sé
2.3.2 Phan loai d6 phan giai cao
Phiên bản trước của YOLO sử dung kích thước đầu vào là 224x224 trong quátrình đào tạo nhưng tại thời điểm phát hiện, hình ảnh có kích thước lên tới
448x448 Điều này khiến mô hình điều chỉnh theo độ phân giải mới, do đó làm
giảm mAP.
Ở phiên bản YOLOv2 được đào tạo trên độ phân giải cao hơn trong 10 giai đoạn
trên dữ liệu ImageNet Điều này giúp mạng có thời gian điều chỉnh các bộ lọc dé
có độ phân giải cao hơn Bằng cách này mAP đã tăng 4%
Trang 322.3.3 Sứ dụng kiến trúc hộp neo (Anchor Box) để đưa ra dự đoán
Trong YOLOv2, tác giả loại bỏ lớp kết nối đầy đủ ở giữa mạng và sử dụng kiếntrúc hộp neo để dự đoán các hộp giới hạn Dự đoán độ lệch so với hộp neo dễdàng hơn nhiều so với dự đoán tọa độ hộp giới han Thay đồi này làm giảm mAP
một chút nhưng tăng thu hồi
VỊ trí của hộp neo được xác định bằng cách ánh xạ vị trí của đầu ra mạng trở lại
hình ảnh đầu vào Chúng ta có thể thấy Hình 13; quá trình này được sao chép cho
mọi đầu ra mạng Kết quả tạo ra một tập hợp các hộp neo lát gạch trên toàn bộhình ảnh Mỗi hộp neo đề đưa ra hai dự đoán cho mỗi vị trí trong hình dưới đây
Hình 13: Đầu ra NN (i, j) bản đồ thành hình ảnh (i, j)
Khoảng cách, hoặc sải chân (stride), giữa các hộp neo lát gạch là một chức năng
của hàm down-sampling có trong Mạng thần kinh Các yếu tố down-sampling từ
4 đến 16 là phổ biến Các yếu tố down-sampling này tạo ra các hộp neo lát gạch
thô, có thé dẫn đến lỗi nội địa hóa
Trang 33Dé khắc phục lỗi nội địa hóa, máy dò đối tượng tìm hiểu bù dap dé áp dụng cho
mỗi hộp neo lát gach tinh chỉnh vi trí và kích thước hộp neo.
Trang 34image orig F——————————————Ì
Predefined anchor box location
Offsety rF=/=4
Refined location of anchor box
Hình 15: Hộp neo tinh chỉnh vi trí và kích thước hộp neo.
Xử lý đa quy mô cho phép mạng phát hiện các đối tượng có kích thước khác nhau
Để lưu trữ tính năng phát hiện đa quy mô, chúng ta phải chỉ định các hộp neo có
kích thước khác nhau, chẳng hạn như 64-64, 128-128 và 256-256 Chỉ định kích
cỡ thé hiện chặt chẽ tỷ lệ và tỷ lệ khung hình của các đối tượng trong dữ liệu đào
tạo của bạn.!6
2.3.4 Cụm K-mean cho lựa chọn neo
Thay vì phải chọn hộp neo theo cách thủ công, YOLOv2 sử dụng thuật toán
K-mean đề đưa ra lựa chọn hộp neo tốt nhất cho mạng Điều này tạo ra một IOU tốt
hơn.
Mục tiêu của thuật toán phân cụm này: từ dữ liệu đầu vào và số lượng cụm em
muốn tìm, cho biết trung tâm của mỗi nhóm Gán các điểm dữ liệu thành các nhóm
tương ứng.
Đầu vào: Dữ liệu X và số cụm để tìm K
19 Anchor Boxes for Object Detection
Trang 35Đầu ra: Trung tâm M và vectơ nhãn cho mỗi điểm dữ liệu Y.
¢ _ Bước 1: Chọn bất kỳ điểm K nào làm trung tâm ban dau
¢ _ Bước 2: Gan từng điểm dữ liệu cho cụm có trung tâm gần nhất
© Bước 3: Nếu việc gán dữ liệu cho từng cụm trong bước 2 không thay đổi
so với vòng lặp trước, chúng ta dừng thuật toán.
¢ - Bước 4: Cập nhật trung tâm cho từng cụm bang cách lay trung bình của tat
cả các điểm dữ liệu được gán cho cụm đó sau bước 2
e Bước 5: Quay lại bước 2.
Thuật toán sẽ dừng lại sau một số vòng lặp hữu hạn Vì hàm mất mát là một số
dương và sau mỗi bước 2 hoặc 3, giá trị của hàm mắt mát sẽ giảm Nếu một chuỗicác số rơi xuống và bị chặn bên đưới nó hội tụ Hơn nữa, số lượng cụm cho tất cả
dữ liệu là hữu han vì vậy tại một số thời điểm, hàm mắt sẽ được thay đổi và chúng
ta có thê dừng thuật toán ở đây
2.3.5 Dự đoán vi trí trực tiếp
YOLOV2 sử dung ham sigmoid (6) dé giới han giá trị trong khoảng từ 0 đến 1, do
đó hạn chế dự đoán hộp giới hạn xung quanh ô lưới dé làm cho mô hình ồn định
hơn trong quá trình đào tạo.
Xem Hình 16, với hộp neo có kích thước trên ô (py,pp) lưới với vị trí trên cùng
bên trái, mô hình dự đoán độ lệch (c,,cy) tỷ lệ và hộp ty, ty, ty, ty giới hạn
(by, by, by, by) Sự tự tin của dự đoán là ø(fa).
Trang 36Hình 16: Dự đoán hộp giới hạn trong YOLOv?2.
'YOLOv2 đã thêm 5% mAP khi áp dụng phương pháp này.
2.3.6 Thêm các tính năng chỉ tiết
YOLOv?2 sử dung ban đồ tính nang 13x13 dé dua ra dự đoán lớn hon 7x7 của
YOLOvI YOLOv2 cũng kết hợp các tinh năng ở các lớp khác nhau đề đưa ra dựđoán, cụ thể kiến trúc ban đầu của ban dé tinh năng kết hợp YOLOv2 là 26x26
được chụp từ gần cuối với bản dé tinh năng 13x13 ở cuối dé đưa ra dự đoán Cụthé, các bản dé tính năng này sẽ được ghép nối để tạo thành một khối được sử
dụng để dự đoán
Xem Hình 17, chúng ta có kiến trúc YOLOv2 Sau 4 lớp thần kinh, nó sẽ có lớpReorg dé giảm các bản đồ tính năng của hình ảnh, nó có thể bỏ qua 2 lớp thầnkinh để giảm thời gian thực hiện Hình 18 cho thấy ma trận sẽ được chia thành 4
nhóm.
Trang 373x3x 128 3x3x256
MaxPooling MaxPooling
3 MaxPooling
Hình 17: Kiến trúc YOLOv2!”
Reorg là một kỹ thuật tổ chức lại bộ nhớ để biến bản đồ tính năng 26x26 thành
13x13 với độ sâu lớn hơn đề có thê thực hiện ghép nối với bản đồ tính năng 13x13
ở cuối
Trong trường hợp chung của Reorg, Mạng thần kinh sẽ biến bản đồ tính năng có
kích thước [N, C, H, W] thành kích thước [N, C x s°, 2,2] Số lượng tham số
trong bản đồ tính năng vẫn giữ nguyên Khi chúng ta giảm 2 lần chiều rộng và
chiều cao, số lượng kênh phải tăng gấp 4 lần Sự chuyền đổi này hoàn toàn khácvới thay đổi kích thước trong xử lý hình ảnh Đề trực quan hóa dé dàng, bạn có
thể xem bản vẽ dưới đây:
9 [11 1o |12 ||13 |1s 14 |16
Hình 18: Kỹ thuật Reorg trong YOLOv2
!7 Determination of Vehicle Trajectory through Optimization of Vehicle Bounding Boxes Using a
Convolutional Neural Network
Trang 38Đây là một kênh của bản đồ tính năng 4x4 Để mang lại kích thước 2x2, đó làgiảm chiều rộng 2 lần và chiều cao gắp 2 lần, em chia kênh của bản đồ tính năng4x4 thành 4 tensors như hình trên, tương ứng với 4 kênh độ sâu của bản đồ tínhnăng 2x2 mới Vị trí của các giá trị trong mỗi kênh của bản đồ tính năng 2x2 mới
sẽ thưa thớt trên bản đồ tính năng 4x4 ban đầu với sải bước = 2 đọc theo trọng
lượng và chiêu cao.
2.3.7 Đào tạo đa quy mô
Sau khi loại bỏ các lớp kết nói đầy đủ, YOLO có thê chụp ảnh với các kích thướckhác nhau Nếu chiều rộng và chiều cao được tăng gấp đôi, em chỉ tạo ra 4 ô lưới
đầu ra và do đó là 4 lần dự đoán Vì mạng YOLO giảm giá trị đầu vào bằng 32,
em chỉ cần đảm bảo chiều rộng và chiều cao là bội số của 32 Trong quá trình đào
tạo, YOLO lấy hình ảnh có kích thước 320 x 320, 352 x 352, và 608 x 608 (vớisai bước 32) Cứ 10 đợt, YOLOv2 chon ngau nhiên kích thước anh khác dé dao
tạo mẫu Điều này hoạt động như tăng cường dữ liệu và buộc mạng phải dự đoán
tốt cho các kích thước và tỷ lệ hình ảnh đầu vào khác nhau Ngoài ra, em có thể sửdụng hình ảnh có độ phân giải thấp hơn dé phát hiện đối tượng với chi phí chính
xác Đây có thể là một sự cân bằng tốt cho tốc độ trên các thiết bị sử dụng GPUthấp Ở 288 x 288 YOLO chạy ở hơn 90 FPS với mAP gần như tốt như Fast R-
Trang 39Type Filters | Size/Stide | Output tom 32 1x1 | 221x221 Maxpool 2 2 | 112x112
Nhìn vào Hình 19, đầu vào của hình anh là 224x224, sau khi nhân với ma trận hạt
nhân, hình ảnh đầu ra sẽ được tỷ lệ thành 112x112 vì giá trị tổng hợp là 2 Sau 5
lớp gộp, kích thước của hình ảnh là 7x7.
2.3.9 YOLO9000
'YOLO9000 cung cấp một cách dé kết hợp các bộ dữ liệu khác nhau với ImageNet
để phát hiện nhiều lớp hơn Tác giả tạo một định hướng có tên WordTree như
trong Hình 20.
Dé có thé kết hợp nhãn từ bộ ImageNet (1000 lớp) với COCO / PASCAL (100
lớp), tác giả dựa vào WordNet dé xây dựng mối quan hệ giữa các lớp, từ đó đào
tạo mạng đề xác định các lớp liên quan ký hợp đồng với nhau
Trang 40physical object
natural object phenomenon
tabby Persian
biplane jet airbus stealth golden potato feLt sea American
fighter fern fern fern 1avender twinflower
Hình 20: WordTree-YOLO9000 2.4 Vivado & Petalinux
Vivado Design Suite là một bộ phần mềm được sản xuất bởi Xilinx để tổng hợp và
phân tích các thiết kế HDL, thay thế Xilinx ISE với các tính năng bổ sung cho hệthống phát triển chip và tổng hợp cấp cao Vivado đại diện cho việc viết lại và suynghĩ lại toàn bộ luồng thiết kế (so với ISE)
Giống như các phiên bản sau của ISE, Vivado bao gồm trình mô phỏng logic tích hợpISIM Vivado cũng giới thiệu tổng hợp cấp cao, với một chuỗi công cụ chuyển đổi
mã C thành logic có thể lập trình
Hình 21 cho thấy từ nguồn C/C++, chúng ta có thê tổng hợp, tạo thiết kế DSP và xuất
IP mạch Sau khi có đủ tài nguyên, chúng ta có thé kết nói tat cả chúng dé tạo ra một
mạch lớn.