[PYTHON] Procédure d'installation d'OpenCV sur Raspberry Pi

J'ai eu l'occasion d'utiliser OpenCV pour Raspberry Pi au travail, mais je ne pouvais pas l'installer en utilisant uniquement les informations de la page officielle d'OpenCV, et j'avais du mal à trouver des informations fiables, alors j'aimerais partager les informations.

Flux d'articles

__1. Il existe deux méthodes d'installation principales __ -Installez le package pré-construit non officiel (opencv-python) -Construire l'OpenCV officiel sur Raspberry Pi

__2. Vérification du fonctionnement d'OpenCV __ -Vérifier s'il peut être importé -Contrôle de fonctionnement par exemple de programme de lecture de caméra

__3. À propos de la licence OpenCV __ -OpenCV est une licence BCD -Les modules de contribution incluent ceux qui ne sont pas disponibles dans le commerce

environnement

-Construire un environnement sur RaspberryPi4 (OS: Raspbian Buster avec bureau). -Il est supposé qu'OpenCV est utilisé en Python. La version de Pyhton est Python 3.7.3. -La version d'OpenCV à installer est OpenCV4.

1. Il existe deux méthodes d'installation principales.

■ Installez le package pré-construit non officiel (opencv-python)

__ ● Source / Base de la procédure d'installation __

<Pypi(Python Package Index) opencv-python> https://pypi.org/project/opencv-python/ Pypi est un service de gestion de packages pour pip. Sur la page opencv-python, il a été écrit comme suit.

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 Traduction ...>

PyPI n'a pas de package pour les plates-formes ARM, car le format wheel (en particulier manylinux) ne prend actuellement pas correctement en charge l'architecture ARM. Cependant, le package opencv-python pour Raspberry Pi est disponible sur https://www.piwheels.org/.

Et cela. À propos, Raspberry Pi est ARM Linux. Le package pour Raspberry Pi n'est pas ici, mais il semble dire qu'il peut être téléchargé à partir de piwheels. Alors, jetons un œil à la page piwheels. <piwheels opencv-python> https://www.piwheels.org/

Il y a une description du site au début.

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 Traduction ...>

piwheels est un référentiel de packages Python qui fournit des roues de plate-forme Arm (packages Python binaires compilés) spécifiquement pour Raspberry Pi, ce qui accélère considérablement l'installation de pips. Le package est compilé nativement sur du matériel Raspberry Pi 3 à l'aide du cloud Mythic Beasts Pi.

Le fait est que c'est un service qui fournit des packages pour la tarte aux râpes. Divers. Il dit RaspberryPi3, mais j'ai pu l'installer avec 4.

La méthode d'installation d'opencv-python présentée sur cette page se trouve sur la page suivante. <piwheels opencv-python> https://www.piwheels.org/project/opencv-python/

__ ● Résultat: l'installation s'est terminée par la procédure suivante. __

À l'exception de la version d'opencv-python, la méthode d'installation est la même que celle de la page piwheel. Collez la commande dans le terminal Raspberry Pi et exécutez-la.

<Procédure 1> Commencez par mettre à niveau apt et pip

(Mettre à jour la liste des outils de gestion des packages et mettre à jour les packages installés)

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

<Étape 2> Installation des bibliothèques dépendantes

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

<Étape 3> Installez opencv-python

Méthode d'installation selon piwheel (cela n'a pas fonctionné.)

sudo pip3 install opencv-python

Une fois installé avec la commande ci-dessus, il n'a pas pu être importé, donc à la suite de l'enquête, il a été constaté qu'il peut être résolu en abaissant la version. (La version installée par la commande ci-dessus était 4.1.1.) Installez comme suit. (Cela a fonctionné.)

sudo pip3 install opencv-python==4.1.0.25

■ Construisez l'OpenCV officiel sur Raspberry Pi

<Procédure 1> Installation de la bibliothèque dépendante / outil de construction cmake

<Étape 2> Téléchargez la source OpenCV

<Procédure 3> Compiler

__ <Procédure 1> ~ <Procédure 3> sont tous décrits dans OpencvInstall.sh ci-dessous. __

□ Page de référence Pour les options de liaison entre OpenCV et Python de CMake, je me suis référé à la page officielle d'OpenCV pour l'installation pour Linux. <OpenCV Installation in Linux> https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

Je me suis référé à cette page pour la bibliothèque à installer. <Construction d'OpenCV dans l'environnement Linux Github> 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

J'ai évoqué les options de CMake. \ <8ème développement d'OpenCV pour la première personnalisation d'OpenCV à l'aide de CMake [OpenCV 3.1.0]> https://www.atmarkit.co.jp/ait/articles/1704/10/news134.html

OpencvInstall.sh



#Mise à jour de l'outil de gestion des packages (apt-Assurez-vous de le faire lors de l'installation avec get. )
sudo apt-get -y update
sudo apt-get -y upgrade

#Téléchargez la bibliothèque en vous référant à la page Github
#Outils de développement
sudo apt-get -yV install build-essential
sudo apt-get -yV install cmake
#Fonctionnement de la matrice
sudo apt-get -yV install libeigen3-dev
#Lié au framework GUI
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
#Traitement parallèle lié
sudo apt-get -yV install libtbb-dev
#Lié au format d'image
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
#Vidéo liée
sudo apt-get -yV install libavresample-dev
#Autre
sudo apt-get -yV install libhdf5-dev
#Lié à Python
sudo apt-get -yV install libpython3-dev
sudo apt-get -yV install python3-numpy python3-scipy python3-matplotlib

#Installer git (utilisé lors du téléchargement de la source)
sudo apt-get -y install git

#Télécharger la source
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

#Création d'un répertoire pour la construction (Il est recommandé de créer un répertoire de construction et de le construire.)
cd opencv
sudo mkdir build
cd build

#Construire
#En gros, je me suis référé à la page officielle d'OpenCV.
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. Vérifiez le fonctionnement d'OpenCV

Vérifiez s'il peut être importé

Exécutez la commande suivante sur le terminal, et si vous n'obtenez pas une importError lorsque vous définissez ʻimport cv2`, c'est OK.

#Démarrer l'interprète
python3
#importer
import cv2
#Vérification de la version d'OpenCV
cv2.__version__
#Sortie de l'interprète
exit()
Vérification du fonctionnement par un exemple de programme de lecture de caméra

Après avoir activé la caméra (vous pouvez la définir depuis Paramètres Raspberry Pi> Interface> Caméra), essayez d'exécuter ce programme. Si OpenCV est en cours d'exécution, vous devriez voir une fenêtre montrant l'image de la caméra (si vous l'exécutez à l'aide d'un éditeur, vous pouvez voir une fenêtre derrière l'éditeur).

camera.py


import cv2
#numpy est nécessaire pour stocker les données d'image.
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
        #Affichage de l'image
        cv2.imshow('camera', frame)
        #Réception des entrées clés
        key = cv2.waitKey(1)
        #Touche de sortie (Quitter avec Entrée ou Echap)
        if (key == 13) or (key == 27):
            break
    #Fin de la caméra
    cap.release()
    cv2.destroyAllWindows()

camera()

3. À propos de la licence OpenCV

Bien qu'il soit open source, il y a deux points à noter. Veuillez vérifier la licence pour un usage commercial.

OpenCV est une licence BCD

Les programmes qui utilisent le module principal d'OpenCV peuvent être librement utilisés, modifiés et redistribués, mais les informations de copyright et la licence doivent être affichées à ce moment-là. \ https://opencv.org/license/

Il y avait un article très facile à comprendre sur les licences, alors jetez un œil ici. \ https://qiita.com/lovee/items/484ae3fc038314a64ee2

Certains modules contrib ne sont pas disponibles dans le commerce

-SURF inclus dans le module contrib ne peut pas être utilisé à des fins commerciales.

Vous pouvez le vérifier à partir du téléchargement sur la page officielle. \ http://people.ee.ethz.ch/~surf/

\ <modules utilisant github opencv-contrib / surf> https://github.com/opencv/opencv_contrib/tree/master/modules/xfeatures2d

・ SIFT semble avoir expiré le 6 mars 2020 et est passé au module principal.

4. Enfin

Merci d'avoir lu jusqu'ici. Si vous le trouvez utile ou l'avez installé, veuillez m'en donner un joli (LGTM) m (_ _ m) Aussi, si vous avez des suggestions, nous vous serions reconnaissants de bien vouloir nous contacter!

Recommended Posts

Procédure d'installation d'OpenCV sur Raspberry Pi
Installez OpenCV4 sur Raspberry Pi 3
pigpio sur Raspberry pi
Cython sur Raspberry Pi
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez TensorFlow 1.15.0 sur Raspberry Pi
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Installation de Docker sur Raspberry Pi et L Chika
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Test de la communication UART avec Raspberry Pi
MQTT sur Raspberry Pi et Mac
raspberry pi 4 centos7 installer sur docker
Installation facile d'OpenCV sur RaspberryPi 3+
Installez ghoto2 sur Raspberry Pi (Remarque)
Essayez d'utiliser ArUco avec Raspberry Pi
Allumer / éteindre le Raspberry pi avec Arduino
Détecter l'état du commutateur avec Raspberry Pi 3
Installez OpenMedia Vault 5 sur Raspberry Pi 4
L Chika avec Raspberry Pi C #
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Raspberry Pi "Lampe de notification Honwaka" Partie 2
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Démarrage USB sur Raspberry Pi 4 modèle B
Raspberry Pi "Lampe de notification Honwaka" Partie 1
Activer la communication série UART + avec Raspberry Pi
Adafruit Python BluefruitLE fonctionne sur Raspeye.
Accélérez l'apprentissage en profondeur avec le processeur Rasperry Pi 4
Définir l'espace d'échange sur Ubuntu sur Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Utiliser le capteur Grove avec Raspberry Pi
Installez la version 64 bits du système d'exploitation (bate) sur Raspberry Pi
Installez docker-compose sur le système d'exploitation Raspberry Pi 64 bits
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Raspberry Pi "Lampe de notification Honwaka" Partie 3
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Construire un environnement OpenCV-Python sur Raspberry Pi B +
Détectez la température à l'aide de python sur Raspberry Pi 3!
Multiplication matricielle sur GPU Raspberry Pi (partie 2)
Comment installer NumPy sur Raspeye
Travailler avec le GPS en Python pour Raspberry Pi 3
Procédure d'installation de Pylearn 2
Bataille d'installation d'OpenCV3
Procédure d'installation de PostgreSQL 10.0
procédure d'installation blockdiag
Pourquoi detectMultiScale () est lent sur Raspberry Pi B +
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Construire un environnement Django sur Raspai (MySQL)
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Profitez du travail électronique avec GPIO de Raspberry Pi
Grove - Capteur de température et d'humidité (DHT11) avec Raspberry Pi
Rendre DHT11 disponible avec Raspeye + python (Remarque)
Démarrage de la compilation croisée pour Raspberry Pi Zero sur Ubuntu
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
Afficher la température du processeur toutes les 5 secondes sur Raspberry Pi 4
Introduction de Ceph avec Kubernetes sur Raspberry Pi 4B (ARM64)
Connectez-vous à MySQL avec Python sur Raspberry Pi