pip install opencv

Dans ce tutoriel, vous allez apprendre à installer OpenCV via pip sur Ubuntu, macOS et le Raspberry Pi.

Dans les précédents tutoriels d’installation d’OpenCV, j’ai recommandé de compiler à partir des sources ; cependant, au cours de l’année écoulée, il est devenu possible d’installer OpenCV via pip, le propre gestionnaire de paquets de Python.

Bien que l’installation à partir des sources vous donne le plus grand contrôle sur votre configuration OpenCV, c’est aussi la plus difficile et la plus longue.

Si vous cherchez le moyen le plus rapide d’installer OpenCV sur votre système, vous voulez utiliser pip pour installer OpenCV (mais il y a quelques éléments qui peuvent vous faire trébucher en cours de route, alors assurez-vous de lire le reste de ce guide).

Mise à jour du 2019-11-21 : Une mise à jour a été publiée dans cet article de blog en raison de problèmes de compatibilité avec OpenCV sur le Raspberry Pi 4 exécutant BusterOS en utilisant cette méthode d’installation pip. Assurez-vous de trouver les mises à jour via ctrl + f en recherchant « 2019-11-21 Update ».

Pour apprendre à installer OpenCV avec pip sur votre système, continuez à lire.

Vous cherchez le code source de ce billet ?

Sautez directement à la section des téléchargements

pip install opencv

Dans la suite de ce tutoriel, je décrirai brièvement les paquets OpenCV que vous pouvez installer via pip, le gestionnaire de paquets de Python.

De là, je démontrerai comment installer OpenCV via pip sur Ubuntu, macOS et le Raspberry Pi.

Enfin, je passerai en revue certains problèmes courants que vous pouvez rencontrer lorsque vous utilisez pip pour installer OpenCV.

J’aimerais souligner une mise en garde importante concernant cette méthode d’installation d’OpenCV avant de commencer.

Les versions hébergées par PyPi/PiWheels d’OpenCV dont nous parlons aujourd’hui n’incluent pas les algorithmes  » non libres  » tels que SIFT, SURF et d’autres algorithmes brevetés. C’est une excellente méthode pour installer OpenCV si vous avez besoin d’un environnement rapide dans lequel vous n’aurez pas besoin d’exécuter des programmes contenant les algorithmes non libres – si ce n’est pas le cas, vous devrez effectuer une compilation complète d’OpenCV.

Les deux paquets pip OpenCV : opencv-python et opencv-contrib-python

Avant de commencer, je veux vous rappeler que les méthodes que je viens vous présenter aujourd’hui sont des paquets OpenCV préconstruits non officiels qui peuvent être installés via pip – ce ne sont pas des paquets OpenCV officiels publiés par OpenCV.org.

Ce n’est pas parce que ce ne sont pas des paquets officiels que vous devez vous sentir mal à l’aise de les utiliser, mais il est important que vous compreniez qu’ils ne sont pas approuvés et supportés directement par l’équipe officielle d’OpenCV.org.

Tout cela dit – il y a quatre paquets OpenCV qui sont installables par pip sur le dépôt PyPI :

  1. opencv-python : Ce dépôt contient juste les modules principaux de la bibliothèque OpenCV. Si vous êtes un lecteur de PyImageSearch, vous ne voulez pas installer ce paquet.
  2. opencv-contrib-python : Le dépôt opencv-contrib-python contient à la fois les modules principaux ainsi que les modules contrib – c’est la bibliothèque que je vous recommande d’installer car elle inclut toutes les fonctionnalités d’OpenCV.
  3. opencv-python-headless : Identique à opencv-python mais sans fonctionnalité d’interface graphique. Utile pour les systèmes sans tête.
  4. opencv-contrib-python-headless : Identique à opencv-contrib-python mais sans fonctionnalité d’interface graphique. Utile pour les systèmes sans tête.

Encore, dans la grande majorité des situations, vous voudrez installer opencv-contrib-python sur votre système.

Vous ne voulez PAS installer à la fois opencv-python et opencv-contrib-python – choisissez l’UN d’entre eux.

Comment installer OpenCV avec pip sur Ubuntu

Vous avez deux options pour installer OpenCV sur Ubuntu avec pip :

  1. Installer dans votre système site-packages
  2. Installer dans celui d’un environnement virtuel site-packages (préféré)

D’abord, installer pip

Si vous n’avez pas pip, vous devrez d’abord l’obtenir :

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Option A : Installer OpenCV sur votre système Ubuntu avec pip

Je ne recommanderais pas cette méthode, sauf si vous avez un cas d’utilisation particulier où vous ne voulez pas d’environnements Python isolés et indépendants.

Laissons pip installer opencv-contrib-python sur notre système :

$ sudo pip install opencv-contrib-python

En quelques secondes, OpenCV est prêt à partir dans les paquets-site de votre système !

Option B : Installer OpenCV sur Ubuntu dans un environnement virtuel avec pip

Les environnements virtuels Python présentent d’énormes avantages.

Le principal avantage est que vous pouvez développer plusieurs projets sur votre système avec des paquets isolés (beaucoup avec des dépendances de version) sans avoir à brouiller les pistes de votre système. Vous êtes également libre d’ajouter et de supprimer des environnements virtuels au fur et à mesure.

Plus simplement : Les environnements virtuels Python sont une meilleure pratique pour le développement Python. Il y a fort à parier que vous devriez sauter dans le train en marche.

Mes outils de prédilection sont virtualenv et virtualenvwrapper mais vous pourriez choisir une alternative comme venv ou Anaconda (conda pour faire court).

Voici comment installer virtualenv et virtualenvwrapper , qui vivront tous deux dans votre système site-packages et géreront les sites-packages de l’environnement virtuel de chaque projet :

$ pip install virtualenv virtualenvwrapper

Avant de continuer, vous devez d’abord ajouter quelques lignes à votre ~/.bashrc profil. Ouvrez le fichier en utilisant nanovim , ou emacs et ajoutez ces lignes à la fin :

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Enregistrez le fichier. Puis « sourcez-le » dans votre terminal:

$ source ~/.bashrc

Vous verrez une sortie de terminal qui configure virtualenvwrapper. Vous avez maintenant accès à de nouvelles commandes de terminal :

  • Créer un environnement avec mkvirtualenv .
  • Activer un environnement (ou passer à un autre) avec workon .
  • Désactiver un environnement avec deactivate .
  • Supprimer un environnement avec rmvirtualenv .
  • S’assurer de lire la docs !

Créons un environnement virtuel Python 3 pour OpenCV appelé cv:

$ mkvirtualenv cv -p python3

Et maintenant avec une baguette magique (pip), vous pouvez installer par pip OpenCV en quelques secondes dans votre nouvel environnement :

$ pip install opencv-contrib-python

Comment installer par pip OpenCV sur macOS

MacOS est similaire à Ubuntu pour l’installation par pip d’OpenCV.

Encore une fois, vous avez deux options pour installer OpenCV sur macOS avec pip :

  1. Installer dans votre système site-packages
  2. Installer dans un environnement virtuel site-packages (préféré)

Installer pip

Si vous n’avez pas pip, vous devrez d’abord l’obtenir :

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Option A : installer OpenCV sur votre système macOS avec pip

Ne faites pas cela.

Pourquoi ? Je vous recommande en fait de passer à l’option B et d’utiliser un environnement virtuel.

Ok, eh bien si vous insistez pour installer sur votre système macOS, alors c’est tout aussi facile que pip d’installer OpenCV via :

$ sudo pip install opencv-contrib-python

En quelques secondes, OpenCV est prêt à aller dans les paquets-site de votre système.

Option B : Installer OpenCV sur macOS dans un environnement virtuel avec pip

Tout comme la gestion des paquets est un jeu d’enfant avec pip…..

…la gestion des projets et de leurs dépendances est un jeu d’enfant avec les environnements virtuels.

Vous devriez utiliser les environnements virtuels Python si vous êtes sérieux dans le développement de la vision par ordinateur (ou tout autre développement d’ailleurs).

Je me fiche du système que vous utilisez (que ce soit virtualenvvenv , ou conda /Anaconda), apprenez simplement à en utiliser un et tenez-vous-en à celui-ci.

Voici comment installer virtualenv et virtualenvwrapper, qui vivront tous deux dans vos paquets-site système et géreront les paquets-site d’environnement virtuel de chaque projet :

$ pip install virtualenv virtualenvwrapper

À partir de là, vous devez ajouter les lignes suivantes à votre ~/.bash_profile (remarquez que pour macOS, le nom du fichier est .bash_profile et que pour Ubuntu, c’est .bashrc .

Ouvrir le fichier en utilisant nanovim , ou emacsnano arrive sur la plupart des systèmes) :

$ nano ~/.bash_profile

…et ajoutez ces lignes à la fin :

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Enregistrez le fichier – si vous utilisez nano les raccourcis clavier sont listés en bas de la fenêtre.

Puis  » sourcez-le  » dans votre terminal :

$ source ~/.bash_profile

Vous verrez quelques lignes de sortie de terminal indiquant que virtualenvwrapper est configuré. Vous avez maintenant accès à de nouvelles commandes de terminal :

  • mkvirtualenv : Faire un nouvel environnement virtuel.
  • workon : Activer/commuter vers un environnement virtuel. Rappelez-vous, vous pouvez avoir autant d’environnements que vous le souhaitez.
  • deactivate : Saute hors d’un environnement virtuel et vous travaillerez avec votre système.
  • rmvirtualenv : Supprime un environnement virtuel.
  • Veillez à lire la docs !

Créons un environnement virtuel Python 3 pour OpenCV appelé cv:

$ mkvirtualenv cv -p python3

Et maintenant, en utilisant pip, et en un clin d’œil, vous pouvez installer par pip OpenCV sur macOS en quelques secondes dans votre nouvel environnement :

$ pip install opencv-contrib-python

Comment installer par pip OpenCV sur Raspberry Pi

Plus tôt dans ce post, j’ai mentionné que l’un des inconvénients de l’installation d’OpenCV est que vous n’avez aucun contrôle sur la compilation elle-même – les binaires sont préconstruits pour vous, ce qui, bien qu’agréable, signifie également que vous ne pouvez pas inclure d’optimisations supplémentaires.

Pour le Raspberry Pi, nous avons de la chance.

Dave Jones (créateur du picamera module Python) et Ben Nuttall de la communauté Raspberry Pi dirigent piwheels.org, un dépôt de paquets Python fournissant des roues ARM (c’est-à-dire, paquets binaires précompilés) pour le Raspberry Pi.

En utilisant PiWheels, vous serez en mesure de pip installer OpenCV en quelques secondes (il en va de même pour d’autres bibliothèques Python qui peuvent prendre beaucoup de temps à compiler, notamment NumPy, SciPy, scikit-learn, etc.).

Alors, comment indiquer à la commande pip d’utiliser PiWheels ?

La réponse courte est  » Rien ! « 

Si vous utilisez Raspbian Stretch, vous serez heureux de savoir que la commande pip vérifiera PiWheels pour un binaire précompilé avant de vérifier PyPI, permettant à votre Pi d’économiser un tas de cycles CPU (et vous un tas de temps d’installation).

De plus, lorsque Ben et Dave ont monté le binaire OpenCV pour PiWheels, ils m’ont demandé quelles instructions ils devaient utiliser – j’ai recommandé mon installation OpenCV optimisée pour le Raspberry Pi – ce qui est exactement les instructions qu’ils ont suivies !

Si vous finissez par utiliser pip pour installer OpenCV sur votre Raspberry Pi, rassurez-vous, vous utilisez la version optimisée.

Démarrons l’apprentissage de l’installation d’OpenCV par pip sur notre Raspberry Pi.

Installer les prérequis sur votre Raspberry Pi

Le Raspberry Pi nécessite que vous installiez quelques paquets système avant de commencer :

$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-100$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5$ sudo apt-get install libatlas-base-dev$ sudo apt-get install libjasper-dev

Installer pip sur votre Raspberry Pi

Le gestionnaire de paquets Python, « pip », peut être obtenu via wget:

$ wget https://bootstrap.pypa.io/get-pip.py$ sudo python3 get-pip.py

Vous avez maintenant deux options :

  1. Installer OpenCV sur votre site-packages global Python sur votre Raspberry Pi
  2. Installer OpenCV dans un environnement virtuel sur votre Raspberry Pi

Option A : Installer OpenCV sur votre système Raspberry Pi avec pip

Je ne recommanderais pas cette option si vous voulez pouvoir utiliser différentes versions d’OpenCV dans des environnements isolés.

Mais beaucoup de gens déploient leurs Raspberry Pis pour un seul but/projet et n’ont pas besoin d’environnements virtuels.

Cela étant dit, c’est un sacré bazar à nettoyer si vous changez d’avis plus tard et voulez utiliser des environnements virtuels, donc je recommanderais de sauter cette option et de suivre l’option B.

Pour installer pip OpenCV sur votre système Raspberry Pi, assurez-vous d’utiliser sudo comme ceci :

$ sudo pip install opencv-contrib-python==4.1.0.25

Mise à jour du 21 novembre 2019 : Des lecteurs ont signalé que certaines versions d’OpenCV 4 telles qu’installées via pip ne fonctionnent pas correctement sur le Raspberry Pi. Vous pouvez rencontrer une erreur "undefined symbol: __atomic_fetch_add8" pour libatomic lorsque vous import cv2 de Python si vous n’utilisez pas la version spécifique d’OpenCV mentionnée dans le bloc de code ci-dessus.

En quelques secondes, OpenCV est prêt à aller dans le site-packages de votre Raspberry Pi avec tous les autres paquets que vous avez pu installer.

Option B : Installer OpenCV dans un environnement virtuel avec pip sur votre Raspberry Pi

Les environnements virtuels sont définitivement la voie à suivre si votre Raspberry Pi a de multiples usages (ou si vous êtes comme moi et que vous testez tout le temps la compatibilité du code entre différentes versions de logiciels pour des articles de blog ?).

Voici comment installer virtualenv et virtualenvwrapper, les outils que j’utilise pour y parvenir :

$ pip install virtualenv virtualenvwrapper

Puis vous devez ajouter les lignes suivantes à votre ~/.bashrc . Ouvrez le fichier en utilisant nanovim , ou emacs et ajoutez ces lignes à la fin :

# virtualenv and virtualenvwrapperexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3source /usr/local/bin/virtualenvwrapper.sh

Enregistrez le fichier. Ensuite, « sourcez-le » dans votre terminal:

$ source ~/.bashrc

Une sortie de terminal sera imprimée indiquant que virtualenvwrapper est prêt. Veillez à l’inspecter pour détecter les erreurs éventuelles.

Vous avez maintenant accès à de nouvelles commandes de terminal :

  • Créer un environnement avec mkvirtualenv .
  • Activer un environnement (ou passer à un autre) avec workon .
  • Désactiver un environnement avec deactivate .
  • Supprimer un environnement avec rmvirtualenv .
  • S’assurer de lire la docs !

Pour créer un environnement virtuel Python 3 qui abritera OpenCV et les autres paquets que vous installerez, il suffit d’utiliser mkvirtualenv et la commande ci-dessous :

$ mkvirtualenv cv -p python3

Vous avez maintenant un environnement virtuel nommé cv . Vous pouvez l’activer à tout moment via :

$ workon cv

Et maintenant, en un tour de main, vous pouvez installer par pip OpenCV dans cv :

$ pip install opencv-contrib-python==4.1.0.25

Mise à jour du 21 novembre 2019 : Des lecteurs ont signalé que certaines versions d’OpenCV 4 telles qu’installées via pip ne fonctionnent pas correctement sur le Raspberry Pi. Vous pouvez rencontrer une erreur "undefined symbol: __atomic_fetch_add8" pour libatomic lorsque vous import cv2 de Python si vous n’utilisez pas la version spécifique d’OpenCV mentionnée dans le bloc de code ci-dessus.

C’est tout ce qu’il y a à faire avec PiWheels !

Je parie que vous utilisez la PiCamera comme capteur d’images. Vous pouvez installer le module Python à l’aide de la commande suivante (notez simplement les guillemets):

$ pip install "picamera"

Tester notre installation pip d’OpenCV

Savez-vous que la version 3.3+ d’OpenCV possède un module DNN qui peut exécuter des modèles de Deep Learning ?

Vous pourriez être surpris, mais votre version d’OpenCV peut faire cela dès maintenant, avec peu ou pas de logiciel supplémentaire.

Nous allons effectuer une détection d’objets dans une vidéo avec un détecteur MobileNet Single Shot.

Voici ce que vous devez installer en premier (en supposant un cv environnement virtuel):

$ workon cv$ pip install imutils$ pip install "picamera" # if you're using a Raspberry Pi

Vérifiez maintenant que vous avez tous les logiciels prêts en ouvrant un shell Python :

$ workon cv$ pythonPython 3.6.3 (default, Oct 4 2017, 06:09:15) on darwinType "help", "copyright", "credits" or "license" for more information.>>> import cv2>>> cv2.__version__'4.0.1'>>> import imutils>>>

Le Raspberry Pi affichera une version différente de Python 3, ce qui est attendu.

Maintenant, il est temps de télécharger le code.

Veuillez utiliser la section « Téléchargements » de cet article de blog pour télécharger le code source + le réseau neuronal MobileNet SSD pré-entraîné.

De là, exécutez la commande suivante :

$ python real_time_object_detection.py \--prototxt MobileNetSSD_deploy.prototxt.txt \--model MobileNetSSD_deploy.caffemodel loading model... starting video stream... elapsed time: 55.07 approx. FPS: 6.54
Figure 1 : Un court clip de détection d’objets en temps réel avec deep learning et OpenCV

J’utilise un Macbook Pro. Un framerate de 6 FPS est plutôt bon en utilisant un processeur sur un ordinateur portable.

Les Raspberry Pis ont des ressources limitées, nous pouvons donc tirer parti de quelques astuces pour créer l’illusion de FPS plus élevés. Si vous êtes sur le Raspberry Pi, exécutez la commande suivante :

$ python pi_object_detection.py \--prototxt MobileNetSSD_deploy.prototxt.txt \--model MobileNetSSD_deploy.caffemodel loading model... starting process... starting video stream... elapsed time: 48.55 approx. FPS: 27.83

Ici, j’ai créé l’illusion de 27 FPS rapides sur le Raspberry Pi alors que le réseau neuronal en arrière-plan est seulement capable de traiter 0.9 FPS.

Comment est-ce possible ?

Le threading et les files d’attente.

C’est un peu avancé, mais si vous lisez le billet de blog original (pour le Raspberry Pi), vous comprendrez le processus. De plus, vous pourrez impressionner vos amis et votre famille.

Ce à quoi il faut faire attention quand on utilise pip pour installer OpenCV

Pour commencer, toutes les distributions Python n’auront pas une version d’OpenCV installable par pip.

Les nouvelles versions de Python et les nouveaux systèmes d’exploitation (sans oublier les anciennes versions qui ont atteint leur fin de vie) peuvent ne pas avoir une version d’OpenCV prête à l’emploi dans le dépôt PyPI car la communauté open source n’a pas encore eu l’occasion de publier une telle version.

Dans ces situations, vous pouvez soit :

  1. Attendre que les binaires pour votre combinaison de Python et de système d’exploitation soient téléchargés.
  2. Ou ce que je vous recommande – compiler à partir des sources (Ubuntu, macOS, RPi).

Deuxièmement, certains lecteurs, y compris des utilisateurs d’Anaconda, ont signalé des problèmes d’utilisation des fonctions de l’interface graphique telles que cv2.imshow et cv2.waitKey .

Dans ces scénarios, OpenCV émettra une erreur en disant qu’il n’a pas été compilé avec le support GTK ou QT.

En résumé :

  • Vous pourrez utiliser toutes les autres fonctions d’OpenCV mais vous ne pourrez utiliser aucune des fonctions GUI, en particulier, celles du module highgui.
  • La solution ici est de compiler à partir des sources (Ubuntu, macOS, RPi).

Troisièmement, je sais que des lecteurs ont signalé des problèmes lors de l’exécution de import cv2 dans leurs terminaux, Jupyter Notebooks ou shells Python – ce n’est pas un problème avec l’installation pip d’OpenCV.

Dans la plupart des situations, mais pas toutes, l’erreur n’est pas liée à votre installation réelle d’OpenCV.

Au contraire, il s’agit plus probablement d’un problème de compréhension d’une certaine combinaison de :

  1. Les commandes qui ont été exécutées et comment les utiliser correctement.
  2. Penser qu’une commande s’est exécutée correctement mais qu’elle a plutôt donné lieu à une erreur.
  3. Ne pas réussir à accéder à votre environnement virtuel Python (si vous en utilisez un).

Vous voudrez revérifier vos commandes, répéter les étapes et examiner de près votre sortie avant de signaler un problème d’importation des cv2 bindings.

Enfin, la version d’OpenCV qui sera installée via pip n’inclut pas les algorithmes  » non libres  » tels que SIFT, SURF et autres algorithmes brevetés. Si vous n’avez pas besoin d’utiliser des algorithmes brevetés, c’est parfait. Sinon, je vous recommande de compiler OpenCV à partir des sources via l’un de mes tutoriels d’installation pour votre système.

Résumé

Dans le tutoriel d’aujourd’hui, vous avez appris à installer OpenCV avec pip sur votre système d’exploitation.

Spécifiquement, nous avons couvert comment installer OpenCV via pip sur Ubuntu, macOS et Raspberry Pi.

Bien que l’installation d’OpenCV via pip puisse être la méthode la plus facile pour commencer, gardez à l’esprit que vous pouvez rencontrer d’autres problèmes.

Si vous vous retrouvez à rencontrer des erreurs ou des problèmes en utilisant votre installation d’OpenCV via pip, assurez-vous de vous référer à la section  » Ce à quoi il faut faire attention lors de l’utilisation de pip pour installer OpenCV  » de cet article de blog.

J’espère que vous avez apprécié le tutoriel d’aujourd’hui !

Pour être averti lorsque de futurs articles de blog sont publiés ici sur le blog PyImageSearch, assurez-vous de saisir votre adresse e-mail dans le formulaire ci-dessous.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *