Vision par ordinateur et IA : transformer la compréhension visuelle
Publié: 2025-01-15La vision par ordinateur est l'un des sous-domaines fondamentaux de l'intelligence artificielle (IA). Ce guide explique la vision par ordinateur, son fonctionnement, où elle est appliquée, ainsi que ses avantages et ses inconvénients.
Table des matières
- Qu’est-ce que la vision par ordinateur ?
- Histoire et évolution de la vision par ordinateur
- Comment fonctionne la vision par ordinateur
- Applications de la vision par ordinateur
- Avantages de la vision par ordinateur
- Inconvénients de la vision par ordinateur
- Conclusion
Qu’est-ce que la vision par ordinateur ?
Le domaine de la vision par ordinateur couvre toutes les techniques d’IA qui utilisent des systèmes informatiques pour analyser des données visuelles, comme les données des vidéos et des photos. Ce domaine existe officiellement depuis les années 1960 et les premières applications de vision par ordinateur utilisaient la correspondance de modèles et d'autres heuristiques pour améliorer les images dans les domaines biomédical, de la physique avancée et d'autres domaines de recherche de pointe. Presque tous les systèmes de vision par ordinateur récents s'appuient exclusivement sur des algorithmes d'apprentissage automatique (ML) (plus précisément des algorithmes d'apprentissage profond) pour faire leur travail, car ils sont beaucoup plus efficaces que les techniques plus anciennes.
Histoire et évolution de la vision par ordinateur
La vision par ordinateur trouve ses racines dans les expériences menées par des neurophysiologistes qui cherchaient à comprendre comment les images produites par l'œil sont traitées dans le cerveau. Au cours des premières décennies de son développement, la vision par ordinateur s’est largement inspirée et inspirée de la recherche sur la vision humaine et animale.
Bien qu’il soit difficile de déterminer une année de début exacte, 1959 est souvent considérée comme le début du domaine. Cette année-là, deux concepts fondamentaux de l'analyse d'images ont été établis : (1) l'analyse d'images doit d'abord se concentrer sur l'identification des sous-composants d'une image, et (2) ces composants doivent ensuite être analysés hiérarchiquement.
La liste ci-dessous met en évidence certaines des étapes majeures entre la découverte de ces concepts fondamentaux et la récente explosion des progrès de la vision par ordinateur. Aujourd'hui, les systèmes de vision par ordinateur s'appuient sur des algorithmes complexes d'apprentissage profond pour traiter, comprendre, éditer et créer des images réalistes en temps réel.
Jalons majeurs dans le développement de la vision par ordinateur
1959 :Des études sur le cerveau d'animaux montrent que les composants simples d'une image (tels que les bords et les lignes) sont d'abord détectés, puis traités hiérarchiquement. Ces connaissances sont devenues deux des concepts fondamentaux de la vision par ordinateur et sont reconnues comme les débuts officiels du domaine.
Années 1960 : les premiers efforts officiels en matière d’IA et de vision par ordinateur commencent. Les progrès comprenaient des systèmes qui transformaient automatiquement des parties de photographies en objets tridimensionnels équivalents.
Années 1970 :L'accent mis sur la recherche et l'éducation en vision par ordinateur a produit de nombreux algorithmes de vision par ordinateur encore utilisés aujourd'hui, notamment ceux pour la détection de formes, l'estimation de mouvement, la détection de contours, l'étiquetage de lignes et la modélisation géométrique des composants d'image.
Années 1980 :Les réseaux de neurones convolutifs (CNN) se sont considérablement développés tout au long de la décennie. En 1989, le premier CNN a été appliqué avec succès à un problème de vision, en détectant automatiquement les codes postaux dans les images.
Années 1990 :Les caméras intelligentes deviennent de plus en plus populaires et largement utilisées dans les milieux industriels. La demande croissante d’outils permettant de traiter de grandes quantités d’images numériques a conduit à une explosion des investissements commerciaux, faisant ainsi progresser ce domaine. L'industrie de la vision par ordinateur est née et des méthodes formelles d'évaluation de la qualité des systèmes de vision par ordinateur ont été développées.
2000 :À la fin des années 1990 et au début des années 2000, des chercheurs ont établi le concept d’aveuglement face au changement. Ils ont démontré que les humains oublient souvent des changements substantiels lorsqu’ils observent des données visuelles. Cette découverte a permis d'établir une autre paire de concepts, les idées d'attention et de traitement partiel, en tant qu'éléments fondamentaux de la vision par ordinateur.
2011 :Pour la première fois, une équipe en Suisse démontre que les CNN appliqués aux GPU constituent un système de ML de vision par ordinateur définitivement efficace. Ces systèmes étaient révolutionnaires, battant de nombreux records de vision et surpassant pour la première fois les humains. Les systèmes de vision par ordinateur ont commencé à passer à des implémentations basées sur CNN.
2015 : Une mise en œuvre de l'apprentissage profond des CNN remporte pour la première fois le concours ImageNet, marquant le début de l'ère moderne de la vision par ordinateur.
Comment fonctionne la vision par ordinateur
Le travail de vision par ordinateur comprend généralement trois parties, que nous décrivons ci-dessous. Les détails de mise en œuvre de niveau inférieur peuvent être très complexes, impliquant souvent des étapes répétées, comme décrit dans la troisième partie ci-dessous. Même lorsque les détails de mise en œuvre sont compliqués, le travail suit généralement ces modèles.
1 Acquisition d'images
Comme les autres systèmes ML, les systèmes de traitement de données visuelles dépendent de la quantité et de la qualité des données auxquelles ils peuvent accéder. Lors de la conception d’un système de vision par ordinateur, une attention particulière est accordée au moment et à la manière dont les données sources et les images sont obtenues afin d’améliorer la qualité du traitement. Divers facteurs doivent être pris en compte et optimisés, notamment :
- Capteurs :nombre et types de capteurs utilisés. Les systèmes de vision par ordinateur utilisent des capteurs pour obtenir des données de leur environnement, notamment des caméras vidéo, du lidar (détection et télémétrie de la lumière), des radars et des capteurs infrarouges.
- Déploiement : la disposition et l'orientation des capteurs pour minimiser les angles morts et utiliser de manière optimale les informations des capteurs.
- Données des capteurs :différents types et quantités de données doivent être traités et interprétés différemment. Par exemple, les données IRM, radiographiques et vidéo nécessitent des exigences spécialisées en matière de traitement, de stockage et d’interprétation.
Un système de vision par ordinateur devrait idéalement avoir accès à juste assez de données d’image. Avec trop peu de données, il ne sera pas en mesure de voir suffisamment d’informations pour résoudre les problèmes qu’il est censé résoudre. Trop de données non pertinentes maximiseront les ressources du système, le ralentiront et rendront son fonctionnement coûteux. Une optimisation minutieuse de l’étape d’acquisition d’images est cruciale pour créer des systèmes de vision par ordinateur efficaces.
2 (Pré)traitement des images
Les mêmes données visuelles provenant de deux sources différentes peuvent signifier des choses différentes. Les détails sur le contexte dans lequel une image a été prise (comme la lumière ambiante, la température et le mouvement de la caméra) peuvent également indiquer que l'image doit être interprétée différemment.
Le prétraitement des images implique beaucoup de travail pour rendre les images plus faciles à comprendre et à analyser. Par exemple, les images peuvent être normalisées, ce qui signifie que les propriétés telles que la taille, la couleur, la résolution et l'orientation sont ajustées pour être cohérentes entre les images. D'autres propriétés peuvent également être ajustées pendant le prétraitement pour aider les algorithmes de vision à détecter les caractéristiques spécifiques au domaine. Par exemple, le contraste peut être amélioré pour rendre certains objets ou fonctionnalités plus visibles.
Des ajustements personnalisés peuvent être effectués pour compenser les différences entre les capteurs, les dommages causés aux capteurs et les travaux de maintenance associés. Enfin, certains ajustements pourraient être apportés pour optimiser l’efficacité et le coût du traitement, en tenant compte de détails spécifiques sur la manière dont les images seront analysées.
3 Traitement et analyse d'images : extraction de caractéristiques, reconnaissance de formes et classification
Les systèmes de vision par ordinateur actuels sont hiérarchiques et considèrent les parties de chaque image indépendamment. Chaque couche d'une hiérarchie est généralement spécialisée pour effectuer l'une des trois tâches suivantes :
- Extraction de fonctionnalités :une couche d’extraction de fonctionnalités trouve des composants d’image intéressants. Par exemple, il peut identifier où se trouvent les lignes droites dans l’image.
- Reconnaissance de formes :une couche de reconnaissance de formes examine la manière dont diverses fonctionnalités se combinent en modèles. Il peut par exemple identifier quelles combinaisons de lignes dans l’image forment des polygones.
- Classification :après suffisamment de répétitions d'extraction de caractéristiques et de reconnaissance de formes, le système en a peut-être appris suffisamment sur une image donnée pour répondre à une question de classification, telle que « Y a-t-il des voitures sur cette image ? » Une couche de classification répond à ces questions.
Le diagramme ci-dessous montre comment cela est implémenté dans une architecture de système de vision par ordinateur construite avec des CNN. L’entrée (généralement une image ou une vidéo) analysée par le système se trouve à l’extrême gauche du diagramme. Un CNN, implémenté comme un réseau neuronal profond, alterne des couches convolutives, qui excellent dans l'extraction de caractéristiques, avec des couches de pooling, qui excellent dans la reconnaissance de formes. Les détails de l'image sont traités de gauche à droite et il peut y avoir beaucoup plus de répétitions des deux calques que celles indiquées ci-dessous.
Une fois une analyse suffisamment approfondie terminée, une couche de neurones entièrement connectée considère tous les modèles et caractéristiques de données dans leur ensemble et résout un problème de classification (tel que « Y a-t-il une voiture sur la photo ? »).
Applications de la vision par ordinateur
La vision par ordinateur est applicable partout. À mesure que les systèmes sont devenus plus puissants et plus faciles à appliquer, le nombre d’applications a explosé. Voici quelques-unes des applications les plus connues.
Reconnaissance faciale
L'une des applications les plus répandues et les plus avancées de la vision par ordinateur consiste à détecter et à reconnaître les visages. Les smartphones, les systèmes de sécurité et les dispositifs de contrôle d'accès utilisent une combinaison de capteurs, de caméras et de réseaux neuronaux entraînés pour identifier les images contenant des visages et transformer tous les visages trouvés afin qu'ils puissent être analysés.
Un système de reconnaissance faciale recherche régulièrement les visages à proximité. Les données provenant de capteurs rapides et bon marché, tels qu'une source de lumière infrarouge et une caméra à faible résolution mais à contraste élevé, sont transmises via un modèle ML qui identifie la présence de visages.
Si des visages potentiels sont détectés, une caméra plus lente, plus coûteuse et à plus haute résolution peut être pointée vers eux, puis effectuer un court enregistrement. Un système de traitement visuel peut ensuite transformer l’enregistrement en reconstructions 3D pour aider à valider la présence d’un visage. Un classificateur facial peut alors décider si les personnes sur l'image font partie d'un groupe autorisé à déverrouiller un téléphone ou à accéder à un bâtiment.
Véhicules autonomes
Il est difficile de construire un système capable de contrôler un véhicule, de naviguer dans le monde et de réagir en temps réel aux changements de son environnement. Les systèmes de vision par ordinateur ne sont qu’une des technologies de base permettant aux véhicules autonomes.
Ces systèmes de vision apprennent à identifier les routes, les panneaux de signalisation, les véhicules, les obstacles, les piétons et la plupart des autres choses qu'ils peuvent rencontrer en conduisant. Avant de pouvoir être efficaces, ils doivent analyser de grandes quantités de données obtenues dans toutes sortes de conditions de conduite.
Pour être utiles dans des conditions réelles, les systèmes de vision par ordinateur utilisés pour les véhicules autonomes doivent être très rapides (pour que le véhicule autonome ait un maximum de temps pour réagir aux conditions changeantes), précis (puisqu'une erreur peut mettre des vies en danger) et puissants (puisque le problème est complexe : le système doit identifier les objets dans toutes les conditions météorologiques et d'éclairage). Les constructeurs de véhicules autonomes investissent massivement dans l’écosystème. Les volumes de données disponibles augmentent de façon exponentielle et les techniques utilisées pour les traiter s'améliorent rapidement.
Réalité augmentée
Les lunettes intelligentes et les caméras téléphoniques actuelles s'appuient sur des systèmes de vision par ordinateur pour offrir des expériences de réalité augmentée à leurs utilisateurs. Des systèmes bien entraînés, similaires à ceux utilisés pour activer les véhicules autonomes, identifient les objets dans le cadre d'une caméra ou d'un ensemble de lunettes intelligentes ainsi que la position des objets les uns par rapport aux autres dans l'espace 3D.
Les systèmes avancés de génération d’images se connectent ensuite à ces informations pour augmenter ce que la caméra ou les lunettes montrent à l’utilisateur de diverses manières. Par exemple, ils peuvent créer l’illusion que les données sont projetées sur des surfaces ou montrer comment des objets comme des meubles peuvent s’intégrer dans l’espace 3D.
Avantages de la vision par ordinateur
Les systèmes de vision par ordinateur peuvent aider à augmenter la vision humaine, à améliorer les systèmes de sécurité et à analyser les données à grande échelle. Les principaux avantages de leur utilisation sont les suivants :
Vitesse et échelle de reconnaissance d'objets
Les systèmes de vision par ordinateur de pointe peuvent identifier les objets beaucoup plus rapidement et à un volume beaucoup plus élevé que les humains. Une chaîne de montage, par exemple, avancera plus rapidement lorsqu’un système automatisé de vision par ordinateur assistera son superviseur. Les véhicules autonomes peuvent fonctionner en mode d'assistance à la conduite, aidant ainsi les conducteurs à prendre conscience des informations de leur environnement qu'ils ne détecteront pas rapidement. Ils peuvent également prendre pleinement le relais et prendre des décisions plus rapides et plus sûres qu’un humain sans aide.
Précision
Les systèmes de vision par ordinateur bien entraînés sont plus précis que les humains dans les tâches pour lesquelles ils sont formés. Par exemple, ils peuvent identifier plus précisément les défauts des objets ou détecter plus tôt les tumeurs cancéreuses dans les images médicales.
Gros volume de traitement de données
Les systèmes de vision peuvent identifier les anomalies et les menaces dans de grandes quantités d’images et de flux vidéo beaucoup plus rapidement et avec plus de précision que les humains. Leur capacité à traiter l’information est liée à la puissance de calcul disponible et peut être étendue indéfiniment.
Inconvénients de la vision par ordinateur
Les systèmes de vision par ordinateur hautes performances sont difficiles à produire. Certains des défis et inconvénients sont les suivants :
Surapprentissage
Les systèmes de vision par ordinateur actuels reposent sur des algorithmes et des réseaux d’apprentissage profond. Ils dépendent de l’accès à de grandes quantités de données annotées pendant la formation. Actuellement, les données d’entraînement visuel ne sont pas disponibles dans les volumes importants observés dans d’autres applications, et leur génération est difficile et coûteuse. En conséquence, de nombreux systèmes de vision par ordinateur sont formés sur des données insuffisantes et seront surajustés : ils auront besoin d’aide pour généraliser à des situations nouvelles et invisibles.
La confidentialité est difficile à garantir à grande échelle
Les systèmes de vision par ordinateur peuvent observer et apprendre de grandes quantités de données privées ou protégées. Une fois sur le terrain, ils peuvent également observer des données arbitraires dans leur environnement. Il est difficile de garantir que les données de formation sont exemptes d'informations privées, et il est encore plus difficile d'empêcher un système sur le terrain d'incorporer des informations privées dans sa formation.
Complexe informatique
Les systèmes utilisant la vision par ordinateur ont tendance à être appliqués à certains des problèmes les plus difficiles dans le domaine de l’IA. En conséquence, ils sont coûteux et complexes et peuvent être difficiles à construire et à assembler correctement.
Conclusion
Bon nombre des problèmes les plus intéressants et les plus difficiles du ML et de l’IA impliquent l’utilisation et l’application de systèmes de vision par ordinateur. Ils sont utiles partout, notamment dans les systèmes de sécurité, les véhicules autonomes, l’analyse d’images médicales et ailleurs. Cela dit, les systèmes de vision par ordinateur sont coûteux et difficiles à construire.
Ils dépendent d’une collecte de données chronophage à grande échelle, nécessitent des ressources personnalisées ou coûteuses avant de pouvoir être utilisés efficacement et soulèvent des problèmes de confidentialité. Des recherches approfondies sont en cours dans ce domaine clé du ML, qui progresse rapidement.