Daftar Isi:
- Langkah 1: Sebelum Kita Mulai
- Langkah 2: Buat Model ML Kustom di Lobe
- Langkah 3: Bangun: Perangkat Keras
- Langkah 4: Kode Ini: Perangkat Lunak
- Langkah 5: Uji Ini: Jalankan Programnya
- Langkah 6: (Opsional) Bangun: Selesaikan Sirkuit Anda
- Langkah 7: (Opsional) Build It: Case
- Langkah 8: Instal dan Terapkan
Video: Membuat Pi Trash Classifier Dengan ML!: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Proyek Pengklasifikasi Sampah, yang dikenal sebagai "Ke mana perginya?!", dirancang untuk membuat membuang barang lebih cepat dan lebih dapat diandalkan.
Proyek ini menggunakan model Machine Learning (ML) yang dilatih di Lobe, pembuat model ML yang ramah pemula (tanpa kode!), untuk mengidentifikasi apakah suatu objek masuk ke tempat sampah, daur ulang, kompos, atau limbah berbahaya. Model tersebut kemudian dimuat ke komputer Raspberry Pi 4 agar dapat digunakan di mana pun Anda mungkin menemukan tempat sampah!
Tutorial ini memandu Anda cara membuat proyek Pengklasifikasi Sampah Anda sendiri pada Raspberry Pi dari model Lobe TensorFlow di Python3.
Kesulitan: Pemula ++ (beberapa pengetahuan dengan sirkuit dan pengkodean sangat membantu)
Waktu Baca: 5 menit
Waktu Pembuatan: 60 - 90 menit
Biaya: ~$70 (termasuk Pi 4)
Perlengkapan:
Perangkat Lunak (sisi PC)
- Cuping
- WinSCP (atau metode transfer file SSH lainnya, dapat menggunakan CyberDuck untuk Mac)
- Terminal
- Koneksi Desktop Jarak Jauh atau RealVNC
Perangkat keras
- Raspberry Pi, Kartu SD, dan catu daya USB-C (5V, 2.5A)
- Kamera Pi
- Tekan tombol
-
5 LED (4 LED indikator dan 1 LED status)
- LED kuning: sampah
- LED biru: daur ulang
- LED hijau: kompos
- LED merah: limbah berbahaya
- LED putih: status
- 6 220 Ohm resistor
- 10 kabel jumper M-ke-M
- Papan tempat memotong roti, setengah ukuran
Jika Anda memilih untuk menyolder:
- 1 konektor JST, ujung perempuan saja
- 2 kabel jumper M-ke-F
- 10 kabel jumper F-ke-F
- PCB
Lampiran
- Kotak proyek (mis. kardus, kayu, atau kotak plastik, kira-kira 6" x 5" x 4")
-
0,5 "x 0,5" (2cm x 2cm) kotak plastik bening
Misalnya. dari tutup wadah makanan plastik
- Velcro
Peralatan
- Pemotong kawat
- Pisau presisi (misalnya pisau eksak) dan alas potong
- Besi solder (opsional)
- Alat lelehan panas (atau lem non-konduktif lainnya - epoksi berfungsi dengan baik tetapi permanen)
Langkah 1: Sebelum Kita Mulai
Proyek ini mengasumsikan Anda memulai dengan Raspberry Pi yang sepenuhnya diatur dalam konfigurasi tanpa kepala. Berikut panduan ramah pemula tentang cara melakukan ini.
Ini juga membantu untuk memiliki beberapa pengetahuan tentang hal-hal berikut:
-
Keakraban dengan Raspberry Pi
- Berikut panduan memulai yang praktis!
- Juga membantu: Memulai dengan kamera Pi
-
Membaca dan mengedit kode Python (Anda tidak perlu menulis program, cukup edit)
Pengenalan Python dengan Raspberry Pi
- Membaca diagram pengkabelan Fritzing
-
Menggunakan papan tempat memotong roti
Cara menggunakan tutorial papan tempat memotong roti
Cari tahu ke mana sampah Anda pergi
Setiap kota di seluruh AS (dan saya akan menganggap dunia) memiliki sampah/daur ulang/kompos/dll sendiri. sistem pengumpulan. Ini berarti bahwa untuk membuat pengklasifikasi sampah yang akurat, kita harus 1) membangun model ML khusus (kita akan membahas ini di langkah berikutnya -- tanpa kode!) dan 2) tahu ke mana setiap sampah pergi.
Karena saya tidak selalu tahu tempat sampah yang tepat untuk setiap item yang saya gunakan untuk melatih model saya, saya menggunakan selebaran Seattle Utilities (Foto 1), dan juga "Ke mana perginya?" alat pencarian untuk kota Seattle! Lihat sumber daya apa yang tersedia di kota Anda dengan mencari utilitas pengumpulan sampah kota Anda dan membaca situs webnya dengan teliti.
Langkah 2: Buat Model ML Kustom di Lobe
Lobe adalah alat yang mudah digunakan yang memiliki semua yang Anda butuhkan untuk mewujudkan ide pembelajaran mesin Anda. Tunjukkan contoh apa yang Anda inginkan, dan secara otomatis melatih model pembelajaran mesin kustom yang dapat diekspor untuk perangkat dan aplikasi edge. Itu tidak memerlukan pengalaman apa pun untuk memulai. Anda dapat berlatih di komputer Anda sendiri secara gratis!
Berikut adalah ikhtisar singkat tentang cara menggunakan Lobe:
1. Buka program Lobe dan buat proyek baru.
2. Ambil atau impor foto dan beri label ke dalam kategori yang sesuai. (Foto 1) Kami akan membutuhkan label ini nanti di bagian perangkat lunak proyek.
Ada dua cara untuk mengimpor foto:
- Ambil foto item langsung dari webcam komputer Anda, atau
-
Impor foto dari folder yang ada di komputer Anda.
Perlu diingat bahwa nama folder foto akan digunakan sebagai nama label kategori, jadi pastikan sesuai dengan label yang ada
Selain: Saya akhirnya menggunakan kedua metode, karena semakin banyak foto yang Anda miliki, semakin akurat model Anda.
3. Gunakan fitur "Mainkan" untuk menguji akurasi model. Ubah jarak, pencahayaan, posisi tangan, dll. untuk mengidentifikasi di mana model berada dan tidak akurat. Tambahkan lebih banyak foto jika perlu. (Foto 3 - 4)
4. Jika sudah siap, ekspor model Lobe ML Anda dalam format TensorFlow (TF) Lite.
Kiat:
-
Sebelum mengimpor foto, buatlah daftar semua kategori yang Anda perlukan dan bagaimana Anda ingin melabelinya (mis. "sampah, " "daur ulang, " "kompos, " dll.)
Catatan: Gunakan label yang sama seperti yang ditunjukkan pada foto "Label Model Lobe" di atas untuk mengurangi jumlah kode yang perlu Anda ubah
- Sertakan kategori untuk "bukan sampah" yang memiliki foto apa pun yang mungkin ada di foto tersebut (mis. tangan dan lengan Anda, latar belakang, dll.)
- Jika memungkinkan, ambil foto dari Pi Camera dan impor ke Lobe. Ini akan sangat meningkatkan akurasi model Anda!
- Butuh lebih banyak foto? Lihat kumpulan data sumber terbuka di Kaggle, termasuk kumpulan gambar klasifikasi sampah ini!
- butuh lebih banyak bantuan? Terhubung dengan Komunitas Lobe di Reddit!
Langkah 3: Bangun: Perangkat Keras
1. Hubungkan Pi Camera ke Pi dengan hati-hati (kunjungi panduan memulai Pi Foundation untuk informasi lebih lanjut). (Foto 1)
2. Ikuti diagram pengkabelan untuk menghubungkan tombol dan LED ke pin Pi GPIO.
- Tombol Tekan: Hubungkan satu kaki tombol ke pin GPIO 2. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
- LED Kuning: Hubungkan kaki positif (lebih panjang) ke pin GPIO 17. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
- LED Biru: Hubungkan kaki positif ke pin GPIO 27. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
- LED Hijau: Hubungkan kaki positif ke pin GPIO 22. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
- LED Merah: Hubungkan kaki positif ke pin GPIO 23. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
- LED Putih: Hubungkan kaki positif ke pin GPIO 24. Hubungkan kaki lainnya, melalui resistor, ke pin GPIO GND.
3. Direkomendasikan untuk menguji sirkuit Anda pada papan tempat memotong roti dan menjalankan program sebelum menyolder atau membuat sambungan permanen. Untuk melakukan ini, kita perlu menulis dan mengunggah program perangkat lunak kita, jadi mari kita lanjutkan ke langkah berikutnya!
Langkah 4: Kode Ini: Perangkat Lunak
1. Di PC Anda, buka WinSCP dan sambungkan ke Pi Anda. Buat folder Lobe di direktori home Pi Anda dan buat folder model di direktori itu.
2. Seret konten folder TF Lobe yang dihasilkan ke Pi. Catat jalur file: /home/pi/Lobe/model
3. Di Pi, buka terminal dan unduh pustaka lobe-python untuk Python3 dengan menjalankan perintah bash berikut:
instal pip3
lobus instal pip3
4. Unduh kode Trash Classifier (rpi_trash_classifier.py) dari repo ini ke Pi (klik tombol "Kode" seperti yang ditunjukkan pada Foto 1).
- Lebih suka menyalin/menempel? Dapatkan kode mentahnya di sini.
- Lebih suka mengunduh ke komputer Anda? Unduh repo/kode ke komputer Anda kemudian transfer kode Python ke Pi melalui WinSCP (atau program transfer file jarak jauh pilihan Anda).
5. Setelah Anda menghubungkan perangkat keras ke pin GPIO Pi, baca kode contoh dan perbarui jalur file apa pun yang diperlukan:
- Baris 29: filepath ke model Lobe TF
- Baris 47 dan 83: jalur file ke gambar yang diambil melalui Pi Camera
6. Jika perlu, perbarui label model dalam kode agar sama persis dengan label di model Lobe Anda (termasuk kapitalisasi, tanda baca, dll.):
- Baris 57: "sampah"
- Baris 60: "daur ulang"
- Baris 63: "kompos"
- Baris 66: "fasilitas limbah berbahaya"
- Baris 69: "bukan sampah!"
7. Jalankan program menggunakan Python3 di jendela terminal:
python3 rpi_trash_classifier.py
Langkah 5: Uji Ini: Jalankan Programnya
Tinjauan Program
Saat pertama kali menjalankan program, perlu beberapa saat untuk memuat library TensorFlow dan model Lobe ML. Saat program siap untuk mengambil gambar, lampu status (LED putih) akan berkedip.
Setelah Anda mengambil gambar, program akan membandingkan gambar dengan model Lobe ML dan menampilkan prediksi yang dihasilkan (baris 83). Output menentukan lampu mana yang menyala: kuning (sampah), biru (daur ulang), hijau (kompos), atau merah (sampah berbahaya).
Jika tidak ada LED indikator yang menyala dan LED status kembali ke mode pulsa, berarti gambar yang diambil “bukan sampah”, dengan kata lain, foto ulang!
Menangkap Gambar
Tekan tombol untuk mengambil gambar. Perhatikan bahwa Anda mungkin perlu menahan tombol tekan setidaknya selama 1 detik agar program dapat mendaftarkan pers. Disarankan untuk mengambil beberapa gambar uji, lalu membukanya di Desktop untuk lebih memahami tampilan dan bingkai kamera.
Untuk memberikan waktu kepada pengguna untuk memposisikan objek dan untuk menyesuaikan tingkat cahaya kamera, dibutuhkan sekitar 5 detik untuk menangkap gambar sepenuhnya. Anda dapat mengubah pengaturan ini dalam kode (baris 35 dan 41), tetapi perlu diingat bahwa Pi Foundation merekomendasikan minimal 2 detik untuk penyesuaian tingkat cahaya.
Penyelesaian masalah
Tantangan terbesar adalah memastikan bahwa gambar yang diambil sesuai dengan yang kami harapkan, jadi luangkan waktu untuk meninjau gambar dan membandingkan hasil yang diharapkan dengan output LED indikator. Jika perlu, Anda dapat meneruskan gambar ke model Lobe ML untuk inferensi langsung dan perbandingan yang lebih cepat.
Beberapa hal yang perlu diperhatikan:
- Pustaka TensorFlow kemungkinan akan memberikan beberapa pesan peringatan -- ini adalah tipikal untuk versi yang digunakan dalam kode contoh ini.
- Label prediksi harus persis seperti yang tertulis di fungsi led_select(), termasuk kapitalisasi, tanda baca, dan spasi. Pastikan untuk mengubah ini jika Anda memiliki model Lobe yang berbeda.
- Pi membutuhkan catu daya yang stabil. Lampu daya Pi harus terang, merah pekat.
- Jika satu atau lebih LED tidak menyala saat diharapkan, periksa dengan memaksanya menyala dengan perintah:
red_led.on()
Langkah 6: (Opsional) Bangun: Selesaikan Sirkuit Anda
Sekarang kami telah menguji dan, jika perlu, men-debug, proyek kami sehingga berfungsi seperti yang diharapkan, kami siap untuk menyolder sirkuit kami!
Catatan: Jika Anda tidak memiliki besi solder, Anda dapat melewati langkah ini. Salah satu alternatifnya adalah melapisi sambungan kawat dengan lem panas (pilihan ini akan memungkinkan Anda untuk memperbaiki/menambahkan/menggunakan sesuatu nanti, tetapi kemungkinan besar akan rusak), atau menggunakan epoksi atau lem permanen serupa (opsi ini akan jauh lebih tahan lama). tetapi Anda tidak akan dapat menggunakan sirkuit atau berpotensi Pi setelah melakukan ini)
Komentar singkat tentang pilihan desain saya (Foto 1):
- Saya memilih kabel jumper perempuan untuk LED dan Pi GPIO karena mereka memungkinkan saya untuk menghapus LED dan menukar warna atau memindahkannya jika diperlukan. Anda dapat melewati ini jika Anda ingin membuat koneksi permanen.
- Demikian pula, saya memilih konektor JST untuk tombol tekan.
Maju ke gedung
1. Potong masing-masing kabel jumper wanita menjadi dua (ya, semuanya!). Dengan menggunakan penari telanjang kawat, lepaskan sekitar 1/4 (1/2cm) dari insulasi kawat.
2. Untuk setiap LED, solder resistor 220Ω ke kaki negatif (lebih pendek). (Foto 2)
3. Potong sepotong kecil, sekitar 1 (2cm) tabung heat shrink dan dorong LED dan persimpangan resistor. Pastikan kaki resistor lainnya dapat diakses, lalu panaskan tabung shrink sampai mengamankan sambungan. (Foto 3)
4. Masukkan setiap LED ke dalam sepasang kabel jumper wanita. (Foto 4)
5. Beri label pada kabel jumper (misalnya dengan selotip), lalu solder kabel jumper ke papan sirkuit tercetak (PCB). (Foto 5)
6. Selanjutnya, gunakan kabel jumper perempuan (potong) untuk menghubungkan setiap LED ke pin Pi GPIO masing-masing. Solder dan beri label pada kabel jumper sehingga logam telanjang terhubung ke kaki LED positif melalui PCB. (Foto 5)
Catatan: Di mana Anda menyolder kawat ini akan tergantung pada tata letak PCB Anda. Anda juga dapat menyolder kabel ini langsung ke kabel jumper LED positif.
7. Solder resistor 220Ω ke ujung negatif (hitam) konektor JST. (Foto 6)
8. Solder konektor JST dan resistor ke tombol tekan. (Foto 6)
9. Hubungkan kabel jumper M-to-F antara konektor tombol dan pin GPIO (pengingat: hitam adalah GND).
10. Lapisi sambungan PCB dengan lem panas atau epoxy agar sambungan lebih aman.
Catatan: jika Anda memilih untuk menggunakan epoksi, Anda mungkin tidak dapat menggunakan pin GPIO Pi untuk proyek lain di masa mendatang. Jika Anda mengkhawatirkan hal ini, tambahkan kabel pita GPIO dan sambungkan kabel jumper ke sana.
Langkah 7: (Opsional) Build It: Case
Buat penutup untuk Pi Anda yang akan menahan kamera, tombol tekan, dan LED di tempatnya sekaligus melindungi Pi. Rancang enklosur Anda sendiri atau ikuti instruksi pembuatan kami di bawah ini untuk membuat prototipe enklosur kardus dengan cepat!
-
Di bagian atas kotak kardus kecil, telusuri lokasi tombol tekan, lampu status, lampu pengenal, dan jendela kamera pi (Foto 1).
Catatan: Jendela kamera Pi harus sekitar 3/4" x 1/2"
-
Menggunakan pisau presisi Anda, potong jejaknya.
Catatan: Anda mungkin ingin menguji ukuran saat Anda pergi (Foto 1)
- Opsional: Cat casingnya! Saya memilih cat semprot:)
- Potong penutup "jendela" persegi panjang untuk Kamera Pi (Foto 4) dan rekatkan di bagian dalam kotak
-
Terakhir, potong slot untuk kabel daya Pi.
Disarankan untuk menginstal semua elektronik terlebih dahulu untuk menemukan tempat terbaik untuk slot kabel daya pi
Langkah 8: Instal dan Terapkan
Itu dia! Anda siap untuk menginstal dan menerapkan proyek Anda! Tempatkan enklosur di atas tempat sampah Anda, colokkan Pi, dan jalankan program untuk mendapatkan cara yang lebih cepat dan andal dalam mengurangi limbah kita. Ya!
Maju
- Bagikan proyek dan ide Anda dengan orang lain melalui komunitas Lobe Reddit!
- Lihat repo Lobe Python GitHub untuk ikhtisar umum tentang cara menggunakan Python untuk menyebarkan berbagai proyek Lobe yang lebih luas
- Pertanyaan atau permintaan proyek? Tinggalkan komentar tentang proyek ini atau hubungi kami secara langsung: [email protected]
Direkomendasikan:
Cara Membuat Drone Menggunakan Arduino UNO - Membuat Quadcopter Menggunakan Mikrokontroler: 8 Langkah (dengan Gambar)
Cara Membuat Drone Menggunakan Arduino UNO | Membuat Quadcopter Menggunakan Mikrokontroler: PendahuluanKunjungi Saluran Youtube Saya Drone adalah gadget (produk) yang sangat mahal untuk dibeli. Pada postingan kali ini saya akan membahas, bagaimana cara membuatnya dengan harga murah?? Dan Bagaimana Anda bisa membuat sendiri seperti ini dengan harga murah … Nah di India semua bahan (motor, ESC
Trash Built BT Line Drawing Bot - My Bot: 13 Langkah (dengan Gambar)
Trash Built BT Line Drawing Bot - My Bot: Hai teman-teman setelah jeda yang lama sekitar 6 bulan di sini saya datang dengan proyek baru. Sampai selesainya Cute Drawing Buddy V1, SCARA Robot - Arduino saya berencana untuk menggambar bot lain, tujuan utamanya adalah untuk menutupi ruang yang besar untuk menggambar. Jadi lengan robot tetap
Music Reactive Light--Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Menakjubkan.: 5 Langkah (dengan Gambar)
Music Reactive Light||Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Mengagumkan.: Hai apa kabar, Hari ini kita akan membuat proyek yang sangat menarik. Hari ini kita akan membuat lampu reaktif musik. LED akan berubah kecerahannya sesuai dengan bass yang sebenarnya adalah sinyal audio frekuensi rendah. Pembuatannya sangat mudah. Kami akan
Trash-o-caster: 15 Langkah (dengan Gambar)
Trash-o-caster: Selama badai baru-baru ini, gitar listrik yang disalahgunakan ini ditemukan di tepi jalan, terkubur di salju. Minus semua listrik kecuali jack, saya memutuskan untuk membawanya kembali dari tepi jurang. Saya selalu menginginkan 'Strat,' atau yang serupa. Kumparan tunggal yang manis itu
Cara Membuat Kalender Kakek & Scrapbook (Bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): 8 Langkah (dengan Gambar)
Cara Membuat Kalender Kakek & Scrapbook (bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): Ini adalah hadiah liburan yang sangat ekonomis (dan sangat dihargai!) untuk kakek-nenek. Saya membuat 5 kalender tahun ini dengan harga masing-masing kurang dari $7. Bahan: 12 foto bagus anak Anda, anak-anak, keponakan, anjing, kucing, atau kerabat lainnya12 bagian berbeda