- Ön koşullar
- OpenCV ile Yüz Tanıma Nasıl Çalışır?
- OpenCV'de Kademeli Sınıflandırıcılar kullanarak Yüz Algılama
Yüz Tanıma giderek daha popüler hale geliyor ve çoğumuz bunu farkında bile olmadan kullanıyor. İster basit bir Facebook Etiketi önerisi, ister Snapchat Filtresi veya gelişmiş bir havaalanı güvenlik gözetimi olsun, Yüz Tanıma sihrini içinde zaten çalıştı. Çin, öğrencilerin katılımını ve davranışlarını izlemek için okullarda Yüz Tanıma kullanmaya başladı. Satış Mağazaları, müşterilerini kategorize etmek ve dolandırıcılık geçmişi olan insanları izole etmek için Yüz Tanıma'yı kullanmaya başladı. Çok daha fazla değişiklik devam ederken, bu teknolojinin yakın gelecekte her yerde görüleceğine şüphe yok.
Bu eğitimde Raspberry Pi'deki OpenCV Kitaplığını kullanarak kendi Yüz Tanıma sistemimizi nasıl oluşturabileceğimizi öğreneceğiz. Bu sistemi taşınabilir Raspberry Pi üzerine kurmanın avantajı, onu herhangi bir yere kurarak onu gözetleme sistemi olarak çalıştırabilmenizdir. Tüm Yüz Tanıma sistemlerinde olduğu gibi, eğitici iki python komut dosyası içerecektir, biri belirli bir kişinin bir dizi fotoğrafını analiz edecek ve bir veri kümesi (YML Dosyası) oluşturacak bir Eğitmen programıdır. İkinci program, Tanıyıcı programıdırbir yüzü algılar ve ardından bu YML dosyasını, yüzü tanımak ve kişi adını belirtmek için kullanır. Burada tartışacağımız her iki program da Raspberry Pi (Linux) içindir, ancak Windows Bilgisayarlarda da çok küçük değişikliklerle çalışacaktır. OpenCV ile başlamak için yeni başlayanlar için bir dizi Öğreticimiz var, tüm OpenCV eğitimlerini buradan kontrol edebilirsiniz.
Ön koşullar
Daha önce de belirtildiği gibi, yüzleri algılamak ve tanımak için OpenCV Kitaplığını kullanacağız. Bu eğiticiye devam etmeden önce Pi'ye OpenCV Kitaplığı kurduğunuzdan emin olun. Ayrıca Pi'nizi 2A adaptörle güçlendirin ve video çıkışını SSH üzerinden alamayacağımız için HDMI kablosuyla bir ekran monitörüne bağlayın.
Ayrıca, Görüntü işlemeyi öğrenmekle ilgileniyorsanız, OpenCV'nin tam olarak nasıl çalıştığını açıklamayacağım, o zaman bu OpenCV temellerine ve gelişmiş Görüntü işleme eğitimlerine göz atın. Ayrıca bu Görüntü Segmentasyon eğitiminde konturlar, Blob Algılama vb. Hakkında bilgi edinebilirsiniz.
OpenCV ile Yüz Tanıma Nasıl Çalışır?
Başlamadan önce, Yüz Algılama ve Yüz Tanıma'nın iki farklı şey olduğunu anlamak önemlidir. In Yüz Algılama yalnızca kişiye Yüz yazılım Kişi olduğunu fikrim yok olacak algılanır. In Yüz Tanıma yazılım sadece yüzü algılamaz, ancak aynı zamanda kişiyi tanıyacak. Şimdi, Yüz Tanıma yapmadan önce Yüz Algılama yapmamız gerektiği açık olmalı. OpenCV'nin bir yüzü veya bu konuda başka bir nesneyi tam olarak nasıl algıladığını açıklamam mümkün olmazdı. Öyleyse, bu Nesne Algılama eğitimini takip edebileceğinizi merak ediyorsanız.
Bir web kamerasından gelen video akışı, birbiri ardına güncellenen uzun bir hareketsiz görüntü dizisinden başka bir şey değildir. Ve bu görüntülerin her biri, ilgili konumunda bir araya getirilmiş farklı değerlere sahip piksellerden oluşan bir koleksiyondur. Peki bir program bu piksellerden bir yüzü nasıl algılayabilir ve içindeki kişiyi nasıl daha fazla tanıyabilir? Arkasında birçok algoritma var ve bunları açıklamaya çalışmak bu makalenin kapsamı dışındadır, ancak OpenCV kütüphanesini kullandığımız için kavramlara derinlemesine girmeden Yüz Tanıma işlemini gerçekleştirmek çok basittir.
OpenCV'de Kademeli Sınıflandırıcılar kullanarak Yüz Algılama
Sadece bir yüzü tespit edebilirsek onu tanıyabilir veya hatırlayabiliriz. Yüz gibi bir nesneyi tespit etmek için OpenCV, Sınıflandırıcılar adı verilen bir şey kullanır. Bu Sınıflandırıcılar, bizim durumumuzda bir yüz belirli bir nesneyi algılamak için kullanılabilen önceden eğitilmiş veri kümesidir (XML Dosyası). Yüz Algılama Sınıflandırıcılar hakkında daha fazla bilgiyi buradan edinebilirsiniz. Sınıflandırıcılar, Yüzü algılamanın yanı sıra burun, gözler, Araç Plaka, Gülümseme vb. Diğer nesneleri de algılayabilir. Vaka Sınıflandırıcılarının listesi aşağıdaki ZIP dosyasından indirilebilir.
Python'da Nesne algılama için sınıflandırıcılar
Alternatif olarak OpenCV, Basamaklı Sınıflandırıcınızı Eğiterek Görüntüdeki diğer herhangi bir nesneyi tespit etmek için kullanılabilecek kendi Sınıflandırıcınızı oluşturmanıza da olanak tanır. Bu eğitimde, yüzü ön konumdan algılayacak "haarcascade_frontalface_default.xml" adlı bir sınıflandırıcı kullanacağız. Göreceğiz