Sisukord:

Ringlussevõtu robot: 15 sammu (piltidega)
Ringlussevõtu robot: 15 sammu (piltidega)

Video: Ringlussevõtu robot: 15 sammu (piltidega)

Video: Ringlussevõtu robot: 15 sammu (piltidega)
Video: 15 минут массажа лица для ЛИФТИНГА и ЛИМФОДРЕНАЖА на каждый день. 2024, November
Anonim
Image
Image
Andmete hankimine
Andmete hankimine

Kas teadsite, et kogukondade ja ettevõtete keskmine saastatuse määr on kuni 25%? See tähendab, et üks neljast visatud ringlussevõtu tükist ei lähe ringlusse. Selle põhjuseks on inimlikud vead ringlussevõtukeskustes. Traditsiooniliselt sorteerivad töötajad prügi sõltuvalt materjalist erinevatesse prügikastidesse. Inimesed teevad kindlasti vigu ja lõpuks ei sorteeri prügi korralikult, põhjustades saastumist. Kuna reostus ja kliimamuutused muutuvad tänapäeva ühiskonnas veelgi olulisemaks, võtab ringlussevõtt meie planeedi kaitsmisel tohutu osa. Kasutades prügi sorteerimiseks roboteid, väheneb saastumismäär järsult, rääkimata palju odavamast ja säästvamast. Selle lahendamiseks lõin ringlussevõtu sorteerimisroboti, mis kasutab masinõpet, et sortida erinevate ringlussevõetavate materjalide vahel.

Samm: osad

Veenduge, et teil oleks selle õpetusega kaasas järgmised osad:

3D -prinditud osad (vt allpool olevat sammu)

Raspberry Pi RPI 4 4GB

Google Coral USB -kiirendi

Arduino Uno R3

Vaarika Pi kaamera moodul V2

5V 2A DC seina toiteallikas

Alalisvoolu 12V toide

SG90 9g Mikroservod 4tk.

M3 x 0,5 mm roostevabast terasest iselukkuv nailonist kuuskantmutter 100 tk.

M3x20 nupppea titaankruvid 10tk.

MG996R Metal Gear pöördemomendi analoog servomootor 4tk.

Samsung 32GB Valige mälukaart

Adafruit Flex kaabel Raspberry Pi kaamerale - 1 meeter

M2 isane naissoost messingist vahekihi seiskruvimutri assortimendikomplekt

60 mm 12 V ventilaator

6,69 x 5,12 x 2,95 tolli projektikast

2. samm: 3D -prinditud osad

Peate 3D -printima kõik robotkäe osad. Kõik failid leiate siit.

3. samm: kood

Palun kloonige minu GitHubi hoidla, et seda õpetust järgida.

4. samm: andmete hankimine

Objekti tuvastamise mudeli koolitamiseks, mis suudab tuvastada ja ära tunda erinevaid ringlussevõtu materjale, kasutasin prügikasti andmestikku, mis sisaldab 2527 pilti:

  • 501 klaasi
  • 594 paberit
  • 403 papp
  • 482 plastikust
  • 410 metallist
  • 137 prügi

Ülaltoodud pilt on näide ühest andmestiku piltidest.

See andmekogum on objekti tuvastamise mudeli koolitamiseks väga väike. Prügikastis on ainult umbes 100 pilti, mida on täpse mudeli koolitamiseks liiga vähe, seega otsustasin selle välja jätta.

Andmekogumi allalaadimiseks saate seda Google'i draivikausta kasutada. Laadige kindlasti alla fail dataset-resized.zip. See sisaldab piltide komplekti, mis on juba väiksemaks muudetud, et võimaldada kiiremat treenimist. Kui soovite muuta toores piltide suurust oma maitse järgi, laadige alla fail dataset-original.zip.

Samm: piltide sildistamine

Piltide sildistamine
Piltide sildistamine

Järgmisena peame märgistama mitu kujutist erinevatest ringlussevõtu materjalidest, et saaksime objekti tuvastamise mudelit koolitada. Selleks kasutasin labelImg -i, tasuta tarkvara, mis võimaldab piltidel objektide piirikastid sildistada.

Märgistage iga pilt õige sildiga. See õpetus näitab teile, kuidas. Veenduge, et iga piirdekast oleks iga objekti piiri lähedal, et tuvastusmudel oleks võimalikult täpne. Salvestage kõik.xml -failid kausta.

Ülaltoodud foto näitab, kuidas oma pilte sildistada.

See on väga tüütu ja meelt tiritav kogemus. Tänan teid, ma olen kõik pildid teile juba sildistanud! Selle leiate siit.

6. samm: koolitus

Koolituse osas otsustasin kasutada ülekandeõpet Tensorflow abil. See võimaldab meil koolitada üsna täpset mudelit ilma suure hulga andmeteta.

Selleks on paar võimalust. Saame seda teha kohalikus lauaarvutis pilves. Meie kohalikus masinas treenimine võtab väga kaua aega sõltuvalt sellest, kui võimas on teie arvuti ja kas teil on võimas GPU. See on minu arvates ilmselt kõige lihtsam viis, kuid jällegi kiiruse miinusega.

Ülekandeõppe puhul tuleb tähele panna mõningaid olulisi asju. Peate veenduma, et koolituseks kasutatav eelkoolitatud mudel ühildub Coral Edge TPU-ga. Ühilduvaid mudeleid leiate siit. Kasutasin mudelit MobileNet SSD v2 (COCO). Katsetage julgelt ka teistega.

Kohalikus masinas treenimiseks soovitaksin järgida Google'i õpetust või EdjeElectronics'i õpetust, kui kasutate operatsioonisüsteemi Windows 10. Isiklikult olen katsetanud EdjeElectroncs õpetust ja saavutanud edu oma töölaual. Ma ei saa kinnitada, kas Google'i õpetus töötab, kuid ma oleksin üllatunud, kui see ei töötaks.

Pilves treenimiseks võite kasutada AWS -i või GCP -d. Leidsin selle õpetuse, mida saate proovida. See kasutab Google'i pilv -TPU -sid, mis suudavad teie objektide tuvastamise mudeli ülikiirelt treenida. Kasutage julgelt ka AWS -i.

Ükskõik, kas treenite oma kohalikus masinas või pilves, peaksite saama koolitatud tensorflow mudeli.

7. samm: koolitatud mudeli koostamine

Koolitatud mudeli koostamine
Koolitatud mudeli koostamine

Selleks, et teie koolitatud mudel töötaks Coral Edge TPU -ga, peate selle koostama.

Ülal on diagramm töövoo kohta.

Pärast treeningut peate selle salvestama külmutatud graafikuna (.pb -failina). Seejärel peate selle teisendama Tensorflow Lite mudeliks. Pange tähele, kuidas see ütleb "Koolitusjärgne kvantimine". Kui kasutasite ülekandeõppe kasutamisel ühilduvaid eelkoolitatud mudeleid, ei pea te seda tegema. Vaadake täielikku dokumentatsiooni ühilduvuse kohta siit.

Tensorflow Lite mudeli puhul peate selle kompileerima Edge TPU mudeliks. Vaadake üksikasju selle kohta, kuidas seda teha.

8. samm: ringlussevõtu tuvastamise mudel

Kui te ei soovi objektide tuvastamise mudeli väljaõppe, teisendamise ja koostamise vaeva üle vaadata, vaadake minu ringlussevõtu tuvastamise mudelit siit.

9. samm: mudeli juurutamine

Võtke mudel kasutusele
Võtke mudel kasutusele

Järgmine samm on seadistada Raspberry Pi (RPI) ja Edge TPU treenitud objektide tuvastamise mudeli käitamiseks.

Esmalt seadistage RPI selle õpetuse abil.

Seejärel seadistage Edge TPU selle õpetuse järgi.

Lõpuks ühendage RPI kaamera moodul vaarika pi -ga.

Nüüd olete valmis oma objektide tuvastamise mudelit testima!

Kui olete minu hoidla juba klooninud, soovite navigeerida RPI kataloogi ja käivitada faili test_detection.py:

python test_detection.py --modell 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

Väike aken peaks ilmuma ja kui panete plastikust veepudeli või muu ringlussevõetava materjali, peaks see selle tuvastama nagu ülaltoodud pildil.

Programmi lõpetamiseks vajutage klaviatuuril tähte "q".

10. samm: ehitage robotkäsi

Ehitage robotkäsi
Ehitage robotkäsi

Robotkäsi on 3D -trükitud käsi, mille ma siit leidsin. Järgige lihtsalt selle seadistamise õpetust.

Ülaltoodud pilt näitab, kuidas mu robotkäsi välja kukkus.

Veenduge, et ühendate servopoldid minu koodi Arduino I/O kontaktidega. Ühendage servod käe alt ülespoole järgmises järjekorras: 3, 11, 10, 9, 6, 5. Kui te seda selles järjekorras ei ühenda, liigub käsi vale servo!

Testige selle toimimist, navigeerides Arduino kataloogi ja käivitades faili BasicMovement.ino. See haarab lihtsalt eseme, mille asetate käe ette, ja viskab selle taha.

11. samm: RPI ja robotkäe ühendamine

RPI ja robotkäe ühendamine
RPI ja robotkäe ühendamine

Kõigepealt peame kaamera mooduli küünise põhja külge kinnitama. Ülaltoodud pilt näitab, kuidas see välja peaks nägema.

Proovige joondada kaamera võimalikult sirgeks, et minimeerida vigu tuvastatud taaskasutusmaterjali haaramisel. Peate kasutama pikka kaameramooduli lintkaablit, nagu on näidatud materjalide loendis.

Järgmisena peate üles laadima roboticArm.ino faili Arduino tahvlile.

Lõpuks peame lihtsalt ühendama USB -kaabli RPI USB -pordi ja Arduino USB -pordi vahele. See võimaldab neil suhelda jada kaudu. Järgige seda õpetust selle seadistamise kohta.

12. samm: viimased puudutused

Viimased puudutused
Viimased puudutused
Viimased puudutused
Viimased puudutused

See samm on täiesti valikuline, kuid mulle meeldib panna kõik oma komponendid kenasse väikesesse projektikarpi.

Ülaltoodud pildid näitavad, kuidas see välja näeb.

Projekti kasti leiate materjalide loendist. Puurisin just mõned augud ja kasutasin elektroonika paigaldamiseks messingist eraldusjooni. Paigaldasin ka 4 jahutusventilaatorit, et kuumana hoida RPI ja TPU kaudu pidevat õhuvoolu.

13. samm: jooksmine

Nüüd olete valmis sisse lülitama nii robotkäe kui ka RPI! RPI -l saate lihtsalt käivitada faili recycle_detection.py. See avab akna ja robotkäsi hakkab jooksma täpselt nagu demovideos! Programmi lõpetamiseks vajutage klaviatuuril tähte "q".

Mängige koodiga ringi ja nautige!

14. samm: tulevane töö

Loodan kasutada R. O. S. juhtida robotkätt täpsemate liigutustega. See võimaldab objektide täpsemat ülesvõtmist.

15. samm: küsimusi?

Küsimuste korral jätke julgelt kommentaar allpool!

Soovitan: