Histogram of Oriented Gradients: Pengertian dan Cara Menghitung

Apa itu Histogram of Oriented Gradients ?

Histogram of oriented gradient atau HOG merupakan salah satu metode pendeteksian objek melalui image processing dan computer vision. Secara umum, metode ini dapat dijalankan dengan cara mengukur kemunculan orientasi gradien pada bagian-bagian lokal dalam suatu gambar.

Bagian lokal merupakan gambar lengkap dipecah menjadi beberapa bagian yang lebih kecil dan mengukur nilai gradien serta orientasinya. Dalam menggunakan HOG diperlukan dataset yang digunakan sebagai data latih.

Metode HOG tidak hanya dapat mendeteksi namun juga dapat memberikan arah tepi dengan mengekstraksi gradien dan orientasi tepi, HOG juga mampu berfokus pada struktur atau bentuk suatu objek. 

Selanjutnya HOG dapat membuat histogram untuk masing-masing bagian secara terpisah. Histogram dibuat dengan gradien dan orientasi nilai piksel. Dalam HOG terdapat fitur deskriptor yang dapat mengkonversi gambar berukuran lebar x tinggi x 3 channel menjadi array atau vektor dengan panjang n. 

HOG juga dapat digunakan untuk mengekstraksi fitur yang ada pada gambar dengan menggunakan objek manusia. Langkah awal metode HOG bekerja adalah dengan mengkonversi citra RGB (Red, Green, Blue) menjadi grayscale, selanjutnya dilanjutkan dengan menghitung nilai gradien setiap piksel.

Setelah mendapatkan nilai gradien, dilanjut dengan menentukan jumlah bn orientasi yang akan digunakan untuk pembuatan histogram yang disebut sebagai proses spatial orientation binning.

Sebagai contoh, pada deskriptor fitur HOG terdapat paper asli yang memiliki ukuran 64 x 128 x 3 dan keluarannya berupa vektor yang memiliki panjang 3780. Bukan hanya untuk menghitung vektor saja, HOG juga dapat dihitung untuk ukuran gambar lainnya.

Cara Menghitung Histogram of Oriented Gradients

Berikut terdapat beberapa langkah dalam menghitung histogram of oriented gradients.

1. Preprocessing

Preprocessing merupakan langkah awal dalam melakukan perhitungan histogram of oriented gradients. Langkah ini dapat dilakukan dengan mendapatkan gambar masukan yang diinginkan untuk menghitung fitur dalam histogram of oriented gradients.

Selanjutnya melakukan pengubahan atas ukuran gambar dengan rasio 1 : 2 dengan keterangan lebar banding tinggi yaitu 64 x 128 piksel. Disarankan ukuran gambar masukan sebesar 64 x 128 piksel agar dapat membagi gambar menjadi 8 x 8 dan 16 x 16 pada ketika mengekstraksi fitur.

Tujuan gambar masukan dibuat menjadi ukuran tersebut adalah untuk mendapatkan hasil yang akurat dan dapat mendeteksi gambar pejalan kaki dengan hasil yang lebih baik. Untuk lebih jelasnya dapat melihat contoh gambar di bawah ini.

preprocessing

2. Menghitung Orientasi pada Gambar

Langkah berikutnya dalam menghitung histogram of oriented gradients dengan melakukan perhitungan pada deskriptif HOG. Pada bagian kali ini, diperlukan untuk menghitung orientasi arah horizontal dan vertikal atau arah x dan y pada gambar.

Dalam menghitung orientasi pada gambar terdapat dua cara yaitu menggunakan operator sobel dan centered derivative (turunan terpusat). Berikut contoh gambar perhitungan menggunakan centered derivative dengan proses yang mirip pada proses konvolusi.

turunan terpusat

3. Menghitung Magnitude dan Gradien

Langkah ketiga dalam menghitung histogram of oriented gradients adalah dengan mengukur magnitude dan gradiennya. Dalam menghitung nilai dan arah gradiennya dapat menggunakan rumus berikut.

rumus

Sedangkan, dalam menghitung nilai dan arah magnitudonya dapat menggunakan rumus teorema pitagoras, seperti gambar berikut.

teorema pitagoras

Setelah mengetahui orientasinya, selanjutnya melakukan perhitungan nilai magnitude tepi dan arah tepi gradien. Berikut salah satu contohnya.

contoh tepi

4. Membuat Histogram

Langkah berikutnya untuk menghitung histogram of oriented gradients dengan cara membuat histogram menggunakan gradien dan orientasi. Pertama-tama, untuk histogram pastikan untuk membagi menjadi sembilan bin secara terpisah dan setiap bin sesuai dengan sudut dari 0 – 160 derajat dengan kelipatan 20.

Apabila nilai dalam setiap cell dari proses arah tepi melebihi atau sama dengan nilai 180 maka akan dilakukan proses polarity change. Proses polarity change merupakan pembuatan deskriptor menjadi invarian terhadap perubahan relatif antara background dengan foreground.

Berikut gambar yang diperlukan untuk memperjelas gambaran proses polarity change.

polarity change

Hal yang perlu diperhatikan adalah memastikan bahwa pada deskriptor HOG terdapat gambar yang dapat dibagi ke dalam cell sehingga histogram gradien dapat dihitung untuk setiap cellnya. Sebagai contoh, apabila gambar masukan memiliki ukuran 64 x 128 piksel maka dapat membagi gambar menjadi 8 x 8 cell.

5. Menghitung Histogram of Oriented Gradients pada 8 X 8 Cell

Perhitungan histogram yang dibagi menjadi 8 x 8 cell dan histogram gradien yang berorientasi dihitung untuk setiap piksel bertujuan agar mendapatkan fitur untuk patch yang lebih kecil sehingga dapat merepresentasikan seluruh gambar.

8 x 8 cell

Pembagian cell tersebut dapat menggunakan 8 x 8 menjadi 16 x 16 ataupun menjadi 32 x 32. Apabila membagi gambar menjadi 8 x 8 cell dan menghasilkan histogram, maka akan mendapatkan matriks yang berukuran 9 x 1 dalam setiap cellnya.

6. Normalisasi Gardien

Setelah memiliki fitur histogram of oriented gradients yang dibuat untuk cell gambar berukuran 8 x 8, namun terdapat kasus-kasus pada saat prose perhitungan gradien justru menghasilkan nilai gradien yang berbeda-beda serta nilai gradien pada gambar akan peka terhadap pengaruh cahaya.

Hal tersebut akan menghasilkan makna bahwa pada gambar tertentu sebagai gambar akan menjadi sangat terang dibandingkan dengan bagian lainnya. 

Sebagai user tidak dapat menghilangkan hal ini dalam gambar, namun hanya dapat melakukan pengurangan variasi pencahayaan dengan cara menormalkan gradien dengan mengambil blok 16 x 16. 

Apabila gambar memiliki empat matriks yang berukuran 9 x 1 atau satu matriks berukuran 36 x 1, maka untuk menormalkan matriks tersebut dapat dengan membaginya setiap nilai dengan akar kuadrat dari jumlah kuadrat dari nilai-nilai tersebut secara matematis, berikut rumus yang dapat digunakan untuk vektor V yang diberikan.

V = [a1, a2, a3, ….a36]

rumus normalisasi

7. Fitur untuk Gambar Lengkap

Langkah terakhir dalam menghitung histogram of oriented gradients yaitu menghasilkan fitur HOG untuk gambar. Pada langkah sebelumnya telah membuat fitur untuk 16 x 16 blok gambar, selanjutnya dapat menggabungkan semua fitur menjadi fitur untuk gambar terakhir.

Pastikan seluruh jumlah total blok 16 x 16 yang akan didapatkan untuk satu gambar 64 x 128. Sebagai contoh gambar memiliki 105 (7 x 15) blok berukuran 16 x 16. Masing-masing dari 105 tersebut memiliki fitur vektor 36 x 1.

Sehingga, fitur total dalam gambar tersebut dapat diketahui 105 x 36 x 1 = 3780 fitur. Berikut hasil proses deskriptor histogram of oriented gradients terlihat dalam gambar di bawah ini.

hasil akhir

Atin Rahmawati