İçindekiler:

Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım
Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım

Video: Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım

Video: Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım
Video: OpenCv contours özelliği ile Basket topu atış tahmini 2024, Kasım
Anonim
Image
Image

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

Web kamerasına erişim
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

Yüz Tanıma
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

Veri toplama
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

Yüz tanıma
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: