Université Sultan Moulay Slimane Faculté des Sciences et
technique de Beni Mellal
Smart waste Sorting
bin
Réalisée par:
Hasnae Ait Lhaj Encadré par:
Asmaa AAissaoui [Link] Baroudi
Soutenu le:17/04/2025
PLAN
I. PROBLÉMATIQUE
II. OBJECTIF PRINCIPALE
III. TECHNOLOGIES UTILISÉES
1. TECHNOLOGIES D'IA ET VISION PAR ORDINATEUR
2. CONTRÔLE MATÉRIEL ET AUTOMATIS ATION
IV. ARCHITECTURE ET FONCTIONNEMENT
V. RÉSULTATS OBTENUES
VI. LES LIMITES ET LES PERSPECTIVES
[Link] CODE UTILISÉ
[Link]
1
Problématique
Saviez-vous qu’en 2024, l’humanité génère plus de 2,3
milliards de tonnes de déchets chaque année ? Parmi eux,
moins de 20 % sont recyclés, et des millions de tonnes
finissent dans les océans, les sols, ou brûlés à l’air libre.
Cette réalité alarmante menace directement notre
écosystème et notre santé. Face à ce constat, une
question s’impose :
Comment automatiser le tri des déchets
pour rendre le recyclage plus efficace et
2
Face aux enjeux environnementaux
croissants et aux limites du tri manuel,
il devient essentiel de repenser les
méthodes de gestion des déchets.
Notre projet s’inscrit dans cette
dynamique en proposant une solution
intelligente et automatisée, capable de
trier les déchets avec rapidité et
précision. En combinant la puissance de
l’intelligence artificielle avec les
capacités d’un système embarqué, nous
visons à améliorer l’efficacité du tri à la
source, réduire la charge humaine, et
favoriser une meilleure valorisation des
déchets. Ce système représente ainsi
une avancée concrète vers un tri plus 3
Objectif princip
L’objectif principal de notre projet est de concevoir une
poubelle intelligente capable de trier automatiquement
les déchets selon leur nature (plastique,
papier ,verre ,etc.), en temps réel et avec une grande
précision. En utilisant un modèle de détection avancé
comme YOLOv8 et un système automatisé basé sur
Arduino, nous cherchons à réduire significativement
l’intervention humaine — jusqu’à 70 % — tout en
améliorant la fiabilité du tri. Ce projet vise à optimiser le
recyclage dès la source, faciliter la gestion des déchets
dans les environnements domestiques ou publics, et
contribuer à une démarche écologique durable et 4
Technologies utilisées
Technologies d'IA et Vision par Ordinateur
YOLO (You Only Look Once)
•Rôle : Détection en temps réel des déchets
(plastique, métal, etc.).
•Avantages :
• Vitesse : Traitement à 30-60 FPS (idéal pour la
vidéo en direct).
• Précision : mAP > 80% sur notre dataset
personnalisé. 5
Technologies utilisées
Technologies d'IA et Vision par Ordinateur
OpenCV (Open Source Computer Vision)
Fonctions clés :
• Capture vidéo depuis la webcam
([Link]).
• Prétraitement des images (redimensionnement,
normalisation).
• Affichage des résultats en direct avec annotations
6
Technologies utilisées
Contrôle Matériel et Automatisation
Arduino
Rôle : Exécuter les actions physiques basées sur les
prédictions.
Composants utilisés :
Servo-moteurs (pour diriger les déchets vers les
bacs).
Communication :
liaison série Python ↔ Arduino ([Link]()).
7
Architecture et fonction
L’architecture du système repose sur l’intégration de la vision
par ordinateur et de l’automatisation embarquée pour
assurer un tri intelligent des déchets. Une caméra connectée
à un ordinateur capture en temps réel l’image des objets
déposés. Cette image est ensuite traitée par un modèle
YOLOv8, qui détecte et identifie le type de déchet (plastique,
métal, papier, etc.). Une fois la classification effectuée, un
signal est envoyé via une interface série à une carte Arduino,
qui contrôle les actionneurs (comme des servomoteurs) pour
diriger le déchet vers le compartiment approprié. Cette
architecture modulaire permet une séparation fluide entre les
phases de détection, de traitement et d’action, assurant ainsi
8
Résultats obtenues
1)Précision élevée
2)Communication fluide entre Python et Arduino
3)Servomoteurs fonctionnant avec un faible taux
d’erreur pour diriger les déchets vers les bons
compartiments.
4)Le système a correctement classé les
différents types de déchets (plastique, métal,
papier, etc.).
5)Efficacité confirmée du système dans son état
actuel, prêt à être amélioré pour des
déploiements à plus grande échelle. 9
Les limites et les perspe
1)Sensibilité du système aux variations d’éclairage
2)Dépendance à la qualité de la caméra utilisée
3)Optimisation du modèle de détection avec des
techniques d’apprentissage plus avancées pour
augmenter la précision du système.
4)Développement d'une version IoT pour une gestion à
distance et un suivi en temps réel des performances
du système.
5)Extension à des environnements à plus grande
échelle (villes, usines) avec des applications variées
du tri automatisé. 10
Le code d’entraînement du modèl
###Script Python pour entraîner YOLOv8
from ultralytics import YOLO
# Charger un modèle pré-entraîné (par ex. YOLOv8s)
model = YOLO("[Link]") # ou '[Link]', '[Link]', etc.
# Entraîner le modèle
[Link](
data=r"C:\Users\hassnae\Downloads\python1\[Link]", # chemin vers le fichier [Link]
epochs=50, # nombre d'époques
imgsz=640, # taille des images
batch=16, # taille du batch
name="modele_personnalise_yolov8" # nom du dossier de sauvegarde
)
# Chemin du meilleur modèle après l'entraînement
chemin_modele = r"C:\Users\hassnae\Downloads\python1\[Link]"
print(f"Modèle entraîné enregistré ici : {chemin_modele}")
11
Le code python
import cv2
from ultralytics import YOLO
import serial
import smtplib
from [Link] import MIMEText
from [Link] import MIMEMultipart
# === Charger le modèle YOLO ===
model = YOLO(r'C:\Users\ASMAE\Downloads\[Link]', task='detect’)
# === Configuration Arduino ===
ser = [Link]('COM15', 500000, timeout=0.01)
def read_serial():
try:
info = [Link]().decode(errors='ignore').strip()
return info if info else '0'
except:
return '0'
11
# === Fonction d'envoi d'e-mail ===
def send_email(bin_status):
sender_email = "your_email@[Link]"
receiver_email = "person_in_charge@[Link]"
password = "your_password"
subject = "Smart Bin Alert 🚮"
body = f"The bin is currently {bin_status}. Please empty it soon."
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject
[Link](MIMEText(body, 'plain’))
try:
server = smtplib.SMTP_SSL('[Link]', 465)
[Link](sender_email, password)
[Link](sender_email, receiver_email, msg.as_string())
[Link]()
print("✅ Email sent.")
except Exception as e:
print(f"❌ Failed to send email: {e}")
12
try:
server = smtplib.SMTP_SSL('[Link]', 465)
[Link](sender_email, password)
[Link](sender_email, receiver_email, msg.as_string())
[Link]()
print("✅ Email sent.")
except Exception as e:
print(f"❌ Failed to send email: {e}")
# === Webcam ===
cap = [Link](0)
if not [Link]():
print("❌ Camera error.")
exit()
# === Boucle principale ===
threshold = 0.75
while True:
13
# === Boucle principale ===
threshold = 0.75
while True:
# Lire infos Arduino
info = read_serial()
try:
if int(info) == 1:
send_email("FULL")
except ValueError:
pass # Ignore si ce n’est pas un int valide
# Lire une image depuis la caméra
ret, frame = [Link]()
if not ret:
continue
# Détection avec YOLO
results = [Link](source=frame, conf=threshold, show=True)
for result in results:
for box in [Link]:
cls = int([Link][0])
label = [Link][cls]
14
if [Link]() == "plastic":
print("🔍 Plastic detected.")
[Link](b"1\n") # Envoi d'un signal à Arduino
while True:
ack = read_serial()
if ack == "ACK":
print("✅ Arduino confirmed action.")
break
if [Link](1) & 0xFF == ord('q'):
break
[Link]()
[Link]()
15
Résultats obtenues
16
Résultats obtenues
17
Résultats obtenues
18
Conclusion
En somme, le projet Smart Waste Sorting Bin offre
une solution innovante pour le tri automatisé des
déchets, combinant l’intelligence artificielle et
l’automatisation. Les résultats obtenus démontrent
l’efficacité du système dans la détection et le tri
précis des déchets, avec un fort potentiel
d'amélioration et d'extension. Ce système
représente une étape importante vers des solutions
plus écologiques et intelligentes dans la gestion des
déchets.
19
1