OpenCV Sur Raspberry Pi : Guide de démarrage


OpenCV est souvent utilisé pour promouvoir les capacités des Raspberry Pi. Même si le Raspberry Pi est un matériel bon marché, le montrer avec une caméra, utilisant l’intelligence artificielle et l’électronique est assez impressionnant. Mais avant de faire tout cela, vous devez le configurer correctement, ce qui n’est pas si simple pour les débutants. C’est pourquoi j’ai écrit ce tutoriel, pour vous aider à démarrer avec OpenCV.

La bibliothèque OpenCV est maintenant disponible dans le dépôt par défaut sur Raspberry Pi OS et la plupart des distributions Linux. Pour Python, cela peut être installé avec apt, en utilisant la commande suivante : sudo apt install python3-opencv.

Commençons par une brève introduction à OpenCV et ses principales fonctionnalités, puis je vous montrerai comment l’installer sur votre Raspberry Pi et créer vos premiers scripts.

Au passage, si vous vous sentez dépassé dès que Python est nécessaire pour un projet, je vous conseille de télécharger mon e-book « Maîtrisez Python on Raspberry Pi« . Il vous guidera pas à pas pour apprendre les concepts essentiels (et uniquement ceux-là) pour réaliser n’importe quel projet à l’avenir. Un Raspberry Pi sans Python, c’est comme une voiture sans moteur, vous ratez le plus intéressant ;-).
Profitez de 10 % de réduction en le téléchargeant dès aujourd’hui !

Qu’est-ce qu’OpenCV ?

Téléchargez mon glossaire !
Un peu perdu avec toutes ces abbréviations et nouveaux mots ? Téléchargez le glossaire complet au format PDF :-)

OpenCV est une bibliothèque open-source, compatible avec des langages comme Python ou C++, qui vous permet de créer des projets de vision par ordinateur et d’apprentissage automatique.

À propos, CV est l’abréviation de « Computer Vision » (vision par ordinateur). En bref, il vous fournira des fonctions intéressantes pour manipuler des images et des vidéos. Si vous lisez ceci, vous avez probablement déjà vu quelques projets sympas l’utilisant.

Les exemples typiques d’utilisation d’OpenCV sont la manipulation d’images (je vous donnerai un code basique pour le faire plus tard), la détection d’objets (reconnaître un type d’objet spécifique, comme un visage ou un animal domestique), ou le suivi d’objets (un robot peut vous suivre, par exemple).

Un projet OpenCV classique utilisera d’autres fonctionnalités du Raspberry Pi, comme le module caméra et les broches GPIO.

Vous pouvez, par exemple, demander à la caméra de détecter le moment où votre voiture se présente devant le garage (détection d’objet), de trouver la plaque d’immatriculation et de lire le numéro qui y figure (reconnaissance de texte). En cas de correspondance, vous pouvez envoyer un signal aux broches GPIO (ou à un dispositif connecté) pour ouvrir la porte du garage.

Bon, ce n’est pas exactement le projet le plus facile pour commencer avec OpenCV, mais cela vous donne une idée des possibilités. Tout d’abord, voyons comment installer le logiciel sur votre système.

Maîtrisez Raspberry Pi en 30 jours
10% de remise aujourd'hui !
Téléchargez le livre numérique.
Découvrez les secrets du Raspberry Pi à travers un challenge de 30 jours.

Installer OpenCV sur Raspberry Pi

Installer Raspberry Pi OS

La manière la plus simple d’utiliser OpenCV sur Raspberry Pi est d’utiliser le système d’exploitation officiel : Raspberry Pi OS. Il est livré avec Python préinstallé, il vous suffit donc d’ajouter la bibliothèque OpenCV avant de créer votre premier script.

Si vous avez besoin d’aide pour installer Raspberry Pi OS, vous pouvez cliquer sur le lien pour lire mon tutoriel où j’explique tout, étape par étape. Une version de bureau est probablement le meilleur choix, car nous la testerons avec des images et le module caméra, mais choisissez la version qui vous convient le mieux.

Si vous l’installez à partir de zéro, assurez-vous de suivre les étapes suivantes avant d’aller plus loin :

  • Se connecter à Internet (via Ethernet ou Wi-Fi).
  • Faites les mises à jour du système :
    sudo apt update
    sudo apt upgrade
  • Activer SSH et/ou VNC est probablement une bonne idée si vous souhaitez suivre ce tutoriel directement depuis votre ordinateur.

Une fois prêt, vous pouvez passer à l’installation d’OpenCV.

Installer OpenCV

L’installation d’OpenCV sur Raspberry Pi OS peut se faire directement avec apt. Ouvrez un terminal et tapez cette commande :
sudo apt install python3-opencv

J’ai vu de nombreux tutoriels où ils font l’installation à partir du code source. Pourtant, c’est assez compliqué et vous n’avez plus besoin de faire tout ça pour installer OpenCV. Cette commande installera toutes les dépendances, et il fonctionnera directement après cela.

Je vais utiliser Python pour ce tutoriel, car c’est la manière la plus simple de commencer (tout est prêt pour Python sur Raspberry Pi OS), mais OpenCV peut aussi être utilisé avec d’autres langages. Par exemple, installez plutôt libopencv-dev pour l’utiliser avec C++ (et oui, il est aussi possible de programmer en C++ sur Raspberry Pi).

Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !

Tester OpenCV avec Python

Une fois OpenCV installé sur votre Raspberry Pi, faites un test rapide pour vous assurer qu’il fonctionne comme prévu. Créez un nouveau fichier et copiez-y les lignes suivantes :
import cv2
print(cv2.version)

Lorsque vous exécutez ce script, il devrait afficher la version actuelle d’OpenCV installée sur votre système :

Si vous rencontrez une erreur à ce stade, vérifiez à nouveau les étapes précédentes, car vous avez probablement manqué quelque chose.

J’utilise Thonny parce qu’il est préinstallé sur Raspberry Pi OS. Cependant, vous pouvez faire le même test dans un terminal, via SSH, ou sur une version Lite de Raspberry Pi OS si vous le souhaitez. Créez le fichier avec Nano et exécutez-le avec :
python3 <votrescript.py>

Si vous obtenez le numéro de version sur votre écran, vous êtes prêt à commencer à utiliser OpenCV. Le but principal de ce tutoriel était de vous permettre d’utiliser OpenCV dans un script Python, mais je vais vous montrer 3 exemples pour aller un peu plus loin.

Initiation au Raspberry Pi
10% de remise aujourd'hui !
Visionnez ma formation vidéo pour démarrer du bon pied.
Découvrez le Raspberry Pi, le matériel, ses logiciels particuliers et créez vos 5 premiers projets avec moi.

3 exemples pour démarrer avec OpenCV sur Raspberry Pi

Premier script : manipuler des images avec OpenCV

La plupart des projets utilisant OpenCV sont basés sur la manipulation d’images. Cela peut être des images stockées sur votre ordinateur ou un flux en direct d’une caméra. OpenCV est très utile pour les charger dans un script, modifier quelque chose et les afficher ou les analyser ensuite.

Si vous êtes totalement novice en Python, je vous recommande vivement de lire d’abord cet article, où j’explique les bases de Python sur Raspberry Pi. Je pense également que la lecture de mon livre « Maîtrisez Python sur Raspberry Pi » est presque obligatoire avant d’essayer tout projet avec OpenCV si vous ne voulez pas être perdu trop rapidement.

Quoi qu’il en soit, si vous avez un minimum d’expérience avec Python, voici quelques méthodes que vous pouvez essayer pour vous faire une idée de ce qu’OpenCV peut faire.

Le premier test que vous pouvez faire est de charger une image enregistrée sur votre Raspberry Pi (cela fonctionne avec les fichiers JPG et PNG).

Vous pouvez le faire avec :
cv2.imread(<filename>)
Une fois l’image chargée, vous pouvez utiliser diverses fonctions incluses dans la bibliothèque OpenCV pour obtenir plus de données sur le fichier, comme ses dimensions par exemple :

Vous pouvez afficher l’image sur l’écran, en utilisant :
cv2.imshow(<window title>,<image>)
Quelque chose comme :

Les deux lignes suivantes sont utilisées pour garder la fenêtre ouverte jusqu’à ce que vous appuyiez sur une touche. Si vous appuyez sur « Espace » par exemple, cela fermera l’image et le script continuera.
cv2.waitKey(0)
cv2.destroyAllWindows()

Une autre fonction utile est la méthode de « redimensionnement ».
Vous pouvez soit redimensionner l’image à une taille spécifique (comme 200 x 200 pixels dans cet exemple) :
cv2.resize(image, (x, y))

Ou bien utilisez un coefficient, comme 50% de la taille originale dans cet exemple :
cv2.resize(image, (0, 0), fx=X, fy=Y)

L’utilisation de 0.5 signifie que la nouvelle image aura une taille égale à 50 % de la taille originale. Vous pouvez utiliser un coefficient différent pour la largeur (X) et la hauteur (Y).

Enfin, vous pouvez stocker l’image modifiée quelque part sur votre Raspberry Pi, en utilisant la fonction « imwrite », comme ceci :
cv2.imwrite(<filename>, image)

Assurez-vous simplement d’utiliser la même extension de fichier et d’avoir accès à l’emplacement spécifié.

Ces fonctions sont une bonne introduction pour s’assurer qu’OpenCV fonctionne correctement sur votre système, et s’habituer aux fonctions que vous utiliserez dans la plupart des projets.

Mais OpenCV peut ensuite être utilisé avec l’intelligence artificielle (machine learning notamment), le module caméra, et les broches GPIO pour créer des projets Python impressionnants. Présentons deux d’entre eux.

Reconnaissance des visages : utiliser la caméra du Raspberry Pi

En bref, l’idée pour ce genre de projet est de vérifier constamment le flux du module caméra sur le Raspberry Pi, et de faire quelque chose lorsqu’un visage est détecté. Une fois entraîné correctement, OpenCV peut non seulement détecter un visage sur la caméra mais aussi reconnaître qui c’est.

En gros, vous prenez 10 à 20 photos de votre visage avec la caméra sous différents angles, puis vous entraînez OpenCV pour qu’il puisse vous reconnaître dans un flux en direct. Cela rend possible de nombreux projets intéressants, dans lesquels vous pouvez coder votre Raspberry Pi pour qu’il fasse quelque chose lorsque vous vous présentez.

C’est l’un des exemples donnés avec le kit robot PiCar-X testé récemment (en anglais). Vous pouvez trouver le script qu’ils utilisent pour faire cela dans la documentation de SunFounder. Il dessine un rectangle autour du visage détecté, mais vous pouvez faire n’importe quoi à partir de là.

Le meilleur tutoriel que j’ai trouvé pour aller un peu plus loin sur un Raspberry Pi est celui de Tim sur Core Electronics. Vous pouvez suivre les étapes ou télécharger directement le code du projet complet (afin de pouvoir tester même si tout n’est pas clair pour vous).

L’idée de ce projet simple est de démarrer un servomoteur lorsque son visage est détecté, mais cela peut être n’importe quoi (jouer de la musique ? allumer les lumières dans votre maison ? Il n’y a pas de limite)

Avertissement : La plupart des scripts Python utilisant le module caméra ne fonctionneront pas sur la dernière version de Raspberry Pi OS. Il est probablement préférable d’utiliser Raspberry Pi OS Buster (Legacy) pour éviter ces problèmes. Consultez cet article pour plus de détails.

Détection/identification d’objets

Un autre projet amusant que vous pouvez essayer est la détection ou le suivi d’objets. C’est en gros la même idée, mais au lieu de détecter un visage, vous essayez d’identifier les objets sur une image (ou un flux de caméra).

Si votre Raspberry Pi est monté sur un kit robot, vous pouvez même le programmer pour qu’il suive cet objet (c’est possible avec le kit Robot Dog que j’ai également testé sur ce site). Vous avez une balle rouge que vous pouvez lancer, et le robot la suivra.

Pour commencer, je trouve que ce tutoriel est assez bon pour vous donner une idée des possibilités. Comme pour le projet précédent, vous pouvez soit le suivre pas à pas pour essayer de tout comprendre, soit exécuter le script complet pour le voir en action.

J’ai beaucoup d’autres projets Python listés ici si vous voulez expérimenter des choses amusantes avec votre Raspberry Pi. Et faites-moi savoir si vous avez besoin de plus d’aide avec OpenCV, je peux écrire des tutoriels étape par étape si vous êtes intéressé.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Maîtrisez Python sur Raspberry Pi
10% de remise aujourd'hui !
Téléchargez le livre numérique.
Envie d'aller un peu plus loin que faire clignoter une LED ? Vous avez besoin de ce livre pour passer à des projets plus avancés.

FAQ : OpenCV sur Raspberry Pi

Comment vérifier si OpenCV est déjà installé sur Raspberry Pi ?

Pour vérifier si OpenCV est installé, allez dans Add/Remove software et recherchez « OpenCV ». Si certains paquets sont installés, il y aura une case cochée sur la gauche. Cette commande peut aussi être utilisée pour lister les paquets OpenCV installés :
sudo dpkg -l | grep "python-opencv\|python3-opencv"

Puis-je utiliser OpenCV avec C++ ?

Les développeurs d’OpenCV le créent avec C++, donc OpenCV peut être utilisé avec la plupart des langages, y compris C++, Java et Python. Sur un Raspberry Pi (avec toute distribution de type Debian), OpenCV peut être installé pour C++ avec :
sudo apt install libopencv-dev.

Vous pouvez alors démarrer votre script avec :
#include <opencv2/opencv.hpp>
Pour utiliser OpenCV dans un script C++.

Lisez cet article sur mon site Web si vous avez besoin d’aide pour démarrer avec C++ sur Raspberry Pi.

Combien de mémoire utilise OpenCV ?

1 Go de mémoire devrait être suffisant pour la plupart des projets utilisant OpenCV sur un Raspberry Pi.

Évidemment, la quantité de mémoire dont vous aurez besoin dépendra de ce que fait votre programme (l’analyse d’un flux vidéo de haute qualité en temps réel ne nécessite pas la même quantité que le redimensionnement d’une petite image), mais n’importe quel modèle de Raspberry Pi devrait être suffisant pour la plupart des projets.

Il peut également varier en fonction de la distribution que vous utilisez et d’autres applications.

Ressources supplémentaires pour votre Raspberry Pi

Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant

Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici

Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets ou je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant

Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi en publiant des guides détaillés et des tutoriels rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec une solide expérience dans le développement web.

Recent Posts

Promo : Maîtrisez votre Raspberry Pi