Computer vision, les usages professionnels
La vision par ordinateur en quelques mots
La vision par ordinateur, aussi appelée vision artificielle, est une technologie permettant aux machines de traiter et d’analyser des images ou des vidéos afin de les « comprendre ». Elle s’appuie en grande partie sur l’intelligence artificielle (IA) et plus particulièrement sur le deep learning*.
S’il parait tout à fait naturel pour l’Homme d’interpréter ce qu’il voit, c’est beaucoup moins évident pour une machine. L’Homme a cette capacité naturelle de pouvoir identifier et reconnaitre tous les objets et personnes qu’il peut voir sur une image, dans une vidéo ou plus généralement dans son champ visuel. Il peut aussi les suivre, comprendre les positionnements des uns par rapport aux autres, interpréter les mouvements, les expressions voire les interactions qui existent entre eux. Pour la machine, une image ou une vidéo (qu’on peut résumer à une succession d’images) n’est qu’un ensemble de pixels (points) avec un code couleur (généralement associé au modèle RVB – Rouge Vert Bleu). Ainsi, la vision par ordinateur consiste à construire des modèles algorithmiques pour que, vu du regard extérieur, cela donne des propriétés semblables à la vision humaine. Comme souvent avec l’IA, les modèles créés sont très spécialisés, c’est-à-dire qu’ils se focalisent sur des taches très précises qui ne sont, en réalité, qu’une toute petite capacité de l’extraordinaire pouvoir de la vision humaine.
Les domaines de spécialisations de la vision par ordinateur
Le monde de l’entreprise n’a pas besoin d’attendre d’avoir une solution parfaitement équivalente à la vision humaine pour que cette technologie lui soit utile. En effet, ses différents domaines de spécialisation peuvent déjà répondre à des cas d’usage très utiles dans nos métiers de tous les jours.
Nous pouvons commencer avec la classification. Cela consiste à associer les éléments de l’image à des étiquettes prédéfinies dans le but de répondre à la question « qu’est-ce qu’il y a dans la photo ». Il peut, bien évidemment, y avoir plusieurs étiquettes pour une même image. D’une part, soit par ce que différents éléments tels que le soleil, la mer, les arbres, des voitures… y sont présents et d’autre part la représentation globale de l’image qui est reconnue (un coucher de soleil, une forêt, un parking, etc.). La classification est donc très utile pour comprendre le contexte générale d’une image ou d’une vidéo.
Il y a aussi le concept de détection. Cela permet de distinguer les différents objets/personnes de l’image ou éléments de ces derniers. Cela se distingue de la classification par le fait que la précision est plus forte et que cela situe chaque item détecté dans l’image (coordonnées de l’item souvent matérialisées dans l’image par un cadre entourant l’objet/la personne). La détection est donc très utile si nous avons besoin d’identifier en particulier une partie d’un objet ou d’une personne dans une image/vidéo.
Il y a enfin le concept de segmentation. Il attribue chacun des pixels d’une image à une étiquette prédéfinie. L’avantage est que la segmentation détoure de façon très précise, pixel par pixel, chacun des objets ou des personnes détectés (souvent matérialisé dans l’image par un masque plein en surimpression de l’objet) constituant l’image ou la vidéo. La segmentation est particulièrement utile pour mieux comprendre la forme et la posture des objets et des personnes détectés.
S’il l’on fait un focus sur la vidéo, il y a alors un dernier concept majeur : le tracking. Il s’agit simplement de repérer les différentes positions d’un item détecté dans les différentes images de la vidéo. Le tracking est donc très utile pour suivre des objets ou des personnes qui sont amenés à se déplacer dans le temps.
La vision par ordinateur dans nos métiers
Sur la base de ces concepts, on comprend mieux pourquoi la robotique ou encore la voiture autonome exploitent la vision par ordinateur. Elle est nécessaire pour appréhender au mieux tout ce qui l’entoure : la classification pour savoir dans quel milieu elle évolue (en ville, en soirée, sous la neige) et donc adapter sa conduite, la détection pour reconnaitre les éléments structurant (les autres véhicules ou piétons, les panneaux de signalisation ou les feux tricolores) afin de respecter le code de la route et enfin la segmentation pour se repérer (la rue, les différentes lignes de circulation d’une autoroute) et ainsi évoluer en restant sur sa voie. Cependant, la voiture autonome est souvent associée à de la très haute technologie et se révèle peu accessible. Or la vision par ordinateur peut rendre bien des services, dès aujourd’hui dans nos métiers.
Ainsi le métier de la sureté ne se contente pas de simplement filmer et d’enregistrer avec un horodatage, il exploite la segmentation pour contrôler que personne ne pénètre dans des zones délimitées, remontant des alarmes le cas échéant. Il utilise aussi la détection pour faire du comptage d’entrée, de sortie ou encore du contrôle d’accès de véhicules en lisant les plaques d’immatriculation afin de vérifier leur autorisation d’accès.
Cette reconnaissance de caractères, sous-concept de la détection appelé OCR (Optical Character Recognition), est la technologie utilisée pour transformer un fichier scanné en fichier Word. Lorsqu’on l’applique au monde du commerce, elle apporte d’autres intérêts comme lire à la volée les numéros de série aussi bien imprimés sur une étiquette qu’écrits manuscritement sur un emballage. Elle permet aussi d’aller lire automatiquement d’autres informations contenues dans l’étiquette et évite d’avoir à ressaisir manuellement ces données dans un système d’informations. Aussi, cette technologie nous place au plus proche du client. En effet, en utilisant le tracking, on peut générer des cartes de chaleur, c’est-à-dire des cartes de lieux indiquant les chemins parcourus par les visiteurs et les zones où ils s’arrêtent en utilisant un index de couleur pour représenter les quantités. Un dernier exemple dans ce domaine d’activité est l’utilisation de segmentation pour faire de la détection de rupture de stock. Ainsi il est possible de détecter des espaces vides dans les rayons (à partir de caméras de vidéosurveillance par exemple) en d’en informer son gestionnaire.
L’industrie a aussi ses cas d’usages à commencer par l’OCR car la lecture de caractère peut aussi se faire lorsqu’ils sont directement gravés sur un produit (par exemple le numéro de série d’un moteur à la sortie d’une chaine de montage). La détection et la segmentation permettent de leur côté de faire de la reconnaissance de conformité ou de défaut : elles assistent l’Homme en vérifiant par exemple si tous les fils électriques sont bien connectés, ou encore en s’assurant qu’il n’y a pas eu d’oubli de vis ou d’écrou ou pour finir en confirmant qu’il n’existe pas d’anomalie telle qu’une fissure ou une boursouflure sur un produit.
Les smart-cities ne sont pas en reste : la vision par ordinateur peut rendre un grand service en identifiant les places de parking libres, les zones ou la végétation déborde, identifier les embouteillages et leur densité, décompter le nombre de personnes ou véhicules traversant une zone définie, etc. Cela s’applique d’ailleurs à tout ce qui est « smart » comme les smart-airport où la détection va permettre d’identifier un bagage abandonné et où la segmentation va permettre de savoir qu’il n’y a plus de charriot disponible au niveau d’un tapis roulant.
D’une façon plus transversale, en mixant l’ensemble des concepts, la vision par ordinateur permet d’optimiser les processus métiers et d’apporter plus de visibilité sur des données difficiles à capter. L’exemple type est le suivi de jalons : en suivant un élément prédéfini (via la détection) tout le long de son cycle de vie, il est possible de détecter ses arrivées et départs à chacune de ses étapes (via la segmentation). Ainsi, dans un entrepôt d’usinage, on peut connaitre le temps passé par chaque élément sur un atelier, identifier les transferts de responsabilité (et potentiellement vérifier l’état du produit via la vidéo au moment de ce transfert), connaitre le nombre d’éléments par atelier, etc. De plus, avec la captation de toutes ces données, on peut identifier des anomalies (comme des erreurs de parcours ou des temps d’étape trop long), avoir un état des stocks, etc.
Il existe encore beaucoup d’autres cas d’usage et il ne tient qu’à chacun d’identifier, sur la base des principes présentés, ceux qui conviennent le mieux à leur activité. Cette tache semble d’autant plus faisable que nous n’avons énuméré qu’une petite partie descapacités de la vision par ordinateur. Il existe en effet d’autres domaines de spécialisation comme la détection de pose, évaluation de forme3D, calcul de superficie, etc. ouvrant encore d’autres possibilités.
* Le Deep Learning est un apprentissage en profondeur. Il va chercher à comprendre des concepts avec un haut niveau de précision, en analysant les données à un haut niveau d’abstraction. Son fonctionnement s’apparente à celui du cerveau.