elektrisch voertuig spotsysteem door herkenning van ... · ge mplementeerd waarbij een laplacian...

43
Bachelor Informatica Elektrisch voertuig spotsysteem door herkenning van kentekenplaten Aike van den Brink 8 juni 2016 Supervisors: drs. ir. J.R. Helmus Signed: Informatica — Universiteit van Amsterdam

Upload: doanhanh

Post on 19-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Bachelor Informatica

Elektrisch voertuig spotsysteemdoor herkenning van kentekenplaten

Aike van den Brink

8 juni 2016

Supervisors: drs. ir. J.R. Helmus

Signed:

Informatica—

Universiteit

vanAmst

erdam

2

Samenvatting

De vraag naar elektrische voertuigen neemt sterk toe in Nederland. Een groot obstakel vandeze groei is het uitrollen van een efficiente en goede oplaadinfrastructuur. Hiervoor is hetIDO-LAAD project opgezet door de Hogeschool van Amsterdam. Het doel is om de uitrolen het gebruik van de oplaadinfrastructuur te optimaliseren door middel van datagedrevenanalyses. Het project beschikt over een grote dataset van oplaadsessies in Nederland. Ech-ter is bij de laadsessies geen informatie bekend over de opgeladen elektrische voertuigen. Indeze scriptie is een systeem ontworpen waarmee de onderzoekers van het IDO-LAAD pro-gramma gegevens van elektrische voertuigen kunnen toevoegen aan de bestaande dataset.Met behulp van automatische kentekenplaatherkenning worden voertuigen in afbeeldingenherkend. Vervolgens wordt nagegaan aan welk oplaadpunt het voertuig aan het opladen is.De resultaten van het systeem zijn veelbelovend, met hoge precisie kan aan de hand van eenfoto bepaald worden wat voor elektrisch voertuig aan welk oplaadpunt in Nederland wordtopgeladen.

3

4

Inhoudsopgave

1 Introductie 71.1 IDO-LAAD programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Onderzoeksvraag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Gerelateerd werk 9

3 EV spotsysteem 113.1 Ontwerp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 IDO-LAAD systeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3 Systeemarchitectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Mobiele applicatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.4.1 Ionic framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4.2 Cordova plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.5 LAMP server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.1 Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6 Voertuigherkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.1 Filteren en valideren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.2 RDW dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.6.3 Web scraper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.7 Oplaadpuntlokalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.7.1 Haversine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.7.2 Oplaadpunt dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Automatische kentekenplaatherkenning 214.1 Voorbewerking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Kentekenplaatdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2.1 Kleurmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.2 Randenmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2.3 Contouren detecteren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.4 Vierhoeken vinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2.5 Filteren van resultaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2.5.1 Grootte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.5.2 Geometrische vorm . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.5.3 Kleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.3 Scheefstandcorrectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4 OpenALPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5 Experimenten en Resultaten 315.1 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Voertuigherkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.2.1 Kentekenplaatdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.2.2 Scheefstandcorrectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.3 Optische karakterherkenning . . . . . . . . . . . . . . . . . . . . . . . . . 34

5

5.2.4 Kentekengegevens achterhalen . . . . . . . . . . . . . . . . . . . . . . . . . 355.3 Oplaadpuntlokalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6 Discussie 37

7 Conclusie 397.1 Toekomstige verbeteringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Bibliografie 41

6

HOOFDSTUK 1

Introductie

1.1 IDO-LAAD programma

Amsterdam is een van de koplopers in Nederland op het gebied van stimulering van elektrischevervoersmiddelen [2]. Gedeeltelijk aangespoord door de slechte luchtkwaliteit van bepaalde ge-bieden in de regio heeft de gemeente Amsterdam een actieve rol in het faciliteren van elektrischvervoer [48]. Het beleid van de gemeente bestaat uit een aantal componenten, het ontwikkelenvan de infrastructuur voor het opladen, campagnes voor bewustwording van het milieu en sti-mulerende maatregelen op de markt van elektrisch vervoer.

De gemeente wil het voor de mensen zo gemakkelijk mogelijk maken om een elektrisch voer-tuig te gebruiken. Waarbij het uitgangspunt is dat het opladen van het elektrisch voertuig geenbelemmering moet zijn voor het gebruik ervan [18]. In het kader hiervan is de laatste jaren opgrote schaal een publieke oplaadinfrastructuur opgebouwd in Amsterdam bestaande uit meerdan achthonderd oplaadpunten [17]. De uitrol van de oplaadinfrastructuur is een duur en tijd-rovend proces met een bepaalde onzekerheid wat betreft het resultaat. Van tevoren is lastig tebepalen wat voor effect een beslissing heeft, zelfs naderhand is dat niet makkelijk te onderzoeken.

Hier is het IDO-LAAD programma voor opgezet door de Hogeschool van Amsterdam (HvA)[18]. IDO-LAAD staat voor Intelligente Data-gedreven Optimalisatie van Laadinfrastrucuur.Het project beschikt over een dataset ter grootte van twee miljoen oplaadsessies van vijftig dui-zend verschillende gebruikers verspreid over vijf duizend oplaadpunten in Nederland [21]. Dit isde grootste verzameling wereldwijd van gegevens betreffende oplaadsessies van elektrische voer-tuigen. In de literatuur over wetenschappelijk onderzoek is deze dataset tot nu toe enig in zijnsoort. Het doel is om met deze informatie alle belanghebbenden binnen de oplaadinfrastructuurin staat te stellen de uitrol kostenefficient te maken. Daarnaast is het streven dat de oplaadpuntenzo efficient mogelijk gebruikt kunnen worden.

1.2 Onderzoeksvraag

De dataset die beschikbaar is binnen het IDO-LAAD programma bevat gegevens over oplaad-punten en oplaadsessies. Van een oplaadsessie is bekend hoeveel kWh is opgeladen, de begin- eneindtijd van de sessie en aan welk oplaadpunt werd opgeladen [48]. Informatie over het elektrischvoertuig dat werd opgeladen tijdens de oplaadsessie is niet aanwezig. Deze informatie is waar-devol voor het IDO-LAAD programma omdat het nieuwe inzichten kan geven in de bestaandedataset. Waardoor het mogelijk is om tot nieuwe conclusies te komen die kunnen bijdragen aande uitrol en het gebruik van de oplaadpunten.

Het is van belang dat zoveel mogelijk informatie van het elektrisch voertuig achterhaald wordt.In big data analyses van grote datasets kunnen de meest onwaarschijnlijke gegevens nieuwe in-

7

zichten geven [16]. De belangrijkste gegevens die gevonden moeten worden zijn het soort en merkvan het voertuig. Andere eigenschappen zoals model, uitvoering en prijsklasse van het voertuigzijn in mindere mate van belang.

Hiervoor moet een systeem komen dat de onderzoekers van het IDO-LAAD programma in staatstelt om gegevens over het elektrisch voertuig toe te voegen aan de dataset. De vraag is hoeinformatie over de elektrische voertuigen verkregen kan worden. Het idee is dat dit gedaan gaatworden door elektrisch voertuig spotters die foto’s maken van de voertuigen aan het oplaadpunt.Met kentekenplaatherkenning worden vervolgens de voertuigen in de foto’s herkend. Door teachterhalen aan welk oplaadpunt wordt opgeladen kan de informatie van het voertuig gekoppeldworden aan bestaande oplaadsessie(s) in de dataset. Hieraan is de volgende onderzoeksvraaggekoppeld.

Is het mogelijk om aan de hand van een foto te bepalen wat voor elektrisch voertuigaan welk oplaadpunt wordt opgeladen?

8

HOOFDSTUK 2

Gerelateerd werk

In deze scriptie wordt gebruik gemaakt van automatische kentekenplaatherkenning daarom iseen literatuuronderzoek gedaan naar kentekenplaatherkenning.

Dina en Dailey hebben een empirische studie gedaan naar kentekenplaatherkenning [11]. Hetherkennen van de kentekenplaten werd in drie componenten verdeeld: kentekenplaatdetectie,segmentatie van de karakters en optische karakterherkenning. Voor het detecteren van de ken-tekenplaat waren drie methodes geımplementeerd waarbij het beste resultaat werd behaald metHaar cascade algoritmes. Voor het segmenteren van de kentekenplaat waren drie methodesgeımplementeerd waarbij een Laplacian gebaseerde methode de hoogste nauwkeurigheid had.Voor de optische karakterherkenning waren twee methodes geımplementeerd waarbij een neuraalnetwerk het beste werkte.

Ahmad, Boufama, Habashi, Anderson en Elamsy hebben een vergelijkingsonderzoek gedaan naarautomatische kentekenplaatherkenning [3]. Door het combineren van drie kentekenplaatdetectiemethodes en twee optische karakterherkenning methodes hebben Ahmad et al. zes verschillendekentekenplaatherkenning systeem ontwikkeld. Het systeem met de beste resultaten gebruiktevoor de kentekenplaatdetectie een Sobel edge detector om de verticale randen van de kenteken-plaat te extraheren. Voor de optische karakterherkenning werd een template matching methodegebruikt.

Bhushan, Singh en Singla hebben kentekenplaatherkenning geımplementeerd met behulp vanneurale netwerken en multithresholding technieken [6]. Hiermee is een detectiepercentage van98.40% bereikt. Het neurale netwerk werd gebruikt voor de optische karakterherkenning van deletters en cijfers van de kentekenplaat. Voor het detecteren van de kentekenplaat gebruiktenBhushan et al. multithresholding technieken. Hiermee werd de afbeelding gesegmenteerd in ver-schillende segmenten van pixels die behoren tot hetzelfde object.

Mateusz Jozef Kulesza heeft voor zijn bachelor thesis een elektronisch parkeermeter systeem ge-maakt waarmee real-time verkeerd geparkeerde voertuigen gedetecteerd worden [24]. De werkingberust voor een groot deel op het automatisch herkennen van de kentekenplaat van de voertui-gen. Hiervoor is gebruik gemaakt van de opensource software OpenALPR. Met OpenALPRwordt gegeven een input afbeelding de bijbehorende kenteken van het voertuig teruggegeven inASCII formaat.

Rashmi, Kumar en Saxena hebben voor het detecteren van randen een vergelijkingsonderzoekgedaan naar de verschillende technieken [25]. De conclusie van Rashmi et al. is dat de cannyedge detector de beste resultaten heeft. Het is minder gevoelig voor ruis in de afbeelding, hetlokaliseren is nauwkeurig en levert scherpe randen op. Het is daarom een optimale techniek voorhet detecteren van randen en een goede toepassing in kentekenplaatherkenning.

9

10

HOOFDSTUK 3

EV spotsysteem

In dit hoofdstuk wordt het EV (elektrisch voertuig) spotsysteem omschreven en uiteengezet.Het systeem bestaat uit meerdere fysieke apparaten die met elkaar samenwerken. Elk apparaatheeft een eigen functie en wordt apart uitgelegd. Daarnaast is het systeem opgedeeld in verschil-lende componenten gebaseerd op functionaliteit. Van elk component wordt uitgelegd hoe deze isgeımplementeerd.

3.1 Ontwerp

Bij het ontwerp van het EV spotsysteem is als doel gesteld dat het systeem voor de onderzoekersvan het IDO-LAAD programma makkelijk in het gebruik moet zijn. Daarom is gekozen om hetspotten van de elektrische voertuigen mogelijk te maken met een mobiele applicatie.

De globale werking van het systeem is gevisualiseerd in een doorstroomschema in Figuur 3.1.Met de mobiele applicatie worden foto’s van elektrische voertuigen aan het oplaadpunt gemaakten de bijbehorende locatiegegevens verzameld. Nadat de informatie is ingeladen in de mobieleapplicatie wordt het verstuurd naar de LAMP server. Op de LAMP server wordt het voertuigherkend in de foto en bepaald aan welk oplaadpunt deze aan het opladen is. Deze componentenvinden plaatst op de LAMP server omdat het efficienter geımplementeerd kan worden op eenvolledig systeem dan op een mobiel apparaat. De gegevens over het elektrisch voertuig en hetoplaadpunt worden gebundeld en verstuurd naar het IDO-LAAD systeem. Daar kan de informa-tie gematcht worden aan bestaande oplaadsessie(s) in de dataset van het IDO-LAAD programma.

Figuur 3.1: Doorstroomschema van het EV spotsysteem.

11

3.2 IDO-LAAD systeem

Het IDO-LAAD programma heeft een systeem van servers die de onderzoekers gebruiken vooronderzoek van de dataset. Omdat het EV spotsysteem is gekoppeld aan het IDO-LAAD systeemmoet geınventariseerd worden hoe dit systeem werkt. Het huidige systeem van het IDO-LAADprogramma is geıllustreerd in Figuur 3.2.

Figuur 3.2: IDO-LAAD systeem.

Alle gegevens staan opgeslagen op de SQL server, een Microsoft 2014 SQL server. Op deze serverworden de queries van de SQL database uitgevoerd. Berekeningen met deze data worden gedaanop de computational server, een Ubuntu 14.04 LTS server. Het scheiden van de berekeningenen de opslag van data heeft een aantal voordelen. Door deze twee componenten op een apartsysteem te draaien wordt efficienter gebruik gemaakt van de hardware [50] en is het systeemflexibeler [36] voor verschillende belasting.

De informatie van het IDO-LAAD project is privacy gevoelig en uiterst vertrouwelijk. Alleenmedewerkers binnen het project hebben (gedeeltelijk) toegang tot de dataset. Om die redenzijn de twee servers aangesloten op een prive netwerk binnen de HvA en niet vrij toegankelijkvan buitenaf. Door middel van een VPN (Virtual Private Network) verbinding is het mogelijkom toegang te krijgen tot de servers. De servers zijn wel instaat om vanuit het prive netwerkverbinding te maken met het internet.

3.3 Systeemarchitectuur

De informatie die verzameld wordt met het EV spotsysteem moet in de dataset van het IDO-LAAD programma komen. Deze dataset is opgeslagen op de SQL server binnen het IDO-LAADsysteem. Daarom moet het EV spotsysteem gekoppeld worden aan het IDO-LAAD systeem. InFiguur 3.3 is geıllustreerd hoe de koppeling tussen de twee systemen is gemaakt en hoe de losseapparaten van het EV spotsysteem aan elkaar verbonden zijn.

12

Figuur 3.3: EV spotsysteem.

Het wordt afgeraden om een VPN verbinding te gebruiken voor mobiele applicaties die afhanke-lijk zijn van een database connectie [32]. Bij het gebruik van VPN nemen packet loss en packetjitter toe [5]. Een groter nadelig effect is dat de throughput van een verbinding omlaag gaat bijhet gebruik van VPN [28]. Daarnaast is het veiliger om geen directe verbinding te hebben met deservers in het prive netwerk. Daarom is gekozen om een aparte server buiten het prive netwerkte installeren waar de verschillende componenten van het EV spotsysteem op draaien. Hierdooris het hele EV spotsysteem gescheiden van het IDO-LAAD systeem, dat alleen toegankelijk isvia een VPN verbinding.

De functionaliteiten van het voertuigherkenning en oplaadpuntlokalisatie worden door de LAMPserver aangeboden door middel van een RESTful API. Voor de API worden HTTPS POST callsgebruikt om de verschillende methodes aan te roepen. De mobiele applicatie maakt gebruikvan deze API tijdens het spotten. In deze fases van het systeem wordt niet gewerkt met devertrouwelijke data van het IDO-LAAD programma waardoor het geen gevaar oplevert om dezediensten openbaar te zetten door middel van een API.

De gegevens van het spotten staan opgeslagen op de LAMP server. Om deze gegevens op deSQL server te krijgen is een procedure ontwikkeld waarbij geen connectie wordt gemaakt vande LAMP server naar de servers in het prive netwerk. Alle spots van een worden gebundeldin een JSON (JavaScript Object Notation) bestand. Het JSON bestand staat opgeslagen ondereen geheim path om te voorkomen dat andere personen erbij kunnen. Deze methode wordt vaaktoegepast in de praktijk, zoals bijvoorbeeld met het zetten van een webhook [27].

Vanaf de computational server wordt een HTTPS POST request gedaan naar de LAMP ser-ver om het JSON bestand binnen te halen. Het downloaden gebeurt elke dag om precies twaalfuur ’s nachts en wordt gemanaged door Cron. Dit is een tijdsgebaseerd taken reguleringspro-gramma in UNIX besturingssystemen. Het periodiek binnenhalen van bestanden op deze wijzeis een gangbare methode [37].

13

3.4 Mobiele applicatie

Om het EV spotsysteem toegankelijk te maken voor gebruikers, ook zonder technische achter-grond, is een mobiele applicatie ontwikkeld. De mobiele applicatie is gemaakt voor de meestgebruikte mobiele besturingssystemen Android en iOS (samen goed voor 90,34% [30] van allemobiele telefoons en tablets) zodat het draagvlak zo groot mogelijk is. De mobiele applicatiebestaat uit twee schermen en heeft een duidelijke workflow.

Figuur 3.4: Spot scherm van de mobiele applicatie.

In Figuur 3.4 is het eerste scherm te zien waar de locatiegegevens en de afbeelding worden ingela-den. Het bepalen van de locatie gaat automatisch op de achtergrond met de GPS functionaliteitvan het toestel. Als de gebruiker aan het verplaatsen is blijft de locatie up-to-date. Wanneer ditniet werkt is het mogelijk om op de locatie knop te drukken (aangeduid met de rode pijl), danwordt de locatie geforceerd gezocht. Een afbeelding kan op twee manieren ingevoerd worden, uitde interne opslag van het toestel (blauwe pijl) of door een foto te maken met de camera (groenepijl). Als alles is ingevoerd moet op de knop “Upload” gedrukt worden waarna de informatiewordt verstuurd naar de LAMP server. Op de server wordt bepaald wat voor elektrisch voertuigin de afbeelding staat en aan welk oplaadpunt deze aan het opladen is.

14

Figuur 3.5: Resultaat scherm van de mobiele applicatie.

Vervolgens komen de resultaten van de spot in het tweede scherm, zie Figuur 3.5. De gebruiker isin staat om het elektrisch voertuig en het oplaadpunt die gevonden zijn te verifieren. Dit wordtgedaan door op “Yes” te klikken waarna het systeem bevestiging heeft dat het resultaat correctis. Wanneer het kenteken van het elektrisch voertuig onjuist is herkend door het systeem kandit aangepast worden. Na de aanpassing moet op “Update” geklikt worden waarna het systeembij dit nieuwe kenteken alle informatie van het voertuig opzoekt. Wanneer het oplaadpunt datgevonden is onjuist is kan geklikt worden op “No”. Het systeem gaat dan een ander oplaadpuntzoeken dat het meest waarschijnlijk is. De wijzigingen die de gebruiker doorvoert in de spot doorop “Upload” of “No” te klikken worden automatisch gesynct met de LAMP server.

3.4.1 Ionic framework

De mobiele applicatie is gemaakt met Ionic [19], een multiplatform mobiele applicatie ontwikkelframework. Ionic is een ontwikkel framework gebaseerd op HTML5 en gericht op het maken vanhybride apps. Een hybride app is in essentie een website die draait in een browser shell van eenapp met toegang tot het native platform. Het ontwikkelen van een app met Ionic wordt gedaanin HTML, Javascript en CSS. Daarnaast gebruikt Ionic AngularJS [14] voor de core functiesvan het framework. AngularJS maakt dynamische inhoud van HTML pagina’s mogelijk doormiddel van nieuwe attributen in HTML. Voor functionaliteiten van het native platform wordenexterne plugins gebruikt. Nadat een app ontwikkeld is met Ionic kan deze gebruikt worden voormeerdere mobiele besturingssystemen.

15

3.4.2 Cordova plugins

Voor de mobiele applicatie van het EV spotsysteem worden plugins van Cordova [46] gebruikt.Een Cordova plugin faciliteert toegang tot de functionaliteiten van het toestel en het nativeplatform. Deze toegang is normaliter niet mogelijk voor een web-based applicatie. De volgendebelangrijke plugins zijn gebruikt bij de ontwikkeling van de mobiele applicatie:

• cordova-plugin-camera, maakt het mogelijk om foto’s te nemen met de camera van hettoestel en om afbeeldingen te selecteren uit de fotobibliotheek van het apparaat. Wordtgebruikt om de foto van het elektrisch voertuig in te laden.

• cordova-plugin-geolocation, verstrekt informatie over de locatiegegevens van het apparaatzoals latitude en longitude cordinaten. Wordt gebruikt om de bijbehorende latitude enlongitude coordinaten van een foto te bepalen.

• cordova-plugin-file-transfer, maakt het mogelijk om bestanden te uploaden en downloaden.Wordt gebruikt om de foto te uploaden naar de LAMP server.

3.5 LAMP server

De LAMP server is het centrale punt van het EV spotsysteem, hierop worden de voertuigherken-ning en oplaadpuntlokalisatie componenten uitgevoerd. LAMP staat voor Linux Apache MySQLen PHP / Python. Het besturingssysteem van de server is Ubuntu 16.04 LTS en met Apachewordt de API beschikbaar gemaakt. Apache is een opensource HTTP webserver compatibelvoor de meeste moderne besturingssystemen [12]. Voor de opslag van gegevens op de serverwordt gebruik gemaakt van MySQL, dat is een opensource managementsysteem voor relationeledatabases [10]. Alle functionaliteiten op de server zijn geprogrammeerd in Python.

3.5.1 Caching

Ter bevordering van de snelheid wordt op meerdere punten op de LAMP server caching toegepast.Wanneer eenzelfde waarde meerdere keren als input komt wordt de bijbehorende output uit dedatabase gehaald in plaats van opnieuw berekend. Hiervoor is het noodzakelijk dat de input enoutput paren opgeslagen worden. Op drie plaatsen is gebruik gemaakt van caching.

• KentekenplaatherkenningVan elke afbeelding wordt een korte unieke representatie bepaald waarmee deze geıdentificeerdkan worden. De representatie en de gevonden kentekens in de afbeelding worden opgeslagenin de database. Wanneer een afbeelding binnenkomt met een representatie die aanwezig isin de database staat vast dat deze al eerder verwerkt is door het systeem. Het is dan nietmeer nodig om de afbeelding te laten verwerken door het kentekenplaatherkenning systeem.In plaats daarvan worden de eventuele eerder gevonden kentekens uit de database gehaald.

Het bepalen van de unieke representatie gaat door middel van een hash functie [43]. Deenige twee eisen die gesteld worden aan het hashing algoritme is dat de kans op collisionszo klein mogelijk moet zijn en dat het qua rekenkracht niet intensief is. Daarom dat isgekozen voor de SHA-512 hash functie [22].

• Kenteken gegevensElk kenteken wordt met de bijbehorende gegevens van het voertuig opgeslagen in de data-base. Wanneer in een afbeelding een kenteken is gevonden wordt eerst gecontroleerd of dezeal aanwezig is in de database. Als dit het geval is worden de gegevens van het kenteken uitde database gehaald en hoeft deze niet meer op het internet te worden opgevraagd. Het isechter mogelijk dat een voertuig een ander kenteken krijgt. Daarom heeft elk item in dezecache een levensduur van een dag.

• OplaadpuntVan elk latitude en longitude coordinaten paar wordt opgeslagen welk oplaadpunt het

16

dichtstbij ligt. Wanneer een gebruiker op dezelfde plek een elektrisch voertuig spot hoeftniet opnieuw het oplaadpunt gelokaliseerd te worden. In plaats daarvan komen de gegevensmeteen uit de database. Het is mogelijk dat een nieuw oplaadpunt is gebouwd of juistweggehaald waardoor de lijst van dichtstbijzijnde oplaadpunten wijzigt. Daarom bestaanitems in deze cache niet langer dan een dag.

3.6 Voertuigherkenning

Herkenning van het elektrisch voertuig in de afbeelding gaat door middel van het herkennen vande kentekenplaat. Voor de kentekenplaatherkenning is een apart systeem geımplementeerd, ziehoofdstuk 4. Met dit kenteken wordt vervolgens informatie over het voertuig opgevraagd uit deopenbare dataset van het RDW (Rijksdienst voor het Wegverkeer) [38]. De RDW is de instellingin Nederland die de registratie van voertuigen verzorgt. Op deze wijze wordt via een relatiefmakkelijk proces het voertuig herkend in de afbeelding.

3.6.1 Filteren en valideren

Het kentekenplaatherkenning systeem geeft als output een lijst van mogelijke kentekens gesor-teerd op waarschijnlijkheid. Het is mogelijk dat een kenteken in deze lijst fout of ongeldig is. Omhiermee overweg te kunnen is een filter ingebouwd dat elk kenteken valideert. Van het kentekenmet de hoogste waarschijnlijkheid dat door het filter heen komt wordt aangenomen dat het hetkenteken is van het voertuig in de afbeelding.

Er is een beperkt aantal cijfer-lettercombinaties mogelijk voor de kentekens in Nederland. Vanaf1951 zijn 11 verschillende series van combinaties uitgebracht [39] door het RDW. Als een kente-ken niet valt binnen een van de elf series dan staat vast dat het ongeldig is. Het valideren hiervanwordt gedaan met reguliere expressies (regex).

De eerste serie is als volgt gedefinieerd: XX-99-99, waarbij X een letter is en 9 een cijfer. Allekentekens tussen AA-00-00 en XX-99-99 vallen onder deze serie. Niet elk mogelijk kentekenbinnen deze serie is echter uitgebracht [39]. Daarom wordt gevalideerd of een kenteken wel isuitgegeven.

3.6.2 RDW dataset

De kenteken dataset van het RDW is openbaar beschikbaar op de website https://opendata.

rdw.nl/Voertuigen/Open-Data-RDW-Gekentekende_voertuigen/m9d7-ebf2. De dataset be-staat uit 13,467,869 (op 1 juni 2016) rijen van kentekens met de bijbehorende gegevens van hetvoertuig. De dataset is in de browser doorzoekbaar en kan gedownload worden in verschillendeformaten. Wanneer de dataset in csv formaat wordt gedownload is het bestand 6.8 gigabytegroot. Elke dag wordt de dataset gewijzigd door toevoeging van kentekens of wijziging van degegevens behorende bij een kenteken. Van de dataset is geen API beschikbaar om gegevens overeen kenteken op te vragen.

3.6.3 Web scraper

Het is noodzakelijk voor het EV spotsysteem dat informatie van een enkel kenteken snel opge-vraagd kan worden. Dit is niet mogelijk met de openbare dataset van het RDW op de wijzewaarop deze wordt aangeboden. Daarom wordt in plaats daarvan de webinterface van het RDWgebruikt. Met een web scraper wordt de informatie van een kenteken geextraheerd van de webpa-gina. De web scraper werkt door de HTML pagina te downloaden en deze vervolgens te parsen.Tijdens het analyseren wordt gezocht naar specifieke HTML element waar de informatie van hetkenteken staat. De volgende gegevens van het voertuig worden achterhaald:

• Het soort voertuig, is het onderscheid tussen een personenauto, bromfiets, bus, bedrijfs-auto, taxi, motorfiets en aanhangwagen.

17

• Het merk van het voertuig.

• Het model van het voertuig zoals opgegeven door de fabrikant.

• De configuratie van de auto, ook wel autotype genoemd.

• Het aantal zitplaatsen van het voertuig.

• De catalogusprijs van het voertuig, dit is de prijs op het moment dat kentekenbewijs deel1 is afgegeven.

• De kleur van het voertuig, hierbij wordt alleen onderscheid gemaakt in de basiskleuren.

3.7 Oplaadpuntlokalisatie

Elke afbeelding in het systeem heeft bijbehorende breedtegraad (latitude) en lengtegraad (lon-gitude) coordinaten die aangeven waar op aarde de foto is genomen. Deze waarden wordengevonden met de GPS functionaliteit in het toestel. Daarnaast bevat het systeem van vrijwelalle oplaadpunten in Nederland de latitude en longitude waarden. In deze lijst van coordinatenwordt gekeken welk oplaadpunt het dichtst in de buurt komt van de waarden van de foto. Opdeze wijze wordt bepaald aan welk oplaadpunt het elektrisch voertuig in de afbeelding aan hetopladen is.

Het bepalen van de afstand tussen twee punten op aarde, gegeven de latitude en longitudewaarden, is echter niet zo simpel als het lijkt. De aarde is oneffen en heeft de geometrische vormvan een ellipsoıde [13]. Hierdoor is het oppervlakte van de aarde geen Euclidische ruimte en ishet wiskundig niet correct om Euclidische meetkunde te gebruiken.

Toch is het mogelijk om de Euclidische afstand tussen twee punten op het oppervlak van deaarde te berekenen met de stelling van Pythagoras [35]. Alleen levert dit een onnauwkeurigebenadering van de werkelijkheid op. Daarom wordt voor het lokaliseren van het oplaadpunt dehaversine vergelijking [40] gebruikt. De haversine methode houdt rekening met de kromming vande aarde [35] en daarom is het een veel betere benadering van de werkelijke afstand.

3.7.1 Haversine

Met de wet van haversine wordt de kortste afstand tussen twee punten op het oppervlak van eenbol berekend gegeven de latitude en longitude waarden [35].

Voor alle punten op een bol geldt de haversine vergelijking [42]:

hav(d

r) = hav(ϕ2 − ϕ1) + cos(ϕ1) ∗ cos(ϕ2) ∗ hav(λ2 − λ1)

hav(θ) = sin2(θ

2)

De definities van de parameters zijn:

ϕ1, ϕ2 latitude waardenλ1, λ2 longitude waardend afstandr radiusθ hoek

Hieruit kan worden afgeleid dat de formule voor het berekenen van de afstand gelijk is aan:

d = 2 ∗ r ∗ arcsin(√hav(ϕ2 − ϕ1) + cos(ϕ1) ∗ cos(ϕ2) ∗ hav(λ2 − λ1))

18

De variabele r is in dit geval de radius van de aarde. Deze varieert tussen 6356.8km op de polenen 6378.1km op de evenaar [9]. Omdat de radius niet op elke plek gelijk is wordt het gemiddeldegenomen. Dit resulteert in een minimale foutmarge.

3.7.2 Oplaadpunt dataset

In het systeem zijn de oplaadpunten van Nederland in een MySQL database opgeslagen. Van elkoplaadpunt zijn de adresgegevens (provincie, stad, stadsdeel, straat en huisnummer) en locatie-gegevens (latitude en longitude coordinaten) bekend. Oorspronkelijk waren de locatiegegevensvan de oplaadpunten niet aanwezig. Vervolgens zijn deze bepaald met behulp van de GoogleGeocoding API [15] en de bestaande adresgegevens. Geocoding is het proces waarbij een adresomgezet wordt in geografische coordinaten, zoals bijvoorbeeld latitude en longitude coordinaten.

Het is qua rekenkracht intensief om van alle oplaadpunten de afstand te bepalen met de ha-versine vergelijking. Daarom wordt eerst een voorselectie gemaakt door middel van een SQLquery in de database. Een oplaadpunt wordt geselecteerd wanneer de latitude en de longitudewaarde niet meer verschilt dan twee bepaalde waarden. Deze waarden zijn zo vastgesteld datalle punten in een straal van ongeveer een halve kilometer geselecteerd worden. Latitude en lon-gitude coordinaten zijn geen cartesisch coordinatenstelsel en daarom is de grootte van de straalniet overal gelijk. Het maximale verschil in Nederland is niet groter dan 20 meter.

19

20

HOOFDSTUK 4

Automatische kentekenplaatherkenning

In dit hoofdstuk wordt uitgelegd hoe automatische kentekenplaatherkenning is geımplementeerd,ook wel ALPR (Automatic License Plate Recognition) genoemd. ALPR is het proces waarbijautomatisch de kentekenplaat gedetecteerd en herkend wordt in een gegeven afbeelding of video.Voor het EV spotsysteem gaan alleen afbeeldingen als input gebruikt worden. Daarom hoeft inde implementatie geen rekening gehouden te worden met video als input.

Een ALPR systeem kan op verschillende manieren geımplementeerd worden. De effectiviteitvan een gekozen implementatie is sterk afhankelijk van de toepassing [3]. Er is geen ideale op-lossing die voor elke toepassing de beste resultaten oplevert [3]. Dit komt voornamelijk omdathet per land erg verschilt wat de visuele kenmerken van de kentekenplaat zijn. Het lettertypevan de karakters heeft invloed op de optische karakterhekenning [31]. De kleur en grootte van dekentekenplaat beınvloeden de kentekenplaatdetectie [3]. Daarnaast speelt kwaliteit van de inputeen grote rol in de effectiviteit van een ALPR systeem [6].

Het ALPR systeem bestaat uit een aantal hoofdcomponenten:

• VoorbewerkingDe input wordt geschikt gemaakt voor de andere fases in het systeem. Sommige voorbe-werkingstappen zijn gericht op kwaliteitverbeteringen en andere op snelheidwinst.

• KentekenplaatdetectieIn deze fase wordt de kentekenplaat in de afbeelding gedetecteerd. Het gebied waar dekentekenplaat aanwezig is wordt geextraheerd uit de afbeelding. De vervolgstappen in hetproces werken beter wanneer enkel de kentekenplaat wordt gebruikt.

• Karakter segmentatieGegeven de kentekenplaat uit de kentekenplaatdetectie stap worden de afzonderlijke ka-rakters gescheiden van elkaar. Wanneer de karakters scheef staan wordt deze scheefstandgecorrigeerd. Deze stap kan ook voor de segmentatie van de karakters worden uitgevoerd.

• Optische karakterherkenningIn de laatste fase worden de individuele karakters van de kentekenplaat herkend, dit wordtOCR (Optical Character Recognition) genoemd. Voor elk gevonden karakter uit de afbeel-ding wordt bepaald wat het hoogst waarschijnlijke bijbehorende letters of cijfers is. Hetresultaat is een aaneenschakeling van letters en cijfers in ASCII formaat die de kenteken-plaat moet voorstellen.

Voor een deel van de stappen in het ALPR systeem wordt gebruik gemaakt van de opens-ource library OpenALPR [33]. Dit is een volledig werkend ALPR systeem dat openbaar is envrij toegankelijk voor iedereen. Uit experimenten is gebleken dat de kentekenplaatdetectie enscheefstandcorrectie componenten van OpenALPR minder goed werken op Nederlandse kente-kenplaten, zie Sectie 5.2.1. Daarom is voor het ALPR systeem een eigen kentekenplaatdetectie

21

en scheefstandcorrectie methode geımplementeerd voor betere resultaten. In Figuur 4.2 is eendoorstroomschema weergegeven van het ALPR systeem.

Figuur 4.1: Doorstroomschema van het ALPR systeem.

4.1 Voorbewerking

De afbeelding in de input wordt wanneer nodig verkleind naar een meer ideale grootte voorhet systeem. Uit experimenten beschreven in Sectie 5.2 is gebleken dat de afmetingen van dezeideale grootte liggen tussen 896 bij 1592 en 448 bij 796 pixels. Het heeft geen invloed wat deratio tussen de lengte en breedte van de afbeelding is. Wat wel invloed heeft is de absolutegrootte van de kentekenplaat in de afbeelding. De kentekenplaat moet niet te groot zijn omdatanders oneffenheden zoals deuken en roestplekken te veel invloed hebben op de vorm van dekentekenplaat waardoor het detecteren van de kentekenplaat bemoeilijkt wordt. Daarnaast werktde optische karakterherkenning minder goed bij grote tekens, zie Sectie 5.2.3. Ook wanneerde afbeelding te klein is behaald de optische karakterherkenning slechtere resultaten bij hetherkennen van de letters en cijfers van de kentekenplaat. Een ander voordeel van het verkleinenvan de afbeelding is dat de berekening minder zwaar zijn en daardoor verloopt het proces sneller.

4.2 Kentekenplaatdetectie

Voor het detecteren van de kentekenplaat in de afbeeldingen is zelf een procedure ontwikkeld.Hierbij is veelvuldig gebruik gemaakt van de opensource Computer Vision Library OpenCV[20].In Figuur 4.2 is een doorstroomschema weergegeven van het proces.

22

Figuur 4.2: Doorstroomschema van het kentekenplaatdetectie proces.

Voor het vinden van de kentekenplaat zijn twee methodes geımplementeerd die beide een anderewerking hebben. De meest simpele en voor de hand liggende methode is door te zoeken naarranden in de afbeelding [31] [11]. De kentekenplaat heeft altijd twee vrijwel parallelle horizontaleen twee verticale randen. Door deze randen te detecteren in de afbeelding en daarin vierhoekente vinden kan de kentekenplaat gevonden worden.

De andere methode maakt gebruik van de heuristiek dat bijna alle kentekenplaten in Neder-land geel zijn. Het detecteert geeltinten in de afbeelding en gaat hierin zoeken naar geometrischevormen die nagenoeg een vierhoek zijn. Op deze wijze wordt de kentekenplaat gevonden.

Eerst wordt met de detectie methode gebaseerd op kleur gezocht naar de kentekenplaat om-dat dit de beste resultaten oplevert. Wanneer met deze methode de kentekenplaat niet wordtgedetecteerd gaat door middel van de randendetectie methode gezocht worden. Het is mogelijkdat in de afbeelding een voertuig staat met aan andere kleur kentekenplaat dan geel. Taxi’s inNederland hebben bijvoorbeeld een blauwe kentekenplaat. Voertuigen uit andere landen kunnenzelfs een geheel andere kleur kentekenplaat hebben. Door deze twee methodes te combinerenbij het zoeken naar de kentekenplaat kan elke soort kentekenplaat gedetecteerd worden met eenhoge precisie.

23

4.2.1 Kleurmethode

De eerste stap is om de kleurenafbeelding om te zetten naar een HSV (hue, saturation en va-lue) formaat. HSV is een model om kleuren mee te beschrijven waarbij gebruik wordt gemaaktvan drie dimensies, namelijk de kleurtint, verzadiging en intensiteit. Het voordeel van het HSVkleurenmodel is dat de intensiteit en grijswaarden van de afbeelding gescheiden zijn van de daad-werkelijke kleuren. Omdat nu alleen naar de kleurtint gekeken kan worden is het eenvoudigerom de randen van een object met dezelfde kleur goed te onderscheiden [44].

In de verkregen HSV afbeelding worden de geeltinten gedetecteerd. Over alle pixels in de afbeel-ding wordt getereerd en nagegaan of deze binnen een bepaald bereik van HSV waarden vallen[41]. Wanneer een pixel binnen het bereikt valt wordt deze wit gemaakt en zo niet zwart. Hetresultaat is een binaire afbeelding waarbij alle geeltinten uit de oorspronkelijke afbeelding zicht-baar zijn.

Het bereik dat wordt gebruikt heeft veel invloed op de kwaliteit van het resultaat. Per af-beelding is het erg verschillend welk bereik de beste resultaten oplevert. Na veel experimenterenis een bereik gevonden dat goed werkt voor de geel kleur van Nederlandse kentekenplaten. Wan-neer de kleur van de kentekenplaat sterk afwijkt van de normale geel kleur is het bereik echterniet dekkend genoeg. Daarom zijn drie extra bereiken vastgesteld die voor donkere, lichte envage geel kleuren optimaal werken.

In Figuur 4.3 wordt een overzicht gegeven van de stappen die een afbeelding doorloopt. Daarinis goed zichtbaar hoe de verschillende kleurmodellen eruitzien.

(a) RGB (b) HSV (c) Binair

Figuur 4.3: Overzicht van de verschillende kleurmodellen.

Vervolgens wordt de binaire afbeelding geegaliseerd met een Gaussian filter [4]. Na het toepassenhet Gaussian filter zijn de randen minder gekarteld en loopt het wit meer effen over in het zwart.Deze stap maakt het makkelijker om in een later stadium de vierhoek van de kentekenplaat tevinden. In Figuur 4.4 is weergegeven hoe de kentekenplaat voor en na het filter eruitziet.

24

(a) Normaal (b) Blur

Figuur 4.4: Onbewerkt en bewerkt kentekenplaat uit de binaire afbeelding.

4.2.2 Randenmethode

De kleurenafbeelding wordt omgezet naar een grijswaardeafbeelding omdat bij het onderschei-den van belangrijke visuele kenmerken in afbeeldingen de helderheid belangrijker is dan hetkleurverschil [49]. Berekeningen met grijswaardeafbeeldingen gaan sneller dan met kleurenaf-beeldingen waardoor de processen sneller verlopen. Daarnaast is het niet goed mogelijk om metgerenommeerde methodes in kleurenafbeeldingen randen te detecteren [25]. Ter visualisatie vande processen van de kentekenplaatdetectie wordt telkens dezelfde afbeelding gebruikt. In Figuur4.5 wordt de RGB en grijswaarde variant van deze afbeelding getoond.

(a) Kleur (b) Grijswaarde

Figuur 4.5: Overzicht van de verschillende kleurmodellen.

Eventuele ruis wordt uit de afbeelding gehaald door het gebruik van een Bilateraal filter [47].Door het toepassen van het filter verdwijnen kleine oneffenheden die het zouden bemoeilijkenom de rechte randen van de kentekenplaat te vinden. Het bilateraal filter is geschikt voor dezetoepassing omdat het de afbeelding egaliseert en tegelijkertijd blijven de randen behouden [1].In Figuur 4.6 is weergegeven hoe de kentekenplaat voor en na het filter eruitziet.

(a) Normaal (b) Blur

Figuur 4.6: Onbewerkt en bewerkt kentekenplaat uit de grijswaardeafbeelding.

25

De Canny edge detector [8] wordt gebruikt voor het vinden van randen in de grijswaardeafbeel-ding. Uit onderzoek is gebleken dat dit een goede methode is om de randen van de kentekenplaatte vinden [23] [25]. Een voordeel van deze techniek is dat de kleur van de kentekenplaat geeninvloed heeft op het resultaat. Daardoor kan het voor elke soort kentekenplaat gebruikt wordenonafhankelijk van de kleur.

Canny edge detection heeft twee drempelwaarden die gebruikt worden door de algoritmes. Dezedrempelwaarden hebben een grote invloed op de nauwkeurigheid van de Canny edge detector.Per afbeelding is het verschillend welke drempelwaarden het beste resultaat oplevert. Om demeest geschikte drempelwaarden te bepalen wordt gebruik gemaakt van Otsu’s methode [34].

Het resultaat van de Canny edge detector is een binaire afbeelding waarbij witte pixels on-derdeel van een rand zijn en zwarte pixels niet. In Figuur 4.7 is weergegeven wat het resultaatvan canny edge detection is bij de grijswaardeafbeelding van Figuur 4.5.

Figuur 4.7: Binaire afbeelding verkregen met Canny edge detector.

4.2.3 Contouren detecteren

In de verkregen binaire afbeeldingen worden de contouren gevonden van de objecten. Dit wordtgedaan met OpenCV waarin de functie findContours is geımplementeerd dat contouren vindtin een afbeelding. Deze functie gebruikt de methodes beschreven en uitgewerkt in de paperTopological structural analysis of digitized binary images by border following [45]. In elk soortafbeelding kunnen de contouren gevonden worden met de findContours functie maar de besteresultaten worden verkregen bij een binaire afbeelding [7]. Daarom is in de vorige stappen toe-gewerkt naar het verkrijgen van zo representatieve mogelijke binaire afbeelding van de originelekleurenafbeelding. In Figuur 4.8 is te zien welke contouren met deze methode gevonden wordenin de voorbeeld afbeelding.

26

Figuur 4.8: Contouren van de afbeelding.

4.2.4 Vierhoeken vinden

In de afbeelding worden veel contouren gedetecteerd waarvan alleen die van de kentekenplaatrelevant zijn. Om deze contouren te vinden wordt gezocht naar contourlijnen die vrijwel eenvierhoek vormen. Het vinden van geometrische vormen wordt gedaan met de functie approxPo-lyDP in OpenCV. Deze functie zet de open contouren om in gesloten contouren en vervolgenswordt nagegaan of dit een vierhoek betreft. Het resultaat is een verzameling vierhoeken dierepresentatief zijn voor de originele open contourlijnen.

Figuur 4.9: Vierhoeken gevonden in de verkregen contouren.

27

In Figuur 4.9 is weergegeven wat voor vierhoeken gevonden worden in de contouren van Figuur4.8. Van alle vierhoeken zijn de hoeken gemarkeerd in de afbeelding om het beter zichtbaar temaken. Vanaf de linker onderhoek met de klok mee zijn de kleuren respectievelijk paars, rood,oranje en blauw.

4.2.5 Filteren van resultaat

Om de vierhoek van de kentekenplaat te vinden in het grote aantal gevonden vierhoeken zijnfilters ingebouwd. Wanneer niet wordt voldaan aan bepaalde voorwaarden die zijn gedefinieerdin het filter wordt de vierhoek aangemerkt als ongeldig. Na het filteren blijft alleen de vierhoekvan de kentekenplaat over.

Er zijn drie verschillende filters die gebruik maken van andere eigenschappen van de vierhoe-ken. De filter die werkt op basis van kleur is alleen van toepassing op vierhoeken gevondenmet de kleurmethode. Van de vierhoeken gevonden met de kleurmethode kan aangenomen wor-den dat ze geeltinten bevatten anders waren ze niet gevonden met de kleurmethode. Het filtergebaseerd op kleur is dus niet van toepassing op vierhoeken verkregen met de randenmethode.

4.2.5.1 Grootte

Veel vierhoeken zijn niet groter dan 10 bij 10 pixels en kunnen met zekerheid eruit wordengefilterd omdat hiervan vast staat dat het niet de kentekenplaat kan zijn. De minimale groottedie gedefinieerd is in het configuratie bestand van OpenALPR is 70 pixels wijdt en 35 pixelshoog. Alle vierhoeken kleiner dan deze waarden worden daarom verwijderd.

4.2.5.2 Geometrische vorm

De geometrische vorm van een kentekenplaat is een vierhoek waarbij de twee horizontale lijnenvrijwel parallel lopen en even lang zijn, voor de twee verticale lijnen geldt hetzelfde. Van eenvierhoek wordt nagegaan of de geometrische vorm bij benadering lijkt op die van een kenteken-plaat. Wanneer dit niet het geval is wordt de vierhoek verwijderd.

Voor alle zijden van de vierhoek worden raaklijnen opgesteld. Wanneer deze lineaire raaklij-nen elkaar snijden ergens in de omheining van de vierhoek is de geometrische vorm niet die vaneen kentekenplaat. Hier mag vanuit gegaan worden omdat de zijden van de kentekenplaat paral-lel lopen en de hoeken niet veel afwijken van een loodrechte verbinding. Een snijpunt telt nietals het precies op een hoek van de vierhoek valt. In Figuur 4.10 is dit proces bij een ongeldigvierhoek geıllustreerd.

Figuur 4.10: Voorbeeld van een ongeldig vierhoek.

28

De gele rechthoek is de omheining van de vierhoek, de groene lijnen zijn de vierhoek en de wittelijnen zijn de raaklijnen van de zijden. Zoals te zien is zijn zes snijpunten aanwezig in de omhei-ning waarvan vier precies vallen op een hoekpunt. De twee overige snijpunten, aangegeven meteen rood kruis, zijn wel geldig en daardoor staat vast dat dit vierhoek geen kentekenplaat is.

Een ander criteria waarop gefilterd wordt is de verhouding tussen de lengte en breedte vande kentekenplaat. Deze varieert tussen de waarden 2.5 en 5.5, een vierhoek met een verhoudingdie hier niet tussen valt is ongeldig.

4.2.5.3 Kleur

Bij dit filter wordt gekeken hoeveel geeltinten een vierhoek bevat. Als een vierhoek relatiefweinig pixels heeft die binnen een bepaald bereik van geeltinten valt dan is deze ongeldig. Netzoals bij de kleurmethode 4.2.1 wordt de RGB afbeelding omgezet in HSV formaat. Vervolgenswordt hier een binaire afbeelding van gemaakt door over de individuele pixels te itereren en nate gaan of deze binnen een bepaald bereik vallen. In Figuur 4.11 een voorbeeld van een steen dieaangemerkt is als een kentekenplaat maar ongeldig is omdat geen gele pixels aanwezig zijn.

(a) Normaal (b) Geeltinten

Figuur 4.11: Ongeldig vierhoek in verschillende kleurmodellen.

4.3 Scheefstandcorrectie

Kentekenplaten die scheef staan in de afbeelding moeten rechtgetrokken worden. Hiervoor zijn decoordinaten van de hoeken van de kentekenplaat nodig. Daarnaast zijn de beoogde coordinatenvan de hoeken nodig na de scheefstandcorrectie van de kentekenplaat. Gegeven deze twee groe-pen coordinaten wordt een perspectief transformatie matrix bepaald. Met deze matrix wordende coordinaten geprojecteerd. Het resultaat is een kentekenplaat die niet meer in scheefstand is.In Figuur 4.12 is dit proces gevisualiseerd.

Figuur 4.12: Kentekenplaten tijdens de perspectief transformatie.

4.4 OpenALPR

De twee laatste fases in het ALPR systeem, karakter segmentatie en optische karakterherken-ning, worden uitgevoerd door het framework OpenALPR. Normaliter verwacht OpenALPR een

29

afbeelding waarin een voertuig staat waarvan de kentekenplaat zichtbaar is. Door in het configu-ratie bestand van OpenALPR de waarde skip detection op 0 te zetten is het mogelijk om enkelde kentekenplaat in te voeren.

Daarnaast zijn nog een paar andere opties in het configuratie bestand die gebruikt worden terbevordering van OpenALPR.

• postprocess confidence skip level, elk potentieel gevonden karakter in de kentekenplaat meteen lagere waarschijnlijkheid dan deze drempelwaarde wordt overgeslagen.

• postprocess min confidence, deze waarde bepaalt hoe zeker de optische karakterherkenningmoet zijn over een geschat karakter. Als de waarschijnlijkheid van een bepaald karakterlager is dan de aangegeven drempelwaarde wordt deze overslagen.

• detector, hier kan aan meegegeven worden of het systeem moet draaien op de CPU of GPU(Nvidia en OpenCL ondersteund).

OpenALPR geeft als output een lijst van mogelijke kentekens en de geschatte waarschijnlijkheidervan. Omdat de laatste stappen van het ALPR systeem worden uitgevoerd door OpenALPR isdeze lijst ook de output van het ALPR systeem.

30

HOOFDSTUK 5

Experimenten en Resultaten

In dit hoofdstuk worden de experimenten en de bijbehorende resultaten van het systeem uit-eengezet. De componenten uit het systeem zijn onafhankelijke processen en daarom is met elkcomponent apart geexperimenteerd. De effectiviteit van het gehele EV spotsysteem is een op-somming van de resultaten van deze individuele experimenten.

5.1 Dataset

In samenwerking met mijn docent in Image Processing dr. ir. Rein van den Boomgaard is gepro-beerd een dataset van Nederlandse kentekenplaten te bemachtigen. Het bleek niet mogelijk zoeen dataset te verkrijgen. De meeste datasets zijn niet openbaar en mogen alleen met toestem-ming gedeeld worden. De datasets welke wel openbaar waren bevatten alleen kentekenplaten uitandere landen. Om het ALPR systeem te testen is daarom zelf een dataset van Nederlandsekentekenplaten verzameld. De dataset bestaat uit 200 foto’s van auto’s genomen met een Sams-ung Galaxy s5. De foto’s hebben een afmeting van 1494 bij 2656 pixels en van elke foto zijngeschaalde versies gemaakt met een verkleining van 0.5, 0.3, 0.25, 0.20 en 0.125. De waardenvan de verkleiningen zijn zo gekozen dat de resulterende afbeeldingen een bereik van formatenbedekken die veel voorkomen. De totale grootte van de dataset is 1200 foto’s.

De dataset moet zo representatief mogelijk zijn voor daadwerkelijk gebruik van het systeem.Het is essentieel dat de afbeeldingen varieren in kwaliteit en grootte om de verschillende ge-bruikers na te bootsen. Op deze wijze kan goed getest worden hoe robuust het ALPR systeemis. Daarnaast moet de dataset groot genoeg zijn om algemene conclusies te kunnen trekken uitde resultaten van de experimenten. In Figuur 5.1 staan voorbeelden van kentekenplaten uit dedataset met variatie in belichting, rotatie, scherpte en kwaliteit.

(a) Overbelicht (b) Onderbelicht (c) Schaduw

(d) Onscherp (e) Rotatie (f) Lastige belichting

Figuur 5.1: Voorbeelden van variaties in de dataset.

31

5.2 Voertuigherkenning

Met het voertuigherkenning component is geexperimenteerd in welke mate het systeem in staatis om het elektrisch voertuig in de afbeeldingen te herkennen. Voor deze experimenten is gebruikgemaakt van de dataset beschreven in Sectie 5.1.

In Figuur 5.2 is weergegeven bij welk formaat in hoeveel afbeeldingen het voertuig juist is her-kend. Een herkenning wordt gezien als “goed” wanneer minstens het soort en merk van hetvoertuig correct zijn achterhaald. Als een of beide van deze kenmerken van het voertuig niet ofonvolledig zijn achterhaald is de herkenning “fout”.

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 7960

20

40

60

80

100

120

140

160

180

200

Afmetingen

Hoev

eelh

eid

GoedFout

Figuur 5.2: Resultaten van de voertuigherkenning component.

Het herkennen van het voertuig in een afbeelding bestaat uit meerdere onafhankelijke fases. Metelke fase is apart geexperimenteerd om beter inzicht te krijgen in de individuele prestatie. Vooral deze experimenten is ook gebruik gemaakt van dezelfde dataset.

5.2.1 Kentekenplaatdetectie

In deze sectie staan de experimenten en de bijbehorende resultaten van de kentekenplaatdetectie.Voor de experimenten is gebruik gemaakt van de dataset zoals beschreven in Sectie 5.1. Van alleverschillende formaten foto’s in de dataset is gekeken hoe goed de kentekenplaat werd gedetec-teerd.

Een detectie is gekenmerkt als “goed” wanneer alleen het gebied van de kentekenplaat als outputwordt gegeven, zoals de voorbeelden in Figuur 5.1. Kentekenplaten die voor een deel gedetecteerdworden, minstens 50% van de kentekenplaat, zijn aangemerkt als “half”. Het is mogelijk datandere objecten in de afbeelding worden gezien als de kentekenplaat. Dit soort gevallen zittenbij de categorie “fout”. Wanneer de kentekenplaat helemaal niet is gedetecteerd in de afbeeldingkrijgt het de label “leeg”.

32

Het experiment is gedaan met de eigen implementatie van de kentekenplaatherkenning, de re-sultaten zijn te zien in Figuur 5.3. Ter vergelijking is hetzelfde experiment gedaan met dekentekenplaatdetectie functionaliteit van OpenALPR, de resultaten daarvan staan in Figuur 5.4.

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 7960

20

40

60

80

100

120

140

160

180

200

Afmetingen

Hoev

eelh

eid

GoedHalfFoutLeeg

Figuur 5.3: Resultaten van eigen implementatie van kentekenplaatherkenning.

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 7960

20

40

60

80

100

120

140

160

180

200

Afmetingen

Hoev

eelh

eid

GoedHalfFoutLeeg

Figuur 5.4: Resultaten van de kentekenplaatherkenning functionaliteit van OpenALPR.

33

5.2.2 Scheefstandcorrectie

De dataset bevat 66 foto’s waarvan de kentekenplaat in de afbeelding scheef staat. Van de kente-kenplaten uit de kentekenplaatdetectie fase is gekeken hoe goed de scheefstand gecorrigeerd werd.De scheefstanden in horizontale richting varieren van 0% tot 20% en in verticale richting van 0%tot 30%. Daarnaast hebben een aantal kentekenplaten een perspectiefvervorming in horizontaleof verticale richting.

In Figuur 5.5 staan de resultaten van het experiment. Het corrigeren is “goed” als de ken-tekenplaat na het transformeren recht is. Wanneer na de transformatie de kentekenplaat nogsteeds even scheef is wordt het gekenmerkt door “geen verschil”. De scheefstandcorrectie is “fout”wanneer na het corrigeren de kentekenplaat zo vervormd is dat deze slechter leesbaar is.

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 7960

10

20

30

40

50

60

Afmetingen

Hoev

eelh

eid

GoedGeen verschil

Fout

Figuur 5.5: Resultaten van de scheefstandcorrectie van de kentekenplaten.

5.2.3 Optische karakterherkenning

Met de kentekenplaten verkregen na de scheefstandcorrectie fase is onderzocht wat de prestatievan de optische karakterherkenning component is. Voor het vergelijken van de output met hetwerkelijke kenteken is gebruik gemaakt van de Levenshteinafstand [26]. De Levenshteinafstandis een methode voor het bepalen van de afstand tussen twee sequenties van tekens. Het geeft aanwat het minimum aantal bewerkingen is om de ene sequentie te veranderen in de andere sequentie[29]. Hierbij zijn slechts drie verschillende basisoperaties toegestaan, toevoeging, verwijdering enverplaatsing van tekens [29]. Elke operatie zorgt ervoor dat de Levenshteinafstand met 1 wordtverhoogd.

In Figuur 5.6 is weergegeven wat de resultaten zijn van het experiment. Bij een Levenshteinaf-stand van 0 zijn de twee kentekens aan elkaar gelijk, dit is aangeduid als “goed”. Een Levenshtein-afstand van 1 staat gelijk aan een overeenkomst van 83.3% bij kentekens van 6 lang en 85.7%bij een lengte van 7. Kentekens met deze Levenshteinafstand zijn aangeduid als “onvolledig”.Wanneer de Levenshteinafstand groter is dan 1 wordt het gezien als “fout”.

34

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 7960

20

40

60

80

100

120

140

160

180

200

Afmetingen

Hoev

eelh

eid

GoedOnvolledig

Fout

Figuur 5.6: Resultaten van de optische karakterherkenning component van de kentekenplaten.

5.2.4 Kentekengegevens achterhalen

Van de 200 kentekens in de dataset is onderzocht in hoeveel gevallen gegevens van de 7 categorieen(soort, merk, model, configuratie, aantal zitplaatsen, kleur en prijs van het voertuig) achterhaaldkan worden. In Figuur 5.7 zijn de resultaten daarvan weergegeven. De gegevens van een voertuigzijn gekenmerkt als “goed” wanneer de gevonden informatie de lading helemaal dekt. Wanneerdit in mindere mate het geval is wordt het gezien als “onvolledig”. Het is “fout” wanneer geeninformatie gevonden is of als het onjuist is.

soort merk configuratie model kleur zitplaatsen prijs0

20

40

60

80

100

120

140

160

180

200

Gegevens

Hoev

eelh

eid

GoedOnvolledig

Leeg

Figuur 5.7: Resultaten van het achterhalen van de gegevens behorende bij een kenteken.

35

5.3 Oplaadpuntlokalisatie

Het lokaliseren van de oplaadpunten is getest door middel van een veldonderzoek. In tweeverschillende gebieden in Nederland is bij alle oplaadpunten getest hoe goed de lokalisatie func-tionaliteit van het systeem werkt.

(a) Alkmaar (b) Amsterdam-Oost

Figuur 5.8: Figuur 5.3: Oplaadpunten in Nederland.

Van de 137 oplaadpunten in Amsterdam-Oost was alleen de lokalisatie van 3 oplaadpunten nietgoed gegaan. De lokalisatie van alle oplaadpunten in Alkmaar waren succesvol. In totaal heeft delokalisatie functionaliteit van het systeem in dit onderzoek een succespercentage van 98 procent.

36

HOOFDSTUK 6

Discussie

De resultaten van de experimenten uit Sectie 5 worden in dit hoofdstuk besproken en verklaard.

Uit Figuur 5.2 blijkt dat de voertuigherkenning functionaliteit beter werkt bij kleinere formatenafbeeldingen. De beste resultaten worden verkregen bij afbeeldingen met een formaat van 747 bij1328 en 597 en 1061 pixels. De afbeeldingen met kleinere en grotere formaten dan deze waardenhebben steeds slechter wordende resultaten. Het optimum kan verklaard worden door te kijkennaar de resultaten van de individuele componenten van de voertuigherkenning.

De kentekenplaatdetectie heeft de beste resultaten bij kleinere formaten afbeeldingen. In Fi-guur 5.3 is te zien dat naarmate de afbeeldingen groter zijn de kentekenplaatdetectie mindergoed werkt. Dit komt omdat oneffenheden van de kentekenplaat zoals roest en deuken bij gro-tere afbeeldingen veel invloed hebben op de geometrische vorm. Waardoor het detecteren vande contouren en het vinden van vierhoeken in deze contourlijnen bemoeilijkt wordt.

De resultaten van de scheefstandcorrectie, in Figuur 5.5, zijn vrijwel onafhankelijk van de groottevan de afbeeldingen. Het aantal mislukte correcties is bij alle formaten van 1494 bij 26256 tot 597tot 1061 pixels 5 of 6. Alleen bij afbeeldingen met een kleiner formaat van 448 bij 796 pixels zijnhet aantal foute correcties 10. De scheefstandcorrectie gaat veelal fout doordat het gebied van dekentekenplaat gevonden door de kentekenplaatdetectie geen gelijkzijdige vierhoek is. Wanneermet deze onregelmatige vierhoek een transformatie matrix wordt opgesteld is de kans groot dathet resultaat van de transformatie erg vervormd is.

In Figuur 5.6 is te zien dat de optische karakterherkenning een optimum heeft bij afbeeldin-gen met een afmeting van 747 bij 1328 en 597 bij 1061 pixels. Bij grotere karakters wordt “5”vaker incorrect herkend als “S” en “0” als “O”. Andere karakters die relatief vaker fout gaan bijgrotere afmetingen zijn “4” en “T”. Dit komt omdat de data die gebruikt is bij het trainen vande OCR functionaliteit van OpenALPR geoptimaliseerd is voor karakters van de meest voorko-mende grootte. De kentekenplaten in de foto’s met de afmeting 747 bij 1328 en 597 en 1061vallen onder deze geoptimaliseerde grootte waardoor de resultaten beter zijn.

Bij het achterhalen van de gegevens behorende bij een kenteken zijn een aantal categorieen waarniet altijd informatie over gevonden kon worden, zie Figuur 5.7. Gedeeltelijk kan dit verklaardworden doordat van bedrijfsvoertuigen geen informatie over de kleur, aantal zitplaatsen en deprijs geregistreerd wordt door de RDW. Daarnaast is van een groot deel van de modellen geenprijsklasse bekend. In een aantal gevallen was de informatie uit de RDW dataset over het modelvan het voertuig te algemeen of vaag waardoor dit als onvolledig wordt gezien.

Bij de experimenten van de oplaadpuntlokalisatie in Sectie 5.3 was het lokaliseren bij drie op-laadpunten mislukt omdat die specifieke oplaadpunten niet aanwezig waren in de database. Delokalisatie van de andere oplaadpunten was wel succesvol.

37

38

HOOFDSTUK 7

Conclusie

Het doel van het project is om een systeem te ontwikkelen waarmee elektrische voertuigen aaneen oplaadpunt gespot worden. De bijbehorende onderzoeksvraag is: Is het mogelijk om aan dehand van een foto te bepalen wat voor elektrisch voertuig aan welk oplaadpunt wordt opgeladen?

In deze scriptie is een systeem ontworpen waarmee elektrische voertuigen die aan het opladenzijn gespot kunnen worden. Daarmee is het doel dat gesteld is bereikt. Het antwoord op deonderzoeksvraag is, ja. De experimenten tonen aan dat het goed mogelijk is om aan de hand vaneen foto te bepalen wat voor elektrisch voertuig in de afbeelding staat en aan welk oplaadpuntdeze wordt opgeladen.

Door middel van kentekenplaatherkenning en het opvragen van informatie over het kentekenbij de RDW kan een voertuig in een afbeelding herkend worden. Uit de experimenten is geblekendat in 94% van de gevallen met deze methode genoeg informatie van het voertuig is te ach-terhalen. De kentekenplaatdetectie en scheefstandcorrectie methodes die zijn geımplementeerdblijken beter te werken dan die van OpenALPR waardoor de prestaties van het ALPR systeemzijn verbeterd.

Het lokaliseren van het oplaadpunt aan de hand van de latitude en longitude coordinaten beho-rende bij de foto blijkt goed te werken. Door in de dataset van oplaadpunten in Nederland hetdichtstbijzijnde oplaadpunt te vinden met de wet van haversine kan deze met hoge nauwkeurig-heid worden gelokaliseerd. In de experimenten is 98% van de oplaadpunten met deze methodecorrect gelokaliseerd.

Het EV spotsysteem is dankzij de mobiele applicatie makkelijk in het gebruik en goed toe-gankelijk, ook voor mensen zonder technische achtergrond. Het draagvlak van het systeem isgroot omdat de mobiele applicatie voor zowel Android als iOS gebruikers is ontwikkeld.

Door het EV spotsysteem gescheiden te houden van het IDO-LAAD systeem komt de beveiligingvan de servers niet in gevaar. De procedure die is ontwikkeld voor de informatie overdrachttussen de twee systemen voorkomt dat een directe verbinding gemaakt hoeft te worden van deLAMP server met de servers in het prive netwerk van de HvA. Hierdoor blijft de veiligheid vande vertrouwelijke dataset van het IDO-LAAD programma gewaarborgd.

7.1 Toekomstige verbeteringen

Voor het testen van de voertuigherkenning component is een grotere dataset nodig waardoorbeter inzicht wordt verkregen in de prestaties ervan. Daarnaast is het noodzakelijk dat in dedataset foto’s van taxi’s aanwezig zijn. Om te kunnen experimenteren met de werking van hetkentekenplaatherkenning systeem bij kentekenplaten met een andere kleur dan geel.

39

In het experiment van de oplaadpuntlokalisatie kwam naar voren dat niet alle oplaadpuntenaanwezig zijn in de database. Een goede verbetering is om een manier te vinden waarmee metzekerheid elk oplaadpunt in Nederland verkregen kan worden. Daarnaast zal deze dataset vanoplaadpunten up-to-date moeten blijven zodat gegarandeerd altijd het juiste oplaadpunt gevon-den wordt met het systeem.

Bij het spotten van elektrische voertuigen met het systeem is menselijk handelen noodzake-lijk, namelijk met het gebruik van de mobiele applicatie. De meest ideale uitwerking zou zijnom op een geautomatiseerde manier te komen aan de foto’s van de elektrische voertuigen met debijbehorende latitude en longitude coordinaten. Door bijvoorbeeld camera’s op te hangen bij deoplaadpunten en deze te verbinden met de LAMP server door middel van de API. Dit was in dehuidige setting niet mogelijk omdat alleen beperkte hulpmiddelen beschikbaar waren.

40

Bibliografie

[1] Aditya Goyal, A. B., and Chowdhury, M. K. A comprehensive review of imagesmoothing techniques. International Journal of Advanced Research in Computer EngineeringTechnology 1 (2012), 315–319.

[2] afdeling Onderzoek, g. U. Elektrisch rijden in de g4. https://www.utrecht.

nl/fileadmin/uploads/documenten/2.concern-bestuur-uitvoering/Onderzoek_en_

cijfers/Elektrisch_rijden_in_de_G4.pdf, 2016. Accessed: 06-06-2016.

[3] Ahmad, I. S., Boufama, B., Habashi, P., Anderson, W., and Elamsy, T. Automaticlicense plate recognition: A comparative study. In 2015 IEEE International Symposium onSignal Processing and Information Technology (ISSPIT) (2015), IEEE, pp. 635–640.

[4] Basu, M. Gaussian-based edge-detection methods-a survey. IEEE Transactions on Systems,Man, and Cybernetics, Part C 32, 3 (2002), 252–260.

[5] Berger, T. Analysis of current vpn technologies. In Availability, Reliability and Security,2006. ARES 2006. The First International Conference on (2006), IEEE, pp. 8–pp.

[6] Bhushan, B., Singh, S., and Singla, R. License plate recognition system using neuralnetworks and multithresholding technique. International Journal of Computer Applications84, 5 (2013).

[7] Brahmbhatt, S. Practical OpenCV. Apress, 2013.

[8] Canny, J. A computational approach to edge detection. Pattern Analysis and MachineIntelligence, IEEE Transactions on, 6 (1986), 679–698.

[9] Cazenave, A. Geoid, topography and distribution of landforms. Global Earth Physics: AHandbook of Physical Constants (1995).

[10] Corporation, O. Mysql - the world’s most popular open source database. https://www.mysql.com/, 2016. Accessed: 07-06-2016.

[11] Dina, N. Z., and Dailey, M. Empirical study of car license plates recognition. JUTI:Jurnal Ilmiah Teknologi Informasi 13, 1 (2015), 1–11.

[12] Foundation, T. A. S. The apache http server project. https://httpd.apache.org/,2016. Accessed: 07-06-2016.

[13] Ghys, E. The shape of planet earth. http://www.josleys.com/show_gallery.php?

galid=313, 2016. Accessed: 27-05-2016.

[14] Google. Angularjs superheroic javascript mvw framework. https://angularjs.org/,2016. Accessed: 01-06-2016.

[15] Google. Getting started, google maps geocoding api, google developers. https://

developers.google.com/maps/documentation/geocoding/start, 2016. Accessed: 19-05-2016.

41

[16] Hardy, Q. Bizarre insights from big data. http://bits.blogs.nytimes.com/2012/03/

28/bizarre-insights-from-big-data/?_r=0, 2016. Accessed: 02-06-2016.

[17] HvA. E-mobility. http : / / www . hva . nl / kc - techniek / gedeelde - content /

onderzoeksprogrammas/cleantech/onderzoeksthema- s/e- mobility/e- mobility.

html, 2016. Accessed: 04-04-2016.

[18] IDO-LAAD. Intelligente data-gedreven optimalisatie laadinfrastructuur. http://www.

idolaad.nl/, 2016. Accessed: 04-04-2016.

[19] Ionic. Ionic: Advanced html5 hybrid mobile app framework. http://ionicframework.

com/, 2016. Accessed: 01-06-2016.

[20] Itseez. Opencv: Open source computer vision library. http://opencv.org/, 2016. Acces-sed: 03-06-2016.

[21] J.C. Spoelstra MSc, I. J. H. M. Public charging infrastructure use in the netherlands:A rollout-strategy assessment.

[22] Khurana, P., Bindal, P., et al. Study and comparative analysis of different hashalgorithm.

[23] Kocer, H. E., and Cevik, K. K. Artificial neural networks based vehicle license platerecognition. Procedia Computer Science 3 (2011), 1033–1037.

[24] Kulesza, M. J. E-Park: Automated-Ticketing Parking Meter System. PhD thesis, 2015.

[25] Kumar, M., Saxena, R., et al. Algorithm and technique on various edge detection: Asurvey. Signal & Image Processing 4, 3 (2013), 65.

[26] Levenshtein, V. I. Binary codes capable of correcting deletions, insertions, and reversals.In Soviet physics doklady (1966), vol. 10, pp. 707–710.

[27] LLP, T. M. Telegram bot api. https://core.telegram.org/bots/api, 2016. Accessed:24-05-2016.

[28] Malik, R., and Syal, R. Performance analysis of ip security vpn. International Journalof Computer Applications 8, 4 (2010), 0975.

[29] Navarro, G. A guided tour to approximate string matching. ACM computing surveys(CSUR) 33, 1 (2001), 31–88.

[30] NETMARKETSHARE. Mobile/tablet operating system market share. https://www.

netmarketshare.com/, 2016. Accessed: 25-05-2016.

[31] Ng, H. S., Tay, Y. H., Liang, K. M., Mokayed, H., and Hon, H. W. Detectionand recognition of malaysian special license plate based on sift features. arXiv preprintarXiv:1504.06921 (2015).

[32] Olex, V. Avoid vpn for database applications. http://www.slashdb.com/2013/01/19/

avoid-vpn-for-database-apps/, 2016. Accessed: 22-05-2016.

[33] OpenALPR Technology, I. Openalpr - automatic license plate recognition. http:

//www.openalpr.com/, 2016. Accessed: 02-06-2016.

[34] Otsu, N. A threshold selection method from gray-level histograms. Automatica 11, 285-296(1975), 23–27.

[35] Ozimek, A., Miles, D., et al. Stata utilities for geocoding and generating travel timeand travel distance information. Stata Journal 11, 1 (2011), 106.

[36] Porter, G. Decoupling storage and computation in hadoop with superdatanodes. ACMSIGOPS Operating Systems Review 44, 2 (2010), 41–46.

42

[37] psaiteja. Automatic/periodic ftp download using cron jobs. https://lookupnotes.

blogspot.nl/2013/03/automaticperiodic-ftp-download-using.html, 2016. Accessed:24-05-2016.

[38] RDW. Open mobiliteitsdata. https://opendata.rdw.nl/, 2016. Accessed: 04-04-2016.

[39] RDW. Uitleg over de cijfers en letters op de kentekenplaat. https://www.rdw.nl/

Particulier/Paginas/Uitleg-over-de-cijfers-en-letters-op-de-kentekenplaat.

aspx, 2016. Accessed: 21-05-2016.

[40] Robusto, C. The cosine-haversine formula. The American Mathematical Monthly 64, 1(1957), 38–40.

[41] Shack, A. Tracking colored objects in opencv. http://aishack.in/tutorials/

tracking-colored-objects-opencv/, 2016. Accessed: 11-05-2016.

[42] Sinnott, R. W. Virtues of the haversine. Sky and Telescope 68, 2 (1984), 159.

[43] Steven R. Loomis, Keith Winstein, J. L. Coded hashes of arbitrary images.

[44] Sural, S., Qian, G., and Pramanik, S. Segmentation and histogram generation usingthe hsv color space for image retrieval. In Image Processing. 2002. Proceedings. 2002 Inter-national Conference on (2002), vol. 2, IEEE, pp. II–589.

[45] Suzuki, S., et al. Topological structural analysis of digitized binary images by borderfollowing. Computer Vision, Graphics, and Image Processing 30, 1 (1985), 32–46.

[46] Systems, A. Apache cordova. https://cordova.apache.org/, 2016. Accessed: 01-06-2016.

[47] Tomasi, C., and Manduchi, R. Bilateral filtering for gray and color images. In ComputerVision, 1998. Sixth International Conference on (1998), IEEE, pp. 839–846.

[48] van den Hoed, R., Helmus, J., de Vries, R., and Bardok, D. Data analysis on thepublic charge infrastructure in the city of amsterdam. In Electric Vehicle Symposium andExhibition (EVS27), 2013 World (2013), IEEE, pp. 1–10.

[49] Zhang, J. Computer vision: If you had to choose, would you rather go without lumi-nance or chrominance? https://www.quora.com/Computer-Vision-If-you-had-to-

choose-would-you-rather-go-without-luminance-or-chrominance/answer/John-

Zhang, 2016. Accessed: 11-05-2016.

[50] Zhang, Y., and Zhou, Y. Separating computation and storage with storage virtualization.Computer Communications 34, 13 (2011), 1539–1548.

43