HOWTO · Raspberry Pi
OpenCV auf Raspberry Pi 4 einrichten
In diesem Artikel erfahren Sie, wie Sie OpenCV auf Raspberry Pi 4 installieren und einrichten.
Auf dieser Seite
OpenCV lässt sich auf einem Raspberry Pi aus dem Quellcode erstellen und anschließend durch den Import von cv2 mit Python 3 überprüfen. Diese Anleitung setzt einen Raspberry Pi mit Raspberry Pi OS sowie eine Internetverbindung im Terminal voraus. Der Build kann lange dauern und benötigt viel freien Speicherplatz. Wie lange er dauert und wie viele parallele Jobs sinnvoll sind, hängt vom Board, dem Arbeitsspeicher und den ausgewählten OpenCV-Modulen ab.
Raspberry Pi und Betriebssystem auswählen
Das Quellcodeverfahren richtet sich an einen Raspberry Pi 4 Model B. Auch andere Raspberry-Pi-Modelle können OpenCV möglicherweise erstellen, wenn sie ein kompatibles Betriebssystem verwenden. Die folgenden Befehle setzen Raspberry Pi OS voraus. Das ist eine ausdrückliche Annahme dieser Anleitung und keine Behauptung, dass eine bestimmte Betriebssystemversion oder Board-Konfiguration getestet wurde. Auf älteren Boards oder Geräten mit weniger Arbeitsspeicher kann die Kompilierung länger dauern; außerdem kann der verfügbare Speicherplatz den Build einschränken.
Raspberry Pi OS vorbereiten
Öffne auf dem Pi ein Terminal und aktualisiere zuerst den Paketindex mit sudo apt update, danach die installierten Pakete mit sudo apt upgrade. Installiere den Compiler und die benötigten Werkzeuge, darunter build-essential, cmake, git, pkg-config, python3-dev und python3-numpy, mit sudo apt install build-essential cmake git pkg-config python3-dev python3-numpy. Paketnamen und Verfügbarkeit können je nach Raspberry-Pi-OS-Version abweichen. Behebe Fehler des Paketmanagers für die installierte Version, bevor du fortfährst. Halte genügend freien Speicherplatz für die Quellcodeverzeichnisse und die erzeugten Build-Dateien bereit.
Das Paket python3-dev enthält die Python-Entwicklungsheader, die beim Konfigurieren einer Python-Bindung benötigt werden. Verwende beim Erstellen und Überprüfen von OpenCV dieselbe Python-3-Installation und -Umgebung. Wenn du eine virtuelle Umgebung nutzt, plane, wie der Build deren Interpreter und NumPy findet. Gehe nicht davon aus, dass System-Python und virtuelle Umgebung austauschbar sind.
OpenCV aus dem Quellcode erstellen und installieren
Wähle eine OpenCV-Version, die mit dem installierten Betriebssystem und der Python-Umgebung kompatibel ist. Wenn du zusätzliche Module benötigst, wähle die passende Version von opencv-contrib; deren Module befinden sich in einem separaten Repository. Beide Quellcodeverzeichnisse müssen dieselbe Versionsnummer verwenden. Der opencv-contrib-Leitfaden enthält weitere Informationen zu den Zusatzmodulen.
Die folgenden Schritte werden in einem Terminal unter Raspberry Pi OS ausgeführt und bilden kein eigenständiges Programm. Ersetze VERSION in jedem Befehl durch dasselbe OpenCV-Release-Tag. Klone die passenden Quellcodeverzeichnisse in dein Home-Verzeichnis: mit git clone --branch VERSION --depth 1 https://github.com/opencv/opencv.git ~/opencv-VERSION und, falls du Zusatzmodule benötigst, mit git clone --branch VERSION --depth 1 https://github.com/opencv/opencv_contrib.git ~/opencv_contrib-VERSION. Erstelle mit mkdir -p ~/opencv-VERSION/build ein Build-Verzeichnis und wechsle anschließend mit cd ~/opencv-VERSION/build dorthin.
Konfiguriere den Build in diesem Verzeichnis mit cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH="$HOME/opencv_contrib-VERSION/modules" ... Gib bei dieser Option das Verzeichnis der passenden contrib-Version an. Wenn du keine contrib-Module erstellst, lass die Option weg. Dies sind Konfigurationsbeispiele; welche Optionen verfügbar sind, hängt von der gewählten Version und den Systemabhängigkeiten ab.
Erstelle OpenCV im konfigurierten Verzeichnis mit make -j2 und installiere es anschließend mit sudo make install. Wenn dem Pi der Arbeitsspeicher knapp wird, wähle eine kleinere Job-Anzahl. Weniger parallele Jobs benötigen in der Regel mehr Zeit. Die Build- und Installationsbefehle setzen heruntergeladenen Quellcode, eine funktionierende Compiler-Toolchain und kompatible Abhängigkeiten voraus; sie lassen sich daher hier nicht als isoliertes Laufzeitbeispiel darstellen.
OpenCV mit Python überprüfen
Führe die Prüfung mit der Python-3-Umgebung aus, die auch für den Build verwendet wurde. Dabei wird die Bindung importiert und die von dem installierten Modul gemeldete Version angezeigt. Beim bereitgestellten Lauf war der Exit-Code zwar 0, doch in dieser Laufzeitumgebung war cv2 nicht verfügbar. Ein erfolgreicher OpenCV-Import wurde damit nicht nachgewiesen. Die Versionsangabe bezieht sich auf die jeweilige Installation.
import importlib.util
if importlib.util.find_spec("cv2") is None:
print("cv2 is not available in this Python environment.")
else:
import cv2
print(cv2.__version__)
Ein erfolgreicher Import bestätigt, dass dieser Interpreter das Modul cv2 finden kann. Wenn Python meldet, dass das Modul nicht gefunden wurde, prüfe, ob der Build die Python-Bindung installiert hat und ob du den vorgesehenen Interpreter verwendest. Eine Versionsangabe allein bestätigt nicht, dass alle optionalen Module oder Kamerageräte verfügbar sind.
Häufige Installationsfehler beheben
Bricht die Kompilierung ab, während der Arbeitsspeicher des Pi stark beansprucht wird, starte den Build im Build-Verzeichnis mit weniger Jobs erneut, zum Beispiel mit make -j1. Dadurch kann die gleichzeitige Ressourcennutzung sinken; der Build dauert dann jedoch länger, und nicht jeder Fehler lässt sich so beheben. Suche im Protokoll nach dem ersten Compiler- oder CMake-Fehler, prüfe, ob CMake auf das passende opencv_contrib-Modulverzeichnis verweist, und stelle sicher, dass beide Quellcodeverzeichnisse dasselbe Release-Tag verwenden.
Wenn import cv2 nach der Installation fehlschlägt, prüfe, ob python3 der für den Build konfigurierte Interpreter ist und ob die Bindung in einem Verzeichnis installiert wurde, das dieser Interpreter durchsucht. NumPy in einer anderen Python-Umgebung zu installieren, macht es nicht für den Interpreter verfügbar, der beim Build verwendet wurde.
Fazit
Bei einem Build aus dem Quellcode unter Raspberry Pi OS konfiguriert CMake OpenCV, das anschließend mit einer für das Gerät geeigneten Job-Anzahl kompiliert und installiert wird. Der Import von cv2 in der passenden Python-3-Umgebung ist die praktische Prüfung, ob die Bindung verfügbar ist. Wähle OpenCV und opencv-contrib in zueinander passenden Versionen, die mit dem installierten System kompatibel sind. Diese Anleitung legt keine getestete Kompatibilitätsmatrix fest und garantiert keinen erfolgreichen Build für jede Raspberry-Pi-Konfiguration.