La vision par ordinateur est un domaine de l'intelligence artificielle (IA) qui permet aux ordinateurs et aux systèmes de dériver des informations significatives à partir d'images numériques, de vidéos et d'autres entrées visuelles, et de prendre des mesures ou de faire des recommandations sur la base de ces informations. Si l'intelligence artificielle permet aux ordinateurs de penser, la vision par ordinateur leur permet de voir, d'observer et de comprendre.
La vision par ordinateur fonctionne de la même manière que la vision humaine, mais les êtres humains ont une longueur d'avance. La vue humaine a l'avantage de pouvoir s'entraîner à distinguer les objets, à en déterminer la distance, à savoir s'ils sont en mouvement et si quelque chose ne va pas dans une image.
La vision par ordinateur entraîne les machines à exécuter ces fonctions, mais elle doit le faire beaucoup plus rapidement à l'aide de caméras, de données et d'algorithmes qui remplacent nos rétines, nos nerfs optiques et notre cortex visuel. Parce qu'un système entraîné pour inspecter des produits ou surveiller un actif de production peut analyser des milliers de produits ou de processus à la minute, en remarquant des défauts ou problèmes imperceptibles, il peut rapidement dépasser les capacités humaines.
La vision par ordinateur est utilisée dans des secteurs très variés - énergie, services publics, fabrication, automobile - et concerne un marché qui ne cesse de s'élargir. Il devrait atteindre 48,6 milliards de dollars d'ici 2022.1
La vision par ordinateur a besoin de beaucoup de données. Elle exécute des analyses de données encore et encore jusqu'à ce qu'elle perçoive des distinctions et reconnaisse finalement les images. Par exemple, pour entraîner un ordinateur à reconnaître des pneus de voiture, elle doit recevoir de grandes quantités d'images de pneus et d'éléments liés aux pneus pour apprendre les différences et reconnaître un pneu, en particulier un pneu sans défaut.
Deux technologies essentielles sont utilisées dans la vision par ordinateur : un type d'apprentissage automatique appelé apprentissage en profondeur et un réseau de neurones convolutifs (CNN).
L'apprentissage automatique utilise des modèles algorithmiques qui permettent à un ordinateur de se former seul au contexte des données visuelles. Si suffisamment de données sont introduites dans le modèle, l'ordinateur « regardera » les données et apprendra à distinguer une image d'une autre. Les algorithmes permettent à la machine d'apprendre par elle-même, plutôt que quelqu'un la programme pour reconnaître une image.
Un réseau de neurones convolutifs (CNN) aide un modèle d'apprentissage automatique ou d'apprentissage en profondeur à « regarder » en décomposant les images en pixels auxquels sont attribuées des balises ou des libellés. Il utilise les libellés pour effectuer des convolutions (une opération mathématique sur deux fonctions pour produire une troisième fonction) et fait des prévisions sur ce qu'il « voit ». Le réseau de neurones exécute des convolutions et vérifie l'exactitude de ses prévisions par une série d'itérations jusqu'à ce que les prévisions commencent à se réaliser. Il s'agit alors de reconnaître ou de voir des images d'une manière similaire aux humains.
À l'instar d'un être humain qui distingue une image à distance, un CNN discerne d'abord les bords durs et les formes simples, puis complète les informations au fur et à mesure des itérations de ses prévisions. Un CNN est utilisé pour comprendre des images individuelles. Un réseau de neurones récurrent (RNN) est utilisé de manière similaire dans les applications vidéo pour aider les ordinateurs à comprendre comment les images d'une série sont liées les unes aux autres.
Depuis environ 60 ans, les scientifiques et les ingénieurs tentent de développer des moyens pour que les machines voient et comprennent les données visuelles. L'expérimentation a commencé en 1959 lorsque des neurophysiologistes ont montré à un chat un ensemble d'images, en essayant d'établir une corrélation avec une réponse dans son cerveau. Ils ont découvert qu'il réagissait d'abord aux bords ou aux lignes durs, et scientifiquement, cela signifiait que le traitement de l'image commençait par des formes simples comme des bords droits.(2)
A peu près à la même époque, la première technologie de numérisation d'images par ordinateur a été développée, permettant aux ordinateurs de numériser et d'acquérir des images. Une autre étape importante a été franchie en 1963 lorsque les ordinateurs ont été capables de transformer des images bidimensionnelles en formes tridimensionnelles. Dans les années 1960, l'intelligence artificielle est devenue un domaine d'étude universitaire et a marqué le début de la quête de l'intelligence artificielle pour résoudre le problème de la vision humaine.
1974 a vu l'apparition de la technologie de reconnaissance optique des caractères (ROC), capable de reconnaître du texte imprimé dans n'importe quelle police de caractères.(3)De même, la reconnaissance intelligente de caractères (ICR) pouvait déchiffrer du texte écrit à la main à l'aide de réseaux de neurones.(4)Depuis lors, l'OCR et l'ICR ont trouvé leur place dans le traitement des documents et des factures, la reconnaissance des plaques d'immatriculation, les paiements mobiles, la traduction automatique et d'autres applications courantes.
En 1982, le neuroscientifique David Marr, déterminant que la vision fonctionnait de manière hiérarchique, avait créé des algorithmes permettant aux machines de détecter les bords, les angles, les courbes et des formes de base similaires. Parallèlement, l'informaticien Kunihiko Fukushima a développé un réseau de cellules capables de reconnaître des modèles. Le réseau, appelé Neocognitron, comprenait des couches convolutives dans un réseau de neurones.
En 2000, les travaux de recherche privilégiaient la reconnaissance d'objets, 2001 voyant apparaître les premières applications de reconnaissance faciale en temps réel. La standardisation de l'étiquetage et de l'annotation des ensembles de données visuelles est apparue dans les années 2000. En 2010, les fichiers ImageNet apparaissaient. Ils contenaient des millions d'images étiquetées dans un millier de classes d'objets et fournissaient une base pour les CNN et les modèles d'apprentissage en profondeur utilisés aujourd'hui. En 2012, une équipe de l'Université de Toronto a inscrit un CNN à un concours de reconnaissance d'images. Le modèle, appelé AlexNet, a considérablement réduit le taux d'erreur pour la reconnaissance d'images. Après cette percée, les taux d'erreur sont tombés à quelques pour cent seulement.(5)
Il y a beaucoup de recherches en cours dans le domaine de la vision par ordinateur, mais il ne s'agit pas seulement de recherche. Les applications du monde réel démontrent l'importance de la vision par ordinateur pour les entreprises, les secteurs du divertissement, des transports, des soins de santé et dans la vie quotidienne. L'un des principaux moteurs de la croissance de ces applications est le flot d'informations visuelles provenant des smartphones, des systèmes de sécurité, des caméras de circulation et autres dispositifs dotés d'instruments visuels. Ces données pourraient jouer un rôle majeur dans les opérations de toutes les industries, mais elles sont aujourd'hui inutilisées. Les informations créent un banc d'essai pour former des applications de vision par ordinateur et une rampe de lancement pour qu'elles fassent partie d'une gamme d'activités humaines :
De nombreuses organisations n'ont pas les ressources nécessaires pour financer des laboratoires de vision par ordinateur et créer des modèles d'apprentissage en profondeur et des réseaux de neurones. Elles peuvent également manquer de la puissance de calcul requise pour traiter d'énormes volumes de données visuelles. Des entreprises telles qu'IBM apportent leur aide en proposant des services de développement de logiciels de vision par ordinateur. Ces services fournissent des modèles d'apprentissage prédéfinis disponibles à partir du cloud et facilitent également la demande en ressources informatiques. Les utilisateurs se connectent aux services via une interface de programme d'application (API) et les utilisent pour développer des applications de vision par ordinateur.
IBM a également créé une plateforme de vision par ordinateur qui répond à la fois aux problèmes de développement et de ressources informatiques. IBM Maximo Visual Inspection comprend des outils qui permettent aux experts en la matière d'étiqueter, de former et de déployer des modèles de vision d'apprentissage en profondeur, sans codage ni expertise en apprentissage en profondeur. Les modèles de vision peuvent être déployés dans des centres de données locaux, le cloud et des unités de périphérie.
S'il est de plus en plus facile d'obtenir des ressources pour développer des applications de vision par ordinateur, il reste une question importante à laquelle il faut répondre dès le départ : que feront exactement ces applications ? Comprendre et définir des tâches spécifiques de vision par ordinateur peut permettre de cibler et de valider des projets et des applications et faciliter leur démarrage.
Voici quelques exemples de tâches d' ordinateur vision établies :
1. https://www.forbes.com/sites/bernardmarr/2019/04/08/7-amazing-examples-of-computer-and-machine-vision-in-practice/#3dbb3f751018 (Link resides outside ibm.com)
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3 (Link resides outside ibm.com)
3. Reconnaissance optique des caractères, Wikipédia (Lien externe à ibm.com)
4. Reconnaissance intelligente de caractères, Wikipédia (Lien externe à ibm.com) 5.
5. Une brève histoire de la vision par ordinateur (et des réseaux neuronaux convolutifs), Rostyslav Demush, Hacker Noon, 27 février 2019 (Lien externe à ibm.com)
6. Exemples étonnants de vision par ordinateur et par machine en pratique, Bernard Marr, Forbes, 8 avril 2019 (Le lien réside hors d'ibm.com)
7. The 5 Computer Vision Techniques That Will Change How You See The World, James Le, Heartbeat, April 12, 2018 (Lien externe à ibm.com)