Inhaltsverzeichnis:
- Schritt 1: Teile
- Schritt 2: 3D-gedruckte Teile
- Schritt 3: Code
- Schritt 4: Abrufen der Daten
- Schritt 5: Beschriften der Bilder
- Schritt 6: Ausbildung
- Schritt 7: Kompilieren des trainierten Modells
- Schritt 8: Erkennungsmodell recyceln
- Schritt 9: Bereitstellen des Modells
- Schritt 10: Bauen Sie den Roboterarm
- Schritt 11: Anschließen des RPI und des Roboterarms
- Schritt 12: Letzter Schliff
- Schritt 13: Laufen
- Schritt 14: Zukünftige Arbeit
- Schritt 15: Fragen?
Video: Sortierroboter recyceln - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Wussten Sie, dass die durchschnittliche Kontaminationsrate in Gemeinden und Unternehmen bis zu 25 % beträgt? Das bedeutet, dass jedes vierte Stück Recycling, das Sie wegwerfen, nicht recycelt wird. Dies wird durch menschliches Versagen in Recyclingzentren verursacht. Traditionell sortieren Arbeiter den Müll je nach Material in verschiedene Behälter. Menschen machen zwangsläufig Fehler und sortieren den Müll nicht richtig, was zu Kontaminationen führt. Da Umweltverschmutzung und Klimawandel in der heutigen Gesellschaft noch wichtiger werden, leistet Recycling einen großen Beitrag zum Schutz unseres Planeten. Durch den Einsatz von Robotern zum Sortieren von Müll sinken die Kontaminationsraten drastisch, ganz zu schweigen von viel billiger und nachhaltiger. Um dies zu lösen, habe ich einen Recycling-Sortierroboter entwickelt, der maschinelles Lernen verwendet, um zwischen verschiedenen Recyclingmaterialien zu sortieren.
Schritt 1: Teile
Stellen Sie sicher, dass Sie die folgenden Teile zusammen mit diesem Tutorial befolgen:
3D-gedruckte Teile (siehe Schritt unten)
Raspberry Pi RPI 4 4GB
Google Coral USB-Beschleuniger
Arduino Uno R3
Raspberry Pi Kameramodul V2
5V 2A DC-Netzteil
DC 12V Netzteil
SG90 9g Micro Servos 4St.
M3 x 0,5 mm Edelstahl Selbstsichernde Nylon-Sechskantmutter 100 Stk.
M3x20 Titanschrauben mit Halbrundkopf 10Stk.
MG996R Metallgetriebe Drehmoment-Analog-Servomotor 4St.
Samsung 32GB Speicherkarte auswählen
Adafruit Flexkabel für Raspberry Pi Kamera - 1 Meter
M2 männlich weiblich Messing Distanzstück Abstandsschraube Mutter Sortimentssatz
60mm 12V Lüfter
6,69" x 5,12" x 2,95" Projektbox
Schritt 2: 3D-gedruckte Teile
Sie müssen alle Teile für den Roboterarm in 3D drucken. Alle Dateien finden Sie hier.
Schritt 3: Code
Bitte klonen Sie mein GitHub-Repository, um diesem Tutorial zu folgen.
Schritt 4: Abrufen der Daten
Um das Objekterkennungsmodell zu trainieren, das verschiedene Recyclingmaterialien erkennen und erkennen kann, habe ich den Trashnet-Datensatz verwendet, der 2527 Bilder enthält:
- 501 Glas
- 594 Papier
- 403 Karton
- 482 Kunststoff
- 410 Metall
- 137 Müll
Das obige Bild ist ein Beispiel für eines der Bilder aus dem Datensatz.
Dieser Datensatz ist sehr klein, um ein Objekterkennungsmodell zu trainieren. Es gibt nur etwa 100 Bilder von Müll, die zu wenig sind, um ein genaues Modell zu trainieren, also habe ich mich entschieden, es wegzulassen.
Sie können diesen Google Drive-Ordner verwenden, um den Datensatz herunterzuladen. Stellen Sie sicher, dass Sie die Datei dataset-resized.zip herunterladen. Es enthält den Satz von Bildern, deren Größe bereits auf eine kleinere Größe geändert wurde, um ein schnelleres Training zu ermöglichen. Wenn Sie die Größe der Rohbilder nach Ihren Wünschen ändern möchten, können Sie die Datei dataset-original.zip herunterladen.
Schritt 5: Beschriften der Bilder
Als nächstes müssen wir mehrere Bilder verschiedener Recyclingmaterialien beschriften, damit wir das Objekterkennungsmodell trainieren können. Dazu habe ich labelImg verwendet, eine kostenlose Software, mit der Sie Objektbegrenzungsrahmen in Bildern beschriften können.
Beschriften Sie jedes Bild mit dem richtigen Etikett. Dieses Tutorial zeigt Ihnen, wie. Stellen Sie sicher, dass sich jeder Begrenzungsrahmen so nah an der Grenze jedes Objekts befindet, um sicherzustellen, dass das Erkennungsmodell so genau wie möglich ist. Speichern Sie alle.xml-Dateien in einem Ordner.
Das Foto oben zeigt, wie Sie Ihre Bilder beschriften.
Dies ist eine sehr mühsame und betäubende Erfahrung. Zum Glück für dich habe ich bereits alle Bilder für dich beschriftet! Sie finden es hier.
Schritt 6: Ausbildung
In Bezug auf die Ausbildung habe ich mich für Transfer Learning mit Tensorflow entschieden. Dies ermöglicht es uns, ein anständig genaues Modell ohne große Datenmengen zu trainieren.
Es gibt ein paar Möglichkeiten, wie wir dies tun können. Wir können dies auf unserem lokalen Desktop-Computer in der Cloud tun. Das Training auf unserem lokalen Computer dauert sehr lange, je nachdem, wie leistungsstark Ihr Computer ist und ob Sie über eine leistungsstarke GPU verfügen. Dies ist meiner Meinung nach wahrscheinlich der einfachste Weg, aber auch mit der Kehrseite der Geschwindigkeit.
Beim Transferlernen sind einige wichtige Dinge zu beachten. Sie müssen sicherstellen, dass das vortrainierte Modell, das Sie für das Training verwenden, mit der Coral Edge TPU kompatibel ist. Hier finden Sie kompatible Modelle. Ich habe das Modell MobileNet SSD v2 (COCO) verwendet. Fühlen Sie sich frei, auch mit anderen zu experimentieren.
Um auf Ihrem lokalen Computer zu trainieren, würde ich empfehlen, das Tutorial von Google oder das Tutorial von EdjeElectronics zu befolgen, wenn es unter Windows 10 ausgeführt wird. Persönlich habe ich EdjeElectroncs Tutorial getestet und auf meinem Desktop Erfolg erzielt. Ich kann nicht bestätigen, ob das Tutorial von Google funktioniert, würde mich aber wundern, wenn es nicht funktioniert.
Um in der Cloud zu trainieren, können Sie AWS oder GCP verwenden. Ich habe dieses Tutorial gefunden, das Sie ausprobieren können. Es verwendet die Cloud-TPUs von Google, die Ihr Objekterkennungsmodell superschnell trainieren können. Gerne können Sie auch AWS verwenden.
Unabhängig davon, ob Sie auf Ihrem lokalen Computer oder in der Cloud trainieren, sollten Sie am Ende ein trainiertes Tensorflow-Modell erhalten.
Schritt 7: Kompilieren des trainierten Modells
Damit Ihr trainiertes Modell mit der Coral Edge TPU funktioniert, müssen Sie es kompilieren.
Oben ist ein Diagramm für den Workflow.
Nach dem Training müssen Sie es als eingefrorenes Diagramm (.pb-Datei) speichern. Anschließend müssen Sie es in ein Tensorflow Lite-Modell konvertieren. Beachten Sie, wie es "Quantisierung nach dem Training" heißt. Wenn Sie beim Transfer Learning die kompatiblen vortrainierten Modelle verwendet haben, müssen Sie dies nicht tun. Sehen Sie sich hier die vollständige Dokumentation zur Kompatibilität an.
Beim Tensorflow Lite-Modell müssen Sie es zu einem Edge-TPU-Modell kompilieren. Details dazu finden Sie hier.
Schritt 8: Erkennungsmodell recyceln
Wenn Sie sich das mühsame Trainieren, Konvertieren und Kompilieren des Objekterkennungsmodells ersparen möchten, sehen Sie sich hier mein Modell zur Wiederverwendungserkennung an.
Schritt 9: Bereitstellen des Modells
Der nächste Schritt besteht darin, den Raspberry Pi (RPI) und die Edge TPU einzurichten, um das trainierte Objekterkennungsmodell auszuführen.
Richten Sie zuerst das RPI mithilfe dieses Tutorials ein.
Richten Sie als Nächstes die Edge TPU gemäß diesem Tutorial ein.
Verbinden Sie schließlich das RPI-Kameramodul mit dem Himbeer-Pi.
Jetzt können Sie Ihr Objekterkennungsmodell testen!
Wenn Sie mein Repository bereits geklont haben, möchten Sie zum RPI-Verzeichnis navigieren und die Datei test_detection.py ausführen:
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
Ein kleines Fenster sollte sich öffnen und wenn Sie eine Plastikwasserflasche oder anderes Recyclingmaterial einsetzen, sollte es wie in der Abbildung oben erkannt werden.
Drücken Sie den Buchstaben "q" auf Ihrer Tastatur, um das Programm zu beenden.
Schritt 10: Bauen Sie den Roboterarm
Der Roboterarm ist ein 3D-gedruckter Arm, den ich hier gefunden habe. Folgen Sie einfach dem Tutorial zum Einrichten.
Das Bild oben zeigt, wie sich mein Roboterarm entwickelt hat.
Stellen Sie sicher, dass Sie die Servo-Pins mit den entsprechenden Arduino-I / O-Pins in meinem Code verbinden. Schließen Sie die Servos von unten nach oben am Arm in dieser Reihenfolge an: 3, 11, 10, 9, 6, 5. Nicht in dieser Reihenfolge wird der Arm das falsche Servo bewegen!
Testen Sie, ob es funktioniert, indem Sie zum Arduino-Verzeichnis navigieren und die Datei basicMovement.ino ausführen. Dies greift einfach einen Gegenstand, den Sie vor den Arm legen, und lässt ihn hinter sich fallen.
Schritt 11: Anschließen des RPI und des Roboterarms
Wir müssen zuerst das Kameramodul an der Unterseite der Klaue montieren. Das Bild oben zeigt, wie es aussehen sollte.
Versuchen Sie, die Kamera so gerade wie möglich auszurichten, um Fehler beim Erfassen des erkannten Recyclingmaterials zu minimieren. Sie müssen das lange Flachbandkabel des Kameramoduls verwenden, wie in der Materialliste angegeben.
Als nächstes müssen Sie die Datei roboticArm.ino auf das Arduino-Board hochladen.
Schließlich müssen wir nur noch ein USB-Kabel zwischen dem USB-Port des RPI und dem USB-Port des Arduino anschließen. Dadurch können sie seriell kommunizieren. Folgen Sie diesem Tutorial, um dies einzurichten.
Schritt 12: Letzter Schliff
Dieser Schritt ist völlig optional, aber ich möchte alle meine Komponenten in eine nette kleine Projektbox packen.
Die Bilder oben zeigen, wie es aussieht.
Die Projektbox finden Sie in der Materialliste. Ich habe gerade einige Löcher gebohrt und Messingabstandshalter verwendet, um die Elektronik zu montieren. Ich habe auch 4 Kühllüfter montiert, um im heißen Zustand einen konstanten Luftstrom durch das RPI und TPU zu gewährleisten.
Schritt 13: Laufen
Jetzt können Sie sowohl den Roboterarm als auch RPI einschalten! Auf dem RPI können Sie einfach die Datei recycle_detection.py ausführen. Dadurch wird ein Fenster geöffnet und der Roboterarm beginnt wie im Demo-Video zu laufen! Drücken Sie den Buchstaben "q" auf Ihrer Tastatur, um das Programm zu beenden.
Fühlen Sie sich frei, mit dem Code herumzuspielen und Spaß zu haben!
Schritt 14: Zukünftige Arbeit
Ich hoffe, R. O. S. um den Roboterarm mit präziseren Bewegungen zu steuern. Dies ermöglicht eine genauere Aufnahme von Objekten.
Schritt 15: Fragen?
Hinterlasse gerne unten einen Kommentar, wenn du Fragen hast!
Empfohlen:
WIE MAN EINE REPLIK DER BERÜHMTEN ALTOIDS ZINN HERSTELLT. (UND ZUR GLEICHEN ZEIT RECYCELN): 7 Schritte
WIE MAN EINE REPLIK DER BERÜHMTEN ALTOIDS ZINN HERSTELLT. (UND ZUR GLEICHEN ZEIT RECYCELN): Hi, bei diesem unzerstörbaren Gegenstand geht es darum, wie man eine Metallbox in der gleichen Größe (oder der gewünschten Größe) der Altoids-Dose herstellt. WISSEN SIE, WAS DAS BEDEUTET????Das bedeutet, dass Sie Ihre eigenen Dosen herstellen können….. JEDER GRÖSSE, DIE SIE WOLLEN!!!!!!!!!!!So geht's.MATERIALIEN: 2