aminerrr commited on
Commit
f7b32f1
1 Parent(s): 2b5e4c2

Préparation pour le déploiement sur Hugging Face Spaces

Browse files
.gradio/flagged/dataset1.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ image,Probabilités,Conseil de recyclage,timestamp
2
+ .gradio\flagged\image\34ad0ea40fb6179c73c5\Capture.PNG,"{""label"": null, ""confidences"": null}",,2024-10-18 16:14:41.266438
.gradio/flagged/image/34ad0ea40fb6179c73c5/Capture.PNG ADDED
README copy.md ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Classification de Déchets avec MobileNetV2
2
+
3
+ Cette application utilise un modèle pré-entraîné pour classifier les images de déchets en différentes catégories et fournit des conseils de recyclage.
4
+
5
+ ## Fonctionnalités
6
+
7
+ - Classification des déchets en 6 catégories : carton, verre, métal, papier, plastique, ordures.
8
+ - Affichage des probabilités pour les 3 meilleures catégories.
9
+ - Conseils de recyclage spécifiques à chaque catégorie.
10
+
11
+ ## Installation
12
+
13
+ 1. Clonez le dépôt :https://github.com/Amirgu/trash_classification
14
+ 2. Installez les dépendances : pip install -r requirements.txt
15
+ 3. Lancer l'application : python app.py
16
+
17
+ ## Utilisation
18
+
19
+ - Accédez à l'interface web qui s'ouvre dans votre navigateur.
20
+ - Téléchargez une image de déchet pour obtenir la classification et les conseils.
21
+
22
+ ## Déploiement sur Hugging Face Spaces
23
+
24
+ Suivez les instructions fournies pour déployer l'application sur Hugging Face Spaces.
25
+
26
+ ## Licence
27
+
28
+ Ce projet est sous licence MIT.
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from huggingface_hub import hf_hub_download
2
+ import gradio as gr
3
+ import tensorflow as tf
4
+ import numpy as np
5
+ from tensorflow.keras.preprocessing.image import img_to_array
6
+ from PIL import Image
7
+ # Télécharger le fichier du modèle
8
+ model_path = hf_hub_download(
9
+ repo_id="ghifariaulia/mobilenetv2-trashnet", filename="mobilenetv2-trashnet.h5")
10
+
11
+ # Charger le modèle
12
+ model = tf.keras.models.load_model(model_path)
13
+ class_names = ['cardboard', 'glass', 'metal', 'paper', 'plastic', 'trash']
14
+
15
+
16
+ def preprocess_image(image):
17
+ # Redimensionner l'image à la taille attendue par le modèle
18
+ img = image.resize((224, 224))
19
+ # Convertir l'image en tableau numpy
20
+ img_array = img_to_array(img)
21
+ # Normaliser les pixels
22
+ img_array = img_array / 255.0
23
+ # Ajouter une dimension pour le batch
24
+ img_array = np.expand_dims(img_array, axis=0)
25
+ return img_array
26
+
27
+
28
+ def predict_image(image):
29
+ # Prétraiter l'image
30
+ img_array = preprocess_image(image)
31
+ # Faire la prédiction
32
+ predictions = model.predict(img_array)[0]
33
+ # Obtenir les probabilités pour chaque classe
34
+ confidences = {class_names[i]: float(
35
+ predictions[i]) for i in range(len(class_names))}
36
+ # Obtenir la classe prédite
37
+ predicted_class = np.argmax(predictions)
38
+ class_label = class_names[predicted_class]
39
+ # Obtenir le conseil de recyclage
40
+ tip = recycling_tips[class_label]
41
+ # Retourner les informations
42
+ return confidences, f"Catégorie prédite : {class_label}\nConseil : {tip}"
43
+
44
+
45
+ recycling_tips = {
46
+ 'cardboard': 'Pliez le carton et évitez de le mouiller avant de le recycler.',
47
+ 'glass': 'Retirez les bouchons et rincez les contenants en verre.',
48
+ 'metal': 'Rincez les canettes et boîtes métalliques avant de les recycler.',
49
+ 'paper': 'Évitez de recycler le papier sale ou gras.',
50
+ 'plastic': 'Vérifiez le symbole de recyclage et triez en conséquence.',
51
+ 'trash': 'Cet article n\'est pas recyclable, veuillez le jeter correctement.',
52
+ }
53
+
54
+ iface = gr.Interface(
55
+ fn=predict_image,
56
+ inputs=gr.Image(type="pil"),
57
+ outputs=[
58
+ gr.Label(num_top_classes=3, label="Probabilités"),
59
+ gr.Textbox(label="Conseil de recyclage")
60
+ ],
61
+ examples=[
62
+
63
+ ["examples/plastic.png"]
64
+ ],
65
+ title="Classification de déchets avec MobileNetV2",
66
+ description="Téléchargez une image de déchet pour connaître sa catégorie et obtenir des conseils de recyclage.",
67
+ flagging_mode="never"
68
+ )
69
+
70
+ # Lancer l'application
71
+ iface.launch()
examples/plastic.png ADDED
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ tensorflow>=2.0.0
2
+ gradio>=3.0.0
3
+ huggingface_hub
4
+ numpy
5
+ pillow
test.ipynb ADDED
File without changes