Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Recycle sorteerrobot met Google Coral

Wist u dat het gemiddelde besmettingspercentage in gemeenschappen en bedrijven kan oplopen tot 25%? Dat betekent dat één op de vier stukjes recycling die je weggooit, niet wordt gerecycled. Dit wordt veroorzaakt door menselijke fouten in recyclingcentra. Traditioneel sorteren werknemers het afval in verschillende bakken, afhankelijk van het materiaal. Mensen zullen ongetwijfeld fouten maken en uiteindelijk het afval niet goed sorteren, wat leidt tot besmetting. Nu vervuiling en klimaatverandering nog belangrijker worden in de huidige samenleving, speelt recycling een grote rol bij de bescherming van onze planeet. Door robots in te zetten om afval te sorteren, zal de besmettingsgraad drastisch dalen, om nog maar te zwijgen van een stuk goedkoper en duurzamer. Om dit op te lossen, heb ik een recycle-sorteerrobot gemaakt die machine learning gebruikt om te sorteren tussen verschillende recyclematerialen.

Demo:

Code:

Kloon mijn GitHub-repository om samen met deze tutorial te volgen.

Stap 1, gegevens verkrijgen:

Om het objectdetectiemodel te trainen dat verschillende recyclingmaterialen kan detecteren en herkennen, heb ik de Trashnet-dataset gebruikt die 2527 afbeeldingen bevat:

  • 501 glas
  • 594 papier
  • 403 karton
  • 482 plastic
  • 410 metaal
  • 137 prullenbak

Hier is een voorbeeldafbeelding:

Deze dataset is erg klein om een ​​objectdetectiemodel te trainen. Er zijn slechts ongeveer 100 afbeeldingen van rommel die te weinig zijn om een ​​nauwkeurig model te trainen, dus heb ik besloten om het weg te laten.

U kunt deze Google Drive-map gebruiken om de dataset te downloaden. Zorg ervoor dat u het bestand dataset-resized.zip downloadt. Het bevat de reeks afbeeldingen die al zijn verkleind tot een kleiner formaat om sneller te kunnen trainen. Als u het formaat van de onbewerkte afbeeldingen naar eigen wens wilt wijzigen, kunt u het bestand dataset-original.zip downloaden.

Stap 2, de afbeeldingen labelen:

Vervolgens moeten we verschillende afbeeldingen van verschillende recyclingmaterialen labelen, zodat we het objectdetectiemodel kunnen trainen. Hiervoor heb ik labelImg gebruikt, gratis software waarmee je objectkaders in afbeeldingen kunt labelen.

Label elke afbeelding met het juiste label. Deze tutorial laat je zien hoe. Zorg ervoor dat elk selectiekader zo dicht mogelijk bij de rand van elk object ligt om ervoor te zorgen dat het detectiemodel zo nauwkeurig mogelijk is. Sla alle .xml-bestanden op in een map.

Hier leest u hoe u uw afbeeldingen kunt labelen:

Dit is een zeer vervelende en geestdodende ervaring. Gelukkig voor jou heb ik alle afbeeldingen al voor je gelabeld! Je kunt het hier vinden.

Stap 3, training:

Wat training betreft, heb ik besloten om transfer learning te gebruiken met Tensorflow. Dit stelt ons in staat om een ​​behoorlijk nauwkeurig model te trainen zonder een grote hoeveelheid gegevens.

Er zijn een aantal manieren waarop we dit kunnen doen. We kunnen het doen op onze lokale desktopcomputer in de cloud. Trainen op onze lokale machine duurt super lang, afhankelijk van hoe krachtig je computer is en of je een krachtige GPU hebt. Dit is naar mijn mening waarschijnlijk de gemakkelijkste manier, maar nogmaals met de keerzijde van snelheid.

Er zijn enkele belangrijke dingen om op te merken over transfer learning. U moet ervoor zorgen dat het voorgetrainde model dat u voor training gebruikt, compatibel is met de Coral Edge TPU. Je kunt hier geschikte modellen vinden. Ik gebruikte het MobileNet SSD v2 (COCO)-model. Voel je vrij om ook met anderen te experimenteren.

Als u op uw lokale computer wilt trainen, raad ik u aan de tutorial van Google of de EdjeElectronics-tutorial te volgen als u op Windows 10 draait. Persoonlijk heb ik de EdjeElectroncs-tutorial getest en succes geboekt op mijn desktop. Ik kan niet bevestigen of de tutorial van Google zal werken, maar het zou me verbazen als dat niet het geval is.

Om in de cloud te trainen kun je AWS of GCP gebruiken. Ik heb deze tutorial gevonden die je kunt proberen. Het maakt gebruik van Google's cloud TPU's die uw objectdetectiemodel supersnel kunnen trainen. Voel je vrij om ook AWS te gebruiken.

Of je nu traint op je lokale machine of in de cloud, je zou moeten eindigen met een getraind tensorflow-model.

Stap 4, het getrainde model samenstellen:

Om uw getrainde model met de Coral Edge TPU te laten werken, moet u het compileren.

Hier is een diagram voor de workflow:

Na de training moet je deze opslaan als een bevroren grafiek (.pb-bestand). Vervolgens moet u het converteren naar een Tensorflow Lite-model. Merk op hoe het zegt "Post-training kwantisering". Als u de compatibele voorgetrainde modellen hebt gebruikt bij het gebruik van transfer learning, hoeft u dit niet te doen. Bekijk hier de volledige documentatie over compatibiliteit.

Bij het Tensorflow Lite-model moet je het compileren naar een Edge TPU-model. Bekijk hier hoe u dit kunt doen.

Recycle-detectiemodel:

Als je het gedoe van het trainen, converteren en compileren van het objectdetectiemodel niet wilt overnemen, bekijk dan hier mijn recycle-detectiemodel.

Stap 5, het model implementeren:

De volgende stap is het instellen van de Raspberry Pi (RPI) en Edge TPU om het getrainde objectdetectiemodel uit te voeren.

Stel eerst de RPI in met behulp van deze handleiding.

Stel vervolgens de Edge TPU in volgens deze handleiding.

Sluit tot slot de RPI-cameramodule aan op de Raspberry Pi.

U bent nu klaar om uw objectdetectiemodel te testen!

Als je mijn repository al hebt gekloond, ga je naar de RPI-directory en voer je het bestand test_detection.py uit:

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

Er zou een klein venster moeten verschijnen en als je een plastic waterfles of ander recyclebaar materiaal plaatst, zou het dit als volgt moeten detecteren:

Druk op de letter "q" op uw toetsenbord om het programma te beëindigen.

Stap 6, bouw de robotarm:

De robotarm is een 3D-geprinte arm die ik hier heb gevonden. Volg gewoon de tutorial over het instellen ervan.

Dit is hoe mijn arm is geworden:

Zorg ervoor dat je de servo-pinnen aansluit op de Arduino I/O-pinnen in mijn code. Sluit de servo's aan van onder naar boven van de arm in deze volgorde:3, 11, 10, 9, 6, 5. Als je deze niet in deze volgorde aansluit, zal de arm de verkeerde servo bewegen!

Test of het werkt door naar de Arduino-directory te gaan en het bestand basicMovement.ino uit te voeren. Dit pakt gewoon een voorwerp dat je voor de arm plaatst en laat het achter.

Stap 7, de RPI en robotarm aansluiten:

We moeten eerst de cameramodule aan de onderkant van de klauw monteren:

Probeer de camera zo recht mogelijk uit te lijnen om fouten bij het grijpen van het herkende recyclemateriaal tot een minimum te beperken. U moet de lange lintkabel van de cameramodule gebruiken zoals te zien is in de materialenlijst.

Vervolgens moet je het bestand roboticArm.ino uploaden naar het Arduino-bord.

Ten slotte hoeven we alleen maar een USB-kabel aan te sluiten tussen de USB-poort van de RPI en de USB-poort van de Arduino. Hierdoor kunnen ze via serieel communiceren. Volg deze tutorial om dit in te stellen.

Stap 8, laatste hand:

Deze stap is volledig optioneel, maar ik vind het leuk om al mijn componenten in een leuk klein projectdoosje te stoppen.

Zo ziet het eruit:

Bron:Sorteerrobot recyclen met Google Coral


Productieproces

  1. Modeltrein
  2. Python/MicroPython Sensor Logger met Google Spreadsheets
  3. Een mobiele robot met op zicht gebaseerde obstakelvermijding
  4. Raspberry Pi webgestuurde robot met video
  5. Desinfecterende robot met ultraviolet licht
  6. Obstakels vermijden robot met servomotor
  7. Een Roomba-robot besturen met Arduino en Android-apparaat
  8. Bluetooth spraakgestuurde apparaten met OK Google
  9. Architectonisch model van een bushalte met automatisch zonnescherm V2
  10. PID-regeling van robotgrijper in Matlab / Simulink
  11. Draaicentrum uitgerust met robotarm