Infoseite // Differenzbild berechnen zwischen Frames geht das?



Frage von Alen Zurfluh:


Hallo Leute

Für meine Diplomarbeit muss ich recht grosses Problem lösen, und ich
weiss nicht recht wie.

Ich nehme pro Tag eine grosse Daten-Menge an Video auf. Recht
starkkomprimiert mit dem XVID-Codec.

Jetzt ist es so, dass ich zu gegebenen Zeitpunkten eine Art "Motion
Detection" machen muss.

D.h. ich muss Frames die t Zeitschritte auseindander liegen
miteinander vergleichen. Dazu möchte ich ein Frame in Segemente
unterteilen, z.b. 9 Sektoren.
Und dann möchte ich sagen, dass sich z.b. im Sektor rechts-oben etwas
geändert hat. Diese Information soll dann in ein Text-File geschrieben
werden, usw.

Ich denke man muss irgendwie ein Differenzbild zwischen den einzelnen
Frames herstellen. Und dann sollte man anhand des Differenzbildes
sehen, wo sich was geändert hat.

1) Wie kriege aus meinem Videostream die einzelnen Frames raus um sie
zu vergleichen?

Das muss irgendwie automatisch gehen, weil ich werde eine Unmenge an
Video-Daten verarbeiten müssen.

2) wie vergleiche ich die einzelnen Frames ?

Hat jemand schon etwas Ähnliches gemacht? Es geht eigentlich um
Feature Extraktion und dann mal Dataming: Dazu muss ich aber eben die
Features (;Bildveränderungen) im Videostream extrahieren können

Vielen Dank für eure Hilfe!
Gruss
Alen


Space


Antwort von Ottfried Schmidt:

On 6 Apr 2004 01:37:19 -0700, alen.zurfluh@gmx.ch (;Alen Zurfluh)
wrote:

>Jetzt ist es so, dass ich zu gegebenen Zeitpunkten eine Art "Motion
>Detection" machen muss.

>Ich denke man muss irgendwie ein Differenzbild zwischen den einzelnen
>Frames herstellen. Und dann sollte man anhand des Differenzbildes
>sehen, wo sich was geändert hat.
>
>1) Wie kriege aus meinem Videostream die einzelnen Frames raus um sie
>zu vergleichen?
>
>Das muss irgendwie automatisch gehen, weil ich werde eine Unmenge an
>Video-Daten verarbeiten müssen.

>2) wie vergleiche ich die einzelnen Frames ?

Alle diese Aufgaben lassen sich mittels AVISynth erledigen. Allerdings
ist die Script-Programmierung alles andere als banal, da in diesem
Fall nicht nur die Standard-Befehle zur Anwendung kommen müssen,
sondern auch die Conditional Filter (;mit denen ich mich auch nicht
soooo gut auskenne).

Schau mal ins englische Doom9-Forum, wo unter anderem auch der
Programmierer von AVISynth anzutreffen ist, die wissen sicher, wie
Deine Aufgabenstellung zu lösen ist.



Space


Antwort von Heiko Nocon:

Alen Zurfluh wrote:

>Für meine Diplomarbeit muss ich recht grosses Problem lösen
[...]

Das ist nicht wirklich ein großes Problem, sondern mehr sowas wie
Bildverarbeitung für Einsteiger. Ich bezweifele ernsthaft, daß das eine
Diplomarbeit wird.

>Ich denke man muss irgendwie ein Differenzbild zwischen den einzelnen
>Frames herstellen.

Guter Ansatz schonmal. Da fehlt eigentlich nur noch das Nachdenken über
die Vermeidung systematischer Fehler, die die weitere Verarbeitung
stören könnten und schon an diese Stelle weitgehend ausgemerzt werden
könnten. Hint: Eine Leuchtstofflampe, die die Szenarie beleuchtet,
flackert...

>Und dann sollte man anhand des Differenzbildes
>sehen, wo sich was geändert hat.

Genau. Aber hier kommen dann solche Sachen wie Rauschen in's Spiel. Also
mußt du wenigstens über Schwellwerte nachdenken.

>1) Wie kriege aus meinem Videostream die einzelnen Frames raus um sie
>zu vergleichen?

Du liest das File und decodierst die Frames, was dachtest du denn? Bei
hochkomprimierenden Codecs mußt du natürlich oft ein Stück vor t0
anfangen mit lesen und decodieren, spätestens nämlich beim
vorhergehenden Keyframe.

>Das muss irgendwie automatisch gehen

Wenn irgendwas "automatisch" gehen soll, dann macht man was? Richtig:
man sagt dem Automaten, was er tuen soll. Man schreibt ein Programm.

>Hat jemand schon etwas Ähnliches gemacht?

Viele Leute. Es gibt sogar fertige, sehr mächtige
Bildverarbeitungssysteme zu kaufen, die das, was du hier angefragt hast
schon von sich aus leisten und an die man im Bedarfsfall für weitere
Auswertungen beliebige Sekundärsoftware andocken kann.

>Es geht eigentlich um
>Feature Extraktion und dann mal Dataming

Das sollte sicher Datamining heißen. Wer mit solchen Wörtern wedelt,
sollte Google eigentlich kennen, ich erspare mir den expliziten Hinweis
darauf deshalb...



Space


Antwort von Matthias Wieser:

Alen Zurfluh wrote:

> Hallo Leute
>
> Für meine Diplomarbeit muss ich recht grosses Problem lösen, und ich
> weiss nicht recht wie.

Lade dir Knoppix runter, das hat alles, was du brauchst.

> 1) Wie kriege aus meinem Videostream die einzelnen Frames raus um sie
> zu vergleichen?

Mit einem Abspielprogramm, das z.B. PNGs ausgeben kann?

> Das muss irgendwie automatisch gehen, weil ich werde eine Unmenge an
> Video-Daten verarbeiten müssen.

klar.

>
> 2) wie vergleiche ich die einzelnen Frames ?
>

z.B. mit Imagemagic



Space


Antwort von Alen Zurfluh:

Hi Heico und ihr andern, die mir geholfen habt.

> >Für meine Diplomarbeit muss ich recht grosses Problem lösen
> [...]
>
> Das ist nicht wirklich ein großes Problem, sondern mehr sowas wie
> Bildverarbeitung für Einsteiger. Ich bezweifele ernsthaft, daß das eine
> Diplomarbeit wird.

Na ja, da hatte ich aber Glück, wenn das Deiner Meinung soo einfach ist.
Mein Prof. verlangt nicht mehr.
Ich haben eben noch nie so etwas in der Art gemacht. Deshalb brauche ich
eben ein bisschen Hilfe :-)

> >Ich denke man muss irgendwie ein Differenzbild zwischen den einzelnen
> >Frames herstellen.
>
> Guter Ansatz schonmal. Da fehlt eigentlich nur noch das Nachdenken über
> die Vermeidung systematischer Fehler, die die weitere Verarbeitung
> stören könnten und schon an diese Stelle weitgehend ausgemerzt werden
> könnten. Hint: Eine Leuchtstofflampe, die die Szenarie beleuchtet,
> flackert...

Ok, auf so "Dinge" muss ich aufpassen!

>
> >Und dann sollte man anhand des Differenzbildes
> >sehen, wo sich was geändert hat.
>
> Genau. Aber hier kommen dann solche Sachen wie Rauschen in's Spiel. Also
> mußt du wenigstens über Schwellwerte nachdenken.

Genau, ich werde mir wohl überlegen müssen - wie ich das handhabe! Die
"Motion Detection" soll sehr "grob sein".
Wir filmen ein Büro und wollen wissen, ob sich der Arbeitende im Büro bewegt
oder nicht, und ungefähr wo.

> >1) Wie kriege aus meinem Videostream die einzelnen Frames raus um sie
> >zu vergleichen?
>
> Du liest das File und decodierst die Frames, was dachtest du denn? Bei
> hochkomprimierenden Codecs mußt du natürlich oft ein Stück vor t0
> anfangen mit lesen und decodieren, spätestens nämlich beim
> vorhergehenden Keyframe.
>

Ok, und wie liest und decodiert man die files so in der Praxis?
Das ganze muss auf die Sekunde genau stimmen, weil ich parallel auch Audio
aufzeichne, später dann muss ich alle
Sensor-Inputs miteinander vergleichen können. D.h. die "Features" müssen
synchron sein.
Der "Takt-Zähler" der Sensoren ist das Telefon. Wenn jemand anruft, muss ich
wissen, ob sich der Angerufene vor dem Telefon-Anruf bewegt, ob er spricht
etc.
Mit diesen Daten soll auf die Unterbrechbarkeit des Angerufen geschlossen
werden können (;Deshalb das Data-Mining). Mein Algorithmus der die Features
auswertet muss dann wissen, ob der Angerufe
für den Anruf unterbrechbar ist oder nicht, und je nachdem den Anruf
durchstellen oder umleiten auf die Mailbox...

So trivial ist meine Dipl. Abreit doch nicht:(;

> >Das muss irgendwie automatisch gehen
>
> Wenn irgendwas "automatisch" gehen soll, dann macht man was? Richtig:
> man sagt dem Automaten, was er tuen soll. Man schreibt ein Programm.

Ok, ok..schon klar. Gut wäre halt irgendein Programm/Programmiersprache, mit
der man so Skripts schreiben könnte, die Bildverarbeitung machen können.
Eben Frames vergleichen etc.
Wäre halt Tool wenn es schon irgendwas "Fertiges" gibt, ich will ja nicht
unbedingt das Rad neu erfinden :-) Persönlich kenne ich eben "nur" Java und
Perl

> >Hat jemand schon etwas Ähnliches gemacht?
>
> Viele Leute. Es gibt sogar fertige, sehr mächtige
> Bildverarbeitungssysteme zu kaufen, die das, was du hier angefragt hast
> schon von sich aus leisten und an die man im Bedarfsfall für weitere
> Auswertungen beliebige Sekundärsoftware andocken kann.

Das wären z.B was für Systeme ?
Adobe Premiere ?

Danke für Eure Ratschläge!

Gruss



Space


Antwort von Alen Zurfluh:


> >
> > Für meine Diplomarbeit muss ich recht grosses Problem lösen, und ich
> > weiss nicht recht wie.
>
> Lade dir Knoppix runter, das hat alles, was du brauchst.

Ich benutze RedHat, welche App's von Knoppix meinst Du genau?

> > 2) wie vergleiche ich die einzelnen Frames ?
> >
>
> z.B. mit Imagemagic

Danke für Deinen Hinweis, werde ich mal austesten!



Space


Antwort von Matthias Wieser:

Alen Zurfluh wrote:

>> Lade dir Knoppix runter, das hat alles, was du brauchst.
>
> Ich benutze RedHat, welche App's von Knoppix meinst Du genau?

Mplayer, transcode,...



Space



Antworten zu ähnlichen Fragen //


Fehlende Bilder zwischen zwei Clips berechnen
Loopen - Programm das Frames vergleicht?
Audio Plugins auf der GPU berechnen - BRAINGINES GPU Audio
Excel - Blendenstufen berechnen fuer ND Filter-Gebrauch
Einen neuen Seed berechnen lassen bei Projektöffnung oder bei Frame 0
HP Z440 CPU ersetzen! Geht oder Geht nicht!?
Bild und Ton: 2 Frames Abweichung korrigieren
Neuronales Netz DAIN interpoliert Stop-Motion Frames
Multicam mit 30 und 25 Frames. Workflow-Hilfe.
Interpolation einzelner Frames
Der neue Mac Pro kostet zwischen 6.499 und 62.568 Euro -- die Afterburner Karte gibt es für 2.400 Euro
Live Event / Kommunikation zwischen Regie und Kamera
Zwischen 2 MBPs. Entscheidungshilfe
Videoillusionisten - Zwischen Zauberkünstler und Compositing Artist
Drei neue Semi-Pro Monitore von AOC zwischen 28" bis 31,5"
Die bunte Welt der DCTLs in Resolve - Teil 1: Zwischen LUT und Plugin
Sechs Agon Gaming-Monitore von AOC zwischen 34 und 24.5"
Unterschiede zwischen Speicherkarten bei Simultaner Aufnahme AX700




slashCAM nutzt Cookies zur Optimierung des Angebots, auch Cookies Dritter. Die Speicherung von Cookies kann in den Browsereinstellungen unterbunden werden. Mehr Informationen erhalten Sie in unserer Datenschutzerklärung. Mehr Infos Verstanden!
RSS Suche YouTube Facebook Twitter slashCAM-Slash