İçindekiler:
- Adım 1: Temel Fikir ve Gerekli Parçalar
- Adım 2: OpenCV Modülünü kurun!
- Adım 3: Kamera Bağlantısını Yazdırma
- Adım 4: Kamera Montajını Bitirme
- Adım 5: Eğitimli Makine Öğrenimi Modeli
- Adım 6: Her Şeyi Gerçekleştiren Kod!
- Adım 7: Kutu Açma Mekanizması
- Adım 8: Kutuyu Harry Potter Temalı Yapmak
Video: Bilgisayarla Görme Kullanarak Gerçekte Çalışan Harry Potter Değneği: 8 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
"Yeterince Gelişmiş Herhangi Bir Teknoloji, Sihirden Ayırt Edilemez" - Arthur C. Clarke
Birkaç ay önce ağabeyim Japonya'yı ziyaret etti ve Universal Studios'taki Harry Potter'ın Büyücülük Dünyasında Bilgisayarla Görme teknolojisi sayesinde gerçek bir büyücülük deneyimi yaşadı.
Universal Studios'taki Harry Potter Büyücülük Dünyasında turistler, uçlarında retro-yansıtıcı boncuklar bulunan özel olarak yapılmış asalar kullanarak belirli yerlerde (hareket yakalama sisteminin kurulu olduğu) "gerçek sihir" yapabilirler. Asalar, tam olarak Harry Potter Filmlerinde gösterilenlere benzeyen gerçek bir Ollivander's Shop'tan satın alınabilir, ancak şunu unutmayın: "Büyücüyü seçen asadır":P
Bu belirli konumlarda, kişi değnek ile belirli bir hareketi yaparsa, hareket yakalama sistemi hareketi tanır ve tüm hareketler, çevrede çeşmeyi açmak gibi belirli faaliyetlere neden olan belirli bir büyüye karşılık gelir.
Bu nedenle, bu Eğitilebilir Kitapta, yalnızca normal bir Gece Görüş Kamerası, bazı elektronik cihazlar kullanarak, asanızı hafifçe vurarak bir kutu açarak "gerçek sihir" gerçekleştirmek için evde nasıl ucuz ve etkili bir hareket yakalama sistemi oluşturabileceğinizi göstereceğim. ve OpenCV Computer Vision kütüphanesini ve Machine Learning kullanarak bazı python kodları !!!
Adım 1: Temel Fikir ve Gerekli Parçalar
Universal Studios'taki Wizarding World of Harry Potter'dan satın alınan asaların uçlarında retroreflektif boncuk var. Bu retroreflektif boncuklar, hareket yakalama sisteminde kamera tarafından verilen büyük miktarda kızılötesi ışığı yansıtır. Dolayısıyla, biz insanların, havada hareket eden asanın pek de belirgin olmayan bir ucu olarak algıladığımız şeyi, hareket yakalama sistemi algılar. video akışında kolayca izole edilebilen ve kişi tarafından çizilen modeli tanımak ve gerekli eylemi gerçekleştirmek için izlenebilen parlak bir blob olarak. Tüm bu işlemler gerçek zamanlı olarak gerçekleşir ve Computer Vision ve Machine Learning'den yararlanır.
İnsanlar tarafından görülemeyen ancak Kızılötesi Filtresi olmayan bir kamerayla net bir şekilde görülebilen kızılötesi ışığı da patlattıkları için hareket yakalama için kameramız olarak basit bir Gece Görüş kamerası kullanılabilir. Böylece, kameradan gelen video akışı, değnek ucunu algılamak, izole etmek ve izlemek için kullanılan OpenCV çalıştıran bir python programı olan bir ahududu pi'ye beslenir. Daha sonra çizilen deseni tanımak ve buna göre bazı aktiviteleri gerçekleştirmek için ahududu pi'nin GPIO'larını kontrol etmek için Machine Learning'in SVM (Basit Vektör Makinesi) algoritmasını kullanırız.
Gerekli Malzemeler:
1) A Raspberry Pi 3 model B ve klavye ve fare gibi gerekli aksesuarlar
2) Raspberry Pi NoIR (Kızılötesi Yok) Kamera Modülü
3) Ucunda retroreflektörlü Harry Potter Değnek: Eğer yoksa endişelenmeyin. Retroreflektörlü her şey kullanılabilir. Yani, herhangi bir değnek benzeri çubuk kullanabilir ve ucuna retroreflektör bant, boya veya boncuk uygulayabilirsiniz ve William Osman'ın videosunda gösterildiği gibi çalışmalıdır: Videoyu İzle
4) 10 Kızılötesi LED
5) Seçtiğiniz bir 3D yazıcı ve PLA filamenti
6) 12V - 1A Duvar Adaptörü ve DC jakı
7) Bir servo motor
8) Döngünün çarkından Eski Bir Kutu ve Bir Spoke
9) Sıcak tutkal tabancası
10) Harry Potter ile ilgili bazı logoların ve resimlerin Parlak Kağıt üzerine çıktıları
11) Yeşil ve sarı kadife çarşaflar.
NOT: Kızılötesi Filtresini çıkararak gece görüşü için eski bir normal web kamerasını kullanmayı da denedim ama sonunda lensine zarar verdim/yerini değiştirdi, bu da video kalitesini büyük ölçüde etkiledi ve kullanamadım. Ama bir şans vermek istiyorsanız, bu harika talimattan geçebilirsiniz Buraya Tıklayın
Adım 2: OpenCV Modülünü kurun!
Şimdi tüm bu projenin ilk ve muhtemelen en uzun adımının zamanı geldi: Raspberry Pi'nize OpenCV modülünün kurulumu ve inşası.
OpenCV modülü için bağımlılıkların kurulumu fazla zaman almaz ancak oluşturma süreci 2 ila 3 saate kadar sürebilir! Öyleyse, Kemerlerinizi Bağlayın!!:P
OpenCV 4.1.0 modülünü kurmak için takip edebileceğiniz birçok çevrimiçi eğitim bulunmaktadır. İşte takip ettiğimin bağlantısı: Buraya Tıkla
NOT: OpenCV modülünü öğreticide gösterildiği gibi sanal ortamda kurmanızı şiddetle tavsiye ederim, çünkü farklı modüllerin bağımlılıkları nedeniyle veya farklı python sürümleriyle çalışırken oluşabilecek çeşitli çakışmaları önleyecektir.
Adım 3: Kamera Bağlantısını Yazdırma
NoIR picamera'nın kızılötesi filtresi yoktur, bu nedenle gece görüş kamerası olarak kullanılabilir ancak yine de kızılötesi ışık kaynağından yoksundur. Tüm gece görüş kameraları, karanlıkta çıplak gözle görülemeyen ancak herhangi bir nesneden yansıdıktan sonra kızılötesi filtresiz kamera tarafından görülebilen IR ışınlarını patlatan kendi kızılötesi ışık kaynaklarına sahiptir.
Yani, temelde bir Kızılötesi Işık Kaynağına ve kamerayı monte edecek bir şeye ihtiyacımız var. Bunun için bir daire içinde 10 adet IR led ile çevreleyeceğimiz kamerayı üzerine monte edebileceğimiz bir nesnenin basit bir 3D modelini tasarladım. Model SketchUp ile oluşturuldu ve Black PLA ile yaklaşık 40 dakikada basıldı.
Adım 4: Kamera Montajını Bitirme
Modeli yazdırdıktan sonra önce 80 numara zımpara kağıdı ile zımparaladım ve ardından IR ledlerini yukarıdaki şemaya göre deliklerine yerleştirmeye başladım.
Ledleri sıcak tutkalla yerlerine sabitledim ve ardışık iki ledin pozitif ve negatif uçlarını birleştirdim ve sonra ledlerin seri bağlantısını oluşturmak için lehimledim.
Altta bir ledin artı ucu ve yanındaki ledin eksi ucu 12 voltluk duvar adaptöründen artı ve eksi uçları birbirine bağlamak için lehimsiz bırakılmıştır.
Adım 5: Eğitimli Makine Öğrenimi Modeli
Bir kişinin çizdiği mektubu tanımak amacıyla, burada bulduğum el yazısı İngilizce alfabelerden oluşan bir Veri Kümesini kullanarak Destek Vektör Makinesi (SVM) algoritmasına dayalı bir makine öğrenme modeli eğittim. SVM'ler, bu durumda yaklaşık %99,2 gibi yüksek bir doğruluk sağlayabilen çok verimli makine öğrenme algoritmalarıdır! SVM'ler hakkında daha fazla bilgi edinin
Veri Kümesi, 785 sütun ve 300.000'den fazla satır içeren.csv dosyası biçimindedir; burada her satır 28 x 28'lik bir görüntüyü temsil eder ve o satırdaki her sütun, içinde ek bir sütun bulunan o görüntü için o pikselin değerini içerir. Etiketi içeren başlangıç, her biri bir İngilizce harfe karşılık gelen 0 ila 25 arasında bir sayı. Basit bir python koduyla, tüm görüntüleri sadece istediğim 2 harf (A ve C) için elde etmek için verileri dilimledim ve onlar için bir model eğittim.
Eğitilmiş modeli (alphabet_classifier.pkl) ekledim ve ayrıca eğitim kodunu, üzerinden geçmekten veya modeli farklı harflerle eğitmek için herhangi bir değişiklik yapmaktan veya farklı algoritmalar denemekten çekinmeyin. Programı çalıştırdıktan sonra, eğitilen modeli otomatik olarak kodunuzun kaydedildiği dizine kaydeder.
Adım 6: Her Şeyi Gerçekleştiren Kod!
Eğitilmiş modeli oluşturduktan sonra son adım Raspberry Pi'miz için aşağıdakileri yapmamızı sağlayan bir python programı yazmaktır:
- Gerçek zamanlı olarak pikameradan videoya erişin
- Videodaki beyaz lekeleri (bu durumda asanın gece görüşünde yanan ucu) tespit edin ve izleyin
- Bazı tetikleyici olaylardan sonra videodaki hareketli bloğun yolunu izlemeye başlayın (aşağıda açıklanmıştır)
- Başka bir tetikleyici olaydan sonra izlemeyi durdur (aşağıda açıklanmıştır)
- Kullanıcı tarafından çizilen desenle son kareyi döndür
- Çerçeve üzerinde eşikleme, gürültü giderme, yeniden boyutlandırma vb. gibi ön işlemler gerçekleştirin.
- Tahmin için işlenmiş son kareyi kullanın.
- Raspberry Pi'nin GPIO'larını tahmine göre kontrol ederek bir tür sihir yapın
Bu proje için Raspberry Pi'nin GPIO'su tarafından kontrol edilen bir servo motor kullanarak açıp kapatabileceğim Harry Potter temalı bir kutu oluşturdum. 'A' harfi 'Alohamora' (bir büyücünün herhangi bir kilidi açmasına izin veren Harry Potter filmlerindeki en ünlü büyülerden biri!!) kutuyu aç. Kişi kapatma anlamına gelen 'C' harfini çizerse (kapatmak veya kilitlemek için kullanılan uygun bir büyü düşünemediğim için:P), pi servoya kutuyu kapatması için komut verir.
Blob algılama, blobun yolunu izleme, son karenin ön işlemesi vb. gibi görüntü/video işleme ile ilgili tüm işler OpenCV modülü üzerinden yapılır.
Yukarıda bahsedilen tetikleyici olaylar için gerçek zamanlı videoda yeşil ve kırmızı olmak üzere iki daire oluşturulur. Blob yeşil daire içindeki bölgeye girdiğinde, program o andan sonra blobun izlediği yolu izlemeye başlar ve kişinin mektubu oluşturmaya başlamasına izin verir. Blob kırmızı daireye ulaştığında video durur ve son kare, kare üzerinde ön işleme yaparak onu tahmine hazır hale getiren bir fonksiyona iletilir.
Bu adımda kod dosyalarını ekledim. Üzerinden geçmekten ve istediğiniz değişiklikleri yapmaktan çekinmeyin.
NOT: Biri OpenCV modülünü (Python 2.7) içe aktaran ve diğeri eğitimli modeli yükledikten sonra tahmin için sklearn modülünü (Python 3.5) içe aktaran farklı python sürümleriyle çalışan iki ayrı python dosyası oluşturmak zorunda kaldım, çünkü OpenCV'm kurulu olduğu için Python 2.7 sürümü, sklearn python 3.5 için kuruluyken. Bu yüzden, HarryPotterWandsklearn.py (tahmin için) dosyasını HarryPotterWandcv.py'den (tüm opencv çalışmaları ve gerçek zamanlı video kaydı için) çalıştırmak ve çıktısını almak için alt işlem modülünü kullandım. Bu şekilde sadece HarryPotterWandcv.py dosyasını çalıştırmam gerekiyor.
Adım 7: Kutu Açma Mekanizması
Bu proje için kullandığım eski kırmızı renkli bir kutum vardı.
Kutu Açma mekanizması için:
- Kutunun arka ucuna yakın bir yerde bir servoyu kutunun kenarına yakın bir karton parçasına sıcak yapıştırdım.
- Sonra bir döngü çarkından bir jant teli aldım ve onu servonun koluna sıcak yapıştırdım.
- Telin diğer ucu bir parça tel kullanılarak kutunun kapağına tutturulmuştur.
- Raspberry Pi üzerinde +5V Pin 2'ye servo pozitif bağlandı.
- Negatif servo GND Pin 39'a bağlandı.
- Pin 12'ye servo sinyali bağlandı
Adım 8: Kutuyu Harry Potter Temalı Yapmak
Kutuyu Harry Potter temalı yapmak için, Harry Potter Logosu, Hogwarts Arması, Dört Evin Arması vb. çeşitli şeylerin renkli resimlerini parlak A4 boyutunda bir kağıda yazdırdım ve çeşitli şekillerde kutuya yapıştırdım. yer.
Ayrıca şeritleri kesmek için Sarı renkli kadife bir çarşaf kullandım ve kutuya Gryffindor Evi'ninkiyle aynı rengi vermek için kapağa yapıştırdım. Servo için kapağın ve kartonun içini yeşil kadife levha ile kapladım. Kapağın içine, Hogwarts Okulu'nun her evini temsil eden hayvanları gösteren daha fazla sembol ve bir amblem yapıştırdım.
Sonra nihayet Harry Potter ile ilgili tüm eşyalarımı, bir Gryffindor susturucu, Hogwarts üniformalı bir günlük ve bu projede kullanılan Mürver Asa içeren kutuya doldurdum:D
Önerilen:
Android Akıllı Telefon Kullanarak Bilgisayarla Görme Eklemek İçin Hexbug Spider XL'i Hacklemek: 9 Adım (Resimlerle)
Android Akıllı Telefon Kullanarak Bilgisayarla Görme Eklemek için Hexbug Spider XL'i Hacklemek: Orijinal Hexbug™ Örümcek. Bir düzineden fazla sahibim ve hepsini hackledim. Oğullarımdan biri ne zaman bir arkadaşına gitse’ doğum günü partisi, arkadaş bir Hexbug™ hediye olarak örümcek. Hackledim veya
Yapay Zeka Gözlere Yardımcı Olur (Operatörlere Güvenlik Gözlükleri Takmalarını Hatırlatan Bir Bilgisayarla Görme Sistemi): 4 Adım
AI Aids Eyes (Operatörlere Güvenlik Gözlükleri Takmalarını Hatırlatan Bir Bilgisayarla Görme Sistemi): İşte sistemin bir demosu. Sistem bir matkabın alındığını algıladığında, otomatik olarak bir koruyucu gözlük uyarısı verir. Güvenlik gözlükleri uyarılarının varlığını göstermek için, RGB görüntüsünün sınırı demo v
Bilgisayarla Görme (OpenCV) Kullanarak Yıldız Tanıma: 11 Adım (Resimlerle)
Bilgisayarla Görme (OpenCV) Kullanarak Yıldız Tanıma: Bu talimat, bir görüntüdeki yıldız desenlerini otomatik olarak tanımlamak için bir bilgisayarlı görme programının nasıl oluşturulacağını size açıklayacaktır. Yöntem, bir dizi eğitimli HAAR kademesi oluşturmak için OpenCV (Açık Kaynak Bilgisayarla Görme) kitaplığını kullanır
Görme Engelliler, Görme Engelliler ve Diğer Herkes için ScanUp NFC Okuyucu/Yazıcı ve Ses Kaydedici: 4 Adım (Resimlerle)
Körler, Görme Engelliler ve Diğer Herkes için ScanUp NFC Okuyucu/Yazıcı ve Ses Kaydedici: Endüstriyel tasarım okuyorum ve proje benim dönemimin işi. Amaç, görme engelli ve görme engelli kişileri SD karta .WAV formatında ses kaydetmeye ve bu bilgiyi NFC etiketi ile çağırmaya olanak sağlayan bir cihazla desteklemektir. Yani
Görme Engellilere Yardım Etmek İçin Mikrodenetleyicilerde Sonar, Lidar ve Bilgisayarla Görme Kullanımı: 16 Adım
Görme Engellilere Yardım Etmek için Mikrodenetleyicilerde Sonar, Lidar ve Computer Vision Kullanımı: Görme engelli insanlara mevcut çözümlerden çok daha fazla yardımcı olabilecek akıllı bir "baston" yaratmak istiyorum. Baston, surround ses tipi kulaklıkta gürültü yaparak öndeki veya yanlardaki nesneleri kullanıcıya bildirebilecek