Daftar Isi:
- Langkah 1: Ide Dasar dan Bagian yang Diperlukan
- Langkah 2: Instal Modul OpenCV
- Langkah 3: Mencetak Dudukan Kamera
- Langkah 4: Menyelesaikan Pemasangan Kamera
- Langkah 5: Model Pembelajaran Mesin Terlatih
- Langkah 6: Kode yang Membuat Semuanya Terjadi
- Langkah 7: Mekanisme Pembukaan Kotak
- Langkah 8: Membuat Kotak Bertema Harry Potter
Video: Tongkat Harry Potter Bekerja Nyata Menggunakan Computer Vision: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
"Setiap Teknologi yang Cukup Canggih tidak dapat dibedakan dari Sihir" - Arthur C. Clarke
Beberapa bulan yang lalu saudara laki-laki saya mengunjungi Jepang dan memiliki pengalaman sihir nyata di Dunia Sihir Harry Potter di Universal Studios yang dimungkinkan melalui teknologi Computer Vision.
Di Dunia Sihir Harry Potter di Universal Studios para wisatawan dapat melakukan "sihir nyata" di lokasi tertentu (di mana sistem penangkapan gerak dipasang) menggunakan tongkat yang dibuat khusus dengan manik-manik retro-reflektif di ujungnya. Tongkat dapat dibeli dari Toko Ollivander asli yang persis seperti yang ditampilkan di Film Harry Potter tapi ingat: "Ini adalah tongkat yang memilih penyihir":P
Di lokasi tertentu jika orang tersebut melakukan gerakan tertentu dengan tongkat sihir, sistem penangkapan gerakan mengenali gerakan tersebut dan semua gerakan sesuai dengan mantra tertentu yang menyebabkan aktivitas tertentu di area sekitarnya seperti menyalakan air mancur dll.
Jadi, dalam Instruksi ini saya akan menunjukkan bagaimana Anda dapat membuat sistem penangkapan gerak yang murah dan efektif di rumah untuk melakukan "keajaiban nyata" dengan membuka kotak dengan jentikan tongkat Anda:D hanya menggunakan Kamera Night Vision biasa, beberapa elektronik, dan beberapa kode python menggunakan perpustakaan OpenCV Computer Vision dan Pembelajaran Mesin!!!
Langkah 1: Ide Dasar dan Bagian yang Diperlukan
Tongkat yang dibeli dari Dunia Sihir Harry Potter di Universal Studios, memiliki manik reflektif di ujungnya. Manik-manik retroreflektif tersebut memantulkan sejumlah besar cahaya inframerah yang diberikan oleh kamera dalam sistem penangkapan gerak. sebagai gumpalan terang yang dapat dengan mudah diisolasi dalam aliran video dan dilacak untuk mengenali pola yang digambar oleh orang tersebut dan melakukan tindakan yang diperlukan. Semua pemrosesan ini berlangsung secara real time dan memanfaatkan Computer Vision dan Machine Learning.
Kamera Night Vision sederhana dapat digunakan sebagai kamera kami untuk menangkap gerakan karena juga memancarkan cahaya inframerah yang tidak terlihat oleh manusia tetapi dapat dilihat dengan jelas dengan kamera yang tidak memiliki Filter Inframerah. Jadi, aliran video dari kamera dimasukkan ke dalam raspberry pi yang memiliki program python yang menjalankan OpenCV yang digunakan untuk mendeteksi, mengisolasi, dan melacak ujung tongkat. Kemudian kami menggunakan algoritma SVM (Simple Vector Machine) dari Machine Learning untuk mengenali pola yang digambar dan dengan demikian mengontrol GPIO raspberry pi untuk melakukan beberapa aktivitas.
Bahan yang Diperlukan:
1) Raspberry Pi 3 model B dan aksesoris yang dibutuhkan seperti keyboard dan mouse
2) Modul Kamera Raspberry Pi NoIR (Tanpa Inframerah)
3) Tongkat Harry Potter dengan reflektor di ujungnya: Jangan khawatir jika Anda tidak memilikinya. Apa pun dengan retroreflektor dapat digunakan. Jadi, Anda dapat menggunakan tongkat seperti tongkat dan menerapkan pita reflektor, cat atau manik-manik di ujungnya dan itu akan berfungsi seperti yang ditunjukkan dalam video oleh William Osman: Tonton Video
4) 10 LED Inframerah
5) Printer 3D dan filamen PLA pilihan Anda
6) Adaptor Dinding 12V - 1A dan jack DC
7) Motor servo
8) Kotak Tua dan Jari-jari dari roda sepeda
9) Pistol lem panas
10) Cetakan beberapa logo dan gambar terkait Harry Potter di kertas Glossy
11) Lembaran beludru hijau dan kuning.
CATATAN: Saya juga mencoba menggunakan webcam biasa yang lama untuk night vision dengan menghapus Filter Inframerahnya tetapi akhirnya merusak/mengganti lensanya yang sangat mempengaruhi kualitas video dan saya tidak dapat menggunakannya. Tetapi jika Anda ingin mencobanya, Anda dapat melalui instruksi yang hebat ini Klik Di Sini
Langkah 2: Instal Modul OpenCV
Sekarang saatnya untuk langkah pertama dan mungkin yang terpanjang dari keseluruhan proyek ini: Pemasangan dan pembuatan modul OpenCV di Raspberry Pi Anda.
Instalasi dependensi untuk modul OpenCV tidak memakan banyak waktu tetapi proses pembuatannya bisa memakan waktu hingga 2 hingga 3 jam!! Jadi, Bersiaplah!!:P
Ada banyak tutorial online yang dapat Anda ikuti untuk menginstal modul OpenCV 4.1.0. Berikut ini tautan yang saya ikuti: Klik Di Sini
CATATAN: Saya sangat menyarankan menginstal modul OpenCV di lingkungan virtual seperti yang ditunjukkan dalam tutorial karena akan mencegah berbagai jenis konflik yang dapat terjadi karena menginstal dependensi modul yang berbeda atau saat bekerja dengan versi python yang berbeda.
Langkah 3: Mencetak Dudukan Kamera
Picamera NoIR tidak memiliki filter inframerah, sehingga dapat digunakan sebagai kamera night vision tetapi masih kekurangan sumber cahaya inframerah. Semua kamera night vision memiliki sumber cahaya inframerah sendiri yang mengeluarkan sinar IR dalam gelap yang tidak terlihat dengan mata telanjang tetapi sinar dapat dilihat oleh kamera tanpa filter inframerah setelah dipantulkan dari objek apa pun.
Jadi, pada dasarnya kita membutuhkan Sumber Cahaya Inframerah dan sesuatu untuk memasang kamera. Untuk ini saya merancang model 3D sederhana dari sebuah objek di mana kita dapat memasang kamera yang akan kita kelilingi oleh 10 LED IR dalam lingkaran. Model dibuat dengan SketchUp dan dicetak dengan Black PLA dalam waktu sekitar 40 menit.
Langkah 4: Menyelesaikan Pemasangan Kamera
Setelah mencetak model, pertama-tama saya mengampelasnya dengan kertas pasir 80 grit dan kemudian mulai menempatkan LED IR di lubangnya sesuai dengan diagram yang diberikan di atas.
Saya mengamankan led di tempatnya dengan lem panas dan kemudian menggabungkan kabel positif dan negatif dari dua led berturut-turut dan kemudian menyoldernya untuk membuat sambungan seri dari led.
Kabel positif dari satu led dan kabel negatif dari led di sebelahnya di bagian bawah dibiarkan tidak disolder untuk menghubungkan ujung positif dan negatif dari adaptor dinding 12 volt.
Langkah 5: Model Pembelajaran Mesin Terlatih
Untuk tujuan mengenali huruf yang digambar oleh seseorang, saya melatih model pembelajaran mesin berdasarkan algoritma Support Vector Machine (SVM) menggunakan Dataset abjad bahasa Inggris tulisan tangan yang saya temukan di sini. SVM adalah algoritma pembelajaran mesin yang sangat efisien yang dapat memberikan akurasi tinggi, sekitar 99,2% dalam hal ini!! Baca lebih lanjut tentang SVM
Dataset tersebut berupa file.csv yang berisi 785 kolom dan lebih dari 300.000 baris dimana setiap baris mewakili gambar berukuran 28 x 28 dan setiap kolom pada baris tersebut berisi nilai piksel tersebut untuk gambar tersebut dengan tambahan kolom di awal yang berisi label, angka dari 0 hingga 25, masing-masing sesuai dengan huruf bahasa Inggris. Melalui kode python sederhana, saya memotong data untuk mendapatkan semua gambar hanya untuk 2 huruf (A dan C) yang saya inginkan dan melatih model untuk mereka.
Saya telah melampirkan model terlatih (alphabet_classifier.pkl) dan juga kode pelatihan merasa bebas untuk melewatinya atau membuat perubahan apa pun untuk melatih model dengan huruf yang berbeda atau mencoba algoritme yang berbeda. Setelah menjalankan program, secara otomatis menyimpan model terlatih di direktori yang sama di mana kode Anda disimpan.
Langkah 6: Kode yang Membuat Semuanya Terjadi
Setelah membuat model terlatih, langkah terakhir adalah menulis program python untuk Raspberry Pi kami yang memungkinkan kami melakukan hal berikut:
- Akses video dari picamera secara realtime
- Deteksi dan lacak gumpalan putih (dalam hal ini ujung tongkat yang menyala dalam penglihatan malam) di video
- Mulai telusuri jalur gumpalan bergerak dalam video setelah beberapa peristiwa pemicu (dijelaskan di bawah)
- Berhenti melacak setelah peristiwa pemicu lain (dijelaskan di bawah)
- Kembalikan bingkai terakhir dengan pola yang digambar oleh pengguna
- Lakukan pra-pemrosesan pada bingkai seperti thresholding, penghilangan noise, pengubahan ukuran, dll.
- Gunakan frame terakhir yang diproses untuk prediksi.
- Lakukan semacam sihir dengan mengontrol GPIO dari Raspberry Pi sesuai dengan prediksi
Untuk proyek ini saya membuat kotak bertema Harry Potter yang dapat saya buka dan tutup menggunakan motor servo yang dikendalikan oleh GPIO dari Raspberry Pi. Sejak huruf 'A' singkatan dari 'Alohamora' (salah satu mantra paling terkenal dari film Harry Potter yang memungkinkan penyihir untuk membuka kunci apapun!!), jika seseorang menggambar huruf A dengan tongkat, pi memerintahkan servo untuk Buka kotak itu. Jika orang tersebut menggambar huruf 'C' yang merupakan singkatan dari close (karena saya tidak dapat memikirkan mantra yang tepat untuk menutup atau mengunci:P), pi memerintahkan servo untuk menutup kotak.
Semua pekerjaan yang terkait dengan pemrosesan gambar/video, seperti deteksi blob, menelusuri jalur blob, pra-pemrosesan frame terakhir, dll., dilakukan melalui modul OpenCV.
Untuk peristiwa pemicu yang disebutkan di atas, dua lingkaran dibuat pada video waktu nyata, lingkaran hijau dan merah. Ketika blob memasuki wilayah di dalam lingkaran hijau, program mulai menelusuri jalur yang diambil oleh blob setelah saat itu memungkinkan orang tersebut untuk mulai membuat huruf. Ketika gumpalan mencapai lingkaran merah, video berhenti dan bingkai terakhir diteruskan ke fungsi yang melakukan pra-pemrosesan pada bingkai agar siap untuk diprediksi.
Saya telah melampirkan file kode pada langkah ini. Jangan ragu untuk melewatinya dan membuat perubahan apa pun yang Anda inginkan.
CATATAN: Saya harus membuat dua file python terpisah yang bekerja dengan versi python yang berbeda, satu yang mengimpor modul OpenCV (Python 2.7) dan lainnya yang mengimpor modul sklearn (Python 3.5) untuk prediksi setelah memuat model yang dilatih, karena OpenCV saya diinstal untuk versi Python 2.7 sementara sklearn diinstal untuk python 3.5. Jadi, saya menggunakan modul subproses untuk menjalankan file HarryPotterWandsklearn.py(untuk prediksi) dari HarryPotterWandcv.py(untuk semua pekerjaan opencv dan perekaman video waktu nyata) dan mendapatkan outputnya. Dengan cara ini saya hanya perlu menjalankan file HarryPotterWandcv.py.
Langkah 7: Mekanisme Pembukaan Kotak
Saya memiliki kotak berwarna merah tua tergeletak di sekitar yang saya gunakan untuk proyek ini.
Untuk mekanisme Pembukaan Kotak:
- Saya menempelkan servo panas di dekat bagian belakang kotak pada selembar karton di dekat pinggiran kotak.
- Kemudian saya mengambil jari-jari dari roda sepeda dan menempelkannya dengan panas ke lengan servo.
- Ujung jari-jari yang lain dilekatkan pada tutup kotak menggunakan seutas kawat.
- Positif servo terhubung ke +5V Pin 2 pada Raspberry Pi.
- Negatif servo terhubung ke GND Pin 39.
- Sinyal servo terhubung ke Pin 12
Langkah 8: Membuat Kotak Bertema Harry Potter
Untuk membuat Kotak bertema Harry Potter, saya mencetak beberapa gambar berwarna dari berbagai hal seperti Logo Harry Potter, The Hogwarts Crest, The Crest dari masing-masing dari empat rumah dll pada lembar ukuran A4 glossy dan menempelkannya pada kotak di berbagai tempat.
Saya juga menggunakan lembaran beludru berwarna Kuning untuk memotong strip dan menempelkannya di tutupnya untuk memberi kotak itu warna yang sama seperti warna Rumah Gryffindor. Saya menutupi bagian dalam tutupnya dan karton untuk servo dengan lembaran beludru hijau. Di bagian dalam tutupnya saya tempelkan lebih banyak simbol dan lambang yang menunjukkan hewan-hewan yang mewakili setiap rumah Sekolah Hogwarts.
Kemudian akhirnya saya memasukkan semua barang yang berhubungan dengan Harry Potter saya ke dalam kotak yang termasuk muffler Gryffindor, buku harian dengan seragam Hogwarts dan Tongkat Elder yang digunakan dalam proyek ini:D
Direkomendasikan:
Potret Bergerak Kehidupan Nyata Dari Harry Potter!: 11 Langkah (dengan Gambar)
Potret Bergerak Kehidupan Nyata Dari Harry Potter!: "Menakjubkan! Luar biasa! Ini seperti sihir!" - Gilderoy LockhartSaya penggemar berat Harry Potter, dan salah satu hal yang selalu saya sukai dari Dunia Sihir adalah potret bergerak. Saya sengaja menemukan Gambar Animasi Kyle Stewart-Frantz
Bekerja Menyortir Topi Dari Harry Potter: 8 Langkah
Topi Seleksi Kerja Dari Harry Potter: Di dunia muggle kami, tidak ada topi ajaib untuk menyortir kami ke rumah kami. Jadi saya telah menggunakan kesempatan karantina ini untuk membuat topi sortir
Harry Potter Rotating RGB Display: 10 Langkah (dengan Gambar)
Harry Potter Rotating RGB Display: Setelah memutuskan untuk membuat sesuatu untuk ulang tahun putri saya, saya pikir membuat salah satu display RGB akrilik akan keren. Dia adalah penggemar film Harry Potter sehingga pilihan temanya mudah. Memutuskan gambar apa yang akan digunakan namun tidak! Wi saya
Proyek Potret Pindah Harry Potter DIY: 9 Langkah (dengan Gambar)
Proyek Potret Bergerak Harry Potter DIY: Berikut ini adalah instruksi yang ditujukan hanya untuk penyihir berdarah murni. Jika Anda bukan seorang berdarah murni, khususnya Slytherin, Anda telah diperingatkan akan kegagalan dan kekalahan yang tak terhindarkan yang akan Anda hadapi sebagai squib, muggle, Hufflepuff, atau darah lumpur
Buat Kostum IPod yang Bekerja Nyata: 12 Langkah (dengan Gambar)
Buat Kostum IPod Kerja Nyata: Pada Hari Pernikahan Pengantin…semuanya tentang gaun, tetapi pada Halloween…itu semua tentang kostum. Jadi, saya ingin menemukan sesuatu yang bisa disepakati kedua anak saya sebelum slow & siksaan strategis ayah mereka dimulai. Anda semua pernah ke sana