Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Robot de tri de recyclage avec Google Coral

Saviez-vous que le taux moyen de contamination dans les collectivités et les entreprises peut atteindre 25 % ? Cela signifie qu'une pièce de recyclage sur quatre que vous jetez n'est pas recyclée. Cela 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 voués à 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.

Démo :

Code :

Veuillez cloner mon dépôt GitHub pour suivre ce tutoriel.

Étape 1, Obtention des données :

Pour entraîner 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é l'ensemble de données Trashnet qui comprend 2527 images :

Voici un exemple d'image :

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 2, é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.

Voici 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 3, formation :

En termes de formation, j'ai décidé d'utiliser l'apprentissage par transfert à l'aide de Tensorflow. Cela nous permet d'entraîner 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 Coral Edge TPU. 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 ordinateur local, 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 didacticiel 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 4, compilation du modèle formé :

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

Voici un schéma du workflow :

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é-formés compatibles lors de l'utilisation de l'apprentissage par transfert, vous n'avez pas besoin de le faire. Consultez la documentation complète sur la compatibilité ici.

Avec le modèle Tensorflow Lite, vous devez le compiler en un modèle Edge TPU. Découvrez comment procéder ici.

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 5, 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 tutoriel.

Ensuite, configurez 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 dépôt, 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 ceci :

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

Étape 6, 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.

Voici comment mon bras 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 bras à déplacer le 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 7, Connecter le RPI et le bras robotique :

Nous devons d'abord monter le module caméra au bas de la griffe :

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 configurer cela.

Étape 8, Touches finales :

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

Voici à quoi cela ressemble :

Source :Robot de tri de recyclage avec Google Coral


Processus de fabrication

  1. Train miniature
  2. Enregistreur de capteur Python/MicroPython avec Google Sheets
  3. Un robot mobile avec un évitement d'obstacles basé sur la vision
  4. Robot contrôlé par le Web Raspberry Pi avec vidéo
  5. Robot de désinfection avec des lumières ultraviolettes
  6. Obstacles pour éviter le robot avec servomoteur
  7. Contrôler un robot Roomba avec Arduino et un appareil Android
  8. Contrôle PID d'un robot préhenseur dans Matlab / Simulink
  9. Centre de tournage équipé d'un bras robotisé