TensorFlow fournit un certain nombre d'outils de vision par ordinateur (CV) et de classification d'images. Ce document présente certains de ces outils et fournit un aperçu des ressources pour vous aider à démarrer avec les tâches courantes du CV.
Bibliothèques et outils de vision
TensorFlow fournit des outils CV via les bibliothèques Keras de niveau supérieur et le module tf.image
de niveau inférieur. Pour la plupart des cas d'utilisation, les bibliothèques Keras seront plus pratiques que les alternatives TensorFlow intégrées. Mais si les options Keras ne correspondent pas à votre cas d'utilisation ou si vous souhaitez un contrôle de niveau inférieur sur le prétraitement de l'image, vous aurez peut-être besoin des outils TensorFlow de niveau inférieur.
KerasCV
Si vous débutez tout juste avec un projet de CV et que vous ne savez pas de quelles bibliothèques et outils vous aurez besoin, KerasCV est un bon point de départ. KerasCV est une bibliothèque de composants CV modulaires construite sur Keras Core. KerasCV comprend des modèles, des couches, des métriques, des rappels et d'autres outils qui étendent l'API Keras de haut niveau pour les tâches CV. Les API KerasCV peuvent aider à l'augmentation des données, à la classification, à la détection d'objets, à la segmentation, à la génération d'images et à d'autres flux de travail de CV courants. Vous pouvez utiliser KerasCV pour assembler rapidement des pipelines de formation et d’inférence de pointe de qualité production.
Utilitaires Keras
tf.keras.utils
fournit plusieurs utilitaires de prétraitement d'image de haut niveau. Par exemple, tf.keras.utils.image_dataset_from_directory
génère un tf.data.Dataset
à partir d'un répertoire d'images sur le disque.
tf.image
Si KerasCV ne correspond pas à votre cas d'utilisation, vous pouvez utiliser tf.image
et tf.data
pour écrire vos propres pipelines ou couches d'augmentation de données.
Le module tf.image
contient diverses fonctions de traitement d'image, telles que tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
et tf.image.stateless_random*
.
L'API tf.data
vous permet de créer des pipelines d'entrée complexes à partir d'éléments simples et réutilisables.
Ensembles de données TensorFlow
TensorFlow Datasets est une collection d'ensembles de données prêts à être utilisés avec TensorFlow. De nombreux ensembles de données (par exemple, MNIST , Fashion-MNIST et TF Flowers ) peuvent être utilisés pour développer et tester des algorithmes de vision par ordinateur.
Où commencer
Les ressources suivantes vous aideront à être opérationnel avec les outils TensorFlow et Keras CV.
- KerasCV : Documentation et ressources pour KerasCV.
- Guides du développeur KerasCV : Guides pour effectuer des tâches de CV courantes à l'aide de KerasCV. Si vous êtes nouveau sur KerasCV, la classification avec KerasCV est un bon point de départ.
Tutoriels TensorFlow : la documentation de base de TensorFlow (ce guide) comprend un certain nombre de didacticiels de traitement de CV et d'images.
- Classification de base : classer les images de vêtements : entraînez un modèle de réseau neuronal pour classer les images de vêtements, comme les baskets et les chemises.
Charger et prétraiter des images : chargez et prétraitez un ensemble de données d'image de trois manières :
- Utilisez les utilitaires de prétraitement Keras de haut niveau pour lire un répertoire d'images sur le disque.
- Écrivez votre propre pipeline d'entrée à partir de zéro en utilisant
tf.data
. - Téléchargez un ensemble de données à partir du vaste catalogue disponible dans TensorFlow Datasets .
Charger des données vidéo : chargez et prétraitez les données vidéo AVI à l'aide de l'ensemble de données sur l'action humaine UCF101 .
Réseau de neurones convolutifs (CNN) : formez un réseau de neurones convolutifs (CNN) simple pour classer les images CIFAR à l'aide de l' API Keras .
Classification d'images : classez les images de fleurs à l'aide d'un modèle
tf.keras.Sequential
et chargez les données à l'aide detf.keras.utils.image_dataset_from_directory
.Apprentissage par transfert et mise au point : classifiez les images de chats et de chiens en utilisant l'apprentissage par transfert à partir d'un réseau pré-entraîné.
Augmentation des données : augmentez la diversité de votre ensemble d'entraînement en appliquant des transformations aléatoires (mais réalistes), telles que la rotation de l'image.
Segmentation d'image : effectuez une segmentation d'image à l'aide d'un U-Net modifié.
Classification vidéo avec un réseau neuronal convolutif 3D : entraînez un réseau neuronal convolutif (CNN) 3D pour la classification vidéo à l'aide de l'ensemble de données de reconnaissance d'action UCF101 .
Transférez l'apprentissage pour la classification vidéo avec MoViNet : utilisez un modèle MoViNet pré-entraîné et l' ensemble de données UCF101 pour classer les vidéos pour une tâche de reconnaissance d'action.