Bildverarbeitung - Bewegung erkennen - HILFE!
-
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ösentschööö
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 hattschöö
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 anBye
-
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 hatteist 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!).
-
Sgt. Nukem schrieb:
Wenn die Verschlußzeit groß genug ist, werden die Autos verschwommen. MotionBlur halt. Daraus kann man nun zeitliche Information interpretieren.
Nur wie?
-
TGGC schrieb:
Sgt. Nukem schrieb:
Wenn die Verschlußzeit groß genug ist, werden die Autos verschwommen. MotionBlur halt. Daraus kann man nun zeitliche Information interpretieren.
Nur wie?
Ich sag nicht daß es einfach ist, aber aus dem "Verschwimmen" kann man erstmal schon mal die vektorielle Richtung ablesen, und wahrscheinlich auch die exakte Richtung. Hab' kein Foto hier, aber vorne ist es sauscharf, und hinten halt... ach egal...