Indholdsfortegnelse:

Genbrugssorteringsrobot: 15 trin (med billeder)
Genbrugssorteringsrobot: 15 trin (med billeder)

Video: Genbrugssorteringsrobot: 15 trin (med billeder)

Video: Genbrugssorteringsrobot: 15 trin (med billeder)
Video: Hvordan reagerer børn, når man fortæller, at der ikke er råd til at holde jul? 2024, Juli
Anonim
Image
Image
Hent data
Hent data

Vidste du, at den gennemsnitlige forureningsrate i lokalsamfund og virksomheder ligger på op til 25%? Det betyder, at hver fjerde genbrugsstik, du smider, ikke bliver genbrugt. Dette skyldes menneskelige fejl i genbrugscentre. Traditionelt vil arbejdere sortere affald i forskellige skraldespande afhængigt af materialet. Mennesker er forpligtet til at lave fejl og ender med ikke at sortere skraldespanden ordentligt, hvilket fører til forurening. Efterhånden som forurening og klimaændringer bliver endnu mere betydningsfulde i nutidens samfund, tager genbrug en stor rolle i at beskytte vores planet. Ved at bruge robotter til at sortere affald vil forureningshastighederne falde drastisk, for ikke at nævne meget billigere og mere bæredygtig. For at løse dette skabte jeg en genbrugssorteringsrobot, der bruger maskinlæring til at sortere mellem forskellige genbrugsmaterialer.

Trin 1: Dele

Sørg for, at du har følgende dele at følge sammen med denne vejledning:

3D -printede dele (se trin nedenfor)

Raspberry Pi RPI 4 4GB

Google Coral USB Accelerator

Arduino Uno R3

Raspberry Pi kameramodul V2

5V 2A DC vægforsyning

DC 12V strømforsyning

SG90 9g Micro Servoer 4stk.

M3 x 0,5 mm rustfrit stål selvlåsende nylon sekskantlåsemøtrik 100 stk.

M3x20 Knaphoved Titaniumskruer 10stk.

MG996R Metal Gear Torque Analog Servomotor 4stk.

Samsung 32 GB Vælg hukommelseskort

Adafruit Flex kabel til Raspberry Pi kamera - 1 meter

M2 Hane Kvinde Messing Spacer Standoff Skruemøtrik Sortiment Kit

60 mm 12V blæser

6,69 "x 5,12" x 2,95 "projektboks

Trin 2: 3D -printede dele

Du skal 3D -udskrive alle dele til robotarmen. Du kan finde alle filerne her.

Trin 3: Kode

Klon venligst mit GitHub -arkiv for at følge med i denne vejledning.

Trin 4: Hentning af data

For at træne objektgenkendelsesmodellen, der kan registrere og genkende forskellige genbrugsmaterialer, brugte jeg papirkurven til datasæt, som indeholder 2527 billeder:

  • 501 glas
  • 594 papir
  • 403 pap
  • 482 plast
  • 410 metal
  • 137 skraldespand

Billedet ovenfor er et eksempel på et på billederne fra datasættet.

Dette datasæt er meget lille til at træne en objektdetekteringsmodel. Der er kun omkring 100 billeder af skraldespand, der er for lidt til at træne en præcis model, så jeg besluttede at udelade det.

Du kan bruge denne Google Drive -mappe til at downloade datasættet. Sørg for at downloade filen dataset-resized.zip. Det indeholder det sæt billeder, der allerede er ændret til en mindre størrelse for at muliggøre hurtigere træning. Hvis du gerne vil ændre størrelsen på de rå billeder til din egen smag, er du velkommen til at downloade filen dataset-original.zip.

Trin 5: Mærkning af billederne

Mærkning af billederne
Mærkning af billederne

Dernæst skal vi mærke flere billeder af forskellige genbrugsmaterialer, så vi kan træne objektdetekteringsmodellen. For at gøre dette brugte jeg labelImg, en gratis software, der giver dig mulighed for at mærke objektgrænsekasser i billeder.

Mærk hvert billede med den korrekte etiket. Denne vejledning viser dig hvordan. Sørg for at gøre hver afgrænsningsboks så tæt på grænsen for hvert objekt for at sikre, at detektionsmodellen er så præcis som muligt. Gem alle.xml -filer i en mappe.

Billedet ovenfor viser, hvordan du mærker dine billeder.

Dette er en meget kedelig og åndssvag oplevelse. Heldigvis for dig har jeg allerede mærket alle billederne til dig! Du kan finde den her.

Trin 6: Træning

Med hensyn til træning besluttede jeg at bruge transfer learning ved hjælp af Tensorflow. Dette giver os mulighed for at træne en anstændigt præcis model uden en stor mængde data.

Der er et par måder, vi kan gøre dette på. Vi kan gøre det på vores lokale stationære maskine i skyen. Uddannelse på vores lokale maskine vil tage meget lang tid, afhængigt af hvor kraftfuld din computer er, og hvis du har en kraftfuld GPU. Dette er nok den letteste måde efter min mening, men igen med den negative side af hastigheden.

Der er nogle vigtige ting at bemærke om transfer læring. Du skal sikre dig, at den foruddannede model, du bruger til træning, er kompatibel med Coral Edge TPU. Du kan finde kompatible modeller her. Jeg brugte MobileNet SSD v2 (COCO) modellen. Prøv også gerne med andre.

For at træne på din lokale maskine, vil jeg anbefale at følge Googles tutorial eller EdjeElectronics -tutorial, hvis den kører på Windows 10. Personligt har jeg testet EdjeElectroncs tutorial og nået succes på mit skrivebord. Jeg kan ikke bekræfte, om Googles tutorial vil fungere, men jeg ville blive overrasket, hvis den ikke gør det.

For at træne i skyen kan du bruge AWS eller GCP. Jeg fandt denne vejledning, som du kan prøve. Den bruger Googles sky -TPU'er, der kan træne din objektdetekteringsmodel superhurtigt. Brug også gerne AWS.

Uanset om du træner på din lokale maskine eller i skyen, skal du ende med en uddannet tensorflow -model.

Trin 7: Kompilering af den uddannede model

Udarbejdelse af den uddannede model
Udarbejdelse af den uddannede model

For at din uddannede model kan fungere med Coral Edge TPU, skal du kompilere den.

Ovenfor er et diagram for arbejdsgangen.

Efter træning skal du gemme den som en frossen graf (.pb -fil). Derefter skal du konvertere det til en Tensorflow Lite -model. Bemærk, hvordan der står "Kvantisering efter træning". Hvis du brugte de kompatible foruddannede modeller, når du brugte transfer-læring, behøver du ikke at gøre dette. Se hele dokumentationen om kompatibilitet her.

Med Tensorflow Lite -modellen skal du kompilere den til en Edge TPU -model. Se detaljer om, hvordan du gør dette her.

Trin 8: Genbrug detektionsmodel

Hvis du ikke vil gå over besværet med at træne, konvertere og kompilere objektdetekteringsmodellen, kan du tjekke min genbrugsmodel her.

Trin 9: Implementér modellen

Implementér modellen
Implementér modellen

Det næste trin er at konfigurere Raspberry Pi (RPI) og Edge TPU til at køre den uddannede objektdetekteringsmodel.

Konfigurer først RPI'en ved hjælp af denne vejledning.

Konfigurer derefter Edge TPU efter denne vejledning.

Tilslut sluteligt RPI -kameramodulet til hindbærpi.

Du er nu klar til at teste din objektdetekteringsmodel!

Hvis du allerede klonede mit lager, vil du navigere til RPI -biblioteket og køre filen test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite -etiketter recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.t

Et lille vindue skal dukke op, og hvis du lægger en vandflaske af plast eller andet genbrugsmateriale, skal det registrere det som billedet ovenfor.

Tryk på bogstavet "q" på tastaturet for at afslutte programmet.

Trin 10: Byg robotarmen

Byg robotarmen
Byg robotarmen

Robotarmen er en 3D -printet arm, jeg fandt her. Følg bare vejledningen om opsætning.

Billedet ovenfor viser, hvordan min robotarm viste sig.

Sørg for at slutte servostifterne til i henhold til Arduino I/O -benene i min kode. Tilslut servoerne fra bunden til toppen af armen i denne rækkefølge: 3, 11, 10, 9, 6, 5. Hvis du ikke tilslutter den i denne rækkefølge, får armen til at flytte den forkerte servo!

Test for at se det fungerer ved at navigere til Arduino -biblioteket og køre basicMovement.ino -filen. Dette vil simpelthen gribe et objekt, som du placerer foran armen og taber det bagved.

Trin 11: Tilslutning af RPI og robotarm

Tilslutning af RPI og robotarm
Tilslutning af RPI og robotarm

Vi skal først montere kameramodulet i bunden af kloen. Billedet ovenfor viser, hvordan det skal se ud.

Prøv at justere kameraet så lige som muligt for at minimere fejl ved at få fat i det genkendte genbrugsmateriale. Du bliver nødt til at bruge det lange kameramodulbåndkabel som vist på materialelisten.

Dernæst skal du uploade roboticArm.ino -filen til Arduino -kortet.

Endelig skal vi bare tilslutte et USB -kabel mellem RPI's USB -port og Arduino's USB -port. Dette giver dem mulighed for at kommunikere via seriel. Følg denne vejledning om, hvordan du konfigurerer dette.

Trin 12: Sidste hånd

Sidste hånd
Sidste hånd
Sidste hånd
Sidste hånd

Dette trin er helt valgfrit, men jeg kan godt lide at putte alle mine komponenter i en dejlig lille projektboks.

Billederne ovenfor viser, hvordan det ser ud.

Du kan finde projektboksen på materialelisten. Jeg har lige boret nogle huller og brugt messing -standoffs til at montere elektronikken. Jeg monterede også 4 køleventilatorer for at holde en konstant luftstrøm gennem RPI og TPU, når den er varm.

Trin 13: Løb

Du er nu klar til at tænde for både robotarmen og RPI! På RPI'en kan du simpelthen køre recycle_detection.py -filen. Dette åbner et vindue, og robotarmen begynder at køre ligesom i demo -videoen! Tryk på bogstavet "q" på tastaturet for at afslutte programmet.

Du er velkommen til at lege med koden og have det sjovt!

Trin 14: Fremtidigt arbejde

Jeg håber at bruge R. O. S. at styre robotarmen med mere præcise bevægelser. Dette vil muliggøre en mere præcis opsamling af objekter.

Trin 15: Spørgsmål?

Efterlad en kommentar herunder, hvis du har spørgsmål!

Anbefalede: