Სარჩევი:

გადამუშავების დახარისხების რობოტი: 15 ნაბიჯი (სურათებით)
გადამუშავების დახარისხების რობოტი: 15 ნაბიჯი (სურათებით)

ვიდეო: გადამუშავების დახარისხების რობოტი: 15 ნაბიჯი (სურათებით)

ვიდეო: გადამუშავების დახარისხების რობოტი: 15 ნაბიჯი (სურათებით)
ვიდეო: როგორ დავაკარგვინე გოგოს ქალიშვილობა- პირადი ისტორია.#2 2024, ივლისი
Anonim
Image
Image
მონაცემების მიღება
მონაცემების მიღება

იცით თუ არა, რომ დაბინძურების საშუალო მაჩვენებელი თემებსა და ბიზნესში 25%-მდე მერყეობს? ეს იმას ნიშნავს, რომ ყოველი მეოთხე ნაჭერი, რომელსაც თქვენ გადააგდებთ, არ გადამუშავდება. ეს გამოწვეულია გადამუშავების ცენტრებში ადამიანის შეცდომის გამო. ტრადიციულად, მუშები დაალაგებენ ნაგავს სხვადასხვა ურნებში მასალის მიხედვით. ადამიანები ვალდებულნი არიან დაუშვან შეცდომები და საბოლოოდ არ დაალაგონ ნაგავი სწორად, რაც იწვევს დაბინძურებას. რადგან დაბინძურება და კლიმატის ცვლილება კიდევ უფრო მნიშვნელოვანი ხდება დღევანდელ საზოგადოებაში, გადამუშავება უზარმაზარ მონაწილეობას იღებს ჩვენი პლანეტის დაცვაში. რობოტების გამოყენებით ნაგვის დასალაგებლად, დაბინძურების მაჩვენებლები მკვეთრად შემცირდება, რომ აღარაფერი ვთქვათ ბევრად უფრო იაფი და უფრო მდგრადი. ამის გადასაჭრელად, მე შევქმენი გადამუშავების დახარისხების რობოტი, რომელიც იყენებს მანქანათმცოდნეობას სხვადასხვა გადამუშავების მასალებს შორის დასალაგებლად.

ნაბიჯი 1: ნაწილები

დარწმუნდით, რომ თქვენ გაქვთ შემდეგი ნაწილები, რომლებიც უნდა გაეცნოთ ამ გაკვეთილს:

3D ნაბეჭდი ნაწილები (იხილეთ ნაბიჯი ქვემოთ)

Raspberry Pi RPI 4 4 GB

Google Coral USB ამაჩქარებელი

Arduino Uno R3

ჟოლო Pi კამერის მოდული V2

5V 2A DC კედლის კვების ბლოკი

DC 12V კვების ბლოკი

SG90 9 გ მიკრო სერვო 4 ცალი.

M3 x 0.5 მმ უჟანგავი ფოლადი Self-Lock ნეილონის Hex საკეტი თხილის 100 ცალი.

M3x20 ღილაკის თავი ტიტანის ხრახნები 10 ცალი.

MG996R Metal Gear ბრუნვის ანალოგი Servo Motor 4 ცალი.

Samsung 32 GB აირჩიეთ მეხსიერების ბარათი

Adafruit Flex კაბელი ჟოლოს Pi კამერისთვის - 1 მეტრი

M2 მამაკაცი ქალი სპილენძის შუალედური ხრახნიანი ხრახნიანი თხილის ასორტიმენტის ნაკრები

60 მმ 12V ვენტილატორი

6.69 "x 5.12" x 2.95 "პროექტის ყუთი

ნაბიჯი 2: 3D ნაბეჭდი ნაწილები

თქვენ დაგჭირდებათ რობოტული მხრის ყველა ნაწილის 3D ბეჭდვა. აქ შეგიძლიათ იპოვოთ ყველა ფაილი.

ნაბიჯი 3: კოდი

გთხოვთ კლონირება ჩემი GitHub საცავი დაიცვას ერთად ამ tutorial.

ნაბიჯი 4: მონაცემების მიღება

ობიექტის გამოვლენის მოდელის გასაწვრთნელად, რომელსაც შეუძლია სხვადასხვა გადამუშავების მასალის ამოცნობა და ამოცნობა, გამოვიყენე ნაგვის ქსელის მონაცემთა ნაკრები, რომელიც მოიცავს 2527 სურათს:

  • 501 მინა
  • 594 ქაღალდი
  • 403 მუყაო
  • 482 პლასტიკური
  • 410 ლითონი
  • 137 ნაგავი

ზემოთ ნაჩვენები მაგალითია სურათებიდან მონაცემთა ნაკრებიდან.

ეს მონაცემთა ნაკრები ძალზე მცირეა ობიექტების გამოვლენის მოდელის მოსამზადებლად. ნაგვის მხოლოდ 100 -მდე სურათია, რომლებიც ძალიან ცოტაა ზუსტი მოდელის მოსამზადებლად, ამიტომ გადავწყვიტე მისი დატოვება.

თქვენ შეგიძლიათ გამოიყენოთ ეს Google Drive საქაღალდე მონაცემთა ნაკრების ჩამოსატვირთად. დარწმუნდით, რომ ჩამოტვირთეთ dataset-resized.zip ფაილი. იგი შეიცავს სურათების ნაკრებებს, რომლებიც უკვე შეცვლილია უფრო მცირე ზომით, რათა მოხდეს უფრო სწრაფი ვარჯიში. თუ გსურთ ნედლი სურათების ზომის შეცვლა თქვენი სურვილისამებრ, მოგერიდებათ ჩამოტვირთოთ dataset-original.zip ფაილი.

ნაბიჯი 5: სურათების მარკირება

სურათების მარკირება
სურათების მარკირება

შემდეგი, ჩვენ უნდა დავნიშნოთ სხვადასხვა გადამუშავების მასალის რამდენიმე სურათი, რათა ჩვენ მოვამზადოთ ობიექტის გამოვლენის მოდელი. ამისათვის მე გამოვიყენე labelImg, უფასო პროგრამული უზრუნველყოფა, რომელიც საშუალებას გაძლევთ გამოსახოთ ობიექტების შემოსაზღვრული ყუთები.

მონიშნეთ თითოეული სურათი შესაბამისი ეტიკეტით. ეს გაკვეთილი გიჩვენებთ როგორ. დარწმუნდით, რომ თითოეული შემოსაზღვრული ყუთი მაქსიმალურად ახლოს არის თითოეული ობიექტის საზღვართან, რათა გამოვლენის მოდელი იყოს რაც შეიძლება ზუსტი. შეინახეთ ყველა.xml ფაილი საქაღალდეში.

ზემოთ მოყვანილი ფოტო გვიჩვენებს, თუ როგორ უნდა მონიშნოთ თქვენი სურათები.

ეს არის ძალიან დამღლელი და დამაფიქრებელი გამოცდილება. საბედნიეროდ თქვენთვის, მე უკვე დავნიშნე ყველა სურათი თქვენთვის! თქვენ შეგიძლიათ იპოვოთ აქ.

ნაბიჯი 6: ტრენინგი

ტრენინგის თვალსაზრისით, მე გადავწყვიტე გამოვიყენო გადაცემის სწავლა Tensorflow– ის გამოყენებით. ეს გვაძლევს საშუალებას მოვამზადოთ ღირსეულად ზუსტი მოდელი დიდი რაოდენობით მონაცემების გარეშე.

ამის გაკეთების რამდენიმე გზა არსებობს. ჩვენ შეგვიძლია ამის გაკეთება ჩვენს ადგილობრივ დესკტოპის აპარატზე ღრუბელზე. ჩვენს ადგილობრივ აპარატზე სწავლებას ძალიან დიდი დრო დასჭირდება იმისდა მიხედვით, თუ რამდენად ძლიერია თქვენი კომპიუტერი და გაქვთ თუ არა ძლიერი GPU. ეს, ალბათ, უმარტივესი გზაა ჩემი აზრით, მაგრამ ისევ სიჩქარის მინუსით.

გადაცემის სწავლებისას გასათვალისწინებელია რამდენიმე ძირითადი რამ. თქვენ უნდა დარწმუნდეთ, რომ წინასწარ მომზადებული მოდელი, რომელსაც თქვენ იყენებთ ტრენინგისთვის, თავსებადია Coral Edge TPU– სთან. აქ შეგიძლიათ იპოვოთ თავსებადი მოდელები. მე გამოვიყენე MobileNet SSD v2 (COCO) მოდელი. ასევე შეგიძლიათ ექსპერიმენტი ჩაატაროთ სხვებთან ერთად.

თქვენს ადგილობრივ აპარატზე ვარჯიშისთვის, მე გირჩევთ მიჰყევით Google– ის სახელმძღვანელოს ან EdjeElectronics– ის სამეურვეოს, თუ Windows 10 - ზე მუშაობს. პირადად მე, მე გამოვცადე EdjeElectroncs სამეურვეო პროგრამა და მივაღწიე წარმატებას ჩემს სამუშაო მაგიდაზე. მე არ შემიძლია დავადასტურო, იმუშავებს თუ არა Google– ის სახელმძღვანელო, მაგრამ გამიკვირდება, თუ არა.

ღრუბელში ვარჯიშისთვის შეგიძლიათ გამოიყენოთ AWS ან GCP. მე აღმოვაჩინე ეს გაკვეთილი, რომელიც შეგიძლიათ სცადოთ. ის იყენებს Google– ის ღრუბლოვან TPU– ს, რომელსაც შეუძლია სწრაფად გაწვრთნას თქვენი ობიექტის ამოცნობის მოდელი. ასევე შეგიძლიათ გამოიყენოთ AWS.

მიუხედავად იმისა, ვარჯიშობთ თქვენს ადგილობრივ აპარატზე თუ ღრუბელში, თქვენ უნდა დაასრულოთ გაწვრთნილი tensorflow მოდელი.

ნაბიჯი 7: მომზადებული მოდელის შედგენა

მომზადებული მოდელის შედგენა
მომზადებული მოდელის შედგენა

იმისათვის, რომ თქვენი გაწვრთნილი მოდელი იმუშაოს Coral Edge TPU– სთან, თქვენ უნდა შეადგინოთ იგი.

ზემოთ არის დიაგრამა სამუშაო პროცესისთვის.

ტრენინგის შემდეგ, თქვენ უნდა შეინახოთ იგი გაყინული გრაფის სახით (.pb ფაილი). შემდეგ, თქვენ უნდა გადააკეთოთ იგი Tensorflow Lite მოდელში. მიაქციეთ ყურადღება როგორ წერია "ტრენინგის შემდგომი კვანტიზაცია". თუ თქვენ იყენებთ თავსებადი წინასწარ გაწვრთნილ მოდელებს გადაცემის სწავლებისას, ამის გაკეთება არ გჭირდებათ. გადახედეთ თავსებადობის სრულ დოკუმენტაციას აქ.

Tensorflow Lite მოდელის საშუალებით თქვენ უნდა შეადგინოთ იგი Edge TPU მოდელზე. იხილეთ დეტალები, თუ როგორ უნდა გააკეთოთ ეს აქ.

ნაბიჯი 8: გადამუშავების გამოვლენის მოდელი

თუ არ გსურთ გაუმკლავდეთ ტრენინგის, გარდაქმნისა და ობიექტის გამოვლენის მოდელის შედგენას, გადახედეთ აქ ჩემი გადამუშავების გამოვლენის მოდელს.

ნაბიჯი 9: განათავსეთ მოდელი

მოდელის განლაგება
მოდელის განლაგება

შემდეგი ნაბიჯი არის Raspberry Pi (RPI) და Edge TPU დაყენება გაწვრთნილი ობიექტების გამოვლენის მოდელის გასაშვებად.

პირველი, შექმენით RPI ამ გაკვეთილის გამოყენებით.

შემდეგი, შექმენით Edge TPU ამ გაკვეთილის შემდეგ.

დაბოლოს, დააკავშირეთ RPI კამერის მოდული ჟოლოს პითან.

თქვენ ახლა მზად ხართ შეამოწმოთ თქვენი ობიექტის ამოცნობის მოდელი!

თუ თქვენ უკვე კლონირებული გაქვთ ჩემი საცავი, თქვენ მოგინდებათ გადახვიდეთ RPI დირექტორიაში და გაუშვათ test_detection.py ფაილი:

python test_detection.py -მოდელი recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/dete_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_09/1

პატარა ფანჯარა უნდა გამოჩნდეს და თუ თქვენ დააყენებთ წყლის პლასტმასის ბოთლს ან სხვა გადამუშავებულ მასალას, მან უნდა აღმოაჩინოს ის, როგორც ზემოთ მოცემულ სურათზე.

პროგრამის დასასრულებლად დააჭირეთ ღილაკს "q" თქვენს კლავიატურაზე.

ნაბიჯი 10: შექმენით რობოტული მკლავი

შექმენით რობოტული მკლავი
შექმენით რობოტული მკლავი

რობოტული მკლავი არის 3D დაბეჭდილი ხელი, რომელიც აქ ვიპოვე. უბრალოდ მიჰყევით ინსტრუქციას მისი შექმნის შესახებ.

ზემოთ მოყვანილი სურათი გვიჩვენებს, თუ როგორ აღმოჩნდა ჩემი რობოტული ხელი.

დარწმუნდით, რომ თქვენ დააკავშირებთ სერვო ქინძისთავებს Arduino I/O პინების შესაბამისად ჩემს კოდში. შეაერთეთ servos ქვემოდან მკლავის ამ თანმიმდევრობით: 3, 11, 10, 9, 6, 5. ამ თანმიმდევრობით მისი შეუერთება გამოიწვევს მკლავის გადაადგილებას არასწორ სერვოზე!

შეამოწმეთ რომ ის მუშაობს Arduino დირექტორიაში ნავიგაციით და BasicMovement.ino ფაილის გაშვებით. ეს უბრალოდ დაიჭერს ობიექტს, რომელსაც მკლავის წინ დადებთ და უკან ჩამოაგდებთ.

ნაბიჯი 11: RPI და Robotic Arm დაკავშირება

RPI და Robotic Arm დაკავშირება
RPI და Robotic Arm დაკავშირება

ჩვენ ჯერ კამერის მოდული უნდა დავამაგოთ კლანჭის ბოლოში. ზემოთ მოყვანილი სურათი გვიჩვენებს, თუ როგორ უნდა გამოიყურებოდეს იგი.

შეეცადეთ მაქსიმალურად გაათანაბროთ კამერა, რათა შეამციროთ შეცდომები აღიარებული გადამუშავების მასალის დაჭერაში. თქვენ დაგჭირდებათ კამერის გრძელი მოდულის ლენტის კაბელის გამოყენება, როგორც ეს ჩანს მასალების ჩამონათვალში.

შემდეგი, თქვენ უნდა ატვირთოთ roboticArm.ino ფაილი Arduino დაფაზე.

დაბოლოს, ჩვენ უბრალოდ უნდა დავუკავშიროთ USB კაბელი RPI– ს USB პორტს და Arduino– ს USB პორტს შორის. ეს მათ საშუალებას მისცემს დაუკავშირდნენ სერიული საშუალებით. მიჰყევით ამ გაკვეთილს, თუ როგორ უნდა დააყენოთ ეს.

ნაბიჯი 12: საბოლოო შეხება

საბოლოო შეხებები
საბოლოო შეხებები
საბოლოო შეხებები
საბოლოო შეხებები

ეს ნაბიჯი არის სრულიად სურვილისამებრ, მაგრამ მე მომწონს ყველა ჩემი კომპონენტის ლამაზ პატარა პროექტის ყუთში ჩადება.

ზემოთ მოყვანილი სურათები აჩვენებს როგორ გამოიყურება.

თქვენ შეგიძლიათ ნახოთ პროექტის ყუთი მასალების ჩამონათვალში. მე უბრალოდ გაბურღული რამდენიმე ხვრელი და გამოიყენება სპილენძის standoffs დაამონტაჟოს ელექტრონიკა. მე ასევე დავამატე 4 გამაგრილებელი გულშემატკივარი, რომ შეინარჩუნოს მუდმივი ჰაერის ნაკადის RPI და TPU ცხელ დროს.

ნაბიჯი 13: სირბილი

თქვენ ახლა მზად ხართ ჩართოთ რობოტული მკლავი და RPI! RPI– ზე შეგიძლიათ უბრალოდ გაუშვათ recycle_detection.py ფაილი. ეს გახსნის ფანჯარას და რობოტული ხელი დაიწყებს სირბილს ისევე, როგორც დემო ვიდეოში! პროგრამის დასასრულებლად დააჭირეთ ღილაკს "q" თქვენს კლავიატურაზე.

თავისუფლად ითამაშეთ კოდით და გაერთეთ!

ნაბიჯი 14: მომავალი სამუშაო

ვიმედოვნებ, რომ გამოვიყენებ R. O. S. რობოტული მკლავის გასაკონტროლებლად უფრო ზუსტი მოძრაობებით. ეს შესაძლებელს გახდის ობიექტების უფრო ზუსტად აღებას.

ნაბიჯი 15: კითხვები?

მოგერიდებათ დატოვეთ კომენტარი ქვემოთ, თუ თქვენ გაქვთ რაიმე შეკითხვა!

გირჩევთ: