Computer Vision Geschwindigkeit messen



  • Ich habe kurz eine Frage, ich versuche gerade mit OpenCV die Geschwindigkeit eines Objekts zu bestimmen.
    Dies wollte ich mit den Frames per Sec. bestimmen, jetzt zerbreche ich mir gerade den Kopf was besser ist. Macht es mehr Sinn die Gesch genau zwischen zwei frames zu messen also nur mit genau einem frame Differenz oder soll ich mehr frames dazwischen lassen.
    Ich mache mir nur Gedanken wie die Rechenzeit mit einfließt und wie ich diese minimieren kann.

    Danke für alle Ratschläge.



  • juri23 schrieb:

    Ich mache mir nur Gedanken wie die Rechenzeit mit einfließt und wie ich diese minimieren kann.

    Warum? Die Rechenzeit ändert doch nicht die Zeit zwischen den Frames.



  • @goodbbbbbbbyyy

    Naja meine Frames per Sec ändern sich da die Berechnungen um das Objekt zu erkennen sehr Rechenaufwendig sind und wenn ich von Frame zu Frame die Zeit messe ändern sie sich. ( im Millisekunden Bereich ).
    Jetzt ist meine Sorge dass wenn ich von Frame zu Frame die vergangene Zeit messe ich eigentlich nur die Rechenzeit messe. Und die Änderung der Rechenzeit beeinflussen auch die Frames per Sec. Bei der Messung der Objekt Geschwindigkeit nehmen die Frames per Sec. kontinuierlich ab bis sie ein min von 17 Frames per sec erreicht haben.



  • Woher kommen die Bilder? Doch wohl von einer Kamera die mit einer bestimmten Framerate aufnimmt, oder?



  • Ja von einer Kamera, ( mit http://sublimated.wordpress.com/2011/02/17/benchmarking-frames-per-second-when-using-opencvs-cvcapturefromcam/ )
    Berechne ich meine Frames per Second. )

    Um etwas genauer zu sein ist es eine live Übertragung die ich auf meinem Bildschirm sehe und mit einer virtuellen Kamera aufzeichne und an OpenCV übergebe.
    Beispiel: Ich lasse ein Fußballspiel laufen auf youtube oder als live Übertragung und gebe meinen Bildschirminhalt an OpenCV zur Auswertung.
    Nun nehme ich an das die Übertragung eine konstate frames per Sec hat aber meine sich aufgrund der Berechnung ändern und das zerbricht mir meinen Kopf wie ich nun genau die Geschwindigkeit berechne.



  • Im Prinzip kann dir die Framerate doch egal sein. Du nimmst einfach zwei Bilder auf und merkst dir den Zeitpunkt, wo du sie aufgenommen hast. Wieviele Bilder dazwischen sind ist doch egal. Das schierige wird eher sein, die Strecke die ein Objekt zurückgelegt hat rauszufinden. Ganz einfach wäre es, wenn der Ball sich bei Zeit 00:00:00 auf dem Elfmeterpunkt befindet und bei 00:00:50 auf der Torlinie. Dann wären das 22m/s.



  • Das habe ich mir auch überlegt. Nur die Zeitliche Verzögerung durch die Rechenzeit ist so ne sache…
    Angenommen ich will es sehr genau haben und stoppe die Zeit von frame zu frame. Ich kenne die Distanz aber die Zeit die ich nun habe ist nicht die echte Zeit die vergangen ist sondern doch nur die Zeit die mein Rechnergebraucht hat das ganze zu berechnen. ( Diese ändert sich immer etwas )
    ( ich stoppe die Zeit mit QueryPerformanceCounter)
    Oder soll ich nach so etwa 2 sec die distanz messen. Von Frame zu Frame vergehen so in etwa 21 – 50 Millisekunden das heißt ich habe in meiner Zeitmessung auch die Rechenzeit mit drin.



  • Du weisst die Zeit bei Frame A und die Zeit bei Frame B.
    Und nun berechnest du die Bewegung dazwischen - und du weisst ja die fixen Zeitpunkte.

    Ich weiss nicht wo du da die Rechenzeit mitreinrechnen würdest...


Anmelden zum Antworten