• No results found

Elektrisch voertuig spotsysteem door herkenning van kentekenplaten

N/A
N/A
Protected

Academic year: 2021

Share "Elektrisch voertuig spotsysteem door herkenning van kentekenplaten"

Copied!
43
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Bachelor Informatica

Elektrisch voertuig spotsysteem

door herkenning van kentekenplaten

Aike van den Brink

8 juni 2016

Supervisors: drs. ir. J.R. Helmus

Inf

orma

tica

Universiteit

v

an

Ams

terd

am

(2)
(3)

Samenvatting

De vraag naar elektrische voertuigen neemt sterk toe in Nederland. Een groot obstakel van deze groei is het uitrollen van een effici¨ente en goede oplaadinfrastructuur. Hiervoor is het IDO-LAAD project opgezet door de Hogeschool van Amsterdam. Het doel is om de uitrol en het gebruik van de oplaadinfrastructuur te optimaliseren door middel van datagedreven analyses. 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. In deze 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 afbeeldingen herkend. 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 een foto bepaald worden wat voor elektrisch voertuig aan welk oplaadpunt in Nederland wordt opgeladen.

(4)
(5)

Inhoudsopgave

1 Introductie 7 1.1 IDO-LAAD programma . . . 7 1.2 Onderzoeksvraag . . . 7 2 Gerelateerd werk 9 3 EV spotsysteem 11 3.1 Ontwerp . . . 11 3.2 IDO-LAAD systeem . . . 12 3.3 Systeemarchitectuur . . . 12 3.4 Mobiele applicatie . . . 14 3.4.1 Ionic framework . . . 15 3.4.2 Cordova plugins . . . 16 3.5 LAMP server . . . 16 3.5.1 Caching . . . 16 3.6 Voertuigherkenning . . . 17 3.6.1 Filteren en valideren . . . 17 3.6.2 RDW dataset . . . 17 3.6.3 Web scraper . . . 17 3.7 Oplaadpuntlokalisatie . . . 18 3.7.1 Haversine . . . 18 3.7.2 Oplaadpunt dataset . . . 19 4 Automatische kentekenplaatherkenning 21 4.1 Voorbewerking . . . 22 4.2 Kentekenplaatdetectie . . . 22 4.2.1 Kleurmethode . . . 24 4.2.2 Randenmethode . . . 25 4.2.3 Contouren detecteren . . . 26 4.2.4 Vierhoeken vinden . . . 27

4.2.5 Filteren van resultaat . . . 28

4.2.5.1 Grootte . . . 28 4.2.5.2 Geometrische vorm . . . 28 4.2.5.3 Kleur . . . 29 4.3 Scheefstandcorrectie . . . 29 4.4 OpenALPR . . . 29 5 Experimenten en Resultaten 31 5.1 Dataset . . . 31 5.2 Voertuigherkenning . . . 32 5.2.1 Kentekenplaatdetectie . . . 32 5.2.2 Scheefstandcorrectie . . . 34 5.2.3 Optische karakterherkenning . . . 34

(6)

5.2.4 Kentekengegevens achterhalen . . . 35 5.3 Oplaadpuntlokalisatie . . . 36 6 Discussie 37 7 Conclusie 39 7.1 Toekomstige verbeteringen . . . 39 Bibliografie 41

(7)

HOOFDSTUK 1

Introductie

1.1

IDO-LAAD programma

Amsterdam is een van de koplopers in Nederland op het gebied van stimulering van elektrische vervoersmiddelen [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 elektrisch vervoer [48]. Het beleid van de gemeente bestaat uit een aantal componenten, het ontwikkelen van 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 voervoer-tuig geen belemmering moet zijn voor het gebruik ervan [18]. In het kader hiervan is de laatste jaren op grote schaal een publieke oplaadinfrastructuur opgebouwd in Amsterdam bestaande uit meer dan 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 te bepalen 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 duidui-zend oplaadpunten in Nederland [21]. Dit is de 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 zijn soort. Het doel is om met deze informatie alle belanghebbenden binnen de oplaadinfrastructuur in staat te stellen de uitrol kosteneffici¨ent te maken. Daarnaast is het streven dat de oplaadpunten zo effici¨ent 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- en eindtijd van de sessie en aan welk oplaadpunt werd opgeladen [48]. Informatie over het elektrisch voertuig 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 bestaande dataset. Waardoor het mogelijk is om tot nieuwe conclusies te komen die kunnen bijdragen aan de 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

(8)

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

Hiervoor moet een systeem komen dat de onderzoekers van het IDO-LAAD programma in staat stelt om gegevens over het elektrisch voertuig toe te voegen aan de dataset. De vraag is hoe informatie over de elektrische voertuigen verkregen kan worden. Het idee is dat dit gedaan gaat worden 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 te achterhalen aan welk oplaadpunt wordt opgeladen kan de informatie van het voertuig gekoppeld worden aan bestaande oplaadsessie(s) in de dataset. Hieraan is de volgende onderzoeksvraag gekoppeld.

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

(9)

HOOFDSTUK 2

Gerelateerd werk

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

Dina en Dailey hebben een empirische studie gedaan naar kentekenplaatherkenning [11]. Het herkennen 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 met Haar cascade algoritmes. Voor het segmenteren van de kentekenplaat waren drie methodes ge¨ımplementeerd waarbij een Laplacian gebaseerde methode de hoogste nauwkeurigheid had. Voor de optische karakterherkenning waren twee methodes ge¨ımplementeerd waarbij een neuraal netwerk het beste werkte.

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

Bhushan, Singh en Singla hebben kentekenplaatherkenning ge¨ımplementeerd met behulp van neurale netwerken en multithresholding technieken [6]. Hiermee is een detectiepercentage van 98.40% bereikt. Het neurale netwerk werd gebruikt voor de optische karakterherkenning van de letters en cijfers van de kentekenplaat. Voor het detecteren van de kentekenplaat gebruikten Bhushan 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 werking berust 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 OpenALPR wordt gegeven een input afbeelding de bijbehorende kenteken van het voertuig teruggegeven in ASCII formaat.

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

(10)
(11)

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 apparaat heeft 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 is ge¨ımplementeerd.

3.1

Ontwerp

Bij het ontwerp van het EV spotsysteem is als doel gesteld dat het systeem voor de onderzoekers van het IDO-LAAD programma makkelijk in het gebruik moet zijn. Daarom is gekozen om het spotten 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 gemaakt en de bijbehorende locatiegegevens verzameld. Nadat de informatie is ingeladen in de mobiele applicatie wordt het verstuurd naar de LAMP server. Op de LAMP server wordt het voertuig herkend in de foto en bepaald aan welk oplaadpunt deze aan het opladen is. Deze componenten vinden plaatst op de LAMP server omdat het effici¨enter ge¨ımplementeerd kan worden op een volledig systeem dan op een mobiel apparaat. De gegevens over het elektrisch voertuig en het oplaadpunt 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.

(12)

3.2

IDO-LAAD systeem

Het IDO-LAAD programma heeft een systeem van servers die de onderzoekers gebruiken voor onderzoek van de dataset. Omdat het EV spotsysteem is gekoppeld aan het IDO-LAAD systeem moet ge¨ınventariseerd worden hoe dit systeem werkt. Het huidige systeem van het IDO-LAAD programma 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 server worden de queries van de SQL database uitgevoerd. Berekeningen met deze data worden gedaan op de computational server, een Ubuntu 14.04 LTS server. Het scheiden van de berekeningen en de opslag van data heeft een aantal voordelen. Door deze twee componenten op een apart systeem te draaien wordt effici¨enter gebruik gemaakt van de hardware [50] en is het systeem flexibeler [36] voor verschillende belasting.

De informatie van het IDO-LAAD project is privacy gevoelig en uiterst vertrouwelijk. Alleen medewerkers binnen het project hebben (gedeeltelijk) toegang tot de dataset. Om die reden zijn de twee servers aangesloten op een priv´e netwerk binnen de HvA en niet vrij toegankelijk van buitenaf. Door middel van een VPN (Virtual Private Network) verbinding is het mogelijk om toegang te krijgen tot de servers. De servers zijn wel instaat om vanuit het priv´e netwerk verbinding 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-IDO-LAAD systeem. Daarom moet het EV spotsysteem gekoppeld worden aan het IDO-LAAD systeem. In Figuur 3.3 is ge¨ıllustreerd hoe de koppeling tussen de twee systemen is gemaakt en hoe de losse apparaten van het EV spotsysteem aan elkaar verbonden zijn.

(13)

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 packet jitter toe [5]. Een groter nadelig effect is dat de throughput van een verbinding omlaag gaat bij het gebruik van VPN [28]. Daarnaast is het veiliger om geen directe verbinding te hebben met de servers in het priv´e netwerk. Daarom is gekozen om een aparte server buiten het priv´e netwerk te installeren waar de verschillende componenten van het EV spotsysteem op draaien. Hierdoor is het hele EV spotsysteem gescheiden van het IDO-LAAD systeem, dat alleen toegankelijk is via een VPN verbinding.

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

De gegevens van het spotten staan opgeslagen op de LAMP server. Om deze gegevens op de SQL server te krijgen is een procedure ontwikkeld waarbij geen connectie wordt gemaakt van de LAMP server naar de servers in het priv´e netwerk. Alle spots van ´e´en worden gebundeld in een JSON (JavaScript Object Notation) bestand. Het JSON bestand staat opgeslagen onder een geheim path om te voorkomen dat andere personen erbij kunnen. Deze methode wordt vaak toegepast 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 twaalf uur ’s nachts en wordt gemanaged door Cron. Dit is een tijdsgebaseerd taken reguleringspro-gramma in UNIX besturingssystemen. Het periodiek binnenhalen van bestanden op deze wijze is een gangbare methode [37].

(14)

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 meest gebruikte mobiele besturingssystemen Android en iOS (samen goed voor 90,34% [30] van alle mobiele telefoons en tablets) zodat het draagvlak zo groot mogelijk is. De mobiele applicatie bestaat 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 functionaliteit van het toestel. Als de gebruiker aan het verplaatsen is blijft de locatie up-to-date. Wanneer dit niet werkt is het mogelijk om op de locatie knop te drukken (aangeduid met de rode pijl), dan wordt de locatie geforceerd gezocht. Een afbeelding kan op twee manieren ingevoerd worden, uit de interne opslag van het toestel (blauwe pijl) of door een foto te maken met de camera (groene pijl). Als alles is ingevoerd moet op de knop “Upload” gedrukt worden waarna de informatie wordt verstuurd naar de LAMP server. Op de server wordt bepaald wat voor elektrisch voertuig in de afbeelding staat en aan welk oplaadpunt deze aan het opladen is.

(15)

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 is in staat om het elektrisch voertuig en het oplaadpunt die gevonden zijn te verifi¨eren. Dit wordt gedaan door op “Yes” te klikken waarna het systeem bevestiging heeft dat het resultaat correct is. Wanneer het kenteken van het elektrisch voertuig onjuist is herkend door het systeem kan dit aangepast worden. Na de aanpassing moet op “Update” geklikt worden waarna het systeem bij dit nieuwe kenteken alle informatie van het voertuig opzoekt. Wanneer het oplaadpunt dat gevonden is onjuist is kan geklikt worden op “No”. Het systeem gaat dan een ander oplaadpunt zoeken dat het meest waarschijnlijk is. De wijzigingen die de gebruiker doorvoert in de spot door op “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 ontwikkel framework. Ionic is een ontwikkel framework gebaseerd op HTML5 en gericht op het maken van hybride apps. Een hybride app is in essentie een website die draait in een browser shell van een app met toegang tot het native platform. Het ontwikkelen van een app met Ionic wordt gedaan in HTML, Javascript en CSS. Daarnaast gebruikt Ionic AngularJS [14] voor de core functies van het framework. AngularJS maakt dynamische inhoud van HTML pagina’s mogelijk door middel van nieuwe attributen in HTML. Voor functionaliteiten van het native platform worden externe plugins gebruikt. Nadat een app ontwikkeld is met Ionic kan deze gebruikt worden voor meerdere mobiele besturingssystemen.

(16)

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 native platform. Deze toegang is normaliter niet mogelijk voor een web-based applicatie. De volgende belangrijke 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 het toestel en om afbeeldingen te selecteren uit de fotobibliotheek van het apparaat. Wordt gebruikt om de foto van het elektrisch voertuig in te laden.

• cordova-plugin-geolocation, verstrekt informatie over de locatiegegevens van het apparaat zoals latitude en longitude cordinaten. Wordt gebruikt om de bijbehorende latitude en longitude co¨ordinaten 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 MySQL en PHP / Python. Het besturingssysteem van de server is Ubuntu 16.04 LTS en met Apache wordt de API beschikbaar gemaakt. Apache is een opensource HTTP webserver compatibel voor de meeste moderne besturingssystemen [12]. Voor de opslag van gegevens op de server wordt gebruik gemaakt van MySQL, dat is een opensource managementsysteem voor relationele databases [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 de database gehaald in plaats van opnieuw berekend. Hiervoor is het noodzakelijk dat de input en output paren opgeslagen worden. Op drie plaatsen is gebruik gemaakt van caching.

• Kentekenplaatherkenning

Van elke afbeelding wordt een korte unieke representatie bepaald waarmee deze ge¨ıdentificeerd kan worden. De representatie en de gevonden kentekens in de afbeelding worden opgeslagen in de database. Wanneer een afbeelding binnenkomt met een representatie die aanwezig is in de database staat vast dat deze al eerder verwerkt is door het systeem. Het is dan niet meer 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]. De enige twee eisen die gesteld worden aan het hashing algoritme is dat de kans op collisions zo klein mogelijk moet zijn en dat het qua rekenkracht niet intensief is. Daarom dat is gekozen voor de SHA-512 hash functie [22].

• Kenteken gegevens

Elk 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 deze al aanwezig is in de database. Als dit het geval is worden de gegevens van het kenteken uit de database gehaald en hoeft deze niet meer op het internet te worden opgevraagd. Het is echter mogelijk dat een voertuig een ander kenteken krijgt. Daarom heeft elk item in deze cache een levensduur van ´e´en dag.

(17)

dichtstbij ligt. Wanneer een gebruiker op dezelfde plek een elektrisch voertuig spot hoeft niet opnieuw het oplaadpunt gelokaliseerd te worden. In plaats daarvan komen de gegevens meteen uit de database. Het is mogelijk dat een nieuw oplaadpunt is gebouwd of juist weggehaald waardoor de lijst van dichtstbijzijnde oplaadpunten wijzigt. Daarom bestaan items in deze cache niet langer dan ´e´en dag.

3.6

Voertuigherkenning

Herkenning van het elektrisch voertuig in de afbeelding gaat door middel van het herkennen van de kentekenplaat. Voor de kentekenplaatherkenning is een apart systeem ge¨ımplementeerd, zie hoofdstuk 4. Met dit kenteken wordt vervolgens informatie over het voertuig opgevraagd uit de openbare dataset van het RDW (Rijksdienst voor het Wegverkeer) [38]. De RDW is de instelling in Nederland die de registratie van voertuigen verzorgt. Op deze wijze wordt via een relatief makkelijk 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. Om hiermee overweg te kunnen is een filter ingebouwd dat elk kenteken valideert. Van het kenteken met de hoogste waarschijnlijkheid dat door het filter heen komt wordt aangenomen dat het het kenteken is van het voertuig in de afbeelding.

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

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

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 het voertuig. De dataset is in de browser doorzoekbaar en kan gedownload worden in verschillende formaten. Wanneer de dataset in csv formaat wordt gedownload is het bestand 6.8 gigabyte groot. Elke dag wordt de dataset gewijzigd door toevoeging van kentekens of wijziging van de gegevens behorende bij een kenteken. Van de dataset is geen API beschikbaar om gegevens over een kenteken op te vragen.

3.6.3

Web scraper

Het is noodzakelijk voor het EV spotsysteem dat informatie van ´e´en enkel kenteken snel opge-vraagd kan worden. Dit is niet mogelijk met de openbare dataset van het RDW op de wijze waarop deze wordt aangeboden. Daarom wordt in plaats daarvan de webinterface van het RDW gebruikt. Met een web scraper wordt de informatie van een kenteken ge¨extraheerd 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 het kenteken 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.

(18)

• 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 deel 1 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) co¨ordinaten die aangeven waar op aarde de foto is genomen. Deze waarden worden gevonden met de GPS functionaliteit in het toestel. Daarnaast bevat het systeem van vrijwel alle oplaadpunten in Nederland de latitude en longitude waarden. In deze lijst van co¨ordinaten wordt gekeken welk oplaadpunt het dichtst in de buurt komt van de waarden van de foto. Op deze wijze wordt bepaald aan welk oplaadpunt het elektrisch voertuig in de afbeelding aan het opladen is.

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

Toch is het mogelijk om de Euclidische afstand tussen twee punten op het oppervlak van de aarde te berekenen met de stelling van Pythagoras [35]. Alleen levert dit een onnauwkeurige benadering van de werkelijkheid op. Daarom wordt voor het lokaliseren van het oplaadpunt de haversine vergelijking [40] gebruikt. De haversine methode houdt rekening met de kromming van de 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 een bol 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 waarden

d afstand r radius

θ hoek

Hieruit kan worden afgeleid dat de formule voor het berekenen van de afstand gelijk is aan: d = 2 ∗ r ∗ arcsin(phav(ϕ2− ϕ1) + cos(ϕ1) ∗ cos(ϕ2) ∗ hav(λ2− λ1))

(19)

De variabele r is in dit geval de radius van de aarde. Deze varieert tussen 6356.8km op de polen en 6378.1km op de evenaar [9]. Omdat de radius niet op elke plek gelijk is wordt het gemiddelde genomen. 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 elk oplaadpunt zijn de adresgegevens (provincie, stad, stadsdeel, straat en huisnummer) en locatie-gegevens (latitude en longitude co¨ordinaten) bekend. Oorspronkelijk waren de locatiegegevens van de oplaadpunten niet aanwezig. Vervolgens zijn deze bepaald met behulp van de Google Geocoding API [15] en de bestaande adresgegevens. Geocoding is het proces waarbij een adres omgezet wordt in geografische co¨ordinaten, zoals bijvoorbeeld latitude en longitude co¨ordinaten. 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 SQL query in de database. Een oplaadpunt wordt geselecteerd wanneer de latitude en de longitude waarde niet meer verschilt dan twee bepaalde waarden. Deze waarden zijn zo vastgesteld dat alle punten in een straal van ongeveer een halve kilometer geselecteerd worden. Latitude en lon-gitude co¨ordinaten zijn geen cartesisch co¨ordinatenstelsel en daarom is de grootte van de straal niet overal gelijk. Het maximale verschil in Nederland is niet groter dan 20 meter.

(20)
(21)

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 waarbij automatisch 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 in de implementatie geen rekening gehouden te worden met video als input.

Een ALPR systeem kan op verschillende manieren ge¨ımplementeerd worden. De effectiviteit van 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 omdat het per land erg verschilt wat de visuele kenmerken van de kentekenplaat zijn. Het lettertype van de karakters heeft invloed op de optische karakterhekenning [31]. De kleur en grootte van de kentekenplaat be¨ınvloeden de kentekenplaatdetectie [3]. Daarnaast speelt kwaliteit van de input een grote rol in de effectiviteit van een ALPR systeem [6].

Het ALPR systeem bestaat uit een aantal hoofdcomponenten: • Voorbewerking

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

• Kentekenplaatdetectie

In deze fase wordt de kentekenplaat in de afbeelding gedetecteerd. Het gebied waar de kentekenplaat aanwezig is wordt ge¨extraheerd uit de afbeelding. De vervolgstappen in het proces werken beter wanneer enkel de kentekenplaat wordt gebruikt.

• Karakter segmentatie

Gegeven de kentekenplaat uit de kentekenplaatdetectie stap worden de afzonderlijke ka-rakters gescheiden van elkaar. Wanneer de kaka-rakters scheef staan wordt deze scheefstand gecorrigeerd. Deze stap kan ook voor de segmentatie van de karakters worden uitgevoerd. • Optische karakterherkenning

In de laatste fase worden de individuele karakters van de kentekenplaat herkend, dit wordt OCR (Optical Character Recognition) genoemd. Voor elk gevonden karakter uit de afbeel-ding wordt bepaald wat het hoogst waarschijnlijke bijbehorende letters of cijfers is. Het resultaat 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 en vrij toegankelijk voor iedereen. Uit experimenten is gebleken dat de kentekenplaatdetectie en scheefstandcorrectie componenten van OpenALPR minder goed werken op Nederlandse kente-kenplaten, zie Sectie 5.2.1. Daarom is voor het ALPR systeem een eigen kentekenplaatdetectie

(22)

en scheefstandcorrectie methode ge¨ımplementeerd voor betere resultaten. In Figuur 4.2 is een doorstroomschema 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 voor het systeem. Uit experimenten beschreven in Sectie 5.2 is gebleken dat de afmetingen van deze ideale grootte liggen tussen 896 bij 1592 en 448 bij 796 pixels. Het heeft geen invloed wat de ratio tussen de lengte en breedte van de afbeelding is. Wat wel invloed heeft is de absolute grootte van de kentekenplaat in de afbeelding. De kentekenplaat moet niet te groot zijn omdat anders oneffenheden zoals deuken en roestplekken te veel invloed hebben op de vorm van de kentekenplaat waardoor het detecteren van de kentekenplaat bemoeilijkt wordt. Daarnaast werkt de optische karakterherkenning minder goed bij grote tekens, zie Sectie 5.2.3. Ook wanneer de afbeelding te klein is behaald de optische karakterherkenning slechtere resultaten bij het herkennen van de letters en cijfers van de kentekenplaat. Een ander voordeel van het verkleinen van 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.

(23)

Figuur 4.2: Doorstroomschema van het kentekenplaatdetectie proces.

Voor het vinden van de kentekenplaat zijn twee methodes ge¨ımplementeerd die beide een andere werking hebben. De meest simpele en voor de hand liggende methode is door te zoeken naar randen in de afbeelding [31] [11]. De kentekenplaat heeft altijd twee vrijwel parallelle horizontale en twee verticale randen. Door deze randen te detecteren in de afbeelding en daarin vierhoeken te 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 geometrische vormen 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 wordt gedetecteerd gaat door middel van de randendetectie methode gezocht worden. Het is mogelijk dat in de afbeelding een voertuig staat met aan andere kleur kentekenplaat dan geel. Taxi’s in Nederland hebben bijvoorbeeld een blauwe kentekenplaat. Voertuigen uit andere landen kunnen zelfs een geheel andere kleur kentekenplaat hebben. Door deze twee methodes te combineren bij het zoeken naar de kentekenplaat kan elke soort kentekenplaat gedetecteerd worden met een hoge precisie.

(24)

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 gemaakt van drie dimensies, namelijk de kleurtint, verzadiging en intensiteit. Het voordeel van het HSV kleurenmodel 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 eenvoudiger om 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. Het resultaat 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 experimenteren is ´e´en 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 echter niet dekkend genoeg. Daarom zijn drie extra bereiken vastgesteld die voor donkere, lichte en vage geel kleuren optimaal werken.

In Figuur 4.3 wordt een overzicht gegeven van de stappen die een afbeelding doorloopt. Daarin is 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 ge¨egaliseerd met een Gaussian filter [4]. Na het toepassen het 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 te vinden. In Figuur 4.4 is weergegeven hoe de kentekenplaat voor en na het filter eruitziet.

(25)

(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 het kleurverschil [49]. Berekeningen met grijswaardeafbeeldingen gaan sneller dan met kleurenaf-beeldingen waardoor de processen sneller verlopen. Daarnaast is het niet goed mogelijk om met gerenommeerde methodes in kleurenafbeeldingen randen te detecteren [25]. Ter visualisatie van de processen van de kentekenplaatdetectie wordt telkens dezelfde afbeelding gebruikt. In Figuur 4.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 bemoeilijken om de rechte randen van de kentekenplaat te vinden. Het bilateraal filter is geschikt voor deze toepassing 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

(26)

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 kentekenplaat te vinden [23] [25]. Een voordeel van deze techniek is dat de kleur van de kentekenplaat geen invloed heeft op het resultaat. Daardoor kan het voor elke soort kentekenplaat gebruikt worden onafhankelijk van de kleur.

Canny edge detection heeft twee drempelwaarden die gebruikt worden door de algoritmes. Deze drempelwaarden hebben een grote invloed op de nauwkeurigheid van de Canny edge detector. Per afbeelding is het verschillend welke drempelwaarden het beste resultaat oplevert. Om de meest 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 resultaat van 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 wordt gedaan met OpenCV waarin de functie findContours is ge¨ımplementeerd dat contouren vindt in een afbeelding. Deze functie gebruikt de methodes beschreven en uitgewerkt in de paper Topological structural analysis of digitized binary images by border following [45]. In elk soort afbeelding kunnen de contouren gevonden worden met de findContours functie maar de beste resultaten 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 originele kleurenafbeelding. In Figuur 4.8 is te zien welke contouren met deze methode gevonden worden in de voorbeeld afbeelding.

(27)

Figuur 4.8: Contouren van de afbeelding.

4.2.4

Vierhoeken vinden

In de afbeelding worden veel contouren gedetecteerd waarvan alleen die van de kentekenplaat relevant zijn. Om deze contouren te vinden wordt gezocht naar contourlijnen die vrijwel een vierhoek 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 vervolgens wordt nagegaan of dit een vierhoek betreft. Het resultaat is een verzameling vierhoeken die representatief zijn voor de originele open contourlijnen.

(28)

In Figuur 4.9 is weergegeven wat voor vierhoeken gevonden worden in de contouren van Figuur 4.8. Van alle vierhoeken zijn de hoeken gemarkeerd in de afbeelding om het beter zichtbaar te maken. 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 zijn filters ingebouwd. Wanneer niet wordt voldaan aan bepaalde voorwaarden die zijn gedefinieerd in het filter wordt de vierhoek aangemerkt als ongeldig. Na het filteren blijft alleen de vierhoek van 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 gevonden met de kleurmethode. Van de vierhoeken gevonden met de kleurmethode kan aangenomen wor-den dat ze geeltinten bevatten anders waren ze niet gevonwor-den met de kleurmethode. Het filter gebaseerd 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 worden gefilterd omdat hiervan vast staat dat het niet de kentekenplaat kan zijn. De minimale grootte die gedefinieerd is in het configuratie bestand van OpenALPR is 70 pixels wijdt en 35 pixels hoog. 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 lijnen vrijwel parallel lopen en even lang zijn, voor de twee verticale lijnen geldt hetzelfde. Van een vierhoek 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 van een 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 niet als het precies op een hoek van de vierhoek valt. In Figuur 4.10 is dit proces bij een ongeldig vierhoek ge¨ıllustreerd.

(29)

De gele rechthoek is de omheining van de vierhoek, de groene lijnen zijn de vierhoek en de witte lijnen 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 met een 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 van de kentekenplaat. Deze varieert tussen de waarden 2.5 en 5.5, een vierhoek met een verhouding die hier niet tussen valt is ongeldig.

4.2.5.3 Kleur

Bij dit filter wordt gekeken hoeveel geeltinten een vierhoek bevat. Als een vierhoek relatief weinig pixels heeft die binnen een bepaald bereik van geeltinten valt dan is deze ongeldig. Net zoals bij de kleurmethode 4.2.1 wordt de RGB afbeelding omgezet in HSV formaat. Vervolgens wordt hier een binaire afbeelding van gemaakt door over de individuele pixels te itereren en na te gaan of deze binnen een bepaald bereik vallen. In Figuur 4.11 een voorbeeld van een steen die aangemerkt 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 de co¨ordinaten van de hoeken van de kentekenplaat nodig. Daarnaast zijn de beoogde co¨ordinaten van de hoeken nodig na de scheefstandcorrectie van de kentekenplaat. Gegeven deze twee groe-pen co¨ordinaten wordt een perspectief transformatie matrix bepaald. Met deze matrix worden de co¨ordinaten 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

(30)

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 enkel de kentekenplaat in te voeren.

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

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

• postprocess min confidence, deze waarde bepaalt hoe zeker de optische karakterherkenning moet zijn over een geschat karakter. Als de waarschijnlijkheid van een bepaald karakter lager 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 waarschijnlijkheid ervan. Omdat de laatste stappen van het ALPR systeem worden uitgevoerd door OpenALPR is deze lijst ook de output van het ALPR systeem.

(31)

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 elk component apart ge¨experimenteerd. 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 zo een 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 uit andere landen. Om het ALPR systeem te testen is daarom zelf een dataset van Nederlandse kentekenplaten 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 zijn geschaalde versies gemaakt met een verkleining van 0.5, 0.3, 0.25, 0.20 en 0.125. De waarden van de verkleiningen zijn zo gekozen dat de resulterende afbeeldingen een bereik van formaten bedekken 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 vari¨eren in kwaliteit en grootte om de verschillende ge-bruikers na te bootsen. Op deze wijze kan goed getest worden hoe robuust het ALPR systeem is. Daarnaast moet de dataset groot genoeg zijn om algemene conclusies te kunnen trekken uit de resultaten van de experimenten. In Figuur 5.1 staan voorbeelden van kentekenplaten uit de dataset met variatie in belichting, rotatie, scherpte en kwaliteit.

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

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

(32)

5.2

Voertuigherkenning

Met het voertuigherkenning component is ge¨experimenteerd in welke mate het systeem in staat is om het elektrisch voertuig in de afbeeldingen te herkennen. Voor deze experimenten is gebruik gemaakt 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 het voertuig correct zijn achterhaald. Als een of beide van deze kenmerken van het voertuig niet of onvolledig zijn achterhaald is de herkenning “fout”.

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 796 0 20 40 60 80 100 120 140 160 180 200 Afmetingen Ho ev eelheid Goed Fout

Figuur 5.2: Resultaten van de voertuigherkenning component.

Het herkennen van het voertuig in een afbeelding bestaat uit meerdere onafhankelijke fases. Met elke fase is apart ge¨experimenteerd om beter inzicht te krijgen in de individuele prestatie. Voor al 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 alle verschillende 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 output wordt gegeven, zoals de voorbeelden in Figuur 5.1. Kentekenplaten die voor een deel gedetecteerd worden, minstens 50% van de kentekenplaat, zijn aangemerkt als “half”. Het is mogelijk dat andere objecten in de afbeelding worden gezien als de kentekenplaat. Dit soort gevallen zitten bij de categorie “fout”. Wanneer de kentekenplaat helemaal niet is gedetecteerd in de afbeelding krijgt het de label “leeg”.

(33)

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 de kentekenplaatdetectie 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 796 0 20 40 60 80 100 120 140 160 180 200 Afmetingen Ho ev eelheid Goed Half Fout Leeg

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 796 0 20 40 60 80 100 120 140 160 180 200 Afmetingen Ho ev eelheid Goed Half Fout Leeg

(34)

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 vari¨eren van 0% tot 20% en in verticale richting van 0% tot 30%. Daarnaast hebben een aantal kentekenplaten een perspectiefvervorming in horizontale of 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 kenken-tekenplaat nog steeds 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 796 0 10 20 30 40 50 60 Afmetingen Ho ev eelheid Goed Geen 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 prestatie van de optische karakterherkenning component is. Voor het vergelijken van de output met het werkelijke kenteken is gebruik gemaakt van de Levenshteinafstand [26]. De Levenshteinafstand is een methode voor het bepalen van de afstand tussen twee sequenties van tekens. Het geeft aan wat 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 en verplaatsing van tekens [29]. Elke operatie zorgt ervoor dat de Levenshteinafstand met 1 wordt verhoogd.

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”.

(35)

1494 x 2656 1195 x 2124 896 x 1592 747 x 1328 597 x 1061 448 x 796 0 20 40 60 80 100 120 140 160 180 200 Afmetingen Ho ev eelheid Goed Onvolledig 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 categorie¨en (soort, merk, model, configuratie, aantal zitplaatsen, kleur en prijs van het voertuig) achterhaald kan worden. In Figuur 5.7 zijn de resultaten daarvan weergegeven. De gegevens van een voertuig zijn gekenmerkt als “goed” wanneer de gevonden informatie de lading helemaal dekt. Wanneer dit in mindere mate het geval is wordt het gezien als “onvolledig”. Het is “fout” wanneer geen informatie gevonden is of als het onjuist is.

soort merk configuratie model kleur zitplaatsen prijs 0 20 40 60 80 100 120 140 160 180 200 Gegevens Ho ev eelheid Goed Onvolledig Leeg

(36)

5.3

Oplaadpuntlokalisatie

Het lokaliseren van de oplaadpunten is getest door middel van een veldonderzoek. In twee verschillende 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 niet goed gegaan. De lokalisatie van alle oplaadpunten in Alkmaar waren succesvol. In totaal heeft de lokalisatie functionaliteit van het systeem in dit onderzoek een succespercentage van 98 procent.

(37)

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 formaten afbeeldingen. De beste resultaten worden verkregen bij afbeeldingen met een formaat van 747 bij 1328 en 597 en 1061 pixels. De afbeeldingen met kleinere en grotere formaten dan deze waarden hebben steeds slechter wordende resultaten. Het optimum kan verklaard worden door te kijken naar 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 minder goed 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 detecgro-teren van de 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 grootte van de afbeeldingen. Het aantal mislukte correcties is bij alle formaten van 1494 bij 26256 tot 597 tot 1061 pixels 5 of 6. Alleen bij afbeeldingen met een kleiner formaat van 448 bij 796 pixels zijn het aantal foute correcties 10. De scheefstandcorrectie gaat veelal fout doordat het gebied van de kentekenplaat gevonden door de kentekenplaatdetectie geen gelijkzijdige vierhoek is. Wanneer met deze onregelmatige vierhoek een transformatie matrix wordt opgesteld is de kans groot dat het 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 bij grotere afmetingen zijn “4” en “T”. Dit komt omdat de data die gebruikt is bij het trainen van de 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 1061 vallen onder deze geoptimaliseerde grootte waardoor de resultaten beter zijn.

Bij het achterhalen van de gegevens behorende bij een kenteken zijn een aantal categorie¨en waar niet altijd informatie over gevonden kon worden, zie Figuur 5.7. Gedeeltelijk kan dit verklaard worden doordat van bedrijfsvoertuigen geen informatie over de kleur, aantal zitplaatsen en de prijs geregistreerd wordt door de RDW. Daarnaast is van een groot deel van de modellen geen prijsklasse bekend. In een aantal gevallen was de informatie uit de RDW dataset over het model van 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 opop-laadpunten niet aanwezig waren in de database. De lokalisatie van de andere oplaadpunten was wel succesvol.

(38)
(39)

HOOFDSTUK 7

Conclusie

Het doel van het project is om een systeem te ontwikkelen waarmee elektrische voertuigen aan een oplaadpunt gespot worden. De bijbehorende onderzoeksvraag is: Is het mogelijk om aan de hand 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 opladen zijn gespot kunnen worden. Daarmee is het doel dat gesteld is bereikt. Het antwoord op de onderzoeksvraag is, ja. De experimenten tonen aan dat het goed mogelijk is om aan de hand van een foto te bepalen wat voor elektrisch voertuig in de afbeelding staat en aan welk oplaadpunt deze wordt opgeladen.

Door middel van kentekenplaatherkenning en het opvragen van informatie over het kenteken bij de RDW kan een voertuig in een afbeelding herkend worden. Uit de experimenten is gebleken dat 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¨ımplementeerd blijken beter te werken dan die van OpenALPR waardoor de prestaties van het ALPR systeem zijn verbeterd.

Het lokaliseren van het oplaadpunt aan de hand van de latitude en longitude co¨ordinaten beho-rende bij de foto blijkt goed te werken. Door in de dataset van oplaadpunten in Nederland het dichtstbijzijnde 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 methode correct 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 is groot 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 beveiliging van de servers niet in gevaar. De procedure die is ontwikkeld voor de informatie overdracht tussen de twee systemen voorkomt dat een directe verbinding gemaakt hoeft te worden van de LAMP server met de servers in het priv´e netwerk van de HvA. Hierdoor blijft de veiligheid van de vertrouwelijke dataset van het IDO-LAAD programma gewaarborgd.

7.1

Toekomstige verbeteringen

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

(40)

In het experiment van de oplaadpuntlokalisatie kwam naar voren dat niet alle oplaadpunten aanwezig zijn in de database. Een goede verbetering is om een manier te vinden waarmee met zekerheid elk oplaadpunt in Nederland verkregen kan worden. Daarnaast zal deze dataset van oplaadpunten 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 zijn om op een geautomatiseerde manier te komen aan de foto’s van de elektrische voertuigen met de bijbehorende latitude en longitude co¨ordinaten. Door bijvoorbeeld camera’s op te hangen bij de oplaadpunten en deze te verbinden met de LAMP server door middel van de API. Dit was in de huidige setting niet mogelijk omdat alleen beperkte hulpmiddelen beschikbaar waren.

(41)

Bibliografie

[1] Aditya Goyal, A. B., and Chowdhury, M. K. A comprehensive review of image smoothing techniques. International Journal of Advanced Research in Computer Engineering Technology 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. Automatic license plate recognition: A comparative study. In 2015 IEEE International Symposium on Signal 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 neural networks and multithresholding technique. International Journal of Computer Applications 84, 5 (2013).

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

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

[9] Cazenave, A. Geoid, topography and distribution of landforms. Global Earth Physics: A Handbook 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.

(42)

[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 hash algorithm.

[23] Kocer, H. E., and Cevik, K. K. Artificial neural networks based vehicle license plate recognition. 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: A

survey. 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 Journal of 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. Detection and recognition of malaysian special license plate based on sift features. arXiv preprint arXiv: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 time and travel distance information. Stata Journal 11, 1 (2011), 106.

(43)

[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 using the 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 border following. 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 Computer Vision, 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 the public charge infrastructure in the city of amsterdam. In Electric Vehicle Symposium and Exhibition (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 chromilumi-nance? 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.

Referenties

GERELATEERDE DOCUMENTEN

Ook komt in het huidige onderzoek naar voren dat een EV over het algemeen als goed wordt gezien voor het milieu ten opzichte van een VMV omdat een EV geen uitlaatgassen

De Mestbank geeft de toestemming om het vervangingsvoertuig, vermeld in vraag 7 van deze aanvraag, te gebruiken van dag    maand    jaar      tot en met dag    maand

Wacht met het besturen van een voertuig totdat u zich weer goed kunt bewegen..

Welke$ medewerkers$ moeten$ worden$ betrokken$ bij$ het$ maken$ van$ een$ afweging$

reflecterende lijnmarkering is met ingang van 1/1/'08 verplicht voor alle nieuwe voertuigen volgens nieuwe typegoedkeuring boven de 7 ton (zie bijlage voorschrift), deze tape

• Conclusies zijn geldig voor een gemiddeld

ƒ Een SIV moet binnen enkele minuten gevolgd kunnen worden door een tankautospuit, zodat een goede brandweerzorg is gewaarborgd.. Met name bij incidenten met een hoger

Aanvraag individuele goedkeuring (2018/858/EU en 2020/683/EU) U (de aanvrager) verklaart dat het voertuig dat u aanbiedt voor een keuring, ontworpen en geconstrueerd is om tijdens