Projekt - Teilnahme am ACM SIGSPATIAL Cup

Transcrição

Projekt - Teilnahme am ACM SIGSPATIAL Cup
Projektdokumentation
Teilnahme am ACM SIGSPATIL CUP 2012 im Zuge des Projektseminars
„Datenverwaltung“
Betreut durch Frau Prof. Dr. Agnès Voisard und Sebasti an Müller
Philipp Neuser – 05.09.2012
Abstract
This work develops an incremental algorithm for map matching. The algorithm is focused on
speed and accuracy. Multiple rules and approximations were developed to achieve a high
accuracy and short runtime at different GPS sampling rates. It was submitted to the ACM
SIGSPATIAL CUP 2012.
In dieser Arbeit wurde ein inkrementeller Algorithmus zum Map-Matching entwickelt. Der
Fokus bei der Entwicklung lag in der Geschwindigkeit und Genauigkeit. Es wurden mehrere
Regeln und Näherungen entwickelt, um dies bei verschiedenen Sampling-Raten von GPSTracks zu erreichen. Das Ergebnis wurde beim ACM SIGSPATIAL CUP 2012 eingereicht.
2
Inhaltsverzeichnis
1.
Einleitung ............................................................................................................................ 4
1.1
Aufgabenstellung und Ansätze ................................................................................... 5
2.
Eigener Ansatz .................................................................................................................... 7
3.
Ausarbeitung des Algorithmus zur Lösung ....................................................................... 10
3.1
Schwellwerte zur direkten Abbildung ....................................................................... 10
3.2
Zweistufiges Verfahren zur Filterung der Kantenrichtung ........................................ 11
3.3
Einbezug der Geschwindigkeit des Fahrzeugs .......................................................... 11
3.4
Gewichtungsfunktion ................................................................................................ 12
4.
Evaluation ......................................................................................................................... 14
5.
Literaturverzeichnis .......................................................................................................... 16
3
1. Einleitung
Das Projekt beinhaltet die Teilnahme am diesjährigen ACM SIGSPATIAL CUP 2012. Die
Aufgabenstellung des CUPs dieses Jahr ist es, einen Algorithmus zum MapMatching zu
entwickeln. Es geht hier darum, Daten von GPS-Tracks auf Straßen IDs in Open Street Map
(OSM) abzubilden. MapMatching hat in den letzten Jahren immer mehr an Bedeutung
gewonnen, da immer mehr Fahrzeuge GPS zur Navigation nutzen und Verkehrsleitsysteme
diese Daten nutzen, um Staus vorherzusagen, zu erkennen und entsprechende RoutingStrategien zu entwickeln sowie das Verhalten von Fahrern zu verstehen.
Es ist daher von großem Interesse, zuverlässige Algorithmen zu haben, welche die
gemessene Position auf Straßen abbilden. Um einen solchen Algorithmus zu entwickeln und
vergleichbare Bedingungen für alle Teilnehmer zu schaffen, wurden Trainingsdaten aus OSM
und diverse Tracks zu Trainingszwecken aus dem Großraum Washington zur Verfügung
gestellt. Die Daten beinhalten den Graph des Straßennetzes inkl. aller Knoten und
gerichteten Kanten, Geometrie-Informationen – sowie Straßentyp u. Name – der einzelnen
Kanten. Der zu entwickelnde Algorithmus soll eine möglichst konstante Qualität bei
verschiedenen Sampling-Raten der GPS-Daten haben. Die verschieden Trainingstracks sind
daher mit unterschiedlichen, nicht bekannten Sampling-Raten aufgenommen worden. (1)
Neben der Güte der Ergebnisse ist ein weiteres Bewertungskriterium im Wettbewerb die
Laufzeit des Algorithmus. Es sollen also schnell gute Ergebnisse geliefert werden. Die
Punktzahl ergibt sich durch folgende Formel (2):
For each output file Output_i.txt
{
For each row in Output_i.txt
{
If <EdgeId> is correct
Grade = Grade + <Confidence>
Else
Grade = Grade - <Confidence>
}
}
Grade = Grade/ExecutionTime
4
1.1
Aufgabenstellung und Ansätze
Es geht in erster Linie darum, eine GPS-Position – welche zu einem Zeitpunkt t gemessen
wurde – in Verbindung mit einer Straße oder einem Weg zu bringen. Die Distanz der
gemessen Position zu den umliegenden Straßen ist hier logischerweise der erste
Anhaltspunkt. Man vergleicht die verschiedenen Distanzen und wählt die nächstliegende
aus.
Betrachtet man immer nur eine einzelne Position, so bringt dies schon relativ gut Resultate.
Der tatsächliche Standort wird zumindest eine der nächstgelegenen Straßen/Wege sein,
welche man dem User z.B. als Auswahl präsentieren kann, damit er z.B. die nächstgelegene
Bushaltestelle finden kann. Bei der Analyse von GPS-Tracks, welche automatisiert analysiert
werden sollen, ist dieses Vorgehen allerdings nicht hinreichend genau. Es handelt sich bei
GPS-Tracks um Mitschnitte von den zurückgelegten Wegen (z.B. mit dem Auto). Der GPSEmpfänger hat hier in festen Abständen Samples (Positionen) gemessen und diese
Trajektorie gespeichert. Aus diesen Samples soll nun beim MapMatching die genaue Route
rekonstruiert werden, das heißt, welche Straßen genommen wurden und zu welchem
Zeitpunkt auf welche Straße abgebogen wurde.
Wird nun ein solcher Track nur über die Distanz auf die einzelnen Straßen abgebildet, so
stellt man einige Probleme im Bereich von Kreuzungen, parallel verlaufenden Wegen und allen voran - bei einem gerichteten Graphen beim Erkennen der richtigen Kante mit der
entsprechenden Richtung fest. Es wird hier schnell klar, dass eine Zuordnung allein über die
Distanz nicht ausreichend ist. Von Bernstein und Kornhauser wurde eine Artikel
veröffentlich, der einen guten Einstieg erlaubt. (3) Eine weiterführende Untersuchung der
auftretenden Probleme und einiger Algorithmen zur Behandlung dieser haben Christopher E
White, David Bernstein und Alain L Kornhauser veröffentlicht. (4)
Eine sehr akkurate Methode, die genommene Route auf der Karte abzubilden und die oben
genannten Probleme zu lösen, ist die Frechet Distanz. Mit der Frechet Distanz lässt sich die
Ähnlichkeit zweier Trajektorien bestimmen. Sie gibt die durchschnittliche Distanz einer
Trajektorie zur anderen an. Je kleiner sie ist, desto ähnlicher sind sich die beiden
Trajektorien. Map Matching – Algorithmen, die auf der Frechet Distanz basieren, gehen wie
folgt vor: Der GPS Track wird als Trajektorie betrachtet – entweder als Ganzes oder in
5
Teilstücke unterteilt. Aus dem Routing-Graphen und den dazugehörigen
Geometrieinformationen werden nun alle möglichen Trajektorien erzeugt und mit dem GPS
Track über die Frechet Distanz vergleichen. Diese Algorithmen sind allgemein gültig,
beruhen auf keinerlei Annahmen und sind sehr akkurat. Allerdings ist die Berechnung sehr
teuer (5), weswegen zur Erfüllung des zweiten Kriteriums (der Laufzeit) des Wettbewerbs
hier ein inkrementeller Ansatz verfolgt wird.
Bei geringen Sampling-Raten tritt das Problem auf, dass ggf. mehrere Routen zwischen den
Punkten möglich sind und mehrere Zuordnungen. Ein Ansatz zur Verbesserung ist hier,
mögliche Routen mit Routing-Algorithmen vorab zu berechnen und davon auszugehen, dass
der Fahrer eine der Routen nehmen wird. Es wird dann noch verglichen, welche Route am
wahrscheinlichsten in Frage käme bei den gemessenen Punkten. (6) (7)
6
2. Eigener Ansatz
Es ergeben sich im Wesentlichen folgende Problemsituationen, auf welche nun kurz
eingegangen werden soll.
An Abbiegungen ist es nicht klar, ab welchem Zeitpunkt die Punkte der neuen Straße
zugeordnet werden sollen. Man muss hier klare Regeln formulieren, wann die neue Straße
zur Zuordnung genommen wird.
Aus dem Problem bei den Abbiegungen ergibt sich ein viel eklatanteres, wenn man
Kreuzungen passiert. Wie man in Abbildung 1 sieht, werden, wenn sich das Fahrzeug der
Kreuzung nähert, die Messpunkte ab einem gewissen Zeitpunkt auf die kreuzende Straße
abgebildet. Obwohl das Fahrzeug die Kreuzung geradewegs passiert, entsteht hier eine
Reihe von Fehlern.
Abbildung 1: Die Messpunkte werden erst korrekterweise der roten Linie
zugeordnet, im Bereich der Kreuzung allerdings der blauen. Hier reicht eine
einfache Abbildung über die Distanz nicht mehr aus.
Laufen zwei Wege parallel zueinander oder ähnlich und nahe beieinander, zum Beispiel bei
Abzweigungen, wird es auch hier schwierig zu erkennen, auf welchem Weg das Fahrzeug
sich nun befindet. Man kann dies in Abbildung 2 leicht erkennen.
Abbildung 2: Falsche Zuordnung durch die Distanz, da die parallel verlaufende Straße
näher am Messpunkt ist.
7
Hinzu kommen die Messfehler des GPS. Diese können um +/- 10 Meter sein. Man muss
erkennen, ob es sich um einzelne Messfehler handelt oder gar eine systematisch falsche
Abbildung vorliegt. In Abbildung 3 ist ein Beispiel zu sehen, wo ohne weiteres Wissen über
den späteren Verlauf des Weges keine zuverlässige Zuordnung machbar ist. Kennt man nur
die aktuellen Messwerte, sind beide Zuordnungen logisch korrekt. Es müssen also der
weitere Verlauf und die Historie des Tracks in die Entscheidungsfindung einbezogen werden.
Ein spezieller Fall von zwei sich nahe liegenden Kanten existiert, wenn ein gerichteter Graph
des Straßennetzes vorliegt. So liegen zwei von ihrer Position, Länge und Verlauf identische
Kanten vor. Die korrekte Kante muss hier anhand der Bewegungsrichtung erkannt werden.
Sie lässt sich leicht über Betrachtung die Historie des Tracks erkennen.
Abbildung 3: Eine korrekte Zuordnung ist in diesem Fall nur mit Wissen über den späteren Verlauf möglich.
In Abbildung 4 (s. folgende Seite) ist die gemessenen GPS Position an einer Ampel zu sehen,
während das Fahrzeug steht. Der Messfehler von GPS ist klar zu erkennen, die ermittelte
Position wandert um +/-15 Meter nach vorne und nach hinten. Solch ein Verhalten muss
erkannt und herausgefiltert werden. Da sich hier durch das Wandern der gemessenen
Position und auch die Geschwindigkeit die vermeintliche Fahrtrichtung ständig ändert, muss
diese Verhalten herausgefiltert oder zumindest erkannt und entsprechend behandelt
8
werden. Ansonsten wird die Zuverlässigkeit sämtlicher Entscheidungen, die sich auf
Geschwindigkeit, Fahrtrichtung und Historie bzw. den weiteren Fortlauf des Tracks
beziehen, stark beeinträchtigt.
Abbildung 4: Die Messpunkte wandern bei stehendem Fahrzeug um die aktuelle Position durch Messfehler.
Bei langen Sampling-Intervallen von zum Beispiel 30 Sekunden oder länger wird es
zunehmend schwieriger, den originalen Pfad zu rekonstruieren und/oder richtige
Entscheidungen aufgrund der Historie zu treffen. Der Fahrer kann hier zwischen zwei
Messpunkten leicht schon mehrere Abschnitte hinter sich gelassen haben.
9
3. Ausarbeitung des Algorithmus zur Lösung
Der Algorithmus ist aus Gründen der Performance ein inkrementeller Algorithmus. Er schaut
sich also alle Messpunkte des GPS-Tracks nacheinander an. Um den zu bearbeitenden
Datenaufwand zu reduzieren, wird beim Einlesen des Tracks ein Rechteck um diesen gelegt wobei in alle Richtungen 1 Kilometer aufaddiert wird. Der nicht relevante Teil des Graphen
außerhalb wird abgeschnitten.
3.1
Schwellwerte zur direkten Abbildung
Der erste Ansatz betrachtete lediglich, ob ein Punkt auf einer Straße liegt, und wenn nicht,
welche Straße ihm am nächsten ist (siehe Abbildung 5). Zur Überprüfung, ob ein Punkt auf
der Straße liegt, wird um jede Kante ein Rechteck gelegt, dessen Breite abhängig vom
Straßentyp ist. Dieses Rechteck definiert somit Schwellwerte in den beiden Dimensionen,
die darüber entscheiden, ob der Punkt auf der Straße liegt. Die Werte, welche die besten
Ergebnisse lieferten, wurden statistisch ermittelt, indem sie variiert wurden und mit den
zehn Trainingstracks getestet wurden. Es wurden so für einen “motorway“ 32 Meter in der
Breite, für eine “primary road“ 24 Meter und für den Rest 16 Meter ermittelt. Um den Test
möglichst effizient zu gestalten, werden beim Einlesen bereits die Schwellwerte für jeden
Straßenabschnitt berechnet und die nötigen Werte für eine Koordinatentransformation
bestimmt, so dass der Ursprung im Mittelpunkt des Rechtecks liegt und das Rechteck
entlang der x-Achse orientiert ist. Ob ein Punkt die Schwellwerte nicht überschreitet, lässt
sich nach der Transformation der Koordinaten des Punktes durch einen einfachen “kleinerals-Test“ prüfen. Die Positionen, die so abgebildet sind, haben eine verschwindend geringe
Fehlerrate. Allerdings ließ sich so nur ein Bruchteil (ca. 20-30%) der Punkte zuordnen.
Abbildung 5: Die Distanz wird immer zum nächsten Punkt auf der Straße gemessen.
10
3.2
Zweistufiges Verfahren zur Filterung der Kantenrichtung
Bei der alternativen Zuordnung über die Distanz entstehen die nun angesprochenen
Probleme. Um diese in den Griff zu bekommen, wurde zunächst eine Funktion zur
Bestimmung der Orientierung der Straße und der Bewegung eingeführt. Zunächst wurde die
Funktion so implementiert, dass nur Kanten, die in die entgegengesetzte Richtung laufen,
nicht zugelassen sind. Dies hat schon entschiedene Verbesserungen gebracht. Eine genauere
Betrachtung zeigte dann, dass ein zweistufiges Verfahren bessere Ergebnisse liefert. Bei
einem normalen Verlauf darf die Orientierung der Kante nur um 15 Grad von der
Bewegungsrichtung abweichen. Ändert sich die Bewegungsrichtung um mehr als 15 Grad, so
wird das Limit auf 150 Grad hochgesetzt, da hier höchstwahrscheinlich eine Abbiegung oder
sehr enge Kurve vorliegt. Die korrekt abgebildeten Punkte konnten so auf ca. 60 Prozent
erhöht werden.
3.3
Einbezug der Geschwindigkeit des Fahrzeugs
Der nun verbleibende Großteil der falsch abgebildeten Messpunkte ergab sich an
Kreuzungen, wenn das GPS-Signal durch den Messfehler um das Fahrzeug wanderte. Hier
wurde vor allem die Funktion problematisch, welche die Kanten nach Bewegungsrichtung
filtert. Da auf die Bewegungsrichtung hier kein Verlass ist, wurden häufig die korrekten
Kanten nicht zugelassen, da das Fahrzeug zum Beispiel rückwärts zu fahren schien. Um
diesem zu begegnen, wird im Algorithmus die Geschwindigkeit des Fahrzeuges analysiert.
Steht das Fahrzeug, wobei hier die Definition ist, dass die Geschwindigkeit kleiner als 2 m/s
ist, so werden die Punkte auf den vorherigen Punkt zurückgeführt. Die Messung der
Richtung wird dann zwischen zwei Punkten vorgenommen, die mindestens 35 Meter
entfernt voneinander liegen (auch dieser Wert wurde durch Variation und Testen gegen die
Trainingtracks ermittelt). Das Verfahren ist in Abbildung 6 illustriert.
Abbildung 6: Vor der Optimierung wurde die Richtung immer durch den aktuellen Knoten und seinem
Vorgänger bestimmt. Wenn nun die Geschwindigkeit unter 8 m/s fällt, wird der Knoten genutzt, der
mindestens 35m entfernt ist.
11
3.4
Gewichtungsfunktion
Um Fehler im Bereich von Auf- und Abfahrten von Highways zu korrigieren oder bei
allgemein parallel verlaufenden Straßen, wo der parallel verlaufende Weg durch die
Messungenauigkeit gegebenenfalls näher an den einzelnen Positionen liegt, wurde eine
Gewichtungsfunktion eingebaut. Ein ähnlicher Ansatz wurde von Huabei Yin und Ouri
Wolfson vorgeschlagen. (8) Der Algorithmus gewichtet die Distanz der Graphen danach, wie
viele Knoten im Graph genommen werden müssten, um ein Kante zu erreichen. Kleinere
Wege, die parallel zum Highway verlaufen, bekommen so einen sehr niedrigen
Gewichtungsfaktor, wenn das Fahrzeug vorher auf dem Highway gefahren ist. Ebenso
anders herum. Der Gewichtungsfaktor w ist also bestimmt durch w = Anzahl der Hops zur
Kante. Damit dies auch bei Highway-Abfahrten seine entsprechende Wirkung entfacht, ist
hier noch eine weitere Gewichtung vorgesehen. Highway-Abfahrten sind nur gleich
gewichtet, wenn die Geschwindigkeit auch verringert wird. Dies führte in den Tests
allerdings zu keiner deutlichen Verbesserung mehr, da sich erst kurz vor Ende des
Wettbewerbs herausstellte, dass einige der Routen auf dem vorliegenden Graphen nicht
abbildbar waren, da hier Kanten fehlten.
Eine Übersicht über die aufgestellten Regeln und Schwellwerte gibt Tabelle 1.
12
Der Punkt liegt auf der Straße und kann direkt zugeordnet werden
Straßentyp
Schwellwert
Motorway
+/- 16m
primary road
+/- 12m
Other
+/- 8m
Filterung der in Frage kommenden Kanten anhand der Bewegungsrichtung
Änderung der Bewegungsrichtung zwischen
Erlaubte Abweichung der Kante
zwei Samples
<15°
<15°
>15°
<150°
Gewichtung der Möglichen Routen
Ermittlung der Anzahl der Hops (max. 6)
Distanz wird mit Anzahl der Hops multipliziert
Filterung von motorway_links
Geschwindigkeit um weniger als 40% gesunken
motorway_link nicht erlaubt
Tabelle 1: Übersicht über die aufgestellten Regeln
13
4. Evaluation
Der Algorithmus konnte zum Schluss bei den Test-Tracks eine durchschnittliche Fehlerrate
von 23,8 % erreichen, wie in Tabelle 1 zu sehen.
Trainingstrack Fehler #
Fehler/%
1
405
2355
17,2
2
300
1069
28,06
3
334
1565
21,34
4
385
1176
32,74
5
144
883
16,31
6
201
1016
19,78
7
569
2367
24,04
8
270
1134
23,81
9
553
1542
35,86
10
249
1319
18,88
Schnitt:
23,8
Tabelle 2: Durchschnittliche Fehlerrate ermittelt mit den Trainingstracks.
Durch die verschiedenen Filterungen konnten die stärksten Verbesserungen erlangt werden.
Insbesondere das Filtern der Kanten anhand der Bewegungsrichtung hat die Performance
deutlich verbessert. Das Betrachten des Verhaltens von Fahrzeugen, die vor einer Kreuzung
stehen, und die damit einhergehenden Messfehler konnten durch das Nicht-Werten dieser
Messpunkte und Angeben einer minimalen Distanz für die Ermittlung der
Bewegungsrichtung weitestgehend korrigiert werden.
Um die falsche Zuordnung bei parallel verlaufenden Straßen zu korrigieren, wurde eine
Bewertung des möglichen weiteren Streckenverlaufes und eine damit einhergehende
Bewertung und Gewichtung der Auswahl vorgenommen. Diese hat zu kleineren
Verbesserungen geführt, allerdings nicht zu einer vollständigen Lösung des Problems. Hier
besteht weiterer Verbesserungsbedarf. Ein sehr kritischer Punkt sind hier zum Beispiel die
Autobahnabfahrten, welche weiterhin oft falsch zugeordnet wurden. Auch die Betrachtung
des weiteren Streckenverlaufs mit der Gewichtung hat hier keine Verbesserungen gebracht,
da die Strecken oft genauso logisch erschienen. Kurz vor Ende der Abgabefrist wurde hier
auch bekannt, dass die mitgelieferten korrekten Tracks in dem gelieferten Graph keine
validen Pfade bildeten, was die Betrachtung des Streckenverlaufs vermutlich beeinträchtigt
hat.
Durch parallele Verarbeitung und die Beschneidung der Menge der Kanten anhand der
geographischen Relevanz für den Track konnte das Einlesen der kompletten
Straßennetzinformationen und die Berechnung des Matchings für alle zehn Trainingstrack
zusammen auf ca. 2 Minuten (Core i5 2,6 GHz, DualCore) gebracht werden. Die Zeit, welche
zur Bearbeitung nötig ist, hätte noch durch die Implementation von RangeQuery-Strukturen
verkürzt werden können, wie von J.L. Bentley und H.A. Maurer vorgeschlagen (9), was aber
14
innerhalb der Abgabefrist nicht mehr möglich war. Hier konzentrierte man sich auf die
Optimierung der Fehlerrate konzentriert.
Im ACM SIGSPATIAL Cup wurde Platz 10 von 31 belegt. Genauere Resultate werden erst im
Laufe der Konferenz bekannt gegeben.
15
5. Literaturverzeichnis
1. Introduction | ACM SIGSPATIAL Cup 2012. ACM SIGSPATIAL Cup 2012. [Online] 2012.
[Zitat vom: 12. 05 2012.] http://depts.washington.edu/giscup/home.
2. Submission and Evaluation | ACM SIGSPATIAL Cup 2012. ACM SIGSPATIAL Cup 2012.
[Online] 2012. [Zitat vom: 12. 05 2012.] http://depts.washington.edu/giscup/submission.
3. An Introduction to Map Matching for Personal Navigation Assitants. Berstein, David und
Kornhauser, Alain L. Newark : New Jersey TIDE Center, 1996.
4. Some map matching algorithms for personal navigation assistants. White, Christopher E,
Berstein, David und Kornhauser, Alain L. 1-6, s.l. : Transportation Research Part C: Emerging
Technologies, Frebruary-December 2000, Bd. 8, S. 91-108.
5. On Map-Matching Vehicle Tracking Data. Brakatsoulas, Sotiris, et al., et al. Trondheim,
Norway : s.n., 2005. Proceedings of the 31st VLDB Conference. S. 853-864.
6. Map-Matching for Low-Sampling-Rate GPS Trajectories. Lou*, Lin, et al., et al. s.l. : In
Proceedings of ACM SIGSPATIAL Conference on Geographical Information Systems (ACM
SIGSPATIAL GIS 2009), 2009.
7. Giovannini, Luca. A Novel Map-Matching Procedure for Low-Sampling GPS Data with
Applications to Traffic Flow Analysis. Bologna : Dipartimento di Fisica, 2011.
8. A Weight-based Map Matching Method in Moving Objects Databases. Yin, Huabei und
Wolfson, Ouri. Santorini Island : Proceedings of the 16th International Conference on
Scientific and Statistical Database Management, 2004. S. 437 - 438.
9. Efficient worst-case data structures for range searching. Bentley, J. L. und Maruer, H. A.
2, s.l. : Acta Informatica, Frebruary 1980, Bd. 13, S. 155-168.
16