• Rezultati Niso Bili Najdeni

Sistemzasnemanjeinbeleˇzenjedogajanjavvozilu NejcLoboda

N/A
N/A
Protected

Academic year: 2022

Share "Sistemzasnemanjeinbeleˇzenjedogajanjavvozilu NejcLoboda"

Copied!
68
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Nejc Loboda

Sistem za snemanje in beleˇ zenje dogajanja v vozilu

DIPLOMSKO DELO

VISOKOˇSOLSKI STROKOVNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Ljubljana, 2022

(2)

Nejc Loboda

Sistem za snemanje in beleˇ zenje dogajanja v vozilu

DIPLOMSKO DELO

VISOKOˇSOLSKI STROKOVNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : viˇsji pred. dr. Robert Rozman

Ljubljana, 2022

(3)

Copyright. Rezultati diplomske naloge so intelektualna lastnina avtorja in Fakultete za raˇcunalniˇstvo in informatiko Univerze v Ljubljani. Za objavo in koriˇsˇcenje rezultatov diplomske naloge je potrebno pisno privoljenje avtorja, Fakultete za raˇcunalniˇstvo in informatiko ter mentorja.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(4)
(5)

Fakulteta za raˇcunalniˇstvo in informatiko izdaja naslednjo nalogo:

Tematika naloge:

Vsled tehnoloˇskega razvoja transportna sredstva postajajo vse bolj samo- stojna. V tem okviru raziˇsˇcite moˇznosti realizacije enostavnega sistema za snemanje in beleˇzenje dogajanja v vozilu. Raziˇsˇcite in implementirajte tudi nekatere naprednejˇse funkcije, npr. zaznavo objektov in izrednih dogodkov.

Zasnujte in izdelajte primer takega sistema po lastni zamisli in ga preizkusite v praksi ter ovrednotite njegovo delovanje.

(6)
(7)

Zahvaljujem se moji druˇzini, prijateljem in profesorjem za podporo skozi vsa leta ˇstudija. Zahvalil bi se tudi vsem ustvarjalcem na spletu, ki izdelujejo

“How to . . . ” vsebino, namenjeno izobraˇzevanju in izdelavi kakrˇsnih koli domaˇcih projektov.

(8)
(9)

Kazalo

Povzetek Abstract

1 Uvod 1

1.1 Motivacija . . . 2

1.2 Pregled vsebine . . . 3

2 Uporabljena strojna in programska oprema 5 2.1 Mikroraˇcunalnik Raspberry Pi . . . 6

2.2 Zunanja tipala . . . 8

2.3 Povezave prikljuˇckov GPIO . . . 15

2.4 Programska lupina Bash . . . 15

2.5 Programski jezik Python . . . 17

2.6 Povezovanje vezja s spajkanjem . . . 18

3 Realizacija prototipnega sistema 19 3.1 Priklop in preizkus tipal . . . 19

3.2 Glavna skripta Bash . . . 21

3.3 Zajem slike s kamere . . . 23

3.4 Zaznavanje vozil . . . 23

3.5 Zaznavanje izrednih dogodkov s pomoˇcjo tipal . . . 26

3.6 Vizualni prikaz podatkov . . . 27

3.7 Zajem zvoka . . . 29

(10)

4 Vgradnja in preizkus sistema v vozilu 33 4.1 Vgradnja in priprava sistema . . . 33 4.2 Preizkus sistema . . . 35 4.3 Izboljˇsave na podlagi izkuˇsenj . . . 36

5 Sklepne ugotovitve 39

5.1 Praktiˇcne izkuˇsnje . . . 39 5.2 Perspektiva . . . 41 5.3 Zakljuˇcek . . . 43

Literatura 45

(11)

Seznam uporabljenih kratic

kratica angleˇsko slovensko

RPi Raspberry Pi Raspberry Pi

GPIO General-purpose input/output sploˇsno-namenski vhod/izhod LED Light-emitting diode svetleˇca dioda

IP Internet Protocol internetni protokol HDMI High-Definition Multimedia

Interface

visokoloˇcljivostni multimedij- ski prikljuˇcek

GPS Global Positioning System globalni sistem za doloˇcanje poloˇzaja

OS Operating System operacijski sistem

PWM Pulse-width modulation pulzno-ˇsirinska modulacija SPI Serial Peripheral Interface Bus serijski komunikacijski vme-

snik

I2C Inter-Integrated Circuit serijski komunikacijski vme- snik

SSH Secure Shell protokol za varno upravljanje

raˇcunalnika na daljavo

GND Ground ozemljitev

SDA Serial Data Line serijska podatkovna povezava SCL Serial Clock Line urin signal serijske povezave USB Universal Serial Bus univerzalno serijsko vodilo

MIC Microphone mikrofon

SD Secure Digital spominska kartica

(12)
(13)

Povzetek

Naslov: Sistem za snemanje in beleˇzenje dogajanja v vozilu Avtor: Nejc Loboda

V okviru diplomske naloge smo izdelali sistem za snemanje in beleˇzenje do- gajanja v vozilu. Uporabili smo majhen mikroraˇcunalnik Raspberry Pi, na katerega smo priklopili kamero in zunanja tipala za temperaturo, pospeˇske, poloˇzaj, mikrofon ter tipko za izklop. Celoten sistem smo vgradili v vo- zilo. Podatke s tipal smo zajemali in shranjevali na spominsko SD kartico.

V sistem smo vgradili vnaprej nauˇcen model za zaznavanje ostalih vozil v prometu in s pomoˇcjo zajetih podatkov s tipal zaznavali izredne dogodke.

Te dogodke smo shranili kot zaznamke, ki kaˇzejo na ˇcas dogodka v videopo- snetku. Sistem omogoˇca enostaven priklop, uporabo in spremljanje dogajanja na mobilni napravi. Delovanje celotnega sistema smo ocenili s preizkusnimi voˇznjami. Ugotovili smo, da je sistem v obstojeˇcem stanju zelo uporaben in nudi zanimive funkcionalnosti, ki se lahko v prihodnosti ˇse nadgradijo.

Kljuˇcne besede: Raspberry Pi, snemanje, zaznavanje, kamera, tipala.

(14)
(15)

Abstract

Title: System for recording and logging of events in vehicle Author: Nejc Loboda

We have developed a system for recording and logging traffic events in the thesis. We used a small Raspberry Pi microcomputer to which we connected a camera and external sensors for temperature, acceleration, position, micro- phone and the power button. The whole system was installed in the vehicle.

Sensor data was captured and stored on the SD memory card. We inte- grated a pre-trained model to detect other vehicles in traffic and used the captured data from the sensors to identify unusual events. We stored these events as bookmarks with the time of the event in the video. The system al- lows easy connection, use and monitoring of the events on the mobile device.

The operation of the entire system was evaluated through test drives. We found that the system in its current state is very useful and offers interesting functionalities that can be enhanced in the future.

Keywords: Raspberry Pi, recording, detection, camera, sensors.

(16)
(17)

Poglavje 1 Uvod

Avto kamera (ang. Dashcam) je najbolj soroden izdelek naˇsemu sistemu [54]. To je kamera nameˇsˇcena v vozilo, ki omogoˇca snemanje dogajanja v prometu. Posnetek izrednega dogodka lahko pride zelo prav v primeru zazna- vanja drugih vozil, nesreˇce, prekrˇska, vandalizma ali na interventnih voˇznjah.

Povpreˇcna avto kamera omogoˇca snemanje videoposnetkov in zvoka visoke loˇcljivosti, zaznavanje izrednih dogodkov, ter povezavo z mobilno aplikacijo za nadzor kamere [15]. Za zajem veˇc informacij kamera uporablja ˇsirokokotno leˇco. Videoposnetek pa se shranjuje na micro SD kartico.

Sodobna vozila imajo ˇze vgrajene kamere (npr. vozila znamke Tesla). Ka- mer je v vozilo lahko vgrajenih veˇc, npr. prednja kamera, stranske kamere, kamere namesto ogledal, kamera za vzvratno voˇznjo, itd. Veˇc kamer lahko zajame veˇc informacij iz okolice. Vgrajene kamere se uporabljajo za razliˇcne varnostne sisteme vozila, le redki proizvajalci pa omogoˇcajo shranjevanje in kasnejˇsi ogled videoposnetka [2]. Zaradi tega je v vozilo potrebno vgraditi dodatno avto kamero. Avto kamere so odliˇcne za snemanje in prikaz vide- oposnetkov, ter zaznavanje izrednih dogodkov. Obiˇcajno pa ne omogoˇcajo uporabe raˇcunalniˇskega vida v realnem ˇcasu in so omejena s ˇstevilom in naborom tipal [43].

Pri zaznavanju izrednih dogodkov v prometu je pomembno, da sistem zanesljivo oznaˇci dogodek in shrani skupaj s sliko ˇse podatke s tipal (vide-

1

(18)

oposnetek, zvok, hitrost, lokacija, itd.). Za zaznavanje izrednih dogodkov lahko uporabimo podatke z veˇc razliˇcnih tipal. Iz videoposnetka lahko za- znavamo in beleˇzimo razliˇcne objekte, npr. vozila, peˇsce, kolesarje, registrske tablice, prometne znake, itd. Zaznavanje objektov v realnem ˇcasu postaja v avtomobilski industriji vedno bolj popularno. Uporablja se pri detekciji pasov, peˇscev, prometnih znakov ter avtonomni voˇznji. To nas je navduˇsilo k izdelavi sistema za snemanje in beleˇzenje dogajanja v vozilu.

Kakovost videoposnetka je odvisna od specifikacij kamere in uporabljene programske opreme. Pomembna je kvaliteta in vrsta leˇce (npr. ˇsirokokotna), zaslonka (npr. f/1.8), velikost in vrsta slikovnega tipala za zajem slike (npr.

noˇcni vid), loˇcljivost (npr. 720p, 1080p ali 1440p) in ˇstevilo sliˇcic, ki jih lahko kamera zajame na sekundo (npr. 30 fps). Programska koda mora biti prilagojena na uporabljeno strojno opremo, da sistem deluje optimalno.

Na prototipni sistem se lahko namestijo dodatna tipala kot so pospeˇskometer, tipalo hitrosti, GPS pozicije, temperature in vlage, itd. Zajeti podatki s tipal se shranjujejo, prikazujejo in uporabljajo za zaznavanje izrednih dogodkov v prometu. Zajete podatke prikaˇzemo uporabniku na najbolj enostaven in pre- gleden naˇcin. Videoposnetek lahko prikazujemo v ˇzivo na mobilni napravi, ali pa si ga ogledamo kasneje.

1.1 Motivacija

Motivacija za izbrano temo je izdelava zanimive diplomske naloge in reˇsevanje razliˇcnih problemov. Najprej smo preuˇcili obstojeˇce sisteme in naˇsli nekaj moˇznih izboljˇsav oziroma drugaˇcnih idej. Prototipni sistem je praktiˇcni iz- delek, ki je sestavljen iz raznovrstne strojne in programske opreme in pred- stavlja zakljuˇceno celoto. Nikoli ˇse nismo delali z mikroraˇcunalnikom RPi in tipali, zato je bil to tudi poseben izziv. Med delom smo spoznali delovanje mikroraˇcunalnika, razliˇcnih tipal in povezovanje le teh. Odkrili smo predno- sti in slabosti posamezne strojne in programske opreme. Tipala uporabljajo razliˇcne naˇcine povezovanja in protokole komunikacije, katere smo zdruˇzili v

(19)

Diplomska naloga 3 samostojen sistem.

Naˇs sistem tako razˇsiri funkcionalnost na trgu prisotnih sistemov, opi- sanih na zaˇcetku tega uvodnega poglavja. Naˇs prototip ima veˇc prednosti.

Je kompakten sistem, na katerega je prikljuˇcenih veˇc zunanjih tipal. Vse te funkcionalnosti omogoˇcajo poleg osnovnega snemanja ˇse zaznavanje objektov in beleˇzenje izrednih dogodkov. Sistem je odprtokoden in omogoˇca spremi- njanje delovanja in kasnejˇso nadgradnjo. S tem uporabniku omogoˇcimo, da si sistem prilagodi svojim zahtevam. Uporabniki lahko priklopijo novo tipalo, prilagodijo izpis in spremenijo zaznavanje objektov, ter izrednih dogodkov.

1.2 Pregled vsebine

Prototipni sistem je sestavljen iz razliˇcne strojne in programske opreme. Po- membnejˇsi sklopi so podrobno opisani v 2. poglavju. V 3. poglavju je opisan postopek priklopa tipal na RPi in delovanje posameznih funkcionalnosti sis- tema. Sledi 4. poglavje, ki opisuje vgradnjo in preizkus delovanja sistema v vozilu ter dodane izboljˇsave. Zadnje poglavje opisuje praktiˇcne izkuˇsnje, ki smo jih pridobili pri izdelavi diplomskega dela in ovrednotenje funkcionalno- sti prototipnega sistema.

(20)
(21)

Poglavje 2

Uporabljena strojna in programska oprema

Na majhen raˇcunalnik Raspberry Pi (v nadaljevanju RPi) smo priklopili ka- mero, tipalo za temperaturo, pospeˇskometer, tipalo GPS, mikrofon in tipko.

Programsko kodo smo razvijali kar na RPi, z uporabo programskih jezikov Bash in Python. V tem poglavju so opisani vsi pomembnejˇsi sklopi strojne in programske opreme, uporabljeni v konˇcnem prototipu sistema (Slika 2.1).

Slika 2.1: Prototipni sistem za snemanje in beleˇzenje dogajanja v vozilu.

5

(22)

2.1 Mikroraˇ cunalnik Raspberry Pi

Za glavno komponento diplomskega dela smo izbrali mikroraˇcunalnik Ra- spberry Pi 4, model B z 2 GB pomnilnika [41] (Slika 2.2). RPi je nizkocenovni raˇcunalnik velikosti kreditne kartice.

Najnovejˇsa verzija RPi 4 z 8 GB pomnilnika je dovolj zmogljiva, da za- menja domaˇci raˇcunalnik, ˇce od njega ne priˇcakujemo preveˇc. Omogoˇca brskanje po svetovnem spletu, predvajanje video posnetkov, igranje starejˇsih iger preko emulatorja, pisanje dokumentov, itd. RPi je dovolj zmogljiv, da naenkrat uporabljamo veˇc aplikacij.

Slika 2.2: Raspberry Pi 4, model B, 2 GB [27].

Specifikacije:

• Procesor: Broadcom BCM2711, ˇstiri jedrni Cortex-A72 (ARM v8) 64- bit SoC @ 1.5GHz

• Pomnilnik: 2GB LPDDR4 (Low-Power DDR SDRAM)

• Povezovanje: 2.4 GHz in 5.0 GHz IEEE 802.11b/g/n/ac wireless LAN, Bluetooth 5.0 BLE, Gigabit Ethernet, 2 × USB 3.0 in 2 × USB 2.0 prikljuˇcki

(23)

Diplomska naloga 7

• GPIO: Standardno GPIO prikljuˇcni vmesnik s 40 noˇzicami (kompati- bilen s prejˇsnjimi razliˇcicami)

• Video in zvok: 2 × micro HDMI prikljuˇcka (podprto vse do 4Kp60), MIPI DSI display port, MIPI CSI camera port in stereo audio and composite video port

• Multimedija: Podpira video kompresijski standard H.265 (4Kp60 deko- diranje), H.264 (1080p60 dekodiranje, 1080p30 kodiranje) in OpenGL ES, 3.0 grafika

• SD kartica: Reˇza za micro SD kartico, namenjena shranjevanju opera- cijskega sistema in datotek

• Moˇznosti napajanja: 5V DC preko USB-C prikljuˇcka (najmanj 3A), 5V DC preko GPIO vmesnika (najmanj 3A) in vmesnika Ethernet (PoE - Power over Ethernet)

• Okolje: Delovna temperatura 0–50 stopinj Celzija [11]

RPi ima 40 prikljuˇckov GPIO, ki omogoˇcajo priklop zunanjih tipal (Slika 2.3). Od tega je 28 prikljuˇckov sploˇsno namenskih, 4 prikljuˇcki so name- njeni napajanju (2 krat 3.3V in 2 krat 5V) ter 8 prikljuˇckov za ozemljitev.

Od 28 sploˇsno namenskih prikljuˇckov, pa lahko nekatere uporabljamo za ko- munikacijo s tipali, ki uporabljajo razliˇcne komunikacijske vmesnike oziroma protokole, kot so serijski, PWM, SPI in I2C [6, 24]. RPi nima tipke za zagon, ta se izvede samodejno, ko ga prikljuˇcimo na elektriˇcno omreˇzje.

Za shranjevanje operacijskega sistema in datotek RPi uporablja kartico micro SD. Predˇcasno je bila omogoˇcena uporaba diska SSD kot naˇcin shra- njevanja, ki pohitri odzivnost sistema [58]. Za operacijski sistem smo izbrali Raspberry Pi OS, ki je bil prej znan pod imenom Raspbian [12, 25]. Ra- spberry Pi OS je odprtokodni operacijski sistem narejen za RPi. Uporablja Linux jedro in je optimiziran za delo s srednje zmogljivimi ARM procesorji.

(24)

Slika 2.3: Raspberry Pi - razpored prikljuˇckov GPIO.

Ce izberemo predlagano namestitveno distribucijo, je poleg operacijskega sis-ˇ tema vkljuˇcena ˇse zbirka programov, ki omogoˇca opravljanje vsakodnevnih opravil, urejanje dokumentov, slik, videoposnetkov in programiranja [34].

2.2 Zunanja tipala

Na RPi smo za potrebe delovanja sistema povezali tudi zunanja tipala, pred- stavljena v nadaljevanju.

2.2.1 Kamera za Raspberry Pi

Na mikroraˇcunalnik RPi lahko priklopimo kar nekaj vrst kamer. Preko vhoda USB lahko poveˇzemo spletno kamero, nadzorno kamero preko prikljuˇcka Ethernet ali pa uradno kamero RPi [65]. Izbrali smo uradno kamero RPi v2, ki jo poveˇzemo direktno na grafiˇcno procesno enoto (Slika 2.4). S tem se izognemo nepotrebni obremenitvi centralne procesne enote.

Kamera ima vgrajeno slikovno tipalo Sony IMX219 z 8 milijoni toˇck.

(25)

Diplomska naloga 9 Lahko zajema slike resolucije 3280 krat 2464 toˇck in snema video posnetek 1080p pri 30 sliˇcicah na sekundo [5].

Na kamero je vgrajena navadna leˇca, ki zajema sliko pri vidnem kotu 62.2 stopinj. Da bi zajeli veˇc informacij s slike smo zamenjali vgrajeno s ˇsirokokotno leˇco, ki zajema sliko pri vidnem kotu 120 stopinj [49]. Menjava leˇce je zelo enostavna, svetlobno tipalo z leˇco je na modul kamere prilepljeno s trakom dvostranskega lepila in povezano z enim prikljuˇckom. Na voljo so tipala z leˇcami vse od makro do ˇsirokokotnega Fisheye (360 stopinj) in lahko imajo roˇcni ali avtomatski fokus. Kvaliteta slike je najbolj odvisna od kvalitete leˇce in svetlobnih pogojev.

Zraven kamere dobimo 30 cm kabla, ki je za veˇcino projektov dovolj dolg.

Za vgradnjo v vozilo smo potrebovali daljˇsi kabel. Izbrali smo kabel dolˇzine 2 metra. V celoti razvit kabel je deloval normalno, ˇce pa je ostal navit, se je pojavil nezaˇzelen ˇsum. Kazal se je kot menjavanje barv na manjˇsem delu zajete slike. Razlog nezaˇzelenega ˇsuma je presluh, do katerega je priˇslo med navitimi povezavami [59].

Slika 2.4: Uradna kamera RPi, ˇsirokokotna leˇca in vgrajena kamera v vozilu [28].

2.2.2 Tipalo temperature DS18S20

V kabini smo hoteli spremljati temperaturo, zato smo na RPi priklopili tem- peraturno tipalo Maxim Integrated DS18S20 [36] (Slika 2.5). Tipalo je na

(26)

RPi povezano s tremi ˇzicami, 3.3V, GND in za komunikacijo uporablja digi- talni prikljuˇcek 1-Wire. Za pravilno delovanje je potrebno povezati ˇzici 3.3V in 1-Wire z uporom 4.7k Ohmov (ali do 10k Ohmov) [45].

Tipalo lahko zaznava temperaturo vsako sekundo vse od -55 do 125 stopinj Celzija, pri natanˇcnosti 0.5 stopinje.

Na RPi lahko priklopimo veˇc tipal za merjenje temperature, npr. tem- peratura kabine, zunanja temperatura in temperatura v prtljaˇzniku. Tipalo za merjenje temperature v prtljaˇzniku bi lahko uporabili kot opozorilo, ˇce bi v vozilu prevaˇzali ˇzivali ali temperaturno obˇcutljivo blago in bi temperatura presegla vnaprej nastavljeno mejo.

Slika 2.5: Tipalo za merjenje temperature [32].

2.2.3 Tipalo lokacije GPS Microstack L80

Za doloˇcanje trenutne lokacije smo izbrali tipalo GPS Microstack L80 [37]

(Slika 2.6). L80 je majhen modul, ki ga na RPi prikljuˇcimo na prikljuˇcke za serijsko komunikacijo TX in RX (noˇzici GPIO12 in GPIO16) ter 3.3V za napajanje in GND.

Vgrajen ima notranji pomnilnik, na katerega lahko shranjuje zgodovino pozicij. Da bi prihranili nekaj energije, tipalo v mirovanju poˇciva in se akti- vira, ko zazna premikanje. Tipalo lahko deluje pri temperaturah od -40 do 85 stopinj Celzija in zaznava lokacijo vse do nadmorske viˇsine 18 km. Podatke s tipala lahko pridobimo 1 (do 10) krat na sekundo.

(27)

Diplomska naloga 11 Tipalo ima vgrajeno notranjo anteno in prikljuˇcek za zunanjo, ki bi jo mo- rali uporabiti za hitrejˇse in bolj natanˇcno sledenje. Ko najde dovolj satelitov za doloˇcitev lokacije, zaˇcne na tipalu utripati rdeˇca luˇcka.

Slika 2.6: Tipalo GPS.

Tipalo zajema kar nekaj podatkov, uporabili in prikazali smo naslednje:

zemljepisno ˇsirino in dolˇzino, datum in uro, hitrost v km/h, ter nadmorsko viˇsino [9] (Slika 2.7).

Slika 2.7: Primer prikaza zajetih podatkov.

2.2.4 Tipalo pospeˇ ska MPU6050

Za zaznavanje izrednih dogodkov smo uporabili pospeˇskometer Joy-it MPU6050 [38] (Slika 2.8). Na tem majhnem modulu so vgrajeni: tipali pospeˇska in tem- perature ter ˇziroskop. Na RPi je priklopljen s ˇstirimi ˇzicami: 3.3V, GND, SDA in SCL. Za komunikacijo se uporablja protokol I2C.

(28)

Slika 2.8: Pospeˇskometer in povezava na RPi [29].

Za zaznavanje izrednih dogodkov uporabljamo pospeˇskometer, ki meri pospeˇske v smeri X, Y in Z osi, in so izraˇzeni v merski enoti meter na sekundo kvadrat [61]. Ta podatek smo pretvorili v gravitacijski pospeˇsek, in sicer 1 g = 9.80665 m/s2.

Da bi dobili ˇcim bolj natanˇcne podatke, smo pospeˇskometer pritrdili na nosilo in ga poravnali s smerjo vozila, tako da se je med voˇznjo premikal enako kot vozilo. Vozilo smo postavili na ravno povrˇsino in nastavili kalibracijo, tako, da so podatki kazali X: 0, Y: 0 in Z: 9.8 m/s2. Pospeˇsek v smeri Z osi predstavlja gravitacijski pospeˇsek zemlje. Zajeti podatki so nepregledni, zato smo jih najprej pretvorili in nato izrisali na graf, ki se nahaja desno od izpisa vrednosti (Slika 2.9). Graf prikazuje pospeˇske v smeri X in Y osi, omejen je na 10 m/s2.

Slika 2.9: Primer izpisa trenutnih pospeˇskov.

(29)

Diplomska naloga 13

2.2.5 Mikrofon in zunanja zvoˇ cna kartica

RPi nima direktnega zvoˇcnega vhoda, zato je potrebno zvok pripeljati po drugi poti. Na USB vhod smo priklopili zunanjo zvoˇcno kartico [42]. Upora- bili smo mikrofon kapsulo ki smo jo povezali na kabel s prikljuˇckom Jack [10].

Obstaja veˇc razliˇcnih 3.6 mm audio prikljuˇckov Jack (Slika 2.10). Povezali smo jih na naˇcin, prikazan na sliki 2.10 kot tretji od leve proti desni. Tega namreˇc podpira zvoˇcna kartica RPi.

Slika 2.10: Razliˇcni tipi prikljuˇckov Jack [31].

Za pravilno delovanje mikrofona smo uporabili 4-pinski prikljuˇcek Jack. Pri- kljuˇcili smo ga na zelo majhno mikrofonsko kapsulo viˇsine 2.7 mm in premera 6 mm (Slika 2.11).

Mikrofonska kapsula je tipalo, ki lahko zaznava zvok vse od frekvence 20 Hz do 16 kHz, kar je dovolj za snemanje zvoka v kabini vozila in prometa.

Ker mikrofona v ˇcasu preizkuˇsanja nismo imeli nikjer pritrjenega, smo nanj nataknili peno. Ta pena deluje kot filter nezaˇzelenega ˇsuma in nudi zaˇsˇcito proti tresljajem med voˇznjo (Slika 4.1).

(30)

Slika 2.11: Kapsula mikrofona in zunanja zvoˇcna kartica

Slika 2.12: Priklop mikrofona na Raspberry Pi.

2.2.6 Tipka za prekinitev in zaustavitev

Za prekinitev snemanja in zaustavitev mikroraˇcunalnika smo nanj priklopili tipko. Naredili smo jo sami iz dveh ˇziˇck in upora (Slika 2.13). Na RPi je priklopljena na GPIO prikljuˇcek GND in na enega izmed GPIO vhodov.

Vsak pritisk tipke zazna Python skripta.

(31)

Diplomska naloga 15

Slika 2.13: Tipka za prekinitev in zaustavitev [33].

2.3 Povezave prikljuˇ ckov GPIO

Tipala smo enega za drugim priklopili na RPi in preizkuˇsali njihovo delova- nje. Za delovanje uporabljajo razliˇcne vmesnike in protokole. Priklopili smo jih na ustrezne napajalne in komunikacijske GPIO prikljuˇcke. Povezovanje je bolj podrobno opisano v podpoglavju 2.2. Vsako tipalo smo priklopili na samostojne prikljuˇcke. Problem se je pojavil pri priklopu tipala GPS, tipala temperature in pospeˇskometra. Vsa tri tipala za napajanje uporabljajo 3.3V prikljuˇcek, RPi pa ima na voljo samo dva. V tem primeru si lahko tipala med seboj napajanje delijo. Tipalo GPS smo priklopili na samostojni napa- jalni prikljuˇcek, tipalo temperature in pospeˇskometer pa si prikljuˇcek delita.

Deljenje napajanja je prikazano na sliki 2.14 z rdeˇco in modro barvo, skupno napajanje je povezano na prvi GPIO prikljuˇcek (oznaka “1”). Pri deljenju napajanja ali uporabi tipal, ki zahtevajo veˇcji tok moramo paziti na preobre- menitev prikljuˇcka. Najveˇcji razpoloˇzljiv tok na 3.3V prikljuˇcku je 500mA, 5V prikljuˇcek pa je omejen na zmogljivost napajalnega adapterja. Tipala, ki bi presegala te omejitve, bi lahko priklopili na zunanje napajanje. V naˇsem sistemu to ni bilo potrebno.

2.4 Programska lupina Bash

Bash ali GNU Bash je lupina operacijskega sistema Unix in hkrati lahko tudi samostojni ukazni jezik [57]. Je brezplaˇcna programska oprema, ki je

(32)

Slika 2.14: Priklop tipal na prikljuˇcke GPIO.

bila izdelana leta 1989 in je ˇsiroko uporabljena kot prevzeta prijavna lupina.

Na voljo je veˇc distribucij te lupine, ki jih lahko uporabljamo na razliˇcnih operacijskih sistemih, kot so: Linux, Apple macOS in tudi Windows.

Bash lahko uporabljamo na dva naˇcina: izvajamo ukaze v terminalu ali pa napiˇsemo skripto, kateri dodelimo pravico izvajanja in jo izvajamo. V ter- minal vpiˇsemo ukaz, ki se izvede. S tem lahko imamo pregled nad direktoriji, datotekami, vsebino datotek, itd. Datoteke in direktorije lahko ustvarjamo, kopiramo, briˇsemo, itd. Na ta naˇcin smo preizkuˇsali delovanje tipal, nalaga- nje potrebnih knjiˇznic za delovanje in imeli nadzor nad datotekami, ki smo jih ustvarili (Slika 2.15).

Slika 2.15: Izpis pravic skripte Bash.

(33)

Diplomska naloga 17

2.5 Programski jezik Python

Python je visoko nivojski skriptni programski jezik, ki je objektno orientiran [52]. Je zelo hiter in berljiv, tako za pisanje kot izvajanje. Prviˇc je bil izdan leta 1991. Je enostaven jezik, in je po naˇsem mnenju eden boljˇsih zaˇcetniˇskih programskih jezikov. Primeren je za enostavne zaˇcetniˇske in tudi bolj kom- pleksne aplikacije. V njem je napisanih vsaj delno kar nekaj veˇcjih aplikacij, kot so: Youtube, Google, Netflix, itd. [23]. Programski jezik Python je zelo razˇsirjen in ga lahko uporabljamo skoraj v vseh operacijskih sistemih.

Za razˇsiritev funkcionalnosti enostavno prenesemo in uvozimo dodatne knjiˇznice. Paziti moramo le, da ne poimenujemo datoteke enako kot knjiˇznice.

Za razvijanje programske kode smo izbrali Python verzije 3.7.3.

Virtualenv je orodje narejeno za Python okolje [62]. Omogoˇca nam kre- iranje virtualnega okolja, Deluje kot navadna mapa, v katero shranjujemo vse datoteke in knjiˇznice aplikacije. Uporaba virtualnega okolja je zelo pri- poroˇcena, ˇce razvijamo veˇc kot eno aplikacijo [51]. Knjiˇznice so naloˇzene znotraj virtualnega okolja in niso dostopne navzven. Tako se izognemo kakrˇsnimkoli teˇzavam pri uporabi razliˇcnih verzij knjiˇznic med projekti.

OpenCV je odprtokodna knjiˇznica, ki vsebuje funkcije namenjene raˇcunal- niˇskem vidu [44]. Podprta je v jezikih C++, C, Python in Java. Deluje na operacijskih sistemih Windows, Linux, MacOS, iOS in Android. Izdana je bila leta 2000, z namenom uporabe raˇcunalniˇskega vida v realnem ˇcasu (Slika 2.16). Uporabili smo verzijo OpenCV 3.4.6.

Slika 2.16: Primer detekcije vozil z uporabo knjiˇznice OpenCV [26].

(34)

2.6 Povezovanje vezja s spajkanjem

Nekatera tipala za svoje delovanje potrebujejo dodaten upor, katerega smo povezali s pomoˇcjo spajkalnika. To je orodje, ki nam omogoˇca, da s taljeno kovino poveˇzemo razliˇcne kose kovin, kar je idealno za povezovanje upora in ˇzice (Slika 2.17). S spajkalnikom segrejemo oba kosa kovine, stalimo in nanesemo cin. Ko se cin ohladi, sta kosa uspeˇsno spojena skupaj. Celoten postopek se imenuje spajkanje ali “lotanje” [14, 1, 13]. Spajkalnik je name- njen za bolj natanˇcno delo, za silo je uporaben tudi manjˇsi plinski gorilnik.

Slika 2.17: Spajkalnik, cin in spajkalna pasta.

(35)

Poglavje 3

Realizacija prototipnega sistema

V tem poglavju so opisani glavni sklopi realizacije sistema. Najprej smo pripravili RPi za delo, priklopili in preizkusili smo tipala, nato smo dodali ˇse programsko kodo. Napisali smo osnovno zanko za snemanje, prikaz in shranjevanje. Kasneje pa smo dodali ˇse zaznavanje vozil, izrednih dogodkov, ter prikaz v ˇzivo.

3.1 Priklop in preizkus tipal

Na RPi smo priklopili napajanje, miˇsko, tipkovnico, kabel Ethernet in se z kablom micro HDMI povezali na monitor. Medtem smo na kartico micro SD namestili operacijski sistem Rasbian s pomoˇcjo programa balenaEtcher [18].

Kartico smo vstavili v RPi in vkljuˇcili napajanje.

Za delovanje je bilo potrebno spremeniti nekaj nastavitev operacijskega sistema. Razˇsirili smo velikost kartice micro SD na maksimalno in popravili nastavitev overscan, ki naredi tanek rob okrog slike zaslona. Za oddaljen dostop in komunikacijo s tipali smo omogoˇcili prikljuˇcke za kamero, serijske vmesnike in protokole SSH, VNC, SPI, I2C in 1-Wire.

Poveˇcali smo velikost grafiˇcnega pomnilnika, katerega si RPi deli s po- 19

(36)

mnilnikom procesorja. Pomnilnik centralne procesne enote se uporablja za potrebe operacijskega sistema. Pomnilnik dodeljen grafiˇcno procesni enoti pa za prikaz slike na zaslon, izvajanje 3D operacij, kodiranje in dekodiranje ter uporabo kamere.

Za oddaljen dostop smo nastavili statiˇcni naslov IP. Poveˇzemo se lahko preko terminala s programom PuTTY z uporabo protokola SSH [20]. Na- mesto tega smo za oddaljen dostop uporabili program VNC Viewer (Slika 3.1). Odklopili smo miˇsko, tipkovnico in prikljuˇcek HDMI, ter se povezali na RPi. Nastavili smo loˇcljivost slike, ker preko oddaljenega dostopa ni moˇzno spremeniti ali vklopiti celozaslonski naˇcin [60].

Slika 3.1: Prikaz oddaljenega namizja v programu VNC Viewer [21].

V primeru da nimamo nastavljenega statiˇcnega naslova IP in fiziˇcnega dostopa do RPi, lahko naslov IP najdemo s pomoˇcjo programa Angry IP Scanner [17]. Program poiˇsˇce vse naprave v domaˇcem omreˇzju. V polju IP in Hostname najdemo RPi pod imenom raspberrypi.

Po vseh osnovnih nastavitvah smo se lotili nalaganja knjiˇznic. Najprej smo posodobili operacijski sistem. S pomoˇcjo Python knjiˇznice virtualenv smo naloˇzili in ustvarili virtualno okolje. Vanj smo najprej naloˇzili knjiˇznico OpenCV. Te knjiˇznice ni mogoˇce enostavno naloˇziti, potrebno jo je prenesti in prevesti. Ta postopek je na RPi potekal malo veˇc kot dve uri.

(37)

Diplomska naloga 21 Ko je bilo pripravljeno delovno okolje, smo ustvarili varnostno kopijo sis- tema. To smo naredili s programom Win32 Disk Imager. Ustvarili smo sliko celotne micro SD kartice [22]. Varnostna kopija je bila velikosti celotne kar- tice, ˇceprav je bila zapolnjena le ena desetina prostora. Zato smo se odloˇcili, da zmanjˇsamo velikost kartice in ponovno naredimo varnostno kopijo. To smo naredili z Linux programom GParted [19]. Micro SD kartico smo zmanjˇsali na malo veˇc kot trenutno zapolnjeno in naredili sliko. Slika varnostne kopije se je zmanjˇsala na velikost zapolnjene kartice. Velikost kartice micro SD smo v nastavitvah razˇsirili nazaj na celotno velikost kartice.

S pripravljenim delovnim okoljem in narejeno varnostno kopijo celotnega sistema je bil RPi pripravljen na priklop zunanjih tipal. Za vsako tipalo smo najprej poiskali dokumentacijo in navodila za uporabo. Izvedeli smo kakˇsno napajanje potrebuje, katere protokole uporablja za komunikacijo in katere knjiˇznice so potrebne za delovanje. Tipala smo na prikljuˇcke GPIO povezali z ˇzicami.

Tipalu za merjenje temperature in tipki je bilo potrebno za pravilno de- lovanje dodati upor. Mikrofon smo morali ˇse sestaviti. Mikrofonsko kapsulo smo povezali s kablom, ki ima ˇstiri ˇziˇcne povezave: levi in desni kanal kot izhoda, mikrofon kot vhod, ter niˇcelni potencial (GND). Pri povezavi mi- krofona, obeh izhodnih povezav nismo potrebovali, zato smo jih odstranili tako, da med njima ne pride do stika. Kapsula ima dva priklopa, ki smo jih s spajkalnikom povezali na kabla, ki vodita do povezav MIC in GND (Slika 3.2).

3.2 Glavna skripta Bash

Skripto smo napisali v navadni beleˇznici. Dodali smo ji konˇcnico .sh. Da se skripta lahko izvaja, smo ji z ukazomchmod u+x exe.shdodelili to pravico.

Z ukazomls -l exe.shsmo preverili, ˇce se je pravica uspeˇsno dodala. Nato smo z ukazom: ./exe.sh preizkuˇsali delovanje skripte.

V tem koraku smo ˇzeleli, da se skripta zaˇcne izvajati ob zagonu operacij-

(38)

Slika 3.2: Povezava kapsule mikrofona na kabel z Jack prikljuˇckom.

skega sistema. Datoteko autostart smo z ukazom

sudo nano .config/lxsession/LXDE-pi/autostart dopolnili [56] (Slika 3.3).

Slika 3.3: Vsebina datoteke autostart.

Obe omenjeni skripti sta sestavljeni iz ukazov Bash. Znak & na koncu ukaza predstavlja izvedbo ukaza v ozadju. ˇCe tega znaka ni, skripta poˇcaka z izvajanjem naslednjega ukaza.

V glavni skripti (Slika 3.4) smo se najprej z ukazom: cd Desktoppostavili v pravi direktorij in odprli virtualno okolje. Pognali smo program v Pythonu z ukazom python3 car_camera.py, brez znaka &. Ko se program zakljuˇci, glavna skripta zdruˇzi zvoˇcne in video datoteke v skupne. Zvok in video smo

(39)

Diplomska naloga 23 zdruˇzili s pomoˇcjo knjiˇznice FFmpeg [8]. Ukaz zdruˇzevanja je podrobneje razloˇzen v podpoglavju 3.7.

Slika 3.4: Prvi del vsebine glavne skripte Bash.

3.3 Zajem slike s kamere

Podatke s kamere lahko pridobimo na nekaj razliˇcnih naˇcinov. Odloˇcili smo se za uporabo knjiˇznice OpenCV, katero smo kasneje uporabili tudi za za- znavanje vozil [50].

Kameri smo nastavili parametre kot so ˇsirina in viˇsina zajete slike, ter ˇstevilo sliˇcic, ki jih zajame na sekundo. Ti parametri so prilagojeni upora- bljeni strojni opremi in napisani programski kodi. Branje sliˇcic in shranjeva- nje videoposnetka poteka v neskonˇcni zanki, ki se prekine ob pritisku tipke za zakljuˇcek snemanja voˇznje [53] (Slika 3.5). Videoposnetek se shrani v for- matu.avi, katerega ni potrebno pretvoriti za predvajanje. Videoposnetek je razrezan na odseke dolge 5 minut, predvsem zaradi konˇcne velikosti datoteke.

3.4 Zaznavanje vozil

Zaznavanje vozil omogoˇca funkcija CascadeClassifier iz knjiˇznice OpenCV [64, 46, 66]. Vozila zaznava na podlagi modela, ki je lahko vnaprej nauˇcen, ali pa ga izdelamo sami. Zaradi kompleksnosti izdelave lastnega modela, smo

(40)

Slika 3.5: Programska koda snemalne zanke.

za zaznavanje uporabili vnaprej nauˇcen model cars.xml. Model je nauˇcen na 526 slikah vozil, zajetih na avtocestah Kalifornije.

Iz kamere vsako sekundo pridobimo 12 sliˇcic. Vsako zajeto sliko poˇsljemo funkciji za zaznavanje, ˇse pred tem pa jo ustrezno pripravimo. Kamera vrne sliko velikosti 640 krat 480 toˇck. Funkcija za zaznavanje ne potrebuje ve- like slike, dovolj je ˇze slika velikosti 300 krat 300 toˇck. Originalno sliko zato zmanjˇsamo in izreˇzemo. Na sliki 3.6 je z rdeˇcim pravokotnikom oznaˇceno podroˇcje zaznavanja, z zelenim pravokotnikom pa zaznano vozilo. Za zazna- vanje sliko pretvorimo v ˇcrno belo. S funkcijoequalizeHistpopravimo ˇcrno beli histogram (raztegnemo vrednosti, ˇcez celoten histogram) in ga s funkcijo GaussianBlur zameglimo. Za zameglitev smo uporabili matriko 3 krat 3.

Funkcija za zaznavanje deluje tako, da jo uporabimo na regiji slike (enake velikosti, kot nauˇcen model). Vrne “1”, ˇce obstaja verjetnost, da je na re- giji zaznan iskani objekt in “0”, ˇce ni. Funkcijo premikamo po vseh regijah, na katerih ˇzelimo preveriti, ˇce obstaja iskani objekt. Funkciji lahko spremi- njamo velikost zaznavane regije, tako lahko iˇsˇcemo iskani objekt vseh veliko- stih. Parameter scale doloˇci korak, ki poveˇcuje velikost iskanega podroˇcja.

(41)

Diplomska naloga 25

Slika 3.6: Velikost podroˇcja zaznavanja in zaznano vozilo.

Omejimo lahko maksimalno in minimalno velikost objekta. Bolj kot omejimo parametre funkcije in velikost zaznavanja, bolj pohitrimo delovanje funkcije zaznavanja.

Na zaˇcetku izdelave smo nastavili parametra scaleFactor na vrednost 1.1inminNeighboursna2. Ta dva parametra doloˇcita za koliko se zmanjˇsa velikost slike na vsak korak zaznavanja in ˇstevilo sosednjih kandidatov po- trebnih, da je iskan objekt zaznan. Ostalih parametrov nismo spreminjali, tako so se pri klicu funkcije uporabili prevzete vrednosti. V ˇcasu preizkuˇsanja smo parametre spreminjali in uporabili nekaj novih. Konˇcne parametre, ki so nam vraˇcali najboljˇse rezultate smo nastavili na vrednosti:

• scaleFactor=1.03,

• minNeighbors=5,

(42)

• minSize=(32, 32)in

• maxSize=(128, 128).

Na hitrost delovanja pa je najbolj vplivala velikost vhodne slike, ter para- meterscaleFactor. Konˇcna velikost vhodne slike je bila 300 krat 300 toˇck.

Zaznavanje smo omejili na vozila velikosti od 32 krat 32 toˇck do 128 krat 128 toˇck. Velikost iskanega podroˇcja smo veˇcali s faktorjem 1.03 in omejili ˇstevilo sosednjih kandidatov na najmanj 5. Objekti na sliki, ki so upoˇstevali te omejitve so bili oznaˇceni kot zaznani.

3.5 Zaznavanje izrednih dogodkov s pomoˇ cjo tipal

Komunikacija s tipali poteka z razliˇcnimi hitrostmi. Kamera poˇslje 12 sliˇcic na sekundo, medtem ko branje temperaturnega tipala traja lahko tudi do eno sekundo. Zaradi tega razloga, smo za branje podatkov s tipal uporabili programske niti. Definirali smo globalne spremenljivke vseh vrednosti, ki jih vraˇcajo tipala. Nastavili smo privzeto vrednost spremenljivk, ki se izpiˇse, ˇce tipalo ni dosegljivo, ni priklopljeno ali potrebuje veˇc ˇcasa, da zaˇcne delovati (npr. GPS ne vraˇca doloˇcenih vrednosti dokler ne doloˇci pozicije).

Za vsako tipalo smo pognali nit, ki se zakljuˇci ob prekinitvi snemanja.

Uvozili smo knjiˇznico potrebno za delovanje in v neskonˇcni zanki popravljali vrednosti globalnih spremenljivk (Slika 3.7). Tipala za komunikacijo upora- bljajo razliˇcne protokole in vmesnike. ˇCe imamo veˇc enakih tipal, jih med seboj loˇcimo po serijski ˇstevilki.

Izredne dogodke smo zaznavali s pospeˇskometrom. Merili smo pospeˇske v smeri X, Y in Z osi. V smeri X osi smo zaznavali prekomerno pospeˇsevanje in zaviranje, V smeri Y osi, ˇce je vozilo prevrnjeno na bok in v smeri Z osi, ˇce je vozilo prevrnjeno na streho.

Da je dogodek oznaˇcen kot izredni, mora imeti zaznan pospeˇsek veˇcji od naprej doloˇcenega. Prav tako mora pospeˇsek trajati dlje ˇcasa. Te omejitve

(43)

Diplomska naloga 27

Slika 3.7: Koda uporabe niti.

smo nastavili po preizkuˇsanju pospeˇsevanja in zaviranja vozila. Na podlagi teh omejitev, smo nastavili pogoje za zaznavanje prekomernega pospeˇsevanja in zaviranja. Pogoje za zaznavanje prevrnjenega vozila na bok ali streho, pa smo pridobili z obraˇcanjem pospeˇskometra. Pospeˇskometer vraˇca podatke 10 krat na sekundo. Pogoj za obrnjeno vozilo na streho je pospeˇsek v smeri Z osi manjˇsi od -7 veˇc kot 2 sekundi. Pogoj za obrnjeno vozilo na bok je pospeˇsek v smeri Y osi manjˇsi od -7 ali veˇcji od 7 veˇc kot 0,5 sekunde. Pogoj za prekomerno pospeˇsevanje ali zaviranje je pospeˇsek v smeri X osi manjˇsi od -5 ali veˇcji od 5 veˇc kot 0,5 sekunde. Zaznan izredni dogodek se izpiˇse na zajeti sliki in ustvari se zaznamek. Primer je prikazan na sliki 3.8, vzrok tega zaznamka je pojemek v smeri X osi. Zaznamek je pravzaprav datoteka, ki z vsebino opisuje konkreten dogodek. Zaznamek ustvarimo z ukazom:

Path(pot_do_datoteke/ime_datoteke.koncnica).touch().

Ta ukaz je funkcija knjiˇznice Path v Pythonu. Ime datoteke je sestavljeno iz imena video posnetka in ˇcasa, ko je bil zaznan izredni dogodek. Zaznamek se lahko ustvari vsakih 10 sekund.

3.6 Vizualni prikaz podatkov

Zajete podatke s tipal prikazujemo na videoposnetku. Kamera zajame ˇsirok del slike, v levem spodnjem kotu je zajeto ogledalo in del armaturne ploˇsˇce vozila. Ta del je neuporaben in hkrati idealen za izpis.

(44)

Slika 3.8: Prikaz zaznanega dogodka prekomernega zaviranja.

Da bi bil izpis podatkov bolj viden, smo zatemnili pravokotnik na le- vem spodnjem delu slike. Zajete podatke smo izpisali v obliki teksta. Za boljˇso preglednost in uporabnost smo podatke s pospeˇskometra izrisali v obliki grafa. Izrisali smo koordinatni sistem in z rdeˇcim krogom predstavili trenutni pospeˇsek v X in Y osi (Slika 3.9).

Tekst in koordinatni sistem imata belo barvo, krogec in tekst izrednih do- godkov pa rdeˇco. Barve, velikosti in fonti so nastavljeni tako, da je doseˇzena dobra berljivost.

Slika 3.9: Izpisani podatki s tipal (rdeˇc pravokotnik).

(45)

Diplomska naloga 29

3.7 Zajem zvoka

Zvok smo s pomoˇcjo mikrofona snemali hkrati z ostalimi meritvami tipal.

Knjiˇznica OpenCV ne omogoˇca snemanja zvoka in video posnetka hkrati.

Zaradi tega smo zvok snemali vzporedno v lastno datoteko s konˇcnico .wav.

Zvoˇcne in video datoteke smo po konˇcanem snemanju zdruˇzili v skupno datoteko [63]. Za zdruˇzitev smo uporabili knjiˇznico FFmpeg. V Bash skripti smo se sprehodili ˇcez seznam ustvarjenih zvoˇcnih in video datotek, ter jih zdruˇzili z ukazom:

ffmpeg -i video.avi -i audio.wav -c copy audio_in_video.avi.

Video posnetek smo shranili v formatu.avi. Ta format ne potrebuje nobene pretvorbe za predvajanje videoposnetka in ima podprt zvoˇcni kanal. Tako smo lahko enostavno prekopirali in zdruˇzili loˇceni datoteki v enotni konˇcni posnetek.

3.8 Shranjevanje ustvarjenih datotek

V ˇcasu snemanja smo ustvarili zvoˇcne, video, na koncu ˇse zdruˇzene datoteke, ter zaznamke, ki kaˇzejo na izredne dogodke. Video posnetki so zaradi omeji- tve velikosti razrezani na 5 minutne odseke. Datoteke smo shranili na namizje v mapoVIDEO. Za vsako voˇznjo smo ustvarili nov direktorij z naslednjo zapo- redno ˇstevilko. Direktorije smo ustvarjali v glavnem Python programu s kli- cem Bash funkcije. Uporabili smo ukazos.mkdir(pot_do_mape/ime_mape), ki je del knjiˇznice os.

3.9 Oddaljen dostop do namizja

Do namizja RPi lahko dostopamo na veˇc naˇcinov. Z uporabo miˇske, tipkov- nice in zaslona se poveˇzemo direktno, ali pa preko oddaljenega dostopa. Za dostop preko omreˇzja lahko uporabimo protokol SSH, ki do RPi dostopa s ter- minalom, ali VNC, ki omogoˇca dostop do grafiˇcnega vmesnika. Za oddaljen

(46)

dostop moramo to funkcionalnost najprej omogoˇciti v nastavitvah operacij- skega sistema.

Do namizja RPi smo dostopali z uporabo protokola VNC v ˇcasu razvoja aplikacije in kasneje za spremljanje podatkov v ˇzivo na mobilni napravi. Na RPi je nameˇsˇcen VNC Server, ki omogoˇca oddaljen dostop znotraj domaˇcega omreˇzja. Na naprave, s katerimi ˇzelimo dostopati do namizja, pa je potrebno naloˇziti program VNC Viewer. Za dostop potrebujemo naslov IP in upo- rabniˇski raˇcun RPi.

Naslov IP je privzeto nastavljen kot dinamiˇcni. Zaradi laˇzje uporabe oddaljenega dostopa, smo nastavili statiˇcni naslov IP. Bash ukaz ifconfig nam omogoˇca prikaz trenutnega naslova IP. Z ukazom:

sudo nano /etc/dhcpcd.conf

nastavimo statiˇcni naslov IP za vmesnika eth0in wlan0 (ˇziˇcno in brezˇziˇcno omreˇzje) [7] (Slika 3.10).

Slika 3.10: Nastavitev statiˇcnega IP-ja.

Za vmesniketh0 smo nastavili naslov IP192.168.64.25/24, ki je velja- ven in nezaseden naslov IP v naˇsem domaˇcem omreˇzju. Za vmesnik wlan0 pa smo nastavili192.168.43.25/24, ki je veljaven in nezaseden naslov IP v omreˇzju dostopne toˇcke Android.

Povezavo z mobilno napravo smo vzpostavili z vklopom dostopne toˇcke.

Na RPi pa smo z ukazom:

(47)

Diplomska naloga 31 sudo nano /etc/wpa_supplicant/_wpa_supplicant.conf

dodali nastavitve omreˇzja dostopne toˇcke [55] (Slika 3.11).

Slika 3.11: Nastavitve brezˇziˇcnega omreˇzja.

Tako smo omogoˇcili, samodejno povezavo RPi z mobilno dostopno toˇcko takoj, ko je ta dostopna. Za oddaljen dostop do namizja odpremo mobilno aplikacijo VNC Viewer in se prijavimo (Slika 3.12). S tem prikaˇzemo delo- vanje sistema tudi na mobilni napravi.

(48)

Slika 3.12: Prikaz namizja na mobilni napravi.

(49)

Poglavje 4

Vgradnja in preizkus sistema v vozilu

Ob zakljuˇcku izdelave smo prototip vgradili ˇse v vozilo. Za vgradnjo smo morali izdelati dva nosilca. Nosilec za kamero ter nosilec za pospeˇskometer in RPi. Kamero smo v vozilo namestili nad vzvratnim ogledalom, zataknjeno za srednji senˇcnik. RPi in ostala tipala pa smo v ˇcasu preizkuˇsanja namestili na armaturno ploˇsˇco v vozilu. Pospeˇskometer mora biti za pravilno delovanje poravnan z vozilom in se med snemanjem ne sme premikati. V ta namen smo izdelali malo teˇzji nosilec, ki je viden na sliki 4.1; ta prikazuje celotni prototipni sistem pred vgradnjo.

4.1 Vgradnja in priprava sistema

Nosilec za kamero smo izdelali iz kosa 10 cm krat 3 cm in 1 mm debelega aluminija. Aluminij smo ukrivili na obliko, ki se prilagodi senˇcniku. Nosilec med voˇznjo stabilizira kamero.

Nosilec za RPi je velikosti 8,5 cm krat 15 cm in 1 mm debeline. Izrezali smo ga iz kosa zadnjega nosilca starega televizorja (Slika 4.2). Na sliki je z modro barvo oznaˇcena lokacija RPi, z zeleno pa lokacija pospeˇskometra.

Na izrezano ploˇsˇco smo oznaˇcili postavitev RPi in pospeˇskometra. Ploˇsˇco 33

(50)

Slika 4.1: Prikaz prototipnega sistema pred vgradnjo.

smo prevrtali na oznaˇcenih mestih. Izbrali smo nosilne vijake, katerim smo z brusnim papirjem odstranili navoj, saj je bil preˇsirok. ˇZe narejene pri- trdilne luknje na RPi in pospeˇskometru so ˇsirine 2 mm. S ploˇsˇce smo z brusnim papirjem odstranili barvo in zbrusili vse ostre robove. Vijake smo vstavili v luknje v ploˇsˇci ter jih pritrdili. Za pritrditev smo namesto spaj- kalnika uporabili manjˇsi plinski gorilnik, s katerim smo segreli povrˇsino. Na segreto povrˇsino smo nanesli cin, s tem pritrdili nosilne vijake. Nosilec je dovolj teˇzak, da pospeˇskometer med voˇznjo ostane stacionaren in zagotovi kakovostne podatke.

(51)

Diplomska naloga 35

Slika 4.2: Izdelava nosilcev za RPi, pospeˇskometer in kamero.

4.2 Preizkus sistema

Uporaba vgrajenega prototipnega sistema je podobna kot pri drugih pri- merljivih sistemih za snemanje prometa. Nosilec, na katerega je pritrjen RPi, postavimo na ravno povrˇsino v vozilo in kamero zataknemo za srednji senˇcnik. RPi poveˇzemo na 12V USB avto polnilnik, ki samodejno zaˇzene RPi in snemanje [3].

Od priklopa do zaˇcetka snemanja, je potrebno poˇcakati zagon operacij- skega sistema in glavne skripte. To v povpreˇcju traja 15 do 20 sekund. V ˇcasu snemanja lahko zajete podatke spremljamo v ˇzivo. Z mobilno napravo se poveˇzemo preko brezˇziˇcnega omreˇzja.

Ko se pripeljemo na cilj, pritisnemo na tipko za prekinitev snemanja.

Skripta preneha s snemanjem, zdruˇzi zvoˇcne in video posnetke, ter izklopi RPi. Ta postopek traja pribliˇzno 5 sekund za zdruˇzitev, ter 10 sekund za izklop. Napajanje lahko izklopimo, ko na RPi-ju neha utripati zelena led luˇcka.

Velik del diplomske naloge smo lahko izdelali pred raˇcunalnikom ali v delavnici. Preizkuˇsanje delovanja tipala GPS in zaznavanja vozil pa smo preizkuˇsali zunaj ali v vozilu. GPS smo uporabljali brez dodatne antene. V hiˇsi je bil signal preˇsibek, zato smo tipalo odnesli ven in tako preizkuˇsali nje- govo delovanje. Ko smo izdelali osnovno delovanje sistema, smo ga namestili na nosilce in potem vse skupaj vgradili v vozilo. Sistem smo priklopili na

(52)

napajanje in priˇceli s snemanjem. Opravili smo pribliˇzno deset voˇzenj, pri ka- terih smo preizkuˇsali delovanje posameznih tipal, in sistema v celoti. Voˇznje smo opravili v razliˇcnih vremenskih pogojih, tako smo pokrili ˇcim veˇc preiz- kusnih scenarijev. Snemanje in zaznavanje smo preizkuˇsali, ko je bilo zunaj sonˇcno, oblaˇcno, deˇzevno, mrak in tema. Po konˇcani voˇznji smo pregledali posnetke, odpravili odkrite napake in popravili parametre zaznavanja.

4.3 Izboljˇ save na podlagi izkuˇ senj

Najveˇc izzivov smo imeli pri zaznavanju vozil v prometu. Model je dobro zaznaval vozila s sprednje in zadnje strani, ki so bila osvetljena. Teˇzave pa je imel pri vozilih, ki so bila v senci, mraku ali temi. Nekaj teˇzav nam je povzroˇcilo tudi napaˇcno zaznavanje, npr. sence razliˇcnih objektov na cesti.

Napaˇcno zaznavanje nam je uspelo zmanjˇsati, a ne popolnoma odpraviti.

Zaˇcetni parametri za zaznavanje vozil v prometu so nam vraˇcali priˇcakovane rezultate. Ker uporabljeni model ni bil narejen za tako vrsto zaznavanja, nismo priˇcakovali visoke natanˇcnosti. Model je zaznaval veliko napaˇcnih oziroma laˇzno pozitivnih (ang. False positive) primerov. Laˇzno pozitivne primere je zaznaval izven voziˇsˇca, v odsevih, temnih predelih in sencah, ki so padala na voziˇsˇce. Model je zaznal manj kot polovico vozil pravilno. Za boljˇse rezultate zaznavanja, smo zmanjˇsali velikost slike, jo pretvorili v ˇcrno belo in uporabili nekaj filtrov za izboljˇsavo kakovosti slike. Tekom preizkuˇsanja smo za izboljˇsanje zaznavanja popravili parametre klica funkcije za zaznavanje.

Skoraj smo odpravili laˇzno pozitivne primere, razen senc na cestiˇsˇcu. Zazna- vanje vozil nam je uspelo izboljˇsati iz 50 % na pribliˇzno 75 % toˇcnost. S tem rezultatom smo se zadovoljili glede na uporabljen model.

Zaznavanje izrednih dogodkov smo najprej preizkuˇsali s hitrim premika- njem pospeˇskometra. V vozilu pa smo preizkuˇsali le prekomerno zaviranje.

Za ta preizkus smo izbrali ne prometno povrˇsino. Najprej smo preverili, ˇce je izvedba tega preizkusa povsem varna. Posnetek preizkusa nam je dal do- ber vpogled v zaznavanje izrednih dogodkov. Na podlagi videoposnetka in

(53)

Diplomska naloga 37 podatkov s tipal smo ustrezno nastavili parametre za zaznavanje izrednih dogodkov. Pogoji zaznavanja so podrobno opisani v podpoglavju 3.5.

(54)
(55)

Poglavje 5

Sklepne ugotovitve

V diplomskem delu smo razvili in implementirali avtonomni sistem, ki zajema sliko in zvok, zaznava druga vozila in shranjuje podatke s tipal med voˇznjo.

Na mikroraˇcunalnik Raspberry Pi smo priklopili kamero. Poleg video po- snetka smo snemali zvok, zajemali temperaturo v kabini, trenutno lokacijo vozila in s pomoˇcjo pospeˇskometra zaznavali izredne dogodke. Zajete po- datke smo vkljuˇcili v zajeto sliko in jih uporabnik lahko spremlja v ˇzivo, ali pa si jih ogleda kot posnetke kasneje. Izredni dogodki so shranjeni kot zaznamki, ki kaˇzejo na ˇcas zaznanega dogodka v videoposnetku. Posnetek preizkusne voˇznje je v celoti dostopen na tej povezavi [40].

5.1 Praktiˇ cne izkuˇ snje

Konˇcni prototip je najbolj podoben tipiˇcni avto kameri. Avto kamere sne- majo video in zvoˇcni posnetek, lokacijo, hitrost, ter zaznavajo izredne do- godke. Naˇs sistem pa omogoˇca ˇse prikaz zajetih podatkov v ˇzivo na mobilni napravi, ter zaznavanje vozil v prometu s pomoˇcjo raˇcunalniˇskega vida. Sis- tem je podoben tudi vgrajenim avto kameram, ki so uporabljene kot varnostni sistemi vozila. Tipala v vozilu zaznavajo izredne dogodke in se nanje odzo- vejo, npr. sistem za samodejno zaviranje. Naˇs sistem se na izredne dogodke ne odzove, naredi le zaznamek, da jih kasneje laˇzje najdemo in analiziramo.

39

(56)

Pri izdelavi in preizkuˇsanju sistema smo pridobili veliko novega znanja.

Delo z RPi in tipali smo se prviˇc spoznali pri izdelavi diplomskega dela. Pro- gramska jezika Python in Bash pa sta nam znana ˇze od prej. V procesu izdelave smo spoznali omejitve programske in strojne opreme. Zaradi omeji- tev smo konˇcni prototip prilagodili uporabljeni strojni in programski opremi.

Sprva smo priˇcakovali shranjevanje video posnetka resolucije 1920 krat 1080 toˇck pri 30 sliˇcicah na sekundo, ter zaznavanje vozil, peˇscev, kolesarjev, itd.

Loˇcljivost smo zniˇzali na 640 krat 480 toˇck pri 12 sliˇcicah na sekundo. Za- znavanje pa omejili samo na vozila. RPi in programska koda nista dovolj zmogljivi in optimizirani, da bi lahko dosegli naˇsa priˇcakovanja. Zaznavanje pa je zelo zahtevna operacija na tako majhnem raˇcunalniku.

Sistem ˇze v obstojeˇcem stanju nudi zanimivo funkcionalnost, vendar je do konˇcne oblike potrebnega ˇse nekaj nadaljnjega razvoja. Raˇcunalniˇski vid za najuˇcinkovitejˇse zaznavanje potrebuje model, ki je bil nauˇcen na uporabljeni strojni opremi. Tako lahko model nauˇcimo na vsemu ˇsumu, ki ga zajame kamera, npr. ˇzarek sonca, sence, kapljice deˇzja, odsevi, itd. Uspeˇsnost za- znavanja je odvisna od:

• kakovosti zajete slike,

• uˇcinkovite priprave zajete slike,

• uporabljenega modela in

• prilagojenih parametrov zaznavanja.

Primer zaznavanja je bolj podrobno opisan v podpoglavju 3.4.

Problema zaznavanja se je odliˇcno lotilo podjetje Tesla, ki je v svoja vo- zila vgradilo kamere in prepustila uporabnikom, da pridobijo videoposnetke voˇznje. Na podlagi teh posnetkov so nauˇcili model za zaznavanje objektov v prometu. V vozilo je vgrajenih veˇc kamer in tipal, ter varnostnih elemen- tov, ki zagotovijo, da v primeru okvare enega sistema to nalogo prevzame drug. Tako se zagotavlja nemoteno delovanje celotnega sistema, saj vozila omogoˇcajo avtonomno voˇznjo.

(57)

Diplomska naloga 41 Naˇs sistem s konˇcno verzijo zaznavanja vozil ni namenjen avtonomni voˇznji. Zaznavanje je manj natanˇcno in zanesljivo, pogosto ne zazna vseh objektov na cestiˇsˇcu. V primerjavi z naˇsim sistemom ima Tesla osem kamer, ki zajemajo dogajanje vse okrog vozila. Skupno imata le glavno sprednjo kamero s ˇsirokokotno leˇco. Za zaznavanje objektov na voziˇsˇcu Tesla poleg ka- mer uporablja veˇc razliˇcnih tipal. Razliˇcnost in veˇcje ˇstevilo tipal omogoˇcata veˇcjo natanˇcnost zaznavanja v izrednih pogojih, kot so moˇcno deˇzevje, megla, prah, itd [35].

RPi za svoje delovanje pri sobni temperaturi in vsakodnevnih opravilih ne potrebuje dodatnega hlajenja. Vgrajen v vozilo, pa je zelo hitro dosegel maksimalno temperaturo [48]. V tem primeru RPi zniˇza hitrost centralne procesne enote in tako upoˇcasni svoje delovanje. Vozilo lahko doseˇze ekstre- mne temperature, zato bi uporabo aktivnega hlajenja priporoˇcali (hladilna rebra ter ventilator).

Za priklop tipal na RPi smo uporabili preizkusne povezovalne kable. Ka- bli so enostavni za priklop tipal s katerimi koli prikljuˇcki in odliˇcni za pre- izkuˇsanje delovanja. Za konˇcni produkt pa bi jih zamenjali z boljˇsimi kabli in povezavami. Te bi trdno povezali med seboj s pomoˇcjo spajkalnika. Med preizkuˇsanjem je namreˇc kdaj kakˇsno tipalo tudi izgubilo stik in ni vraˇcalo podatkov. Te probleme smo sproti odpravljali.

5.2 Perspektiva

Sistem bo ostal odprtokoden, da si ga lahko uporabnik prilagodi svojim po- trebam. Uporabnik bi lahko sistem spremenil, popravil, dodal nova tipala in funkcionalnosti. S pospeˇskometrom in malo raˇcunanja, lahko zaznavamo tudi naklon vozila. To bi posebej prav priˇslo pri voˇznji izven urejenih cestiˇsˇc (Slika 5.1). Na taki voˇznji bi lahko izvozili podatke iz GPS tipala, katere bi kasneje uvozili na zemljevid. Tako bi lahko bolj nazorno prikazali prevoˇzeno pot in jo delili s prijatelji.

Nosilec za RPi in tipala smo hoteli izdelati iz plastike. Naredili bi model,

(58)

Slika 5.1: Prikaz naklona vozila [30].

katerega bi natisnili na 3-D tiskalnik. V ˇcasu izdelave diplomskega dela in karantene pa je bila Fakulteta za Raˇcunalniˇstvo in Informatiko nedostopna.

Trenutni prototip bi nadgradili z namestitvijo aktivnega hlajenja in bo- lje povezali tipala. Dodali bi led luˇcke (indikator, ˇce sistem snema ali je izkljuˇcen), zvoˇcnik (predvaja zvoˇcni signal, ko je zaznan izredni dogodek), GPS anteno in povezavo RPi z avtomobilom preko OBD-II prikljuˇcka [47].

Prikljuˇcek OBD-II je vgrajen v skoraj vseh novejˇsih vozilih od leta 1996.

Namenjen je diagnostiki vozil, lahko pa ga uporabimo tudi za zajem in pri- kaz podatkov iz vseh tipal vgrajenih v vozilu. Z vozilom se lahko poveˇzemo brezˇziˇcno z uporabo tehnologije Bluetooth, ali ˇziˇcno s kablom USB [16].

Odvisno od zahtev, pa bi lahko sistem nadgradili tudi v drugi smeri.

Uporabili bi namensko kamero, ki omogoˇca snemanje in shranjevanje video in zvoˇcnega posnetka. Za zaznavanje bi posnetek v realnem ˇcasu prenesel na prenosni raˇcunalnik, ki je bolj zmogljiv od RPi. Bolje bi lahko izrabil uporabljeno strojno opremo, saj pri raˇcunalniˇskem vidu lahko za pohitritev uporabimo grafiˇcni procesor na namenski grafiˇcni kartici in ne samo centralne procesne enote. V primeru da lahko zaznavanje izvedemo kasneje, bi upo- rabili namizni ali temu namenjen raˇcunalnik, ki je v veliko primerih ˇse bolj zmogljiv od prenosnega raˇcunalnika. Program snemanja bi lahko pohitril s programskim jezikom C in uporabo loˇcenih niti za zajem slike s kamere, raˇcunalniˇski vid, prikaz in shranjevanje videoposnetka [4].

V ˇcasu preizkuˇsanja delovanja sistema smo bili skoraj udeleˇzeni v prome- tni nesreˇci. Voznik motornega vozila nam je zaprl pot, a smo se mu uspeˇsno

(59)

Diplomska naloga 43 izognili [39]. Video posnetek bi v takih primerih bil zelo uporaben. Na podlagi posnetka bi lahko dokazali potek vsakega dogodka.

5.3 Zakljuˇ cek

V diplomski nalogi smo opisali zasnovo in izdelavo delujoˇcega prototipnega sistema, ki zajema sliko in zvok, zaznava druga vozila in izredne dogodke ter shranjuje podatke s tipal med voˇznjo.

V procesu izdelave diplomskega dela nas je presenetila enostavnost dela s tipali. Priklopiˇs, namestiˇs knjiˇznico in tipalo deluje.

Zanimalo nas je tudi kaj se da narediti z mikroraˇcunalnikom velikosti kreditne kartice. Nanj lahko priklopimo praktiˇcno katerokoli tipalo, progra- miramo v kateremkoli jeziku in poveˇzemo s katerokoli napravo. Projekti, ki jih lahko izdelamo z RPi, so omejeni le z naˇso domiˇsljijo.

Poleg samega izdelka pa nam je bolj pomembna koliˇcina znanja in izkuˇsenj, ki smo jih pridobili pri izdelavi diplomskega dela. Z opravljenim delom in rezultati v diplomski nalogi smo zadovoljni, saj nam je uspelo poglobljeno raziskati delovanje, uporabnost in povezljivost mikroraˇcunalnika RPi in ob tem ustvariti v praksi povsem uporaben prototipni sistem za vsakodnevno uporabo v vozilih.

(60)
(61)

Literatura

[1] 4 Band Resistor Color Code Calculator. Dosegljivo: https://www.

digikey.com/en/resources/conversion-calculators/conversion- calculator-resistor-color-code-4-band. [Dostopano: 01.02.2022].

[2] 7 Car Brands with Built-In Dash Cams. Dosegljivo: https://www.

eyewitnessdashcams.com/cars-with-built-in-dash-cams/. [Do- stopano: 01.02.2022].

[3] Avtopolnilec Anker. Dosegljivo: https://www.mimovrste.com/avto- polnilniki/anker-avtopolnilec-powerdrive-2-qc-30-bel. [Do- stopano: 01.02.2022].

[4] C vs Python. Dosegljivo: https://www.educba.com/c-vs-python/.

[Dostopano: 01.02.2022].

[5] Gradivo Camera Module specification. Dosegljivo: https://www.

raspberrypi.org/documentation/hardware/camera/. [Dostopano:

01.02.2022].

[6] Gradivo Raspberry Pi GPIO, WiringPi. Dosegljivo: https://pinout.

xyz/pinout/wiringpi. [Dostopano: 01.02.2022].

[7] How to give your Raspberry Pi a Static IP Address. Dosegljivo:

https://thepihut.com/blogs/raspberry-pi-tutorials/how-to- give-your-raspberry-pi-a-static-ip-address-update. [Dosto- pano: 01.02.2022].

45

(62)

[8] Knjiˇznica FFmpeg. Dosegljivo: https://ffmpeg.org/. [Dostopano:

01.02.2022].

[9] L80 GPS Protocol Specification. Dosegljivo: http://www.

sigmaelectronica.net/docs/L80_GPS_Protocol_Specification_

V1.0.pdf. [Dostopano: 01.02.2022].

[10] Microphone capsule specifications. Dosegljivo: https://www.conrad.

de/de/p/mikrofon-kapsel-2-10-v-dc-frequenz-bereich-20-hz- 16000-hz-kepo-kpcm-g60h27p-44db-710758.html. [Dostopano:

01.02.2022].

[11] Mikroraˇcunalnik Raspberry Pi 4 model B, 2GB, specifikacije. Dose- gljivo: https://www.galagomarket.com//item/display/1862. [Do- stopano: 01.02.2022].

[12] Operacijski sistem Raspberry Pi OS. Dosegljivo: https://www.

raspberrypi.org/downloads/. [Dostopano: 01.02.2022].

[13] Parallel and Series Resistor Calculator. Dosegljivo: https:

//www.digikey.com/en/resources/conversion-calculators/

conversion-calculator-parallel-and-series-resistor. [Dosto- pano: 01.02.2022].

[14] Pravilno spajkanje. Dosegljivo: https://www.prohobi.net/ps2018/

si/content/8-pravilno-spajkanje. [Dostopano: 01.02.2022].

[15] Primer priljubljene avto kamere. Dosegljivo: https://www.mimovrste.

com/avtokamere/lamax-t6-gps-wifi. [Dostopano: 01.02.2022].

[16] Programska tehnologija Bluetooth. Dosegljivo: https://www.

bluetooth.com/. [Dostopano: 01.02.2022].

[17] Programsko orodje Angry IP Scanner. Dosegljivo: https://angryip.

org/. [Dostopano: 01.02.2022].

(63)

Diplomska naloga 47 [18] Programsko orodje BalenaEtcher. Dosegljivo: https://www.balena.

io/etcher/. [Dostopano: 01.02.2022].

[19] Programsko orodje GNOME Partition Editor. Dosegljivo: https://

gparted.org/. [Dostopano: 01.02.2022].

[20] Programsko orodje PuTTY. Dosegljivo: https://www.putty.org/.

[Dostopano: 01.02.2022].

[21] Programsko orodje VNC Viewer in Server. Dosegljivo: https:

//www.realvnc.com/en/connect/download/viewer/. [Dostopano:

01.02.2022].

[22] Programsko orodje Win32 Disk Imager. Dosegljivo: https://

win32diskimager.download/. [Dostopano: 01.02.2022].

[23] Quotes about Python. Dosegljivo: https://www.python.org/about/

quotes/. [Dostopano: 01.02.2022].

[24] Raspberry Pi GPIO dokumentacija. Dosegljivo: https://

www.raspberrypi.org/documentation/usage/gpio/. [Dostopano:

01.02.2022].

[25] Raspberry Pi OS opis. Dosegljivo: https://www.raspberrypi.org/

downloads/raspberry-pi-os/. [Dostopano: 01.02.2022].

[26] Slika detekcije vozil z uporabo knjiˇznice opencv. Dosegljivo: https://

github.com/duyet/opencv-car-detection. [Dostopano: 01.02.2022].

[27] Slika mikroraˇcunalnika Raspberry Pi 4. Dosegljivo: https://www.okdo.

com/us/p/raspberry-pi-4-model-b-4gb/. [Dostopano: 01.02.2022].

[28] Slika modula kamere Raspberry Pi Camera Module V2. Dose- gljivo: https://www.alzashop.com/raspberry-pi-camera-module- v2-d4256972.htm?layoutAutoChange=1. [Dostopano: 01.02.2022].

(64)

[29] Slika povezave pospeˇskometra. Dosegljivo: https://www.gotronic.

fr/art-accelerometre-et-gyroscope-3-axes-sen-mpu6050- 31492.htm#. [Dostopano: 01.02.2022].

[30] Slika prikaza naklona vozila. Dosegljivo: https://is3-ssl.mzstatic.

com/image/thumb/Purple114/v4/ab/3e/d2/ab3ed280-213c-be1e- 2ed3-5d63744a9af8/mzl.wjrkxeso.png/643x0w.jpg. [Dostopano:

01.02.2022].

[31] Slika razliˇcnih Jack prikljuˇckov. Dosegljivo: https://obrazki.

elektroda.pl/6972400000_1518274024.png. [Dostopano:

01.02.2022].

[32] Slika tipala DS18S20 za merjenje temperature. Dosegljivo:

https://www.digikey.lt/product-detail/en/maxim-integrated/

DS18S20-PAR-T-R/DS18S20-PAR-CT-ND/5820849. [Dostopano:

01.02.2022].

[33] Slika tipke. Dosegljivo: https://content.instructables.com/ORIG/

FDL/WJOR/K9K8JZ0D/FDLWJORK9K8JZ0D.jpg?auto=webp&frame=1&

width=320&md=e96a8eb7fe940598025ba44299c52416. [Dostopano:

01.02.2022].

[34] Software with Raspbian OS. Dosegljivo: https://www.mbtechworks.

com/software/software-with-raspbian-os.html. [Dostopano:

01.02.2022].

[35] Teslin avtopilot. Dosegljivo: https://www.tesla.com/sl_SI/

autopilot?redirect=no. [Dostopano: 01.02.2022].

[36] Tipalo Maxim Integrated DS18S20 temperature sensor. Dose- gljivo: https://www.conrad.de/de/p/maxim-integrated-ds18s20- temperatursensor-55-bis-125-c-to-92-radial-176168.html. [Do- stopano: 01.02.2022].

(65)

Diplomska naloga 49 [37] Tipalo Microstack GPS module. Dosegljivo: https://si.

farnell.com/microstack/microstack-gps/add-on-board-l80- gps-raspberry/dp/2434228. [Dostopano: 01.02.2022].

[38] Tipalo pospeˇska Joy-it MPU6050. Dosegljivo: https://joy-it.net/

en/products/SEN-MPU6050. [Dostopano: 01.02.2022].

[39] Videoposnetek izrednega dogodka. Dosegljivo: https://drive.

google.com/file/d/1Q4y6ejSwg6_KlmHfR0CS0SCHuGoFb6Iz/view?

usp=sharing. [Posneto: 23.11.2020].

[40] Videoposnetek preizkusne voˇznje. Dosegljivo: https://drive.

google.com/file/d/1Sas8ZT60s1qjdLqgVa_XiCGwnfHDPLn_/view?

usp=sharing. [Posneto: 22.5.2020].

[41] What is a Raspberry Pi? Dosegljivo: https://www.raspberrypi.org/

help/what-%20is-a-raspberry-pi/. [Dostopano: 01.02.2022].

[42] Zunanja zvoˇcna kartica Orico. Dosegljivo: https://www.mimovrste.

com/zvocne-kartice/orico-zunanja-zvocna-kartica-sk02-sv- usb. [Dostopano: 01.02.2022].

[43] M. Ariyanto, I. Haryanto, J. D. Setiawan, M. Munadi, and M. S. Ra- dityo. Real-Time Image Processing Method Using Raspberry Pi for a Car Model. In 2019 6th International Conference on Electric Vehicular Technology (ICEVT), pages 46–51, 2019.

[44] Gary Bradski and Adrian Kaehler. Learning OpenCV: Computer vision with the OpenCV library. ”O’Reilly Media, Inc.”, 2008.

[45] Camillejr. Uporaba upora na tipalu za zaznavanje temperature. Do- segljivo: https://arduino.stackexchange.com/questions/30822/

the-use-of-4-7kohm-resistor-with-ds18b20-temperature- sensor. [Dostopano: 01.02.2022].

(66)

[46] S. Choudhury, S. P. Chattopadhyay, and T. K. Hazra. Vehicle detection and counting using haar feature-based classifier. In 2017 8th Annual Industrial Automation and Electromechanical Engineering Conference (IEMECON), pages 106–109, 2017.

[47] Tom Funk. System and method for implementing added services for OBD2 smart vehicle connection, April 2 2019. US Patent 10,249,103.

[48] Jeff Geerling. The best way to keep your cool running a Raspberry Pi 4.

Dosegljivo: https://www.jeffgeerling.com/blog/2019/best-way- keep-your-cool-running-raspberry-pi-4. [Dostopano: 01.02.2022].

[49] Lee Jackson. Raspberry Pi camera lenses. Dosegljivo: https:

//www.arducam.com/raspberry-pi-camera-v2-m12-autofocus- lens-spy-cam/. [Dostopano: 01.02.2022].

[50] KaranGupta5. Python OpenCV: Capture Video from Camera. Dose- gljivo: https://www.geeksforgeeks.org/python-opencv-capture- video-from-camera/. [Dostopano: 01.02.2022].

[51] Kevin. What is a virtualenv, and why should I use one? Dose- gljivo: https://stackoverflow.com/questions/41972261/what-is- a-virtualenv-and-why-should-i-use-one. [Dostopano: 01.02.2022].

[52] Mark Lutz. Programming python. ”O’Reilly Media, Inc.”, 2001.

[53] Satya Mallick. Read, Write and Display a video using OpenCV. Dose- gljivo: https://www.learnopencv.com/read-write-and-display-a- video-using-opencv-cpp-python/. [Dostopano: 01.02.2022].

[54] Matej Huˇs. ZABELEˇZIMO VSE! Dosegljivo: https://www.monitor.

si/clanek/zabelezimo-vse/177005/. [Objavljeno: 25.10.2016, Dosto- pano: 01.02.2022].

[55] Simon Monk. Setting up Wifi by Hand. Dosegljivo: https:

//learn.adafruit.com/adafruits-raspberry-pi-lesson-3-

(67)

Diplomska naloga 51 network-setup/setting-up-wifi-with-occidentalis. [Dosto- pano: 01.02.2022].

[56] Tyler Murry. Execute script on start-up. Dosegljivo: https:

//raspberrypi.stackexchange.com/questions/8734/execute- script-on-start-up. [Dostopano: 01.02.2022].

[57] Cameron Newham and Bill Rosenblatt. Learning the bash shell: Unix shell programming. ”O’Reilly Media, Inc.”, 2005.

[58] Avram Piltch. Raspberry Pi 4 with an SSD. Dosegljivo:

https://www.tomshardware.com/news/raspberry-pi-4-ssd- test,39811.html. [Dostopano: 01.02.2022].

[59] Tilen Pogaˇcnik. Problem presluha. PhD thesis, Univerza v Ljubljani, 2016.

[60] rbunger. 2560 x 1080 21:9 screen, simple settings for config.txt. Do- segljivo: https://www.raspberrypi.org/forums/viewtopic.php?t=

203100. [Dostopano: 01.02.2022].

[61] R. Reichenbach, D. Schubert, and G. Gerlach. Micromechanical triaxial acceleration sensor for automotive applications. In TRANSDUCERS

’03. 12th International Conference on Solid-State Sensors, Actuators and Microsystems. Digest of Technical Papers (Cat. No.03TH8664), vo- lume 1, pages 77–80 vol.1, 2003.

[62] Kenneth Reitz and Real Python. Clanek Pipenv & Virtual En-ˇ vironments. Dosegljivo: https://docs.python-guide.org/dev/

virtualenvs/. [Dostopano: 01.02.2022].

[63] Sandy. How to merge audio and video file in ffmpeg. Dose- gljivo: https://superuser.com/questions/277642/how-to-merge- audio-and-video-file-in-ffmpeg. [Dostopano: 01.02.2022].

(68)

[64] Andrews Sobral. Primer Vehicle Detection with Haar Cascades. Do- segljivo: https://github.com/andrewssobral/vehicle_detection_

haarcascades. [Dostopano: 01.02.2022].

[65] Vadim. Camera board vs USB camera. Dosegljivo: https://

www.raspberrypi.org/forums/viewtopic.php?t=85899. [Dostopano:

01.02.2022].

[66] M. A. Zulkhairi, Y. M. Mustafah, Z. Z. Abidin, H. F. M. Zaki, and H. A. Rahman. Car Detection Using Cascade Classifier on Embedded Platform. In 2019 7th International Conference on Mechatronics Engi- neering (ICOM), pages 1–3, 2019.

Reference

POVEZANI DOKUMENTI

Morali smo preverjati tudi za unikatne pojavitve posameznih parametrov, saj je lahko pri enakih vrednosti parametrov tipa enum obstajalo veˇ c razliˇ cnih mej istega parametra

V veˇ cji organizaciji, kjer morda potrebujemo veˇ c sistemov pfSense za razliˇ cne segmente omreˇ zij ali za razliˇ cne funkcionalnosti (poˇstni streˇ znik, poˇ zarni zid ...),

Nauˇ cili smo veˇ c detektorjev z razliˇ cnimi uˇ cnimi mnoˇ zicami, ki so jih sestavljale sintetiˇ cne in realistiˇ cne slike, ter primerjali, kako ˇstevilo uˇ cnih epoh in

Zato mora biti en modul, ki upravlja z ostalimi moduli jedro aplikacije (lahko bi imel tudi veˇ c razliˇ cnih srediˇsˇ c).. Vse soodvisnosti so zapisane v project.xml datoteki, ki

Primarni produkt Firebase je tako imenovana realtime database storitev, ki razvijalcem ponuja API s katerim lahko shranjujejo in sihronizirajo podatke preko veˇ c razliˇ cnih

Ugotovili smo, da se da s pomoˇ cjo adapterja iz OBD prebrati podatke, ki jih lahko uporabimo na razliˇ cne naˇ cine, recimo v mobilnih aplikacijah ki nas spomnejo na

V prvem delu diplomskega dela smo iz razliˇ cnih virov zgradili podatkovno mnoˇ zico in podatke analizi- rali glede na razliˇ cne lastnosti kampanj (ˇstevilo prikazov, leto

Aplikacija v operacijskem sistemu je lahko napisana v razliˇ cnih razvojnih orodjih z razliˇ cnimi programskimi jeziki (C/C++ z NDK, Lua s Corona SDK, HTML, CSS in Javascript