Provincie Zuid-Holland, september 2019
Real-time Deep Learning Algoritmes Voor Optimale
Verkeersdoorstroming Bij Brugopening
Dani¨
el R.L. Overdevest1 2, Michael R. de Winter 1, Dennis van Muijen 13 en Joana F.M.F.
Cardoso1*
Samenvatting
De provincie Zuid-Holland heeft een belangrijke rol in de verkeersdoorstroming binnen de regio door het bedienen
en onderhouden van meer dan 100 bruggen. Slimme ICT-oplossingen bieden nieuwe kansen om via sensoren
en algoritmes haarfijn actuele verkeersinformatie te koppelen aan live scheepsvaart informatie. In het project
‘impactmonitor brugopeningen’ is hierin een wezenlijke stap gezet in het voorspellen van verkeersintensiteiten
rondom een aantal belangrijke bruggen in de provincie Zuid-Holland. De gebruikte Long Short-Term Memory
neurale netwerken kunnen met een correlatieco
¨
effici
¨
ent nauwkeurigheid van 75-95% voorspellingen doen tot
21 minuten vooruit. De ontwikkelde algoritmes zijn uitgerold binnen een Azure cloud omgeving en opgeleverd
als gebruiksvriendelijke webapplicatie waarin live scheepsvaart en verkeersinformatie gepresenteerd wordt.
Deze informatie wordt door de applicatie gebruikt om het optimale moment voor een brugopening te adviseren
aan een brugbedienaar. In een volgende fase kan ook deze informatie direct teruggevoerd worden aan het
verkeersnetwerk waarmee bijvoorbeeld navigatie software rekening kan gaan houden met geplande brugopenin-
gen. Samenvattend, de ontwikkelde webapplicatie gebruikt recente technologie op het gebied van kunstmatige
intelligentie waarmee brugbedienaars vakkennis kunnen combineren met de laatste technologie.
Keywords
Brug monitoringsysteem (BMS), Verkeersdoorstroming Voorspellen, Deep learning, Long Short-Term Memory
(LSTM), Verkeerscongestiemodel, Data science, Prognosemodel, Real-time, API
1Provincie Zuid-Holland, Programma Transparante Open Provincie (TOP) - Opgave Vernieuwing Datawarehouse, Afdeling I & A,
Zuid-Hollandplein 1, 2509 LP Den Haag
2DO IT analytics: daniel@doit-analytics.nl
3Affine Solutions: d@affine.nl
*Correspondentie: j.cardoso@pzh.nl
Inhoudsopgave
1 Inleiding 1
2 Dataset voorbewerkingen 2
2.1 Gebruikte datasets . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Datakwaliteit en opschoonacties . . . . . . . . . . . . 2
2.3 Gebruikte tools & technieken . . . . . . . . . . . . . . 3
3 Modeleren en voorspellen verkeersintensiteiten 3
3.1 LSTM neuraal netwerken . . . . . . . . . . . . . . . . . 3
3.2 Geselecteerde modellen . . . . . . . . . . . . . . . . . . 3
3.3 Parameter optimalisatie . . . . . . . . . . . . . . . . . . 4
4 Model evaluatie 4
4.1Baselinemodel ........................4
4.2Resultaten............................4
5 Deployment 5
5.1 Productiewaardig maken . . . . . . . . . . . . . . . . . 5
5.2 Real-time databronnen . . . . . . . . . . . . . . . . . . . 5
5.3PrognoseAPI .........................5
5.4Performance ..........................6
6 Conclusie en vervolgonderzoek 7
Acknowledgments 7
Referenties 7
1. Inleiding
In de waterrijke en dichtbevolkte provincie Zuid-Holland is
een vloeiende doorstroming van het verkeer over water en land
van essentieel belang. De provincie Zuid-Holland heeft hierin
een belangrijke rol als verantwoordelijke voor het bedienen en
onderhouden van meer dan 100 bruggen. Van deze bruggen
zijn er 55 die sensoren hebben waarmee gemonitord wordt of
de brug open of dicht is. Voor een steeds groter wordend aantal
van deze bruggen staat de provincie voor een uitdaging om de
verkeersstroom optimaal af te stemmen met de scheepsvaart
en een toenemende verkeersdrukte. De provincie zet zich
in voor een slimmere, veiligere en effici
¨
entere doorvaart om
deze uitdagingen te verwezenlijken. Dit doet zij samen met
haar partners in de regio – o.a. wegbeheerders binnen Bereik!
[
1
] – het rijk zoals Blauwe Golf Verbindend [
2
] en het Smart
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 2/7
Shipping programma vanuit Rijkswaterstaat [3].
Bij de Provincie is er in projectvorm, samen met Dienst
Beheer Infrastructuur (DBI) en Afdeling Informatisering &
Automatisering (I
&
A), gewerkt aan een innovatieve ICT- op-
lossing: de Impactmonitor Brugopeningen. Brugbedienaren
worden in deze applicatie van real-time informatie voorzien
om het meest effici
¨
ente openingsmoment voor een brug te
bepalen. Hierbij wordt gekeken naar de impact van een brug-
opening op doorstroming en uitstoot. Goederenvervoer over
water staat hoog op de agenda van de provincie als duurzame
vervoers-modaliteit. Tegelijkertijd veroorzaakt een brugope-
ning overlast op de wegen; het zorgt voor file en wachtrijen
voor de brug. De Impactmonitor Brugopeningen is gebouwd
om brugbedienaars te ondersteunen in het kiezen van het opti-
male moment voor een brugopening. De applicatie is uitgerust
om de verkeersdrukte tot 21 minuten vooruit te voorspellen
in combinatie met actuele scheepsverkeerinformatie. Er zijn
op dit moment drie bruggen opgenomen in de Impactmoni-
tor Brugopeningen: de Coenecoopbrug (Waddinxveen), de
Lammebrug (Leiden) en de Kruithuisbrug (Delft). De im-
pactmonitor brugopeningen is een beslissings-ondersteunende
webapplicatie die helemaal is aangepast op het gedrag en
werkproces van brugbedienaren. Uiteindelijk biedt de appli-
catie naast real-time informatie ook adviezen voor het beste
openings-moment waarmee zo min mogelijk hinder wordt
veroorzaakt voor het wegverkeer met de laagste CO2 voetaf-
druk. De applicatie wordt momenteel met een selecte groep
getest waarna deze na verdere evaluatie gefaseerd zal worden
ingevoerd in de bediencentrale.
Op technisch vlak komen in de ’Impactmonitor Brugope-
ningen’ moderne ontwikkelingen op het gebied van big data,
kunstmatige intelligentie en applicatieontwikkeling bijeen (fi-
guur 1). Van het uitlezen en verwerken van real-time big data
in de vorm van verkeersdata uit meetlussen, het verwerken van
deze data door neurale netwerken, een prognose over de ver-
wachtte verkeersdrukte tot het uitlezen van diverse API’s. Dit
alles samengebracht in een moderne webapplicatie. In deze
paper beschrijven wij zowel de benodigde technische aspec-
ten om de data te verwerken, de gebruikte gereedschappen en
aanpak op het gebied van machine learning en de uiteindelijke
presentatie-vorm in een gebruiksvriendelijke userinterface.
Figuur 1. Ideale situatie waar de schepen, wegverkeer en
brugbediening met elkaar in verbinding staan via slimme
sensoren
2. Dataset voorbewerkingen
2.1 Gebruikte datasets
HIG meetlusgegevens
In de provinciale wegen liggen meet
lussen die de doorstroom van het verkeer in aantal voertuigen,
soort voertuig en snelheid per voertuig registreert. Slechts een
subset van deze lussen wordt real-time ontsloten aan het NDW
– de rest wordt gebruikt voor monitoring en evaluatie. Omdat
niet alle voor het project relevante meetlussen beschikbaar
waren in het NDW is bij de leverancier een ruwe dataset opge-
vraagd voor de drie in de inleiding genoemde bruggen. Hierin
stonden de meest gedetailleerde data van alle voertuigen die
over een meetlus rijden, waarbij elke regel in de dataset
´
e
´
en
voertuig is. Voor het verdere gebruik van deze data zijn de
individuele regels geaggregeerd per minuut met de som van
aantal voertuigen, gemiddelde snelheid en gemiddelde lengte
en aantallen per voertuigclasses. Hierbij is tussen de
´
e
´
en en
twee jaar aan historische data gebruikt voor het maken van het
voorspelmodel afhankelijk van beschikbaarheid per meetlus.
NDW real-time wegverkeersintensiteiten
De Nationale Da-
tabank Wegverkeersgegevens (NDW) heeft actuele verkeers-
gegevens van het aantal voertuigen dat per minuut een meet-
punt passeert. Deze real-time data wordt gebruikt voor de
uiteindelijke real-time voorspelling.
Centrale Object Bediening Analyse Log Data (Cobald) brug-
opening data
Cobald is een voor de Provincie ontwikkeld
systeem dat gekoppeld staat aan de bediencentrale. Alle histo-
rische brugopeningen met daarin het moment (start datum/tijd)
en de duur van de brugopening staan hierin. Deze historische
data is gebruikt voor het prepareren en analyseren van de
meetlusgegevens.
Bridge Sense real-time data
Op de meeste bruggen zijn
extra sensoren geplaatst die real-time brugopeningen detec-
teert en doorstuurt aan de Blauwe Golf Verbindend en het
NDW – die het beschikbaar stellen als OpenData. Deze real-
time data wordt gebruikt voor de actuele brugstatus in de
ontwikkelde webapplicatie.
2.2 Datakwaliteit en opschoonacties
Sensordata is vaak gevoelig voor meetfouten waardoor er een
aantal data kwaliteitscontroles en opschoonacties benodigd
waren. De opschoonacties zijn gebaseerd op beschrijvende
statistiek en uitbijters. De volgende opschoonregels zijn toe-
gepast:
Meetlus: Voertuig lengte langer dan 18.7 meter zijn
verwijderd.
Meetlus: Voertuig snelheid groter dan 120 km/u zijn
verwijderd.
Brugopening: Brugopeningen korter dan 3 minuten en
langer dan 14 minuten zijn verwijderd.
Voor het model willen we de te verwachten verkeersdrukte
weten. Gebeurtenissen op de weg en wegopbrekingen (zo-
als een brugopening) geven een vertekenend beeld van de
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 3/7
te verwachte intensiteit op een wegdeel. Ten tijde van een
brugopening geeft de meetlus veelal een intensiteit van 0
voertuigen per minuut aan. Hiertoe is besloten om de ver-
keersintensiteit ten tijde van de werkelijke brugopening en
een periode van 5 minuten ervoor en erna te corrigeren door
de laatst bekende intensiteit door te trekken (forward fill).
2.3 Gebruikte tools & technieken
Verkeersintensiteitenmodel ontwikkeling
Deep learning
modellen zijn ontwikkeld in de Keras library (versie 2.2.4),
een open-source neural netwerk pakket geschreven in Python
[
4
]. Keras stelt onderzoekers in staat om snel te experimen-
teren met deep neural networks [
5
]. Keras was gebruikt in
samenhang met TensorFlow (versie 1.5.0) als backend [
6
]
waarbij in de experimentele fase de GPU variant van het
gekozen model (sectie 3) is gebruikt. Een grid-search was
toegepast ontleed aan de Scikit-learn machine learning library
[
7
] voor Python . Alle analyses voor het opschonen van data
en het modelleren van verkeersintensiteiten zijn uitgevoerd in
Python.
Model evaluatie
Tijdens het trainen en selecteren van de
modellen zijn verschillende foutstatistieken gebruikt om de
nauwkeurigheid van de modellen te vergelijken op data uit
tijdsreeksen waar het model geen gegevens van heeft gezien
tijdens het trainen. Hiermee kan het model getoetst worden
aan een situatie die vergelijkbaar is in de praktijk. Een aantal
foutstatistieken kunnen gebruikt worden om de nauwkeurig-
heid van het resulterende regressie model. In het huidige werk
zijn de volgende foutstatistieken gebruikt:
R-kwadraat (R
2
): - Het kwadraat van de correlatie
- co
¨
effici
¨
ent tussen geobserveerde waardes en voor-
speelde waardes door het model. Hoe dichter de R2 ligt
bij 1, hoe beter het model.
Gemiddelde gekwadreerde fout, Mean Squared Error
(MSE) - Het gemiddelde verschil tussen geobserveerde
en voorspeelde waardes in het kwadraat. Hoe lager de
MSE, hoe nauwkeuriger het model.
Gemiddeld absolute percentage fout, Mean Absolute
Percentage Error (MAPE) - Het gemiddelde absoluut
percentage afwijking tussen observaties en voorspelde
waardes. Des te kleiner MAPE, des te nauwkeuriger
het model.
Om de nauwkeurigheid van de getrainde modellen te ver-
gelijken is het belangrijk deze te testen op data die het model
nog niet eerder heeft gezien. Machine learning en zeker deep
learning modellen zijn der mate complex dat deze zeer vatbaar
zijn voor overfitting, d.w.z. niet patronen zijn geleerd, maar
het algoritme heeft de dataset leren kennen. Kruisvalidatie is
een techniek om de nauwkeurigheid en mate van overfitting
te kwantificeren voor machine learning modellen. In deze da-
taset is hiervoor gebruikt gemaakt door een model te trainen
op historische data uit bijvoorbeeld 2017 en deze te testen
op data uit 2018. Alle boven geschreven foutstatistieken zijn
gebruikt voor modelevaluatie.
3. Modeleren en voorspellen
verkeersintensiteiten
3.1 LSTM neuraal netwerken
Artifici
¨
ele Neurale Netwerken (ANN) zijn een set aan algo-
ritmes ge
¨
ınspireerd door de enorm effici
¨
ente werking van het
menselijk brein om patronen te herkennen [
8
][
9
][
10
]. Een
ANN bestaat uit artifici
¨
ele neuronen en kan in recente jaren
tot in vergaande diepte en complexiteit effici
¨
ent getraind wor-
den door zogenoemde deep learning algoritmes [
11
]. Voor
tijdseries data zoals in deze casus zijn Recurrent (Terugke-
rend) Neuraal Netwerken (RNN) vaak een geschikte oplos-
sing omdat hierbij neuronen niet alleen informatie uit vorige
lagen van het netwerk meewegen, maar ook informatie uit
vorige tijdspunten meenemen [
12
]. Een krachtige variant op
RNN’s is het Long Short-Term Memory (LSTM) netwerk die
speciaal is ontwikkeld om lange tijdsreeksen te modelleren
[
13
][
14
][
15
]. In het hier gepresenteerde werk zijn LSTM
gekozen als uiteindelijk algoritme om real-time verkeersinten-
siteiten te voorspellen voor drie bruggen.
3.2 Geselecteerde modellen
Een univariaat LSTM model volgens Brownlee [
16
] in Keras
waarbij meerdere stappen vooruit voorspeld worden was ge-
traind voor elke meetlus. Twee verschillende LSTM modellen
zijn getest per meetlus en vergeleken op de foutstatistieken
beschreven in sectie 2. Als eerste is een LSTM model getraind
op historische verkeersdata waarbij een tijdsreeks aan input
gebruikt is om een vector aan stappen vooruit te voorspellen
(script 1).
In het tweede geval is een encoder-decoder LSTM ge-
bruikt (script 2) waarbij de invoer tijdreeks aan data geco-
deerd wordt (encode). De decoder gebruikt deze gecodeerde
data en maakt een voorspelling een stap vooruit voor elk ele-
ment in de output reeks [
16
]. Het verschil is klein, aangezien
in de praktijk beide modellen een reeks vooruit voorspellen.
Het belangrijkste verschil is dat een LSTM model encoder-
decoder model informatie heeft over zowel de voorgaande
stap die voorspeld is als ook de geaccumuleerde informatie
uit de encoder stap wordt meegewogen in het voorspellen van
de output sequentie.
Script 1. Python code voor trainen LSTM model met vector
output
model = S e q u e n t i a l ( )
model . add (LSTM( n l a y e r s , a c t i v a t i o n = a c t i v a t i o n ,
k e r n e l i n i t i a l i z e r = k e r n e l i n i t i a l i z e r ,
i n p u t s h a p e = ( n s t e p s i n , f e a t u r e s ) ) )
model . add ( Dense ( n s t e p s o u t ) )
o p t i m i z e r = o p t i m i z e r ( l r = l r , b e t a 1 = b e ta 1 ,
b e t a 2 = b e t a 2 ,
dec a y =dec ay , e p s i l o n = e p s i l o n )
model . compile ( o p t i m i z e r = o p t i m i z e r , l o s s = l o s s ,
m e t r i c s = [ a c c ur a c y , mae ] )
Voor zowel het vector output model en het encoder-decoder
model zijn de verkeersintensiteit gegevens over de afgelopen
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 4/7
21 minuten gebruikt als input (
n steps in
) en 21 als output
(
n steps out
) voor de aankomende minuten. Aangezien hier
gebruikt wordt gemaakt van een univariaat model is het aantal
features per definitie 1.
Script 2. Python code voor trainen van Encoder-decoder
LSTM model
model = S e q u e n t i a l ( )
model . add (LSTM( n l a y e r s , a c t i v a t i o n = a c t i v a t i o n ,
k e r n e l i n i t i a l i z e r = k e r n e l i n i t i a l i z e r ,
i n p u t s h a p e = ( n s t e p s i n , f e a t u r e s ) ) )
mod el . ad d ( R e p e a t V e c t o r ( n s t e p s o u t ) )
model . add (LSTM( n l a y e r s , a c t i v a t i o n = a c t i v a t i o n ,
r e t u r n s e q u e n c e s = Tru e ) )
model . add ( T i m e D i s t r i b u t e d ( De nse ( de ns e2 ,
a c t i v a t i o n = a c t i v a t i o n 2 ,
kernel initializer=kernel initializer )))
model . add ( T i m e D i s t r i b u t e d ( De nse ( d en s e ) ) )
o p t i m i z e r = o p t i m i z e r ( l r = l r ,
b e t a 1 = b e t a 1 , b e t a 2 = b e t a 2 ,
dec a y =dec ay , p s i l o n = e p s i l o n )
model . compile ( o p t i m i z e r = o p t i m i z e r , l o s s = l o s s ,
m e t r i c s = [ a c c ur a c y , ’ mae ] )
3.3 Parameter optimalisatie
Hyperparameter optimalisatie is een belangrijke stap in ont-
wikkelen van een deep learning model. Neurale netwerken
kunnen complex en lastig te configureren door de vele para-
meter die verfijnd en getest kunnen worden. Deze techniek is
beschikbaar binnen de GridSearchCV klasse [
13
] , zie sectie
2.
Tabel 1. Gekozen hyperparameters
Parameter Value
epochs 30
batch size 40
epochs 30
batch size 40
n layers 85
optimizer Adam
learning rate (lr) 0.01
beta 1 0.9
beta 2 0.9
decay 0
epsilon 0.7
activation sigmoid
activation2 hard sigmoid
kernel initializer glorot uniform
loss mse
dense1 1
dense2 1024
De hyperparameter optimalisatie was uitgevoerd op de
Coenecoopbrug data (tabel 1). De geselecteerde hyperpara-
meter zijn vervolgens ook gebruikt voor de overige bruggen
waarvoor een neural netwerk model is ontwikkeld (Kruithuis-
brug, Lammebrug). Het getrainde model is ge
¨
exporteerd als
een H5 bestand (figuur 5).
4. Model evaluatie
4.1 Baseline model
Omdat de nauwkeurigheid van een machine learning model
relatief is, is het essentieel om een robuust relatief simpel refe-
rentie te hebben als nulmeting. Vanuit deze referentie kunnen
opeenvolgende modellen vergeleken worden. Als referen-
tiemodel is een mediaan verkeersintensiteit model gebruikt
waarbij per minuut per weekdag de mediaan is genomen als
waarde.
Naast het mediaan model is er ge
¨
experimenteerd met
ARIMA (Autoregressive integrated moving average) en gra-
dient boosting. Hoewel beide methodes veelbelovende resul-
taten lieten zien, waren deze niet goed in staat om meerde
stappen vooruit de voorspellen. Omdat in de eindapplicatie
nauwkeurigheid in 1 minuut vooruit voorspellen even be-
langrijk is als 21 minuten vooruit is gekozen om de focus te
verleggen naar LSTM-modellen. Alle in sectie 2 genoemde
foutstatistiek (R
2
, MSE, MAE and MAPE) zijn gebruikt om
de LSTM modellen af te vergelijken met het mediaan model.
4.2 Resultaten
Vector output en encoder-decoder LSTM modellen zijn ge-
traind voor elke meetlus per rijrichting. Voorspelde waardes
zijn vergeleken met daadwerkelijk observaties uit de test set.
Hierbij presteerden de LSTM modellen over de gehele linie
aanzienlijk beter dan het mediaan model, gemiddeld 20% be-
ter op basis van de gekwadrateerde correlatieco
¨
effici
¨
ent (tabel
2).
Tabel 2. Foutstatistieken voor de verschillende modellen
Het uiteindelijke model per brug om in real-time de ver-
keersintensiteit te voorspellen was geselecteerd op basis van
de verschillende foutstatistieken. Voor de Coenecoopbrug en
de Lammebrug was de encoder-decoder LSTM gekozen om-
dat de foutstatistieken over vrijwel de hele linie beter waren.
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 5/7
Voor de Kruithuisbrug was het encoder-decoder maar beter
voor 1 van meetlussen (860, laan 0-1). In dit geval is gekozen
voor het vector output model. Hierbij heeft het model geleerd
weekdagen van weekenddagen uit de univariate tijdseries te
onderscheiden en past het model de voorspelling aan op basis
van voorafgaande verkeersdrukte. In de Impactmonitor Brug-
openingen worden drie scenario’s doorgerekend en gepresen-
teerd aan de brugbedienaar: de cumulatieve verkeersintensiteit
over de aankomende 1 tot 7 minuten, het cumulatieve verkeer
8 tot 14 minuten vooruit en 15 tot 21 minuten. Voor het eerste
scenario van 1 tot 7 minuten vooruit zijn de betrouwbaarheids-
scores weergegeven in figuur 2. Hierbij is de prognose en
de daadwerkelijke geobserveerde verkeersintensiteit afgezet
tegen de tijd. De voorspellingen 1 minuut vooruit zijn zeer be-
trouwbaar (R
2>
0.94) (figuur 3). Binnen deze drie scenarios
valt op dat de betrouwbaarheid van de voorspellingen afneemt
wanneer er verder in de toekomst wordt voorspeld, maar de
R
2
blijft ruim boven 0.75. De hogere betrouwbaarheid van de
Kruithuisbrug (R
2=
0.91 tot 21 minuten vooruit) komt moge-
lijk doordat het verkeer zich rondom deze brug uniformer over
de meetlus beweegt en daardoor minder uitschieters bevat.
Figuur 2. – Werkelijke observaties en voorspelde
verkeersintensiteiten van het aantal voertuigen voor het eerste
blok van 7 minuten op basis van de – door het model nog
ongeziene - test dataset. Data: Lammebrug meetlus 9 (rijbaan
3-4), Kruithuisbrug meetlus 861 (rijbaan 0-1) en
Coenecoopbrug meetlus 31 (rijbaan 1).
Figuur 3. – Betrouwbaarheid van de voorspellingen
gedurende 21 minuten.
5. Deployment
5.1 Productiewaardig maken
Om het voorspelmodel in de praktijk te kunnen gebruiken
moet het operationeel gemaakt worden. De input variabelen
van het model worden real-time uitgelezen vanuit het NDW.
De berekende uitkomsten van het model zijn vervolgens be-
naderbaar voor de webapplicatie middels een API. De data
uit de API wordt opgehaald en getoond in de uiteindelijk
webapplicatie (figuur 4).
Figuur 4. Screenshot van detailpagina van ´
e´
en brug uit de
Impactmonitor Brugopeningen
5.2 Real-time databronnen
De input voor het model is de NDW meetlusinformatie met
daarin de intensiteit per minuut (figuur 5). Deze data moet real-
time beschikbaar zijn. Dit is gerealiseerd door elke minuut
de OpenData-set bij het NDW op te halen via FTP en op
te slaan in een Service Bus (Azure EventHub). Deze zet
vervolgens per meetlus de data klaar in sets van 30 minuten
in een tijdelijke Azure Table omwille van de performance.
5.3 Prognose API
De voorspelling is beschikbaar gesteld middels een zelf ont-
wikkelde API in de programmeertaal Python [
4
] gebaseerd
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 6/7
Figuur 5. Onderzoeksfase met als resultaat een model
uitkomst (.H5 bestand) die wordt gebruikt in de real-time
voorspel API.
op FastAPI framework [
17
]. Er is gekozen voor een zelf ont-
wikkelde API omdat performance erg belangrijk is en er geen
standaardoplossingen zijn om een API te maken voor een
Keras model. De documentatie van de API is gedaan middels
OpenAPI standaarden.
De API voert de volgende stappen uit om tot het resul-
taat te komen bij het op vragen van de voorspel end-point
/predict/{isrs}:
1.
Configuratie van brug ophalen met daarin vooraf ingela-
den brug specifieke LSTM model (.h5 files) & verkeers-
congestie rekenmodel (in-memory). Het verkeerscon-
gestierekenmodel is ontwikkeld door Arcadis en rekent
de voertuigverliesuren en hersteltijd van een brug uit
op basis van de schokgolftheorie.
2.
NDW real-time dataset ophalen met verkeersintensitei-
ten en verhouding soort verkeer.
3.
LSTM model laten voorspellen met NDW set als input.
4.
Output van model zijn voorspelde intensiteiten voor
aankomende 21 minuten die worden “ingeladen” in het
verkeerscongestierekenmodel.
5.
Verkeerscongestiemodel rekent voertuigverliesuren (VVU)
en hersteltijd van brug uit.
6.
CO2 uitstoot indicator wordt uitgerekend aan de hand
van Voertuigverliesuren en verhouding van het soort
verkeer.
7.
Resultaten worden samengevat in 3 tijdsblokken van
7 minuten (in de toekomst) – dat de tijdsblokken zijn
waaruit de brugbedienaar kan kiezen.
De verkeersintensiteiten prognose API is technisch be-
schikbaar gesteld via Azure App Services door de logica, ver-
keerscongestiemodel en FastAPI in te pakken in een Docker
container waar alle afhankelijkheden in zitten. Het voorspel-
model is te benaderen via een webadres(https://domeinnaam.nl/
predict/isrs) en geeft 3 tijdsblokken terug als uitkomst. Een
voorbeeld hiervan is te zien in figuur 6.
Figuur 6. Voorbeeld uitkomst van de voorspel API van de
Coenecoopbrug – opgevraagd op zaterdag 31 augustus 2019
om 13:13, waarbij in onderdeel predictions de 3 voorspel
blokken zichtbaar zijn en in het onderdeel trafficFlow de
gebruikte verkeersintensiteit als input en de voorspelde
intensiteit als output.
5.4 Performance
Performance is van enorm belang – gezien de brugbedienaren
niet willen wachten op de uitkomst van het model. De Non
Functional Requirement (NFR) is dat de voorspelling binnen
3 seconden op het scherm te zien moet zijn. De uiteindelijk
oplossing biedt een responsetijd tussen de 0,5 en 2 seconden.
Real-time Deep Learning Algoritmes Voor Optimale Verkeersdoorstroming Bij Brugopening — 7/7
6. Conclusie en vervolgonderzoek
Uit de analyse van verkeersintensiteiten bleek dat de ver-
keersdrukte rondom een aantal bruggen van de provincie uit
verschillende componenten bestaat. Als eerste een cyclische
dagelijkse dag en spits component. Ten tweede een wisse-
lende component waarbij de direct voorgaande verkeersdrukte
voorspellend is voor wat daarna volgt en ten derde een stochas-
tische component waarin verkeersintensiteit schommelingen
in korte uitbarstingen voorkomen. Ten opzichte van het medi-
aan model waarin informatie zoals tijdstip en dag is verwerkt
kan het LSTM zonder deze informatie toch aanzienlijk be-
tere voorspellingen maken. Dit geeft aan dat zowel de direct
voorafgaande drukte als statische factoren een belangrijke rol
spelen in de verkeersintensiteit.
De LSTM modellen bieden verder een nauwkeurige mo-
gelijkheid om meerdere stappen in de toekomst vooruit te
voorspellen. Hiermee kan een brugbedienaar tot 21 minuten
vooruit een prognose krijgen over de verwachtte verkeers-
drukte en de berekende voertuigverliesuren, extra uitstoot en
hersteltijd van verkeer rondom een brug veroorzaakt door een
brugopening. Ook zijn er nog ruime mogelijkheden tot het
verder optimaliseren van de verkeersintensiteit prognoses zo-
als het bouwen van een multivariate LSTM model waarin tijd
en weergegevens worden meegewogen naast het trainen op
grotere historische datasets.
Daarnaast zijn er optimalisaties mogelijk door data van
de scheepvaart verder mee te wegen in het advies dat de
impactmonitor brugopeningen geeft. Het ontwikkelde model
is opgeleverd als gebruiksvriendelijke webapplicatie waarin
big data concepten en recente ontwikkelingen op het gebied
van machine learning zijn weg naar de praktijk vinden. De
applicatie is in een fase waarin deze door de eerste gebruikers
in gebruik kan worden genomen.
Acknowledgements
Dit project was niet mogelijk geweest zonder de kennis uit
de praktijk en support vanuit de afdeling Dienst Beheer In-
frastructuur, in het bijzonder Ellen van der Knaap, Tim Blan-
ken, Tino van As en Jillis Mani. Het ontwikkelen, opleveren
en stroomlijnen van de applicatie was niet gelukt zonder de
inbreng van de vele collega’s vanuit het vernieuwd dataware-
house van de provincie Zuid-Holland, bovenal Bart Witteveen,
Firuze Kuru, Dennis Weijsenfeld en Kevin Otjes.
Referenties
[1]
https://bereiknu.nl/ BEREIK! is h
´
et samenwerkingsplat-
form van Rijkswaterstaat, Provincie Zuid Holland, Metro-
poolregio Rotterdam Den Haag, Gemeenten Rotterdam
en Den Haag en Havenbedrijf Rotterdam voor regionale
bereikbaarheidsvraagstukken.
[2]
https://blauwegolfverbindend.nl/, Blauwe Golf Verbin-
dend ontsluit real-time gegevens over geopende bruggen
en beschikbare ligplaatsen in havens
[3]
https://www.zuid-holland.nl/@21238/smart-shipping/
Partnershipovereenkomst Smart Shipping.
[4]
Van Rossum, G., Drake Jr, F.L., 1995. Py-
thon tutorial. Centrum voor Wiskunde en
Informatica, Amsterdam, The Netherlands.
https://www.python.org/downloads/release/python-
367
[5]
Abadi, Mart
´
ın, et al. ”Tensorflow: A system for large-
scale machine learning.”12th USENIX Symposium on
Operating Systems Design and Implementation (OSDI
16). 2016.
[6]
Chollet F. , 2015. Keras, GitHub.
https://github.com/fchollet/kera
[7]
Pedregosa, Fabian, et al. ”Scikit-learn: Machine learning
in Python.”Journal of machine learning research 12.Oct
(2011): 2825-2830.
[8]
Zurada J.M.,1992. Introduction to artificial neural systems
vol. 8. West publishing company, St.Paul.
[9]
Jain A.K., Mao J., Mohiuddin K.M., 1996. Artificial neural
networks: A tutorial. Computer 29, 31-44.
[10]
Zhang G., Patuwo B.E., Hu M.Y., 1998. Forecasting with
artificial neural networks: The state of the art. International
journal of forecasting 14, 35-62.
[11]
LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton.
”Deep learning.”nature 521.7553 (2015): 436.
[12]
Mandic D.P., Chambers J., 2001. Recurrent neural net-
works for prediction: learning algorithms,rchitectures and
stability. John Wiley & Sons, Inc.
[13]
Hochreiter S., Schmidhuber J., 1997. Long short-term
memory. Neural computation 9, 1735–1780.
[14]
Gers F.A., Eck D., Schmidhuber J., 2001. Applying
LSTM to time series predictable through timewindow ap-
proaches. In: Dorffner G., Bischof H., Hornik K. (eds)
Artificial Neural Networks. ICANN 2001, Lecture Notes
in Computer Science, vol 2130. Springer, Berlin, Heidel-
berg.
[15]
Sak H., Senior A., Beaufays F., 2014. Long short-term
memory recurrent neural network architectures for large
scale acoustic modeling. INTERSPEECH 2014, 14-18
September, Singapore, 338-342.
[16]
Brownlee, Jason. ”Text Generation With LSTM Recur-
rent Neural Networks in Python with Keras.”(2018).
[17]
https://fastapi.tiangolo.com/ FastAPI framework, high
performance, easy to learn, fast to code, ready for produc-
tion
[18]
Newell, Gordon F. ”A simplified theory of kine-
matic waves in highway traffic, part I: General the-
ory.”Transportation Research Part B: Methodological 27.4
(1993): 281-287.