| Opis: | V magistrski nalogi predstavimo razvoj naprednega video sistema z zaznavanjem prisotnosti ljudi, ki temelji na uporabi globokega učenja in mikrokrmilnika z nizko porabo. Cilj naloge je razviti sistem, ki lahko deluje kot pameten video domofon. Sistem se lahko namesti na vhodna vrata in zna samodejno obvestiti lastnika o osebi pred vrati. Glavni cilj magistrskega dela je tako uporaba AI, in zlasti agoritmov z globokimi nevronskimi mrežami, ki se morajo izvajati tudi na končnih napravah z ARM mikrokrmilnikom. Pri tem je velika prednosti predvsem manjša poraba energije in pa cena.
Naloga naslavlja najpogosteje uporabljene metode za zmanjšanje porabe energije in pomnilnika, ter metode za učinkovito izvajanje in optimizacijo algoritmov globokega učenja. Podrobneje predstavljamo algoritem “Deep Compression”, kvantizacijo in ternarno kvantizacijo parametrov, rezanje uteži (ang. pruning), souporabo uteži (ang. weight sharing), uporabo Fourierjevih transformacij itd. Predstavljamo tudi najbolj uporabljane strojne platforme za globoko učenje v okoljih z omejenim pomnilnikom in porabo energije. Podrobneje predstavimo nov in inovativen strojni pospeševalnik imenovan EIE (ang. Efficent Inference Engine), ki deluje neposredno na nevronskih mrežah stisnjenih z algoritmom “Deep Compression”. Predstavljamo tudi bolj splošne platforme, ki temeljijo na ARM Cortex-M procesorskem jedru, namreč Cortex-M4 in -M7, ter novo -M55 jedro z vektorsko razširivijo Helium, in Ethos-U55 jedro, ki je zasnovano posebej za pospeševanje strojnega učenja za naprave na robu (angl. edge).
Magistrska naloga predstavlja tudi razvojni proces in funkcionalno zasnovo predlaganega sistema, ki temelji na ARM Cortex-M4 mikrokrmilniku. V sistemu je tako CMOS kamera z VGA ločljivostjo in 3,97" in LCD zaslon z WVGA ločljivostjo za prikaz zajetega videa. ARM mikrokrmilnik poleg izvajanja AI algoritma za prepoznavo obraza, krmili tudi kamero in zaslon. Periferni vmesnik mikrokrmilnika, ki se uporablja za povezovanje zunanjih pomnilnikov, je uporabljen tudi za povezavo z LCD zaslonom. Periferni vmesnik FSMC (ang. flexible static memory controller), deluje s signali, ki se nekoliko razlikujejo od signalov za vodilo i80, ki ga uporablja LCD zaslon. Je pa dovolj prilagodljiv, da ga je mogoče konfigurirati tudi za uporabo z vodilom i80. Ker LCD zaslon zaseda edini paralelni vmesnik, je povezava s kamero izvedena z uporabo GPIO vrat in DMA krmilnika. V nalogi je tako podrobneje predstavljena tudi povezava s kamero in LCD zaslonom na nivoju programske opreme.
Zaradi raznolikosti in razdrobljenosti med proizvajalci strojne opreme na področju vgrajenih sistemov, ter pomanjkanja standardov in interoperabilnosti, so do nedavnega inženirji razvijali lastne ekosisteme za strojno učenje. Takšne rešitve so običajno brez podpore, so slabo prenosljive in so pogosto optimizirane na specifično platformo. Tensorflow Lite Micro je C++ odprto kodno ogrodje za poganjanje modelov globokega učenja na vgrajenih platformah. To ogrodje odpravlja kar nekaj omenjenih problemov kot so razdrobljenost, raznolikost in izpolnjevanje zahtev glede učinkovitosti, ki so potrebne za vgrajene sisteme, ter tako omogoča združljivost tudi s platformami, ki je bila prej praktično nemogoča. Vsi problemi in rešitve, ter delovanje in struktura ogrodja so podrobneje predstavljeni tudi v nalogi. Razen ogrodja, ki je razvito v programskem jeziku C++, je preostala programska oprema napisana v programskem jeziku C.
Rezultati magistrske naloge v celoti izpolnjujejo pričakovanja in cilje naloge. Uporabili smo predhodno naučen model globoke nevronske mreže za zaznavanje prisotnosti ljudi na podatkovni množici slik, ki je tudi po testiranju optimizirane različice, podajal pričakovane rezultate tako glede natančnosti kot tudi zakasnitev. Poraba pomnilnika in struktura končnega programa je v nalogi prav tako podrobneje predstavljena. |
|---|