Skip to content

abdelbaki-bouzaienne/controleQualite-TensorFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Controle Qualité avec TensorFlow

Étude de Cas - Contrôle Qualité des Fruits avec TensorFlow

L’objectif de cet exemple est de créer un modèle de contrôle qualité des fruits dans le domaine agroalimentaire à l'aide de TensorFlow et de l'apprentissage profond (Deep Learning). Ce modèle sera capable de classer les fruits en fonction de leur qualité (par exemple : "Bon" ou "Défectueux") en utilisant des images prises lors du processus de production.

Problématique :

Lors de la production de fruits transformés (jus, conserves, etc.), le contrôle qualité est crucial. Des défauts visibles, tels que des meurtrissures, des taches, ou des imperfections, peuvent nuire à la qualité du produit final. L’objectif est de créer un modèle capable d’analyser des images de fruits et de prédire leur qualité.

Étapes de la création du modèle de contrôle qualité des fruits avec TensorFlow


1. Collecte et Préparation des Données

Le premier objectif est de préparer un ensemble de données comprenant des images de fruits étiquetées, qui seront utilisées pour entraîner le modèle.

Données nécessaires :

  • Images de fruits (par exemple, pommes, oranges, bananes, etc.).
  • Étiquettes de qualité : Les images doivent être étiquetées comme "Bon" ou "Défectueux".

Ces images peuvent être prises sur la chaîne de production avec une caméra. Chaque image doit être accompagnée d’une étiquette décrivant la qualité du fruit.

Exemple de structure des données :

markdown
Copier le code
dataset/ bon/ apple_01.jpg apple_02.jpg banana_01.jpg defecueux/ apple_03.jpg banana_02.jpg

2. Préparation des Images

Avant d'utiliser ces données pour entraîner un modèle, nous devons prétraiter les images :

  • Redimensionnement : Redimensionner toutes les images à une taille uniforme.
  • Normalisation : Convertir les valeurs de pixels des images (généralement entre 0 et 255) en valeurs comprises entre 0 et 1 pour améliorer la convergence du modèle.
python
Copier le code
import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator

# Prétraitement des images : Redimensionnement et normalisation train_datagen = ImageDataGenerator( rescale=1./255, # Normalisation rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' )

train_generator = train_datagen.flow_from_directory( 'dataset/', target_size=(150, 150), # Redimensionner les images batch_size=32, class_mode='binary' # Les labels sont binaires : Bon ou Défectueux )


3. Création du Modèle de Réseau Neuronal Convolutionnel (CNN)

Un réseau de neurones convolutif (CNN) est très adapté aux tâches de classification d'images. Nous allons utiliser TensorFlow et l'API Keras pour définir un modèle de CNN. Le modèle apprendra à extraire des caractéristiques importantes des images (par exemple, les formes, les couleurs, etc.) et à prédire la qualité du fruit.

Architecture du modèle :

  • Convolution 2D : Apprendre des motifs dans les images.
  • MaxPooling : Réduire les dimensions des cartes de caractéristiques.
  • Dense : Couches entièrement connectées pour la classification.
python
Copier le code
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

# Création du modèle model = Sequential([ Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)), MaxPooling2D(pool_size=(2, 2)), Conv2D(64, (3, 3), activation='relu'), MaxPooling2D(pool_size=(2, 2)), Conv2D(128, (3, 3), activation='relu'), MaxPooling2D(pool_size=(2, 2)), Flatten(), Dense(512, activation='relu'), Dropout(0.5), # Pour éviter le sur-apprentissage Dense(1, activation='sigmoid') # Sortie binaire : Bon ou Défectueux ])

# Compilation du modèle model.compile(optimizer='adam', loss='binary_crossentropy', # Perte binaire pour classification binaire metrics=['accuracy'])


4. Entraînement du Modèle

Maintenant que nous avons défini le modèle, nous allons l'entraîner avec les images étiquetées. Nous utiliserons une validation croisée pour évaluer la performance du modèle.

python
Copier le code
# Entraînement du modèle history = model.fit( train_generator, steps_per_epoch=100, # Nombre d'itérations par époque epochs=10, # Nombre d'époques verbose=1 )

5. Évaluation du Modèle

Une fois le modèle entraîné, nous devons évaluer sa performance sur un ensemble de test. Si nous avons un ensemble de données séparé pour les tests, nous pouvons l’utiliser pour obtenir des métriques comme l’exactitude et la perte.

python
Copier le code
# Évaluation sur les données de test test_datagen = ImageDataGenerator(rescale=1./255) test_generator = test_datagen.flow_from_directory( 'dataset/test/', target_size=(150, 150), batch_size=32, class_mode='binary' )

# Évaluer le modèle score = model.evaluate(test_generator, verbose=1) print(f"Perte : {score[0]}, Précision : {score[1]}")


6. Prédictions sur de Nouvelles Images

Une fois le modèle entraîné et évalué, nous pouvons l’utiliser pour faire des prédictions sur de nouvelles images de fruits. Cela permet de classer les fruits comme "Bon" ou "Défectueux" en fonction des critères appris pendant l'entraînement.

python
Copier le code
from tensorflow.keras.preprocessing import image import numpy as np

# Charger une image à prédire img_path = 'path_to_new_image.jpg' img = image.load_img(img_path, target_size=(150, 150))

# Convertir l'image en un tableau numpy et normaliser img_array = image.img_to_array(img) / 255.0 img_array = np.expand_dims(img_array, axis=0)

# Prédiction prediction = model.predict(img_array) if prediction[0] > 0.5: print("Le fruit est défectueux.") else: print("Le fruit est bon.")


7. Conclusion

Ce modèle de contrôle qualité des fruits, basé sur TensorFlow, permet de classifier efficacement les fruits en fonction de leur qualité à partir d'images. L'utilisation d'un réseau neuronal convolutif (CNN) permet d'extraire des caractéristiques importantes des images (comme des défauts visibles) et de prédire la qualité des fruits en temps réel sur la chaîne de production.

Avantages :

  • Automatisation du contrôle qualité.
  • Réduction des erreurs humaines dans le tri des fruits.
  • Optimisation des coûts : Les fruits défectueux sont identifiés tôt, ce qui permet de réduire le gaspillage.

En utilisant TensorFlow, les producteurs de fruits peuvent améliorer la consistance et la qualité de leurs produits, tout en réduisant les coûts associés à la gestion des défauts.


Fin de l'exemple

Bon Travail

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors