Table des matières:

Robot de tri de recyclage : 15 étapes (avec photos)
Robot de tri de recyclage : 15 étapes (avec photos)

Vidéo: Robot de tri de recyclage : 15 étapes (avec photos)

Vidéo: Robot de tri de recyclage : 15 étapes (avec photos)
Vidéo: ♻️ Ces machines de tri sont incroyables ! ♻️ 2024, Juillet
Anonim
Image
Image
Obtenir les données
Obtenir les données

Saviez-vous que le taux de contamination moyen dans les collectivités et les entreprises s'élève jusqu'à 25 %? Cela signifie qu'une pièce de recyclage sur quatre que vous jetez n'est pas recyclée. Ceci est dû à une erreur humaine dans les centres de recyclage. Traditionnellement, les travailleurs trient les déchets dans différents bacs en fonction du matériau. Les humains sont obligés de faire des erreurs et finissent par ne pas trier correctement les déchets, ce qui entraîne une contamination. Alors que la pollution et le changement climatique deviennent encore plus importants dans la société d'aujourd'hui, le recyclage joue un rôle important dans la protection de notre planète. En utilisant des robots pour trier les déchets, les taux de contamination diminueront considérablement, sans parler de beaucoup moins chers et plus durables. Pour résoudre ce problème, j'ai créé un robot de tri de recyclage qui utilise l'apprentissage automatique pour trier les différents matériaux de recyclage.

Étape 1: Pièces

Assurez-vous d'avoir les éléments suivants à suivre avec ce didacticiel:

Pièces imprimées en 3D (voir étape ci-dessous)

Raspberry Pi RPI 4 4 Go

Accélérateur USB Google Coral

Arduino Uno R3

Module de caméra Raspberry Pi V2

Alimentation murale 5V 2A DC

Alimentation CC 12V

SG90 9g Micro Servos 4pcs.

Écrou de blocage hexagonal en nylon autobloquant M3 x 0,5 mm en acier inoxydable 100pcs.

Vis en titane à tête ronde M3x20 10pcs.

MG996R Servomoteur analogique à couple d'engrenages en métal 4pcs.

Carte mémoire Samsung 32 Go Select

Câble Flex Adafruit pour Caméra Raspberry Pi - 1 mètre

M2 Mâle Femelle Laiton Entretoise Entretoise Vis Écrou Assortiment Kit

Ventilateur 60mm 12V

Boîte de projet de 6,69" x 5,12" x 2,95"

Étape 2: Pièces imprimées en 3D

Vous devrez imprimer en 3D toutes les pièces du bras robotique. Vous pouvez trouver tous les fichiers ici.

Étape 3: Coder

Veuillez cloner mon référentiel GitHub pour suivre ce tutoriel.

Étape 4: Obtenir les données

Pour former le modèle de détection d'objets capable de détecter et de reconnaître différents matériaux de recyclage, j'ai utilisé le jeu de données trashnet qui comprend 2527 images:

  • 501 verre
  • 594 papier
  • 403 carton
  • 482 plastique
  • 410 métal
  • 137 poubelles

L'image ci-dessus est un exemple d'une sur les images de l'ensemble de données.

Cet ensemble de données est très petit pour entraîner un modèle de détection d'objets. Il n'y a qu'une centaine d'images de déchets qui sont trop petites pour former un modèle précis, j'ai donc décidé de les laisser de côté.

Vous pouvez utiliser ce dossier Google Drive pour télécharger l'ensemble de données. Assurez-vous de télécharger le fichier dataset-resized.zip. Il contient l'ensemble d'images déjà redimensionnées à une taille plus petite pour permettre un entraînement plus rapide. Si vous souhaitez redimensionner les images brutes à votre guise, n'hésitez pas à télécharger le fichier dataset-original.zip.

Étape 5: Étiquetage des images

Étiquetage des images
Étiquetage des images

Ensuite, nous devons étiqueter plusieurs images de différents matériaux de recyclage afin de pouvoir entraîner le modèle de détection d'objets. Pour ce faire, j'ai utilisé labelImg, un logiciel gratuit qui permet d'étiqueter les cadres de délimitation des objets dans les images.

Étiquetez chaque image avec l'étiquette appropriée. Ce tutoriel vous montre comment. Assurez-vous que chaque cadre de délimitation est aussi proche de la bordure de chaque objet pour garantir que le modèle de détection est aussi précis que possible. Enregistrez tous les fichiers.xml dans un dossier.

La photo ci-dessus montre comment étiqueter vos images.

C'est une expérience très fastidieuse et abrutissante. Heureusement pour vous, j'ai déjà étiqueté toutes les images pour vous ! Vous pouvez le trouver ici.

Étape 6: Formation

En termes de formation, j'ai décidé d'utiliser l'apprentissage par transfert avec Tensorflow. Cela nous permet de former un modèle assez précis sans une grande quantité de données.

Nous pouvons procéder de plusieurs manières. Nous pouvons le faire sur notre ordinateur de bureau local sur le cloud. La formation sur notre machine locale prendra beaucoup de temps selon la puissance de votre ordinateur et si vous disposez d'un GPU puissant. C'est probablement le moyen le plus simple à mon avis, mais encore une fois avec l'inconvénient de la vitesse.

Il y a quelques éléments clés à noter au sujet de l'apprentissage par transfert. Vous devez vous assurer que le modèle pré-entraîné que vous utilisez pour l'entraînement est compatible avec le TPU Coral Edge. Vous pouvez trouver des modèles compatibles ici. J'ai utilisé le modèle MobileNet SSD v2 (COCO). N'hésitez pas à expérimenter avec d'autres aussi.

Pour m'entraîner sur votre machine locale, je vous recommande de suivre le didacticiel de Google ou le didacticiel EdjeElectronics si vous utilisez Windows 10. Personnellement, j'ai testé le didacticiel EdjeElectroncs et j'ai réussi sur mon bureau. Je ne peux pas confirmer si le tutoriel de Google fonctionnera, mais je serais surpris que ce ne soit pas le cas.

Pour vous entraîner dans le cloud, vous pouvez utiliser AWS ou GCP. J'ai trouvé ce tutoriel que vous pouvez essayer. Il utilise les TPU cloud de Google qui peuvent entraîner votre modèle de détection d'objets très rapidement. N'hésitez pas à utiliser AWS également.

Que vous vous entraîniez sur votre machine locale ou dans le cloud, vous devriez vous retrouver avec un modèle tensorflow formé.

Étape 7: Compilation du modèle entraîné

Compilation du modèle entraîné
Compilation du modèle entraîné

Pour que votre modèle entraîné fonctionne avec le Coral Edge TPU, vous devez le compiler.

Ci-dessus est un diagramme pour le flux de travail.

Après la formation, vous devez l'enregistrer sous forme de graphique gelé (fichier.pb). Ensuite, vous devez le convertir en un modèle Tensorflow Lite. Notez comment il est écrit "Quantification post-entraînement". Si vous avez utilisé les modèles pré-entraînés compatibles lors de l'utilisation de l'apprentissage par transfert, vous n'avez pas besoin de le faire. Jetez un œil à la documentation complète sur la compatibilité ici.

Avec le modèle Tensorflow Lite, vous devez le compiler en un modèle Edge TPU. Voir les détails sur la façon de procéder ici.

Étape 8: modèle de détection de recyclage

Si vous ne voulez pas vous soucier de la formation, de la conversion et de la compilation du modèle de détection d'objets, consultez mon modèle de détection de recyclage ici.

Étape 9: Déployer le modèle

Déployer le modèle
Déployer le modèle

L'étape suivante consiste à configurer le Raspberry Pi (RPI) et Edge TPU pour exécuter le modèle de détection d'objet entraîné.

Tout d'abord, configurez le RPI à l'aide de ce didacticiel.

Ensuite, configurez l'Edge TPU en suivant ce tutoriel.

Enfin, connectez le module caméra RPI au raspberry pi.

Vous êtes maintenant prêt à tester votre modèle de détection d'objets !

Si vous avez déjà cloné mon référentiel, vous souhaiterez accéder au répertoire RPI et exécuter le fichier test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt

Une petite fenêtre devrait apparaître et si vous mettez une bouteille d'eau en plastique ou un autre matériau recyclé, elle devrait la détecter comme l'image ci-dessus.

Appuyez sur la lettre "q" de votre clavier pour terminer le programme.

Étape 10: Construisez le bras robotique

Construire le bras robotique
Construire le bras robotique

Le bras robotique est un bras imprimé en 3D que j'ai trouvé ici. Suivez simplement le tutoriel pour le configurer.

L'image ci-dessus montre comment mon bras robotique s'est avéré.

Assurez-vous de connecter les broches du servo aux broches d'E/S Arduino dans mon code. Connectez les servos de bas en haut du bras dans cet ordre: 3, 11, 10, 9, 6, 5. Ne pas le connecter dans cet ordre entraînera le déplacement du bras du mauvais servo !

Testez pour le voir fonctionner en accédant au répertoire Arduino et en exécutant le fichier basicMovement.ino. Cela saisira simplement un objet que vous placerez devant le bras et le laissera tomber derrière.

Étape 11: connexion du RPI et du bras robotique

Connexion du RPI et du bras robotique
Connexion du RPI et du bras robotique

Nous devons d'abord monter le module de caméra au bas de la griffe. L'image ci-dessus montre à quoi cela devrait ressembler.

Essayez d'aligner la caméra aussi droit que possible pour minimiser les erreurs lors de la saisie du matériau recyclé reconnu. Vous devrez utiliser le long câble plat du module de caméra comme indiqué dans la liste des matériaux.

Ensuite, vous devez télécharger le fichier roboticArm.ino sur la carte Arduino.

Enfin, il suffit de connecter un câble USB entre le port USB du RPI et le port USB de l'Arduino. Cela leur permettra de communiquer via série. Suivez ce tutoriel pour savoir comment le configurer.

Étape 12: Touches finales

Touches finales
Touches finales
Touches finales
Touches finales

Cette étape est complètement facultative mais j'aime mettre tous mes composants dans une jolie petite boîte à projet.

Les images ci-dessus montrent à quoi cela ressemble.

Vous pouvez trouver la boîte de projet sur la liste des matériaux. J'ai juste percé des trous et utilisé des entretoises en laiton pour monter l'électronique. J'ai également monté 4 ventilateurs de refroidissement pour maintenir un flux d'air constant à travers le RPI et le TPU lorsqu'il est chaud.

Étape 13: Courir

Vous êtes maintenant prêt à mettre le bras robotique et le RPI sous tension ! Sur le RPI, vous pouvez simplement exécuter le fichier recycle_detection.py. Cela ouvrira une fenêtre et le bras robotique commencera à fonctionner comme dans la vidéo de démonstration ! Appuyez sur la lettre "q" de votre clavier pour terminer le programme.

N'hésitez pas à jouer avec le code et à vous amuser !

Étape 14: Travail futur

J'espère utiliser R. O. S. pour contrôler le bras robotique avec des mouvements plus précis. Cela permettra un ramassage plus précis des objets.

Étape 15: Des questions ?

N'hésitez pas à laisser un commentaire ci-dessous si vous avez des questions !

Conseillé: