Raspberry Pi Kamera

Bei jedem Raspberry Pi Modell kannst du eine Kamera anschließen. Dazu dient der CSI Connector auf dem Board. In diesem Blog möchte ich dir die Raspberry Pi Kamera etwas näher bringen.

Material

Ich habe zwei Testaufbauten im Einsatz.

Im ersten benutze ich einen Raspberry Pi Zero 2W mit der Raspberry Pi HQ Kamera und dem 16mm Teleobjektiv mit C-Mount und einen Raspberry Pi 4B mit dem Raspberry Pi Camera Module 3.

Testaufbau mit Raspberry Pi Zero 2W und HQ Camera mit Teleobjektiv
Olli Graf -raspithek.de
setup-zero2wCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Testaufbau mit Raspberry Pi Zero 2W und HQ Camera mit Teleobjektiv

Im zweiten Aufbau kommt ein Raspberry Pi 4B mit dem Raspberry Pi Camera Module 3 zum Einsatz.

Testaufbau mit Raspi 4B und Camera Module 3
Olli Graf -raspithek.de
setup-raspi4bCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Testaufbau mit Raspi 4B und Camera Module 3

Camera Module 3

Olli Graf -raspithek.de
cam-module-3Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Das Raspberry Pi Camera Module 3 mit Flachbandkabel

Das Camera Module 3 hat eine Auflösung von 4608 * 2592 Pixeln, was 12 Megapixeln entspricht. An der Platine ist ein ca. 200mm langes FPC Kabel angebracht, dass für den CSI Konnektor des Raspberry Pi 4 gedacht ist. Unter der Linse arbeitet ein Sony IMX708 Sensor mit einer Pixelgröße von 1.4μm * 1.4μm. Das Modul besitzt einen Autofokus und einen Infrarot Sperrfilter, ist für Nachtaufnahmen also eher schlecht geeignet. Es gibt aber Modelle ohne diesen Sperrfilter.

Raspberry Pi HQ Camera

Die Platine der HQ Camera sitzt hinter einem Adapter mit C-Mount, auf das verschiedene Objektive montiert werden können. Zusätzlich ist die Befestigung auf ein 1/4″ Gewinde vorgesehen. Diese Kamera löst mir seinem hintergrundbeleuchteten Sony IMX477R Sensor auf 12,3 Megapixel auf. Die Pixelgröße beträgt 1.55μm * 1.55μm. Auch dieses Modell besitzt einen Infrarot Sperrfilter, den du allerdings deaktivieren kannst. Ich habe bei meinem Modell das vormontierte Kabel für den Raspberry Pi 4 entfernt und gegen eins für den Raspberry Pi Zero ersetzt.

Montage

Die Montage ist für beide Aufbauten ziemlich ähnlich. Du nimmst die Sperre des CSI Konnektors zwischen zwei Finger und ziehst ihn vorsichtig und mit viel Gefühl nach oben. Beim Zero 2W ist das etwas schwieriger, da der Anschluss flach liegt.

Das FPC hat am Ende eine isolierte Seite und eine, bei der die Kabel blank liegen. Beim Raspberry Pi 4 muss die isolierte Seite zu den USB Ports zeigen, beim Raspberry Pi Zero 2W zeigt die Isolierung nach oben. Das Kabel schiebst du vorsichtig, flach, ohne Verkantung in den CSI. Danach drückst du die Sperre wieder an ihren ursprünglichen Platz.

Ich habe die HQ Kamera auf ein kleines Dreibein Stativ geschraubt. Das Module 3 wird von einer Klemme meiner Löthilfe gehalten.

Konfiguration

Bei Raspberry Pi OS bullseye muss die CSI Schnittstelle noch über die raspi-config manuell aktiviert werden. Beim bookworm Release ist diese Option entfallen, da das Kamera Interface immer eingeschaltet ist.Du findest dies im Untermenü Interface Options.

Menüpunkt Legacy Camera im Untermenü Interface Options von raspi-config
Olli Graf -raspithek.de
raspi-config-menuCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Menüpunkt Legacy Camera im Untermenü Interface Options von raspi-config

Nach der Auswahl des Menüpunkts, erscheint diese Sicherheitsabfrage

Sicherheitsabfrage "Would you like to enable legacy camera support?"
Olli Graf -raspithek.de
raspi-config-enableCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Sicherheitsabfrage „Would you like to enable legacy camera support?“

Nach der Bestätigung mit Yes ist das CSI aktiv.

Wichtig ist nur, dass in der /boot/firmware/config.txt folgender Eintrag vorhanden ist:

camera_auto_detect=1

Foto aufnehmen

Die Software, um ein Foto mit der Kamera aufzunehmen, ist bei Raspberry Pi OS meist schon mit installiert, das Kommando ist raspistill (bullseye) oder libcamera-still (bookworm)

Um ein Foto aufzunehmen gibst du einfach

raspistill -o test.jpeg

oder

libcamera-still -o test.jpg

ein. Das Kommando findet die angeschlossene Kamera selbstständig und liest die RAW Bilddaten aus und speichert sie als JPG ab.

libcamera-still Kommando
Olli Graf -raspithek.de
libcamera-stillCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
libcamera-still Kommando

Zum Testen habe ich auf meiner Fensterbank auf dem Balkon eine kleine Szene aufgebaut, die Schärfe und Farbqualität repräsentieren kann. Da meine Testbilder bei Aussenlicht gemacht wurden, kann die Helligkeit unter Umständen schwanken.

Testfoto mit der HQ Camera
Olli Graf -raspithek.de
delorean_noneCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Testfoto mit der HQ Camera
Testfoto mit dem Camera Module 3
Olli Graf -raspithek.de
delorean-1Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
Testfoto mit dem Camera Module 3

Etwas Bewegung

Natürlich kannst du mit der Kamera auch Videos aufnehmen. Dazu benötigst du zwei Kommandos: libcamera-vid für die Aufnahme und mkvmerge zur Umrechnung in eine abspielbare Videodatei.Das Tool ffmpeg kann beim Umgang mit Videodateien sehr nützlich sein:

sudo apt install ffmpeg -y
libcamera-vid -o test.h264 --save-pts timestamps.txt -t 12000 &&
mkvmerge -o test.mkv --timecodes 0:timestamps.txt test.h264 &&
ffmpeg -i test.mkv -codec copy test.mp4

Mit libcamera-vid werden die Bilddaten in die Datei test.h264 geschrieben und eine Datei mit den Timestamps unter timestamps.txt erzeugt, die Aufnahme soll 12 Sekunden dauern (-t 12000) . Dies ist noch kein abspielbarer Videoclip, daher wandeln wir mit Hilfe von mkvmerge die Bilddaten mit Hilfe der Timestamps in das Matroska Containerformat um. Vom .mkv Format wandele ich die Datei mit ffmpeg in ein MP4 File um.Dabei kommt dann folgendes bei mir eine 3,1MB große Videodatei heraus. Bei Videoaufnahmen solltest du auf genügend freien Speicherplatz auf dem Datenträger achten!

kurzes Beispielvideo mit dem Camera Module 3
No Marty was harmed for the production of this motion picture!

Zeitraffer

Zeitraffer (timelapse) verdichtet einen langen Zeitraum zu einem kurzen Video. Auch dies lässt sich mit der Raspberry Pi Kamera sehr einfach machen. Dabei werden pro Filmsekunde weniger Bilder als üblich angezeigt. Dadurch lassen sich Prozesse, die für das menschliche Auge zu langsam ablaufen (z.B. das Wachstum von Pflanzen), sichtbar machen. Für ein timelapse Video musst du einfach nur eine Serie von Fotos im gleichen Zeitabstand speichern, die danach in einer passenden Bildrate zu einem Film zusammengesetzt werden.Zur Demonstration habe ich den Aufbau mit dem Camera Module 3 auf die Fensterbank vor meinem Küchenfenster und in Blickrichtung auf den Garten ausgerichtet. Ich will Sonnenuntergang am 02.03.24 und den Sonnenaufgang am 04.03.24 im Zeitraffer aufzeichnen. Die Aufzeichnung beginnt eine Stunde vor Sonnenuntergang bzw. -aufgang und soll drei Stunden lang alle zwei Minuten ein Foto aufnehmen. Dazu richte ich zwei Cronjobs ein

crontab -e

In die Crontab trage ich zwei Zeilen ein

# m h  dom mon dow   command
00 18 2 3 *	cd /tank/cameratests/pedro/timelapse/dusk && libcamera-still -t 10800000 --timelapse 120000 -o dusk\%04d.jpg
20 6 4 3 *	cd /tank/cameratests/pedro/timelapse/dawn && libcamera-still -t 10800000 --timelapse 120000 -o dawn\%04d.jpg

Da dabei größere Datenmengen anfallen, werden die Bilder auf meinem NAS gespeichert. Du bemerkst die beiden Parameter des libcamera-still Kommandos. -t sagt ihm, wie lang die Aufnahme dauern soll. Dies sind 180min *60 *1000 Millisekunden, also drei komplette Stunden. Mit --timelapse wird in Millisekunden angegeben, in welchem Intervall ein Foto gespeichert werden soll.

Der Dateiname sieht etwas merkwürdig aus. Mit dem Platzhalter %04d weiß libcamera-still, dass es den aktuellen Bildzähler als vierstellige Dezimalzahl einsetzen soll. Da das Prozentzeichen in der Crontab eine spezielle Bedeutung hat, muss es mit einem Backslash escaped werden.

Die Einzelbilder müssen dann noch zu einem MP4 Video zusammengefügt werden.Im Verzeichnis mit den Einlaufnahmen führe ich jetzt folgendes Kommando aus:

ffmpeg -r 5 -f image2 -pattern_type glob -i 'dusk*.jpg' -s 1280x720 -vcodec libx264 dusk.mp4

Damit werden alle Bilddateien, auf deren Namen das Muster dusk*.jpg zutrifft hintereinander zu einem MP4 Video dusk.mp4 zusammengebaut. Da die Bilder konsekutiv benannt sind, werden sie auch automatisch in die richtige Reihenfolge gebracht. Der Parameter -r 5 bestimmt die Bildrate des Videos. Die Fotos über drei Stunden ergeben so einen 17-sekündigen Clip.

timelapse Video vom Sonnenuntergang

von hell zu dunkel

Mit den Bilddaten vom Sonnenaufgang verfahre ich ganz ähnlich wie oben.

ffmpeg -r 5 -f image2 -pattern_type glob -i 'dawn*.jpg' -s 1280x720 -vcodec libx264 dawn.mp4

timelapse vom Sonnenaufgang

von dunkel zu hell

Fazit

Mit einer Raspberry Pi Kamera kannst du interessante Dinge machen. Du musst aber immer auf die Persönlichkeitsrechte deiner Mitmenschen achten. Du darfst die Kamera nicht auf den öffentlichen Raum richten, dass schließt das Treppenhaus in deinem Haus ein. Ohne Erlaubnis der abgelichteten Personen darfst du diese nicht fotografieren! Sobald personenbezogene Informationen wie Gesicht oder KFZ-Kennzeichen zu sehen sind, verletzt du das Recht auf informationelle Selbstbestimmung.

Ich möchte die Qualität der beiden Kameras nicht gegenüberstellen, da mir dazu die korrekten Laborbedingungen fehlen. Ich muss dem Camera Module 3 allerdings eine gute Farbtreue attestieren, der Autofocus hat allerdings bei schlechten Lichtverhältnissen gelegentlich Probleme mit der Tiefenschärfe.

Die HQ Kamera ist sehr flexibel durch die wechselbaren Objektive. Allerdings musst du die Schärfe selber einstellen, was ohne Vorschau Display schwierig ist.

Mit dem Zeitraffer der Raspberry Pi Kamera zu spielen, war eine interessante Erfahrung.

Update 08.03.2024 Videokodierung in MP4

Schreibe einen Kommentar

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner