Opencv Haar Cascade sınıflandırıcısı Nedir?

talhakoc 13 Mart 2015OpenCv

Opencv nin temellerini öğrendikten sonra görüntü işleme için çok kullanışlı ve çok gerekli olan video veya resimlerdeki nesneleri bulmak ve onları takip etmekten bahsedelim. Opencv kütüphanesi içinde bulabileceğiniz haarcascade sınıflandırıcısı; Paul Viola ve Micheal Jones tarafından, bu soruna çözüm için oluşturulmuştur. Aynı zamanda Viola and Jones object detection framework (Viola ve Jones nesne bulma yapısı) olarak da bilinir.  En temel manada belirli bir algoritmaya göre bulunması istenen nesneler önce bilgisayara tanıtılır ve daha sonra ona benzer şekillerin bulunduğu resimler veya video frameleri taranarak o nesne bulunmaya çalışılır.

Öncelikle sınıflandırıcının eğitiminden bahsedelim. Eğitim için içerisinde aranılan nesnenin bulunduğu pozitif resimlere ve içerisinde o nesnenin bulunmadığı negatif resimlere ihtiyaç vardır. Sınıflandırıcı eğitimde, pozitif resimlerdeki nesneleri aşağıdaki gibi belirli büyüklerde ayarlanmış çerçevelerle tarayarak çerçeve içerisinde bulunan siyah bölgedeki piksel değerleri toplamı ile beyaz bölgedeki piksel değerleri toplamlarından karanlık aydınlık değerler kontrol edilerek belirli hedef değerler oluşturulur.

1353646276_1594

Feature denilen bu çerçevelere zayıf sınıflandırıcılar denilmektedir. Çünkü tek başına doğru bir sınıflandırıcı olamazlar. Bir nesnede bu zayıf sınıflandırıcılardan birçoğu olacaktır ve bu zayıf sınıflandırıcıların toplandığı noktada büyük doğruluk oranıyla aranılan nesne var demektir. Sınıflandırıcı, en temel mantığıyla bu şekilde çalışmaktadır.

Çerçeveler aşağıdaki gibi örnek pozitif resimler üzerinde taranır.

haarcascade-nasil yapilir

 

Yukarıdaki çerçeve için yanakların parlaklık oranının burun bölgesindeki parlaklık oranından daha düşük olması ile burun kısmı seçilebilir.

nasil-cascade-siniflandirici-egitilir

 

Aynı zamanda göz bölgesinin beyaz ile gösterilen alt bölgeden daha karanlık olması da bu özelliklerden bir tanesidir. Haarcascade sınıflandırıcısında, buna benzer birçok özellikler içinde nesnenin bulunduğu resimler üzerinden geçirilerek değerler oluşturulur. Örneğin yüz taramasında ağız, burun, alın, saç gibi bölgelerde birçok karanlık aydınlık özellikleri oluşturulacaktır. Bunların her birinden hedef değerler oluşturulmaktadır. Ve bu işlem çerçeve büyüklükleri değiştirilerek diğer aşamalarda tekrar edilmektedir.

Bu çerçeveler(zayıf sınıflandırıcılar) her resim boyutu için düşünüldüğünde yüz binlerce çekirdek oluşacaktır. Negatif resimler üzerinde tarama yapılarak içinde nesne bulunmadığı için kullanılmayacak olan çerçevelerin büyük çoğunluğu elenecektir. Pozitif resimlerde nesne seçilerek nesnedeki kullanılacak çerçeveler belirlenecektir. Bunun için eğitim sırasında pozitif resimlerde nesnenin milimetrik seçimine dikkat edilmelidir.  Pozitif ve negatif resim örneklerinin çok olması istenilen nesnede daha iyi sonuçlar almak için önemlidir.

Bu işlemlerin hem eğitimde hem de nesnelerin bulunmasında bilgisayarı çok yoracağı ve işlemlerin uzun süreceği düşünülebilir. Reel time görüntü işlemede hız çok önemlidir. Haarcascade sınıflandırıcısında öncelikle resimlerin integralleri alınır. Böylelikle piksel değerlerinin tek tek toplamları hesaplanmak yerine integralle hesaplanmış olmaktadır. Böylelikle bilgisayardan büyük bir işlem gücü kaldırılacaktır.

Ayrıca nesnelerin bulunması aşamasında da her bir büyüklükteki çerçeve tarafından tekrar tekrar taranmak yerine sadece önceki aşamalarla eşleşme olan kısımlar taranarak bir işlem yükü de oradan azaltılmaktadır. Bu açılardan ve yaptığı iş açısından oldukça hızlı oldukları söylense de uygulama aşamasında reel time çalışıldığında alınan görüntüyü belirli oranda yavaşlattığı görülmektedir. Bu hız, sınıflandırıcının eğitilme şekli, örnek sayısı gibi durumlara göre değişmektedir.

İstenilen nesnelerin bulunabilmesi için sınıflandırıcının referans alacağı min hit rate ve max false alarm rate değerleri vardır. sınıflandırıcı eğitimde her seferinde belirli eğitim algoritması ile bu değerlere ulaşmaya çalışır. minhitrate minimum isabet oranını ve max false alarm rate ise hangi hata oranındaki nesnelerin gösterileceğini ifade eder.

Eğitim yapıldıktan sonra .xml uzantılı bir dosya oluşturulacak ve bu dosya ile opencv kütüphanesi kullanılarak istenilen nesne bulunabilecektir.

Haar Cascade sınıflandırıcının nasıl eğitildiğine : Opencv Ders 22(Haar Cascade Eğitimi, Nesne Tanıma) dersinden ulaşabilirsiniz.

Kaynak: wikipedi,opencv.org

3 thoughts on “Opencv Haar Cascade sınıflandırıcısı Nedir?

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Arama

Twitterda

© 2014 - Talha Koç. All Rights Reserved. Powered by Wordpress and Design by We Create Web Designs