Merhaba arkadaşlar görüntü işleme işlerinde sıkça kullanılan Haar cascades konusunu anlatmaya çalışacağım. Öncelikle kısaca haar-cascade ne demek bundan bahsedelim. Haar-cascade Alfred Haar adında bir bilim adamı tarafından tespit edilmiş bir sistemdir.  Görüntü üzerinde nesne bulmak için uygulanan bir yöntemdir. Bu yönteme haar-like özellikleri denilir. Özellikleri kısaca açıklayalım.

Haar Cascade Nedir? OpenCv Haar Cascade ile Yüz Tanıma

Merhaba arkadaşlar görüntü işleme işlerinde sıkça kullanılan Haar cascades konusunu anlatmaya çalışacağım. Öncelikle kısaca haar-cascade ne demek bundan bahsedelim. Haar-cascade Alfred Haar adında bir bilim adamı tarafından tespit edilmiş bir sistemdir. Görüntü üzerinde nesne bulmak için uygulanan bir yöntemdir. Bu yönteme haar-like özellikleri denilir. Özellikleri kısaca açıklayalım.

Kenar özelliği:  Görüntü üzerinde belirli bir alan koyu alandan oluşuyor ve belirli bir alan açık renklerden oluşuyor ise kenar özelliği olduğunu belirtmektedir.

Çizgi özelliği: Görüntü üzerinde sırasıyla açık, kapalı, açık  renklerden oluşuyor ise çizgi özelliği vardır.

Dört-Kare Özelliği: Çaprazlama olarak kare şeklinde koyu ve açık tonlar çapraz bir şekilde bulunuyor ise dört kare özelliğini belirtmektedir.

Aşağıda arama özelliklerinin görüntüsü gösterilmiştir.

Opencv

Bu özellikleri kullanarak görüntü üzerinde çizgi, kenar, yüz, göz, araç vb… birçok nesneyi tespit edebiliriz. Aşağıda bulunan bir insan yüzü görseli üzerinde haar-cascade uygulanmıştır. Haar-cascade metodu önceden birçok kez eğitilerek yüz şeklinin nasıl bir yapıda olduğunu bilmektedir. Bir çiçek tanıma veya plaka tanıma işlemi yaparken önceden plakayı birçok kez tanıtarak nasıl bir yapıda olduğunu tanıtıyoruz. Örneğin bir yüz arayan bir sistem ilk olarak iki gözü aramaktadır. Göz var ise burun var mı diye bakar. Burun  var ise kaş var mı diye kontrol ederek istenen sonuçları veren  yapıdır.

Haar-cascade ile kendiniz bir öğeyi tanıtıp görüntü üzerinde nesne arama işlemlerini gerçekleştirebilirsiniz. Fakat bu başlı başına bir eğitim olması nedeniyle görüntü işleme uzmanlarının sık sık kullanmış olduğu haar cascade yapısını kullanarak yüz tanıma işlemlerini nasıl yapıyoruz bunu python kodu yazarak görelim.

İlk olarak  Github üzerinden haarcascade_frontalface_default.xml bu dosyayı indiriniz ve  proje dosyası oluşturup içine atınız. Daha sonra proje dosyanız içerisine yüz görüntüleri olan resimler atınız. Şimdi ise  kodlarımızıı yazalım.

import cv2  
#OpenCv kütüphanesini dahil ediyoruz
import numpy as np 
#Numpy kütüphanesini dahil ediyoruz

img= cv2.imread('yuz.jpg') 
#yuz.jpg yazan yere dosyanız içerisine atmış olduğunuz görüntülerin adını yazınız.

faceCasc =cv2.CascadeClassifier('haarcascade_frontalface_default.xml ')
#İndirmiş olduğumuz haar-cascade sınıfını dahil ediyoruz.Adını değiştirebilirsiniz.

grayColors=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
#Görüntümüzü gri yapıyoruz.Daha doğru sonuçlar almak için

faces= faceCasc.detectMultiScale(grayColors,1.1,3)
#Görüntüyü 1,1 skala ile kontrol edecek ve 3 kere yüzün orada var mı yok mu olduğunu teyit edecek.


#Görüntüde bulunan yüzlere dikdörtgen çizmek için ağağıdaki döngüyü kullanıyoruz. 
#For ile dönmemizin nedeni ise görüntü içerisinde birden fazla insan olabilir. 
for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) #Çerçevenin konumu, rengi ve kalınlığı

cv2.imshow('faces',img) #Görüntüyü göster.
cv2.waitKey(0)
cv2.destroyAllWindows()

 

Kodları çalıştırdığımız zaman eğer görüntü üzerinde üzerinde bir yüz var ise 1. görüntü eğer birden fazla yüz var ise 2. görüntüdeki gibi bir sonuç elde ederiz. İkinci görüntü üzerinde bazı yüzlerin tanınmadığını göreceksiniz.Haar cascade ne kadar iyi eğitilirse hata oranı o derece azalacaktır. 

 

                                                           

Haar-cascade nedir ve haar-cascade kullanarak yüz tanıma işlemini nasıl yapıyoruz kısaca açıklamaya çalıştım. Başka bir yazımda görüşmek dileğiyle.

Bu Gönderiyi Paylaş

İçerik Hakkında Yorum Yapın

www.000webhost.com