Découvrez la préface du hors-série spécial Vision assistée par ordinateur !

L’automobile est un secteur qui est en pleine évolution voire révolution et qui intègre de plus en plus de fonctions d’assistance jusqu’à ce que les voitures soient elles même en passe de devenir complètement autonomes. Nombre des fonctions employées utilisent la vision par ordinateur : caméra de recul, détection de dépassement de ligne, etc. Mais le secteur automobile n’est pas le seul domaine d’application où la vision artificielle est employée. Il ne passe pas un jour où nous ne voyons pas une annonce marketing autour des smartphones promouvant telle ou telle soi-disant fonction innovante comme la reconnaissance faciale, la lecture d’émotions ou alors la transformation de votre visage en avatar.

Certes, l’évolution technologique de ces dernières années permet aujourd’hui nombre d’applications qui étaient il y a peu réservées à des expériences de laboratoire. La réalité virtuelle et la réalité augmentée en sont deux beaux exemples. Cependant, le traitement d’images et de flux vidéos sur lequel sont basées ces fonctions est encore considéré comme réservé à une élite aux compétences mathématiques pointues ou à des utilisateurs expérimentés de logiciels spécifiques tels que Photoshop. Les logiciels libres ont participé au changement de mentalité et continuent à faire bouger les lignes avec par exemple The GIMP, Krita, Blender, etc. qui n’ont rien à envier aux logiciels propriétaires. Pour preuve, nombre d’entre eux sont de plus en plus utilisés par les grosses productions hollywoodiennes comme Pixar, Dreamworks ou autres qui ont elles-mêmes contribué au développement de logiciels libres avec OpenSubdiv [1].

Dans ce guide, vous allez découvrir OpenCV qui est un ensemble de librairies sous licence BSD dédiées à la vision par ordinateur et par conséquent au traitement d’images et de flux vidéos. Ces librairies intègrent également des fonctions de deep learning qui ne seront pas abordées dans ce guide. Pour ceux qui souhaitent découvrir cet autre sujet, je vous invite à lire le hors-série numéro 94 sur le machine learning [2]. De plus, pour utiliser OpenCV, il n’est pas nécessaire d’être un expert en mathématiques, bien qu’il soit évident que des connaissances de base soient un avantage comme vous le constaterez en parcourant les différents sujets que nous allons aborder.

Ce guide est construit autour de quatre thèmes progressifs :

– « Débutez » : dans ce premier chapitre, vous allez découvrir et apprendre à mettre en place les fonctions principales et essentielles à tout traitement d’images et de flux vidéos avec OpenCV, telles que le filtrage, la détection de contours, les différents espaces colorimétriques, etc.

– « Reconnaissez » : dans cette partie, vous mettrez en application les bases apprises précédemment afin de reconnaître les expressions sur un visage.

– « Détectez » : vous allez dans cette partie apprendre à regarder une photo sous un autre angle c’est-à-dire utiliser les différentes nuances de gris pour construire un relief et ainsi dénombrer des motifs présents dans la photo : ici les fleurs d’un bouquet ou les bonbons d’une coupelle d’anniversaire. Vous verrez également comment créer un détecteur personnalisé d’objets.

– « Allez plus loin » : pour finir, plusieurs exemples d’utilisation d’actualité telles que la réalité augmentée, la mise en place de vision stéréoscopique basée sur deux Raspberry Pi et le contrôle d’application par le regard.

Pour toute nouvelle application ou idée que vous souhaitez mettre en œuvre, ne vous arrêtez pas à la perception du monde telle que vous l’avez avec vos yeux, mais posez-vous la question de ce que vous recherchez réellement : détecter un mouvement, une couleur, une variation, un objet spécifique…?

Bonne lecture.

Laurent Delmas

[1] OpenSubdiv : https://github.com/PixarAnimationStudios/OpenSubdiv

[2] Collectif, « Machine learning », GNU/Linux Magazine HS n°94, janvier-février 2018 :
https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMFHS-094


Retrouvez GNU/Linux Magazine Hors-série n°96 :