Isi kandungan:
- Bekalan
- Langkah 1: Bagaimana Ia Beroperasi
- Langkah 2: Menyusun Perkakasan
- Langkah 3: Menulis Kod
- Langkah 4: Terima kasih
Video: RoboPhoto - Penjana Mosaik untuk Orang ramai: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
RoboPhoto adalah penjana fotomosaik masa nyata
RoboPhoto membuat fotomosaik penggunanya - sementara anda menunggu.
Dengan menggunakan teknik digital moden seperti pemprosesan gambar, pengecaman wajah dan kecerdasan buatan, RoboPhoto mampu membuat fotomosa semua pengunjung yang berjalan melewati dan menekan butang - dalam masa nyata.
Setiap kali butang ditekan, foto diambil dari orang yang berada di tangan. Seketika setiap foto diimbas dan ditafsirkan oleh RoboPhoto. Perisian RoboPhoto kemudian akan mengubah semua gambar individu - sehingga akan menjadi sebahagian daripada gambar yang lebih besar, dan kemudian mencetak gambar yang diubah ini ke pelekat berlabel satu set koordinat yang menunjukkan lokasi setiap foto dalam gambar yang lebih besar itu. Setiap pengunjung kemudian diminta meletakkan pelekat foto mereka sendiri ke kanvas yang lebih besar yang hanya mengandungi grid yang sesuai.
Semasa operasi RoboPhoto, gambar baru akan dibuat. Fotomosa yang terdiri daripada gambar-gambar individu ini yang akan meniru 'gambar sasaran' yang telah ditentukan.
RoboPhoto juga beroperasi dalam mod pengguna tunggal. Apabila dikonfigurasi dengan cara ini, RoboPhoto membuat mozek penuh untuk satu pengguna.
Bekalan
- PC Windows 10 dengan pakej Visual Studio dan IoT dipasang
- Raspberry Pi 3B + dengan Microsoft Windows 10 IoT dipasang
- Pencetak label warna (Brother VC-500W)
- Tombol tekan merah besar dipasang pada alas untuk input pengguna
- Skrin HDMI untuk maklum balas pengguna
- Kamera Microsoft Xbox Kinect v2 - dicuri dari anak lelaki saya - untuk mengambil gambar
- Rangkaian (Wifi, LAN)
- Grid sasaran. Selembar kertas dengan grid dicetak di atasnya - diisi dengan koordinat. Kotak kertas ini digunakan sebagai kanvas di mana pengunjung boleh melekatkan gambar mereka pada koordinat yang ditentukan. Dan akhirnya mereka akan membentuk hasil akhir: fotomosaik baru yang indah.
Kamera icrosoft Kinect 2.0 digunakan kerana dapat mengambil gambar mendalam. Ciri ini digunakan untuk membuat skrin hijau maya pada setiap gambar individu. Dengan cara ini RoboPhoto dapat mengecat latar belakang pada setiap gambar individu agar sesuai dengan warna sekeping sasaran di dalam mozek.
Langkah 1: Bagaimana Ia Beroperasi
RoboPhoto adalah pemasangan yang berisi alas dengan butang merah besar di atasnya, komputer dengan pencetak label terpasang, dan peranti IoT kecil yang mengendalikan Antaramuka Pengguna (skrin dan butang). Dalam kes saya: RaspBerry 3B +.
- RoboPhoto beroperasi di lokasi yang boleh diakses oleh orang ramai dan (setelah menghidupkannya) beroperasi sendiri. Semasa berlari, pengunjung yang lewat didorong oleh RoboPhoto untuk menekan butang merah besarnya.
- Setiap kali butang merah besar itu ditekan, RoboPhoto akan mengambil gambar pengunjung yang hanya menekan butang dengan kamera Kinect.
-
Kemudian RoboPhoto akan menggunakan A. I. yang canggih. dan kemahiran memproses gambar untuk mengubah setiap foto agar sepadan dengan sekeping dalam mozek yang akan menjadi. Untuk mencapainya, RoboPhoto mengecat latar belakang setiap foto agar sesuai dengan warna sekeping sasaran dalam gambar yang dimuatkan sebelumnya. Selepas pengeditan, RoboPhoto mencetak foto yang diedit ke pelekat bersama dengan satu set koordinat yang menunjukkan lokasi pelekat yang satu ini di dalam mozek.
- Kemudian pengguna diminta meletakkan pelekat itu pada lembaran sasaran mozek.
- Oleh itu - setelah banyak orang mengunjungi - karya seni baru akan muncul. Untuk membuat mozek, anda memerlukan banyak keping. Saya mendapat hasil yang lumayan dengan 600 keping
RoboPhoto juga boleh beroperasi dalam mod pengguna tunggal.
Dalam konfigurasi ini RoboPhoto membuat mozek penuh gambar yang diedit dari satu pengguna tunggal. Setelah menekan butang, RoboPhoto akan merakam sekitar> 600 gambar pengguna yang berbeza, dan kemudian mengedit dan mengatur semuanya untuk membentuk satu mosaik baru, yang dibuat setelah gambar sasaran yang dipilih sebelumnya.
Langkah 2: Menyusun Perkakasan
Seperti yang ditunjukkan dalam gambar di atas, Win 10 PC disambungkan ke kamera Kinect. Kinect mesti disambungkan dengan USB 3.0. Pada masa saya membuat RoboPhoto - tidak ada Raspberry Pi dengan USB 3.0. *
PC juga digunakan untuk menangani percetakan ke label label yang dilampirkan. Dalam kes saya, Brother VC-500W. Pencetak label warna isi rumah yang agak murah. Walau bagaimanapun, ia sangat perlahan. Lebih baik gunakan yang profesional jika anda boleh.
Butang Merah Besar dilekatkan pada Raspberry Pi 3B +. Hanya 4 wayar yang dipasang pada GPIO. Ini adalah satu-satunya pematerian yang diperlukan dalam Instructable ini. Pi juga memberikan maklum balas kepada pengunjung kami melalui skrin TFT 7 melalui HDMI.
Untuk merapikannya, saya membina alas kayu yang memegang semua komponen ini.
Di sebelah alas, di dinding, selembar kertas yang mengandungi grid sasaran dan koordinat diletakkan (A1 / A2). Oleh kerana pencetak label saya menggunakan maksimum dengan lebar label = 2, 5 cm, semua petak dalam grid ini berukuran 2, 5cm x 2, 5cm.
* Hari ini, Raspberry Pi4 menawarkan USB3.0. Alse W10 boleh dijalankan pada peranti. Oleh itu, secara teorinya mungkin untuk membuat RoboPhoto v2.0 tanpa penggunaan PC. Mungkin Covid '19 akan memberi saya masa yang cukup untuk menerbitkan arahan yang tidak lama lagi.
Langkah 3: Menulis Kod
Kod
RoboPhoto dibuat dengan VisualStudio sebagai penyelesaian dengan dua projek:
- Aplikasi Windows Forms di PC menghosting pelayan TCP dan mengendalikan input Kinect
- Raspberry Pi 3B + yang mengehoskan klien TCP dalam aplikasi yang diketuai UWP (ditetapkan sebagai aplikasi permulaan) untuk menangani acara tekan Butang dan memberikan maklum balas kepada pengguna melalui layar TFT 7 ".
Dalam rajah di atas, saya telah cuba memberi anda idea tentang apa yang dilakukan oleh soft saya. Visual Studio yang saya tulis untuk membuat penyelesaian (benar-benar 100% berfungsi) penyelesaian RoboPhoto ini disediakan dengan Instructable ini. Walau bagaimanapun, saya mesti memberi amaran kepada semua orang bahawa fail ini tidak disekat: Kod yang saya tulis jauh dari cantik dan sering terikat pada PC dev saya. Oleh itu, saya menggalakkan semua orang untuk membuat penyelesaian yang lebih baik, lebih baik dan stabil.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Rangkaian
Dalam kod contoh, kod Pi disebarkan melalui Visual Studio ke IPAddress di rangkaian saya. Anda mungkin harus mengubahnya agar sesuai dengan yang anda miliki. Untuk melakukan ini - klik kanan projek klien ARM setelah membuka penyelesaian di Visual Studio, kemudian pilih sifat dan tetapkan nilai Mesin jarak jauh ke IPAddress Pi anda sendiri. Anda juga perlu membenarkan lalu lintas dari klien ke pelayan pada port 8123 dalam Windows Firewall pada pelayan (PC). Sekiranya anda menjalankan penyelesaian dari Visual Studio, ia harus meminta anda melakukannya untuk U.
Semasa pengekodan, saya menghadapi banyak masalah agar W32 & UWP dapat berkomunikasi dengan betul. Saya berjaya dengan menggunakan dua kelas berasingan dalam klien & pelayan: respon MyEchoClient.cs (dalam klien ARM) dan ConnectionClient.cs (menyambungkan sambungan pelanggan di pelayan).
Fail mosaik - kelas tersuai
RoboPhoto membuat mozek untuk meniru gambar sasaran. Gambar sasaran ini, dan semua foto individu yang bersama-sama membentuk mozek-to-be, serta beberapa sifat lain dari setiap RoboPhoto disimpan dalam fail dalam sistem fail. Kod saya yang disertakan menggunakan sekumpulan fail & folder dalam direktori c: / tmp / MosaicBuilder. Di dalam folder ini, kod akan membaca semua subfolder dengan nama folder yang bermula dengan [prj_] sebagai folder projek mozek. Dalam semua folder [prj_] ini, ia akan cuba membuka file project bernama [_projectdata.txt] yang mengandungi semua maklumat yang diperlukan untuk setiap projek.
Fail projek seperti ini terdiri daripada:
- jalan penuh & nama fail gambar sasaran projek ini
- jalan penuh di mana gambar individu (kepingan) projek ini disimpan
- Jumlah lajur yang akan dikandung mozek
- Jumlah baris mozek akan mengandungi
Contoh projek disediakan dalam fail zip: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
Dalam kod pelayan C #, semua pengendalian mosaik dilakukan melalui kelas khusus: BBMosaicProject.cs
Microsoft Kinect v2.0 - Skrin Hijau
Untuk mengambil gambar, apa sahaja yang boleh dilakukan oleh kamera. Tetapi saya telah menggunakan Microsoft Kinect v2.0 untuk menggabungkan gambar warna & gambar kedalaman. Dengan cara ini, kesan skrin hijau dapat dibuat. Latar belakang dalam semua gambar warna yang diterima dari Kinect akan diganti dengan permukaan hijau yang seragam (BBBackgroundRemovalTool.cs).
Rujukan ke Microsoft. Kinect telah ditambahkan ke projek pelayan.
EMGU
Kerana kita perlu memastikan seseorang berada di foto yang diambil ketika butang ditekan, kemampuan pengecaman wajah ditambahkan ke RoboPhoto.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Hanya apabila seseorang berada dalam gambar, skrin hijau dalam gambar ini akan digantikan oleh permukaan berwarna seragam, dengan kod warna sama dengan warna rata-rata benda sasaran dalam mozek yang akan menjadi gambar ini.
Langkah 4: Terima kasih
Terima kasih kerana membaca Instructable saya. Ini adalah yang pertama saya. Saya harap anda menikmatinya.
Disyorkan:
Hadkan Orang Ramai untuk Mencegah Penyebaran COVID-19: 5 Langkah
Hadkan Orang Ramai untuk Mencegah Penyebaran COVID-19: Pertubuhan Kesihatan Sedunia, WHO, telah menasihati orang untuk menjauhkan diri dari tempat yang sesak untuk melindungi diri mereka dari penyebaran penyakit Coronavirus. Walaupun orang berlatih menjauhkan diri, ia mungkin tidak berkesan ketika mereka berada di
Pembaca / penulis NFC ScanUp dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: 4 Langkah (dengan Gambar)
Pembaca / penulis ScanUp NFC dan Perakam Audio untuk Orang Buta, Gangguan Penglihatan dan Semua Orang Lain: Saya belajar reka bentuk perindustrian dan projeknya adalah hasil kerja semester saya. Tujuannya adalah untuk menyokong orang yang cacat penglihatan dan buta dengan peranti, yang memungkinkan untuk merakam audio dalam format.WAV pada kad SD dan memanggil maklumat tersebut dengan tag NFC. Jadi dalam
Cara Merealisasikan Reka Bentuk Mosaik dengan Pantas di AD / Protel: 3 Langkah
Cara Merealisasikan Reka Bentuk Mosaik dengan Cepat di AD / Protel: Dalam reka bentuk PCB, kita sering menggunakan pemasangan, bagaimana untuk mencapai pemasangan yang cepat? Kaedah berikut diperkenalkan; Klik di sini untuk membuat papan PCB anda sendiri: http://www.starivergroup.com/Cara berkumpul di Altium / ProtelPerhimpunan yang disebut sebenarnya
Menggunakan Penglihatan Sonar, Lidar, dan Komputer pada Mikrokontroler untuk Membantu Orang-orang yang Gangguan Penglihatan: 16 Langkah
Menggunakan Sonar, Lidar, dan Penglihatan Komputer pada Pengawal Mikro untuk Membantu Orang-orang yang Bermasalah Penglihatan: Saya ingin membuat ‘tongkat’ pintar yang dapat membantu orang-orang dengan masalah penglihatan jauh lebih banyak daripada penyelesaian yang ada. Tebu akan dapat memberitahu pengguna objek di depan atau di sisi dengan membuat bunyi di headphon jenis bunyi sekeliling
Buaian Modifikasi untuk Orang Tua Orang Kurang Upaya: 24 Langkah (dengan Gambar)
Buaian Modifikasi untuk Orang Tua Orang Kurang Upaya: Ini adalah versi yang disemak semula dari pengubahsuaian buaian saya. Ini merangkumi lebih banyak perincian mengenai cara melakukan beberapa langkah yang lebih kompleks, senarai lengkap keperluan alat / peralatan, dan beberapa perubahan tambahan yang harus saya buat sejak menerbitkan