Qu'est-ce que la vision par ordinateur? AI pour les images et la vidéo

La vision par ordinateur identifie et localise souvent des objets dans des images et des vidéos numériques. Puisque les organismes vivants traitent les images avec leur cortex visuel, de nombreux chercheurs ont pris l'architecture du cortex visuel des mammifères comme modèle de réseaux neuronaux conçus pour effectuer la reconnaissance d'images. La recherche biologique remonte aux années 50.

Les progrès de la vision par ordinateur au cours des 20 dernières années ont été absolument remarquables. Bien qu'ils ne soient pas encore parfaits, certains systèmes de vision par ordinateur atteignent une précision de 99% et d'autres fonctionnent correctement sur les appareils mobiles.

La percée dans le domaine des réseaux neuronaux pour la vision a été le LeNet-5 de Yann LeCun en 1998, un réseau neuronal convolutif à sept niveaux pour la reconnaissance de chiffres manuscrits numérisés dans des images 32x32 pixels. Pour analyser des images à plus haute résolution, le réseau LeNet-5 devrait être étendu à plus de neurones et plus de couches.

Les meilleurs modèles de classification d'images d'aujourd'hui peuvent identifier divers catalogues d'objets à une résolution HD en couleur. En plus des réseaux de neurones profonds purs (DNN), les gens utilisent parfois des modèles de vision hybrides, qui combinent l'apprentissage en profondeur avec des algorithmes d'apprentissage automatique classiques qui exécutent des sous-tâches spécifiques.

D'autres problèmes de vision en plus de la classification d'image de base ont été résolus avec l'apprentissage en profondeur, y compris la classification d'image avec localisation, détection d'objet, segmentation d'objet, transfert de style d'image, colorisation d'image, reconstruction d'image, super-résolution d'image et synthèse d'image.

Comment fonctionne la vision par ordinateur?

Les algorithmes de vision par ordinateur reposent généralement sur des réseaux de neurones convolutifs, ou CNN. Les CNN utilisent généralement des couches convolutives, regroupées, ReLU, entièrement connectées et de perte pour simuler un cortex visuel.

La couche convolutive prend essentiellement les intégrales de nombreuses petites régions qui se chevauchent. La couche de regroupement effectue une forme de sous-échantillonnage non linéaire. Les couches ReLU appliquent la fonction d'activation non saturante f (x) = max (0, x) .

Dans une couche entièrement connectée, les neurones sont connectés à toutes les activations de la couche précédente. Une couche de perte calcule la façon dont la formation du réseau pénalise l'écart entre les étiquettes prévues et vraies, à l'aide d'une perte Softmax ou d'entropie croisée pour la classification.

Ensembles de données de formation en vision par ordinateur

Il existe de nombreux ensembles de données d'images publiques utiles pour la formation de modèles de vision. Le plus simple et l'un des plus anciens est MNIST, qui contient 70 000 chiffres manuscrits dans 10 classes, 60 000 pour la formation et 10 000 pour les tests. MNIST est un jeu de données facile à modéliser, même en utilisant un ordinateur portable sans matériel d'accélération. CIFAR-10 et Fashion-MNIST sont des ensembles de données similaires à 10 classes. SVHN (street view house numbers) est un ensemble de 600K images de numéros de maison réels extraits de Google Street View.

COCO est un ensemble de données à plus grande échelle pour la détection d'objets, la segmentation et le sous-titrage, avec 330K images dans 80 catégories d'objets. ImageNet contient environ 1,5 million d'images avec des cadres de délimitation et des étiquettes, illustrant environ 100 000 phrases de WordNet. Open Images contient environ neuf millions d'URL vers des images, avec environ 5K étiquettes.

Google, Azure et AWS ont tous leurs propres modèles de vision formés sur de très grandes bases de données d'images. Vous pouvez les utiliser tels quels ou exécuter l'apprentissage par transfert pour adapter ces modèles à vos propres jeux de données d'image. Vous pouvez également effectuer un apprentissage par transfert à l'aide de modèles basés sur ImageNet et Open Images. Les avantages de l'apprentissage par transfert par rapport à la création d'un modèle à partir de zéro sont qu'il est beaucoup plus rapide (des heures plutôt que des semaines) et qu'il vous donne un modèle plus précis. Vous aurez toujours besoin de 1000 images par étiquette pour obtenir les meilleurs résultats, même si vous pouvez parfois vous en tirer avec aussi peu que 10 images par étiquette.

Applications de vision par ordinateur

Bien que la vision par ordinateur ne soit pas parfaite, elle est souvent assez bonne pour être pratique. Un bon exemple est la vision dans les automobiles autonomes.

Waymo, anciennement le projet de voiture autonome de Google, revendique des tests sur sept millions de kilomètres de routes publiques et la capacité de naviguer en toute sécurité dans le trafic quotidien. Il y a eu au moins un accident impliquant une camionnette Waymo; le logiciel n'a pas été jugé fautif, selon la police.

Tesla propose trois modèles de voitures autonomes. En 2018, un SUV Tesla en mode autonome a été impliqué dans un accident mortel. Le rapport sur l'accident indique que le conducteur (qui a été tué) avait les mains levées du volant malgré les multiples avertissements de la console, et que ni le conducteur ni le logiciel n'ont tenté de freiner pour éviter de heurter la barrière en béton. Le logiciel a depuis été mis à niveau pour exiger plutôt que suggérer que les mains du conducteur soient sur le volant.

Les magasins Amazon Go sont des magasins de vente au détail en libre-service sans paiement où le système de vision par ordinateur en magasin détecte lorsque les acheteurs prennent ou retournent des articles en stock; les acheteurs sont identifiés et facturés via une application Android ou iPhone. Lorsque le logiciel Amazon Go manque un article, l'acheteur peut le conserver gratuitement; lorsque le logiciel enregistre à tort un article pris, l'acheteur peut marquer l'article et obtenir un remboursement de ces frais.

Dans le domaine de la santé, il existe des applications de vision pour classer certaines caractéristiques dans des lames de pathologie, des radiographies pulmonaires et d'autres systèmes d'imagerie médicale. Quelques-uns d'entre eux ont démontré leur valeur par rapport aux praticiens humains qualifiés, certains suffisamment pour l'approbation réglementaire. Il existe également un système en temps réel pour estimer la perte de sang d'un patient dans une salle d'opération ou d'accouchement.

Il existe des applications de vision utiles pour l'agriculture (robots agricoles, surveillance des cultures et des sols et analyse prédictive), la banque (détection de fraude, authentification de documents et dépôts à distance) et la surveillance industrielle (puits à distance, sécurité du site et activité de travail).

Il existe également des applications de vision par ordinateur qui sont controversées voire obsolètes. Le premier est la reconnaissance faciale, qui, lorsqu'elle est utilisée par le gouvernement, peut constituer une atteinte à la vie privée, et qui a souvent un biais de formation qui tend à mal identifier les visages non blancs. Une autre est la génération deepfake, qui est plus qu'un peu effrayante lorsqu'elle est utilisée pour la pornographie ou la création de canulars et d'autres images frauduleuses.

Cadres et modèles de vision par ordinateur

La plupart des frameworks d'apprentissage en profondeur prennent en charge de manière substantielle la vision par ordinateur, y compris les frameworks basés sur Python TensorFlow (le premier choix pour la production), PyTorch (le premier choix pour la recherche universitaire) et MXNet (le framework de choix d'Amazon). OpenCV est une bibliothèque spécialisée pour la vision par ordinateur qui se penche vers les applications de vision en temps réel et tire parti des instructions MMX et SSE lorsqu'elles sont disponibles; il prend également en charge l'accélération à l'aide de CUDA, OpenCL, OpenGL et Vulkan.

Amazon Rekognition est un service d'analyse d'images et de vidéos qui peut identifier des objets, des personnes, du texte, des scènes et des activités, y compris l'analyse faciale et les étiquettes personnalisées. L'API Google Cloud Vision est un service d'analyse d'images pré-formé qui peut détecter des objets et des visages, lire du texte imprimé et manuscrit et créer des métadonnées dans votre catalogue d'images. Google AutoML Vision vous permet de former des modèles d'image personnalisés. Les étiquettes personnalisées Amazon Rekognition et Google AutoML Vision effectuent un apprentissage par transfert.

L'API Microsoft Computer Vision peut identifier des objets à partir d'un catalogue de 10 000, avec des étiquettes en 25 langues. Il renvoie également des cadres de délimitation pour les objets identifiés. L'API Azure Face détecte les visages qui perçoit les visages et les attributs dans une image, l'identification des personnes qui correspond à une personne dans votre référentiel privé de jusqu'à un million de personnes et la reconnaissance des émotions perçues. L'API Face peut s'exécuter dans le cloud ou en périphérie dans des conteneurs.

IBM Watson Visual Recognition peut classer les images à partir d'un modèle pré-entraîné, vous permettre de former des modèles d'image personnalisés avec l'apprentissage par transfert, effectuer la détection d'objets avec le comptage d'objets et vous entraîner à l'inspection visuelle. Watson Visual Recognition peut s'exécuter dans le cloud ou sur des appareils iOS à l'aide de Core ML.

Le package d'analyse de données Matlab peut effectuer la reconnaissance d'image à l'aide de l'apprentissage automatique et de l'apprentissage en profondeur. Il dispose d'une boîte à outils de vision par ordinateur en option et peut s'intégrer à OpenCV.

Les modèles de vision par ordinateur ont parcouru un long chemin depuis LeNet-5, et ce sont pour la plupart des CNN. Les exemples incluent AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) et MobileNet (2017-2018). La famille MobileNet de réseaux neuronaux de vision a été conçue en pensant aux appareils mobiles.

[Aussi sur: Kaggle: Là où les data scientists apprennent et s'affrontent]

Le framework Apple Vision effectue la détection des points de repère du visage et du visage, la détection de texte, la reconnaissance de codes-barres, l'enregistrement d'images et le suivi général des fonctionnalités. Vision permet également l'utilisation de modèles Core ML personnalisés pour des tâches telles que la classification ou la détection d'objets. Il fonctionne sur iOS et macOS. Le kit SDK Google ML Kit a des capacités similaires et fonctionne sur les appareils Android et iOS. ML Kit prend également en charge les API en langage naturel.

Comme nous l'avons vu, les systèmes de vision par ordinateur sont devenus suffisamment bons pour être utiles et, dans certains cas, plus précis que la vision humaine. Grâce à l'apprentissage par transfert, la personnalisation des modèles de vision est devenue pratique pour de simples mortels: la vision par ordinateur n'est plus le domaine exclusif des chercheurs de niveau doctorat.

En savoir plus sur l'apprentissage automatique et l'apprentissage profond:

  • Deep Learning vs Machine Learning: comprendre les différences
  • Qu'est-ce que l'apprentissage automatique? Intelligence dérivée des données
  • Qu'est-ce que le Deep Learning? Algorithmes qui imitent le cerveau humain
  • Explication des algorithmes d'apprentissage automatique
  • Qu'est-ce que le traitement du langage naturel? AI pour la parole et le texte
  • Le machine learning automatisé ou AutoML expliqué
  • L'apprentissage supervisé expliqué
  • Apprentissage semi-supervisé expliqué
  • L'apprentissage non supervisé expliqué
  • L'apprentissage par renforcement expliqué
  • Kaggle: là où les data scientists apprennent et s'affrontent
  • Qu'est-ce que CUDA? Traitement parallèle pour les GPU

Lisez les avis sur l'apprentissage automatique et l'apprentissage profond:

  • Comment choisir une plateforme d'apprentissage automatique dans le cloud
  • Deeplearning4j: Deep learning et ETL pour la JVM
  • Examen: Amazon SageMaker joue le rattrapage
  • Test de TensorFlow 2: apprentissage automatique plus facile
  • Bilan: Google Cloud AutoML est un véritable apprentissage automatique automatisé
  • Bilan: l'apprentissage profond MXNet brille avec Gluon
  • Examen PyTorch: un cadre d'apprentissage en profondeur conçu pour la vitesse
  • Bilan: Keras navigue à travers l'apprentissage profond