Innholdsfortegnelse:

Sorteringsrobot for resirkulering: 15 trinn (med bilder)
Sorteringsrobot for resirkulering: 15 trinn (med bilder)

Video: Sorteringsrobot for resirkulering: 15 trinn (med bilder)

Video: Sorteringsrobot for resirkulering: 15 trinn (med bilder)
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, Juli
Anonim
Image
Image
Få dataene
Få dataene

Visste du at gjennomsnittlig forurensningshastighet i lokalsamfunn og bedrifter varierer opp til 25%? Det betyr at en av fire gjenvinningstykker du kaster ikke blir resirkulert. Dette skyldes menneskelige feil i resirkuleringssentre. Tradisjonelt vil arbeidere sortere søppel i forskjellige søppelbøtter avhengig av materialet. Mennesker er bundet til å gjøre feil og ender med å ikke sortere søppelet riktig, noe som fører til forurensning. Ettersom forurensning og klimaendringer blir enda mer betydningsfulle i dagens samfunn, tar resirkulering en stor rolle i å beskytte planeten vår. Ved å bruke roboter til å sortere søppel, vil forurensningshastigheten synke drastisk, for ikke å snakke om mye billigere og mer bærekraftig. For å løse dette opprettet jeg en resirkuleringssorteringsrobot som bruker maskinlæring til å sortere mellom forskjellige resirkuleringsmaterialer.

Trinn 1: Deler

Sørg for at du har følgende deler å følge med denne opplæringen:

3D -trykte deler (se trinn nedenfor)

Raspberry Pi RPI 4 4GB

Google Coral USB -akselerator

Arduino Uno R3

Raspberry Pi kameramodul V2

5V 2A DC veggstrømforsyning

DC 12V strømforsyning

SG90 9g Micro Servos 4 stk.

M3 x 0,5 mm rustfritt stål selvlåsende nylon sekskantlåsemutter 100 stk.

M3x20 Knapphodet Titanskruer 10stk.

MG996R Metal Gear Torque Analog servomotor 4 stk.

Samsung 32 GB Velg minnekort

Adafruit Flex -kabel for Raspberry Pi -kamera - 1 meter

M2 Mannlig kvinnelig messing avstandsstykke Skruemutter Assortiment Kit

60mm 12V vifte

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

Trinn 2: 3D -trykte deler

Du må 3D -skrive ut alle delene til robotarmen. Du finner alle filene her.

Trinn 3: Kode

Klon GitHub -depotet mitt for å følge med denne opplæringen.

Trinn 4: Få dataene

For å trene objektgjenkjenningsmodellen som kan oppdage og gjenkjenne forskjellige resirkuleringsmaterialer, brukte jeg søppelkassen som inneholder 2527 bilder:

  • 501 glass
  • 594 papir
  • 403 papp
  • 482 plast
  • 410 metall
  • 137 søppel

Bildet ovenfor er et eksempel på ett på bildene fra datasettet.

Dette datasettet er veldig lite for å trene en objektdeteksjonsmodell. Det er bare rundt 100 bilder av søppel som er for lite til å trene en nøyaktig modell, så jeg bestemte meg for å la det være.

Du kan bruke denne Google Drive -mappen til å laste ned datasettet. Sørg for å laste ned filen dataset-resized.zip. Den inneholder settet med bilder som allerede er endret til en mindre størrelse for å gi raskere trening. Hvis du vil endre størrelsen på råbildene til din egen smak, kan du laste ned filen dataset-original.zip.

Trinn 5: Merking av bildene

Merking av bildene
Merking av bildene

Deretter må vi merke flere bilder av forskjellige resirkuleringsmaterialer, slik at vi kan lære opp gjenkjenningsmodellen. For å gjøre dette brukte jeg labelImg, en gratis programvare som lar deg merke objektgrenser i bilder.

Merk hvert bilde med riktig etikett. Denne opplæringen viser deg hvordan. Sørg for å gjøre hver avgrensningsboks så nær grensen til hvert objekt for å sikre at deteksjonsmodellen er så nøyaktig som mulig. Lagre alle.xml -filene i en mappe.

Bildet ovenfor viser hvordan du merker bildene dine.

Dette er en veldig kjedelig og sinnsyk opplevelse. Heldigvis for deg, jeg har allerede merket alle bildene for deg! Du finner den her.

Trinn 6: Trening

Når det gjelder trening, bestemte jeg meg for å bruke overføringslæring ved hjelp av Tensorflow. Dette lar oss trene en anstendig nøyaktig modell uten store mengder data.

Det er et par måter vi kan gjøre dette på. Vi kan gjøre det på vår lokale stasjonære maskin i skyen. Trening på vår lokale maskin vil ta veldig lang tid, avhengig av hvor kraftig datamaskinen din er og om du har en kraftig GPU. Dette er sannsynligvis den enkleste måten etter min mening, men igjen med baksiden av hastigheten.

Det er noen viktige ting å merke seg om overføringslæring. Du må sørge for at den forhåndsutdannede modellen du bruker til trening, er kompatibel med Coral Edge TPU. Du finner kompatible modeller her. Jeg brukte modellen MobileNet SSD v2 (COCO). Eksperimenter gjerne med andre også.

For å trene på din lokale maskin, vil jeg anbefale å følge Googles opplæring eller EdjeElectronics -opplæring hvis den kjører på Windows 10. Personlig har jeg testet EdjeElectroncs -opplæringen og oppnådd suksess på skrivebordet mitt. Jeg kan ikke bekrefte om Googles opplæring vil fungere, men jeg ville bli overrasket hvis den ikke gjør det.

For å trene i skyen kan du bruke AWS eller GCP. Jeg fant denne opplæringen som du kan prøve. Den bruker Googles sky -TPU -er som kan trene objektgjenkjenningsmodellen din superrask. Bruk gjerne AWS også.

Enten du trener på din lokale maskin eller i skyen, bør du ende opp med en trent tensorflow -modell.

Trinn 7: Kompilering av den opplærte modellen

Kompilere den opplærte modellen
Kompilere den opplærte modellen

For at den utdannede modellen din skal fungere med Coral Edge TPU, må du kompilere den.

Over er et diagram for arbeidsflyten.

Etter trening må du lagre den som en frossen graf (.pb -fil). Deretter må du konvertere den til en Tensorflow Lite -modell. Legg merke til hvordan det står "Kvantisering etter trening". Hvis du brukte de kompatible forhåndsutdannede modellene når du brukte overføringslæring, trenger du ikke gjøre dette. Ta en titt på hele dokumentasjonen om kompatibilitet her.

Med Tensorflow Lite -modellen må du kompilere den til en Edge TPU -modell. Se detaljer om hvordan du gjør dette her.

Trinn 8: Resirkuler gjenkjenningsmodell

Hvis du ikke vil gå over bryet med å trene, konvertere og kompilere objektdeteksjonsmodellen, kan du sjekke resirkuleringsdeteksjonsmodellen min her.

Trinn 9: Distribuer modellen

Distribuer modellen
Distribuer modellen

Det neste trinnet er å sette opp Raspberry Pi (RPI) og Edge TPU for å kjøre den opplærte objektdeteksjonsmodellen.

Sett først opp RPI ved hjelp av denne opplæringen.

Deretter konfigurerer du Edge TPU etter denne opplæringen.

Til slutt kobler du RPI -kameramodulen til bringebær -pi.

Du er nå klar til å teste objektgjenkjenningsmodellen din!

Hvis du allerede klonet depotet mitt, vil du navigere til RPI -katalogen og kjøre filen 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.t

Et lite vindu skal dukke opp, og hvis du setter en vannflaske av plast eller annet resirkuleringsmateriale, skal det oppdage det som bildet ovenfor.

Trykk på bokstaven "q" på tastaturet for å avslutte programmet.

Trinn 10: Bygg robotarmen

Bygg robotarmen
Bygg robotarmen

Robotarmen er en 3D -trykt arm jeg fant her. Bare følg opplæringen om hvordan du konfigurerer den.

Bildet ovenfor viser hvordan robotarmen min ble.

Sørg for å koble servostiftene til Arduino I/O -pinnene i koden min. Koble servoene fra bunnen til toppen av armen i denne rekkefølgen: 3, 11, 10, 9, 6, 5. Hvis du ikke kobler den til i denne rekkefølgen, vil armen bevege feil servo!

Test for å se at den fungerer ved å navigere til Arduino -katalogen og kjøre basicMovement.ino -filen. Dette vil ganske enkelt ta et objekt som du plasserer foran armen og slippe det bak.

Trinn 11: Koble til RPI og robotarm

Koble til RPI og robotarm
Koble til RPI og robotarm

Vi må først montere kameramodulen til bunnen av kloen. Bildet ovenfor viser hvordan det skal se ut.

Prøv å justere kameraet så rett som mulig for å minimere feil ved å ta tak i det gjenkjente resirkuleringsmaterialet. Du må bruke den lange kameramodulens båndkabel som vist i materiallisten.

Deretter må du laste opp roboticArm.ino -filen til Arduino -kortet.

Til slutt må vi bare koble til en USB -kabel mellom RPIs USB -port og Arduino's USB -port. Dette vil tillate dem å kommunisere via serie. Følg denne opplæringen om hvordan du konfigurerer dette.

Trinn 12: Siste berøringer

Siste berøringer
Siste berøringer
Siste berøringer
Siste berøringer

Dette trinnet er helt valgfritt, men jeg liker å sette alle komponentene mine i en fin liten prosjektboks.

Bildene ovenfor viser hvordan det ser ut.

Du finner prosjektboksen på materiallisten. Jeg har bare boret noen hull og brukte messing -distanser for å montere elektronikken. Jeg monterte også 4 kjølevifter for å holde en konstant luftstrøm gjennom RPI og TPU når den er varm.

Trinn 13: Løping

Du er nå klar til å slå på både robotarmen og RPI! På RPI kan du ganske enkelt kjøre filen recycle_detection.py. Dette åpner et vindu, og robotarmen begynner å løpe akkurat som i demovideoen! Trykk på bokstaven "q" på tastaturet for å avslutte programmet.

Lek gjerne med koden og ha det gøy!

Trinn 14: Fremtidig arbeid

Jeg håper å bruke R. O. S. for å kontrollere robotarmen med mer presise bevegelser. Dette vil muliggjøre mer nøyaktig plukking av objekter.

Trinn 15: Spørsmål?

Legg igjen en kommentar nedenfor hvis du har spørsmål!

Anbefalt: