Gibt es Techniken des maschinellen Lernens, um Punkte auf Plots / Bildern zu identifizieren?


8

Ich habe Daten für die seitliche Position jedes Fahrzeugs über die Zeit und die Fahrspurnummer, wie in diesen 3 Darstellungen im Bild und in den Beispieldaten unten gezeigt.

Geben Sie hier die Bildbeschreibung ein

> a
   Frame.ID   xcoord Lane
1       452 27.39400    3
2       453 27.38331    3
3       454 27.42999    3
4       455 27.46512    3
5       456 27.49066    3

Die seitliche Position ändert sich im Laufe der Zeit, da ein menschlicher Fahrer die Fahrzeugposition nicht perfekt kontrollieren kann. Das Spurwechselmanöver beginnt, wenn sich die seitliche Position drastisch ändert, und endet, wenn die Änderung wieder "normal" wird. Dies kann nicht direkt aus den Daten identifiziert werden. Ich muss das Diagramm jedes Fahrzeugs manuell betrachten, um den Start- und Endpunkt des Spurwechselmanövers zu bestimmen, um die Dauer des Spurwechsels abzuschätzen. Aber ich habe Tausende von Fahrzeugen im Datensatz. Könnten Sie mich bitte auf einen relevanten Bildanalyse- / maschinellen Lernalgorithmus hinweisen, der trainiert werden könnte, um diese Punkte zu identifizieren? Ich arbeite in R. Danke im Voraus.


Haben Sie versucht, mathematisch zu identifizieren, was Sie tun, wenn Sie die Spurwechselmanöver manuell klassifizieren? Suchen Sie allgemein nach einer Änderung der Spurpositionsfunktion von einem stabilen Gradienten nahe Null, gefolgt von einem starken Anstieg der Gradientengröße, was entweder zu einem weiteren Zeitraum nahe Null Gradienten oder zum Ende der Daten führt?
image_doctor

Haben Sie eine Reihe von Originalbildern, mit denen wir experimentieren können?
image_doctor

Die Achse und die Skalen sind Legenden, die in den Beispielbildern nicht besonders konsistent sind. Gibt es eine Möglichkeit, die Diagramme zu standardisieren, oder haben Sie keine Kontrolle über die Bilderstellung?
image_doctor

1
Ja, ich verstehe, dass Sie das Ende des Spurwechselmanövers identifizieren möchten, aber wenn Sie zu jedem Zeitpunkt bereits die Spur des Fahrzeugs haben, ist es nicht schwer, diese Änderungen zu erkennen. Ich würde zunächst definieren, wann wir berücksichtigen sollten, dass das Fahrzeug nicht mehr die Spur wechselt (z. B. nach einer bestimmten Anzahl von Sekunden, die auf derselben Spur fahren). Sie können ein Fenster verwenden, um Segmente zu erkennen, in denen das Fahrzeug dieselbe Fahrspur beibehält, und die Punkte am Anfang und Ende solcher Segmente beschreiben Ihren "Beginn des Spurwechsels" bzw. "Ende des Spurwechsels".
Robert Smith

1
Toll. Ich dachte, Sie hätten keine Ursprungs- und Zielspur, aber wenn Sie diese immer haben, sollte Ihre Lösung funktionieren und zusätzlich die Daten verwenden, die Sie bereits benötigen, um eine Definition des Spurwechsels zu erstellen.
Robert Smith

Antworten:


2

Eine erste Ableitung an der Oberfläche würde es tun. Die von Ihnen angezeigten Daten enthalten jedoch viel Rauschen. Daher benötigen wir eine Möglichkeit, die erste Ableitung etwas geräuschlos oder zumindest innerhalb eines Frequenzbereichs zu bewerten, der den Jitter beseitigt und die wesentliche Ableitungsänderung beibehält.

Die Wavelet-Analyse könnte dies für Sie erreichen, insbesondere wenn Sie die erste Ableitung eines Gaußschen als Mutter-Wavelet verwenden. R hat einige anständige Wavelet-Pakete (siehe r-project.org für den Anfang). Wenn Sie die Wavelet-Transformation in kurzen Maßstäben durchführen, werden die Positionen der Jitter-Bits in der Lenkung identifiziert. Wenn Sie dies in größeren Maßstäben tun (dh mit niedrigerer Frequenz), können Sie wahrscheinlich nur die Spurwechsel und nicht die kleinen Jitter finden.

Wenn Sie die Transformation mit einem angemessenen Datensatz trainieren, sollten Sie in der Lage sein, eine Skala oder einen Bereich von Skalen zu identifizieren, die Spurwechseln entsprechen. Beachten Sie jedoch, dass dies etwa O (n ^ 2) ist, wenn Sie dies nicht herausfinden. Versuchen Sie daher, den Skalierungsbereich etwas einzuschränken, um Rechenzeit zu sparen.


1

Sieht so aus, als könnten Sie nur ein paar Sekunden höher als die Rauschableitung suchen. Berechnen Sie einfach den absoluten Wert der endlichen Differenz von jedem Zeitschritt bis zum letzten (oder einem der ersteren) und warten Sie auf eine Reihe hoher Werte. Dann kommt es zu einem Spurwechsel.


Das habe ich eigentlich getan. Das Problem ist, dass die Differenzschwelle und die "hohen" Werte sehr subjektiv sind, da die Fahrt jedes Fahrzeugs unterschiedlich ist.
Umair Durrani

1

Probieren Sie die Changepoint-Paket aus . Ich habe es in einem ähnlichen Fall benutzt.

Die Änderungspunktanalyse ist der statistische Name für Methoden, die Änderungen zwischen zwei "Regimen" erkennen. Ein Auto, das auf einer Fahrspur bleibt, ist eine Linie mit dem Gefälle 0 in der Mitte einer Fahrspur. Sie können problemlos ein statistisches Modell an Autos anpassen, die auf Fahrspuren fahren. Ein Spurwechsel fährt entlang einer Linie mit einem Gefälle von nicht 0. Das Modell hat sich geändert. Die Änderungspunktanalyse und das Änderungspunktpaket sind genau das, was Sie benötigen, um den Punkt zu bestimmen, an dem sich ein Modell von y=a' (straight and level) toy = a + bx` ändert (nach oben oder unten).


Dies ist im Wesentlichen eine reine Linkantwort und wird bei SE eher entmutigt. Vielleicht können Sie herausfinden, was es ist und warum es hilfreich ist.
Sean Owen

@AlbertoD Die archaische Sprache der von Ihnen freigegebenen Vignette ist für jemanden, der mit dem Konzept der Änderungspunktanalyse noch nicht vertraut ist, nicht hilfreich.
Umair Durrani

@AlbertoD Könnten Sie bitte ein Beispiel dafür geben, wie Sie das cp-Paket in Ihrem Fall verwendet haben?
Umair Durrani
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.