Ich bin gerade gerade persönlich dabei eine Gesichtserkennung auf meinem Raspberry Pi 3B+ zu installieren, weil ich eben mit dieser Gesichtserkennung meinen selbst gebauten smarten Spiegel erweitern wollte.
Ich meine es ist nur eine kleine Spielerei, aber wäre es nicht mega cool wenn man nach Hause kommt, in den Spiegel geguckt und dieser einem direkt sag schön man aussieht? Beziehungsweise einen dann auch gleich direkt mit dem Namen anspricht? – Also ich würde das schon ziemlich cool finden.
OpenCV
Genug der Vorworte. Kommen wir zu OpenCV.
Diese Programmbibliothek bietet für die Programmiersprachen Python, Java, C und C++ die nötigen Funktionen, um eben eine Gesichtserkennung + die Personenerkennung auf Bildern oder Live-Videos durchzuführen.
OpenCV bietet noch viele viele weitere Features, welche wir dann in unseren Programmcodes auf einfachste Weise verwenden können, aber wir brauchen ja vorerst nur unsere Gesichtserkennung, für welche wir nun versuchen müssen OpenCV einmal auf unserem Pi zu installieren.
Installation
Es gibt einen kleinen Haken an der Geschichte. OpenCV ist nicht einfach mal so per “apt-get install”-Befehl zu installieren. Wenn dem so wäre, dann wäre dieser Artikel hier eh obsolet.
Wir müssen uns die Binaries von OpenCV selber kompilieren und an die richtigen Orte verschieben. Möglicherweise sogar noch einmal umbenennen, aber dazu später mehr.
Vorwort
Ich möchte gerne drei Dinge anmerken, bevor wir mit der Installation beginnen.
Erstens möchte ich darauf hinweisen, dass wir im folgenden versuchen werden OpenCV für die Verwendung unter Python und nicht für C oder Java zu installieren. Das sollte euch klar sein.
Weiterhin wird euer Pi in den nächsten 1-2 Stunden echt arbeiten müssen, wodurch der Pi sehr warm werden könnte. Ich würde euch empfehlen eine Kühlung an den Pi anzuschließen. Vorzugsweise eine aktive Kühlung, um Schäden am Pi zu verhindern.
Zu guter letzt möchte ich kurz anmerken, dass ich bei der Installation eine meiner SD-Karten zerstört habe. Zwar konnte ich sie am Windows PC wieder neu formatieren, aber nichts desto trotz möchte ich eben darauf hinweisen und anmerken, dass ihr hier auf eigene Gefahr hin arbeitet. Das gilt sowohl für eure SD-Karte, als auch für die Hitzeentwicklung eures Pi. Macht am Besten ein Backup eurer SD-Karte, bevor ihr beginnt.
Vorbereitungen
Bevor wir mit der Installation von OpenCV überhaupt beginnen können müssen wir ein paar kleinere oder größere Vorkehrungen treffen. Als erstes solltet ihr euren Pi auf den neuesten Stand bringen, das könnt ihr über folgende Befehle tun:
sudo apt-get update sudo apt-get upgrade
Anschließend benötigen wir noch einen riesigen Haufen an zusätzlicher Software, die Installation dieser könnte ein wenig Zeit in Anspruch nehmen.
sudo apt-get install build-essential cmake sudo apt-get install pkg-config sudo apt-get install libjpeg-dev libtiff5-dev sudo apt-get install libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev sudo apt-get install libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk2.0-dev libgtk-3-dev sudo apt-get install libatlas-base-dev sudo apt-get install gfortran sudo apt-get install python2.7-dev python3-dev pip install numpy
Als nächstes benötigen wir OpenCV.
Die Quellcodes und zusätzlichen Module können wir aus dem offiziellen GitHub Repository herunterladen und entpacken. Anschließend benötigen wir dann noch einen neuen Ordner, in dem wir die Quellcodes dann kompilieren.
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip unzip opencv.zip wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip unzip opencv_contrib.zip cd ~/opencv-3.3.0/ mkdir build cd build
Ich weiß, dass es bereits neuere Versionen von OpenCV gibt (zu der Zeit, zu dem ich diesen Artikel geschrieben habe war es 3.4.1), aber bei Version 3.3.0 funktionierte die Installation einwandfrei, während 3.4.1 fehlschlug. Wenn mir jemand sagen könnte warum, wäre ich sehr dankbar.
Installation
Nun haben wir alle nötigen Programme, Dateien und Strukturen beisammen. Fangen wir an, dass wir OpenCV installieren. Als Erstes müssen wir die Installation “Konfigurieren”, das passiert automatisch über folgende Befehle, die jeweils einzeln einzugeben und per Enter-Taste zu bestätigen sind:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ -D BUILD_EXAMPLES=ON ..
Dieser Vorgang wird einige Minuten in Anspruch nehmen. Danach können wir den eigentlichen Kompilierungsvorgang starten. Damit es schneller geht verwenden wir alle 4 Kerne des Pi3 B+.
make -j4
Zum Schluss kommt noch wirkliche Installation. Eigentlich handelt es sich bei dieser “Installation” um nicht mehr, als das Verschieben der eben kompilierten Source Codes in den richtigen Ordner und das verlinken der entsprechenden Klassen.
sudo make install sudo ldconfig
Wer mag, der kann nun noch die angelegten Ordner und heruntergeladenen ZIP-Dateien entfernen.
cd ~ rm -rf opencv-3.3.0 opencv_contrib-3.3.0 rm opencv_contrib.zip opencv.zip