Table des matières[Cacher][Montrer]
- Qu'est-ce que la classification des images ?
- Comment fonctionne la classification des images ?
Classification d'images à l'aide de Tensorflow & Keras en python+-
- 1. Configuration requise pour l'installation
- 2. Importation des dépendances
- 3. Initialisation des paramètres
- 4. Chargement du jeu de données
- 5. Création du modèle
- 6. Formation du modèle
- Tester le modèle
- 7. Importation des utilitaires pour les tests
- 8. Créer un répertoire python
- 9. Chargement des données de test et du modèle
- 10. Évaluation et prédiction
- 11. Résultats
- Conclusion
Il est rassurant de savoir que nous avons réussi à imprégner des robots de nos capacités innées à apprendre par l'exemple et à percevoir leur environnement. Le défi fondamental est que ceux qui apprennent aux ordinateurs à « voir » comme les humains auraient besoin de beaucoup plus de temps et d'efforts.
Cependant, si l'on considère la valeur pratique que cette compétence offre actuellement aux organisations et aux entreprises, l'effort en vaut la peine. Dans cet article, vous découvrirez la classification des images, son fonctionnement et sa mise en œuvre pratique. Commençons.
Qu'est-ce que la classification des images ?
Le travail d'insérer une image dans un Réseau neuronal et le faire sortir une certaine forme d'étiquette pour cette image est connue sous le nom de reconnaissance d'image. L'étiquette de sortie du réseau correspondra à une classe prédéfinie.
Il peut y avoir plusieurs classes attribuées à l'image, ou simplement une seule. Lorsqu'il n'y a qu'une seule classe, le terme « reconnaissance » est fréquemment utilisé, alors que lorsqu'il y a plusieurs classes, le terme « classification » est fréquemment utilisé.
Détection d'objets est un sous-ensemble de classification d'images dans lequel des instances particulières d'objets sont détectées comme appartenant à une classe donnée, telle que des animaux, des véhicules ou des humains.
Comment fonctionne la classification des images ?
Une image sous forme de pixels est analysée par un ordinateur. Pour ce faire, il traite l'image comme un ensemble de matrices dont la taille est déterminée par la résolution de l'image. En termes simples, la classification d'images est l'étude de données statistiques utilisant des algorithmes du point de vue d'un ordinateur.
La classification des images est réalisée dans le traitement d'images numériques en regroupant les pixels en groupes prédéterminés, ou "classes". Les algorithmes divisent l'image en une succession de caractéristiques remarquables, ce qui réduit la charge pour le classificateur final.
Ces qualités informent le classificateur de la signification de l'image et de la classification potentielle. Étant donné que le reste des processus de classification d'une image en dépendent, la méthode d'extraction des caractéristiques est la phase la plus critique.
La données fournies à l'algorithme est également crucial dans la classification d'images, en particulier la classification supervisée. Par rapport à un ensemble de données terrible avec un déséquilibre des données basé sur la classe et une faible qualité d'image et d'annotation, un ensemble de données de classification bien optimisé fonctionne admirablement.
Classification d'images à l'aide de Tensorflow & Keras en python
Nous utiliserons le CIFAR-10 ensemble de données (qui comprend des avions, des avions, des oiseaux et 7 autres choses).
1. Configuration requise pour l'installation
Le code ci-dessous installera tous les prérequis.
2. Importation des dépendances
Créez un fichier train.py en Python. Le code ci-dessous importera les dépendances Tensorflow et Keras.
3. Initialisation des paramètres
CIFAR-10 ne comprend que 10 catégories d'images, donc les classes numériques se réfèrent simplement au nombre de catégories à classer.
4. Chargement du jeu de données
La fonction utilise le module Tensorflow Datasets pour charger le jeu de données, et nous définissons avec info sur True pour obtenir des informations à ce sujet. Vous pouvez l'imprimer pour voir quels sont les champs et leurs valeurs, et nous utiliserons les informations pour récupérer le nombre d'échantillons dans les ensembles d'apprentissage et de test.
5. Création du modèle
Nous allons maintenant construire trois couches, chacune composée de deux ConvNets avec une fonction de mise en commun maximale et d'activation ReLU, suivie d'un système entièrement connecté de 1024 unités. En comparaison avec ResNet50 ou Xception, qui sont des modèles à la pointe de la technologie, il peut s'agir d'un modèle relativement petit.
6. Formation du modèle
J'ai utilisé Tensorboard pour mesurer la précision et la perte à chaque époque et nous fournir un bel affichage après avoir importé les données et généré le modèle. Exécutez le code suivant ; selon votre CPU/GPU, la formation prendra plusieurs minutes.
Pour utiliser tensorboard, tapez simplement la commande suivante dans le terminal ou l'invite de commande dans le répertoire courant :
Vous verrez que la perte de validation diminue et que la précision atteint environ 81 %. C'est fantastique!
Tester le modèle
Lorsque la formation est terminée, le modèle final et les poids sont enregistrés dans le dossier des résultats, ce qui nous permet de nous entraîner une fois et de faire des prédictions à tout moment. Suivez le code dans un nouveau fichier python nommé test.py.
7. Importation des utilitaires pour les tests
8. Créer un répertoire python
Créez un dictionnaire Python qui traduit chaque valeur entière en l'étiquette appropriée de l'ensemble de données :
9. Chargement des données de test et du modèle
Le code suivant chargera les données de test et le modèle.
10. Évaluation et prédiction
Le code suivant évaluera et fera des prédictions sur les images de grenouille.
11. Résultats
Le modèle a prédit la grenouille avec une précision de 80.62 %.
Conclusion
Bon, nous avons fini avec cette leçon. Bien que 80.62 % ne soit pas bon pour un petit CNN, je vous conseille fortement de modifier le modèle ou de regarder ResNet50, Xception ou d'autres modèles de pointe pour de meilleurs résultats.
Maintenant que vous avez créé votre premier réseau de reconnaissance d'images dans Keras, vous devez tester le modèle pour découvrir l'impact de différents paramètres sur ses performances.
Soyez sympa! Laissez un commentaire