Dans cet article nous allons voir comment installer OpenCV 3.4.0 sur Raspberry PI zero ou zero W  pour une utilisation avec python 3.5.3.

Comme nous avons déjà vu comment procéder à l‘installation sur Raspberry PI 3, l’article se concentrera plus sur les étapes de l’installation sur Pi Zero, que sur le pourquoi des commandes que nous allons entrer.

Installer OpenCV3 sur RaspberryPi Zero

Si vous êtes là, je pense que vous avez déjà entendu parlé du RaspberryPi Zero. Pour rappel, il s’agit d’un nano-ordinateur disposant d’un processeur ARM11 de 1Ghz, accompagné par 512Mb de Ram. Et, le plus intéressant, vous pouvez le trouver entre 5 et 20€ !

Bien que sa puissance ne permette pas de faire des traitements avancés de l’image ou du deep learning, il s’avère être un dispositif intéressant pour débuter ou pour de petits projets.

Étape 0: Configuration du PI

Je ne rentrerais pas dans les détails de l’installation de l’image Raspbian sur une carte micro SD, de nombreux tutoriels sont disponibles sur internet. Nous allons uniquement voir lors de cette étape comment activer le SSH et configurer le réseau wifi dans le cas où, comme moi, vous démarrez votre Raspberry PI zero w sans écran.

Pour activer le SSH, rien de plus simple, il suffit de placer un fichier nommé « ssh » à la racine de la carte micro-sd.

Afin de configurer la connexion Wi-fi lors du démarrage de la Pi, nous allons créer un fichier wpa_supplicant.conf, situé à la racine de la partition boot de la carte.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
  ssid="Nom_Reseau"
  psk="Password"
  key_mgmt=WPA-PSK
  scan_ssid=1
}

avec bien entendu le nom de votre réseau wifi dans SSID et votre mot de passe dans psk.

Voilà vous pouvez démarrer votre pi et vous connecter en SSH.

Étape 1: Étendre la partition

La première étape de notre installation est d’étendre la partition afin d’utiliser tout l’espace libre. Pour cela, tapez la commande suivante:

sudo raspi-config

Vous obtiendrez l’écran suivant.

raspberry pi zero - raspi-config

allez dans le menu « 7 advanced Options ».Raspberry pi Zero - Expand Filesystem

Dans le menu, allez sur l’option “Expand Filesystem” et appuyez sur entrer et validez.

Enfin redémarrez votre Raspberry:

sudo reboot

Étape 2: Installation des dépendances

Notre première étape pour l’installation des dépendances est de vérifier que nous sommes bien à jour dans les paquets déjà installé:

sudo apt-get update
sudo apt-get upgrade

Ensuite, nous allons installer des outils nécessaires pour la compilation d’OpenCV:

sudo apt-get install build-essential cmake git pkg-config

Afin de pouvoir charger différents formats d’image dans OpenCV (JPEG, PNG, TIFF, …),, ainsi que différents formats vidéo, nous installons les paquets suivants:

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

Nous passons ensuite à l’installation des paquets GTK nécessaire pout l’utilisation des fonctions graphiques ( Affichage des images, sélection de ROI):

sudo apt-get install libgtk2.0-dev libcanberra-gtk-module

Et ensuite nous installons quelques dernières librairies utilisées pour l’optimisation de calculs:

sudo apt-get install libatlas-base-dev gfortran

Suivi de peu par le gestionnaire de paquet pip:

sudo apt-get install python3-pip

Et enfin Numpy, pour la manipulation de matrice:

pip3 install numpy

Nous avons donc installé toutes nos dépendances, nous pouvons maintenant passer à OpenCV

Étape 3: Installation d’OpenCV

Commençons par récupérer la branche 3.4.0 d’OpenCV depuis Github:

wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip
unzip opencv.zip
rm opencv.zip

Nous allons également récupérer la branche 3.4.0 d’OpenCV-Contrib.

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
unzip opencv_contrib.zip
rm opencv_contrib.zip

Nous pouvons dès maintenant préparer notre build en utilisant Cmake

cd ~/opencv-3.4.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
 -D CMAKE_INSTALL_PREFIX=/usr/local \
 -D INSTALL_C_EXAMPLES=OFF \
 -D INSTALL_PYTHON_EXAMPLES=ON \
 -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.0/modules \
 -D BUILD_EXAMPLES=ON ..

L’installation est longue ! Comptez 9-10h, de quoi passer une bonne nuit.

Si tout se passe bien, lancez l’installation d’OpenCV:

make install
ldconfig

et passez directement à l’étape 4.

Sinon, vous pouvez suivre ces quelques instructions.

Il se peut que la compilation reste bloquée, et donc échoue,  à cause de la faible quantité de ram du Pi zero. Pour passer ce blocage, vous pouvez augmenter la taille du swap qui est de 100 Mo par défaut. Attention, augmenter la taille du swap est un très bon moyen pour réduire la durée de vie de votre carte SD. Prenez en compte avant d’effectuer les étapes suivantes !

Pour augmenter la taille allouée, il suffit de modifier le fichier /etc/dphys-swapfile

sudo nano /etc/dphys-swapfile

et de modifier la ligne CONF_SWAPSIZE. Pour ma part je l’ai monté à 1024, mais je pense que la moitié devrait suffire.

installation raspberry pi zero w augmenter la taille du swap

Enfin vous devez stopper et relancer le service qui s’occupe de l’espace swap:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Il ne reste plus qu’à relancer la compilation

make clean
make

Normalement, cela devrait se passer sans problème. Nous pouvons donc installer OpenCV:

make install
ldconfig

Étape 4: Test de l’installation d’OpenCV 3.4.0 et de Python 3.5.3

Félicitation, vous venez d’installer OpenCV!

Vérifions juste que nous avons bien tout installé:

python3
>>>import cv2
>>>cv2.__version__
'3.4.0'

Une fois que vous avez vérifié qu’OpenCV était bien installé, vous pouvez supprimez les répertoires opencv et opencv_contrib pour récupérer de la place:

rm -rf opencv-3.4.0 opencv_contrib-3.4.0

[sibwp_form id=3]


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.