İçindekiler:
- 1. Adım: Web Kamerasına Erişim
- Adım 2: Yüz Tanıma
- 3. Adım: Veri Toplama
- 4. Adım: Eğitim
- Adım 5: Yüz Tanıma
- Adım 6: Arduino'yu Programlama
Video: Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Yüz tanıma AKA yüz kimliği, günümüzde cep telefonlarındaki en önemli özelliklerden biridir.
Bu yüzden "Arduino projem için bir yüz kimliği alabilir miyim" diye bir sorum vardı ve cevap evet…
Yolculuğum şöyle başladı:
1. Adım: Web kamerasına erişim
2. adım: Yüz tanımlama.
3. Adım: Veri toplama
4. Adım: Eğitim
5. adım: Yüz tanıma
Adım 6: Arduino'yu Programlama
Aşağıda tüm adımları açıklayacağım. Umarım bu size yardımcı olur.
1. Adım: Web Kamerasına Erişim
Yüz tanıma için ilk adım, bir kameraya veya bilgisayar görüşüne erişim sağlamaktı. Hindistan kilit altında olduğundan, bulduğum en ucuz çözüm, openCV modülünü kullanarak bir python programıyla erişebildiğim bilgisayarımın web kamerasını kullanmaktı.
OpenCV'nin ne olduğunu düşünüyor olabilirsiniz, değil mi?
OpenCV (Open Source Computer Vision Library), açık kaynaklı bir bilgisayar vizyonu ve makine öğrenimi yazılım kitaplığıdır. OpenCV, bilgisayarlı görü uygulamaları için ortak bir altyapı sağlamak ve ticari ürünlerde makine algısının kullanımını hızlandırmak amacıyla oluşturulmuştur.
Bilgisayarınızda Opencv kuruluysa, gitmeye hazırsınız. Değilse, bu adımı izleyin.
komut istemini açın ve "pip install opencv" yazın.
Uyarı: "'pip' dahili veya harici komut olarak tanınmadığından" bir hata alabilirsiniz. bunun için pip kurulumunuzun yolunu PATH sistem değişkeninize eklemeniz gerekir. Bu gönderiyi gözden geçirin, size yardımcı olabilir.
stackoverflow.com/questions/23708898/pip-i…
OpenCV kurulduktan sonra başlayabiliriz… Düzgün kurulup kurulmadığını kontrol etmek için Python yorumlayıcınızı açın ve kütüphaneyi içe aktarın. Çıktınız olması gereken yukarıdaki resme bakın.
"AccessTo_webcam.py" python dosyasını indirin ve çalıştırın. Orada gerekli tüm yorumları yaptım.
İşte şimdi web kamerasına erişiminiz var. Tebrikler. 2. adıma geçelim.
Adım 2: Yüz Tanıma
Aynı OpenCV modülü yardımıyla video akışında bir yüz olup olmadığını belirlememiz gerekiyor.
OpenCV, Cascade Classifier olarak adlandırılan bir eğitim yöntemi veya önceden eğitilmiş modeller sağlar. Önceden eğitilmiş modeller, OpenCV kurulumundaki veri klasöründe bulunur. Bu dosyayı sağlıyorum, sadece indirin ve proje klasörünüze yerleştirin. "AccessTo_webcam.py" dosyasının depolandığı klasör. Bir tane oluşturmadıysanız, yapın.
"haarcascade_frontalface_default" dosyasını indirin ve ana proje klasörüne yerleştirin.
"Face_identification.py" dosyasını indirin ve ana proje klasörüne yerleştirin. Tüm açıklamalar içinde verilmiştir.
Artık bir video akışındaki yüzleri tanımlayabilirsiniz. Öyleyse 3. adıma geçelim.
3. Adım: Veri Toplama
Yüzleri tanımak için python programımızı çalıştırmamız gerekiyor. Bunun için bazı verilere ihtiyacımız var.
Veri toplama, bu projedeki en kolay adımdır. ana proje klasörünüzde "image_data" adında bir klasör oluşturun. "image_data" klasörünün içinde, veriyi depolayacağımız kişinin adıyla bazı ek klasörler oluşturun. Örneğin:
"image_data" klasöründe "HRK" ve "Yahiya" adında iki klasör daha oluşturdum. yukarıdaki resimde gösterildiği gibi.
Şimdi devam edin, kendi klasörlerinizi oluşturun ve adlandırın.
Klasörler oluşturulduktan sonra o kişinin resimlerini toplamaya başlayın. Kişi başına yaklaşık 20 resim toplamanızı tavsiye ederim. Ayrıca daha fazla resim ekleyebilir, ancak tüm kişiler için toplanan verilerin aynı sayıda resim içermesini sağlayabilirsiniz. Doğruluk sağlamaya yardımcı olur.
bu kadar şimdi 4. adıma geçelim.
4. Adım: Eğitim
Kısaca, "image_data" klasöründe bulunan tüm klasörleri ve resimleri inceleyeceğiz ve etiket kimliğini ve ilgili adı içerecek bir sözlük oluşturacağız. Aynı anda "Region of Interest" olarak adlandırdığımız her bir resimdeki yüzü algılamak için resmi yükleyeceğiz ve bu bilgileri içeren bir ".yml" dosyası oluşturacağız.
X ve Y kişisi için toplanan verileriniz olduğunu varsayarsak.
X kişisini 1 olarak etiketleyeceğiz, bu onun etiket kimliği olacak ve adı X'in kendisi olacak. Yüzünü, yani ilgilenilen bölgeyi bulmak için görüntüyü yüklüyoruz ve verileri bir listeye ekliyoruz.
Y kişisi için de benzer adımlar izlenecek ve son olarak bir ".yml" dosyası oluşturacağız.
"face_trainer.py" dosyasını indirin ve ana proje klasörüne yerleştirin. Gerekli tüm açıklamalar bu dosyanın kendisinde verilmiştir.
Bu programı çalıştırdığınızda, tüm görüntüleri gözden geçirecek ve "labels.pickle" ve "trainner.yml" adlı iki dosya oluşturacaktır. Artık kendi modelinizi eğittiniz. o halde 5. adıma geçelim.
Adım 5: Yüz Tanıma
Tüm adımları doğru bir şekilde yaptıysanız, kendi eğitimli verilerinizi oluşturmuş olabilirsiniz. Şimdi bu verileri yüz tanıma için kullanacağız.
Temel olarak eğitimli modellerimizi python dosyasına yükleyeceğiz, web kameramıza erişecek ve video akışındaki Yüzleri tanımlayacağız ve video akışında tanımlanan mevcut yüz ile eğitilen model arasında bir karşılaştırma veya tahmin yapacağız. veriler eşleşirse, kişinin tanındığını söylüyoruz, bu kadar basit…
"face_recognise.py" dosyasını indirin ve çalıştırın. Gerekli tüm bilgiler içinde verilmiştir. Şimdi yüzünüz tanınmış olabilir. doğruluk iyi değilse, verileri güncellemeyi deneyin. hepiniz hazırsanız, o zaman 6. adıma geçelim/
Adım 6: Arduino'yu Programlama
Son ve son adım Arduino'yu programlamak ve python ile Arduino arasında bir iletişim modu sağlamaktır. İletişim için "Seri İletişim" kullandım. Seri Haberleşmenin nasıl çalıştığını öğrenmek ve kurmak için yukarıda linkini verdiğim videoyu izleyiniz. Gerekli tüm dosyaları video açıklamasında bulacaksınız.
Videoyu izlediyseniz, size ne yaptığımı açıklamama izin verin. Yüzüm tanındığında, sağlanan etiket kimliği 2'dir. Etiket kimliği 2 olduğunda, Arduino'ma seri veri olarak '1' göndereceğim. Bu, LED kovalayan devremi açacak. Etiket kimliği 2'den farklıysa, seri veri olarak '0' göndereceğim, bu da LED takip devremi kapatacaktır.
"ard_chaser.ino" dosyasını indirin. Seri iletişim kullanan basit bir LED takip programıdır.
Arduino ile python programı arasındaki seri iletişimi kuracak olan "face_recogniser1.py" dosyasını aynı şekilde indirin.
İşte gidiyorsun. Umarım yeni bir şeyler öğrenmişsindir. Python ve Arduino ile ilgili daha fazla şey için youtube kanalıma abone olun. Bunu beğendiyseniz paylaşın. Desteklemeye devam edin.
Teşekkürler.
Önerilen:
Abellcadabra (Yüz Tanıma Kapı Kilit Sistemi): 9 Adım
Abellcadabra (Yüz Tanıma Kapı Kilit Sistemi): Karantina sırasında etrafta yatarak, ev kapısı için yüz tanıma sistemi kurarak zamanı öldürmenin bir yolunu bulmaya çalıştım. Ben ona Abellcadabra adını verdim - bu, sadece zili aldığım kapı zili ile sihirli bir ifade olan Abracadabra'nın birleşimidir. ÇOK KOMİK
Gizli Bölmeli Yüz Tanıma Aynası: 15 Adım (Resimli)
Gizli Bölmeli Yüz Tanıma Aynası: Hikayelerde, filmlerde ve benzerlerinde kullanılan, sürekli yaratıcı gizli bölmeler her zaman ilgimi çekmiştir. Bu yüzden, Gizli Bölme Yarışmasını gördüğümde, bu fikri kendim denemeye ve bir pencere açan sıradan görünümlü bir ayna yapmaya karar verdim
Yüz Tanıma Kapı Kilidi: 8 Adım
Yüz Tanıma Kapı Kilidi: Yapımı yaklaşık bir aydır, yüz tanıma kapı kilidini sunuyorum! Elimden geldiğince düzgün görünmesini sağlamaya çalıştım ama 13 yaşında ancak bu kadarını yapabilirim. Bu yüz tanımalı kapı kilidi, özel bir taşınabilir keçeye sahip bir Raspberry Pi 4 tarafından çalıştırılır
Uygulamada Yüz Tanıma: 21 Adım
Uygulamada Yüz Tanıma: Bu benim çok ilgimi çeken, uykumu kaçıran bir konu: Bilgisayarla Görme, önceden eğitilmiş bir model aracılığıyla nesnelerin ve insanların tespiti
Yüz Tanıma ile Kapı Zili: 7 Adım (Resimlerle)
Yüz Tanımalı Kapı Zili: Motivasyon Son zamanlarda ülkemde yaşlıları kendi evlerinde hedef alan bir soygun dalgası yaşandı. Ziyaretçiler onları bakıcı/hemşire olduklarına ikna ettiğinden, genellikle erişim, yolcuların kendileri tarafından verilir. Bilişim Teknoloji