OpenCV est une bibliothèque open source (et libre) de “computer vision”. Autrement dit, OpenCV apporte à un ordinateur diverses fonctionnalités permettant de traiter des données vidéo provenant d’une webcam, d’images fixes ou toute autre source, afin de les analyser et de les traiter.  On pourra par exemple faire toutes sortes de traitements classiques d’image (saturation, rotation etc), mais également accéder à des fonctionnalités plus avancées telles que la détection de mouvement, ou encore le repérage d’un visage au sein d’un scène. C’est justement cette dernière fonctionnalité qui nous intéressera aujourd’hui. Nous verrons donc comment installer OpenCV, puis compiler et exécuter un programme exemple de détection de visage.

La première étape est d’installer OpenCV (en version développement, pour avoir les headers). Cette opération est loin d’etre triviale, mais voici un bon tutoriel : installer OpenCV et ses dépendances. Ce guide est complet et détaillé, et toutes les opérations peuvent être effectuées en ligne de commande. Il vous suffit donc d’un accès à un terminal sur la machine cible, et la possibilité d’exécuter des commandes en root. J’essaierai d’intégrer ultérieurement une traduction de ce tutoriel ici.

Si tout se passe bien, dans votre répertoire ~/src/OpenCV/samples/c/ , vous trouverez une série d’exemples de codes sources. Pour les compiler, un script est fourni dans ce même répertoire. Il suffit donc de l’executer en faisant sh build_all.sh. Suite à la compilation, il suffit alors d’exécuter le programme de détection de visage : ./facedetect

Si le programme est lent, vous pouvez ajouter l’option “–scale=X”, avec X supérieur à 1. Plus la valeur de X sera élevée, plus le programme sera rapide, mais moins il sera précis. Plus de détails sur ce sujet sur ce lien : http://stackoverflow.com/questions/3763832/slow-face-detection-on-opencv .

Enfin, si vous disposez de multiples webcams branchées sur la machine utilisée, vous pouvez sélectionner celle qui sera utilisée en tapant un nombre juste après le nom, 0 étant la première webcam branchée. Il est également possible de combiner les deux :

./facedetect 1 –scale=2

Cette commande exécutera la détection sur la seconde caméra (1) et s’exécutera plus rapidement grace à l’option scale.

On peut ainsi effectuer la détection sur de multiples caméras en même temps en mettant un numéro de caméra différent pour chaque commande.

Pour quitter le programme, appuyez sur une touche du clavier en ayant la fenêtre en avant plan.

Il est également possible de compiler  des programmes quelconques utilisant OpenCV sans utiliser de makefile. Pour ceci il faudra indiquer ou se trouve la librairie. On pourrait le faire à la main, mais il est possible de le faire automatiquement avec pkg-config en C++ ou en C :

g++ `pkg-config opencv –cflags` my_code.cpp  -o my_code `pkg-config opencv –libs`
gcc `pkg-config opencv –cflags` my_code.cpp  -o my_code `pkg-config opencv –libs`

Réseaux sociaux