Các kỹ thuật dựa vào mạng nơ-ron tích chập ngày cảng được áp dụng rộng hơn với các biến thé khác nhau trong lĩnh vực phát hiện hoặc nhận diện đối tượng.. Một số nghiên cứu được thực hiện
Trang 1ĐẠI HOC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
LE DUONG - 20521216
VO NGOC THIEN - 20520933
KHOA LUAN TOT NGHIEP
HE THONG PHAT HIEN VA NHAN DIEN BIEN BAO
GIAO THONG DUONG BO
DETECTING AND CLASSIFYING ROAD TRAFFIC SIGNS
SYSTEM
CU NHÂN KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN ThS NGO HIEU TRUONG
TP HO CHI MINH, 2024
Trang 2LỜI CẢM ƠN
Đầu tiên nhóm xin cảm ơn các thầy và cô tại trường đã giúp đỡ và chỉ dạytrong quá trình học tập và làm việc tại trường Do đó, quãng thời gian học tập tại trường là một trong những khoảng thời gian quý báu giúp nhóm có được nhữngkiến thức, những trải nghiệm cực kỳ quý báu và cũng như tích lũy được nhiềukinh nghiệm dé có thé vững bước trong cuộc sống sau này
Tiếp theo, nhóm xin chân thành cám ơn các thầy, cô tại khoa Kỹ thuật Máytính đã luôn nhiệt tình giúp đỡ, chỉ bảo, góp ý tận tình xuyên suốt quá trình học
tập tại khoa Đặc biệt, trong quá trình làm khóa luận đã được các thầy, cô tạo điều
kiện, quan tâm và giúp đỡ dé nhóm có thé hoàn thiện khóa luận một cách tốt nhất
Đặc biệt, để có thể hoàn thành tốt khóa luận tốt nghiệp nay, nhóm xin đượcgửi lời cảm ơn sâu sắc đến thầy Ngô Hiếu Trường đã luôn tận tâm giúp đỡ, chỉdạy, luôn tạo điều kiện, môi trường tốt nhất cho nhóm làm việc, cũng như chia sẻnhững kinh nghiệm về chuyên môn và các kỹ năng mềm cần thiết dé nhóm có théhoàn thành khóa luận tốt nhất cũng như áp dụng cho quá trình làm việc sau này
Cuối cùng, nhóm xin gửi lời cảm ơn đến gia đình, người thân và bạn bè đã
tin tưởng, ủng hộ, động viên giúp nhóm có thê yén tâm hoàn thành khóa luận tốt
nghiệp.
Trang 32.1 Tìm hiểu Kria KV260 Vision AI Starter KÍt - -cccccccccceccee 11
2.3 Mạng no-ron (Neural Network) .ccccccccccsseesecseesseneeeeeseeseeteeeseeeeneeeaees 13
2.4 Mang no-ron tích chap (Convolutional Neural Network) 15
2.4.1 Hàm kích hoạt (Activation ẨunctiOn)) .- -++ss++e+svxseessexes 21
2.4.3 Batch normalizatiOn - cv sEESEEsikrrrkrrererree 24
2.4.4 Hàm tính IOU c2 S S 1S 2S SH rệt 24 2.5 You Only Look ÔñC€ - c2 2c 1222132311391 1151 1181185118111 E11 re 25 2.6 Deep-Learning Processor HnI( óc tt xxx 29Chương 3 PHƯƠNG PHAP DE XUẤTT - 2 ++x+EE£EEeEEeEEerEerrrrkerreee 34
3.1 Tập dữ liệu biển báo giao thông đường bộ Việt Nam - 34
3.1.1 Biển báo cấm cccc the 343.1.2 Biển báo hiệu lệnh ccccccccrkrrrrrriirrrriirrrrrirrrik 36
3.1.3 Biển báo chỉ dẫn cctthhhnHhe re 36
3.1.4 Biển báo nguy hiỂm -©5 2S E2E2E1211211211211211 1111 1xx 373.2 Gan nhãn dữ LOU . - 2111122111111 2531111115511 1199211 key 39
3.2.1 _ Thu thập dữ liệu - +2 2S S + SH re 39
Trang 43.2.2 Gan mhAn thu CONG ah 39
3.2.3 Gán nhãn bang tracking object với SUPERVISELY 40
3.3 Mô hình để xuat es eccccseeeeesesssssneeseessnneecessssnneeessseeescesssneeeeessnneeesssnees 41
3.4 _ Hiện thực lên Kria KV260 Vision AI Starter Kt <<55+©55 43
3.4.1 Chuyển đổi mô hình sang định dang tương thích với SoC-FPGA 44
3.4.2 Lượng tử hóa mô hình - + + +23 *31 E9 E5 SE EEEkerrrrerrke 45
3.4.2.1 Cross-layer equaÌ1ZafiOn + cSt*snsksierrsrrrrerreree 48 3.4.3 Biên dịch mô hình sang định dạng phù hợp cho DPU 493.5 Luồng xử lý dit liệu - c+E2+E2E2E12E1211211E111111 1111111 52Chương4 KET QUÁ Z7 £ØÉÉ ` ——ớỨÉ SE S52 S55 54
Al cv, ha 544.2 Kết quả huấn luyện trên phần mềm 2 2©£©+£+x£+£x£+£xzzsz+¿ 54
43 Kết quả hiện thực trên Kria KV260 Vision AI Starter KIt 59
4.3.1 Kết quả khi kiểm tra bằng file 2-2 2 ++EE+E2EEeEerxerxerxerxee 594.3.2 Kết quả khi kiểm tra thông qua camera trực tiẾp -s- +: 61Chương 5 KẾT LUẬN VA HƯỚNG PHAT TRIEN TIẾP THEO 64
““"'°u .anäš d.d - 64
5.3 Hướng phát triển tiếp theo +2 +E2E12E12E12E15711171 1171212 re, 65TÀI LIEU THAM KHẢO - 5c cSt2E‡ESEEEEEE2EEEESESEEEESEEEESEEEEEESEEEESEEEEEkrrkrrrei 66
Trang 5DANH MỤC HÌNH
Hình 1.1 Hiệu suất YOLO-Tiny với các phiên bản khác trên tap COCO dataset 7Hình 1.2 Quá trình ROI extraction và reCOỹØTIfIOH 6 5 2+ + £+vvsveresessers 8Hình 1.3 Quy trình trích xuất các vùng trên ảnh . - 2-2 sex serxcrxez 9Hình 2.1 Cấu tạo của Kria KV260 Vision AI Starter KÍt 25csxsxccsrxses 12
Hình 2.2 Học máy và học sâu 2c 3 2211121 1251211 111111111211 111 1111 re 13
Hình 2.3 Cấu trúc no-ron sinh hỌC -¿- :- se + k‡SSE‡EEEEEEEEEEEEEEEEEEEEkrkeEkrkererkerrrs 14Hình 2.4 Minh họa một neural network .- - << + 2S 22111 E211 keeeezzee 15 Hình 2.5 Mạng nơ-ron trong xử lý ảnh ¿2c + + 33233 E+EEseereereeereeeres 16 Hình 2.6 Sử dung nhân tích chap va feature sharing . -+++-s+++ss+ss++ 17 Hình 2.7 Minh hoa padding xung quanh - 5c 5+ + +*£+v+eseeeeeereerrereexe 18 Hình 2.8 Minh hoa stride - - c2 2 E1 2222118111233 11 1118231111195 1 1kg 18
Hình 2.9 Cách hoạt động của bộ lọc trong ma trận 2 chiỀU - 5c ccccezeresrers 19 Hình 2.10 Cách kernel hoạt động trong ma trận 3 ChiÊU 5c cc+cxcrrererxee 19
Hình 2.11 Một mô hình CNN đơn Gian .- - 55c 22c +32 * 3+ +seEsseeeseereeeres 20Hình 2.12 Đồ thị của hàm sigmoid - 2: 2¿52¿22++2£x+2EE+2EE++EEeerxeerxeerseee 21Hình 2.13 D6 thị hàm ReLU -¿¿ 25::-222222222vv2EEExtrttEtttrrtrrtrrrrrtrrrrrrtrieg 22Hình 2.14 Đồ thị hàm Leaky ReLU - ¿52 2S++EE2EE2EE#EE+EE+EESEEeExsrkerxees 23Hình 2.15 Cách hoạt động của một số loại pooling - 2-5 s xxx: 24Hinh 2.16 Cach tinh 8.78019600001557 25 Hình 2.17 Cac công đoạn của mô hình YOLO .- ¿+55 52+ ++sxsvssereeeesee 26Hình 2.18 Ví dụ về cách thức YOLO hoạt động - 2-2 + xc2£++£xzrxrrxez 28Hình 2.19 Kiến trúc tổng quan của DPU ¿- 2 2 k+Ek£EE£EE£EEeEEerEerkerrerrees 29Hình 2.20 Kiến trúc của DPU và kết nối với các phần cứng bên ngoài 33Hình 3.1 Quá trình sử dung tool Labellmg - - 5 6+ ‡ssssereeeeeeeeerske 40 Hình 3.2 Quá trình sử dụng tool SUPERVISELY - SccScssssreereseeerree 40Hình 3.3 Kiến trúc của YOLOv3-Tiny - ¿5c 2 S12 2E EEEEEEEEEEEEEkerkerkertees 42Hình 3.4 Độ chính xác của YOLOv3-Tiny và một số phiên bản khác[ 17] 43Hình 3.5 Sơ đồ quy trình hiện thực mô hình lên KIt ¿ «+ +5 «£+s<++ex++ 44
Trang 6Hình 3.6 Tổng số lượng tham số khi huấn luyện ở framework Darknet 45Hình 3.7 Tổng số lượng tham số khi đã chuyền đổi sang định dạng Tensorflow 45Hình 3.8 Quantization ÍÏOW óc + 1121121111111 1111 191110111 11 11 E11 1H HH hy 47 Hình 3.9 Vitis AI compiler ÍraIm€WOTĂ c2 3x v.v net 50 Hình 3.10 Compilation ÍÏOW - -. c1 2113211191119 9 111111 H1 ng kg ng rưy 51 Hình 3.11 Compiler cho Customized ÏP c5 3c 333333 seeseeeeeeerreeres 52Hình 3.12 Luồng xử lý đữ liệu - ¿2 2+S++E2EE2E2E12E12E12E1E7157171 7121 te 53
Hình 3.13 Kết nối của DPU với vi xử ly của Kria KV260 -5-55c 55c: 53
Hình 4.1 Chuẩn bị phan cứng o c.ccccccecccccessessesssessesssesssssesseessessesssessecssessessnessessnenses 59
Trang 7DANH MUC BANG
Các loại biển báo CAM .ceeccsessessssseseesecsesscsessesscsesereaesusstssesevsveateesseseteeseeees 34Các loại biển báo hiệu lệnh -¿-©52+++222++vettvxvrrrrrrvrrrrrrrrree 36Các loại biển báo chỉ dẫn :- St E‡EEE‡ESEEEEEEEEESEEEESEEEEESErEkrkrrkrrrer 36Các loại biển báo nguy hiểm - 2-2 2S E‡EE£EEtEEeEEEEErrErrkrrrerree 37Các nền tảng Vitis AI hỗ trỢ 2-5221 SE‡EEEEEEEEEEEEEEEEEEEEEErrrrrrrree 50
Tổng số lượng nhãn và hình ảnh 2- 2: 255 x+£E+£EczEczxzxezxez 54
AP của tất cả CAC CLASS .cesccecessesssesssessesssessesssessesssessesssessessetiessessesseessess 57
AP của các class sau lượng tt oo eeccescesceseeesseeeseeesecseceseeeseeenseeeseenses 58Kết quả khi kiểm tra băng file ảnh o cecceccecceseesessessessessessessessessesseeseeaes 59Kết quả khi kiểm tra thông qua camera trực tiếp -:-: 61
Trang 8DANH MỤC TỪ VIET TAT
Ký hiệu hoặc viết tắt Chú thích
ADAS Advanced Driving Assistance System
mAP Mean Average Precision
FPS Frame per second
FPGA Field-programmable gate array
CNN Convolutional Neural Network
Al Artificial intelligence
SSD Single Shot MultiBox Detector
SVM Support Vector Machine
HOG Histogram of Oriented Gradient
YOLO You only look once
ReLU Rectified Linear Unit
loU Intersection over Union
CPU Central Processing Unit
DPU Deep Learning Processor Unit
GPU Graphics Processing Unit
RPN Region Proposal Network
ROI Region of Interest
Trang 9DPM Deformable Parts Models
XIR Xilinx Intermediate Representation
HDMI High-Definition Multimedia Interface.
USB Universal Serial Bus
Trang 10TOM TAT KHÓA LUẬN
Sự phát triển của Hệ thống hỗ trợ người lái xe nâng cao — Advanced Driving
Assistance System (ADAS) đã giúp cho người lái được hỗ trợ bởi những tiện ích giúp
cho trải nghiệm khi lái xe tốt hơn và tăng cường độ an toàn giao thông Trong số rấtnhiều thử thách mà ADAS phải đối mặt, việc phát hiện và nhận diện biển báo giaothông là một trong những van dé rat quan trọng do nó cung cấp thông tin cần thiết manếu xảy ra sai sót có thé dẫn đến những sự cố không mong muốn
Trong khóa luận này, nhóm hướng đến việc sử dụng trí tuệ nhân tạo nhằm giảiquyết bài toán phát hiện và nhận diện biển báo giao thông đường bộ dé được độ chínhxác cao, đồng thời tận dụng tài nguyên được tích hợp trên Kria KV260 Vision AIStarter Kit dé có được một tốc độ xử lý cũng như độ chính xác tốt Đề thực hiện đượcđiều này, nhóm chia đề tài thành 2 phần chính
Đầu tiên, nhóm tìm hiểu các phương pháp phát hiện và nhận diện, tập trung
vào các bài báo về các mô hình học sâu: RCNN, fast RCNN, faster RCNN, YOLOv2,
YOLOv3 và một số các thuật toán khác Sau quá trình thử nghiệm, nhóm sẽ quyếtđịnh mô hình phù hợp nhất dựa trên tốc độ xử lý, độ chính xác và kích thước mô hình.Tiếp theo, nhóm tìm hiểu cách thiết lập thông số và bắt đầu huấn luyện dé mô hìnhđạt được các thông số tốt nhất
Tiếp theo, sau khi đã hoàn thành huấn luyện, nhóm sẽ đánh giá mô hình, sau
đó nhóm tiếp tục tìm hiểu các phương pháp triển khai hệ thống trên SoC-FPGA.Nhóm sẽ tìm cách chuyên đôi mô hình thành các định dạng dé board có thé đọc được,
sau đó tìm hiểu các thông số của mô hình và cấu hình dé hệ thống hoạt động tối ưu
Trong đó, tìm hiểu cách triển khai mô hình lên Xilinx Deep Learning Processor Unit
(DPU) là một phần cứng khả lập trình được thiết kế riêng cho mạng nơ-ron tích chập.
Trang 11MỞ ĐẦUMột trong những hệ thống đang liên tục được phát triển hiện nay là Hệ thống
hỗ trợ người lái xe nâng cao — Advanced Driver Assistance System (ADAS) Công
nghệ này giữ vai trò hỗ trợ người lái cũng như làm các tác vụ quan trọng trong van
đề giảm thiểu rủi ro và nguy cơ xảy ra tai nạn giao thông Sự phát triển của ADAScũng kéo theo sự phát triển trong các phương pháp nhận diện môi trường xung quanhphương tiện, một trong số đó là phát hiện và nhận diện biên báo giao thông
Thử thách lớn nhất trong việc phát hiện và nhận diện biển báo giao thông là
sự nhiễu trong môi trường thực, gây ra bởi các tác nhân như điều kiện ánh sáng, thờitiết hoặc chính con người làm biển báo bị biến dạng nhẹ, biển báo nhỏ, không rõ rang
khiến cho các hệ thống gặp khó khăn trong việc xử lý Những năm gan đây, lĩnh vực
thị giác máy tính nói chung có nhiều tiến bộ vượt bậc nhờ su bùng nô của mạng ron tích chập Điều này giúp các nhà nghiên cứu tạo ra một mô hình và huấn luyệnchúng Mô hình sẽ “học” trong khi huấn luyện (hiệu chỉnh các trọng số bên trong nó)
nơ-để dần dần hiểu được đữ liệu đưa vào và biết cách trích xuất các đặc trưng cần thiết
dé hoàn thành công việc thay vì yêu cầu người thiết kế phải bao quát mọi tình huốngkhả di.
Tuy nhiên, mặc dù mạng nơ-ron tích chập có thé giải quyết hiệu quả các tác
vụ phức tạp nhưng nó đòi hỏi chỉ phí tính toán lớn, dẫn đến độ trễ tương đối cao, gâykhó khăn khi áp dụng cho các vấn đề yêu cầu tính toán thời gian thực Một loại thiết
bị có thể giải quyết van đề này là bộ xử lý đồ họa — Graphics Processing Unit (GPU),với khả năng tính toán song song rất mạnh Nhưng các GPU này lại tiêu tốn nhiều
năng lượng dé hoạt động cho nên không khả thi dé tích hợp lên các thiết bị rời Một
giải pháp triển vọng khác là Deep-learning Processing Unit (DPU) của Xilinx đượctích hợp trong một số thiết bị của Xilinx Đây là một thành phần được thiết kế choviệc xử lý ảnh cho nên các vấn đề về năng lượng, nhiệt độ và khả năng xử lý songsong đều được bao quát trong phần cứng này
Dựa trên các công việc, kết quả và phương pháp hiện thực đề tài này, bố cụckhóa luận của nhóm được tô chức như sau:
Trang 12Chương 1: Giới thiệu tổng quan đề tài.
Nêu tổng quan, mục tiêu đề tài và phân tích nghiên cứu trước đó đã được thực
hiện, điểm mạnh và điểm yếu của các giải pháp đó.
Chương 2: Cơ sé lý thuyết
Trình bày các nền tảng lý thuyết được sử dụng trong đề tài Mỗi mục trìnhbày về lý thuyết và hình ảnh nếu có
Chương 3: Phương pháp đề xuất
Trình bày mô hình đề xuất, lý do chọn mô hình Đưa ra chỉ tiết quá trình hiệnthực mô hình lên trên Kria KV260 Vision AI Starter Kit.
Chương 4: Kết quả
Nêu kết quả đạt được, độ chính xác khi huấn luyện trên Google Colab, so
sánh với kết quả khi chạy trên kit Ngoài ra, so sánh với kết quả độ chính xác
sau lượng tử, hiệu suất khi đưa các kịch bản kiểm thử vào
Chương 5: Kết luận và hướng phát triển tiếp theo
Nêu kết luận, nhận xét đề tài, các vấn đề gặp phải và nêu hướng phát triển
tiếp theo
Trang 13Chương 1 GIỚI THIỆU TONG QUAN DE TÀI.
1.1 Giới thiệu.
Các kỹ thuật dựa vào mạng nơ-ron tích chập ngày cảng được áp dụng rộng hơn
với các biến thé khác nhau trong lĩnh vực phát hiện hoặc nhận diện đối tượng Triển
khai mô hình học sâu lên trên các edge devices nhằm hướng đến mục tiêu xử lý thờigian thực là thử thách lớn bởi vì tài nguyên hạn chế Các kỹ thuật tối ưu như là lượng
tử hóa, sử dụng mạng nơ-ron nhẹ hơn cho phép chạm đến thực thi thời gian thực tuy
nhiên phải đánh đổi bằng độ chính xác giảm đi một phần Tuy nhiên, nếu sử dụng các
cách tiếp cận hợp lý thì việc áp dụng các kỹ thuật cải tiến làm cho hiệu suất khônggiảm đi quá nhiều là khả thi
Cac one-stage detector đã được phát hành và tiếp tục phát triển dé có thé đápứng được nhu cau xử lý thời gian thực với mức độ chính xác và tốc độ xử lý ở mứctương đối Các phương pháp này loại bỏ giai đoạn chọn trước các vùng Region of
Interest(ROI) và hậu xử lý như: tỉnh chỉnh các bounding box, loại bỏ các kết quả
trùng lặp và hiệu chỉnh detection score nhăm mục đích giảm độ phức tap và đảm bảo
tốc độ xử lý đáp ứng được thực thi thời gian thực Các giai đoạn được loại bỏ ở trên
được sử dụng trong các two-stage detector như là: R-CNN [8] và các phiên bản nângcấp của nó [9][10]
Các nhà nghiên cứu đã liên tục phát triển và cho ra đời các mô hình học sâu khác nhau, trong đó có mô hình nổi trội như YOLO có thời gian tính toán tương đối nhanh và độ chính xác khá cao nhưng kích thước lại rất lớn You Only Look Once
(YOLO) gan đây đã được đề xuất trong [11] như một mô hình one-stage detector hiệu
quả có thể nhận diện và phát hiện các đối tượng trong thời gian rất nhanh Các so
sánh được công bồ và đánh giá bởi các nghiên cứu [12][13][14] cho thấy YOLO vượttrội hơn các two-stage detector và các one-stage detector khác như Single Shot
Detector (SSD) Ké từ khi được giới thiệu, nhiều phiên bản của YOLO đã ra đời như
YOLOv2 [15], YOLOv3 [16] Trong YOLOv2 [15], các lớp fully connected ở cuối
đã bị loại bỏ và áp dụng kiến trúc Darknet-19 YOLOv3 [16] sử dụng kiến trúc
Trang 14Darknet-53 và kế thừa khái niệm của residual network Việc phát hiện được thực hiện
ở 3 đầu ra có tỉ lệ khác nhau, điều này giúp làm giảm đi khả năng bỏ qua các đốitượng có kích thước nhỏ vốn là một điểm yếu chưa cải thiện được của các phiên bảnYOLO trước Tuy nhiên, do phiên bản YOLOv3 có độ sâu tương đối lớn, phiên banYOLO-Tiny có thời gian tính toán và khối lượng được cải thiện hơn rất nhiều đượccho ra đời, mô hình này tập trung vào tốc độ nên độ chính xác giảm hơn khi so với
phiên bản gốc [17] Hình 1.1 cho thấy hiệu suất của mô hình YOLO-Tiny với một số
Hình 1.1 Hiệu suất YOLO-Tiny với các phiên bản khác trên tập COCO dataset
1.2 Các nghiên cứu liên quan.
Phát hiện và nhận diện biến báo giao thông trong môi trường giao thông thực tế
sao cho hiệu quả là van dé vẫn đang tiếp tục được nghiên cứu, phát triển và tối ưu.Trong lúc các phương tiện ngày càng tiện lợi, một hệ thống nhanh và chính xác đề hỗ
trợ cảnh báo là cực kì cần thiết dé có thé giảm đi các tình huống đáng tiếc Một số
nghiên cứu được thực hiện trước đây và đã cho ra kết quả khá tốt, nhưng vẫn có các
Với hướng tiếp cận truyền thống, thông thường sẽ bao gồm 3 bước: chọn vùng
dự kiến có chứa biển báo, sau đó trích xuất thủ công đặc trưng từ vùng đó và dùng
các đặc trưng đó thành đầu vào của bộ nhận diện (như là SVM, HOG, )[1][2][3]
Trang 15Tuy nhiên, các đặc trưng đã trích xuất bởi các thuật toán truyền thống thường chỉ sử
dụng được cho các đối tượng riêng, dễ bị nhiễu bởi môi trường và hiệu suất không
được tốt đối với các đối tượng có nhiều loại Với phương pháp cần hai công đoạn:một công đoạn sẽ thực hiện ROI extraction và recognition (Hình 1.2) Công đoạn nay
sẽ dùng các thuật toán như color transformation, shape matching, Dé chọn ra vùng
có thê chứa biển báo và sau đó trích xuất đặc trưng vùng đó và đưa thành đầu vào củacác bộ phân loại như SVM, HOG,
Hình 1.2 Quá trình ROI extraction va recognition [2].
Voi hướng tiép cận hiện đại hơn, một số phương pháp phát hiện và nhận diệndùng mạng nơ-ron tích chập có kết quả tốt hơn với đối tượng có nhiều loại và có độ
phân giải cao[4][5] Việc sử dụng mạng nơ-ron tích chập như [5], các nhà nghiên cứu
đã huấn luyện fully convolutional network (FCN) và sử dụng mạng học sâu 7 lớp (4lớp convolutional và 3 lớp fully connected) (Hình 1.3) Nhưng lại có thời gian tính toán lớn và sử dụng rat nhiều tài nguyên Một sô khác cải thiện về thời gian tính toán
Trang 16nhưng lại bị hạn chế ở phương diện phát hiện những vật thể có khoảng cách khácnhau.
Original images
Heat maps
Coarse sign regions
Sign proposals
Hình 1.3 Quy trình trích xuất các vùng trên anh[5]
1.3 Mục tiêu.
Dé có thê giải quyét được bài toán đưa ra nhóm sử dụng mô hình học sâu triên
khai trên SoC - FPGA, trong khóa luận này, nhóm đưa ra bốn mục tiêu chính:
1 Nhận diện chính xác các biển báo ở các khoảng cách khác nhau
2 Tốc độ khung hình ôn định với mật độ biển báo khoảng 4 biển báo trong cùng
khung hình.
3 Nhận diện được 40 loại biển báo khác nhau
Trang 174 Triển khai hệ thống trên SoC- FPGA.
Hệ thống phát hiện và phân loại biển báo giao thông được hiện thực trên FPGA, đầu vào là dữ liệu được ghi lại bởi camera Logitech kết nối với board KV260,
SoC-dữ liệu được xử lý trong Kria KV260 Vision AI Starter Kit và kết quả được xuất ramàn hình hién thị được kết nối vào kit qua công HDMI
10
Trang 18Chương 2 CƠ SỞ LÝ THUYÉT.
2.1 Tìm hiểu Kria KV260 Vision AI Starter Kit.
Xilinx đang trong giai đoạn thay đôi rõ ràng các chiến lược nhằm tiếp cận thịtrường mới Trong nhiều năm, Xilinx được biết đến bởi các thiết bị dựa trên côngnghệ FPGA Giờ đây, Xilinx đang cố gang phát triển thêm các thị trường có thé tiếpcận (TAM) cho các FPGA của mình bằng cách hướng sản phẩm của mình phát triểncác lĩnh vực mới Xilinx có Alveo Accelerator Boards có thé kết hợp với khe cắmPCIE của máy chủ và đã mở rộng sang Building Ready-to-Deploy Solutions Dongsản phẩm Xilinx Kria được thiết kế dưới dạng System on Modules (SOM) [6] sẽ tăng
tốc cho các ứng dụng AI một cách vượt trội (Accelerate Edge AI Inferencing) bằngcách kết hợp cả phân cứng tôi ưu và phân mêm từ Xilinx.
Kria K26 System on Module ra mắt ngày 20/04/2021 được thiết kế như một
“Vision Accelerator” Trước hết, Xilinx Kria là một thương hiệu mới giống nhưXilinx Alveo Ngay sau khi ra bản Kria K26 System on Module thì Xilinx cũng tung
ra ban Developer Kit dành cho người mới bắt đầu với khả năng tạo ra các hệ thống
nhanh và dễ tiếp cận.
Xilinx đã ra mắt “Xilinx Kria KV260 Starter Kit” có thể hỗ trợ tối đa 3 MIPI
Sensors va Display Outputs (HDMI và DisplayPort), bên cạnh đó là IGbE và USB
tích hợp cùng Bản thân Module cũng có một bộ làm mát dành cho DesktopDevelopment SOM được kết nối rất chắc chắn và chỉ bao gồm các components chính
như AMD Zynq UltraScale+ MPSOC based thiết bi silicon, bộ nhớ, boot va module
bảo vệ Carrier card cho phép lựa chon da dang interface, các giải pháp về năng lượng,mạng kết nối cho camera, display và thẻ microSD Hình 2.1 cho thấy hình ảnh tổngquan của Kria KV260 Vision AI Starter Kit.
11
Trang 19Raspberry Pi Micro-USB
Camera Connector UART/JTAG Pmod
IAS Connector
SOM Module with Fansink
IAS Connector
Fan Power
nat
H sunt
Ethernet 4x USB 3.0 HDMI DisplayPort
Hình 2.1 Cấu tạo của Kria KV260 Vision AI Starter Kit
Xilinx cũng phát triển các Accelerated applications cho phép người dùng pháttriển và ứng dụng mô hình của họ ở cấp phần mềm Các ứng dụng Edge Vision phổbiến hiện có sẵn và một hệ sinh thái các đối tác của Xilinx đang phát triển
Xilinx không chỉ cung cấp FPGA Thay vào đó, hãng còn cung cấp cho FPGA
các tính năng và Software Stacks đã được xây dựng san Sẽ có các giải pháp Vitis AI
được xây dựng dé giúp SOM nay được sử dụng với Frameworks phô biến Cuối cùng,
người dùng có thể lập trình bằng RTL, hoặc sử dụng các công cụ cao cấp hơn được
hỗ trợ bởi Xilinx Xilinx đang trong hành trình gỡ bỏ các rào cản sử dụng các sản
phẩm đề khách hàng có thể triển khai trên FPGA mà không cần tìm hiểu các chỉ tiếtphức tạp.
2.2 Học sâu (Deep Learning).
Học sâu là một phương thức trong lĩnh vực học máy thuộc trí tuệ nhân tạo; ở đây,phương thức này sẽ giúp máy tính học và cải tiến bản thân bằng các thuật toán Trong
đó, mạng nơ-ron trong học sâu được thiết kế mô phỏng quá trình nhận thức của não
bộ con người.
12
Trang 20Mạng nơ-ron sẽ có nhiêu lớp khác nhau, môi lớp chứa các node được kết nôi với các node ở các lớp lân cận khác Khái niệm về độ sâu trong mạng nơ-ron được xác định bởi sô lớp mà nó có, do đó, càng nhiêu lớp thì mạng sẽ "sâu hơn" Tât cả kêt nôi giữa các nút đêu có một trọng sô, biêu thị tính quan trọng của kêt nôi đó trong mạng.
Mỗi nơ-ron sẽ chứa một hàm kích hoạt rất quan trọng đảm bảo "chuẩn hóa" đầu
ra Mọi thông tin mà người dùng đưa vào mạng đều đi qua tất cả các lớp và đều đónggóp cho ra kết quả ở lớp đầu ra Hình 2.2 là minh họa các cơ chế hoạt động khác nhautôn tại giữa học máy và học sâu.
Input Feature extraction Classification Output
—>
Input Feature extraction + Classification Output
Hinh 2.2 Hoc may va hoc sau.
Trong lĩnh vực thị giác máy tính, hoc sâu đã dat được nhiều bước tiến lớn, nhờkha năng mô phỏng cau trúc và cách vận hành của nơ-ron sinh học Học sâu sẽ dùng
các mô hình mạng nơ-ron tương đối sâu với nhiều lớp ân cho phép tự học và làm chủ
các cách biểu diễn dữ liệu phức tạp Điều này cho thấy rằng Deep Learning sẽ chokết quả tốt hơn so với bất kỳ phương pháp thông thường khác
2.3 Mang no-ron (Neural Network).
Mang nơ-ron là kỹ thuật xử ly mô phỏng theo nơ-ron sinh hoc của con người Tin hiệu đâu vào nơ-ron sinh học sẽ được các dendrites nhận tín hiệu và xuât các tín hiệu
13
Trang 21dau ra dọc trên các axon Cac axon sau đó rẽ nhánh vào dendrites của các neuron khác thông qua các synapses (Hình 2.3).
Neuron Anatomy
Soma Axon terminals
(cell body) | `
Dendrites
Những tầng perceptron cau tạo nên Mang Neural Network [7], bao gồm 3 lớp:
- Input layer: Artificial neural network nhận thông tin từ bên ngoài được đưa
vào qua lớp này, nó sẽ chịu trách nhiệm phân tích hoặc phân loại, xử lý dữ liệu
trước khi đưa dữ liệu đến lớp kế tiếp
- Hidden layer: Dữ liệu đến lớp này bắt nguồn từ input layer hoặc các hidden
layer khác Số lượng lớp này tùy theo mỗi mang mà có thé nhiều hay ít Mỗihidden layer sau khi nhận dt liệu từ lớp trước sẽ có nhiệm vụ phân tích, xử lý
dữ liệu này và đưa dit liệu sang lớp tiếp theo
- Output layer: Chịu trách nhiệm tạo ra kết quả cuối cùng sau khi được xử lý
Một lớp có thé bao gồm một node hoặc nhiều node Hãy lấy vi dụ về phân
loại nhị phân: trong trường hợp này, sẽ có một node ở output layer chỉ tạo ra
hai kết quả 0 hoặc 1 Mặt khác, nếu gặp một bài toán phân loại đa đối tượng,
nó sẽ có thê được biểu diễn một cách tượng trưng với output layer có nhiều
hơn một node đâu ra.
14
Trang 22Output layer
Hidden layer 1 Hidden layer 2
Hình 2.4 Minh họa một neural network.
Dựa trên cơ chế này, một mạng nơ-ron nhân tao (artificial neural network) bao gồm
nhiều lớp (Hình 2.4), thường được gọi là fully connected layers, và mỗi lớp bao gồmnhiều node Một node nhận đầu vào từ tất cả mọi node ở lớp trước, và mỗi đầu vào
sẽ được nhân với một trọng số (weight) Giá trị của các trọng số này không đượcngười thiết kế chọn mà phải được hoc thông qua một quá trình huấn luyện Các trọng
số này có vai trò khuếch đại input từ node trước hoặc làm yếu nó đi Sau đó, một giátrị bias được cộng vào và tong của ca node đó được đưa vào một ham kích hoạt phituyến tính
2.4 Mạng nơ-ron tích chập (Convolutional Neural Network).
Mạng nơ-ron tích chập là phương pháp được phát triển để áp dụng cho xử lý
ảnh Việc tạo ra mạng này bắt nguồn từ điểm chung của các kỹ thuật mà bi phụ thuộc
vào các giá trị pixel riêng lẻ Khi sử đụng mạng nơ-ron, lớp đầu vào có tổng số node,
có thê tính là 30.000 (100 x 100 x 3) cho kích thước hình ảnh 100 x 100 và sử dụng
3 kênh màu RGB Khi có nhiều trọng số và độ lệch trong mạng, nó sẽ làm tăng kíchthước cua mạng, làm việc tính toán va lưu trữ trở nên khó khăn (Hình 2.5) Tuy nhiên,khi đã nhận thấy dữ liệu liên quan đến một pixel có xu hướng chỉ bị ảnh hưởng chủyêu bởi các pixel lân cận và có thê bỏ qua một sô node của lớp đâu vao trong qua
15
Trang 23trình huấn luyện mà không làm ảnh hưởng quá nhiều đến độ chính xác của mô hình.Một vấn đề khác của mô hình có lượng trọng số quá lớn là hiện tượng overfitting, khi
mà mô hình đạt độ chính xác cao trong khi huấn luyện, nhưng thấp đối với các dữ
liệu cùng đối tượng nhưng không được huấn luyện Dé giải quyết vấn dé này, phépnhân tích chập được sử dụng để giảm số lượng trọng số trong mô hình trong khi vẫnđảm bảo được việc trích xuất đặc trưng từ ảnh
Hình 2.5 Mang nơ-ron trong xử lý ảnh.
Tích chập (convolution) là kỹ thuật sử dụng các bộ lọc (filters) hay còn gọi là
các kernels, dé đi lần lượt qua tắm ảnh, các bộ lọc thường là hai chiều và có kíchthước là 3 x 3 hoặc 5 x 5, với độ sâu giống với độ sâu của đầu vào Các kernels
sử dụng giá trị của những pixel lân cận nhau và dùng phép nhân tích chập, nhân chúngvới các giá trị trong kernel dé tạo ra kết quả cho output Tương tự với các trọng sốcủa neural network, giá trị của các kernel này cũng là các trọng số, chúng không hềđược quyết định từ trước mà được “hoc” xuyên suốt khâu huấn luyện
16
Trang 24Hình 2.6 Sử dụng nhân tích chap va feature sharing.
Bằng cách áp dụng phương pháp sliding window, trượt dần các bộ lọc theo chiềungang và dọc trên ảnh Mỗi pixel trong cửa sô trượt, nhân lần lượt với các giá trịtương ứng trong bộ lọc và cộng tat cả tích đó lại, và cứ thé tiếp tục trượt đến hết kích
thước đầu vào (Hình 2.6) Lúc đó sẽ thu được một Feature Map bao gồm các đặctrưng đã được trích xuất, dé bộ lọc có thé đi chuyền, phải thiết lập các giá trị bao gồm:
- Padding: đường viên, padding = k nghĩa là thêm k hàng và cột vector 0 hoặc 1
xung quanh ma trận Do sau mỗi lần tính toán tích chập hoàn thành, kích thước
ma trận sẽ nhỏ hơn, nhưng nêu muốn ma trận thu được giữ nguyên kích thước thicần chêm thêm các bộ đệm Hình 2.7 là một ví dụ về padding 0 kích thước 1 pixelxung quanh ma trận.
17
Trang 25Hình 2.7 Minh họa padding xung quanh.
- Stride: quy định số pixel sẽ di chuyển qua trong quá trình thực hiện Khi stride =
k thì cửa số trượt sẽ trượt đi k pixel sau mỗi lần tính toán Hình 2.8 minh họa cho
stride của bộ lọc trong tính toán tích chập.
một phần nhỏ của anh đầu vào Mỗi pixel trong cửa số trượt nhân với các giá trị tươngứng trong bộ lọc và cộng các tích lại với nhau Quá trình này được tiếp tục thực hiện
bằng cách di chuyên cửa số trượt sang bên cạnh lặp lại đến hết, tạo ra pixel dau ratiép theo
18
Trang 26Feature
Hình 2.9 Cách hoạt động của bộ loc trong ma trận 2 chiều
Tiếp tục cho ma trận 3D như Hình 2.10, là ma trận 2D có nhiều kênh, các bộ lọc
cũng sẽ có nhiều kênh tương ứng với ảnh đầu vào Một ma trận đầu vào kích thước
H x W x Dnhân tích chập với bộ lọc kích thước K x K x D sẽ tạo ra đầu ra 2D kíchthước H x W x 1 Đề tạo ra một đầu ra 3D kích thước H x W x D, cần D bộ lọc 3D
Vi vậy, kích thước bộ lọc và bias sẽ lần lượt là (D x D x H x W) và (D x 1)
height
%p_ th
Hinh 2.10 Cach kernel hoat d6ng trong ma tran 3 chiéu
Mang Convolutional Neural Network sẽ bao gồm nhiều lớp convolution cùngvới một số loại lớp khác Một kiến trúc CNN theo phong cách cô điền sẽ bat đầu bằng
19
Trang 27nhiều lớp convolution để trích các đặc trưng quan trọng và đưa vào lớp fullyconnected dé phân loại (Hình 2.11) Một số ví dụ phổ biến cho loại kiến trúc này bao
gồm VGG [22], AlexNet[21], ResNet[23] và nhiều mô hình khác.
input Image
Convolution, Pooling, and ReLU Fully Soltmax Output
Connected
Hình 2.11 Một mô hình CNN đơn giản.
Ngoài các lớp convolution va fully connected, một số lớp khác cũng được sửdụng trong mạng CNN bao gồm:
- Upsampling: ngược lại với lớp pooling, upsampling dùng dé tăng kích thước
của đầu vào mà không cần dùng tới trọng số Lớp này thường dùng cho cáckiến trúc có đầu ra là ảnh Các kiến trúc này thường có một giai đoạn encoder
để giảm kích thước ảnh đồng thời trích xuất các đặc trưng cần thiết, sau đó,giai đoạn decoder (chứa upsampling decoder) sẽ tong hợp các đặc trưng này
lại và tạo ra ảnh đầu ra
- Batch normalization: là một kỹ thuật dùng để giảm hiện tượng internal
covariate shift, khi mà khoảng giá trị trong các layer khác nhau quá nhiều, từ
đó giúp tăng tính ồn định và tăng tốc quá trình training
- Dropout: Dropout là một kỹ thuật dùng dé giảm overfitting bằng cách “tắt đi”
một nơ-ron hoặc feature maps trong quá trình huấn luyện, nói cách khác sẽ épcác thành phần này xuất ra giá trị 0 và buộc các nơ-ron và feature maps khác
phải học được các đặc trưng khái quát hơn.
20
Trang 282.4.1 Hàm kích hoạt (Activation function).
Hàm kích hoạt có vai trò chính là đưa tính phi tuyến tính vào đầu ra của mạngnơ-ron, đây không phải một lớp thực sự vì không có tham số hoặc trọng số nào cần
học Mạng nơ-ron không có hàm kích hoạt thực tế sẽ trở thành một mạng hồi quy
tuyến tính
Sau khi dữ liệu đã được hau hết các lớp xử lý, nó tiếp tục được xử lý qua hàm
kích hoạt phi tuyến tinh (Non-linear activation function) Một hàm kích hoạt phô biến
nhất trong giai đoạn sơ khai của lĩnh vực mạng nơ-ron là sigmoid Hàm sigmoid cótác dụng nén tầm giá trị của dữ liệu vào khoảng từ 0 đến 1 Hàm sigmoid được trìnhbày bởi Phương trình (2.1) và Hình 2.12.
để cập nhật lại các trọng SỐ, tuy nhiên do nhiều giá tri bị nén vào giá tri 0 hoặc 1, khiđạo hàm về nhiều lớp, các giá trị cập nhật dan bị biến mắt thành 0 Ngày nay, dé tránhxảy ra hiện tượng này, hàm kích hoạt được sử dụng thay sigmoid là Rectified LinearUnit (ReLU) Giá trị đầu vào của Hàm ReLU được giữ nguyên nếu nó lớn hơn 0, và
21
Trang 29ép về băng 0 nếu ngược lại Hàm ReLU được trình bày bởi phương trình 2.2 và Hình
sẽ không được cập nhật Do đó, dé tránh trường hợp này xảy ra, Leaky ReLU sẽ tạo
ra một vùng nhỏ giá trị cho giá trị âm để hoạt động của các nơ-ron được duy trì HàmLeaky ReLU được trình bày bởi phương trình (2.3) và Hình 2.14
ƒ(z) = max(0.1x, x) (2.3)
22
Trang 30Giả sử có một lớp pooling kích thước K x K Kích thước đầu vào là H x W x
D và tiến hành chia ma trận đã cho thành các ma trận D có kích thước H x W Trong
đó áp dụng tính giá trị theo kiểu pooling với mỗi vùng K x K với stride và paddingđược áp dụng giống với lớp tích chập Thông thường, khi sử dụng lớp pooling, hầu
hết mọi người đều sử dụng kích thước 2 x 2, stride = 2, padding = 0 Điều này sẽ
giảm một nửa Width x Height trong khi vẫn giữ nguyên Depth Ngoài ra, một số môhình sẽ dùng các lớp tích chập với stride lớn hon 1 cho mục đích giảm kích thướcFeature map thay vì sử dụng lớp pooling Hình 2.15 thể hiện cơ chế hoạt động của
một số loại pooling
23
Trang 31max pooling
average pooling
Hình 2.15 Cách hoạt động của một số loại pooling
Hiện nay, có nhiều loại pooling như: min pooling, average pooling, max pooling
và các loại ít phô biến khác
2.4.3 Batch normalization.
Batch normalizaition là phương pháp áp dụng trong khâu dao tạo mô hình Mụcđích nhằm chuẩn hóa dau ra của mỗi lớp theo độ lệch chuẩn về trạng thái trung bình
bằng 0 sau khi đi qua hàm kích hoạt Nó còn có thê giúp ngăn giá trị rơi vào trạng
thái bão hòa, ngoài ra còn có thê giúp loại bỏ Dropout ra khỏi mô hình mà không bị
overfitting.
Dé giảm sự biến đổi của các giá tri units trong lớp ân, Batch normalization đượcthêm vào sau lớp tích chập, do đó cải thiện tính ổn định Việc thêm Batchnormalization được cho là sẽ tang mAP lên khoảng 2%.
Trang 32Area of Overlap
loU =
Area of Union
Hinh 2.16 Cach tinh ham IOU.
Trong đó, Area of Overlap là phan mà predicted bounding box (bounding boxđược mô hình tính toán ra) với ground-truth bounding box (bounding box đúng cuađối tượng) giao nhau, Area of Union là phần diện tích kết hợp lại của predictedbounding box và ground-truth bounding box Tùy theo mô hình và nhu cầu của ngườidùng sẽ có đánh giá khác nhau, thông thường, một dự đoán được đánh giá là tốt nếu
có IoU > 0.5.
2.5 You Only Look Onee.
Con người có khả năng chỉ cần nhìn thoáng qua một bức anh là có thé ngay lậptức biết được tên, vị trí và có khả năng nhận diện đối tượng có trong ảnh Hệ thốnggiác quan của con người có khả năng xử ly nhanh và chính xác, nó g1úp con ngườithực hiện các tác vụ như lái xe, chơi thé thao, Từ đó, có thé thấy nếu như cácphương pháp xử lý ảnh có tốc độ xử lý nhanh và độ chính xác cao sẽ cho phép máy
tính điều khiển và hoàn thành được các tác vụ phức tạp như con người, như là lái xe
mà không cân các cảm biên chuyên dụng,
Trước thời điểm ra đời mạng YOLO, các phương pháp phát hiện lúc bấy giờ sẽ
sử dụng các bộ phân loại cho mỗi đối tượng và tính toán nó tại các vi trí cùng với độ
phóng đại khác nhau trong một bức hình Các kỹ thuật phổ biến vào thời điểm đó,như là Deformable Parts Models (DPM), đã sử dụng kỹ thuật sliding window dé đưa
25
Trang 33toàn bộ hình ảnh vào từng bộ phân loại và bộ này sẽ chạy ở các vi tri cách đều nhautrên toàn bộ hình ảnh hoặc chạy trong một số địa điểm nhất định Kỹ thuật cũng kháphô biến tiếp theo là mô hình R-CNN sử dung region proposal method dé tạo cácbounding box chứa đối tượng được phát hiện trong ảnh, sau đó sẽ dùng bộ phân loạitrên đó phân loại đối tượng Sau quá trình phân loại, quá trình sau xử lý được áp dụng
dé cấu hình lại các bounding box, loại bỏ các kết quả trùng nhau, cơ chế này khá phức
tạp và thường tốc độ chậm, khó tối ưu vì cần train các thành phần của tách biệt nhau
Được phát triển cho mục dich đáp ứng nhu cầu xử lý tốc độ cao và chính xáchơn, kỹ thuật You Only Look Once (YOLO) được ra đời Kỹ thuật này tính toán trựctiếp từ các pixel trong hình và cho ra kết quả là tọa độ bounding box bao quanh đối
tượng và độ tin cậy của đối tượng vừa được phân loại Kỹ thuật này chỉ cần một công
đoạn là có thé cho ra kết quả là tọa độ và tên của đối tượng thay vì 2 công đoạn phảikết hợp giữa một mạng phát hiện Deformable Parts Models (DPM) [25] và một thuật
toán phân loại (SVM, HOG, ).
YOLO là một kỹ thuật được cho ra đời với mục đích phát hiện, nhận diện vàtruy vết đối tượng, kiến trúc của mạng là sự kết hợp các lớp tích chập và các lớp fully-connected Trong đó, các lớp tích chập có nhiệm vụ rút trích đặc trưng, còn lớp fully-
connected sẽ cho kết quả tọa độ và đối tượng Công việc xử lý ảnh với mô hình YOLO
tương đối dé dàng và đơn giản Dé xử lý một bức anh đầu vào, sẽ bao gồm 3 công
đoạn được mô tả như Hình 2.17.
1 Resize anh cho phù hợp với đầu vào
2 Sử dụng mang CNN lên ảnh.
3 Lọc các kết qua không phù hợp hoặc trùng lặp của mô hình
Hình 2.17 Cac công đoạn của mô hình YOLO.
26
Trang 34YOLO có các ưu điểm so với các phương pháp cổ điển khác như sau:
1 Tốc độ xử lý nhanh hơn so với các phương pháp trước YOLO nhìn vấn đề phát
hiện đối tượng như là một bài toán hồi quy cho nên việc sử dụng cơ chế pipeline
là không cần thiết Chỉ cần chạy mang nơ-ron trên một hình tại test time déthực hiện công việc phát hiện Mạng cơ sở của YOLO có tốc độ nhanh hơn cácphương pháp phát hiện khác và có mAP cao hơn vượt trội so với các hệ thống
có thê xử lý thời gian thực khác
2 Mô hình YOLO sẽ tính toán trên toàn bộ bức ảnh trước khi đưa ra kết quả.
Cách tiếp cận này khác so với các kỹ thuật khác như sliding window hay regionproposal method.
3 YOLO có khả năng học các đối tượng có tính tổng quát
4 Khi YOLO được đào tạo về anh và thử nghiệm trên anh thủ công, kết quả của
YOLO cho tốt hơn nhiều lần so với DPM hay R-CNN
Nó cũng đồng thời dự đoán tất cả bounding box của các đối tượng có trong bứchình Có thé nói là mạng YOLO xử lý trên toàn bộ bức anh và có khả năng phát hiện
hết tất cả đối tượng có trong ảnh (Hình 2.18) Ngoài ra mạng YOLO được thiết kế
cho mục đích xử lý ở thời gian thực.
Đầu tiên, YOLO sẽ phân chia ảnh đầu vào thành 6 lưới kích thước S x S Nếu
điểm chính giữa của đối tượng nằm tai 6 nao, thì 6 đó có trách nhiệm phát hiện đối
tượng đó.
27
Trang 35điểm tin cậy sẽ là 0 Ngược lại, nếu xuất hiện đối tượng, điểm tin cậy sẽ là giá tri của
loU giữa khung dự đoán được va khung hình ground truth.
Mỗi bounding box sẽ có 5 tham số: x, y, w, h, và confidence Trong đó, (x, y) là
cặp giá tri toa độ trung tâm cua bounding box so với 6 đó, (w, h) là độ rộng và độ dàicủa bounding box được chuẩn hóa theo width và height của ảnh gốc Cuối cùng, giátrị confidence thé hiện giá trị của IoU
Mỗi ô cũng dự đoán C xác xuât có tât cả đôi tượng đã được huân luyện, các xác
suât nay được tính toán trên ô chưa đôi tượng Tai thời diém test, nhận xác suât của tât cả các class với mức độ confidence của từng box như sau:
Pr(Class;| Object) x Pr(Object) x I0U7sạ = Pr(Class;) x IOUS — (24)
28
Trang 36Công thức này cho biết confidence score của từng class cho mỗi box Kết quảcông thức trên sẽ bao gồm: Xác suất class_i xuất hiện trong box đó, độ khớp của box
dự đoán so với vật thê.
YOLO nhìn chung là mô hình có thé dé dàng xây dựng và dao tạo trực tiếp bằng
cách sử dụng toàn bộ hình ảnh, không giống như các kỹ thuật khác phụ thuộc vào bộphân loại, do tính học tổng quát nên YOLO được áp dụng trong khá nhiều lĩnh vực
khác nhau Chính vì vậy, YOLO là mô hình hàng đầu về phát hiện và phân loại đối
tượng.
2.6 Deep-Learning Processor Unit.
DPU nói chung hay DPUCZDX8G [26] nói riêng là phan cứng được thiết kế cho
Zynq® UltraScale+TM MPSoC Đây là computing engine có thé tùy biến cấu hình và
được tối ưu hóa cho mạng no-ron tích chập Cơ chế song song trong DPU là một
thông số mà có thê được tùy chỉnh luồng tùy theo thiết bị và ứng dụng Ở high-level,
DPU là một động cơ tính toán được mã hóa, có một tập lệnh hiệu quả và tối ưu, và
hỗ trợ hầu hết các biến thé của mạng nơ-ron tích chập
Hình 2.19 Kiến trúc tổng quan của DPU
29
Trang 37Phần cứng này sẽ bao gồm High Performance Scheduler, Hybrid ComputingArray, Instruction Fetch Unit và Global Memory pool Được triển khai trên
programmable Logic (PL) của các thiết bị Zynq® UltraScale+TM MPSoC và được kết
nối với processing system (PS) IP này thực hiện việc tính toán từ các mã lệnh do bộbiên dich tạo ra và đòi hỏi các vị trí lưu trữ có thê truy cập được dé lưu trữ các dữ liệuđầu vào và đầu ra Các chương trình chạy trên Application Processing Unit phải thựchiện các dịch vụ ngắt và điêu phôi việc truyên dt liệu Kiên trúc tông quan bao gômcác khối top-level của DPU được thể hiện trong Hình 2.19
Trong đó:
APU (Application Processing Unit): Có vai trò là đơn vi xử lý chính, quản lýhigh-level control và điều phối hệ thống Thực thi ứng dụng chính, bao gồmcác nhiệm vụ như tiền xử lý, hậu xử lý và quản lý tương tác với các interface
bên ngoài.
Instruction Fetch Unit: Lấy các lệnh từ off-chip memory dé điều khiển hoạtđộng của computing engine Truy xuất các lệnh cần được thực thi bởi DPU,đảm bảo chúng sẵn sàng cho khối High Performance Scheduler
High Performance Scheduler: Quản lý việc lập lịch và phân phối các lệnh đến
các Processing Elements Đảm bảo rang các phan tử xử lý được sử dụng hiệu
quả, cân bằng khối lượng công việc và giảm thời gian chờ đợi
Global Memory Pool: chứa đầu vào các activation, intermediate feature maps,
va dit liệu đầu ra dé đạt được high throughput và hiệu quả cao Đóng vai trò
như một bộ nhớ chung cho các processing element Giúp các PE truy cập
nhanh đến các dit liệu này, giảm nhu cầu truy cập vào bộ nhớ ngoài
Hybrid Computing Array: Chứa các Processing Element (PE) thực hiện các
tính toán Khối tính toán cốt lõi của DPU.
PE (processing elements): Các thành phần được thiết kế chuyên biệt đề thựchiện các phép toán sô học cân thiệt, chăng hạn như nhân ma trận và tích chap.
30
Trang 38Tan dụng các khối xây dựng như bộ nhân, bộ cộng va accumulators để thựchiện tính toán thực tế.
e_ High-Speed Data Pipe: Truyền dữ liệu nhanh giữa DPU và bộ nhớ ngoài hoặc
các thành phan khác Cung cap một đường high-bandwidth dé trao đổi dữ liệuvào và ra khỏi DPU, điều này rat quan trọng dé duy tri high throughput vagiảm thiểu độ trễ
e External DDR RAM: Cung cấp thêm bộ nhớ cần thiết dé chứa các dit liệu bao
gồm đữ liệu đầu vào, intermediate result và dữ liệu đầu ra Cung cấp thêmkhông gian lưu trữ bộ nhớ, lưu trữ một lượng lớn dt liệu Hoạt động như một backup cho bộ nhớ trên chip.
Kiến trúc phần cứng chi tiết hơn được thé hiện bởi Hình 2.20 Khi khởi động,DPU truy xuất các lệnh từ off-chip memory và điều khiển hoạt động của computingengine.
Trong đó:
e Processing System:
o CPU: Quản ly các tác vụ xử lý chung và điều phối các hoạt động trong hệ
thống
o Memory Controller: Quản lý truy cập vào bộ nhớ ngoài chip, nơi lưu trữ
dữ liệu đầu vào, intermediate results và kết quả cuối cùng
e Programmable Logic:
o Instruction Scheduler: Quản lý va sắp xếp các lệnh dé dam bảo thực thi
hiệu quả Đảm bảo rằng các lệnh được lấy, giải mã và phân phối một cách
trật tự và hiệu quả để giữ cho các processing element luôn bận rộn
“_ Fetcher: Lấy lệnh từ bộ nhớ
= Decoder: Giải mã lệnh thành các phép toán cần chuẩn bị
= Dispatcher: Phân phối các lệnh đến các processing elements
o_ On-Chip Buffer Controller: Quản lý các bộ nhớ on-chip để đảm bảo high
throughput và tính tái sử dung dit liệu Quản lý trao đổi dit liệu giữa
on-31