Mục lục:

Robot phân loại rác: 15 bước (có hình ảnh)
Robot phân loại rác: 15 bước (có hình ảnh)

Video: Robot phân loại rác: 15 bước (có hình ảnh)

Video: Robot phân loại rác: 15 bước (có hình ảnh)
Video: Đồ án tốt nghiệp BKĐN | Cánh Tay Robot 4 Bậc Tự do phân loại sản phẩm theo màu sắc | Robot arm 4 dof 2024, Tháng mười một
Anonim
Image
Image
Lấy dữ liệu
Lấy dữ liệu

Bạn có biết rằng tỷ lệ ô nhiễm trung bình trong các cộng đồng và doanh nghiệp lên đến 25%? Điều đó có nghĩa là cứ bốn mảnh đồ tái chế bạn vứt đi thì có một mảnh không được tái chế. Nguyên nhân là do lỗi của con người trong các trung tâm tái chế. Theo truyền thống, công nhân sẽ phân loại rác vào các thùng khác nhau tùy thuộc vào vật liệu. Con người nhất định mắc lỗi và cuối cùng không phân loại rác đúng cách, dẫn đến ô nhiễm. Khi ô nhiễm và biến đổi khí hậu ngày càng trở nên nghiêm trọng hơn trong xã hội ngày nay, việc tái chế đóng một vai trò rất lớn trong việc bảo vệ hành tinh của chúng ta. Bằng cách sử dụng robot để phân loại rác, tỷ lệ ô nhiễm sẽ giảm đáng kể, chưa kể rẻ hơn và bền vững hơn rất nhiều. Để giải quyết vấn đề này, tôi đã tạo ra một robot phân loại tái chế sử dụng máy học để phân loại giữa các vật liệu tái chế khác nhau.

Bước 1: Các bộ phận

Đảm bảo bạn có các phần sau để làm theo hướng dẫn này:

Các bộ phận in 3D (xem bước bên dưới)

Raspberry Pi RPI 4 4GB

Bộ tăng tốc USB Coral của Google

Arduino Uno R3

Mô-đun máy ảnh Raspberry Pi V2

Nguồn điện tường DC 5V 2A

Nguồn điện DC 12V

SG90 9g Micro Servos 4 chiếc.

Đai ốc khóa lục giác tự khóa bằng thép không gỉ M3 x 0,5mm 100 chiếc.

Đầu nút M3x20 Vít titan 10 chiếc.

Mô-men xoắn bánh răng kim loại MG996R Động cơ Servo tương tự 4 chiếc.

Thẻ nhớ Samsung 32GB Select

Cáp Adafruit Flex cho Máy ảnh Raspberry Pi - 1 mét

M2 Male Female Female Spacer Standoff Scortment Kit

Quạt 60mm 12V

Hộp dự án 6,69 "x 5,12" x 2,95"

Bước 2: Các bộ phận in 3D

Bạn sẽ cần in 3D tất cả các bộ phận của cánh tay robot. Bạn có thể tìm thấy tất cả các tệp ở đây.

Bước 3: Mã

Vui lòng sao chép kho lưu trữ GitHub của tôi để làm theo hướng dẫn này.

Bước 4: Lấy dữ liệu

Để đào tạo mô hình phát hiện đối tượng có thể phát hiện và nhận ra các vật liệu tái chế khác nhau, tôi đã sử dụng tập dữ liệu mạng rác bao gồm 2527 hình ảnh:

  • 501 ly
  • 594 giấy
  • 403 bìa cứng
  • 482 nhựa
  • 410 kim loại
  • 137 thùng rác

Hình trên là một ví dụ về một trong những hình ảnh từ tập dữ liệu.

Tập dữ liệu này rất nhỏ để đào tạo một mô hình phát hiện đối tượng. Chỉ có khoảng 100 hình ảnh về thùng rác, quá ít để tạo ra một mô hình chính xác, vì vậy tôi quyết định loại bỏ nó.

Bạn có thể sử dụng thư mục google drive này để tải xuống tập dữ liệu. Đảm bảo tải xuống tệp dataset-resized.zip. Nó chứa tập hợp các hình ảnh đã được thay đổi kích thước thành kích thước nhỏ hơn để cho phép đào tạo nhanh hơn. Nếu bạn muốn thay đổi kích thước hình ảnh thô theo ý mình, hãy tải xuống tệp dataset-original.zip.

Bước 5: Dán nhãn cho hình ảnh

Dán nhãn cho hình ảnh
Dán nhãn cho hình ảnh

Tiếp theo, chúng ta cần dán nhãn một số hình ảnh về các vật liệu tái chế khác nhau để chúng ta có thể đào tạo mô hình phát hiện đối tượng. Để làm điều này, tôi đã sử dụng labelImg, một phần mềm miễn phí cho phép bạn gắn nhãn các hộp giới hạn đối tượng trong hình ảnh.

Gắn nhãn cho mỗi hình ảnh bằng nhãn thích hợp. Hướng dẫn này chỉ cho bạn cách thực hiện. Đảm bảo đặt mỗi hộp giới hạn gần với đường viền của mỗi đối tượng để đảm bảo mô hình phát hiện chính xác nhất có thể. Lưu tất cả các tệp.xml vào một thư mục.

Ảnh trên cho thấy cách gắn nhãn hình ảnh của bạn.

Đây là một trải nghiệm rất tẻ nhạt và tê liệt. Rất may cho bạn, tôi đã gắn nhãn tất cả các hình ảnh cho bạn! Bạn có thể tìm thấy nó ở đây.

Bước 6: Đào tạo

Về đào tạo, tôi quyết định sử dụng học chuyển tiếp bằng Tensorflow. Điều này cho phép chúng tôi đào tạo một mô hình chính xác tuyệt đối mà không cần một lượng lớn dữ liệu.

Có một số cách chúng ta có thể làm điều này. Chúng tôi có thể làm điều đó trên máy tính để bàn cục bộ của mình trên đám mây. Việc đào tạo trên máy cục bộ của chúng tôi sẽ mất rất nhiều thời gian tùy thuộc vào mức độ mạnh mẽ của máy tính của bạn và liệu bạn có GPU mạnh hay không. Đây có lẽ là cách dễ nhất theo ý kiến của tôi, nhưng một lần nữa với nhược điểm của tốc độ.

Có một số điều chính cần lưu ý về việc học chuyển tiếp. Bạn cần đảm bảo rằng mô hình được đào tạo trước mà bạn sử dụng để đào tạo tương thích với TPU Coral Edge. Bạn có thể tìm thấy các mô hình tương thích tại đây. Tôi đã sử dụng kiểu MobileNet SSD v2 (COCO). Hãy thử nghiệm với những người khác quá.

Để đào tạo trên máy cục bộ của bạn, tôi khuyên bạn nên làm theo hướng dẫn của Google hoặc hướng dẫn EdjeElectronics nếu chạy trên Windows 10. Cá nhân tôi đã thử nghiệm hướng dẫn EdjeElectroncs và đạt được thành công trên máy tính để bàn của mình. Tôi không thể xác nhận liệu hướng dẫn của Google có hoạt động hay không, nhưng tôi sẽ ngạc nhiên nếu nó không.

Để đào tạo trên đám mây, bạn có thể sử dụng AWS hoặc GCP. Tôi đã tìm thấy hướng dẫn này mà bạn có thể thử. Nó sử dụng TPU đám mây của Google có thể đào tạo mô hình phát hiện đối tượng của bạn siêu nhanh. Hãy thoải mái sử dụng AWS.

Cho dù bạn đào tạo trên máy cục bộ hay trên đám mây, bạn nên kết thúc với mô hình tensorflow được đào tạo.

Bước 7: Biên soạn mô hình được đào tạo

Biên soạn mô hình được đào tạo
Biên soạn mô hình được đào tạo

Để mô hình được đào tạo của bạn hoạt động với TPU Coral Edge, bạn cần phải biên dịch nó.

Trên đây là sơ đồ cho quy trình làm việc.

Sau khi đào tạo, bạn cần lưu nó dưới dạng đồ thị cố định (tệp.pb). Sau đó, bạn cần chuyển đổi nó thành mô hình Tensorflow Lite. Lưu ý cách nó nói "Lượng tử hóa sau đào tạo". Nếu bạn đã sử dụng các mô hình được đào tạo trước tương thích khi sử dụng tính năng học chuyển giao, bạn không cần thực hiện việc này. Hãy xem tài liệu đầy đủ về khả năng tương thích tại đây.

Với mô hình Tensorflow Lite, bạn cần phải biên dịch nó sang mô hình Edge TPU. Xem chi tiết cách thực hiện tại đây.

Bước 8: Mô hình phát hiện tái chế

Nếu bạn không muốn trải qua quá trình đào tạo, chuyển đổi và biên dịch mô hình phát hiện đối tượng phức tạp, hãy xem mô hình phát hiện tái chế của tôi tại đây.

Bước 9: Triển khai mô hình

Triển khai mô hình
Triển khai mô hình

Bước tiếp theo là thiết lập Raspberry Pi (RPI) và Edge TPU để chạy mô hình phát hiện đối tượng được đào tạo.

Đầu tiên, thiết lập RPI bằng cách sử dụng hướng dẫn này.

Tiếp theo, thiết lập Edge TPU theo hướng dẫn này.

Cuối cùng, kết nối mô-đun máy ảnh RPI với pi raspberry.

Bây giờ bạn đã sẵn sàng để kiểm tra mô hình phát hiện đối tượng của mình!

Nếu bạn đã sao chép kho lưu trữ của tôi, bạn sẽ muốn điều hướng đến thư mục RPI và chạy tệp test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / detector_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / label.txt

Một cửa sổ nhỏ sẽ bật lên và nếu bạn đặt một chai nước bằng nhựa hoặc vật liệu tái chế khác, nó sẽ phát hiện ra nó giống như hình trên.

Nhấn ký tự "q" trên bàn phím của bạn để kết thúc chương trình.

Bước 10: Chế tạo cánh tay robot

Xây dựng cánh tay robot
Xây dựng cánh tay robot

Cánh tay robot là cánh tay in 3D mà tôi tìm thấy ở đây. Chỉ cần làm theo hướng dẫn về cách thiết lập nó.

Hình ảnh trên cho thấy cánh tay rô bốt của tôi hoạt động như thế nào.

Đảm bảo bạn kết nối các chân servo với các chân I / O theo Arduino trong mã của tôi. Kết nối các servo từ dưới lên trên của cánh tay theo thứ tự sau: 3, 11, 10, 9, 6, 5. Không kết nối nó theo thứ tự này sẽ khiến cánh tay di chuyển sai servo!

Kiểm tra để xem nó hoạt động bằng cách điều hướng đến thư mục Arduino và chạy tệp basicMovement.ino. Thao tác này chỉ đơn giản là lấy một vật mà bạn đặt phía trước cánh tay và thả nó ra phía sau.

Bước 11: Kết nối RPI & Cánh tay robot

Kết nối RPI & Cánh tay robot
Kết nối RPI & Cánh tay robot

Trước tiên, chúng ta cần gắn mô-đun máy ảnh vào dưới cùng của móng vuốt. Hình ảnh trên cho thấy nó sẽ trông như thế nào.

Cố gắng căn chỉnh máy ảnh càng thẳng càng tốt để giảm thiểu sai sót khi lấy vật liệu tái chế được công nhận. Bạn sẽ cần sử dụng cáp ruy-băng mô-đun máy ảnh dài như đã thấy trong danh sách vật liệu.

Tiếp theo, bạn cần tải tệp roboticArm.ino lên bảng Arduino.

Cuối cùng, chúng ta chỉ cần kết nối cáp USB giữa cổng USB của RPI và cổng USB của Arduino. Điều này sẽ cho phép họ giao tiếp thông qua nối tiếp. Làm theo hướng dẫn này về cách thiết lập điều này.

Bước 12: Những lần chạm cuối cùng

Lần chỉnh sửa cuối cùng
Lần chỉnh sửa cuối cùng
Lần chỉnh sửa cuối cùng
Lần chỉnh sửa cuối cùng

Bước này là hoàn toàn không bắt buộc nhưng tôi muốn đặt tất cả các thành phần của mình vào một hộp dự án nhỏ xinh.

Những hình ảnh trên cho thấy nó trông như thế nào.

Bạn có thể tìm thấy hộp dự án trên danh sách vật liệu. Tôi chỉ khoan một số lỗ và sử dụng giá đỡ bằng đồng để gắn các thiết bị điện tử. Tôi cũng gắn 4 quạt làm mát để giữ luồng không khí liên tục qua RPI và TPU khi nóng.

Bước 13: Chạy

Bây giờ bạn đã sẵn sàng cấp nguồn cho cả cánh tay robot và RPI! Trên RPI, bạn có thể chỉ cần chạy tệp recycle_detection.py. Thao tác này sẽ mở ra một cửa sổ và cánh tay robot sẽ bắt đầu chạy giống như trong video demo! Nhấn ký tự "q" trên bàn phím của bạn để kết thúc chương trình.

Hãy thoải mái chơi với mã và vui chơi!

Bước 14: Công việc trong tương lai

Tôi hy vọng sẽ sử dụng R. O. S. để điều khiển cánh tay robot với các chuyển động chính xác hơn. Điều này sẽ cho phép nhặt các đối tượng chính xác hơn.

Bước 15: Câu hỏi?

Hãy để lại bình luận bên dưới nếu bạn có bất kỳ câu hỏi nào!

Đề xuất: