Klasifikasi Tekstur melalui DCT

12

Seberapa layak untuk mengklasifikasikan tekstur gambar menggunakan fitur dari transformasi cosinus diskrit? Googling "tekstur klasifikasi dct" hanya menemukan satu makalah akademis tentang topik ini, menggunakan jaringan saraf.

Untuk aplikasi saya, saya memiliki kumpulan besar gambar berlabel, di mana seluruh gambar adalah tekstur yang konsisten (misalnya foto close-up selimut, kulit pohon, bidang berumput, dll).

Terinspirasi oleh jawaban atas pertanyaan sebelumnya , saya mempertimbangkan pendekatan berikut:

  1. pisahkan setiap gambar menjadi blok NxN piksel
  2. ambil DCT dari setiap blok
  3. ratakan setiap DCT ke dalam array 1xM dan berikan ke algoritma pengelompokan K-Means, dan dapatkan label klaster untuk setiap DCT
  4. menghitung histogram label pengelompokan untuk setiap gambar dengan menghitung setiap label per gambar dari # 3
  5. latih classifier SVM dengan mengumpankannya satu set [(histogram, label gambar)]

Seberapa baik ini bekerja? Saya menerapkan sistem yang sama, menggunakan fitur yang diekstrak melalui algoritma SIFT / SURF, tetapi saya hanya bisa mendapatkan akurasi sekitar 60%.

Dengan cara lain apa saya bisa menggunakan DCT untuk mengklasifikasikan tekstur?

Cerin
sumber
1
Ini hampir terdengar seperti tugas jaringan saraf yang harus saya lakukan untuk ml-class.org
Ivo Flipse
2
@IvoFlipse: +1 untuk ml-class.org. Namun, pertanyaan ini adalah tentang fitur. Pada akhirnya, jika fitur Anda tidak sesuai untuk masalah tersebut, tidak masalah seberapa bagus algoritma klasifikasi Anda.
Dima
filter bank Gabor mungkin sangat berguna untuk klasifikasi teks.
mrgloom

Jawaban:

6

Sejauh ini apa yang Anda usulkan terdengar seperti pendekatan yang masuk akal. Namun, saya tidak berpikir Anda akan tahu seberapa baik kerjanya sampai Anda mencobanya, sama seperti Anda telah mencoba SIFT.

Saya punya pertanyaan. Mengapa Anda membatasi diri ke DCT? Ada banyak representasi yang telah digunakan untuk klasifikasi tekstur: matriks kejadian bersama, pola biner lokal, dll. Fakta bahwa Anda hanya menemukan satu kertas tentang penggunaan DCT untuk klasifikasi tekstur akan menunjukkan bahwa ini bukan fitur yang paling umum digunakan. untuk masalah ini. Saya akan merekomendasikan Anda memperluas pencarian literatur Anda untuk melihat fitur apa yang telah digunakan orang, dan seberapa baik mereka telah bekerja.

Dima
sumber
4

Jika Anda tidak akan membagi gambar menjadi blok NxN tetapi sebaliknya menggunakan jendela geser - hitung DCT untuk blok yang berpusat pada setiap titik gambar, pada dasarnya akan menggunakan pendekatan wavelet. Gambar pemisahan Anda menjadi blok sama dengan menggunakan jendela geser dan gambar downsampling. Jadi pada dasarnya Anda menggunakan segmentasi tekstur wavelet bentuk tereduksi. Gabor wavelet digunakan sebagai pengganti DCT biasanya karena: ia memiliki lebih banyak parameter (skala + dan + arah) dan redaman halus (bukan tepi tajam jendela).

mirror2image
sumber
3

Salah satu daya tarik terbesar mengapa seseorang ingin melakukan segmentasi / klasifikasi tekstur berdasarkan DCT (atau aktivitas lainnya) adalah kenyataan bahwa sebagian besar gambar JPEG dan video MPEG sudah ada di DCT. Di sisi lain, secara umum diyakini bahwa pendekatan berbasis Gabor secara komputasi mahal.

Koefisien DCT MID untuk frekuensi tinggi dan atau frekuensi diagonal mencerminkan representasi yang baik dari variasi lokal dalam domain piksel.

Namun, semua ini mungkin tidak sebagus kedengarannya. Pertama, di sebagian besar standar blok DCT berukuran 8x8. Jadi implikasinya tersirat adalah bahwa jika adegan memiliki pola yang memiliki periodisitas 8 titik pixel, efek beresonansi ini akan terlihat dalam hal kemiripan dari koefisien yang sesuai dari blok-blok yang bersebelahan, ketika periodisitas berubah hubungan ini bervariasi.

Memahami perbedaan kritis antara blok murni DCT vs Gabor adalah bahwa Gabor memiliki skala. Jadi jika Anda mengubah "periodisitas" atau "kehalusan / kekasaran" dari tekstur, Gabor akan menemukannya ketika evaluasi tetap DCT @ ukuran blok 8x8 tidak akan cocok.

Namun, apa yang perlu disadari adalah membangun pola seperti itu dengan melihat beberapa blok bersama untuk mengevaluasi fenomena skala tersebut . Sebagai pendekatan dasar misalnya, tanyakan apakah saya akan memiliki blok ukuran 16x16 atau 32x32, apa yang akan menjadi pola yang dihasilkan dalam koefisien? Koefisien di lokasi masing-masing akan memiliki beberapa hubungan untuk dieksploitasi dan memungkinkan seseorang untuk menemukan skala tekstur yang sebenarnya.

Ini memang merupakan topik penelitian yang bagus untuk dikejar.

CATATAN: Bahkan MPEG7 (yang sangat dekat dengan komite yang membuat MPEG) - mereka mengusulkan fitur berbasis Gabor untuk tekstur daripada berbasis DCT.

Dipan Mehta
sumber