สารบัญ:

หุ่นยนต์คัดแยกขยะรีไซเคิล: 15 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์คัดแยกขยะรีไซเคิล: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หุ่นยนต์คัดแยกขยะรีไซเคิล: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หุ่นยนต์คัดแยกขยะรีไซเคิล: 15 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: โรงงานแปรรูปขยะเป็น RDF 2024, พฤศจิกายน
Anonim
Image
Image
การรับข้อมูล
การรับข้อมูล

คุณรู้หรือไม่ว่าอัตราการปนเปื้อนโดยเฉลี่ยในชุมชนและธุรกิจอยู่ที่ 25%? นั่นหมายความว่า 1 ใน 4 ชิ้นของการรีไซเคิลที่คุณทิ้งไปจะไม่ถูกนำไปรีไซเคิล สาเหตุนี้เกิดจากความผิดพลาดของมนุษย์ในศูนย์รีไซเคิล ตามเนื้อผ้า คนงานจะคัดแยกขยะออกเป็นถังขยะต่าง ๆ ขึ้นอยู่กับวัสดุ มนุษย์จำต้องผิดพลาดและจบลงด้วยการไม่คัดแยกขยะอย่างถูกต้อง นำไปสู่การปนเปื้อน เนื่องจากมลภาวะและการเปลี่ยนแปลงสภาพภูมิอากาศมีความสำคัญมากขึ้นในสังคมปัจจุบัน การรีไซเคิลจึงมีส่วนสำคัญในการปกป้องโลกของเรา การใช้หุ่นยนต์ในการคัดแยกขยะ อัตราการปนเปื้อนจะลดลงอย่างมาก ไม่ต้องพูดถึงว่าถูกกว่าและยั่งยืนกว่ามาก เพื่อแก้ปัญหานี้ ฉันได้สร้างหุ่นยนต์คัดแยกขยะที่ใช้การเรียนรู้ของเครื่องเพื่อจัดเรียงวัสดุรีไซเคิลต่างๆ

ขั้นตอนที่ 1: อะไหล่

ตรวจสอบให้แน่ใจว่าคุณมีส่วนต่าง ๆ ต่อไปนี้เพื่อติดตามพร้อมกับบทช่วยสอนนี้:

ชิ้นส่วนที่พิมพ์ 3 มิติ (ดูขั้นตอนด้านล่าง)

Raspberry Pi RPI 4 4GB

Google Coral USB Accelerator

Arduino Uno R3

โมดูลกล้อง Raspberry Pi V2

แหล่งจ่ายไฟ DC แบบติดผนัง 5V 2A

แหล่งจ่ายไฟ DC 12V

SG90 9g ไมโครเซอร์โว 4 ชิ้น

M3 x 0.5มม. สแตนเลสล็อคตัวเองน็อตล็อคไนล่อน 100ชิ้น.

M3x20 สกรูหัวกระดุมไททาเนียม 10ชิ้น

MG996Rเมทัลเกียร์ทอร์คแอนะล็อกเซอร์โวมอเตอร์ 4ชิ้น.

การ์ดหน่วยความจำ Samsung 32GB Select

Adafruit Flex Cable for Raspberry Pi Camera - 1 เมตร

M2 ตัวเมียตัวเมียทองเหลือง Spacer Standoff Screw Nut Assortment Kit

พัดลม 12V ขนาด 60 มม.

กล่องโปรเจ็กต์ 6.69"x 5.12" x 2.95"

ขั้นตอนที่ 2: ชิ้นส่วนที่พิมพ์ 3 มิติ

คุณจะต้องพิมพ์ 3D ชิ้นส่วนทั้งหมดสำหรับแขนหุ่นยนต์ คุณสามารถค้นหาไฟล์ทั้งหมดได้ที่นี่

ขั้นตอนที่ 3: รหัส

โปรดโคลนที่เก็บ GitHub ของฉันเพื่อทำตามบทช่วยสอนนี้

ขั้นตอนที่ 4: รับข้อมูล

ในการฝึกโมเดลการตรวจจับวัตถุที่สามารถตรวจจับและจดจำวัสดุรีไซเคิลต่างๆ ได้ ฉันใช้ชุดข้อมูลในถังขยะซึ่งประกอบด้วยภาพ 2527 ภาพ:

  • 501 แก้ว
  • 594 กระดาษ
  • 403 กระดาษแข็ง
  • 482 พลาสติก
  • 410 โลหะ
  • 137 ถังขยะ

ภาพด้านบนเป็นตัวอย่างหนึ่งของภาพจากชุดข้อมูล

ชุดข้อมูลนี้มีขนาดเล็กมากในการฝึกโมเดลการตรวจจับวัตถุ มีรูปขยะประมาณ 100 รูปที่น้อยเกินไปที่จะฝึกโมเดลที่แม่นยำ ดังนั้นฉันจึงตัดสินใจละทิ้ง

คุณสามารถใช้โฟลเดอร์ Google ไดรฟ์นี้เพื่อดาวน์โหลดชุดข้อมูล อย่าลืมดาวน์โหลดไฟล์ 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 ฉันพบบทช่วยสอนนี้ที่คุณสามารถลองได้ ใช้คลาวด์ TPU ของ Google ที่สามารถฝึกโมเดลการตรวจจับวัตถุของคุณได้อย่างรวดเร็ว อย่าลังเลที่จะใช้ AWS เช่นกัน

ไม่ว่าคุณจะฝึกบนเครื่องในพื้นที่ของคุณหรือในระบบคลาวด์ คุณควรลงเอยด้วยโมเดลเทนเซอร์โฟลว์ที่ผ่านการฝึกอบรม

ขั้นตอนที่ 7: รวบรวมโมเดลที่ผ่านการฝึกอบรม

การรวบรวมแบบจำลองที่ได้รับการฝึกอบรม
การรวบรวมแบบจำลองที่ได้รับการฝึกอบรม

คุณต้องคอมไพล์โมเดลเพื่อให้โมเดลที่ผ่านการฝึกอบรมของคุณทำงานกับ Coral Edge TPU ได้

ด้านบนเป็นไดอะแกรมสำหรับเวิร์กโฟลว์

หลังการฝึก คุณต้องบันทึกเป็นกราฟที่ตรึงไว้ (ไฟล์.pb) จากนั้น คุณต้องแปลงเป็นโมเดล Tensorflow Lite สังเกตว่ามีข้อความว่า "การควอนไทซ์หลังการฝึก" หากคุณใช้โมเดลที่ได้รับการฝึกฝนมาล่วงหน้าที่เข้ากันได้เมื่อใช้การเรียนรู้แบบโอนย้าย คุณไม่จำเป็นต้องทำเช่นนี้ ดูเอกสารฉบับเต็มเกี่ยวกับความเข้ากันได้ที่นี่

ด้วยรุ่น Tensorflow Lite คุณต้องคอมไพล์ไปยังรุ่น Edge TPU ดูรายละเอียดวิธีการทำได้ที่นี่

ขั้นตอนที่ 8: แบบจำลองการตรวจจับการรีไซเคิล

หากคุณไม่ต้องการพบกับความยุ่งยากในการฝึกอบรม การแปลง และการรวบรวมแบบจำลองการตรวจจับวัตถุ ให้ตรวจสอบแบบจำลองการตรวจจับการรีไซเคิลของฉันที่นี่

ขั้นตอนที่ 9: ปรับใช้ Model

ปรับใช้โมเดล
ปรับใช้โมเดล

ขั้นตอนต่อไปคือการตั้งค่า Raspberry Pi (RPI) และ Edge TPU เพื่อเรียกใช้โมเดลการตรวจจับวัตถุที่ผ่านการฝึกอบรม

ขั้นแรก ตั้งค่า RPI โดยใช้บทช่วยสอนนี้

ถัดไป ตั้งค่า Edge TPU ตามบทช่วยสอนนี้

สุดท้าย เชื่อมต่อโมดูลกล้อง RPI กับ Raspberry Pi

ตอนนี้คุณพร้อมที่จะทดสอบโมเดลการตรวจจับวัตถุของคุณแล้ว!

หากคุณโคลนที่เก็บของฉันแล้ว คุณจะต้องไปที่ไดเร็กทอรี RPI และเรียกใช้ไฟล์ test_detection.py:

หลาม 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

หน้าต่างเล็ก ๆ จะปรากฏขึ้น และหากคุณใส่ขวดน้ำพลาสติกหรือวัสดุรีไซเคิลอื่น ๆ ก็ควรตรวจพบเหมือนภาพด้านบน

กดตัวอักษร "q" บนแป้นพิมพ์เพื่อสิ้นสุดโปรแกรม

ขั้นตอนที่ 10: สร้างแขนหุ่นยนต์

สร้างแขนหุ่นยนต์
สร้างแขนหุ่นยนต์

แขนหุ่นยนต์เป็นแขนพิมพ์ 3 มิติที่ฉันพบที่นี่ เพียงทำตามบทช่วยสอนเกี่ยวกับการตั้งค่า

ภาพด้านบนแสดงให้เห็นว่าแขนหุ่นยนต์ของฉันเป็นอย่างไร

ตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อเซอร์โวพินกับพิน Arduino I / O ในรหัสของฉัน เชื่อมต่อเซอร์โวจากล่างขึ้นบนของแขนตามลำดับนี้: 3, 11, 10, 9, 6, 5. การไม่เชื่อมต่อตามลำดับนี้จะทำให้แขนขยับเซอร์โวผิด!

ทดสอบเพื่อดูว่ามันทำงานโดยไปที่ไดเร็กทอรี Arduino และเรียกใช้ไฟล์ basicMovement.ino นี่จะเป็นการคว้าวัตถุที่คุณวางไว้ข้างหน้าแขนแล้วปล่อยไว้ข้างหลัง

ขั้นตอนที่ 11: เชื่อมต่อ RPI และ Robotic Arm

การเชื่อมต่อ RPI และแขนกล
การเชื่อมต่อ RPI และแขนกล

ก่อนอื่นเราต้องติดตั้งโมดูลกล้องที่ด้านล่างของกรงเล็บ ภาพด้านบนแสดงให้เห็นว่าควรมีลักษณะอย่างไร

พยายามจัดตำแหน่งกล้องให้ตรงที่สุดเพื่อลดข้อผิดพลาดในการจับวัสดุรีไซเคิลที่รู้จัก คุณจะต้องใช้สายแพของโมดูลกล้องแบบยาวตามที่เห็นในรายการวัสดุ

ถัดไป คุณต้องอัปโหลดไฟล์ roboticArm.ino ไปยังบอร์ด Arduino

สุดท้าย เราแค่ต้องเชื่อมต่อสาย USB ระหว่างพอร์ต USB ของ RPI และพอร์ต USB ของ Arduino ซึ่งจะช่วยให้สื่อสารผ่านซีเรียลได้ ทำตามบทช่วยสอนนี้เกี่ยวกับวิธีตั้งค่า

ขั้นตอนที่ 12: สัมผัสสุดท้าย

สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย

ขั้นตอนนี้เป็นทางเลือกอย่างสมบูรณ์ แต่ฉันชอบที่จะใส่ส่วนประกอบทั้งหมดของฉันลงในกล่องโปรเจ็กต์เล็กๆ ที่สวยงาม

ภาพด้านบนแสดงให้เห็นว่ามันมีลักษณะอย่างไร

คุณสามารถค้นหากล่องโครงการได้ในรายการวัสดุ ฉันเพิ่งเจาะรูและใช้ขาตั้งทองเหลืองเพื่อติดตั้งอุปกรณ์อิเล็กทรอนิกส์ ฉันยังติดตั้งพัดลมระบายความร้อน 4 ตัวเพื่อให้อากาศไหลเวียนผ่าน RPI และ TPU เมื่อร้อนตลอดเวลา

ขั้นตอนที่ 13: วิ่ง

ตอนนี้คุณพร้อมที่จะเปิดทั้งแขนหุ่นยนต์และ RPI แล้ว! บน RPI คุณสามารถเรียกใช้ไฟล์ recycle_detection.py ได้ง่ายๆ ซึ่งจะเปิดหน้าต่างและแขนหุ่นยนต์จะเริ่มทำงานเหมือนในวิดีโอสาธิต! กดตัวอักษร "q" บนแป้นพิมพ์เพื่อสิ้นสุดโปรแกรม

รู้สึกอิสระที่จะเล่นกับรหัสและสนุก!

ขั้นตอนที่ 14: งานในอนาคต

ฉันหวังว่าจะใช้ R. O. S. เพื่อควบคุมแขนหุ่นยนต์ด้วยการเคลื่อนไหวที่แม่นยำยิ่งขึ้น สิ่งนี้จะช่วยให้หยิบวัตถุได้แม่นยำยิ่งขึ้น

ขั้นตอนที่ 15: คำถาม?

อย่าลังเลที่จะแสดงความคิดเห็นด้านล่างหากคุณมีคำถามใด ๆ !

แนะนำ: