Zeitrafferaufnahmen mit dem Pi Zero

Aufnahmen in Zeitraffer (Timelapse) haben bis heute ihren Reiz. Viele kennen sie, Videos von der schnell wachsenden Baustelle oder dem rasenden Wolkenhimmel. Um eine Timelapse-Aufnahme herzustellen, werden Einzelaufnahmen in mehr oder weniger kurzen Abständen gemacht und diese zu einem Film zusammengefügt. Nur manche Kameras haben eine solche Funktion bereits eingebaut. Und bei echten Langzeitaufnahmen treten gleich mehrere Probleme auf.

Zum einen muss die Kamera über Stunden oder Tage mit Strom versorgt werden und viele Aufnahmen hintereinander machen. Der interne Akku einer Spiegelreflexkamera stößt da schnell an seine Grenzen. Weil die meisten Kameras sich selber nicht für Langzeitaufnahmen konfigurieren lassen, muss zudem ein programmierbarer Fernauslöser unterstützt werden. Bei Aufnahmen in der Natur wird es außerdem zum Problem, seine teure Kamera längere Zeit unbeobachtet zu lassen, weil Diebstahl droht oder weil schlechtes Wetter einsetzen könnte. Prinzipiell eignen sich Action-Cams, haben meistens aber auch begrenzte Einstellmöglichkeiten. Und mein Handy, mit mehr oder weniger guten Timelapse-Apps an Bord, das ist eher etwas für kleinere Kreativprojekte.

Also warum nicht die Flexibilität des Raspberry Pi und seine PiCam dazu nutzen? Die ist mit ihrem weiten Aufnahmewinkel gut geeignet. Dass sie nur einen Fixfokus hat, macht uns nichts aus. Der Pi Zero W reicht völlig und ist keine kostspielige Angelegenheit. Mit einer Stromversorgung aus einer Powerbank kommt man mehrere Tage hin. Daneben kann man das Ganze robust und für den Außeneinsatz geeignet aufbauen.

Zuerst also ein Gehäuse für unsere Timelapse-Kamera gebaut. Wir nutzen das Standardgehäuse des Zero, mit Öffnungen für die Cam im Deckel und für die GPIO-Leiste im Boden. Zwei Pins können wir da brauchen, bei denen zwei Bedientaster den Pegel umschalten. Hier könnte man auch noch Status-LEDs anbringen. Aber alles sollte so einfach wie möglich aufgebaut sein. Damit es keine Reflektionen gibt, wurde der Deckel geschwärzt. Die Stromversorgung übernimmt eine schlanke Powerbank, wo uns für die Anbindung ein kurzes USB-Kabel ausreicht.

Das Gehäuse des Pi Zero steht bei uns hochkant, am besten man lässt keine Öffnungen oder Anschlussbuchsen nach oben zeigen, damit dort keine Feuchtigkeit eindringen kann. Wird Regen erwartet, kann man auch eine Schutzabdeckung aufsetzen. Das geschieht an dem Aluminiumgestänge, was auch zum Aufstellen im Gelände seine Funktion hat. In das Röhrchen kann ein Stab mit Stativaufnahme oder ein Erdspieß eingesteckt werden. Der Abstandhalter aus Aluminium dient bei Befestigung an einem Baum dazu, die gewünschte Neigung der Kamera zu bewerkstelligen.

Mit der entsprechenden Software lässt man das Ganze nun nach seinen Wünschen ablaufen. So kann man zum Beispiel die Aufnahme in der Nacht pausieren lassen und sie am nächsten Morgen fortsetzen. Bei uns dient die Software im Wesentlichen zur Steuerung der PiCam, dem Auswerten der Taster und um aufzupassen, dass die interne Speicherkarte nicht überläuft. Zum Speichern der Bilder nutzen wir nur die SD-Karte des Pi. Bei einer 16GB-Karte kann man im freien Speicherplatz immerhin mehrere tausend JPG-Dateien ablegen. Aber es geht ja auch noch größer oder mittels zusätzlichem Speicher am USB-Port des Pi, da sind kaum Grenzen gesetzt.
Zum Hochfahren wird einfach das Stromversorgungskabel gesteckt, dann startet unser Python-Skript mit der Aufnahmesequenz. Will man das verhindern, beispielsweise, um nur die fertigen Bilder von der Cam zu holen, dann drückt man während des Starts den dafür vorgesehenen Bedientaster. Der zweite Taster ist für das definierte Herunterfahren vorgesehen. Für die eigentlichen Aufnahmen findet sich im Skript eine Schleife, um im festgelegten Zeitintervall jeweils „raspistill“ aufzurufen. Die Bildparameter richten sich unter anderem danach, was man für eine Auflösung im späteren Videomaterial wünscht. So kann ein Aufruf aus Python aussehen:

os.system(‚raspistill -w 2400 -h 1800 -rot 180 -t 500 -o ‚ + filename)

Da wir keine Verzweigungen im Skript haben, reicht uns zur zeitlichen Steuerung des Abstands zwischen zwei Aufnahmen eine einfache Pausenangabe mittels „sleep“. Natürlich kann man das auch eleganter lösen. Je langsamer sich die Objekte bewegen, umso größer dürfen die Abstände zwischen zwei Aufnahmen sein. Jetzt sollte man sich überlegen, über welchen Zeitraum man beobachten möchte. Dadurch ergibt sich eine maximale Anzahl Bilder, welche wir im Skript eingetragen haben.
Ist alles abgearbeitet, fährt sich der Pi von selber herunter. Das erschien eine geeignete Methode, um nicht zu einer bestimmten Zeit am Ort sein zu müssen und ohne Speicherabfrage auf einfache Art und Weise einen Überlauf der Karte zu verhindern. Um das Limit zu kennen, sollte man vorher abschätzen, wie groß eine einzelne Aufnahme ungefahr wird und wissen, wieviel freier Speicher zur Verfügung steht. Hier ein Überblick mit Beispielwerten für typische Aufnahmesituationen:

Wolkenhimmel Pflanzenwachstum Fahrradfahrt
Bild erzeugen alle 8 s 15 min 2 s
Dauer der Aufnahme 10 h 20 Tage 40 min
Entstehende Bilder 4500 1920 1200
Länge des Films 150 s 96 s 80 s
…bei Framerate von 30 fps 20 fps 15 fps

Im ersten Beispiel erzeugen 4500 JPEG-Dateien bei zirka 2 MB pro Datei (2400×1800 Pixel) etwa 9 Gigabyte Daten auf der SD-Karte des Pi. Im späteren Film entscheidet die Anzahl der Frames pro Sekunde über die Geschwindigkeit und Dauer der Wiedergabe. Möchte man den Betrachter nicht mit zu langen Sequenzen langweilen, stellt man bei der Erstellung des Videos eine höhere Framerate ein. Natürlich läuft dann alles schneller ab. Auf der anderen Seite sollte man für ansehnliche Ergebnisse nicht unter 15fps kommen. Mitunter kommt man um Kompromisse nicht herum. Am besten, man hat einfach eine große Menge Bildmaterial zur Verfügung. Wir schießen das jetzt mit unserem Raspi.

Dann heißt es, aus den vielen Einzelbildern ein Video zu erstellen. Für die Weiterverarbeitung gibt es genug Software, wie „Virtual Dub“ oder diverse Videoschnittprogramme, auch speziell zum Thema, wie „LRTimelapse“ zum Beispiel. Dort kann man dann weitere Korrekturen vornehmen. Bevor man aber alles verarbeitet, lohnt sich der Blick ins Verzeichnis, um schlechte Aufnahmen vorab auszusortieren. Manchem ist schon eine Spinne vor’s Objektiv gelaufen.

Die Kamera hier ist die bisher einfachste, die ich auf Basis Raspberry Pi gebaut habe. Dennoch profitiert sie aus anderen Projekten und hat wieder ein paar Eigenschaften für den speziellen Anwendungszweck bekommen. So landet jede neue Sequenz in einem eigenen Unterordner und den Dateinamen der Einzelbilder ist ein Index vorangestellt, so dass man alles möglichst problemlos in der Weiterverarbeitung importieren kann.
Ist man in Reichweite des eigenen Netzwerks, kann man sich dazu auch auf dem Zero per ssh einloggen und muss zur Übertragung der Bilder nicht die Speicherkarte ziehen.

Unsere Timelapse-Kamera hat sich bereits bewährt und ich hatte schon viel Spaß beim Aufnehmen und Herstellen von Zeitraffer-Videos. Eine professionelle Kamera ist es nicht. Aber man kann mitten in der Natur arbeiten und richtig viel Bildmaterial aufnehmen, ohne teures Kamera-Equipment zu belasten. Und man hat ganz individuelle Abläufe zur Verfügung, die macht man vorher in Software auf dem Pi. Die Kamera vor der Waldwiese am Abend aufhängen und ohne Akkuwechsel tagelang Fotos schießen, da muss Standard-Hardware passen. Für die Zukunft ist ein Monitor als Einrichthilfe angedacht, vielleicht mittels Bildübertragung an ein Tablet.

Swen Hopfe

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.