← Retourner à la liste des articles
Image blog
Auteur

Par Équipe Blent

Data Scientist

Publié le 6 janv. 2022

Catégorie Machine Learning

C'est quoi la Computer Vision ?

La Computer Vision (ou vision par ordinateur) est un domaine du Machine Learning et de l'intelligence artificielle qui s’intéresse à rendre possible aux ordinateurs de voir, tout en recopiant des parties de la complexité des yeux humains. La machine aujourd’hui est capable de voir, de comprendre, de mesurer et de créer des objets visuels compréhensibles et cohérents, tout cela grâce aux récentes avancées du Deep Learning.

Mais quels sont les différentes méthodes que l'on rencontre en Computer Vision ? Quels sont les algorithmes de recherche en Deep Learning que l'on utilise aujourd'hui ? Quelles sont les applications de la Computer Vision au quotidien ? Détaillons ensemble tout cela.

Détection d'objets

L’une des premières applications de la Computer Vision est la détection et la reconnaissance d’objets. Il s’agit essentiellement d’identifier et de localiser des objets de classes primaires (humains, animaux, voitures, véhicules...) dans des images ou bien des vidéos.

Source : DataGenius

Cette technique constitue la base de nombreuses autres tâches plus complexes qui contribuent à l’automatisation des domaines comme la santé la sécurité et l’industrie.

  • La conduite autonome, pour cartographier l'environnement autour de la voiture et prendre des actions en conséquences.
  • La vidéo-surveillance, pour détecter les intrusions dans les entrepôts ou identifier les risques liés au travail.
  • La reconnaissance faciale, utilisée notamment par des produits et des technologies embarquées comme les smartphones.
  • La reconnaissance de caractères, utilisée dans les systèmes informatique de nombreux services en entreprise (comptabilité, audit, finance).
  • La vision pour la robotique, permettant d'acquérir une information visuelle pour se déplacer ou pour entreprendre des actions spécifiques.

Les algorithmes Data populaires utilisés pour effectuer la détection des objets peuvent se classifier dans deux catégories.


À lire aussi : découvrez notre formation MLOps


  • La famille de techniques conçues pour la vitesse et l’utilisation en temps réel : YOLO (You Only Look Once), SqueezeDet, ou encore MobileNet. Ces algorithmes privilégient la rapidité d'exécution et de traitement, et sont donc adaptés dans les situations où la décision doit être prise rapidement, comme pour la conduite autonome.
  • La famille de techniques conçues pour la performance du modèle, comme R-CNN (Region-Based Convolutional Neural Networks). À l'inverse, on préférera utiliser ces algorithmes dans les situations où l'on souhaite obtenir les résultats les plus précis, au détriment d'une vitesse d'exécution moins élevée.

Segmentation d'objets

La segmentation d'objets ajoute à la détection et la reconnaissance d'objet l'intelligence et la précision de détecter quels pixels appartiennent à un objet. Cela signifie que nous créons un masque qui délimite l’objet et le distingue de tous les autres éléments de l’image ou la vidéo.

Source : ICHI

Cette technique sert à réduire la complexité de l’image et par suite rendre l’analyse ou le traitement de cette dernière plus simple.

  • Les machines qui naviguent telles que les voitures autonomes, les robots, les avions sans pilotes s’en servent pour comprendre leur environnement, en plus de la détection d'objets. La segmentation d'objet (souvent utilisée avec des techniques de rendu 3D) va permettre à la machine de délimiter l'objet dans l'espace, en plus de l'identifier/catégoriser.
  • La segmentation joue également un rôle important dans l’imagerie médicale. Elle intervient notamment pour les tâches de détection de tumeurs, visibles sur des radiographies mais qui peuvent être difficilement identifiables. L'utilisation de la segmentation va permettre d'automatiser ce processus tout en traitant beaucoup plus d'images que pourrait le faire un médecin.
  • Les satellites utilisent cette technique pour segmenter les routes, les bâtiments ou les reliefs (montages, rivières, etc). Par exemple, sur Google Maps, les axes routiers et les bâtiments sont automatiquement générés à partir des images satellites. Ces informations sont très utiles pour les technologies de GPS par exemple.

Les algorithmes les plus utilisés pour cette tâche sont généralement des réseaux de neurones qui utilisent une structure encodeur-décodeur où l’encodeur est suivi d’un goulot d’étranglement et d’un décodeur, comme dans le FCN (Fully Convolutional Network). Un autre algorithme également très populaire est U-Net, très utilisé dans le domaine médical pour ses performances élevées.

Génération d'images

L’IA peut-elle générer des images et faire de l'art ? La réponse est oui ! Et ça devient plus difficile chaque jour de distinguer entre les images générées par la machine et les originaux. En effet, ça pourra dans le futur proche résoudre le problème du manque et de la cherté des données images.

La génération d'image est une application plus exotique de la vision par ordinateur.

Source : KDnuggets

L’un des algorithmes génératifs les plus performants pour la génération d’images est le Generative Adversarial Networks (ou GANs). Dans une structure GAN ordinaire, il y a deux agents qui se font concurrence : un Générateur et un Discriminateur. Le premier génère des images, le deuxième tente de prédire ce qui est réel et ce qui est faux. Le générateur essaye en contrepartie d’améliorer ses imitations. On a comme résultat un modèle de Machine Learning puissant capable de générer des images, une vidéo et même des vocaux réalistes.

Parmi les utilisations des GANs les plus impressionnantes à l'état de l'art, nous pouvons énumérer

  • le transfert de style, où l'on va appliquer le style d'une image à une autre (peinture, chromatique, etc) ;
  • la génération des visages humains, comme le site This Person Does Not Exist, où chaque image est un visage généré par un ordinateur ;
  • le swapping de visages, qui consiste à échanger le visage de deux personnes.

En revanche, l'apprentissage des modèles de génération d'images est longue et difficile, car ce processus est très demandeur en puissance de calcul. Pour cela, on utilise souvent des ressources dans le Cloud pour paralléliser les calculs et obtenir des résultats plus rapidement.

Voitures autonomes

Les voitures autonomes sont l’un des plus récents chefs-d’œuvre de la Computer Vision sous forme de systèmes embarqués, où la recherche à ce sujet est très active. Dans les prochaines années, on sera capable de monter dans son véhicule et faire ce qu’on veut, lire un livre ou bien regarder sa série préférée, en attendant qu’on arrive à sa destination. Cet ensemble de services va pouvoir sauver des vies en réduisant significativement la probabilité d’accidents de la route.


À lire aussi : découvrez notre formation MLOps


Comment cela est-il possible ? Ces véhicules ont une capacité d’analyse de leur environnement et le monde qui les entoure grâce à des caméras et des radars. Les caméras détectent les objets avec des algorithmes à utilisation en temps réel, ils sont en premier classifiés (est-ce une personne ? un autre véhicule ?) par des méthodes de détection d'objets, et sont ensuite localisés par des méthodes de segmentation d'objets.

Source : Towards Data Science

À l’aide des algorithmes de segmentation d’image, nous sommes capables de trouver les bords de la rue, détecter et comprendre les panneaux de signalisation routière et les feux et ensuite assembler le tout pour fournir les informations nécessaire pour que la véhicule puisse décider ou et comment circuler sans intervention humaine, tout cela grâce à l'informatique à la périphérie (sans données envoyées dans le Cloud).

Cependant, nous avons également besoin de modèles très précis de plus de 99,9%, car toute erreur commise peut-être désastreuse et coûter des vies. Pour cela, il faut beaucoup de données pour identifier de nombreuses situations différentes qui sont en ligne avec la réalité.

Malgré les progrès récents dans ce nouveau domaine de la technologie, nous ne sommes même pas près de libérer sa puissance, car les traitements et calculs sont intensifs et dans un système embarqué, il est plus difficile d'avoir des ressources à disposition que dans le Cloud. La Computer Vision croît à un rythme effréné et ne devrait pas s’arrêter de sitôt.

La formation Computer Vision de Blent

La Computer Vision demande des compétences en Deep Learning, notamment sur les structures élémentaires comme les RNN ou les CNN. Elle est nécessaire dans de nombreux domaines tels que l'énergie, les transports ou même les banques.

La formation Computer Vision de Blent développe en détails les méthodes présentées dans cet article, et permet de mettre en pratique différents algorithmes de vision par ordinateur sur des images issues de jeux de données réels.

Cette formation permet également de maîtriser les structures élémentaires du Deep Learning tels que les réseaux récurrents, les réseaux convolutionnels et les techniques spécialisées (régularisation, stabilité, optimisation).

Vous souhaitez vous former au MLOps ?

Articles similaires

Blog

20 sept. 2022

Machine Learning

Hugging Face est une startup française qui s'est fait connaître grâce à l'infrastructure NLP qu'ils ont développée. Aujourd'hui, elle est sur le point de révolutionner le domaine du Machine Learning et traitement automatique du langage naturel. Dans cet article, nous allons présenter Hugging Face et détailler les taches de base que cette librairie permet de réaliser. Nous allons également énumérer ses avantages et ses alternatifs.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

12 juil. 2022

Machine Learning

spaCy est une bibliothèque open-source pour le traitement avancé du langage naturel. Elle est conçue spécifiquement pour une utilisation en production et permet de construire des applications qui traitent et comprennent de grands volumes de texte.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

4 juil. 2022

Machine Learning

Un auto-encodeur est une structure de réseaux neuronaux profonds qui s'entraîne pour réduire la quantité de données nécessaires pour représenter une donnée d'entrée. Ils sont couramment utilisés en apprentissage automatique pour effectuer des tâches de compression de données, d'apprentissage de représentations et de détection de motifs.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article