Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python

Aperçu

Installation d'OpenCV

Je l'ai construit à partir du code source.

$ wget https://github.com/opencv/opencv/archive/3.4.3.zip -O opencv-3.4.3.zip
$ wget https://github.com/opencv/opencv_contrib/archive/3.4.3.zip -O opencv_contrib-3.4.3.zip
$ unzip opencv-3.4.3.zip
$ unzip opencv_contrib-3.4.3.zip
$ cd opencv-3.4.3
$ mkdir build
$ cd build
$ ./cmake.sh
$ make -j4
$ sudo make install
$ sudo ldconfig
$ cd /path/to/site-packages
$ sudo ln -s /usr/local/lib/python3.6/site-packages/cv2.cpython-36m-aarch64-linux-gnu.so cv2.so

Comme cmake a de nombreuses options et que j'ai réessayé plusieurs fois, j'ai créé un fichier comme suit.

cmake.sh


#!/bin/sh
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF \
-D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF \
-D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF \
-D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF \
-D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF \
-D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF \
-D BUILD_DOCS=OFF -D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
-D BUILD_opencv_python3=ON -D FORCE_VTK=ON \
-D WITH_TBB=ON -D WITH_V4L=ON \
-D WITH_OPENGL=ON -D WITH_CUBLAS=ON \
-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=`pyenv local 3.6.8; pyenv which python` \
-D PYTHON3_INCLUDE_DIR=`pyenv local 3.6.8; python -c 'from distutils.sysconfig import get_python_inc; print(get_python_inc())'` \
-D PYTHON3_NUMPY_INCLUDE_DIRS=`pyenv local 3.6.8; python -c 'import numpy; print(numpy.get_include())'` \
-D PYTHON3_LIBRARIES=`find $PYENV_ROOT/versions/3.6.8/lib -name 'libpython*.so'` \
-D WITH_FFMPEG=ON \
..

Je suis nouveau sur OpenCV et je ne me suis pas bien déroulé à cause de l'environnement spécial. Je suis tombé sur les points suivants.

--Il n'y a pas de libjasper-dev.J'ai eu une erreur et je me demandais quoi faire. Cependant, je l'ai sauté parce qu'il était écrit sur un babillard anglais quelque part que ce n'était pas nécessaire et que je n'avais pas à en faire trop. Cela semble être une bibliothèque liée au JPEG. La construction a réussi même si je ne l'ai pas mise sur le babillard.

matplotlib J'ai mis matplotlib pour l'affichage de l'image. J'ai eu une erreur indiquant que le backend n'est pas une interface graphique, j'ai donc mis PyQt5 comme suit. (Je l'ai fait par essais et erreurs, donc je pense qu'il n'y a pas assez de commandes.)

$ sudo apt install -y qt5-qmake qt5-default
$ wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.12/sip-4.19.12.tar.gz
$ wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.10.1/PyQt5_gpl-5.10.1.tar.gz
$ tar -xvf sip-4.19.12.tar.gz
$ tar -xvf PyQt5_gpl-5.10.1.tar.gz
$ cd sip-4.19.12/
$ python configure.py --sip-module=PyQt5.sip
$ make -j4
$ sudo make install
$ cd ../PyQt5_gpl-5.10.1/
$ python configure.py --qmake /usr/bin/qmake --sip-incdir ~/deeplabcut/sip-4.19.12/siplib
$ make
$ sudo make install
$ pip install pyqt5

Opération confirmée avec python

Le visage de Lena peut-il être détecté? J'ai vérifié le fonctionnement d'OpenCV en fonction du thème.

cvtest.py


import cv2
import matplotlib.pyplot as plt

cascade_path = '/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml'

def face_detection(img_src):
    img_gray = cv2.cvtColor(img_src, cv2.COLOR_BGR2GRAY)
    cascade = cv2.CascadeClassifier(cascade_path)
    facerect = cascade.detectMultiScale(img_gray)
    if len(facerect) == 0:
        print('No face detected')
        return None

    rect = facerect[0]
    cv2.rectangle(
        img_src,
        tuple(rect[0:2]), tuple(rect[0:2] + rect[2:4]),
        (255, 255, 255),
        thickness=2)
    return img_src

if __name__ == "__main__":
    lena_path = './lena.png'
    lena_src = cv2.imread(lena_path)
    lena_face_detected = face_detection(lena_src)
    if lena_face_detected is None:
        img_show = lena_src
    else:
        img_show = cv2.cvtColor(lena_face_detected, cv2.COLOR_BGR2RGB)
    plt.imshow(img_show)
    plt.show()

Voici le résultat de l'exécution. Vous pouvez le détecter en toute sécurité. sensationnel

cvtest.png

Quand la caméra arrivera, j'aimerais jouer avec.

c'est tout.

Recommended Posts

Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Utilisez vl53l0x avec RaspberryPi (python)
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Travailler avec le GPS en Python pour Raspberry Pi 3
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Connectez-vous à MySQL avec Python sur Raspberry Pi
Ne fonctionne pas Python avec OpenCV sur le processeur AMD Ryzen sur WSL2 Ubuntu 18.04 et 20.04
Utilisez matplotlib sur Ubuntu 12 et Python
Installez OpenCV sur Ubuntu + python
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Essayez de déboguer Python sur Raspberry Pi avec Visual Studio.
Détecter l'état de port du masque avec OpenCV et Raspberry Pi
Installez pyenv sur Raspberry Pi pour gérer Python
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
Utilisez python sur Raspberry Pi 3 pour éclairer la LED quand il fait noir!
Briller la vie avec Python et OpenCV
Réseau neuronal avec OpenCV 3 et Python 3
MQTT sur Raspberry Pi et Mac
Procédure d'installation d'OpenCV sur Raspberry Pi
Utiliser OpenCV avec Python 3 dans Window
Construction d'environnements OpenCV3 et Python3 sur Ubuntu
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Débutant Python s'ouvre et se ferme avec Raspberry Pi
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Surveillance des animaux avec Rekognition et Raspberry pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Environnement virtuel Python et packages sur Ubuntu
Adafruit Python BluefruitLE fonctionne sur Raspeye.
Un mémo contenant Python2.7 et Python3 dans CentOS
Utilisez PIL ou Pillow avec Cygwin Python
Définir l'espace d'échange sur Ubuntu sur Raspberry Pi
Programmation normale avec la programmation Node-RED avec Raspberry Pi 3
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
Utiliser le capteur Grove avec Raspberry Pi
Création d'un environnement Ubuntu, Python, OpenCV sur Docker
Travailler avec des capteurs dans Mathematica sur Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Détectez la température à l'aide de python sur Raspberry Pi 3!
Installez pyenv et Python 3.6.8 sur Ubuntu 18.04 LTS
Jusqu'à ce que vous puissiez utiliser opencv avec python
Utiliser Python et MeCab avec Azure Functions
Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3!
Essayez de tweeter le flux RSS d'arXiv sur Twitter avec python de Raspeye
Discord bot raspberry pi zéro avec python [Note]
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Comment utiliser Raspeye Pie Camera Python
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Profitez du travail électronique avec GPIO de Raspberry Pi
MQTT Radicon Car avec Arduino et Raspberry
Allumez / éteignez votre PC avec Raspberry Pi
Le moyen le plus simple d'utiliser OpenCV avec python
Grove - Capteur de température et d'humidité (DHT11) avec Raspberry Pi
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Rendre DHT11 disponible avec Raspeye + python (Remarque)