Bildverarbeitung - Bewegung erkennen - HILFE!



  • Moin!

    Ich bin mir nicht sicher, ob das hier dafür das richtige Board ist. Deshalb:
    @Admins
    Bitte verschieben, wenn notwendig! Danke.

    So! Nun zum Problem:
    Wir müssen für ein Projekt die Bewegung von Autos auf einer Autobahn erkennen. (Anzahl KFZ pro Minute)
    Die Bilder kommen von einer Kamera und werden mit nem Framegrabber "eingefangen".
    Die Bildsubtraktion ist auch kein Problem, aber wir bräuchten einen Algorithmus um die Bewegung zu verfolgen, also ob ein Auto sich nach links oder nach rechts bewegt.

    Hat einer von euch Ahnung und nen schönen Vorschlag für uns?
    Danke im Voraus!



  • Die Bewegungsrichtung sollte sich auf einer Autobahn an der benutzten Spur erkennen lassen.

    Ansonsten hast du mit einzelnen Frames eigentlich keine Chance.



  • Da habt ihr euch viel vorgenommen. Das ist schon ein Teil einer speziellen künslichen Intelligenz. Das Programm muss erkennen können ob es ein Auto ist und in welche Richtung es fährt.

    Ich würde es von der größe des Objekts abhängig machen.

    Bringe deinem Programm bei wie ein Auto in etwa aussieht. Am besten fängst du mit einfachen Formen an und schusst mal ob es funktioniert.

    Ich habe sowas noch die gemacht. Aber so würde ich vorgehen.

    Viel Glück



  • hmm...am besten ist sowas immer von oben und dazu vielleicht 2 kameras eine für die hinspur und eine für die entgegengesetzte, naja dann könnteste du solche sensoren wie die blitzkästen auf die straße pappen die lösen dann die kamera aus und du errechnest die ungefähre größe der karre an der änderung des "hintergrundes" zum "maskierungsbild" (das was du ohne jedes auto gemacht hast) und je nach dem wie groß die änderung ist löst du den zähler aus, naja das geht aber nur wirklich von oben und das beschriebene is ziemlich primitiv 🙂
    die einzelfahrzeugerfassung und "verfolgung" damit du rausbekommst in welche richtung es fährt ist ziemlich viel komplexer :), versuch es lieber durch eine geschickte sensorik zu lösen 🙂

    tschööö

    tt



  • Hey Leute!
    Bin schon mal froh, dass überhaupt jemand geantwortet hat. Hab ehrlich gesagt gar nicht wirklich damit gerechnet (bei dem Thema).
    Aber ich musste bei euren Antworten leicht grinsen, denn die Ideen hatten wir auch schon. (mehrere Kameras, andere Sensoren, Bild von oben, etc.)

    Das Problem ist aber, dass wir ein kostenreduzierendes System entwickeln müssen (!!!), was auf Dinge wie Fahrbahnmanipulation, Installation von Überwachungsbrücken o.Ä. verzichtet.
    D.h.: Unsere Kamera befindet sich z.B. an einem Hochhaus in relativ grosser Entfernung (mehrere 100 Meter bis 2-3 km). Der Blickwinkel ist auch nicht so toll (zwar schon von oben (=> Hochhaus) aber in einem seitlichen Winkel von ca. 50 Grad).
    Deshalb können wir auch nicht sie Spuren einzeln analysieren, sondern müssen die Kamerabilder so miteinander vergleichen, dass man die Bewegungsrichtung rausbekommt. Wegen der Grossen Entfernung fällt, trotz Teleobjektiv, auch die Variante weg, dass wir die Umrisse vergleichen. Dazu kommt auch noch, dass wir ja evtl. Überlagerungen haben (wenn auf der "vorderen" Fahrbahn ein LKW fährt ist ein Teil von einem PKW auf der Gegenfahrbahn verdeckt).

    Das heisst für uns, dass wir nach der Bildsubtraktion (also nur noch die Autos in weiss und den Hintergrund in schwarz sehen) erstmal irgendwie rausbekommen müssen in welche Richtung sich das Auto bewegt.

    Und genau da liegt unser Problem 😞
    Vielleicht fällt euch ja doch noch was ein!

    Und nicht böse sein wegen dem grinsen, aber wir haben uns echt schon die Köpfe zerbrochen und sind dabei auf genau die gleichen Sachen gekommen 😉



  • @el Clio,
    das Projekt klingt wirklich interessant.
    Als erstes würde ich versuchen ein Bild des
    Autobahnabschnitts aufzunehmen wo keine Autos
    auf der Straße sind. Ist ja nach Autobahn etwas
    schwierig.

    Als nächstes muss ein Algorithmus geschrieben werden
    der Veränderungen zu dem Bild ohne Autos erkennt.
    Damit meine ich nicht Pixel für Pixel vergleichen,
    da das nie funktionieren würde.

    Nun würde ich mir die Veränderung merken.
    Beim nächsten Bild kann man ja dann erkennen in
    welche Richtung sich die Markierung bewegt.
    An der Richtung der Bewerbung kann man ja feststellen
    ob es sich um ein Fahrzeug der zu überwachenden Spur
    oder der entgegengesetzten handelt.

    Überlagerungen:
    Überlagerungen würde ich daran erkennen, dass zwei
    Veränderungen zu einer werden bzw. aus einer Veränderung
    wieder mehrere werden.

    Da ich mich noch nie mit Bilderkennung beschäftigt habe
    klingt das vielleicht etwas sehr vereinfacht und recht
    simpel. Nur wären die oben genannten Punkte meine ersten
    Gedanken.

    PS:
    Algorithmen für Veränderung innerhalb von Bildern
    findest du bestimmt in einigen OpenSource WebCam.
    Programmen.

    Bye Peter.



  • hmm...wie wäre es mit einer thermo IR lösung? so könntest du jedes fahrzeug konkret einer seite anhand der wärmeausstrahlung zuordnen, ich weiss jetzt nich in welcher entfernung sowas noch funktioniert kommt sicher auf die qualität der kamera an
    ansonsten..zu deinem problem mit der bewegung...da vielleicht sowas wie peter vorgeschlagen hat

    tschöö

    tt



  • Hmm, dann bin ich schonmal von den falschen Voraussetzungen ausgegangen. Ich dachte ihr habt von jedem Auto ein Bild das gemacht wird wenn es vorbeifährt, und wollt daraus dann die Richtung berechnen.

    So wird nicht möglich sein, zwei Autos, die mit annähernd gleicher Geschwindigkeit neben/hintereinander fahren zu unterscheiden, da sie auf dem SW Bild einfach als eine Fläche erscheinen.

    Warum könnt ihr Eure Kamera denn nicht auf einer Autobahnbrücke aufstellen, das würde offensichtlich bessere Daten liefern?



  • ich fang mal hinten an:
    @TGGC
    Das Problem bei der Überlagerung ist nicht die evtl. verfälschte Zahl sondern, dass beim 1. Bild z.B. ein überlagerung ist und beim 2. nicht mehr, da sich die überlagerten Autos in entgegengesetzter richtung bewegen. Jetzt stellt sich die Frage, ob es 2 Autos sind, ob sich nur das eine bewegt hat und das andere schon ein neues Auto ist etc.

    Kamera an einer Autobahnbrücke aufstellen geht aus mehreren Gründen nicht:
    1. Es ist verboten (gefählicher Eingriff in den Strassenverkehr)
    2. Wäre es doch recht schwierig eine Kamera und einen Windows-PC (zur Verarbeitung) inkl. Stromversorgung und einer Internetverbindung auf ne Brücke zu bringen, zumal das da keine 5 Minuten stehen würde.
    3. (was du nicht wissen kannst) Wir dürfen das nicht, da der Auftrag klar sagt, dass die Cam an (oder in) einem Hochhaus angebracht werden muss zwecks vereinfachung der Installation (Strom, Internet, Platz für den Windows-PC) und Kostenersparnis

    @TheTester
    Das Prolbem bei deinem Vorschlag ist ähnlich wie bei denen von TGGC, denn wir haben 3 Kameratypen vorgegeben und da ist keine IR-Cam dabei. Ausserdem glaub ich kaum, dass ne IR-Cam auf die distanz funzt geschweige denn, dass es uns helfen würde, denn ich denke, dass die KFZ auf allen Spuren ähnlich aussehen würden und dann hätten wir wieder die gleichen Probleme (Überlagerung, Richtung?, etc.).

    @__Peter
    Du hast das Problem eigentlich genau getroffen. So wie du sagst wollen / müssen wir das auch machen, nur dass es genau an einer Stelle scheitert:
    Beim Merken der Veränderung und der Aufteilung der Überlagerungen.
    Wie ich oben schon geschrieben hab ist es schwierig zu sagen, ob eine Überlagerung vorhanden ist sich im nächten Bild auflöst oder ob es keine Überlagerung war und der 2. Fleck nur ein neues Auto ist.
    Ausserdem fahren da ja relativ viele Autos auf soner Autobahn, sodass es wahrscheinlich in unserem Bildausschnitt mehrere Überlagerungen und mehrere "normale" Autos gibt.



  • Ich dachte ihr wolltet die Autos pro Minute zählen, aber nun sagst du wieder, das die verfälschte Zahl kein Problem ist?

    Wie ich bereits im ersten Post sagte, kannst du aus einem einzelnen Bild die Richtung nicht erkennen (du schon, der PC aber nicht). Du müsstest also in jedem Bild die Umrisse der Autos suchen, und dann die Umrisse mit den letzten n Bildern vergleichen. Die Umrisse bewegen sich dann mit fortschreitenter Zeit durch das Bild. Durch die Überlagerungen gibt es nun aber viele Sonderfälle, wobei eine Überlagerung mit dem Gegenverkehr IMHO weniger schlimm ist, denn diese dauert nur kurz, und ändert ihre Form so schnell das man dies erkennt (bzw. dies gleich als anderer Umriss erkannt wird). Also könnte man alle nur kurz auftauchenden Umrisse gleich wegschmeissen. Findet die Überlagerung aber auf der gleiche Seite statt, dann ist viel schwerer von einem konstanten Umriss zu unterscheiden.

    Bye, TGGC



  • Hi,

    Also erstmal, ich habe bisher auch noch nicht viele, bzw. keine Erfahrungen mit diesem Thema machen können.

    Meine Idee:
    -----------

    Um bestimmten zu können ob eine Überlagerung der Autos stattfindet, braucht man zunächst Spezifikationen der Autos.

    Damit meine ich - Man braucht ein Algo. der einem Auto-Type(zb.per ID) eine Wert zuweist und darüber dann logische Schlüsse draust zieht. ( Wurde glaub ich schon gesagt, wollte es nochmal hervorheben.)

    Nun ist die Fage wie man Autos klassifizieren/einordnen kann: (Auto-Type,Position)

    Eine Möglichkeit wäre es Bilder von Auto-Typen zu speichern und an Hand von prozentualen Vergleichen daraus schließen was das für ein Auto-Type ist.
    ( klar ist ziemlich unplausiebel, weil man unmöglich von jedem Auto-Type Bilchen hat :D. )

    Weitere Bestimmung (Geschwindigkeit/Fahrtrichtung/...) kann man dann vielleicht durch Positionierungen berechnen.
    Aber das hört sich alles nur so Simpel an 🙂

    Bye



  • Das Prolbem bei deinem Vorschlag ist ähnlich wie bei denen von TGGC, denn wir >haben 3 Kameratypen vorgegeben und da ist keine IR-Cam dabei.

    das is natürlich schade 😉

    Ausserdem glaub ich kaum, dass ne IR-Cam auf die distanz funzt

    sind ein paar hundert meter

    geschweige denn, dass es uns helfen würde, denn ich denke, dass die KFZ auf >allen Spuren ähnlich aussehen würden

    sie unterscheiden sich schon in der größe 😉 aber hier brauchst du unbedingt einen klassifikator um die typen einordnen zu können

    und dann hätten wir wieder die gleichen Probleme (Überlagerung, Richtung?, >etc.).

    nich wirklich weil du ja weisst wo die mitte der straße ist und du kannst prüfen ob die pixelanhäufung rechts oder links von der seite ist 🙂 und überlagerung ist auch nich "dieses" problem 🙂 da sie sich nur überlagern wenn sie ineinander reinfahren 😉
    das was ich einfach an der idee hatte 🙂 ist das die autos "genauer" zu sehen sind 🙂

    aber ihr habt ja nur eine normale *g* 😉 wobei ihr habt euch doch bestimmt schon mal bilder angeschaut 😉 sind die so schlimm? die autos sollten sich doch eigentlich nicht überlagern wenn man schon ziemlich weit weg ist 🙂 kann man das doch umso besser erkennen es sei denn der sichtwinkel is so enorm flach...aber dann kann ich nur sagen dann ist es wirklich der falsche standort für eine kamera

    tschööö

    tt



  • Bei genügender Verschlußzeit könnte man auch an einem Einzelbild algorithmisch die Richtung feststellen.

    Kewles Projekt! 👍
    Hab' leider keine Tipps für euch... 😞

    Aber ich bring' gute Laune mit...!! 🤡 😃



  • @TGGC
    Das mit der verfälschten Zahl meinte ich so, dass es egal ist ob wir jetzt 100 Autos zählen oder 95 oder 105 (als Beispiel). Es geht eher um die Tendenz. (Klar, dass wir nicht bei 100 kfz/Min. auf ne Zahl von 20 oder 250 kommen dürfen :-))
    Uns ist auch klar, dass wir das über mehrere Bilder verfolgen müssen.
    Die Überlagerungen sind in sofern ein problem, dass sie sich "für uns" eben nicht schnell oder besser gesagt zu schnell ändern. Da es (rechen-) zeitlich nur max. 25 Bilder pro Sekunde gibt (eher wesentlich weniger) sieht das dann so aus, dass wir z.B. in der Mitte eine Überlagerung haben und im nächsten Bild sind die "Flecke" schon im linken bzw. rechten Drittel des Bildes (je nach Geschwindigkeit und Richtung eben).

    @Cenetix
    Autotypen erkennung geht leider auch nicht. Da macht "der Datenschutz" uns die Hölle heiss. Damit wir die Bilder verwenden/ veröffentlichen dürfen darf KEINE Person, KEIN Kennzeichen und eigentlich auch KEIN Autotyp erkennbar sein.
    Ausserdem haben wir ja (wie du schon sagst) 1. nicht von jedem Autotyp ein Bild und 2. auch noch die schei** Leitplanke davor. und im Falle einer Überlagerung auch noch evtl. ein Teil von einem anderen Auto, sodass wir auch keine Umrisserkennung machen können. Das muss alles auch einfacher gehen, sonst hätte uns der Prof nicht an das Projekt gesetzt (wir haben von Bildverarbeitung ja auch keinen Plan - nur vom Rest => zum Glück).

    @TheTester
    Thema Blickwinkel: Guckst du hier => http://autobahn.bv-projekte.de/test.bmp
    Wie du siehst ist das nix mit Spuren und Mitte und so. Das is ja unser Problem.
    Wir müssen auch für die Entwicklung von diesem Kamerastandpunkt ausgehen. 😞

    @Sgt. Nukem
    Verchlusszeit is nich. Wir holen die Bilder von einer Framegrabberkarte und die haut uns die permanent um die Ohren (siehe Link)



  • el Clio schrieb:

    @Sgt. Nukem
    Verchlusszeit is nich. Wir holen die Bilder von einer Framegrabberkarte und die haut uns die permanent um die Ohren (siehe Link)

    Das war auch nur an TGGC gerichtet der behauptete es ginge generell nicht! 🤡

    P.S.: Die Auflösung / Erkennbarkeit auf dem WebCam Bild läßt echt zu wünschen übrig... Das wird auf jeden Fall 'ne harte Nuß für einen Algorithmus!! 😮



  • hmm...ziemlich unbrauchbarer winkel 😉

    tschöö

    tt



  • @Sgt. Nukem:
    Hmm, wie soll das gehen? Auf einem Einzelbild ist doch keine zeitliche Information gespeichert, wie soll man da eine zeitlichen Ablauf erkennen? Ich würde sage, nicht einmal ein Mensch kann das, oder übersehe ich etwas?

    @Bild:
    Also da es schon mir schwer fällt zu erkennen, ob da 2, 3 oder noch mehr Autos sind, frage ich mich, ob es mit diesen Ausgangsdaten überhaupt möglich ist.



  • Das Projekt ist mit diesen Bildern unmöglich.



  • TGGC schrieb:

    @Sgt. Nukem:
    Hmm, wie soll das gehen? Auf einem Einzelbild ist doch keine zeitliche Information gespeichert, wie soll man da eine zeitlichen Ablauf erkennen? Ich würde sage, nicht einmal ein Mensch kann das, oder übersehe ich etwas?

    @Bild:
    Also da es schon mir schwer fällt zu erkennen, ob da 2, 3 oder noch mehr Autos sind, frage ich mich, ob es mit diesen Ausgangsdaten überhaupt möglich ist.

    @@Sgt. Nukem:
    Wenn die Verschlußzeit groß genug ist, werden die Autos verschwommen. MotionBlur halt. Daraus kann man nun zeitliche Information interpretieren. 😉

    @@Bild:
    Genau das meinte ich. Ist 'ne harte Nuß...



  • naja... wenns einfach wär würd ich ja hier nicht so dumm rum fragen, oder? 😉

    Aber unmöglich ist das definitiv nicht. Irgendwie geht das auf jeden Fall, sonst hätten wir, wie gesagt, diesen Auftrag nicht gekriegt, denn der Prof (= Auftraggeber) hat ja ahnung davon, will uns aber nicht helfen (zumindest nicht in dem Umfang!). 😞


Anmelden zum Antworten