1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Hệ thống nhận diện biển báo giao thông ứng dụng công nghệ SoC

92 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Nồi bật hơn cả là hệ thống ADAS Advanced Driver Assistance System, hệ thống này được ứng dụng rộng rãi trong các phương tiện hiện đại sử dụng hệthong điều khiến điện tử ECU với các mức đ

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

PHAN CONG DUY KHIÊM - 19520627

KHOA LUAN TOT NGHIEP

HE THONG NHAN DIEN BIEN BAO GIAO THONG UNG

DUNG CONG NGHE SOC

TRAFFIC SIGN RECOGNITION SYSTEM APPLYING SOC

TECHNOLOGY

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS Nguyén Minh Son

TP HO CHi MINH, 2023

Trang 2

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 11/QĐ-ĐHCNTT

ngày 05 tháng 01 năm 2024 của Hiệu trưởng Trường Dai học Công nghệ Thông tin.

Trang 3

LỜI CÁM ƠN

Loi đầu tiên, em xin bày tỏ lòng cảm kích và lời cảm ơn chân thành đến thay — tiễn

sĩ Nguyễn Minh Sơn, người đã trực tiếp đồng hành và hướng dẫn em trong quá trìnhthực hiện khóa luận tốt nghiỆp Thầy đã luôn bên cạnh và đưa ra những lời khuyên

bổ ích, hướng dẫn em vượt qua các khó khăn trong quá trình nghiên cứu, chính nhờvào những gợi ý mang tính định hướng của thầy đã giúp đỡ em rất nhiều trong quátrình thực hiện khóa luận Bên cạnh đó, em xin cảm ơn các thầy cô giảng viên, kỹ

sư của khoa Kỹ Thuật Máy Tính trường Dai học Công Nghệ Thông Tin — Dai học

Quốc Gia Thành phố Hồ Chí Minh đã tạo mọi điều kiện thuận lợi cũng như cungcấp môi trường học thuật lý tưởng dé em có thê thực hiện dé tài nghiên cứu dùng

trong khóa luận tốt nghiệp này

Em cũng xin gửi lời cảm ơn đến gia đình, những người luôn bên cạnh và khuyếnkhích em vượt qua khó khăn và cung cấp sự hỗ trợ vô điều kiện để em đạt đượcmục tiêu của bản thân Em cũng xin gửi lời cảm ơn đến bạn bè, dù mỗi người cóđịnh hướng khác nhau, nhưng nhờ những budi họp nhóm thảo luận đã giúp em trởnên cởi mở và cung cấp cho em thêm nhiều cơ hội tiếp cận tới những ý tưởng khai

phóng.

Trong quá trình thực hiện đề tài tốt nghiệp, thông qua việc lặp lại quá trình phạmsai lầm và rút kinh nghiệm đã giúp bản thân em trưởng thành và học thêm nhiềukinh nghiệm quý báu Tuy nhiên, do hạn chế về trải nghiệm cũng như kiến thức nênkhông tránh khỏi sơ suất, em rất mong nhận được những lời góp ý chân thành từ

thầy cô Những ý kiến đóng góp quý báu đó sẽ là hành trang giúp em vững bướctrên con đường gay dựng sự nghiệp của bản thân

Một lần nữa, em xin chân thành cảm ơn!

Thành phố Hồ Chí Minh, ngày 7 tháng 11 năm 2023

Sinh viên thực hiện

Phan Công Duy Khiêm

Trang 4

Chương 1 GIỚI THIỆU DE TÀI 22++cecetreeEEtrrreEEttrrerErtrrerrrrrrerrrrre 3

Ni ch ẽỒ 31.2 Các nghiên cứu về hệ thống nhận diện biển báo giao thông 4

1.2.1 _ Tinh hình nghiên cứu trong nƯỚC -s -c-escccvererresrrrxerrrrssrrree 4

1.2.2 _ Tình hình nghiên cứu trên thế giới -s-+eccsrrccerrre 51.3 Mục tiêu đề taisccccccccsssssssssssssesssssssssssssssssssssssssssssssssusssssssssussssssssssusssssssssisssssesseseassee 5

1.3.1 Mục tiêu tông quát -«ecceeccerreeeerrerrrrrerrrrreerre 5

1.3.1.1 Mục tiêu cụ thỂ eeccecreecccrrreeerrrrreerrrrrrrrrrrrrrrrrrrrrrrrerrre 6

TƯ Ket qua ni sẽ ẽ ẽẽẽ 61.5 Giới hạn đề tài eecosseecEeriierreErrirrEtriirrrtrriirrttrirrrrrrrirrrrrrrrrerrrd 61.6 Bố cục luận m.ÑNƑ' ae œ@ \EE Ẻ co 7

Chương 2 CƠ SỞ LÝ THUYẾT :.22:+t22242212211122121122 21121 1111 it 9

2.1 Mạng thần kinh tích chập (CNN) -.eccccccrirreseverrrrrerrerrrrrrrreeerrrrre 9

2.1.1 _ Các kiểu tầng eeecreeeerreeerrieetrriertrirrrrrirrrrrrrerrre 9

2.1.1.1 Tầng tích chập (CONV) .ceccerrreererrrrerrrrrrrrrrrrirrrrrrrrrree 9

2.1.1.2 Pooling (POOL) -eccecieeecerrreeererrrrerrtrrrrrrrrrrrrrrrrree 10

2.1.1.3 Fully cOonnec(€d « -scecsekkkiEHHHHHàHà ngà gHà net 10

2.2 Phát hiện vật thé (Object Detection) c-cccerieerirriiiiiriiireree 11

2.2.1 Phương pháp phát hiện vat thể ccecciiecceeceerrrreeeevvrrrrree 11

2.2.2 Intersection Over nION - scscsscs+csrerseesttersersrtsrkerrssrsrrsrksrkrrsrree 12

2.2.3 V100 {1 12

2.2.4 Non-max SUDDT€SSIOH -cs<-seEtHhnHy nhu 13

Trang 5

2.4.2.3 Đánh giá khả năng hoạt động -c -ceescreesrereerrrreee 20

2.4.2.4 Ứng dụng YOLOV4 Tiny s-iieeccerrrceerrrrerrerrrrrrrrrrree 21

2.5 Field Programmable Gate Array FPGA -cccscrerererrrrrerrrrrrrrrr 22

2.5.1 Định Nghia essecsssecssecseecseecsseesssecseeesseecseeesaceeseeesseeesseesueesseeesseesaseeseeesseeessersaeess 22

2.5.1.1 Kiến trúc FPGA -ceeceeeeerirrirriirirrrrrirrrirrre 23Cac khOi tich Hop SAM 017 ).) 232.5.1.2 Ưu/ nhược điểm khi thiết kế trên FPGA c+ 24

Trang 6

2.7.2.1 Các công nghệ đầu tiên -cccstecceetrrerverrrrerrrrrree 262.8 Đánh giá và nên ý tưởng đề xuất -+ccsstrecetrrertrrerrrrrrrrrrrrre 28

Chương 3 THIẾT KẾ HỆ THỐNG -2+ccettrcettrrertrrrrrrrrrrrrrrrrrre 30

3.1 ZYNQ UltraScale+ MPSOC ssssssssssssscssessssscsssssssssssssssssscscsscsesssssssssssssssessassassesesss 30 3.2 Board Avnet UltraScale 96V2 sssssssesssssesssssssesssssssesssssesessssssecseeassesseeasseesesesessees 31

3.3 PYNQ framework ca 33

3.3.1 Tổng quan -c.ecccccrireeeeeverrrrreereerrrrtrrrvrrrrrrrrrrrerrrrre 333.3.2 So sánh ưu/ nhược điỂm -::iieeeeeevvvEEEEEEritieerseeverrrrrrrrree 343.4 Kiến trúc hệ thống ccccecrrreceetrirertEtrirrrtririrrttrrrarrrrrirsrtrrrrsrre 353.5 Hiện thực mô hình nhận diện biển báo giao thông trên YOLOv4 Tiny 36

3.5.1 Tiền xử MZ,jấto Ễ eo 36

3.5.1.1 Tập dữ liệu thô -cc cecccerrrceererrrrrrrrrrirrrrrrrrrrrrrrree 36

3.5.1.2 Gắn nhãn ảnh ee ecceerrreeerrirreeertrrrrerrrrrrrrrrrree 373.5.1.3 Các lớp xuất hiện trong mô hình + cetrrcccerrrre 403.5.1.4 Danh sách các lớp xuất hiện trong mô hình - 413.5.2 Phương pháp phân loại mẫu ccce i+eeecevcerrrreecvvvrrrree 44

3.5.2.1 Phân loại theo khoảng cách thu thập mẫu - 443.5.2.2 Phân loại mẫu theo điều kiện môi tTƯỜNG àeesiieieiiieree 45

3.6 Hiện thực mô hình YOLOv4 Tiny trên FPGA -srccccs+ 47

3.6.1 Ý tưởng thiết kế khối IP YOLOV4 Tiny -s -ssse 47

3.6.1.1 Thiết kế lớp tích chập -c-e++ccceerreecerrrrerrrrrrrererrrree 473.6.1.2 Thiết kế khối tổng hợp Pooling -c-e-ireececcerrrrreceeerr 493.6.1.3 Hiện thực hệ thong YOLOv4 Tiny trên FPGA 503.6.2 Khối TP YOLOV4 Tiny -eeccccrrireeeeeerrrrtrereeerrrrrrrrerrrrrree 50

Trang 7

3.6.3 Sơ đồ khối hệ thống -ccccccrrreeccverrrrirerrrrrrrrrrrrrrrrrrre 513.7 Thiết lập PYNQ framework css+eee2trervtrrerrtrrrrtrrrrrtrrrrrrrrrrte 51

3.7.1 PYNQ trên Ultra96v2 -ccccccccctrteeeevvvvvvrrrrrrtrtrrrrerrrrrrrrrrrrree 51

3.7.2 Thiết kế nhận hình ảnh từ Camera vào hệ thống sử dụng PYNQ

FAME WOTK 0277 52

Chương 4 THU’ NGHIỆM VÀ ĐÁNH GIÁ -++ecc2trrrevetrrrcrrvrrrrerrr 55

4.1 Đánh giá tập mô hình huấn luyện -+-cccccerrrreeecvvrrrrrreerrrrrrrrree 55

4.1.1 Kết quả huấn luyện -eeccerrreecerrrrereerrrrererrrrrrerrre 554.1.2 Kết quả huấn luyện trên từng đối tượng cụ thể: 564.1.3 Biểu đồ thông số quá trình huấn luyện -ccccccrrez 57

4.1.4 _ Trực quan hóa mô hình -« xexsrkketkrrrkkritkrirriirirrree 59

A.1.5 Test thực tế mô hình: .c.ecccccccccrrtreieeevvvvvvterrrirtrrrsesarrrrrre 60

4.1.5.1 Host COmpUIT ccs*tHHHHHHHnHy Hài gờt 60

4.1.5.2 Kết quả trên hình mẫu s++ecstreeeerreeerreceerrrert 604.1.5.3 Kết quả chạy video mô phỏng -+-css.eccssreceerrcee+ 624.1.6 Kết quả hiện thực phan cứng trên VIVADO 2019.2 63

4.1.6.1 Nang lượng tiêu thụ ccciekkikkiiiikiiiiiiiirrree 63

4.1.6.2 Tài nguyên hệ thống -.+cc2rccetrreverrrervrrrrrrrrrrerrrere 644.1.7 Đóng gói hệ thống -iceecccecrrrreeeevrrrrirerrrerrrrrrrrrrrrrrre 654.1.8 Kết quả mô phỏng hệ thống trên FPGA -ccccccrrree 65

4.2 Độ chính xác +1 HH 1111111110111 Erkrrkrrke 70

4.3 So sánh hiệu suất hoạt động với dé tài tham khảo - . s+ 72

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN -. -. serccsere 74

lì cốc sẽ ẽẽ 74

Trang 8

53.2 Những hioufeifiii.-G LH ,ÔỎ5.3 Những điểm hạn chê -. 2-+ccs2xev2ttvvEE.ErEEE.EvEtrrrrtrrrrrrrrrrrrrrrrte5.4 Hướng phát trién

TÀI LIỆU THAM KHẢO

Trang 9

DANH MỤC HÌNH

Hình 2.1: Minh họa các tang của mang Neuron tích chập -s - 9

Hình 2.2: Minh họa lớp tích chập -c-sscsrxerrrretrrertrtrrrrrrrrrrrrrrrrrrrirrrrree 9

Hình 2.3: Minh họa kết nối của tầng Fully Connected -ss.ccs+ 11

Hình 2.4: Mô tả vi trí tương đối của hộp dự đoán so với thực VỀ ccccccccceriiisrrrrrrree 12Hình 2.5: Xác định anchor box cho một vật thỂ cccccccccrrrtttttttttstrrrresees 13

Hình 2.6: Minh họa quá trình Nonmax Suppr€SS1ON . cccseeccceeerrrreeeee 13

Hình 2.7: Minh họa tiễn trình xử lý của thuật toán R-CNN 14

Hình 2.8: Minh họa các bước xử lý của thuật toán YOLUO - ec. 15

Hình 2.9: Cấu trúc YOLOV4 Tiny -s2.+ecsttrevEtrrrrtrrrrrrrtrrrrrirrrrrrrrerrre 15Hình 2.10: Minh họa khối CSP tt.tiEiErirrre 16

Hình 2.11: Minh họa sử dụng dropbÏOCK c«-ccccccveccveeerveerveerreeerreerrserrerrrerrrr 17

Hình 2.12: So sánh ham Mish và hàm Swish trên tập dữ liệu CIFAR-10 18

Hình 2.13: Cau trúc Resblock body -+ces+eceerreeerrreeerreretrrrrerrre 19Hình 2.14: Cau trúc model YOLOV4 Tỉny -+ccsseeeetreeeerreeeerrreerrre 19Hình 2.15: Biểu đồ FPS khi nhận diện bang COCO dataset trên NVIDIA 1080Ti 20Hình 2.16: Một số ứng dụng của YOLOV4 Tỉny -cs-+cecceerrecceerrrerere 21

Hình 2.17: Configurable Logic Blocks (CLUBS$) -e 5c«<c<cccscscxereree 23

Hình 2.18: Mô hình đã huấn luyện được trực quan hóa bang Tensorflow 25Hình 2.19: Minh họa hệ thống nhận diện biển báo giao thông ứng dụng Học sâu 27Hình 2.20: Minh họa thuật toán mẫu nhận diện biển báo glao thông 28Hình 2.21: Mô hình trực quan của hệ thống nhận diện biển báo giao thông 29Hình 3.1: Kiến trúc ZYNQ MPSoC :-::ccccS2E2E22111212.1 111121 111.1 e 30Hình 3.2: Các thành phan chính trên board Ultra96v2 -. s .css:ccs+ 31Hình 3.3: Sơ đồ khối của board Avnet Ultra96v2 -s++ccceerrrcccerrrrecrt 32Hình 3.4: Kiến trúc PYNQ Eramework -::cecccettttevSEEEEEEEieeEEEEErrrreeeerrrrie 33

Hình 3.5: Giao diện lập trình trên PYNQ Framework c-c«ccccceerreexree 34

Hình 3.6: Sơ đồ các khối chức năng trong hệ thống -+-ccccccrrrrccee 35

Trang 10

Hình 3.7: Kiến trúc hệ thống -ct++eeeEEEEtrrrerEEEEErrrrrrrrrrrrrrrrrrrrrrrrrre 36

Hình 3.8: Tổng quan phương pháp thu mẫu huấn luyện mô hình 37

Hình 3.9: Giao diện làm việc của RObOfÏOW -cs-csccsccsererterksrtsrtsrrsrrsersrrsrrsrrke 38 Hình 3.10: Giao diện ứng dung labeÏlmg css+-5csececcrreesrrrrrerrrrrrrrrrrrrree 38 Hình 3.11: Giao diện kết quả trả về sau khi train mô hình - 39

Hình 3.12: Xuất tập dữ liệu đã gắn nhãn . cccccttrrceecvvrrrrrrrerrrrrrrrrre 39 Hình 3.13: Tập huấn luyện thực tẾ 2-+ceccetrreevrtrrrrerrrrrrrerrrrrerrrrrrerre 40 Hình 3.14: Vật mẫu ở khoảng cách 30m ++++cccvvvvvvvtttrtrrrrrrvvvvvvrrre 45 Hình 3.15: Vật mẫu ở khoảng cách 120m + -ccccvvvvvtttttrrerrevvvvvvrrre 45 Hình 3.16: Mẫu lấy vào thời điểm 8:00 p.m với tham số Lux ~ 335 46

Hình 3.17: Mẫu lấy vào thời điểm 7:30a.m với tham số Lux ~1500 46

Hình 3.18: Mẫu lấy vào thời điểm 7:00p.m với điều kiện ánh sáng tệ và bị out nét HHheerasserasinssrassosooaao (SE, //////7 cốẾẾP? Ầ LH HẰN L.HHHHHHHaehagghưa 47 Hình 3.19: Thiết kế khối tính toán tích chập 3x3 -ccccccrrrrcceccerrrrccee 48 Hình 3.20: Quá trình tính toán ở lớp tích chập -. c-ce ccxeereerxerrrrrreeee 48 Hình 3.21: Cau trúc khối tính toán Pooling -s2+ccs+ece+trccetrrcrztree 49 Hình 3.22: Kiến trúc tong thé hệ thong trên FPGA . cccc:icececcerrrrccee 50 Hình 3.23: Mô tả khối IP YOLOv4 Tiny sau khi đã đóng gói trên công cụ Vivado — 50

Hình 3.24: Sơ đồ khối hệ thống thiết kế trên Vivado s-. ss.ee 51 Hình 3.25: Giao diện chính của PYNQ sau khi nap file BOOT vào SDCard 52

Hình 3.26: Khai báo các biến width và height của hình ảnh 52

Hình 3.27: Load file Bitstream chứa config hệ thống được generate bằng Vivado — ÔỎ 53 Hình 3.28: Câu lệnh load model file bang định dang ONNX 53

Hình 3.29: Ham convert netmap output sang dang Bounding Box 53

Hình 4.1: Kết quả huấn luyện tap dữ liệu bằng YOLOV4 TINY 55

Hình 4.2: Sơ đồ hiệu suất huấn luyện mô hình trên YOLOV4 Tiny 58

Hình 4.3: Mô hình trực quan ‹e s«<+©xxsEEEetEEHHHH HH HH này 59

Trang 11

Hình 4.4: Kết quả nhận diện với lớp “Cam đỗ xe ngày chẵn” - 60

Hình 4.5: Tốc độ nhận diện mô hình eeeeriereerrerrerrrrirrree 61 Hình 4.6: Kết quả nhận diện với lớp “Cấm xe tải” :ieececcerrrrececvrrrrrrree 61 Hình 4.7: Tốc độ nhận diện mô hình -+-c2+++ec+ttrreeEEttrrevvrtrrrrerrrree 61 Hình 4.8: Kết quả nhận diện của mô hình trên video . -c «-cscresrxex 62 Hình 4.9: Kết quả nhận diện mô hình trên v1d€O - -55cccscssreertsrrssrrrrrre 62 Hình 4.10: Kết quả nhận diện mô hình trên Video o ce+55sescrxssxsrxerressree 63 Hình 4.11: Mức điện năng hệ thong tiêu thụ trên Ultra96v2 -. -e-se-s«- 63 Hình 4.12: Thống kê tài nguyên hệ thống sử dụng trên Ultra96v2 64

Hình 4.13: Tần số hoạt động của thiết kế -. :+ceccerrreeerrrreeevrrrrrrrrrrree 64 Hình 4.14: Kết quả tài nguyên hệ thống sử dụng sau khi tông hợp 64

Hình 4.15: Hệ thống sau khi đóng gói -c222+iccecccverrrreereverrrrrrerrrrrrrrree 65 Hình 4.16: Thiết lập hệ thống -22+tcc222EEEtrrrevevvEtrrrrrrrvrrrrrrrrrrrrrrrrree 66 Hình 4.17: Kết quả nhận diện trên hình ảnh thu được từ webcam - 66

Hình 4.18: Kết quả nhận diện trên hình anh thu được từ webcam - 67

Hình 4.19: Kết quả nhận diện trên hình ảnh thu được từ webcam - 67

Hình 4.20: Kết quả nhận diện trên hình anh thu được từ webcam - 68

Hình 4.21: Kết quả nhận diện trên hình ảnh thu được từ webcam - 68

Hình 4.22: Kết quả nhận diện trên hình ảnh thu được từ webcam - 69

Trang 12

Danh sách các lớp trong mô hình -« cxe++xe++rxerrxerxrsrrkerrrrree 44

Kết quả huấn luyện trên từng lớp ccccccrrrceeccverrrreeeevrrrrrrree 57Thông số hệ thống thử nghiệm 2-+-22++ce2trevttrrztrrrrrrrr 60

So sánh hiệu suất hệ thống trên Host computer và FPGA 69

So sánh độ chính xác của hệ thống trên máy tính chủ và FPGA 72

Chi tiết thông số hệ thống so sánh với dé tài tham khảo 72

Trang 13

DANH MỤC TỪ VIET TAT

DNN: Deep Neural Network

GPU: Graphics Processing Unit

ECU: Electronic Control Unit

FPGA: Field Programable Array

FPS: Frame per Second

mAP: Mean Average Precision

MAC: Multiply Accumulate

DSP: Digital Signal Processing

SIMD: Single Instruction Multiple Data

DDR: Double Data Rate SDRAM

AXI: Advanced eXtensible Interface BN: Batch Normalisation

RTL: Register Transfer Level

BRAM: Block Random Access Memory LUT: Look Up Table

PS: Proccessing System

PL: Programable Logic

YOLO: You Only Look Once

TSD: Traffic Sign Detection

TSR: Traffic Sign Recognition

CNN: Convolutional Neural Network

CSP: Cross Stage Partial DenseNet

Trang 14

R&D: Research and Development

LUX: Don vi do cường độ ánh sáng

AP: Độ chính xác trung bình (Average Precision)

Trang 15

TOM TAT KHÓA LUẬN

Ngày nay, xu hướng tự động hóa đang là chủ đề thảo luận chính trong lĩnhvực vận tải nói chung và ngành công nghiệp chế tạo phương tiện nói riêng Các hệ

thống an toàn hỗ trợ người lái ngày càng được quan tâm và chú trọng nghiên cứuphát triển Nồi bật hơn cả là hệ thống ADAS (Advanced Driver Assistance System),

hệ thống này được ứng dụng rộng rãi trong các phương tiện hiện đại sử dụng hệthong điều khiến điện tử (ECU) với các mức độ kiểm soát khác nhau từ việc đưa ra

các cảnh báo (va chạm, nhận diện chuyển làn, ) cho đến can thiệp vào hanh vi lái

xe của người dùng trên các phương tiện hiện đại như xe tự hành (hệ thống kiểm soát

hành trình thích ứng ) Một khía cạnh quan trọng trong hệ thống ADAS là bài toánphát hiện và nhận diện biển báo giao thông Hệ thống phát hiện biển báo giao thông(TSD) và hệ thống nhận diện biển báo giao thông (TSR) được xem như hai hệ thốngcon quan trọng trong các phương tiện thông minh Hai hệ thống trên cung cấpnhững thông tin hữu ích hỗ trợ người lái trong quá trình điều khiển phương tiện bao

gồm điều hướng phương tiện và đưa ra các cảnh báo nâng cao Biển báo giao thông

được xem như các vật thể trên đường khó nhận diện nhất, không chỉ vì sự đa dạng

về số lượng, cách thê hiện và kê cả kích thước, mà còn vì vị trí đặt biển và tìnhtrạng của biển báo (cũ/ mới) Ngoài ra, hệ thống nhận diện biển báo còn phải đảmbảo yếu tố nhanh, nhạy và chính xác

Hiện tại, khi nhắc đến hệ thống thị giác máy tính ứng dụng trong bài toánphát hiện và nhận diện vật thể, thuật toán YOLO (You Only Look Once ) là một đạidiện vô cùng tiêu biểu Thuật toán YOLO được sử dụng phổ biến và rộng rãi trongcộng đồng nghiên cứu khoa học và cũng được ứng dụng trong hàng loạt các bài báo

uy tín cũng như các khóa luận, luận án nghiên cứu về lĩnh vực thị giác máy tính vàmáy học Với các ưu điểm như gọn, nhẹ, dé phát triển ứng dụng, phù hợp với những

nghiên cứu sinh không chuyên sâu về lĩnh vực khoa học máy tính, trên hết, thuậttoán YOLO được phân phối dưới dạng mã nguồn mở và có cộng đồng phát triểncũng như hàng loạt diễn đàn, cộng đồng người dùng rộng lớn, hỗ trợ lâu dài, khảnăng tương thích với hàng loạt hệ thống từ cơ bản đến phức tap, YOLO được các

Trang 16

nhà phát triển hệ thống đánh giá cao vì tính tiện lợi cũng như khả năng linh hoạt của

nó Đây cũng là cơ sở dé cá nhân thực hiện nghiên cứu quyết định ứng dụng trongkhóa luận lần này

Đề tài hệ thống nhận diện biển báo giao thông được chú trọng vào giải quyếthai vấn đề chính, gồm có: thu thập tập dữ liệu mô hình biển báo giao thông đường

bộ Việt Nam, tiến hành phân loại, gán nhãn và huấn luyện dựa trên mô hình thuật

toán YOLOv4 Tiny và thiết kế hệ thống phần cứng hiện thực hệ thống nhận diệnbiển báo dựa trên tập mô hình đã được huấn luyện Hệ thống gồm khả năng phát

hiện và nhận diện biển báo giao thông có thể được ứng dụng dé phat triển các hệthống cảnh báo trên phương tiện giao thông đường bộ

Trang 17

Chương 1 GIỚI THIỆU ĐÈ TÀI

1.1 Tổng quan đề tài

Ngày nay, di cùng với việc bùng né dân số là sự gia tăng nhanh chóng của cácphương tiện giao thông nhằm phục vụ nhu cầu đi lại của con người, kéo theo đó làhàng loạt van dé phát sinh trong quá trình tham gia giao thông của các phương tiệntrên đường phó, nổi bật hơn cả là tai nạn giao thông Hiện nay tai nạn giao thôngđang diễn ra hằng ngày, gây thiệt hại rất lớn về tính mạng và tài sản Theo CụcCảnh sát Giao thông thống kê trong 10 tháng năm 2023, cả nước xảy ra 9.829 vụ tainạn giao thông đường bộ, làm chết 5.496 người, làm bị thương 6.973 người Con số

này có xu hướng giảm so với năm 2019 Tuy nhiên, hiện tại số vụ tai nạn giao thông

đang có chiều hướng tăng trở lại [1]

Tai nạn giao thông 10 tháng qua các năm

m==sốvu =——5i thương Người chết

Bang 1.1: Biéu đồ thống kê tai nạn giao thông 10 tháng qua các năm

Có rất nhiều nguyên nhân dẫn đến thực trạng trên, ví dụ như người điềukhiến phương tiện giao thông có ý thức kém, sử dụng rượu bia khi lái xe, ít hiểu biết

về pháp luật, đi ngược chiều, chạy quá tốc độ, phóng nhanh vượt âu, đi không đúng

phần đường quy định, Trong đó, việc không tuân thủ hiệu lệnh biển báo giao

Trang 18

thông cũng là nguyên nhân chủ yếu dẫn đến tai nạn giao thông Biển báo giao thông

gồm rat nhiều loại biển với các chức năng được quy định cụ thé Tuy nhiên, dựa vào

cách thé hiện ta có thé phân thành 3 loại chính: biển cam, biển cảnh báo và biên chỉ

dẫn Việc phân loại theo chức năng này rất hữu ích cho bước thu thập mẫu sẽ đượcnhắc đến trong chương sau

1.2 Các nghiên cứu về hệ thống nhận diện biển báo giao thông

Ý tưởng về xây dựng hệ thống phát hiện và nhận diện biển báo giao thông

thực tế đã xuất hiện từ lâu trong ngành công nghiệp chế tạo phương tiện giao thông

thông minh, đã có rất nhiều phương án được đưa ra nhằm giải quyết bài toán nangiải trên Da số các nghiên cứu hiện hữu đều dựa trên ý tưởng phân loại và nhậndiện biển báo thông qua màu sắc và hình dạng của biển báo Phương pháp này dựatrên công nghệ phân đoạn và tách nền màu ảnh (Color Segmentation), công nghệnày thực hiện nhận dữ liệu ảnh đầu vào, thực hiện loại bỏ mau ảnh (RGB) thành ảnhthang độ xám, sau đó so sánh các vùng sáng tối dựa trên thông tin về các pixel lâncận, từ đó xây dựng thuật toán nội suy ra nội dung biển báo dựa trên tập dữ liệu cósẵn Ưu điểm của phương pháp này ở việc không cần quá quan tâm đến việc thuthập mẫu trong đa dạng điều kiện môi trường để huấn luyện Bên cạnh đó, nhà phát

triển cũng không cần quan tâm đến bước phân loại mẫu mô hình dé huấn luyện trên

máy tính Tuy nhiên, nhược điểm của phương pháp này nằm ở độ kém linh hoạt khi

điều kiện môi trường thay đổi (mưa, gió, bão), vùng sáng tối trên vật mẫu từ môi

trường cũng anh hưởng rất nhiều đến tỉ lệ nhận diện của biển báo Ngoài ra, việcnhận diện chính xác vật thé cũng phụ thuộc rất nhiều vào chất lượng cảm biến hìnhảnh Bất kỳ điểm pixel nào trên vật mẫu bị nhiễu cũng gây ảnh hưởng đến tốc độ vàtính chính xác của hệ thống

1.2.1 Tinh hình nghiên cứu trong nước

Ở Việt Nam, các nghiên cứu về nhận diện biên báo giao thông đường bộ có tập dữ liệu đâu vào bao gôm các loại biên báo trong nước còn khá hạn chê Trong đó có đê

tài của nhóm tác giả Bùi Quốc Tú, Nguyễn Huy Hoàng, Trương Quang Phúc, Lê

Trang 19

Quang Bình, Hồ Nhựt Minh về nhận diện biển báo và tín hiệu đèn giao thông ứngdụng thuật toán YOLOv4 trên kit Jetson TX2 sử dụng tập dữ liệu biển báo giao

thông Los Angeles sẵn có [2].

1.2.2 Tinh hình nghiên cứu trên thé giới

Vì mục tiêu đề tài nghiên cứu nhận diện dựa trên tập dữ liệu biển báo giao thông

của Việt Nam nên không có nghiên cứu nào trên thế giới sử dụng tập đữ liệu này

Tuy nhiên, bài báo “Deep Convolutional Neural Network for Enhancing Traffic

Sign Recognition developed on Yolo V4” của nhóm giáo su Christine Dewi,

Rung-Ching Chen, Xiaoyi Jiang va Hui Yu có thực hiện nghiên cứu về nhận diện biển báogiao thông bang thuật toán YOLOv4 sử dung tập dữ liệu đầu vào gồm các biển báo

thông dụng ở Đài Loan [3] Ngoài ra còn có bài báo “FPGA-Based Traffic Sign

Recognition for Advanced Driver Assistance Systems” của nhóm tác gia Sheldon

Waite, Erdal Oruklu sử dụng công nghệ phân đoạn mau ảnh, tập dữ liệu dau vàogồm các biển báo ở Mỹ [4]

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

1.3.1 Mục tiêu tong quát

Mục tiêu của đề tài là tập trung nghiên cứu về một khía cạnh chức năng trong

hệ thống ADAS, tức là triển khai hệ thống phát hiện và nhận diện biển báo giaothông trên hệ thống Xilinx ZYNQ Ultra96v2 ứng dụng mô hình YOLOv4 Tiny vàtập dữ liệu đầu vào dựa trên các biển báo giao thông thông dụng ở Việt Nam Hệ

thống gồm một camera thu hình ảnh đầu vào va board Ultra96v2 tích hợp IPYOLOv4 Tiny thực hiện xử lý và nhận diện biển báo giao thông Kết quả đượctruyền lên màn hình theo dõi Thiết kế hệ thống được tinh gọn, hướng tới mục tiêu

dễ dàng lắp đặt trên các hệ thống phương tiện thông minh nhằm hỗ trợ nhận diện và

đưa ra cảnh báo cho người lái.

Trang 20

- Huấn luyện mô hình nhận diện sử dụng tập dữ diệu biển báo giao thông ở

bước trên bằng YOLOV4 Tiny

- Thử nghiệm mô hình đã huấn luyện nhận diện biển báo trên máy tính

- Nghiên cứu và xây dựng hệ thống nhận diện biển báo trên FPGA

- _ Hệ thống các tiêu chí đánh giá hiệu suất của hệ thống nhận diện biển báo

1.4 Kết quả dự kiến

- Hé thống có khả năng phát hiện và nhận diện một số loại biển báo thông

dụng trên đường phố Việt Nam

- Thiét bi phan cứng được thiết kế nhỏ gọn, có khả năng hoạt động ôn định.

- Mô hình YOLOV4 Tiny có mAP >= 70%.

1.5 Giới han đề tài

Do hạn chế về nguồn nhân lực và tài nguyên thiết bị cũng như quỹ thời gian eo hẹpnên nhóm quyết định tập trung vào hoàn thiện tập mô hình nhận dạng biển báo giaothông Việt Nam sử dụng thuật toán YOLOv4 Tiny, song song với thiết kế phần

cứng hỗ trợ trên board Xilinx UltraScale96v2, dữ liệu nhận diện được hiển thị thôngqua cổng DisplayPort tích hợp trên kit Nhóm sẽ có gang hoàn thiện hệ thống ở mức

tối thiêu nhất có thé (mô hình có thé chạy và nhận diện được biên báo) Tuy nhiên,

có thê kết quả không được như mong muốn do những hạn chế nêu trên Ngoài ra, doứng dụng thuật toán YOLOv4 Tiny trên một phan cứng cơ bản như board Ultra96v2

Trang 21

nên tốc độ hoạt động có thể thấp hơn nếu so sánh với các hệ thống sử dung kit

Jetson có hỗ trợ CUDA của NVIDIA và các giải thuật tối ưu cho kit đó

1.6 Bo cục luận văn

Báo cáo này được chia thành năm chương, mỗi chương gồm những nội dung

được liệt kê van tắt sau đây:

Chương 1: Giới thiệu đề tài

Chương đâu tiên sẽ nêu tính cap thiệt va lý do chon dé tài của nhóm, các mục

tiêu đề ra, giới hạn và kết quả mong muốn đạt được

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

Giới thiệu về các nội dung nghiên cứu được công bố trên IEEE và các côngnghệ có liên quan mà nhóm sử dụng trong khuôn khổ khóa luận lần này Chươngnày cũng đề cập tới lý thuyết cơ bản về thị giác máy tính, học sâu và các khái niệmliên quan tới mô hình thuật toán YOLO Tắt cả kiến thức trên được tổng hợp và ứng

dụng trong khóa luận.

Chương 3: Phân tích và thiết kế hệ thống

Chương này sẽ tập trung vào trình bày cách nhóm vận dụng những kiến thức

đã sưu tầm được vào thiết kế hệ thong nhận diện biển báo giao thông sử dụng thuậttoán YOLOv4 Tiny, xây dựng phần cứng trên FPGA, nạp và demo hệ thống Nhóm

cũng trình bày các kết quả đạt được đến thời điểm báo cáo khóa luận cũng như mô

hình đóng gói sản phẩm

Chương 4: Thứ nghiệm và đánh gia

Chương này thê hiện trình tự thử nghiệm và đánh giá hệ thống trên mô hìnhnhận diện biển báo thực hiện trên máy tính và FPGA, thống kê lượng tài nguyên mà

hệ thống tiêu tốn trên FPGA

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

Trang 22

Chương cuối cùng sẽ tổng kết toàn bộ kết quả mà nhóm đã thực hiện được

cũng như trình bày các khó khăn gặp phải trong quá trình thực hiện khóa luận.

Đồng thời nêu ra phương hướng hoàn thiện hệ thống trong tương lai

Trang 23

Chương 2 CƠ SỞ LÝ THUYET

2.1 Mạng thần kinh tích chập (CNN)

Mạng neural tích chập hay còn được biết đến với tên CNN, là một mạng phân tầngđược cấu thành từ các thành phần sau:

Tấm ảnh đầu vào Tích chập Pooling Kết nối đầy đủ

Hình 2.1: Minh họa các tầng của mạng Neuron tích chập2.1.1 Các kiểu tang

2.1.1.1 Tang tích chập (CONV)

Tang tích chập (CONV) sử dụng các bộ lọc để thực hiện phép tích chập khi đưa

chúng đi qua đầu vào II theo các chiều của nó Các siêu tham số của các bộ lọc nàybao gồm kích thước bộ lọc (Filter) F và độ trượt (Stride) S Kết quả đầu ra O được

gọi là feature map hay activation map.

“a Bộ lọc F

Feature map

Ma trận điểm ảnh

Hình 2.2: Minh họa lớp tích chập

Trang 24

2.1.1.2 Pooling (POOL)

Tang pooling (POOL) là một phép downsampling, thường được sử dung sau tầngtích chập, giúp giảm kích thước hình ảnh Cụ thể, max pooling và average pooling

là những dạng pooling đặc biệt, mà tương ứng là trong đó giá trị lớn nhất và giá trị

trung bình được lấy ra

Chức nang

Từng phép pooling chon

giá trị lớn nhất trong khu

vực mà nó đang được áp dụng

Trong mô hình mạng CNNs, tang kết nối day du (Fully connected) nhận dau vào là

các dữ liệu đã được làm phăng, mà môi đâu vào đó được kết nôi đên tât cả neuron.

Tang kết nối đầy đủ thường được tìm thấy ở cuối mang và được dùng dé tối ưu hóa

mục tiêu của mạng ví dụ như độ chính xác của lớp.

10

Trang 25

Hình 2.3: Minh họa kết nối của tầng Fully Connected

2.2 Phát hiện vật thé (Object Detection)

2.2.1 Phương pháp phát hiện vật thé

Trong bối cảnh phát hiện (detection) vật thể, những phương pháp khác nhau được

áp dụng tùy thuộc vào mục đích sử dụng Hai phương pháp chính được tổng hợp ở

(ha, hy) (aes lay) (lz LÍ (Ire; ru)

(lee + the ly) (lee, lay)

e Phát hiện và khoanh vùng đối

Trang 26

rộng hộp lần lượt là bn va bw.

Bảng 2.2: Bảng so sánh các phương pháp phát hiện vật thê

2.2.2 Intersection over Union

Ti lé ving giao trén ving hop, con duoc biết đến là Intersection over Union (IloU),

là một hàm định lượng vi trí Bp của hộp giới hạn dự đoán được định vi đúng như thếnào so với hộp giới hạn thực tế Ba Nó được định nghĩa:

Hình 2.4: Mô ta vi tri tương đối của hộp dự đoán so với thực tế

Hình 2.5 bên dưới minh họa quá trình chọn Anchor box Gia sử từ Cell 1 xác định

được 3 anchor boxes viền xanh như trong hình Cả 3 anchor boxes này đều giaonhau với bounding box của vật thể Tuy nhiên chỉ anchor box có đườ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 nó có IoU so vớibounding box là cao nhất

12

Trang 27

B bounding box candidates in total

The “responsible” predictor

in cell i has the highest loU with the ground truth.

Truth bounding box

Hình 2.5: Xác định anchor box cho một vật thể

2.2.4 Non-max suppression

Kỹ thuật non-max suppression hướng tới việc loại bỏ những hộp giới hạn bi chồnglặp lên nhau của cùng một đối tượng băng cách chọn chiếc hộp có tính đặc trưngnhất Hình 2.6 minh họa kỹ thuật non-max suppression tiến hành loại bỏ tất cả cáchộp có xác suất dự đoán lớn hơn một ngưỡng (trong nhiều tài liệu đề cập thường là0.5), lặp lại quá trình cho đến khi thu được một bounding box cuối cùng

Với một lớp cho trước

* Bước 1: Chọn chiếc hộp có xác suất chứa vật thé là lớn nhất

* Bước 2: Loại bỏ những hộp có IoU > 0.5 so với hộp đã chon.

Lk Chon hộp với xác Loại bỏ trùng lặp eon sa, es

Các dự đoán hộp => suất cao nhất => trong cùng một lớp >> Cac hộp giới hạn cuối cùng

Hình 2.6: Minh họa quá trình Nonmax Suppression

13

Trang 28

2.3 Các thuật toán nhận diện vật thể tiêu biểu

2.3.1 R-CNN

Region with Convolutional Neural Networks (R-CNN) là một thuật toán phát hiện

vật thê mà đầu tiên phân chia ảnh thành các vùng đề tìm các hộp giới hạn có khả

năng liên quan cao rồi chạy một thuật toán phát hiện để tìm những thứ có khả năngcao là vật thể trong những hộp giới hạn đó

Mặc dù thuật toán R-CNN có chỉ phí tính toán cao và chậm, nhưng những kiến trúc

mới đã có thé cho phép thuật toán này chạy nhanh hơn, như là Fast R-CNN và

Faster R-CNN.

„Gấu bông

Ảnh gốc — Phân vùng ==> Dự đoán hộp giới han == Non-max suppression

Hình 2.7: Minh họa tiến trình xử lý của thuật toán R-CNN

2.3.2 YOLO

You Only Look Once (YOLO) là một thuật toán phát hiện vat thể thực hiện những

bước sau:

- Bước 1: Phân chia tam anh đầu vào thành một lưới GxG

* Bước 2: Với mỗi lưới, chạy một mang CNN dự đoán y có dang sau:

Trang 29

với pe là xác suất dự đoán được một vật thể, bx,by,bh,bw là những thuộc tính của

hộp giới hạn được dự đoán, cl, ,cp biểu diễn one-hot của việc lớp nào trong p lớp

được dự đoán, và k là sô lượng các Anchor boxes.

¢ Bước 3: Chạy thuật toán non-max suppression dé loại bỏ bất kỳ hộp giới hạn có

khả năng bị trùng lặp.

Gấu bông

: Phân chia thành lưới mm 7

Anh gốc => GxG ===> Du đoán hộp giới hạn ===> Non-max suppression

Hình 2.8: Minh họa các bước xử lý của thuật toán YOLO

Trang 30

Backbone: Lớp Convolution thực hiện trích xuất đặc trưng đối tượng từ

ảnh.

Neck: Lớp Pooling thực hiện xử lý và kết hợp các đặc trưng đối

tượng được trích xuất từ Backbone

Dense Prediction: Dự đoán nhãn cho đối tượng trong ảnh

Sparse Prediction: Dự đoán thưa thớt trên tap bounding box, làm tang tốc độ nhận

diện mô hình.

Về cơ bản, cau trúc YOLOv4 Tiny kế thừa từ các phiên bản YOLO tiền nhiệm Tuynhiên, có một vài thay đổi đáng chú ý được liệt kê sau đây.

2.4.1.1 Cross Stage Partial block

Partial Dense Block

ense Layer 1 {| Dense Layer 2 ras Dense Layer k

: „si

'L 4 ` ON p1

' / -: My “ A 4 / = IS teehee oc ein!

' conv conv ⁄ ‘© conv / ` conv / ` ụ SARE :

' / | lệ kế „ \ / oe) N / XX 4 Partial Transition Layer

'Xg» sconcatt + ¿ COnCAE X / concat ` / concat “si

th Oo” „ ¿ !¡ 7 4 ` ` —- sung h VNI

(b) Cross Stage Partial DenseNet

Hình 2.10: Minh hoa khối CSP

Cross Stage Partial Block (CSP) thực hiện tách feature map ra thành 2 phan, mot

phan sẽ cho đi qua những khối Fully connected block với nhiều Fully connectedlayer (Dense layer) va một transition layer; phần còn lại sé được kết hợp với với

transmitted feature map để mang sang stage tiếp theo Vì vậy, với cấu trúc này thì

trong mạng sẽ có 2 luồng gradient và feature map được hoạt động độc lập với nhau

dé thực hiện những mục đích riêng Khối CSP không chỉ bảo toàn được lợi ích của

việc sử dụng lại những đặc trưng của mạng DenseNet mà còn thêm khả năng ngăn

chặn lượng thông tin đạo hàm trùng lặp quá mức bằng cách cắt bớt dòng đạo hàm

16

Trang 31

Nhờ vậy, mô hình có thê tăng tôc quá trình training và giảm sô lượng tham sô cân

tính toán dé tăng thêm tốc độ suy luận

2.4.1.2 Drop block

DropBlock thực hiện bo di nhóm neuron tai một số vi trí ngẫu nhiên dé tránh hiệntượng chồng chéo trong feature map thay vì chỉ bỏ đi một vị trí Điều này là do các

VỊ trí trong feature map của mạng tích chập có độ tương quan cao với nhau.

Hinh 2.11: Minh hoa su dung dropblock

2.4.1.3 Ham Mist

Khi training, ham Mish loại bỏ hiện tượng ham kích hoạt ReLU không hoạt động (

hoặc đạo hàm từ vị trí hàm ReLU luôn trả về giá trị 0 cho bất kỳ đầu vào nào) Vì

những tính chất này, hàm Mish có khả năng tăng tốc quá trình training và hoạt độngtốt hơn các hàm kích hoạt khác Hình 2.12 cho thấy tỉ lệ “Validation accuracy” tức

độ chính xác của mô hình trên tập dữ liệu CIFAR-10 của ham Mish cao hon hắn hàm tiền nhiệm Swish Tỉ lệ trên cho chúng ta biết mô hình của chúng ta đang hoạtđộng như thé nào trên dữ liệu mà nó chưa từng thấy trong quá trình huấn luyện Nếu

“validation accuracy” cao, điều đó có nghĩa là mô hình đang hoạt động tốt trên dữ

liệu mới Tuy nhiên, nếu “validation accuracy” thấp hơn nhiều so với “training

accuracy”, điêu đó có thê là dâu hiệu của hiện tượng overfitting, nghĩa là mô hình

17

Trang 32

đã “học” quá tốt trên tập huấn luyện mà không thé tổng quát hóa tốt trên dữ liệu

YOLOv4 Tiny là phiên bản thu gọn của YOLOv4 được giới thiệu lần đầu vào tháng

11/2020, YOLOv4 Tiny mang tat cả đặc trưng được kế thừa từ phiên bản YOLOv4

nhưng được thiết kế để hoạt động trên các hệ thống có CPU xung nhịp thấp, được

thể hiện bằng việc độ phức tạp và cấu trúc mô hình được tinh gon so với phiên bản

YOLOv4 thường Các khác biệt được đề cập đến trong phần 2.4.2.2 Tất cả những

sự cải tiến này giúp hệ thống làm việc hiệu quả hơn cũng như tiết kiệm điện năng

tiêu thụ hơn so với phiên bản tiên nhiệm.

18

Trang 33

Hình 2.14: Cau trúc model YOLOv4 Tiny

Lớp Convolution bao gồm nhiều mạng tích chập 3x3, Hình 2.13 biểu diễn cấu trúccủa khối Resblock, ví dụ ta có kích thước đầu vào của feature map là 104x104 và sốkênh là 64 Đầu tiên mạng 3x3 tiêu chuẩn được dùng dé trích xuất thông tin Sau đó,feature map sẽ chia đôi để thực hiện hai phần khác nhau của quá trình trích xuất:phần đầu sẽ load half channel, phần thứ hai sẽ load toàn bộ channel Lớp tích chập3x3 được thực hiện trong phần đầu sẽ chia channel thành hai luồng, một luồng đượctái xử lý bằng phép tích chập 3x3, trong khi luồng còn lại không được thực hiện.Sau đó, phép tích chập 1x1 được thực hiện dé trích xuất các đặc trưng Sau quá trình

trên, tat cả kết quả của các kênh được gộp lại dé trích xuất đặc trưng rồi thực hiện

19

Trang 34

xếp chồng Sau khi quá trình xếp chồng hoàn tất, thực hiện khối max pooling 2x2

với bước nhảy bang 2 dé giảm thiêu kích thước của feature map Cuối cùng feature

map sẽ được xuất sang giai đoạn kế tiếp với kích thước 52x52 va số lượng kênh

128.

2.4.2.2 Điểm khác nhau khi so sánh với YOLOv4

- _ Số lượng lớp tích chập được nén giảm còn 29 lớp

- _ Số lượng layers giảm còn 2 thay vì 3

- Ít Anchor Boxes hơn

> Cấu trúc ít phức tap hơn, ít tiêu tốn tài nguyên hệ thống cho tiến trình tính

a ~:YOLOv3 =-RFBNet [ECCV 2018|

` = RefineDet [CVPR 2018|-+-Pelee [NeurIPS 2018|

s X ie ==CenterNet —==—ThunderNet [ICCV 2019]

"le ì ‹_ =YOLOV3-tiny -=YOLOv3-tiny-PRN [ICCVW 2019|

9 xử c®M2Det [AAAL 2019] | +-PFPNet [ECCV 2018]

Hình 2.15: Biéu đồ FPS khi nhận diện bằng COCO dataset trên NVIDIA 1080Ti

Từ biểu đồ trên, dé dàng nhận thay YOLOv4 Tiny đạt được khoảng 375 FPS, trong

khi YOLOv4 chi đạt được dưới 50 FPS khi nhận diện đối tượng bằng tập dữ liệu

COCO [6] Tuy nhiên, đánh đổi lại mức FPS cao là tỉ lệ Average Precision (AP)

thấp AP đại diện cho mối quan hệ giữa độ chính xác và độ phủ khi nhận diện đối

20

Trang 35

tượng AP càng cao mô hình càng hoạt động hiệu qua Bu lai, YOLOv4 Tiny có

FPS cao và kích thước nhỏ gon, rất phù hợp dé chạy trên các hệ thống có tài nguyênhạn chế Ngoài ra, nhờ ưu điểm kích thước nhỏ gọn, YOLOv4 Tiny phù hợp với các

hệ thống yêu cầu độ trễ thấp và vì theo dõi theo thời gian thực, vấn đề năng lượngtiêu thụ cũng cần cân nhắc khi lựa chọn giữa YOLOv4 và YOLOv4 Tiny Từ nhữngluận điểm trên, nhóm quyết định sử dụng YOLOv4 Tiny trong khuôn khổ khóa luận

này.

2.4.2.4 Ứng dụng YOLOv4 Tiny

thống nhận diện đeo khẩu trang, hệ thống nhận diện khuôn mặt người, ) Ngoài ra,

YOLOv4 Tiny cũng được sử dụng trong các hệ thống robot thông minh hoặc các hệ

thống xe tự hành đang được thử nghiệm, Vì ưu điểm linh hoạt và gọn nhẹ của nó

[11]

21

Trang 36

2.5 Field Programmable Gate Array FPGA

2.5.1 Dinh nghĩa

Field-programmable gate array (FPGA) là một loại mạch tích hợp cỡ lớn dùng cautrúc mảng phan tử logic mà người dùng có thể lập trình được Chữ field ở đây muốnchỉ đến khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào

dây chuyền sản xuất phức tạp của nhà máy bán dẫn Vi mạch FPGA được cấu thành

từ các bộ phận:

- Cac khối logic cơ bản lập trình được (logic block)

- Hệ thống mạch liên kết lập trình được

- _ Khối vào/ra (IO Pads)

- Phần tử thiết kế san khác như DSP slice, RAM, ROM, nhân vi xử lý

FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dung ASIC, nhưng

nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thưviện logic thi FPGA không dat đựợc mức độ tối ưu như những loại này, và hạn chế

trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn

ở chỗ có thé tái cấu trúc lại khi dang sử dụng, công đoạn thiết kế đơn giản do vậychỉ phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng

Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng

phan tử logic như PLA, PAL, CPLD thi FPGA ưu việt hơn các điểm: tác vụ tái lập

trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác

biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối

lượng lớn công logic (logic gate), so với các vi mạch bán dẫn lập trình được có

trước nó.

Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tảphần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn nhưXilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trìnhthiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này nhưSynopsys, Symplify Các gói phần mềm này có khả năng thực hiện tất cả các bước

22

Trang 37

của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn

gọi là mã RTL).

2.5.1.1 Kiến trúc FPGAKhối LOGIC

Phần tử chính của FPGA là các khối logic (logic block) Khối logic được cấu thành

từ LUT và một phan tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic cóthé thực hiện bat kì ham logic nào từ 4 đầu vào, kết qua của ham này tùy vào mụcđích mà gửi ra ngoài khối logic trực tiếp hay thong qua phan tử nhớ flip-flop

4-input

——— Ì} Look Up

Table(LUT)

Hình 2.17: Configurable Logic Blocks (CLBs)

Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dung khái niệm

Slice, 1 Slice tạo thành từ gồm 2 khối logic, số lượng các Slices thay đổi từ vàinghìn đến vài chục nghìn tùy theo loại FPGA 4 slices tạo thành một ConfigurableLogic Blocks (CLBs) CLBs là phần tử cơ bản cấu thành FPGA, là nguồn tàinguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ

Các khối tích hợp sẵn

Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích hợpthêm khác nhau, vi dụ dé thiết kế những ứng dung SoC, trong dòng Virtex 4,5 của

Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân

AVR , hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp

23

Trang 38

các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng

Virtex của Xilinx chứa từ vài chục đến hàng tram DSP slices với A, B, C 18-bit

Block RAM

Ngoài ra những FPGA của Xilinx còn có block RAM, có thé mường tượng như là

bộ nhớ nhỏ nằm trong FPGA Những block RAM này tuy nhỏ (khoảng vài chục ký

lô bit cho đến vài triệu bit tùy theo loại FPGA) nhưng có thê dùng dé tạo một bộ

nhớ nhỏ như ROM, FIEO.

2.5.1.2 Uu/ nhược điểm khi thiết kế trên FPGA

Ưu điểm:

- FPGA có thé được lập trình ở mức logic Do đó, nó có thể thực hiện xử lý tín

hiệu song song và nhanh hơn hệ thống nhúng

- FPGA có thể được lập trình lại hoặc sử dụng lại bat kỳ lúc nào FPGA cũng

- _ Việc lập trình FPGA đòi hỏi kiến thức về ngôn ngữ lập trình VHDL/Verilog

cũng như các nguyên tắc cơ bản về hệ thống kỹ thuật số Việc lập trình

gặp rất nhiều khó khăn do không có thư viện hỗ trợ như lập trình ngôn ngữbậc cao như C hay Python việc phát hiện và tìm lỗi cũng gặp trở ngại khikhông có công cụ debug tích hợp sẵn mà phải dò thủ công qua luận lý thiết

kế hoặc các phần mềm/ tool mô phỏng bên thứ 3 ( Xilinx, MATLAB

Simulink hoặc Synopsys).

- Khi thao tác trên bat kỳ loại FPGA nào , các nhà thiết kế cần tận dung hiệu

quả tài nguyên có san trên FPGA Thông thường, tài nguyên tích hợp sẵntrên FPGA thường rất hạn chế Dé tránh tình huống thắt cô chai, việc lựa

24

Trang 39

chọn dòng FPGA thích hợp cho nhu cầu thiết kế cần được chú trọng ngay từ

2.6.2 Mục đích kết hợp Tensorflow và YOLOv4 Tiny

TensorFlow cung cấp khả năng tính toán số học sử dụng đồ thị luồng dữ liệu Thuviện này tích hợp san rất nhiều các hàm phục vụ machine learning Nó thể hiện cau

trúc mô tả các đường di của dữ liệu có thé di chuyển qua một biểu đỗ; hoặc di

chuyên qua một loạt các node xử lý Ngoài ra, Tensorflow cung cấp thư viện tạo ra

các dataflow graph — đồ thị luồng dit liệu dé dựng hoặc chỉnh sửa các model

Ngoài ra, việc trực quan hóa mô hình bang các đô thị Tensorflow hỗ trợ người tạo

ra mô hình máy học (YOLO hoặc CNN) dé dàng thực hiện bước tối ưu hóa mô hìnhthay cho file Weight vốn chỉ bao gồm các ma trận truyền thống Việc tối ưu hóa môhình giúp tăng tốc độ xử lý của mô hình đã huấn luyện cũng như tùy ý chỉnh sửa lại

câu trúc mô hình sao cho phù hợp với nhu câu sử dụng thực tê.

Trang 40

Hình 2.18 mô tả một phần mô hình mẫu YOLOv4 Tiny được xử lý bằngTensorflow framework, sau khi có được mô hình đã huấn luyện như trên, người sử

dụng có thê tùy ý chỉnh sửa hình dạng các node cũng như trọng số cho từng node

trong mô hình sao cho phù hợp nhất bằng các thư viện được cung cấp sẵn bởi

Tensorflow.

2.7 Hệ thống nhận diện bién báo giao thông

2.7.1 Tổng quan

Nhận diện biển báo giao thông là công nghệ giúp phương tiện có thể nhận biết các

biển báo giao thông đặt trên đường, ví dụ như "giới hạn tốc độ" hoặc "trẻ em" hoặc

"rẽ phía trước" Day là một phan của tinh năng được gọi chung là ADAS Côngnghệ này đang được phát triên bởi nhiều nhà cung cấp ô tô Nó sử dụng kỹ thuật xử

lý hình ảnh để phát hiện các biển báo giao thông Các phương pháp phát hiện nóichung có thé được chia thành các phương pháp dựa trên màu sắc, dựa trên hình

dạng và dựa trên học tập.

2.7.2 Các công nghệ nhận diện bién báo giao thông

2.7.2.1 Cae công nghệ đầu tiên

- Thế hệ thứ 1Nhận dạng biển báo giao thông lần đầu tiên xuất hiện dưới dạng nhận

dạng biển báo giới hạn tốc độ vào năm 2008 cho Vauxhall Insignia 2009.Cuối năm 2009, chúng xuất hiện trên chiếc BMW 7 Series mới va năm sau

trên chiếc Mercedes-Benz S-Class Vào thời điểm đó, các hệ thống nàychỉ phát hiện các biển báo giới hạn tốc độ hình tròn được tìm thấy trên

khắp châu Âu [9].

- _ Thế hệ thứ 2

Hệ thống thế hệ thứ hai cũng có thể phát hiện các biển báo hạn chế vượt

Nó được giới thiệu vào năm 2008 với chiếc Opel Insignia , sau đó là OpelAstra và Saab 9-5 Công nghệ này cũng có san trên Volkswagen Phaeton

26

Ngày đăng: 02/10/2024, 02:59