Mục lục:
- Bước 1: Các bộ phận
- Bước 2: Các bộ phận in 3D
- Bước 3: Mã
- Bước 4: Lấy dữ liệu
- Bước 5: Dán nhãn cho hình ảnh
- Bước 6: Đào tạo
- Bước 7: Biên soạn mô hình được đào tạo
- Bước 8: Mô hình phát hiện tái chế
- Bước 9: Triển khai mô hình
- Bước 10: Chế tạo cánh tay robot
- Bước 11: Kết nối RPI & Cánh tay robot
- Bước 12: Những lần chạm cuối cùng
- Bước 13: Chạy
- Bước 14: Công việc trong tương lai
- Bước 15: Câu hỏi?
Video: Robot phân loại rác: 15 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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
Để 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
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
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
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
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:
Tạo máy phân loại thùng rác Pi với ML !: 8 bước (có hình ảnh)
Tạo Máy phân loại Thùng rác Pi Với ML !: Dự án Máy phân loại Thùng rác, được gọi thân mật là " Nó sẽ đi đến đâu ?! ", được thiết kế để giúp việc vứt bỏ mọi thứ nhanh hơn và đáng tin cậy hơn. Dự án này sử dụng mô hình Học máy (ML) được đào tạo tại Lobe, một người thân thiện với người mới bắt đầu (không cần mã!)
Bộ tổng hợp / Organ tương tự tuyệt vời chỉ sử dụng các thành phần rời rạc: 10 bước (có hình ảnh)
Bộ tổng hợp Analog / Organ tuyệt vời chỉ sử dụng các thành phần rời rạc: Các bộ tổng hợp analog rất hay nhưng cũng khá khó chế tạo. cần một vài mạch phụ cơ bản: Một bộ dao động đơn giản với điện trở lại
Thùng phân loại - Phát hiện và sắp xếp thùng rác của bạn: 9 bước
Sorter Bin - Phát hiện và Sắp xếp Thùng rác của bạn: Bạn đã bao giờ thấy ai đó không tái chế hoặc đang làm việc đó theo cách tồi tệ chưa? Bạn đã bao giờ ước có một chiếc máy có thể tái chế cho bạn? Hãy tiếp tục đọc dự án của chúng tôi, bạn sẽ không hối tiếc! Sorter bin là một dự án có động lực trợ giúp rõ ràng
Phân loại hạt robot: 3 bước (có hình ảnh)
Phân loại hạt bằng rô bốt: Trong dự án này, chúng tôi sẽ chế tạo rô bốt để phân loại hạt Perler theo màu. Tôi luôn muốn chế tạo rô bốt phân loại màu, vì vậy khi con gái tôi quan tâm đến chế tác hạt Perler, tôi đã xem đây là một cơ hội hoàn hảo .Perler hạt được sử dụng t
TRASH ROCKS - Loại bỏ Thùng rác không thể phân loại: 8 bước
TRASH ROCKS - Loại bỏ Thùng rác Không thể phân loại: Để tạo thành một tảng đá rác, trước tiên, một bao tải được khâu ra khỏi lưới cá. Nó chứa đầy rác và trát bằng xi măng. Vỏ tạo thành có hình dạng độc đáo và trông rất tự nhiên. Đá rác là một