Afin d’éviter une installation d’OpenCV qui peut être longue et fastidieuse, nous allons aujourd’hui utiliser docker avec une image basée sur Debian (Jessie) avec OpenCV 3.2.0 et Python 3.4.2 .

Pour ceux qui ne connaissent pas Docker, je vous invite à regarder cette vidéo.

Dans cet article, nous verrons:

  • Comment récupérer l’image.
  •  Comment paramétrer X11 sous MacOS pour utiliser les interfaces graphiques.
  • Comment monter un système de fichiers entre le conteneur et le système hôte.

 

Prérequis:

 

Étape 1: récupérer une image:

Pour commencer, nous allons récupérer l’image en question.  C’est une image que j’ai créée afin de vous faciliter la tâche 🙂

Les étapes de la création de cette image sont expliquées dans mon précédent article ( Tutoriel: installation d’OpenCV 3.2.0 sur Debian 8 (Jessie) ).

docker pull pymotion/opencv

 

Étape 2: Préparer l’environnement graphique sous MacOS

Nous devons dans un premier temps installer xquartz en utilisant Homebrew. Homebrew est un gestionnaire de paquets sous MacOS (Similaire à apt ou aptitude).

Si vous n’avez pas Homebrew d’installer sur votre machine, exécuter la commande :

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

Une fois Homebrew prêt à l’emploi, nous installons xquartz.

brew cask install xquartz

et nous démarrons xquartz.

open -a Xquartz

Dans les préférences d’Xquartz, allez dans sécurité puis cocher la case « autoriser les connexions de clients réseau »

Redémarrer le serveur xquartz pour appliquer les changements.

Nous allons ensuite autoriser les services à se connecter au serveur X :

xhost @IP

où @IP correspond à l’adresse ip de votre machine.

 

Étape 3: lancement du conteneur pymotion/opencv

J’ai créé sur mon bureau un dossier docker qui me permet de faire la passerelle entre mon ordinateur et le conteneur que nous utilisons.

Pour démarrer le conteneur, il suffit de taper la commande suivante, en faisant attention de modifier votre adresse IP, ainsi que le répertoire que vous voulez lier.

Docker run -t -i \
      -v ~\Desktop/docker:/source \
      -v /tmp/.X11-unix:/tmp/.X11-unix \
      -e DISPLAY=@IP:0 \
      pymotion/opencv

Un peu d’explications:

La ligne 1 permet de démarrer le conteneur. l’option -t (–tty) permet d’attacher la console à notre console actuelle. l’option -i (–interactive) permet de transmettre tout ce que vous tapez au Bash du container.

La ligne 2 permet d’associer un dossier de notre machine hôte à un dossier du conteneur de la manière suivante: chemin_dossier_hôte:chemin_dossier_destination. Ceci permet de manière simple de transférer des données vers votre conteneur.

les lignes 3-4 servent à mettre en place l’affichage de vos interfaces graphiques en dehors du conteneur.

Enfin, on spécifie dans la ligne 5 le conteneur à lancer.


0 commentaire

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.