Ich schreibe eine App, die Spuren in einem Fahrsimulator erkennen kann. Die Umgebung ist relativ einfach, ihre meist geraden mehrspurigen Straßen und fast keine Krümmung. Im Moment kann ich Linien mit der (klassischen) Hough-Transformation erfolgreich erkennen, aber das Problem ist, dass die HT natürlich auch Linien erkennt, die keine Bahnen sind.Spurerkennung in einer künstlichen Umgebung
Wie kann ich selektiver sein? Ich zeichne nicht horizontale Linien schon, aber immer noch einige Linien einschleichen. Idealerweise möchte ich die Spurgrenzen erkennen, dass das Fahrzeug in fährt. Das folgende ist ein typisches Bild der Umgebung
Hier ist, was ich bis jetzt mache:
-
1. Da die Umgebung mehr oder weniger die gleiche ist, wo auch immer ich fahre, setze ich die Region of Interest (RoI), um den Horizont und alles darüber hinaus auszuschließen.
-
2. Schwelle das Bild
-
3. Canny-Kantenerkennung
-
4. Tragen Sie eine Hough-Transformation
-
5. Zeichnen Sie die erfasste (Ich werde mein Grund für Schwelle in ein wenig erklären) Linien mit Ausnahme derjenigen, die einen Gradienten von 0,0 oder nahezu 0,0 aufweisen
ist das Ergebnis der obigen Operationen
Ich verstehe, dass es viele Lösungen für dieses Problem, und ich habe unzählige Papiere zu diesem Thema lesen, aber sie scheinen alle Umgebungen weitaus komplizierter sein Handling als dies und/oder sind einfach weit über meinen Kopf. Vor etwas mehr als einem Monat hatte ich keinen Hintergrund in ComputerVision und das alles ist sehr neu für mich.
UPDATE 1:
Ich denke, das in besseren Bedingungen zu setzen, ich bin auf der Suche nach einem Weg, um die Spuren zu modellieren, so dass Linien, die nicht in das Modell passen nicht enthalten ist. Leider habe ich keine Ahnung, wo ich mit Modellen anfangen soll. Irgendwelche Vorschläge?
Für was es wert ist, habe ich es geschafft, die Spuren zu identifizieren, in denen das Fahrzeug fährt, und kann die zusätzlichen Linien ausschließen, die sozusagen nicht Teil der "aktiven" Spur sind. Hoffentlich wird dieses Foto
Es ist nicht perfekt helfen, aber es ist etwas, was ich denke. Mein oberstes Ziel, nach dem Modellieren, ist es, eine Überschrift/Position des Fahrzeugs zu generieren. Aber ich möchte zuerst eine relativ robuste Spurerkennung erhalten.Ich hoffe, es gibt eine relativ einfache Technik, die dazu beitragen kann, dies zu erreichen (etwas, das nicht auf die Systemparameter wie Brennweite des Sichtfeldes abhängt).
Leider kann ich die Kamerahöhe und andere Parameter vom Fahrsimulator nicht herausfinden. Die Umgebung sieht in 95% der Fälle jedoch genau wie das Foto aus. Würde sich diese Methode immer noch lohnen? – saad
Wenn Sie das Sichtfeld der Kamera kennen, können Sie die Neigung von der Fluchtpunkt-y-Koordinate aus bestimmen. Wenn Sie die Neigung (Tonhöhe) und die Spurbreite kennen, können Sie die Kamerahöhe bestimmen. – ssegvic
Gibt es eine Möglichkeit, das Sichtfeld empirisch zu finden? Ohne die Brennweite zu kennen. Das Problem ist, dass die Fahrsimulation nicht von mir programmiert wurde und tatsächlich von einer anderen Firma stammt. Während ich versuchen werde, sie über solche Dinge zu befragen, glaube ich nicht, dass die Beantwortung solcher Fragen auf ihrer Prioritätenliste ganz oben stehen würde! – saad