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 2THÔ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 3LỜ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 4Chươ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 52.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 62.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 73.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 853.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 9DANH 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 10Hì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 11Hì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 12Danh 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 13DANH 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 14R&D: Research and Development
LUX: Don vi do cường độ ánh sáng
AP: Độ chính xác trung bình (Average Precision)
Trang 15TOM 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 16nhà 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 17Chươ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 18thô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 19Quang 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 21nê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 22Chươ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 23Chươ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 242.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 25Hì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 26rộ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 27B 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 282.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 29vớ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 30Backbone: 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 31Nhờ 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 33Hì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 34xế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 35tượ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 362.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 37củ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 38cá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 39chọ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 40Hì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