Konsep dan Cara Kerja Local Binary Pattern Histogram

Local Binary Pattern Histogram (LBPH)

Dalam dunia computer vision dan pengolahan citra digital, ekstraksi fitur adalah fondasi utama sebelum sistem bisa melakukan klasifikasi atau pengenalan objek. Salah satu metode klasik yang masih relevan hingga sekarang adalah Local Binary Pattern Histogram (LBPH). Meskipun era deep learning sedang mendominasi, LBPH tetap menjadi solusi ringan, cepat, dan efektif terutama untuk sistem dengan resource terbatas seperti embedded system atau aplikasi real-time sederhana.

Bagi mahasiswa IT, maupun peneliti data science, memahami LBPH bukan sekadar tahu cara pakai library OpenCV. Lebih dari itu, penting untuk memahami konsep matematis dan logika di baliknya. Kenapa metode ini bisa mengenali wajah? Bagaimana proses konversi piksel menjadi representasi numerik? Artikel ini akan membedah konsep dan cara kerja Local Binary Pattern Histogram secara mendalam, runtut, dan aplikatif agar kamu bisa benar-benar memahaminya, bukan hanya menggunakannya.

Konsep Dasar Local Binary Pattern (LBP)

Local Binary Pattern (LBP) adalah metode ekstraksi fitur tekstur pada citra digital yang bekerja dengan membandingkan nilai intensitas piksel pusat dengan piksel-piksel di sekitarnya. Ide dasarnya sederhana yaitu ubah pola tekstur menjadi representasi biner yang bisa dihitung dan dianalisis secara matematis.

Bayangkan sebuah citra grayscale. Setiap piksel memiliki nilai intensitas antara 0 hingga 255. Dalam metode LBP, sebuah piksel pusat akan dibandingkan dengan delapan piksel tetangganya (pada konfigurasi standar 3×3). Jika nilai piksel tetangga lebih besar atau sama dengan piksel pusat, maka diberi nilai 1. Jika lebih kecil, diberi nilai 0. Hasilnya adalah delapan digit biner yang membentuk satu pola unik.

Pola biner ini kemudian dikonversi menjadi angka desimal. Angka tersebut merepresentasikan karakteristik tekstur lokal pada area tersebut. Dengan kata lain, LBP mengubah informasi visual menjadi angka yang bisa diproses oleh algoritma klasifikasi.

Mengapa ini penting? Karena dalam pengenalan wajah atau tekstur, pola lokal sering kali lebih informatif daripada keseluruhan gambar. Kerutan wajah, tepi mata, atau kontur hidung memiliki tekstur khas. LBP menangkap detail tersebut tanpa perlu komputasi kompleks seperti konvolusi berlapis-lapis pada CNN.

Cara Kerja Local Binary Pattern Histogram (LBPH)

Setelah memahami LBP, langkah berikutnya adalah memahami bagaimana LBP dikembangkan menjadi Local Binary Pattern Histogram (LBPH). Jika LBP hanya menghasilkan nilai pola lokal, maka LBPH menyempurnakannya dengan membuat distribusi statistik dari pola-pola tersebut.

Proses kerja LBPH secara umum terdiri dari beberapa tahap:

  1. Konversi ke Grayscale
    Citra berwarna diubah menjadi grayscale agar perhitungan intensitas piksel lebih sederhana dan konsisten.
  2. Perhitungan Nilai LBP
    Setiap piksel dibandingkan dengan tetangganya untuk menghasilkan nilai desimal LBP.
  3. Pembagian Citra menjadi Grid
    Gambar dibagi menjadi beberapa bagian kecil (misalnya 8×8 grid). Ini penting agar informasi spasial tetap terjaga.
  4. Pembuatan Histogram pada Setiap Grid
    Untuk setiap grid, dihitung frekuensi kemunculan setiap nilai LBP (0–255).
  5. Penggabungan Histogram
    Semua histogram digabung menjadi satu vektor fitur panjang yang merepresentasikan keseluruhan wajah atau objek.

Kenapa perlu histogram? Karena histogram menunjukkan distribusi tekstur. Dua wajah yang berbeda akan memiliki distribusi pola tekstur yang berbeda pula. Vektor histogram inilah yang nantinya dibandingkan menggunakan metode jarak seperti Euclidean Distance untuk menentukan tingkat kemiripan.

Perhitungan dan Rumus LBPH

Secara matematis, rumus dasar Local Binary Pattern dapat dituliskan sebagai:

LBP(xc,yc)=p=0P1s(ipic)2pLBP(x_c, y_c) = \sum_{p=0}^{P-1} s(i_p – i_c) \cdot 2^p

Di mana:

  • ici_cic​ = nilai intensitas piksel pusat
  • ipi_pip​ = nilai intensitas piksel tetangga
  • PPP = jumlah titik tetangga
  • s(x)s(x)s(x) = fungsi threshold

Fungsi threshold didefinisikan sebagai:

s(x)={1,jika x00,jika x<0s(x) = \begin{cases} 1, & \text{jika } x \ge 0 \\ 0, & \text{jika } x < 0 \end{cases}

Penjelasan sederhananya seperti ini: setiap piksel tetangga dikurangi dengan piksel pusat. Jika hasilnya positif atau nol, maka dianggap 1. Jika negatif, dianggap 0. Nilai biner tersebut kemudian dikalikan dengan bobot 2 pangkat posisi bitnya.

Misalnya kamu punya pola biner: 11001010. Maka konversi ke desimal dilakukan seperti konversi bilangan biner biasa:

1×2⁷ + 1×2⁶ + 0×2⁵ + 0×2⁴ + 1×2³ + 0×2² + 1×2¹ + 0×2⁰

Hasil akhirnya adalah angka desimal tertentu yang menjadi representasi tekstur lokal tersebut.

Dalam konteks LBPH, semua nilai LBP dari setiap piksel dikumpulkan lalu dibuat histogram frekuensinya. Histogram inilah yang menjadi fitur akhir.

Meskipun terlihat sederhana, kombinasi logika biner dan distribusi statistik inilah yang membuat LBPH cukup kuat untuk tugas pengenalan pola.

Parameter Penting dalam LBPH

Akurasi LBPH sangat dipengaruhi oleh parameter yang digunakan. Beberapa parameter utama yang perlu dipahami adalah:

1. Radius (R)

Radius menentukan jarak antara piksel pusat dan piksel tetangga. Semakin besar radius, semakin luas area tekstur yang dianalisis. Radius kecil cocok untuk detail halus, sedangkan radius besar menangkap pola lebih global.

Jika radius terlalu besar, detail kecil bisa hilang. Jika terlalu kecil, sistem mungkin terlalu sensitif terhadap noise.

2. Jumlah Titik Tetangga (P)

Parameter ini menentukan berapa banyak piksel yang dibandingkan dengan piksel pusat. Umumnya digunakan 8, tetapi bisa 16 atau lebih.

Semakin banyak titik tetangga, semakin detail representasi tekstur. Namun, konsekuensinya adalah dimensi fitur semakin besar dan komputasi meningkat.

3. Grid X dan Grid Y

Parameter ini menentukan berapa banyak pembagian area citra. Misalnya 8×8 grid berarti gambar dibagi menjadi 64 bagian kecil.

Semakin banyak grid, semakin detail informasi spasial yang ditangkap. Tetapi vektor fitur menjadi jauh lebih panjang.

Menentukan parameter optimal biasanya membutuhkan eksperimen. Kombinasi yang tepat bergantung pada dataset, resolusi gambar, dan kebutuhan akurasi sistem.

Implementasi LBPH dalam Face Recognition

Salah satu alasan mengapa Local Binary Pattern Histogram begitu populer adalah karena penerapannya yang relatif mudah dalam sistem face recognition. Metode ini tidak membutuhkan GPU mahal atau dataset jutaan gambar seperti deep learning. Dengan dataset sederhana dan preprocessing yang tepat, LBPH sudah mampu menghasilkan performa yang cukup stabil.

Secara umum, tahapan sistem face recognition berbasis LBPH dapat dijelaskan sebagai berikut:

  1. Deteksi Wajah
    Sebelum ekstraksi fitur dilakukan, sistem harus mendeteksi lokasi wajah dalam gambar atau frame video. Biasanya digunakan metode Haar Cascade atau HOG untuk tahap ini. Deteksi yang akurat sangat penting karena kesalahan cropping akan memengaruhi hasil ekstraksi fitur.
  2. Preprocessing Citra
    Wajah yang sudah terdeteksi akan diubah menjadi grayscale, lalu dilakukan normalisasi ukuran (misalnya 100×100 piksel). Normalisasi pencahayaan juga sering diterapkan untuk mengurangi pengaruh cahaya.
  3. Ekstraksi Fitur Menggunakan LBPH
    Pada tahap ini, setiap piksel dianalisis menggunakan metode LBP, kemudian dibuat histogram berdasarkan grid yang ditentukan. Hasil akhirnya adalah vektor fitur unik untuk setiap wajah.
  4. Training Model
    Sistem menyimpan vektor fitur dari setiap label (misalnya nama orang). Model LBPH tidak melakukan “pembelajaran” kompleks, tetapi menyimpan distribusi fitur tersebut.
  5. Pengujian dan Perbandingan
    Ketika wajah baru masuk, sistem menghitung vektor fiturnya dan membandingkannya dengan data training menggunakan jarak Euclidean atau metode jarak lainnya. Jarak terkecil menunjukkan kecocokan tertinggi.

Pendekatan ini bekerja baik dalam kondisi pencahayaan stabil dan variasi ekspresi yang tidak ekstrem. Karena berbasis tekstur lokal, LBPH cukup tahan terhadap perubahan kecil seperti senyum atau sedikit rotasi kepala.

Perbandingan LBPH dengan Metode Lain

Dalam dunia face recognition klasik, LBPH sering dibandingkan dengan Eigenfaces, Fisherfaces, dan metode modern seperti CNN. Berikut tabel perbandingan sederhananya:

MetodeKompleksitasKebutuhan DataTahan PencahayaanAkurasiKebutuhan Komputasi
LBPHRendahSedikitCukup BaikSedangRendah
EigenfacesSedangSedangKurang StabilSedangSedang
FisherfacesSedangSedangLebih StabilSedang-TinggiSedang
CNN (Deep Learning)TinggiSangat BanyakSangat BaikTinggiTinggi (GPU)

Dari tabel di atas terlihat bahwa LBPH unggul dalam efisiensi dan kesederhanaan. Namun, jika sistem membutuhkan akurasi sangat tinggi dalam kondisi pencahayaan ekstrem atau sudut wajah kompleks, CNN lebih unggul.

Kelebihan LBPH

  • Ringan dan Cepat
    LBPH tidak memerlukan komputasi berat. Prosesnya berbasis operasi sederhana seperti perbandingan dan perhitungan histogram, sehingga cocok untuk perangkat dengan spesifikasi rendah.
  • Mudah Diimplementasikan
    Library seperti OpenCV sudah menyediakan implementasi siap pakai. Programmer cukup mengatur parameter tanpa harus membangun algoritma dari nol.
  • Cukup Stabil terhadap Perubahan Ekspresi
    Karena berbasis tekstur lokal, perubahan kecil pada wajah tidak langsung merusak keseluruhan fitur.

Kekurangan LBPH

  • Sensitif terhadap Perubahan Pencahayaan Ekstrem
    Jika kondisi cahaya sangat berbeda antara training dan testing, performa bisa menurun signifikan.
  • Kurang Optimal untuk Dataset Besar
    Ketika jumlah data sangat banyak dan variasi kompleks, metode deep learning jauh lebih unggul.
  • Tidak Menangkap Fitur Global Secara Mendalam
    LBPH fokus pada tekstur lokal, sehingga struktur wajah global kurang terepresentasi dibanding metode berbasis PCA atau CNN.

Memahami kelebihan dan kekurangan ini penting sebelum memutuskan LBPH sebagai solusi dalam proyek tertentu.

Studi Kasus Penggunaan LBPH

LBPH banyak digunakan dalam proyek nyata karena kemudahannya. Beberapa contoh penerapan yang sering ditemukan antara lain:

1. Sistem Absensi Wajah

Mahasiswa cukup berdiri di depan kamera, sistem mendeteksi wajah dan mencocokkannya dengan database. Proses ini berlangsung cepat tanpa perlu koneksi internet atau server besar.

2. Sistem Keamanan Kamera

LBPH dapat digunakan untuk mendeteksi wajah yang dikenali dan memicu alarm jika wajah tidak dikenal muncul.

3. Implementasi pada Raspberry Pi

Karena ringan, LBPH cocok dijalankan pada Raspberry Pi untuk proyek IoT atau embedded system berbasis computer vision.

Kasus-kasus ini menunjukkan bahwa meskipun bukan teknologi terbaru, LBPH tetap relevan dalam implementasi nyata.

Tips Optimasi LBPH untuk Akurasi Maksimal

Akurasi LBPH sangat bergantung pada kualitas data dan preprocessing. Berikut beberapa strategi optimasi:

  1. Normalisasi Pencahayaan
    Gunakan histogram equalization untuk menstabilkan intensitas cahaya.
  2. Perbanyak Variasi Dataset
    Ambil gambar dengan berbagai ekspresi dan sudut ringan agar model lebih robust.
  3. Gunakan Resolusi Konsisten
    Pastikan semua gambar training memiliki ukuran yang sama.
  4. Eksperimen Parameter Grid dan Radius
    Kombinasi parameter yang tepat bisa meningkatkan performa secara signifikan.

Pendekatan eksperimental sangat disarankan, terutama dalam konteks penelitian akademik.

Kesimpulan

Pada pembahasan kita di atas dapat kita simpulkan bahwa Local Binary Pattern Histogram adalah metode ekstraksi fitur berbasis tekstur yang sederhana namun efektif dalam berbagai aplikasi computer vision, khususnya face recognition. Dengan pendekatan perbandingan piksel lokal dan pembentukan histogram distribusi, LBPH mampu mengubah citra wajah menjadi representasi numerik yang dapat dibandingkan secara matematis.

Keunggulan utama LBPH terletak pada efisiensi komputasi, kemudahan implementasi, serta kemampuannya berjalan pada perangkat dengan spesifikasi rendah. Inilah alasan mengapa metode ini masih sering digunakan dalam proyek akademik, penelitian awal, hingga sistem embedded berbasis kamera.

Namun, penting juga memahami keterbatasannya. Dalam skenario kompleks dengan variasi pencahayaan ekstrem dan dataset besar, metode berbasis deep learning memang lebih unggul. Oleh karena itu, pemilihan LBPH harus disesuaikan dengan kebutuhan sistem, resource yang tersedia, dan target akurasi yang diinginkan.

Artikel ini merupakan bagian dari seri artikel belajar Kecerdasan Buatan dan jika ada ide topik yang mau kami bahas silahkan komen di bawah ya..

Write a Comment

Leave a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨