[PYTHON] OpenCV-Installationsverfahren auf Raspberry Pi

Ich hatte die Möglichkeit, OpenCV für Raspberry Pi bei der Arbeit zu verwenden, konnte es jedoch nicht nur mit den Informationen auf der offiziellen OpenCV-Seite installieren, und es fiel mir schwer, zuverlässige Informationen zu finden. Daher möchte ich die Informationen weitergeben.

Artikelfluss

__1. Es gibt zwei Hauptinstallationsmethoden __ -Installieren Sie das inoffizielle vorgefertigte Paket (opencv-python) -Bauen Sie das offizielle OpenCV auf Raspberry Pi

__2. OpenCV-Funktionsprüfung __ -Überprüfen Sie, ob es importiert werden kann -Betriebsprüfung durch Lesen eines Beispielprogramms durch die Kamera

__3. Über OpenCV-Lizenz __ -OpenCV ist eine BCD-Lizenz -Kontributmodule umfassen solche, die nicht im Handel erhältlich sind

Umgebung

1. Es gibt zwei Hauptinstallationsmethoden.

■ Installieren Sie das inoffizielle vorgefertigte Paket (opencv-python).

__ ● Quelle / Basis für Installationsverfahren __

<Pypi(Python Package Index) opencv-python> https://pypi.org/project/opencv-python/ Pypi ist ein Paketverwaltungsdienst für pip. Auf der opencv-python-Seite wurde wie folgt geschrieben.

Note that the wheel (especially manylinux) format does not currently support properly ARM architecture so there are no packages for ARM based platforms in PyPI. However, opencv-python packages for Raspberry Pi can be found from https://www.piwheels.org/.

\ <Google Translate ...>

PyPI verfügt nicht über ein Paket für ARM-basierte Plattformen, da das Wheel-Format (insbesondere Manylinux) die ARM-Architektur derzeit nicht ordnungsgemäß unterstützt. Das opencv-python-Paket für Raspberry Pi ist jedoch unter https://www.piwheels.org/ verfügbar.

Und das. Raspberry Pi ist übrigens ARM Linux. Das Paket für Raspberry Pi ist nicht hier, aber es scheint zu sagen, dass es von Piwheels heruntergeladen werden kann. Werfen wir also einen Blick auf die Seite mit den Rädern. <piwheels opencv-python> https://www.piwheels.org/

Am Anfang befindet sich eine Beschreibung der Site.

piwheels is a Python package repository providing Arm platform wheels (pre-compiled binary Python packages) specifically for the Raspberry Pi, making pip installations much faster. Packages are natively compiled on Raspberry Pi 3 hardware using the Mythic Beasts Pi cloud.

\ <Google Translate ...>

piwheels ist ein Python-Paket-Repository, das Arm-Plattformräder (kompilierte binäre Python-Pakete) speziell für Raspberry Pi bereitstellt, wodurch die Installation von Pips erheblich beschleunigt wird. Das Paket wird nativ auf Raspberry Pi 3-Hardware unter Verwendung der Mythic Beasts Pi-Cloud kompiliert.

Der Punkt ist, dass es ein Dienst ist, der Pakete für Raspetorte bereitstellt. Verschiedenes. Es heißt RaspberryPi3, aber ich konnte es mit 4 installieren.

Die auf dieser Seite vorgestellte Installationsmethode von opencv-python finden Sie auf der folgenden Seite. <piwheels opencv-python> https://www.piwheels.org/project/opencv-python/

__ ● Ergebnis: Die Installation wurde wie folgt abgeschlossen. __ __

Mit Ausnahme der Version von opencv-python entspricht die Installationsmethode der Piwheel-Seite. Fügen Sie den Befehl in das Raspberry Pi-Terminal ein und führen Sie ihn aus.

<Prozedur 1> Aktualisieren Sie zuerst apt und pip

(Aktualisieren Sie die Liste der Paketverwaltungstools und aktualisieren Sie die installierten Pakete.)

sudo apt update
sudo apt upgrade
sudo pip install --upgrade pip

<Schritt 2> Installation abhängiger Bibliotheken

sudo apt install libavutil56 libcairo-gobject2 libgtk-3-0 libqtgui4 libpango-1.0-0 libqtcore4 libavcodec58 libcairo2 libswscale5 libtiff5 libqt4-test libatk1.0-0 libavformat58 libgdk-pixbuf2.0-0 libilmbase23 libjasper1 libopenexr23 libpangocairo-1.0-0 libwebp6

<Schritt 3> Installieren Sie opencv-python

Installationsmethode nach Piwheel (Dies hat nicht funktioniert.)

sudo pip3 install opencv-python

Bei der Installation mit dem obigen Befehl konnte es nicht importiert werden. Als Ergebnis einer Untersuchung wurde festgestellt, dass es durch Verringern der Version behoben werden kann. (Die mit dem obigen Befehl installierte Version war 4.1.1.) Installieren Sie wie folgt. (Das hat funktioniert.)

sudo pip3 install opencv-python==4.1.0.25

■ Erstellen Sie das offizielle OpenCV auf Raspberry Pi

<Prozedur 1> Installation des abhängigen Bibliothekserstellungstools cmake

<Schritt 2> Laden Sie die OpenCV-Quelle herunter

<Prozedur 3> Kompilieren

__ <Prozedur 1> ~ <Prozedur 3> werden alle in OpencvInstall.sh unten beschrieben. __ __

□ Referenzseite Informationen zu den Optionen zum Verknüpfen von OpenCV und Python von CMake habe ich auf der offiziellen OpenCV-Seite zur Installation für Linux gefunden. <OpenCV Installation in Linux> https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

Ich habe auf diese Seite verwiesen, um die Bibliothek zu installieren. https://github.com/atinfinity/lab/wiki/Linux%E7%92%B0%E5%A2%83%E3%81%A7%E3%81%AEOpenCV%E3%83%93%E3%83%AB%E3%83%89

Ich habe auf die CMake-Optionen verwiesen. \ <8. OpenCV-Entwicklung zur ersten Anpassung von OpenCV mit CMake [OpenCV 3.1.0]> https://www.atmarkit.co.jp/ait/articles/1704/10/news134.html

OpencvInstall.sh



#Update des Paketverwaltungstools (apt-Stellen Sie sicher, dass Sie dies tun, wenn Sie mit get installieren. )
sudo apt-get -y update
sudo apt-get -y upgrade

#Laden Sie die Bibliothek auf der Github-Seite herunter
#Entwicklungswerkzeuge
sudo apt-get -yV install build-essential
sudo apt-get -yV install cmake
#Matrixbetrieb
sudo apt-get -yV install libeigen3-dev
#GUI-Framework bezogen
sudo apt-get -yV install libgtk-3-dev
sudo apt-get -yV install qt5-default
sudo apt-get -yV install libvtk7-qt-dev
sudo apt-get -yV install freeglut3-dev
#Parallelverarbeitung im Zusammenhang
sudo apt-get -yV install libtbb-dev
#Bildformat bezogen
sudo apt-get -yV install libjpeg-dev
sudo apt-get -yV install libopenjp2-7-dev
sudo apt-get -yV install libpng++-dev
sudo apt-get -yV install libtiff-dev
sudo apt-get -yV install libopenexr-dev
sudo apt-get -yV install libwebp-dev
#Video im Zusammenhang
sudo apt-get -yV install libavresample-dev
#Andere
sudo apt-get -yV install libhdf5-dev
#Python im Zusammenhang
sudo apt-get -yV install libpython3-dev
sudo apt-get -yV install python3-numpy python3-scipy python3-matplotlib

#Git installieren (wird beim Herunterladen der Quelle verwendet)
sudo apt-get -y install git

#Quelle herunterladen
cd /usr/local
sudo mkdir opencv4
cd /usr/local/opencv4
sudo git clone https://github.com/opencv/opencv.git
sudo git clone https://github.com/opencv/opencv_contrib.git

#Erstellen eines Verzeichnisses zum Erstellen (Es wird empfohlen, ein Erstellungsverzeichnis zu erstellen und darin zu erstellen.)
cd opencv
sudo mkdir build
cd build

#Bauen
#Grundsätzlich habe ich auf die offizielle OpenCV-Seite verwiesen.
sudo cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/usr/local/opencv4/opencv_contrib/modules \
PYTHON3_EXECUTABLE=/usr/lib/python3.7 \
PYTHON_INCLUDE_DIR=/usr/include/python3.7 \
PYTHON_INCLUDE_DIR2=/usr/include/arm-linux-gnueabihf/python3.7m \
PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \
PYTHON3_NUMPY_INCLUDE_DIRS =/usr/lib/python3/dist-packages/numpy/core/include \
-S /usr/local/opencv4/opencv

sudo make -j7
sudo make install

2. Überprüfen Sie den Betrieb von OpenCV

Überprüfen Sie, ob es importiert werden kann

Führen Sie den folgenden Befehl auf dem Terminal aus. Wenn Sie beim Festlegen von "import cv2" keinen importError erhalten, ist dies in Ordnung.

#Starten Sie den Dolmetscher
python3
#importieren
import cv2
#Überprüfen der OpenCV-Version
cv2.__version__
#Ausgang des Dolmetschers
exit()
Funktionsprüfung durch Kamera, die das Beispielprogramm liest

Versuchen Sie nach dem Aktivieren der Kamera (Sie können sie über Raspberry Pi-Einstellungen> Schnittstelle> Kamera einstellen), dieses Programm auszuführen. Wenn OpenCV ausgeführt wird, sollte ein Fenster mit dem Kamerabild angezeigt werden (wenn Sie es mit einem Editor ausführen, wird möglicherweise ein Fenster hinter dem Editor angezeigt).

camera.py


import cv2
#Zum Speichern von Bilddaten ist numpy erforderlich.
import numpy as np


def camera():
    cap = cv2.VideoCapture(0)
    isOpened = cap.isOpened()
    if isOpened is False:
        return
    while True:
        result, frame = cap.read()
        if result is False:
            return
        #Bildschirm
        cv2.imshow('camera', frame)
        #Tastatureingang
        key = cv2.waitKey(1)
        #Beenden-Taste (Beenden mit Enter oder Esc)
        if (key == 13) or (key == 27):
            break
    #Kameraende
    cap.release()
    cv2.destroyAllWindows()

camera()

3. Informationen zur OpenCV-Lizenz

Obwohl es Open Source ist, gibt es zwei Punkte zu beachten. Bitte überprüfen Sie die Lizenz für die kommerzielle Nutzung.

OpenCV ist eine BCD-Lizenz

Programme, die das Hauptmodul von OpenCV verwenden, können frei verwendet, geändert und weitergegeben werden. Die Copyright-Informationen und die Lizenz müssen jedoch zu diesem Zeitpunkt angezeigt werden. \ https://opencv.org/license/

Es gab einen sehr leicht verständlichen Artikel über die Lizenzierung. Schauen Sie also bitte hier. \ <Öffentliche Lizenzgeschichte> https://qiita.com/lovee/items/484ae3fc038314a64ee2

Einige Contrib-Module sind nicht im Handel erhältlich

-SURF im Contrib-Modul kann nicht für kommerzielle Zwecke verwendet werden.

Sie können es vom Download auf der offiziellen Seite überprüfen. \ http://people.ee.ethz.ch/~surf/

\ <Module, die github opencv-contrib / surf verwenden> https://github.com/opencv/opencv_contrib/tree/master/modules/xfeatures2d

・ SIFT scheint am 6. März 2020 abgelaufen zu sein und zum Hauptmodul übergegangen zu sein.

4. Schließlich

Vielen Dank, dass Sie so weit gelesen haben. Wenn Sie es hilfreich finden oder installiert haben, geben Sie mir bitte ein schönes (LGTM) m (_ _ m) Wenn Sie Vorschläge haben, würden wir uns freuen, wenn Sie uns kontaktieren könnten!

Recommended Posts

OpenCV-Installationsverfahren auf Raspberry Pi
Installieren Sie OpenCV4 auf Raspberry Pi 3
Pigpio auf Himbeer-Pi
Cython auf Raspberry Pi
Pyenv auf Raspberry Pi eingeführt
Verwenden Sie NeoPixel mit Himbeerkuchen
Installieren Sie TensorFlow 1.15.0 auf Raspberry Pi
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Installation von Docker auf Raspberry Pi und L Chika
Fehlerbehebung bei der Installation von OpenCV auf Raspberry Pi und der Erfassung
Testen der Kommunikation mit Raspberry Pi
MQTT auf Raspberry Pi und Mac
Himbeer Pi 4 Centos7 auf Docker installieren
Einfache Installation von OpenCV auf RaspberryPi 3+
Installieren Sie ghoto2 auf Raspberry Pi (Hinweis)
Versuchen Sie es mit ArUco mit Raspberry Pi
Ein- / Ausschalten von Raspberry Pi mit Arduino
Erkennen Sie den Schalterstatus mit Raspberry Pi 3
Installieren Sie OpenMedia Vault 5 auf Raspberry Pi 4
L Chika mit Himbeer-Pi C #
Erstellen Sie wxPython unter Ubuntu 20.04 auf Himbeer-Pi 4
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 2
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
USB-Boot auf Raspberry Pi 4 Model B.
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 1
Aktivieren Sie die serielle UART + -Kommunikation mit Raspberry Pi
Adafruit Python BluefruitLE arbeitet mit Raspeye.
Beschleunigen Sie Deep Learning mit der Rasperry Pi 4-CPU
Stellen Sie den Swap Space unter Ubuntu auf Raspberry Pi ein
Normal programmieren mit Node-RED-Programmierung mit Raspberry Pi 3
Verwenden Sie den Grove-Sensor mit Raspberry Pi
Installieren Sie das 64-Bit-Betriebssystem (Bate) auf Raspberry Pi
Installieren Sie Docker-Compose unter 64-Bit-Raspberry-Pi-Betriebssystem
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Raspberry Pi "Honwaka Benachrichtigungslampe" Teil 3
Arbeiten mit Sensoren in Mathematica auf Raspberry Pi
Erstellen Sie eine OpenCV-Python-Umgebung auf Raspberry Pi B +
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Matrixmultiplikation auf Raspberry Pi GPU (Teil 2)
So installieren Sie NumPy auf Raspeye
Arbeiten mit GPS in Python für Raspberry Pi 3
Installationsverfahren für Pylearn 2
OpenCV3-Installationskampf
Installationsverfahren für PostgreSQL 10.0
Blockdiag-Installationsverfahren
Warum DetectMultiScale () auf Raspberry Pi B + langsam ist
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Genießen Sie die elektronische Arbeit mit GPIO von Raspberry Pi
Grove - Temperatur- und Feuchtigkeitssensor (DHT11) mit Raspberry Pi
Stellen Sie DHT11 mit Raspeye + Python zur Verfügung (Hinweis)
Cross-Compilierung für Raspberry Pi Zero unter Ubuntu gestartet
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Zeigen Sie die CPU-Temperatur alle 5 Sekunden auf dem Raspberry Pi 4 an
Einführung von Ceph mit Kubernetes auf Raspberry Pi 4B (ARM64)
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her