AU SERVICE DE LA RECONNAISSANCE D'IMAGES

Le 23/04/2020 à 0:00

On entend souvent parler de l'intelligence artificelle (IA), mais pour beaucoup, elle n'en reste pas moins mystérieuse. La science-fiction, notamment, a contribué à forger l'image de cette technologie, qui est donc perçue à travers le prisme de nombreuses idées reçues. « Elle est vue comme un système capable d'apprendre seul, et que l'on ne contrôle pas », illustre Lucas Nacsa, PDG de Neovision, société de conseil et d'ingénierie spécialisée en intelligence artificielle, experte des systèmes de vision industrielle.

L'IA est pourtant déjà présente dans notre quotidien, notamment via les services en ligne des géants du Web. Et elle gagne petit à petit l'industrie en amenant une nouvelle façon de traiter les données. Parmi les multiples applications de cette technologie, la vision est un débouché important. « L'IA devient de plus en plus populaire, observe Luca Bonato, responsable produit chez Opto Engineering, entreprise qui conçoit des systèmes de vision. Parfois trop ! Dans certaines situations, nous conseillons de ne pas l'utiliser car elle n'est pas la meilleure solution. C'est le cas par exemple pour certaines applications de mesure dimensionnelle. » L'IA apporte de nouvelles capacités d'analyse d'images. Mais pour en cerner tout le potentiel sans la surestimer, il est important de comprendre en quoi elle se démarque des systèmes de vision classiques.

RECONNAÎTRE DES OBJETS, IDENTIFIER DES DÉFAUTS

« L'IA est une brique logicielle, avec des entrées et des sorties », résume Lucas Nacsa (Neovision). « Elle connaît une forte croissance dans le domaine de la vision industrielle, ajoute Luca Bonato (Opto Engineering). C'est une tendance naturelle, étant donné que la La reconnaissance automatique d'objets grâce à l'intelligence artificielle a de nombreuses applications dans l'industrie, comme le tri de différents produits ou le contrôle qualité.

plupart des progrès de cette technologie ont été obtenus en travaillant sur des images. » La principale utilisation de l'IA en vision est la reconnaissance d'objets, au sens large. Les applications sont multiples. Sur une chaîne de production, elle permet ainsi d'identifier la nature d'un objet, et de différencier ses déclinaisons possibles. Reconnaître un type de fruit, de poisson, de garniture de sandwich ou de défaut sur un produit sont autant d'applications réalisables grâce à l'IA. « Cela permet d'automatiser, d'optimiser la chaîne de production, la qualité, d'aider à la prise de décision, ou d'améliorer la traçabilité », énumère Lucas Nacsa (Neovision).

Ces applications ne sont pas forcément nouvelles. La différence réside dans la façon de les mettre en œuvre, et dans la puissance de l'IA. « Les solutions de vision classiques utilisent des algorithmes standard, comme la détection de zones d'intérêt, le seuillage, ou encore la lecture de caractères, explique Luca Bonato (Opto Engineering). Ces fonctions mathématiques appliquent une formule basée sur certains paramètres, et fournissent une réponse prédictible. » La difficulté de cette méthode est de choisir la bonne combinaison de fonctions pour obtenir le résultat voulu, et de choisir les bonnes valeurs des paramètres.

Dans certains cas, cela peut être facile à mettre en œuvre, au moins en théorie, comme lorsqu'il s'agit de détecter les bords d'un objet rétro-éclairé à partir d'une image en noir et blanc. Mais parfois, il n'est pas possible d'avoir le contrôle sur tous les paramètres. Les variations de l'éclairage ou la nature de l'objet à contrôler peuvent ainsi compliquer la tâche. « Dans ce cas, l'IA peut être utilisée de façon à déterminer la meilleure probabilité plutôt que de définir l'objet de façon scientifique », résume Luca Bonato. Cela donne donc accès à une palette d'applications de vision beaucoup plus large.

Ainsi, après avoir entraîné le logiciel, il est possible de détecter des défauts sans connaître précisément leur forme à l'avance. « Nous avons mis au point une solution de contrôle d'implants chirurgicaux, illustre Lucas Nacsa (Neovision). Le système repère les anomalies par comparaison avec l'état de surface d'une pièce idéale apprise par l'IA. » L'entreprise a également développé pour Michelin un système de reconnaissance de dommages sur les pneus d'avions, à partir de photographies prises avec un smartphone. Malgré les conditions d'éclairage très variables, le système détecte et identifie une vingtaine de dommages, afin d'assister les opérateurs dans leur tâche de maintenance.

La variabilité des objets à détecter s'applique aussi à la lecture automatique de caractères (OCR). Ainsi, pour le Centre technique du cuir (CTC), Neovision a permis la lecture de chiffres gravés au laser sur des peaux : « Celles-ci sont déformées par les process utilisés en tannerie, précise Lucas Nacsa. Il y a donc trop de variabilité pour lire les caractères de façon satisfaisante avec des procédés de vision classiques. Avec l'IA, nous avons amélioré le taux de lecture. »

D'autres applications sont possibles en dehors des lignes de production. Les véhicules autonomes, notamment, bénéficient de l'IA pour la détection d'obstacles, en particulier de personnes se déplaçant. Cette technologie permet de comprendre l'environnement de façon dynamique : identifier la direction et la vitesse des déplacements, et donc fonctionner en dehors d'un cadre prédéfini. La surveillance de l'environnement peut trouver une utilité dans d'autres secteurs industriels. La société allemande phil-vision exploite par exemple l'IA pour repérer la présence de rapaces à proximité des éoliennes. Celles-ci sont censées s'arrêter lorsque des espèces d'oiseaux protégées sont signalées à proximité. Pour optimiser ces temps d'arrêt, phil-vision propose donc un système « intelligent » capable de reconnaître les animaux concernés, afin de ralentir les éoliennes au bon moment.

UNE PALETTE DE DIFFÉRENTES TECHNOLOGIES

On le voit, le champ des possibles est vaste. Mais d'où viennent les capacités de l'IA ? Il faut tout d'abord définir ce en quoi consiste cette méthode. « Le terme d'IA ne veut pas dire grand-chose, relativise Vincent Nguyen, architecte système chez Nvidia. C'est un domaine très vaste, qui comprend différentes technologies. » L'une d'elles est le machine learning (apprentissage machine), un champ qui comprend lui-même plusieurs technologies. Différentes familles d'algorithmes peuvent être utilisées, comme les machines à vecteurs de support (SVM), capables d'établir une frontière permettant de distinguer des objets différents.

On retrouve ces différentes approches dans les applications de vision industrielle. L'IA Penso, d'Opto Engineering, exploite une méthode statistique pour « apprendre en extrayant les caractéristiques moyennes d'une population, explique Luca Bonato. Il s'agit de repérer dans une image des qualités liées notamment à la forme ou à la couleur. » Pour son logiciel CVB Polimago, Stemmer Imaging utilise des algorithmes de « régression d'arêtes » : « Nous avons choisi cette technique car elle nécessite peu de données pour l'entraînement, et fonctionne sans processeur graphique », justifie Jonathan Vickers, responsable produit chez la société.

UNE PERFORMANCE DE MOUVEMENT JAMAIS ATTEINTE AUPARAVANT

Série HEXGEN : les Hexapodes par AEROTECH

Les hexapodes HexGen sont idéaux pour les charges lourdes, les vitesses importantes et le positionnement ultra précis.

Les hexapodes HexGen fournissent une précision et une résolution de positionnement encore jamais atteintes. En clair ce sont les hexapodes les plus précis actuellement sur le marché.

Contactez un ingénieur d'application d'Aerotech ou visitez notre site WEB pour comprendre comment les hexapodes Aerotech peuvent améliorer la performance de votre application de positionnement.

« Une partie des applications de machine learning repose sur de la programmation manuelle », complète Vincent Nguyen (Nvidia). Cela signifie que, pour reconnaître une bouteille, il faut en décrire les caractéristiques visuelles, comme sa forme ou sa transparence. « Cette méthode fonctionne bien tant que les caractéristiques restent limitées, continue-t-il. Mais si l'on est confronté à des classes d'objets très complexes, cela devient beaucoup trop compliqué. »

Une autre technique fait beaucoup parler d'elle : le deep learning (apprentissage profond). Cette méthode a démontré son efficacité au cours des années 2010, notamment par l'intermédiaire d'un concours annuel de reconnaissance automatique d'images, lié à la base de données ImageNet. Celui-ci a permis au deep learning de surclasser petit à petit les autres approches, au point de s'imposer largement sur le marché pour résoudre les cas les plus complexes.

Le deep learning tire son nom des réseaux neuronaux profonds qui font sa spécificité. Ils mettent en jeu jusqu'à des centaines de millions de paramètres. À partir d'un corpus de données, on les entraîne à reconnaître différents objets. « Ce sont des algorithmes qui demandent des heures, voire des jours de calcul pour être entraînés, décrit Lucas Nacsa (Neovision). Mais ils sont capables de résoudre des problèmes beaucoup plus complexes que d'autres approches. » Cela peut s'appliquer à la reconnaissance d'images, mais pas seulement. La reconnaissance vocale, par exemple, peut aussi bénéficier du deep learning.

DES SOLUTIONS À PORTÉE DE MAIN

Comment exploiter la puissance de l'intelligence artificielle (IA) pour une application de vision ? Selon la complexité du but recherché, il peut être nécessaire de développer un système sur mesure. Mais il existe aussi des applications sur étagère ciblant des tâches précises. En voici quelques exemples :

l VisionPro ViDi de Cognex : ce logiciel basé sur l'apprentissage profond (deep learning) offre quatre types de fonctions : localisation, analyse, classification et lecture. L'utilisation de l'IA permet une plus grande tolérance aux écarts et aux défauts imprévisibles que les applications de vision standard. VisionPro Vidi apprend à partir d'un ensemble d'images annotées. Il est ainsi capable de localiser les caractéristiques et les objets complexes, ou de segmenter des zones d'intérêt. En se basant sur l'état normal attendu d'un objet et sur ses variations acceptables, il identifie des défauts, y compris sur des surfaces complexes. Il repère les ensembles incomplets ou incorrects, trie les produits en différentes classes selon leur qualité, ou lit des caractères malgré leur déformation.

l Machines d'inspection d'Industrial Vision Systems (IVS) : la société fournit des machines dédiées à la vision industrielle, notamment pour des applications d'inspection. Parmi les méthodes utilisées sur la partie logicielle figure le deep learning. On le trouve par exemple dans des systèmes d'inspection de surface, de reconnaissance d'objets, de détection de composants, ou encore d'identification de pièces. Dans le cas de tailles

ou de formes variables, ou quand le contraste change d'une prise de vue à l'autre, le deep learning comble les limites des algorithmes traditionnels. Les systèmes peuvent continuer à s'améliorer au fil de leur utilisation grâce à l'intégration de nouvelles données.

l Matrox Imaging Library de Matrox : la bibliothèque de fonctions MIL permet le développement de systèmes de vision. Sa dernière version comporte l'usage de réseaux neuronaux profonds, destinés à la classification d'images. Le système fonctionne sur des objets hautement texturés, déformés, ou aux caractéristiques variables. Pour l'exploiter, la puissance de calcul d'un processeur traditionnel suffit. Les experts de Matrox proposent également un service d'entraînement du système.

l Halcon Deep learning de MVTec : ce logiciel de vision, comprenant un environnement de développement intégré, dispose d'un outil de deep learning. Celui-ci propose des fonctionnalités d'étiquetage d'images afin d'apprendre à un système de vision à détecter et classer des objets ou des anomalies. Pour cela, l'utilisateur encadre sur l'image chaque objet pertinent, et fournit des informations sur sa classe. Plusieurs jeux de données peuvent être exploités dans une même application. Une fois entraîné, le système permet la mise en œuvre de tâches d'inspection.

l Penso d'Opto Engineering : l'intelligence artificielle de cet outil repose sur une approche statistique pour apprendre les caractéristiques de différentes classes d'objets. Elle intervient lorsque les images à reconnaître sont trop variables, ou trop

peu prédictibles pour les applications de vision traditionnelles. Penso est commercialisé sous la forme d'un ordinateur, avec ou sans kit d'intégration. Cela lui confère une grande flexibilité d'utilisation, mais demande un travail de développement. L'IA de Penso peut aussi se trouver au sein d'Albert, un système de vision complet et autonome capable d'évaluer la qualité d'un produit.

l perClass Mira : spécifiquement dédié à l'imagerie spectrale, cet outil de la société perClass utilise l'apprentissage machine pour reconnaître et classifier des images selon le meilleur modèle statistique, à partir d'exemples annotés. Le logiciel assiste l'utilisateur dans la phase d'entraînement en proposant automatiquement des zones de l'image pouvant bénéficier de l'ajout d'informations. perClass Mira est doté d'une interface simple : il est conçu pour être utilisé sans programmation ni expertise dans le domaine de l'apprentissage automatique. Il fonctionne sur un ordinateur classique, mais peut améliorer ses performances grâce à un processeur graphique.

l CVB Polimago de Stemmer Imaging : cet outil de reconnaissance d'images se veut plus simple que les IA basées sur le deep learning. Son entraînement peut s'effectuer à partir d'un échantillon de 20 à 100 images, en 5 à 20 minutes. Il fonctionne sur une plateforme CPU standard, tout en fournissant une réponse en quelques millisecondes. Reconnaissance de caractères, détection de produits endommagés, contrôle qualité ou classification font partie des applications possibles de CVB Polimago.

Le concept de neurone artificiel, ainsi baptisé par analogie avec le cerveau, remonte à 1957. « Dans les années 1990, les premiers systèmes de reconnaissance de caractères utilisaient des réseaux de neurones simples, à deux ou trois couches, rappelle Vincent Nguyen (Nvidia). Mais la puissance de calcul encore limitée à l'époque ne permettait pas d'exploiter tout le potentiel de cette technologie, qui est donc tombée en désuétude. » L'arrivée d'ordinateurs plus puissants, et notamment des processeurs graphiques, a permis de reprendre le développement des réseaux de neurones.

Le « deep learning » consiste à apprendre à reconnaître un objet à partir d'une multitude d'exemples annotés au préalable. La qualité de cet échantillon est cruciale au bon fonctionnement du système.

L'apprentissage automatique par des réseaux de neurones profonds peut nécessiter jusqu'à plusieurs centaines de milliers d'images d'entraînement. Heureusement, ça n'est pas le cas de toutes les applications.

Un neurone artificiel est caractérisé par des entrées/sorties, et par un seuil d'activation. Connecté à d'autres neurones, il reçoit de l'énergie. Sa fonction d'activation détermine s'il doit à son tour envoyer ou non de l'énergie vers d'autres neurones. Un réseau est constitué de plusieurs couches de neurones interconnectés. Il effectue du calcul matriciel à grande dimension. « Sa fonction dépend de la topologie du réseau, c'est-à-dire de la façon dont les neurones sont connectés entre eux, résume Vincent Nguyen. L'essentiel de la recherche aujourd'hui consiste à explorer différentes façons de les agencer en fonction des cas d'usage voulus. C'est donc une approche très différente de la programmation classique. » L'une des topologies massivement utilisées pour la vision est ce que l'on appelle les réseaux dits « de convolution » (ou CNN, d'après l'acronyme anglophone). Dans le cas de la vision, les couches de neurones peuvent être assimilées à des filtres capables d'identifier les caractéristiques visuelles d'une image, comme les lignes obliques ou verticales, ou encore les contrastes. Le réseau combine ces différents filtres en vue de caractériser l'image. Le développement d'un réseau est une démarche empirique et itérative, qui consiste à modifier sa topologie en fonction des résultats obtenus.

UN JEU DE DONNÉES REPRÉSENTATIF POUR L'ENTRAÎNEMENT

La base de données utilisée pour entraîner le réseau est d'une importance cruciale. Pour les applications de vision, il s'agit d'un ensemble d'images annotées : on les fournit au réseau en indiquant ce qu'elles représentent, afin que le système en déduise les caractéristiques les plus utiles pour différencier les catégories à détecter. « Pour un apprentissage efficace, il faut donc définir ce que l'on veut reconnaître, et fournir des jeux de données représentatifs, conseille Lucas Nacsa (Neovision). Ainsi, si je veux identifier un défaut, il faut que je m'assure d'avoir toutes les variations possibles. Si je ne lui montre que des carrés, le système reconnaîtra difficilement un ovale. »

La quantité d'images nécessaire à l'entraînement est variable selon l'application visée. Elle peut atteindre la centaine de milliers, comme c'est le cas pour le système de reconnaissance des oiseaux mis au point par phil-vision.

Celui-ci a nécessité 400 000  images d'oiseaux de différentes espèces, à différentes distances et avec différentes positions de vol. Mais aussi 100 000  autres photographies d'objets tels que des insectes, des avions ou des hélicoptères, afin d'éviter les confusions.

L'intelligence artificielle peut servir aux techniciens dans des tâches de maintenance. L'identification automatique de défauts permet par exemple de les guider dans la marche à suivre.

Il existe sur le marché des systèmes de vision clé en main utilisant l'intelligence artificielle pour effectuer différents types de tâches.

Bien que les photographies requises ne soient pas toujours aussi nombreuses, cet imposant jeu de données peut être une limite. « Un réseau de convolution classique peut nécessiter de 500 à 1 000 images pour chaque classe à détecter, détaille Jonathan Vickers (Stemmer Imaging). Pour la reconnaissance de caractères, par exemple, il faudrait compter 1 000  images d'entraînement pour chaque lettre, soit 26 000 au total. Or, dans le cas de la recherche de défauts, il est souvent impossible de trouver autant d'exemples. » Cela a donc orienté le choix de Stemmer Imaging vers une autre méthode d'apprentissage, pouvant fonctionner avec 20 à 50  exemples par classe.

L'entraînement implique aussi de définir la marge d'erreur acceptable. « On peut avoir des faux rejets, ou des acceptations erronées, précise Lucas Nacsa (Neovision). Il faut alors choisir où placer le curseur en fonction de l'application. » La société a par exemple élaboré un système de détection de défauts pour l'industrie du verre, dont certains peuvent être dangereux pour les utilisateurs. Dans ce cas, mieux vaut écarter des produits corrects que de prendre un risque pour la santé.

Parmi les systèmes de vision utilisant l'IA, il existe des logiciels sur étagère et des solutions sur mesure. Comment se différencient-ils ? « Le choix dépend de la complexité du sujet, et du niveau d'expertise de l'entreprise, indique Lucas Nacsa. Si elle dispose d'ingénieurs formés à l'IA, elle saura prendre en main des outils sur étagère et les faire parler. » Mais quand le problème devient complexe, les systèmes génériques peuvent s'avérer limités. La problématique est la même que pour les systèmes de vision sans IA. « Différencier des fruits est très simple, mais sur un projet comme la maintenance des pneus d'avion, les défauts se ressemblent beaucoup, illustre Lucas Nacsa. Il faut donc une grande expertise pour optimiser l'architecture du réseau de neurones ou la base de données en vue d'obtenir les meilleures performances. »

Ces performances ne s'obtiennent pas sans une puissance de calcul adaptée. Quel matériel faut-il utiliser pour exploiter l'intelligence artificielle ? Là encore, tout dépend de l'application. Dans le cas du deep learning, il faut déjà différencier l'exploitation et la phase d'apprentissage. Cette dernière est la plus gourmande en ressources : « Si l'on veut faire passer un million d'images dans un réseau de 100 millions de paramètres, cela demande une puissance de calcul colossale », souligne Vincent Nguyen (Nvidia). On comprend ainsi pourquoi l'arrivée des processeurs graphiques (GPU) a stimulé le développement des réseaux de neurones. Leur structure matérielle combine jusqu'à plusieurs milliers d'unités de calcul à virgule flottante. « Le GPU est ce qui répond le mieux aux besoins de calcul d'un réseau de neurones », résume Vincent Nguyen. Une fois l'entraînement effectué, la phase d'exécution – on parle d'inférence – est beaucoup moins contraignante. « On peut optimiser le système en fonction de la plateforme sur laquelle on veut l'utiliser, qu'il s'agisse d'une carte graphique, d'un processeur classique ou encore d'un microcontrôleur, précise Lucas Nacsa (Neovision). Les enjeux, et notamment la cadence de l'application, doivent donc être bien compris en amont. » Sans contraintes sur le temps d'exécution, tout support peut exécuter un réseau de neurones, dans la mesure où sa taille ne dépasse pas les capacités de la mémoire vive. Mais si la vitesse est critique, il faut plutôt choisir des capacités de calcul à la hauteur.

Les réseaux de neurones peuvent nécessiter une puissance de calcul importante, en particulier si le temps de réponse de l'application est critique. De par leur structure, les processeurs graphiques y sont parfaitement adaptés.

Il existe plusieurs stratégies pour optimiser les plateformes de calcul. « Nous développons des GPU avec l'objectif de les rendre les plus flexibles possibles », explique Vincent Nguyen (Nvidia). Certaines gammes sont plus orientées vers l'apprentissage, d'autres vers l'inférence, mais elles peuvent s'adapter à toutes les topologies de réseaux. D'autres fabricants préfèrent utiliser des circuits spécialisés. C'est le cas par exemple de Google, qui a mis au point les Tensor Processing Units (TPU), spécifiquement adaptés à son outil d'apprentissage automatique TensorFlow. L'objectif est d'optimiser l'architecture pour des cas d'usage précis, au détriment de la polyvalence. Dans le même ordre d'idées, il existe des FPGA spécialisés dans le deep learning. On trouve ce type de produits notamment chez Intel.

De plus en plus de PC industriels et autres systèmes de vision industrielle mettent à profit ces composants pour se spécialiser dans le traitemenjt d'images par IA. Advantech, par exemple, s'est associé à Nvidia pour proposer différents PC et serveurs dotés de processeurs graphiques. Axiomtek, ADLink Technology ou Aaeon proposent aussi des PC spécialisés, utilisant des processeurs de Nvidia ou Intel. Ce dernier commercialise aussi son propre kit de développement pour applications basées sur l'IA : le Neural Compute Stick.

Selon l'application, le système de traitement d'image peut être plus ou moins déporté par rapport à la caméra. Des systèmes de vision peuvent embarquer directement une plateforme de calcul capable de gérer l'IA. Dans d'autres cas de figure, les images peuvent être transmises vers des serveurs centralisés, capables de gérer plusieurs flux simultanément. Il est même possible d'utiliser des applications en cloud, pour absorber par exemple une surcharge de données qu'il n'est pas possible de traiter localement. Le choix de l'architecture dépendra de la structuration de l'usine et de la latence acceptable. « Pour la détection de défauts, il faut souvent maximiser la cadence », observe Vincent Nguyen (Nvidia).

L'évolution des plateformes de calcul n'est pas le seul facteur d'amélioration du deep learning. D'abord, les bases de données publiques se sont enrichies. Or, dans un réseau de neurones, les premiers niveaux sont souvent génériques. Ils peuvent donc être entraînés à partir de n'importe quelle base d'images annotées. Ensuite, « les algorithmes ont eux aussi énormément progressé, rappelle Lucas Nacsa (Neovision). Les personnes qui travaillent sur ce sujet partagent couramment leurs avancées, c'est très ouvert. » Des groupes comme Google ou Facebook publient beaucoup, chacun peut donc profiter de leurs recherches. À partir des bibliothèques disponibles en open source, les spécialistes peuvent développer leurs propres réseaux de neurones.

L'apprentissage automatique, avec ou sans réseaux de neurones, gagne en performances au fil des années. « Beaucoup d'améliorations de notre logiciel CVB Polimago sont “sous le capot”, indique Jonathan Vickers (Stemmer Imaging). Pour les utilisateurs, les changements visibles concernent la réduction du nombre d'images nécessaires pour l'entraînement, la vitesse d'exécution, et de meilleurs résultats. » La dernière version permet également un usage embarqué.

Malgré l'essor que connaît actuellement l'intelligence artificielle, cette technologie suscite encore des craintes. « Certaines personnes s'imaginent qu'elle va remplacer l'humain petit à petit, rapporte Lucas Nacsa (Neovision). Pour éviter cela, il revient aux entreprises de porter leur vision de l'IA. Celle-ci permet en effet de se libérer de tâches pénibles et peu intéressantes, pour se concentrer sur des missions à plus forte valeur ajoutée. L'IA est un outil, l'important est donc de définir comment on veut l'utiliser. »

Copy link
Powered by Social Snap