Open CV ile Resimden Yüz Tanıma

Merhaba arkadaşlar not defteri olarak kullandığım bu platform’a uzun zamandır not düşmüyordum. Şimdi yine bir not düşmek istedim. Bu sefer open cv ve python kullanarak nasıl yüz tanıma yapılır ? hangi aşamalarda düşünmek lazım onunla ilgili bir kaç not düşeceğim. Öncelikle şunu belirteyim bu konu ile ilgili çok fazla bilgiyi internette küçük bir araştırmanın ardından bulabilirsiniz.
Şimdi konumuza bakalım; Open CV bizim için bilgisayar ile görü yapabilmemizi sağlayan açık kaynak bir kütüphane. Tabi bunu yaparken yeni bir model eğitmeniz gerekmiyor. Hazır eğitilmiş modelleri kullanarak resimler, videolar yada kamera’dan alınan resimler üzerinde yüz veya nesne tespiti yapabilirsiniz.
Hazır olan Cascadeleri buradan indirebilirsiniz https://github.com/opencv/opencv/tree/master/data/haarcascades
Projeninizin ana dizinine bu “.xml” dosyalarını ekleyerek kullanabilirsiniz. Şimdi hep birlikte adım adım nasıl tanıma yapacağız bakalım.

  1. Adım: Öncelikle eğer sisteminizde python kurulu değilse python ‘u kurmalısınız. Bunun için komple bir paket olan “Anaconda” kurulumunu yapabilirsiniz.  Komut satırın çalıştırdığınızda “python” yazın ve kurulu olup olmadığını kontrol edin. Eğer kurulu ise python versiyonu ile birlikte bazı bilgiler gözükecek ve python kodları yazabileceğiniz bir komut satırı gelecek . 
  2. Adım: Open CV kullanabilmek ve resim işlemek için 2 adet kütüphanemiz var bunları da yüklememiz gerekiyor. 
    1.  pip install opencv-python    
    2.  pip install imageio    

         Artık kod yazmaya başlayabiliriz .

3. Adım : Bu adımda yüklediğimiz bu kütüphaneleri projemize import etmemiz gerekiyor. 

böylece artık bu kütüphanelerin içlerindeki fonksiyonları kullanarak işlem yapabiliriz.

4. Adım : Biz Open Cv Cascade’lerini kullanarak yüz tanıması yapacağız demiştik. o halde bu cascade’leri yukarıdaki open cv github sitesinden indirip projemizin ana dizinine atalım ve bunları projemizde kullanmak için yükleyelim.

5. Adım: Şimdi yüz tespiti yapabilmek için bir fonksiyon yazalım . Bu fonksiyonumuz parametre olarak bir resim alacak ve bu resimde yüzleri işaretleyip yani dikdörtgen içine alıp resmin üzerine kaydedecek.

burada biraz açıklama yapmak gerekecek.  1. satırda detect adında bir fonksiyon tanımlıyoruz. frame parametresi ,resim olarak geçilen parametre. 2. satırda ise gray adında bir değişken var renkli olan frame adındaki resim siyah beyaz ‘a çevriliyor. Çünkü renkli resim üzerinden değil de siyah beyaz resimden tanılama yapılacak.  3. satır da ” detectMultiScale” fonksiyonu kendine verilen gri resim üzerinde yüz tespiti yapıyor. “1.3” parametresi resmin 1.3 oranında küçültüleceğini ifade ediyor. “5” ise en yakın 5 kare tespit edilecek anlamına geliyor. 4. satırda bir önceki fonksiyondan dönen dizinin içini for döngüsü ile gezeceğiz. “detectmultiScale” fonksiyonu bize bulduğu yüzler için  “x,y,width,height” gibi parametreler olan bir dizi dönüyor. 5. satırda bu bulunan koordinatlara dikdörtgen çizimi yapıyoruz.  6. satırda bulunan yüzleri resim olarak  siyah beyaz alıyoruz. 7. satırda aynı yüzlerin renkli hallerini de alıyoruz. 8. satırda Göz tanımlaması yapabilmek için yine aynı işlemi uyguluyoruz. 11. satırda resmimizin üzerinde göz ve yüz tanımlaması yapılıp dikdörtgenleri çizip yolluyoruz.

6. Adım :  Bu adımda proje klasörümüz içindeki resmi alıp fonksiyona yollayacağız ve tekrardan resmin üzerine  yüzler ve gözler bulunmuş haliyle yazacağız.

 

 

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir