Razvoj naprednega sistema na platformah GPU za razumevanje okolja avtonomnih vozil
Avtor: Matej Pivec
Mentor: Matej Rojc
Stopnja: Študijski program 1. stopnje Elektrotehnika, Smer elektronika
Datum: 2021
Avtor: Matej Pivec
Mentor: Matej Rojc
Stopnja: Študijski program 1. stopnje Elektrotehnika, Smer elektronika
Datum: 2021
Povzetek
Problem, ki ga obravnavamo v diplomski nalogi je zaznavanje pomembnih objektov na slikah in videu vožnje na slovenskih cestah. Za rešitev tega problema smo se odločili uporabiti tehnike strojnega učenja ter ogrodje za nevronske mreže Darknet. Izdelali smo svoj nabor podatkov oz. slik in porabili Darknet za učenje modela nevronskih mrež. Ta model smo testirali na zmogljivi strojni opremi in na mobilni platformi Jetson TX2.
Jetson TX2 je mikroračunalnik, ki ga ponuja podjetje nVidia. Zasnovan je na Tegra X2 arhitekturi, ki vsebuje 2 centralni procesni enoti: Denver2 in Cortex-A57. Ti skupaj vsebujeta 6 procesnih jeder. Jetson podpira do 8GB bralno-pisalnega pomnilnika. Vsebuje GPE arhitekture Pascal s procesno močjo do 750 GFLOPS pri 32-bitni natančnosti števil s plavajočo vejico. Obljubljajo porabo energije do 15W [9]. Za operacijski sistem se običajno uporablja distribucija Linux, nVidia ponuja že pripravljeno sliko distribucije Ubuntu 16.04. Operacijski sistem nam za grafično enoto ponuja podporo jezika CUDA. Podpora CUDA je kritičnega pomena, saj nam omogoča uporabo kupice orodij in programske opreme, ki ponujajo možnosti uporabe strojnega učenja.
Darknet je odprtokodno ogrodje za globoke nevronske mreže. Napisano je v programskem jeziku C, C++ ter CUDA. Ob imenu Darknet marsikdo pomisli na del spleta, ki ni dosegljiv z navadno programsko opremo. Vendarle v tem primeru ni govora o nerelevantnih temah, temveč o programski opremi ustvarjalca Josepha Redmona, katerega dela so na voljo na njegovi GitHub strani pjreddie. Imena programske opreme so dvoumna in mogoče provokativna. Kot kaže je to storjeno namensko in je pogosta tema tega ustvarjalca pri imenovanju programov in komponent. Programska oprema je kljub temu profesionalna, algoritmi uporabljeni v tej programski opremi pa dosegajo dobre rezultate na področju strojnega učenja.
YOLO je nevronska mreža, ki je sposobna zaznavanja in klasifikacije objektov v slikah [13]. Ime YOLO izhaja iz fraze »you only look once«, kar pomeni »pogledaš samo enkrat«. Ob razvoju so avtorji ustvarili že tretjo verzijo, ki se imenuje YOLOv3, ob pisanju pa je izšla še četrta verzija. Vsaka verzija je nadgradnja prejšnje. Ko so avtorji izdali prvo verzijo, so med raziskovalci nevronskih mrež dvignili veliko prahu. YOLO je v primerjavi z drugimi nevronskimi mrežami za zaznavo objektov in klasifikacijo bil znatno hitrejši. Bil je tako hiter, da je lahko z uporabo GPU višjega ranga v realnem času in s sprejemljivo natančnostjo zaznaval objekte v videu.