1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Fahrspurerkennung

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Lisa2, 13.07.2012.

  1. Lisa2, 13.07.2012 #1
    Lisa2

    Lisa2 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2012
    Hallo allerseits!

    Ich muss eine App entwickeln, die durch die kamera vom Endgerät die Fahrspur auf Autobahn erkennen kann. :o

    Ich habe 6 Monate Zeit, und Ich weiß überhaupt nicht wo ich anfangen soll‎ und ob das in diesem Zeitraum machbar ist ! :confused:

    Bitte Hilfe ! :crying:
     
  2. steez.zeus, 13.07.2012 #2
    steez.zeus

    steez.zeus Android-Experte

    Beiträge:
    456
    Erhaltene Danke:
    59
    Registriert seit:
    23.10.2011
    Tablet:
    ASUS Transformer T300
    Deinem Post fehlt es eindeutig an Informationen.
     
  3. renegade2k, 13.07.2012 #3
    renegade2k

    renegade2k Android-Hilfe.de Mitglied

    Beiträge:
    94
    Erhaltene Danke:
    4
    Registriert seit:
    06.01.2010
    Phone:
    HTC Sensation
    In dem Zeitraum ist es durchaus machbar, jedoch ist es alles andere als einfach.

    Ich würde den Ansatz in Betracht ziehe zuerst ein graues und kein Buntes Bild zu erfassen. Das sollte die erkennung der Spuren (weisse gestrichelte Streifen auf grauer Straße) deutlich erleichtern.

    Anschließend brauchst du "nur" noch die erfassten Bilder auszuwerten.

    Und da kommt das eigentliche Problem.
    Es kommen sehr viele Faktoren ins Spiel.
    Von wo aus wird das Bild aufgenommen? Sind die Streifen gut sichtbar? Die Beleuchtung muss auf jeden Fall stimmen. Ist dien Algorythmus nicht empfindlich genug, findest du keine Spur. Ist er zu empfindlich hast du Rauschen und deine Spur wird die ganze Zeit durch das Bild springen.
    Wie schnell fährt das Fahrzeug? Ist das gerät schnell genug die Bilder zu erfassen und auszuwerten?
    Oder geht es um eine statische Aufnahme? Also kein Video, sondern nur ein Foto?
     
    Zuletzt bearbeitet: 13.07.2012
    Lisa2 bedankt sich.
  4. Lisa2, 13.07.2012 #4
    Lisa2

    Lisa2 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2012
    Hallo renegade2k !
    danke für deine Antwort !
    Das ist ein Forschung Projekt (Meine Matserarbeit) !
    Das Fahrzeug wird bei 50 kmh fahren
    Das gerät ist ein Nexus S3
    Es geht um eine video Aufnahme also dynamische Aufnahme.

    Danke nochmal
     
  5. TheDarkRose, 13.07.2012 #5
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Beiträge:
    1,292
    Erhaltene Danke:
    136
    Registriert seit:
    20.08.2010
    das ist deine masterarbeit? dann -> dev.android.com und geh dich informieren. stell dir doch nen zeitplan zusammen....
     
  6. Kardroid, 13.07.2012 #6
    Kardroid

    Kardroid Android-Experte

    Beiträge:
    482
    Erhaltene Danke:
    80
    Registriert seit:
    03.10.2009
    Da ich in letzter Zeit einen Bewegungsalgorithmus in Objectiv C implementieren musste und es wohl bald in Android/Java machen muss, kann ich dir ein paar Tipps geben und vielleicht meinen Ansatz nennen.

    Versuch am Besten mit OpenGL deine Bilder zu analysieren, die GPU ist bis zu 50 mal schneller im Bilder berechnen als die CPU.
    Benchmarks gibt es bei GPU-accelerated video processing on Mac and iOS | Sunset Lake Software

    Nimm aber nicht den Color Tracking Algorithmus von ihm, der funktioniert nämlich nicht bei weißer Farbe.

    Sein Algorithmus geht nämlich so:
    Der gesuchte und alle Pixel im zu analysierenden Bild werden normalisiert.
    Also jeder RGB-Wert duch 3 geteilt und dann der RGBInteger durch diesen Wert geteilt.
    Danach wird die Differenz des gesuchten Pixel zu allen im Bild vorhandenen Pixel berechnet. wurzel((r1-r2)^2 + (g1-g2)^2 + (b1-b2)^2).
    Diese Berechnung funktioniert bei hohen RGB Werten nicht so gut.

    Ich hatte auch ein Paper gelesen, in dem auch erkärt wurde, das ein (0,0,255) ja dunkler aussieht als ein (0,255,0) und deswegen verschiedene Konstanten benutzt werden müssen.

    Wenn es aber nur um die Farbe "weiß oder hell grau" im unterschied zum grau der Straße geht, würde ich es so machen:

    Jedes Bild das die Kamera aufnimmt wird untersucht und alle hellen Pixel werden in einem Array gespeichert.
    Dann würde ich mir nur die linke Seite des Bildes angucken. (Ich gehe jetzt davon aus, das die Kamera in der Mitte des Autos befestigt ist und beide Fahrspurbegrenzungen zu sehen sind)
    Die linke Seite angucken heißt, nur die Pixel mit einem X Wert < gesamte Breite/ 2.
    Dann gibt es einen Algorithmus zum Erkennen der horizontalen Mitte. Mir fällt er jetzt nicht ein, aber den wirst du schon finden können.
    Diesen X Wert würde ich zwischen speichern.

    Nachdem das gleiche mit der rechten Seite durchgeführt wurde, hätte ich schon mal zwei X Werte mit den Fahrspurbegrenzungen. (weißen Strichen)

    Ab jetzt müsste ich wissen, was das Programm können muss.
    Falls es erkennen muss, das das Fahrzeug zu weit rechts oder links fährt, kann man die X-Werte zu der Mitte des Bildes berechnen und so erkennen, das das Fahrzeug zu weit rechts oder links ist.
    Man könnte aber mehrere X-Werte von den vorherigen Bildern vergleichen und so ein weiches Lenken erkennen.

    Bitte bedenke, dass dieser Algorithmus nur bei trockenem Wetter tagsüber funktioniert.

    Ich wünsch dir schon mal viel Erfolg bei deiner Masterarbeit.
     
    Lisa2 bedankt sich.

Diese Seite empfehlen