Installer OpenCV 4 sur macOS

Dans ce post, je fournirai un script bash pour installer OpenCV-4.1.0 (avec Python 3.6) sur macOS Mojave et High Sierra.

OpenCV 4 est sorti le 20 novembre 2018. Il y a eu beaucoup de corrections de bugs et d'autres changements dans ces versions.

Tout d'abord, nous allons installer Xcode et Homebrew.

À partir de là, nous allons établir des environnements virtuels Python.

Ensuite, nous compilerons OpenCV 4 à partir des sources. Compiler à partir des sources nous permet d’avoir un contrôle total sur la compilation et la construction, ainsi que d’installer la version complète d’OpenCV 4.

Étape 1: Installer Xcode

Tout d'abord, installer Xcode. Ceci est pour installer le compilateur C sur mac et le moyen le plus simple d’installer Xcode est via App Store. Ouvrez le Apple App Store, recherchez l'application Xcode et installez-le. Cela va prendre du temps. Pendant ce temps, vous pouvez faire un café pour continuer.

Installer Xcode

Après Xcode a installé, nous devons accepter un contrat de licence. Lancez un terminal et entrez la commande suivante:

$ sudo xcodebuild -license

Pour accepter la licence, faites défiler vers le bas et l'accepter. Appuyez sur espace pour défiler vers le bas et écrivez “agree” pour accepter.

Xcode Accepter La Licence

Après cela, installer Xcode Command Line Tools en utilisant la commande suivante.

$ sudo xcode-select --install

Installer Xcode Command Line Tools

Étape 2: Installer Homebrew

Pour cette étape, nous allons installer Homebrew, le gestionnaire de paquets de la communauté Mac. Homebrew nous aide à installer des paquets avec juste quelques commandes.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Mettons à jour le Homebrew :

$ brew update

Mettre A Jour Homebrew

Modifions le bash_profile de votre Mac. Ce script est exécuté chaque fois que vous lancez un terminal. J'utilise l'éditeur de texte nano.

$ nano ~/.bash_profile

Ajoutez les lignes suivantes à la fin pour mettre à jour votre path :

# Homebrew
export PATH=/usr/local/bin:$PATH

Enregistrer le profil [control + o].

Homebrew Bash Profile

Et utilisez ensuite la commande source pour charger les modifications dans le fichier correspondant (ou fermez et rouvrez votre terminal).

$ source ~/.bash_profile

Étape 3: Installer les prérequis OpenCV avec Homebrew.

Dans cette section, nous allons nous assurer que Python 3.6 est installé. Nous allons également installer les prérequis pour compiler OpenCV à partir des sources.

Il est très important d’utiliser Python 3.6. Par défaut, High Sierra et Mojave arrivent avec Python 3.7. Mais Python 3.7 n'est pas pris en charge par Keras / TensorFlow (nous utiliserons les deux à l'avenir pour un apprentissage en profondeur).

Installer Python 3.6.5 :

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
$ brew switch python 3.6.5_1

Si vous n'avez reçu aucune erreur, parfait! veuillez continuer ci-dessous.

Info: Vous pouvez obtenir une erreur comme :

Error: python contains a recursive dependency on itself:
python depends on sphinx-doc
sphinx-doc depends on python

Python Depends On Sphinx Doc

Le problème est que sphinx-doc dépend de Python 3.7 et Python 3.6.5 dépend de sphinx-doc, qui dépend de Python 3.7.

Corrigeons le problème de dépendance circulaire.

Tout d'abord, installer Python 3.7 (que nous déclasser plus tard):

$ brew install python3

Nous devons maintenant supprimer la dépendance circulaire.
Modifiez Homebrew formulae pour sphinx-doc, car c’est là que réside le problème :

$ nano /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/sphinx-doc.rb

Maintenant, recherchez et supprimez la dépendance Python en plaçant un # devant celle-ci pour la commenter :

Supprimez La Dependance Python

Une fois que vous avez ajouté le # pour commenter cette ligne, continuez et enregistrez + sortie.

À partir de là, il suffit de réinstaller sphinx-doc :

$ brew reinstall sphinx-doc

Installer Python 3.6.5. La première étape consiste à associer Python:

$ brew unlink python

Et à partir de là, nous pouvons installer Python 3.6:

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Vous devriez vérifier quel Python est utilisé :

$ which python3
/usr/local/bin/python3
$ python3 --version
Python 3.6.5

Python3 Version

Inspectez la sortie de la première commande, que vous voyez local/ entre /usr/ et bin/python3.

Nous utilisons Python 3.6.5!

Vérifier que nous utilisons le bon Python :

$ which python3

Si vous voyez /usr/local/bin/python3, vous utilisez le Python Homebrew (ce qui est bien). Si vous voyez /usr/bin/python3, vous utilisez le système Python et vous devez corriger votre bash profil et / ou le source.

Installer d'autres prérequis OpenCV

Ces packages sont liés aux outils utilisés pour construire et compiler, aux bibliothèques utilisées pour la manipulation d'images ou aux bibliothèques d'optimisation.

Pour installer ces conditions préalables pour OpenCV sur macOS, exécutez les commandes suivantes:

$ brew install cmake
$ brew install pkg-config
$ brew install jpeg
$ brew install libpng
$ brew install libtiff
$ brew install openexr
$ brew install eigen tbb
$ brew install wget

Étape 4: Installer les dépendances Python pour OpenCV 4

Dans cette étape, nous allons installer les dépendances Python pour OpenCV 4.

Grâce à l'outil wget que nous avons installé, téléchargeons et installons pip:

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

Wget : un gestionnaire de paquets Python

Nous avons installé pip, nous pouvons installer virtualenv et virtualenvwrapper, deux outils de gestion d’environnements virtuels.

Les environnements virtuels Python sont une pratique recommandée pour le développement Python et je vous encourage vivement à en tirer pleinement parti.

Installons virtualenv et virtualenvwrapper

$ sudo pip3 install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip

À partir de là, nous devons rééditer notre bash_profile pour que ces deux outils fonctionnent correctement.

$ nano ~/.bash_profile

Ajoutez ces lignes à la fin du fichier :

# virtualenv et virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

Virtualenv Et Virtualenvwrapper

Source le fichier :

$ source ~/.bash_profile

L'outil virtualenvwrapper nous fournit un certain nombre de commandes de terminal. Vous pouvez lire la documentation ici.

Profitons de la première commande pour créer un environnement virtuel Python pour OpenCV:

$ mkvirtualenv cv -p python3

Notez que cv est le nom de notre environnement et que je crée un environnement Python 3.

Rappel: Notez dans le résultat que Python 3.6 est également utilisé pour l’environnement. Vous pouvez nommer votre environnement différemment si vous le souhaitez. vous pouvez créer différents environnements avec des noms différents pour faciliter votre développement.

L'environnement est déjà actif, juste au cas où, nous allons activer l’environnement.

$ workon cv

Workon Opencv

Installons NumPy pendant que nous sommes dans l’environnement.

$ pip install numpy

Étape 5: Compilez OpenCV 4 pour macOS

Compiler à partir des sources vous donne le plus de contrôle sur votre version, par opposition aux gestionnaires de paquets tels que pip, Homebrew et Anaconda.

Téléchargeons OpenCV.

Tout d’abord, accédez à notre dossier d’accueil et téléchargez opencv et opencv_contrib. Le repository contrib contient des modules et des fonctions supplémentaires que nous utiliserons fréquemment à l'avenir.

télécharger l'opencv et opencv_contrib:

$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.1.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.1.0.zip

À partir de là, décompressez les archives

$ unzip opencv.zip
$ unzip opencv_contrib.zip

Renommer les dossiers pour travailler facilement sur eux.

$ mv opencv-4.1.0 opencv
$ mv opencv_contrib-4.1.0 opencv_contrib

Maintenant que opencv et opencv_contrib sont téléchargés et prêts à fonctionner, configurons notre environnement.

Compiler OpenCV à partir des sources

Maintenant que opencv et opencv_contrib sont téléchargés et prêts à fonctionner, utilisons CMake pour configurer notre compilation et Make pour effectuer la compilation.

Revenez à votre repository OpenCV et créez + entrez un répertoire build:

$ workon cv
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D PYTHON3_LIBRARY=`python -c 'import subprocess ; import sys ; s = subprocess.check_output("python-config --configdir", shell=True).decode("utf-8").strip() ; (M, m) = sys.version_info[:2] ; print("{}/libpython{}.{}.dylib".format(s, M, m))'` \
-D PYTHON3_INCLUDE_DIR=`python -c 'import distutils.sysconfig as s; print(s.get_python_inc())'` \
-D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python \
-D BUILD_opencv_python2=OFF \ -D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON ..

Rappel: OPENCV_ENABLE_NONFREE=ON Ceci est requis pour OpenCV 4 si vous souhaitez accéder à des algorithmes brevetés à des fins pédagogiques.

Cette partie est très importante. Si vous avez une erreur, écrivez-le dans les commentaires afin que nous puissions en discuter.

Une fois terminé, vérifiez les informations suivantes sur votre terminal. 

Opencv Cmake

Ce que vous recherchez, c’est de vous assurer que votre interpréteur Python 3 et NumPy dans l’environnement virtuel seront tous les deux utilisés.

Si vous ne le voyez pas, vous avez probablement exécuté CMake sans être «dans» l’environnement virtuel cv. Si c'est le cas, pas de problème - supprimez simplement le dossier build, activez l'environnement virtuel avec la commande workon, puis réexécutez CMake.

Nous sommes prêts à commencer, commencez la compilation via

$ make -j4

Remarque: L'argument -j4 est facultatif et indiquera à make de tirer parti de 4 cœurs de processeur.

Lorsque make est terminé, vous devriez voir ceci:

Installer Opencv4

installer OpenCV 4

$ sudo make install

Étape 6: Sym-link OpenCV 4 sur macOS vers votre site-packages d'environnement virtuel

Créons maintenant ce que l’on appelle un lien symbolique. Nous avons besoin d'un lien entre nos site-packages environnement virtuel cv et nos site-packages système où OpenCV est installé.

$ workon cv
$ python --version
Python 3.6.5

Vérifiez votre version de Python et modifiez les lignes ci-dessous avec votre propre version de Python.

$ ls /usr/local/lib/python3.6/site-packages/cv2/python-3.6/
cv2.cpython-36m-darwin.so

Renommons-les simplement en cv2.so:

$ cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6/
$ sudo mv cv2.cpython-36m-darwin.so cv2.so

Notre dernière étape consiste à sym-link nos liaisons OpenCV cv2.so à notre environnement virtuel cv:

$ cd ~/.virtualenvs/cv/lib/python3.6/site-packages/
$ ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6/cv2.so cv2.so

au-dessus des marches, soyez prudent avec les chemins. Si vous copiez exactement les mêmes lignes, vous risquez de recevoir des erreurs. Au lieu de cela, vérifiez vos chemins et assurez-vous que tout est correct.

Étape 7: Testez votre installation OpenCV 4

Exécuter un shell Python dans l'environnement virtuel et vérifier qu'il importe sans erreur et que la version correspond.

$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'4.1.0'
>>>

 

Si vous ne voyez aucune erreur et qu'OpenCV 4 est installé, vous êtes prêt à partir!

Si vous souhaitez créer des projets supplémentaires avec OpenCV 4, continuez simplement à suivre mon blog!

Résumé

Aujourd'hui, nous avons installé OpenCV4 avec des liaisons Python sur votre machine macOS.