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.

Ergebnisse der durchgeführten Tests:

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)

Auswertung der Ergebnisse:

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.

Konsolenausgaben:

Die Ausgabe des Programms ist dann folgendermaßen aufgebaut:

Screenshot einer Konsolenausgabe des Programms

Konsolenausgaben der Tests    Konsolenausgabe des Tests
Abb. 1: Test 1  Abb. 2: Test 2 

Konsolenausgabe des Tests    Konsolenausgabe des Tests
Abb. 3: Test 3 Abb. 4: Test 4 

Konsolenausgabe des Tests    Konsolenausgabe des Tests
Abb. 5: Test 5  Abb. 6: Test 6

Konsolenausgabe des Tests    Konsolenausgabe des Tests
Abb. 7: Test 7 Abb. 8: Test 8 

Konsolenausgabe des Tests    Konsolenausgabe des Tests
Abb. 9: Test 9 Abb. 10: Test 10 

Konsolenausgabe des Tests    Konsolenausgabe des Tests
Abb. 11: Test 11  Abb. 12: Test mit GUI im Vordergrund. Starke Einbrüche und Freezes senken den Durchschnitt drastisch