DashPi

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    Ich habe vor kurzem einen Raspberry Pi erhalten. Mein Projekt ist ein "DashPi". Eine Verbindung aus einer Dashboard Kamera und einem Raspberry Pi. Ziel ist es, eine GoPro an den Raspberry Pi anzuschließen, ins Auto zu montieren und auf einem Bildschirm eine Analyse der Straße zu erhalten; Schilder, Fahrbahnmarkierungen, Distanz zum anderen Fahrzeug, etc. Das ganze ist natürlich utopisch, denn nicht mal die großen Firmen voll funktionsfähige Algorithmen besitzen. Es ist dennoch ein Versuch wert! Aktuell werden die Schilde wie folgt erkannt:


    Sprich scheiße. Es steckt noch alles in den Kinderschuhen und eine menge an Arbeit liegt noch vor mir.

    Ich benutze Arch Linux ohne GUI sowie openCV um eine Basis für die Bildanalyse zu besitzen. Das ganze wird in C++ geschrieben. Falls Interesse besteht, wie es (bis jetzt) funktioniert und wie es weiter geht, halte ich euch gerne auf dem laufenden. Ich bin auch offen für Vorschläge und Kritik, falls ihr welche habt.

    Nebensächlich, Robotik ist nicht nur ein kleines Fahrzeug zu steuern, sondern vor allem Machine Learning, Visual Computing und alles was das Fahrzeug auf dem Kurs hält ;)

    Einen Überblick meiner Projekte gibt es auf meinem Blog: lyinch.com

    Einmal editiert, zuletzt von lyinch (5. Juni 2014 um 20:49)

  • Ja hallo ...
    klingt in der Tat interessant.
    Ja es gäbe so viel, was ich gerne ausprobieren möchte, aber leider hat der Tag nur 24 Stunden :) ...
    Wäre nett, wenn Du hier z.B. unter "laufende Projekte" einen Thread eröffnen, und den dann hin und wieder aktualisieren würdest.
    Ich bin am meisten neugierig auf die Rechenleistung. OpenCV ist imho schon mal eine gute Wahl, obwohl vielleicht etwas oversized, aber dafür sehr mächtig.
    Bin gespannt wann der RPi da an seine Grenzen stösst. Hast Du für diesen Fall schon einen Lösungsansatz?
    cu,
    -ds-

  • Hallo zusammen,

    Zitat


    Das ganze ist natürlich utopisch, denn nicht mal die großen Firmen voll funktionsfähige Algorithmen besitzen[...]


    => das stimmt nicht ganz. In Aschaffenburg wird bereits seit einem Jahr eine entsprechende Software getestet. Frag' mich jetzt bitte nicht, welche Firmen da mit im Boot sitzen, denn dies habe ich 'nur' beiläufig mitbekommen (war damals ein langer Bericht im TV gewesen).

    === EDIT ===

    Zitat


    [...] In den Städten sinkt diese jedoch enorm, wenn dann noch andere Berechnungen wie Strassenmarkierung, Orientierung per Laser etc. hinzu kommen wird es immer komplexer. [...]


    =>???
    WIE BEREITS GESAGT: dies wird in Aschaffenburg (ist eine STADT) seit einem Jahr getestet(Triangle, Laser, etc.). Übrigens hat Intel gerade einen entsprechenden Chip (Fahren OHNE Fahrer) an diverse Automobilfirmen ausgeliefert ...
    === edit ende ===

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

    Einmal editiert, zuletzt von Perlchamp (6. Juni 2014 um 14:13)


  • Ich bin am meisten neugierig auf die Rechenleistung. OpenCV ist imho schon mal eine gute Wahl, obwohl vielleicht etwas oversized, aber dafür sehr mächtig.
    Bin gespannt wann der RPi da an seine Grenzen stösst. Hast Du für diesen Fall schon einen Lösungsansatz?
    cu,
    -ds-


    Ich halte euch auf dem laufenden. Lösungsansätze gibt es bereits, falls die Rechenleistung knapp wird. Wann dies eintritt, kann ich jedoch nicht sagen, da ich momentan vor allen die Algorithmen an Bildern anstatt an Videos teste.


    Hallo zusammen,


    => das stimmt nicht ganz. In Aschaffenburg wird bereits seit einem Jahr eine entsprechende Software getestet. Frag' mich jetzt bitte nicht, welche Firmen da mit im Boot sietzen, denn dies habe ich 'nur' beiläufig mitbekommen (war damals ein langer Bericht im TV gewesen).

    so long
    Perlchamp


    Okay sagen wir mal so, es gibt Algorithmen mit einer sehr hohen Erkennungsrate von Schildern. 97% auf Highways beispielsweise. In den Städten sinkt diese jedoch enorm, wenn dann noch andere Berechnungen wie Strassenmarkierung, Orientierung per Laser etc. hinzu kommen wird es immer komplexer. Weder Google noch das Robotics Research Lab von Oxford vertrauen auf ihre Algorithmen. Die Fahrzeuge, welche unbemannt fahren, lesen Schilder aus und vergleichen diese mit einer Karte der Stadt, auf welcher jede Kreuzung, Ampel, Zebrastreifen und Schild eingezeichnet sind. Diese Karten wurden von Personen, im Falle von Google, freiwilligen aus ganz Amerika, erstellt. Das Potential für Fehler ist noch zu gross, um sich komplett auf die Algorithmen zu verlassen. Natürlich spielen Versicherungsfragen und die Sicherheit auch eine wichtige Rolle. Im falle eines falsch gelesenen Schildes, wer trägt die Verantwortung wenn ein Mensch dabei stirbt, wenn es kein Fahrer im Fahrzeug gibt?
    Ziel ist es natürlich eine so robuste Schildererkennung zu erhalten, welche in jedem Falle, egal ob bei Regen, Schnell oder starken Sonnenschein, egal ob halb verdeckt, bemalt oder schräg, das Schild korrekt erkennt. Techniken zur Entfernungsmessung gibt es genügend mit Laser, Triangulation zweier Kameras oder einigen Arten von Strahlungen. Diese sind sehr zuverlässig, Probleme gibt es jedoch vor allem bei der Datenverarbeitung der Kameras. Nur mal so nebenbei, unser Auge bekommt anscheinend bis zu 2GB Daten pro Sekunde und unser Gehirn kann diese in Echtzeit verarbeiten. Bis ein Bordcomputer solch eine Rechenleistung besitzt oder der Algorithmus so effizient ist, muss noch einiges an Forschung bewältigt werden...

    Einen Überblick meiner Projekte gibt es auf meinem Blog: lyinch.com

  • Moin lyinch,
    ja, in der Tat wir haben heute schon morgen ... oder so ;)


    ...
    Ich halte euch auf dem laufenden. Lösungsansätze gibt es bereits, falls die Rechenleistung knapp wird. Wann dies eintritt, kann ich jedoch nicht sagen, da ich momentan vor allen die Algorithmen an Bildern anstatt an Videos teste.
    ...


    Schön, freut mich :thumbs1:
    Mir ist übrigens als Alternative zu OpenCV noch GraphicsMagick eingefallen. Das hat auch ne Menge Möglichkeiten und ist vermutlich(!) schlanker als OpenCV.
    cu,
    -ds-

  • Hallo zusammen,

    ein sehr anspruchsvolles Projekt!

    Ich traue mir - leider! - wetten, daß dafür die Leistung des RPi bei Weitem nicht reichen wird. Oder willst Du die Schilder nur im Stand und nicht während der Fahrt erkennen? Würde ja auch als erster Schritt erstmal genügen.

    Für eine schnelle und zuverlässige Objekterkennung gibt es generell ein großes Interesse, bei weitem nicht nur für Verkehrszwecke. Ich glaube weniger, daß es an den passenden Algorithmen liegt, sondern für Ergebnisse in Echtzeit eher an der benötigten Rechenleistung. Was ich glaube, muß aber ja nicht stimmen. ;)

    Viel Spass und Erfolg!

  • Vielleicht ist es in dem Bereich ja sinnvoll, ein Cluster von PIs aufzubauen. Also beispielsweise ein Main-Pi, der Fotos schießt und Bereiche "ausschneidet" (Autos/runde Schilder/dreieckige Schilder/Menschen) und diese an die anderen PIs passend weiterleitet.

    Ist auf jedenfall ein interessantes Thema mit viel Zukunftssicherheit...

  • Hallo, ich hatte etwas weniger Zeit um weiter zu arbeiten. Es gibt trotzdem einige Fortschritte!


    Mir ist übrigens als Alternative zu OpenCV noch GraphicsMagick eingefallen. Das hat auch ne Menge Möglichkeiten und ist vermutlich(!) schlanker als OpenCV.
    cu,
    -ds-


    Danke, aktuell liegt mein Fokus jedoch auf den Algorithmen, welche grösstenteils unabhängig vun dem Framework funktionieren. Die Entwicklung ist momentan auch auf einem PC/Laptop anstatt dem Raspberry Pi selber, der einfachheit selber. Sobald das ganze in ein Auto installiert wird, zeigt sich, wie effizient openCV und meine Vorgehensweise ist. Falls dies nicht klappt wie gewollt, bin ich möglicherweise gezwungen auf eine Alternative umzusteigen.


    Hallo zusammen,

    ein sehr anspruchsvolles Projekt!

    Ich traue mir - leider! - wetten, daß dafür die Leistung des RPi bei Weitem nicht reichen wird. Oder willst Du die Schilder nur im Stand und nicht während der Fahrt erkennen? Würde ja auch als erster Schritt erstmal genügen.

    Für eine schnelle und zuverlässige Objekterkennung gibt es generell ein großes Interesse, bei weitem nicht nur für Verkehrszwecke. Ich glaube weniger, daß es an den passenden Algorithmen liegt, sondern für Ergebnisse in Echtzeit eher an der benötigten Rechenleistung. Was ich glaube, muß aber ja nicht stimmen. ;)

    Viel Spass und Erfolg!


    Hallo, ziel ist es in Echtzeit zu analysieren. Die Arbeit erfolgt aktuell jedoch nur an Standbilder.Die Schwierigkeit liegt an beiden gennanten Faktoren. Eine Objekterkennung ist sehr schwierig zu bewerkstelligen, da das Objekt beschädigt oder durch die Kamera verzerrt sein kann. Es können Objekte davor oder dahinter stehen, durch das Wetter und einfallendes Licht eine andere Farbe habe. Es gibt einige Algorithmen, wenn wir bei der Schilderanalyse bleiben, welche die Farberkennung mit der Formerkennung verbinden, diese sind auch relativ zuverlässig, jedoch ist hier die Schnelligkeit (oder eher Langsamkeit?) das Problem.



    Vielleicht ist es in dem Bereich ja sinnvoll, ein Cluster von PIs aufzubauen. Also beispielsweise ein Main-Pi, der Fotos schießt und Bereiche "ausschneidet" (Autos/runde Schilder/dreieckige Schilder/Menschen) und diese an die anderen PIs passend weiterleitet.

    Ist auf jedenfall ein interessantes Thema mit viel Zukunftssicherheit...


    MiesliRiegel: ich gehe bei einem anderen projekt genau so ran. haupt rpi und zwei neben rpi für die bildvorbearbeitung, verbunden im lan.

    Hallo, an dies habe ich auch bereits gedacht. Entweder die Arbeit zu verteilen, oder zwei Algorithmen laufen zu lassen. Einen schnellen, ungenaueren welcher dann nach ein paar millisekunden von dem langsamgeren aber genaueren vervollständigt wird. Wie bereits erwähnt, sind dies jedoch Probleme, welche erst später auftreten, wenn ich mit Echtzeitdaten arbeite. Aktuell läuft das ganze auf Leistungsfähigen Rechnern, bei denen es keine solcher Probleme gibt. Die Idee existiert jedoch bereits.


    Nice wenn man dies mit einen Infodisplay austattet das dann die Letzten Verkersinfos Zusammenfasst z.B Geschwindigeit begrenzung ect.


    Hallo, auch hier gibt es Ideen, ein solches System einzubauen. Der Fokus liegt jedoch zuerst auf der Bildanalyse, bevor weitere Daten über weitere Module gesammelt werden, um eine Fahranalyse zu gestalten. Da das ganze auf einem Raspberry Pi laufen soll, muss auch zumindest ein Bildschirm her. Eine eigene Case wird womöglich auch entwickelt, mit einigen LEDs zur Fehlererkennung, welche dann per 3D Drucker erstellt wird. Dies geschieht jedoch in einer späteren Phase des Projektes.

    Zum aktuellen Stand gibt es eine Verbesserung der Algorithmen. Das Programm wurde teils neu geschrieben, jedoch nicht so sauber wie die erste Version (wird immer verbessert ;) ). Hier sind einige neue Screenshots:
    Screenshot-from-2014-07-16-160421-1024x575.png
    Output_screenshot_23.07.20141-1024x576.png

    Falls ihr Fragen, Ideen oder Feedback habt, könnt ihr diese hier ruhig posten ;)
    Stay tuned, lyinch!

    Einen Überblick meiner Projekte gibt es auf meinem Blog: lyinch.com

  • Hallo Lyinch,

    sehr interessantes Thema. Leider kann ich dazu nichts beitragen, weil ich mich damit nicht auskenne. Aber eine Frage habe ich dazu gleich mal.

    Du hast bei deinen Bildern bestimmte Bereiche verändert. Also das Vorfahrtsschild grüne "bemalt". Wie hast du das hinbekommen?
    Ich Suche nach einer Möglichkeit Daten vom PI per OVerlay in ein Bild oder Video einzufügen, dass man das im Livebild gleich mit sehen kann. Also z.B. Uhrzeit, Position und so.

    Wie hst du das hinbekommen?

    Danke dir,
    Arno

    Einmal editiert, zuletzt von Arno Nym (23. Juli 2014 um 12:01)


  • Du hast bei deinen Bildern bestimmte Bereiche verändert. Also das Vorfahrtsschild grüne "bemalt". Wie hast du das hinbekommen?
    Ich Suche nach einer Möglichkeit Daten vom PI per OVerlay in ein Bild oder Video einzufügen, dass man das im Livebild gleich mit sehen kann. Also z.B. Uhrzeit, Position und so.

    Hallo, das "bemalen" wurde mit openCV gemacht. Wenn du nur einen overlay von Informationen machen möchtest, rate ich dir an eine kleinere Bildmanipulierungs Library zu nehmen. openCV ist primär für die Analyse gedacht, und nicht für die Bearbeitung. Es ist jedoch durchaus möglich solche Sachen mit openCV zu machen.

    Danke, lyinch!

    Einen Überblick meiner Projekte gibt es auf meinem Blog: lyinch.com

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!