Histogram of Oriented Gradients (HOG) Algoritması-Machine Learning

Kaan Uğurluoğlu
3 min readMay 23, 2021

--

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ı ;

  1. Ö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…

--

--

No responses yet