Histogram of Oriented Gradients (HOG) Algoritması-Machine Learning
Eski yazılarımızda Makine Öğrenmesi ile ilgili olan pek çok yöntemi incelemiştik. Bu yazımızda ise IMLAB görüntü işleme kütüphanesi içerisinde yer alan ve Öznitelik Çıkarımı için kullanılan HOG algoritmasından yani Yönlü Gradyanlar Histogramı’ndan bahsedeceğiz.
Öznitelik Çıkarımı , girdi imgesinden; parlaklık, zıtlık gibi kamera ve ışık koşullarından bağımsız olarak girdi imgesini betimleyen tanımlayıcıların çıkarılması hedeflemektedir. Öznitelik çıkarıcı yöntemlerden birisi de HOG algoritmasıdır. Bu yöntem, nesne tanımada sıklıkla kullanılan ve bir nesneyi içerdiği açılar ile betimleyen bir tanımlayıcıdır.
Yönlendirilmiş Gradyanların Histogramı yöntemi, görüntüleri sınıflandırmak için esas olarak yüz ve görüntü algılama için kullanılır. Bu yöntem, otonom araçlardan izleme tekniklerine ve daha reklamcılığa kadar çok sayıda alanda yer alır.
Hog Algoritmasının Çalışma Basamakları ;
- Ön işleme
Bu adımda görntünün genişlik ve yükseklik oranı 1:2 olarak ayarlanır. Bu nedenle resimleriniz 100x200, 500x1000 vb. Olabilir. Sabit bir en-boy oranına sahip olacak şekilde görüntüyü önceden işlemek unutulmamalıdır.
2. Degradeleri Hesaplama
Algoritmada daha sonra kullanılabilecek histogramı sağlamak için ilgili yatay ve dikey gradyanları hesaplamamız gerekir. Bu, görüntüyü çekirdekler aracılığıyla basitçe filtreleyerek yapılabilir. Yani sonuç elimizde biri x yönündeki, biri y yönünde iki matriks bulunur.
3.Degrelerden Histogram Oluşturma
Görüntünün hücrelere bölündüğünden emin olun, böylece her hücre için gradyan histogramı hesaplanabilir. Örneğin, 64x128 bir görüntünüz varsa, görüntünüzü 8x8 hücrelere bölün. Histogram için , her biri 20'lik artışlarla 0–160 arasındaki açılara karşılık gelen dokuz ayrı bölmeye ayırdığınızdan emin olun.
Şimdi, her pikselin histogramın içinde nereye gideceğine karar vermek için yöne bağlı olarak bir bölme seçilir ve daha sonra bölmenin içine yerleştirilen değer büyüklüğe bağlıdır. Bir piksel, iki bölmenin ortasındaysa, büyüklükleri ilgili bölmeden uzaklığına bağlı olarak buna göre böldüğüne bakılır. Bu işlemi yaptıktan sonra histogram oluşturulabilir ve en ağır kutular daha kolay görülebilir.
4. Görüntü Görselleştirme
Çoğu durumda, kişinin şeklinin doğru bir temsilini elde etmek için HOG tanımlayıcıları görselleştirilir. Bu görselleştirme, degradelerin nerede değiştiğini anlamak ve nesnelerin görüntünün içinde nerede olduğunu bilmek açısından son derece yararlı olabilir.
Şimdi Python ile HOG uygulaması yapalım.
Önce kütüphanelerimizi ekledik.
Görselin HOG özelliikleri oluşturulur ve HOG için gerekli komutu yazarak içerisine 16x16 çekirdeği yazılır.
Girilen resim bastırılır.
Görüntüyü iyileştirmek için histogramı yeniden ölçeklendirilir.
HOG uygulanmış görsel bastırılır.
Bir sonraki yazıda görüşmek üzere…