Ermittlung der Framerate |
![]() ![]() ![]() |
Eine wichtige Vorgabe im Projekt, ist das die Kamera eine zufriedenstellend
stabile Framerate von 60FPS bei einer Auflösung von 640x480px liefert.
Um die
Performance der Kamera ausgiebig zu testen wurden die Tests aber auch mit
anderen Auflösungen durchgeführt. Die Programme und damit der Aufbau der Tests,
sind unter Quellcode aufgeführt.
Die FPS der
Kamera wurde auf 3 Arten überprüft. Die erste Methode liest dabei einen
Richtwert, welcher vom Benutzer gesetzt wird, aus der Kamera per openCV aus.
Methode zwei Berechnet aus zwei Zeitwerten die Dauer einer einzelnen Aufnahme
und berechnet damit die FPS aus Momentanwerten. Methode drei ermittelt die Dauer
der Aufnahme für eine bestimmte Anzahl von Bildern (Hier: 10000 Bilder) und
berechnet damit einen Mittelwert für die FPS über eine längere Zeit.
Test # | Auflösung [Pixel x Pixel] | Gewählte FPS | Dauer der Aufnahme[s] | Durchschnittliche FPS | Verarbeitung |
1 | 1920 x 1080 | 15 | 667,198 | 14,988 | Keine |
2 | 1280 x 960 | 30 | 333,430 | 29,991 | Keine |
3 | 1280 x 720 | 30 | 333,446 | 29,990 | Keine |
4 | 640 x 480 | 30 | 333,434 | 29,991 | Keine |
5 | 640 x 480 | 60 | 166,749 | 59,971 | Keine |
6 | 640 x 480 | 120 | 83,3663 | 119,955 | Keine |
7 | 1920 x 1080 | 15 | 1034,340 | 9,668 | Bildausgabe(Hintergrund) |
8 | 1280 x 720 | 30 | 473,798 | 21,106 | Bildausgabe(Hintergrund) |
9 | 640 x 480 | 30 | 333,475 | 29,987 | Bildausgabe(Hintergrund) |
10 | 640 x 480 | 60 | 171,564 | 58,287 | Bildausgabe(Hintergrund) |
11 | 640 x 480 | 120 | 171,982 | 58,146 | Bildausgabe(Hintergrund) |
Die Konfiguration bestehend aus Höhe, Breite und Framerate / FPS wurde für
die Tests jeweils in die Kamera programmiert. Je nach Testaufbau wurde das
aufgenommene Bild noch in einem Ausgabefenster dargestellt. Aufgrund massiver
Einbrüche der Framerate wurde die Ausgabe in den Hintergrund gebracht um so
etwas Prozessorlast zu minimieren. Mit Ausgabe des Videomaterials in einem
Fenster im Vordergrund liefert die Kamera nur in den kleinsten Auflösungen
Framerates über 30FPS (Abhängig von Prozessorlast, starke Einbrüche).
Auffällig ist, dass eine Aufnahme ohne anschließende Ausgabe sehr stabile
Framerates nahe der gewählten FPS bei allen Auflösungen liefert. Entsprechende
Ergebnisse sind in den Tests 1-6 und in den Abbildungen 1-6 im unteren Teil der
Seite sichtbar.
Mit einer in den Hintergrund verschobenen Ausgabe brechen
die Framerates vor allem bei 640 x 480 Pixeln mit einer gesetzten Framerate von
120FPS um über 50% ein (Test 11). Auch bei Full HD, 1920 x 1080 Pixeln, bricht die
Framerate um ca. 30% ein. Die Aufnahme von 10000 Bildern dauerte dabei 1034,8
Sekunden, also etwas über 17,5 Minuten.
Brauchbare Framerates lieferten
dagegen die Konfigurationen von Test 8 bis 10. Die Framerates fielen dabei nur
minimal und liefern für Bildverarbeitungszwecke hervorragendes Material, lässt
man die Latenz außer acht.
Die Ausgabe des Programms ist dann folgendermaßen aufgebaut:
Abb. 1: Test 1 | Abb. 2: Test 2 |
Abb. 3: Test 3 | Abb. 4: Test 4 |
Abb. 5: Test 5 | Abb. 6: Test 6 |
Abb. 7: Test 7 | Abb. 8: Test 8 |
Abb. 9: Test 9 | Abb. 10: Test 10 |
Abb. 11: Test 11 | Abb. 12: Test mit GUI im Vordergrund. Starke Einbrüche und Freezes senken den Durchschnitt drastisch |