Metrik yang baik untuk membandingkan patch gambar secara kualitatif

11

Saya mencoba untuk "mencocokkan" patch persegi kecil dalam sebuah gambar. Sekilas, tampaknya masuk akal untuk melakukan perbandingan gaya jarak Euclidean dari dua array ini untuk mendapatkan ukuran "kesamaan". Ini berfungsi dengan baik dalam banyak kasus (tambalan "terbaik" (nilai terendah) menurut metrik ini sangat mirip dengan tambalan kueri). Namun, ada banyak kasus di mana ini menghasilkan pertandingan yang sangat buruk. Misalnya, ambil dua pasang tambalan ini:

Dua tambalan dinding bata, skor 134 (ini adalah jumlah komponen dari perbedaan piksel absolut rata-rata):

Patch Sumber Patch Target

Satu bidang tembok bata, satu bidang rumput, skor 123!

https://i.stack.imgur.com/d7lBZ.png https://i.stack.imgur.com/d2TBE.png

Untuk manusia, "jelas" rumput tidak cocok dengan batu bata, tetapi metrik ini mengatakan sebaliknya. Masalahnya hanya pada variasi statistik lokal.

Jika saya menggunakan sesuatu seperti perbandingan histogram, saya benar-benar kehilangan semua informasi spasial - misalnya jika tambalan adalah rumput di bagian atas dan bata di bagian bawah, itu akan cocok persis dengan tambalan dengan rumput di bagian bawah dan bata di bagian atas (lagi , pertandingan "jelas salah" lainnya).

Apakah ada metrik yang entah bagaimana menggabungkan kedua ide ini menjadi nilai wajar yang akan dievaluasi menjadi "mirip" untuk Pasangan 1 di atas, tetapi tidak juga serupa dengan contoh tambalan dan cermin vertikal?

Ada saran yang dihargai!

David Doria
sumber
1
Saat mengambil jumlah komponen, Anda kehilangan semua informasi "spasial" di ruang warna..Eevaluasi komponen secara individual, misalnya menghitung jarak Euclidean pada dua vektor?
Geerten

Jawaban:

2

Ide dasarnya adalah: Tidak ada yang salah dengan informasi warna - itu tidak cukup. Jadi yang terbaik adalah menggabungkan beberapa set fitur.

Anda dapat mencoba beberapa fitur untuk menyelesaikan ambiguitas ini. Sejauh menyangkut set fitur, Anda dapat menggunakan yang berikut:

  1. Warna (seperti warna dominan MPEG7 ) ATAU Warna Historgram
  2. Tekstur (baik dalam bentuk Filter bank response) ATAU
  3. Histogram tepi

Sebagai perbandingan utama, saya pertama-tama ingin membuat perbedaan antara patch bata murni vs patch rumput murni. Untuk ini, warna jelas merupakan elemen yang paling potensial.

Menggabungkan fitur untuk membuat klasifikasi lebih kuat

Saya akan menggunakan warna dominan (menggunakan tetapi bukan satu-satunya) atau warna kunci dan membentuk kelompok. Lihat di mana letak kepala kluster;

Jika kepala cluster keduanya berada dalam area yang diharapkan, kelas biasanya mudah dideteksi, jika mereka jatuh ke area abu-abu, maka kelas tersebut berada di sana. Jika jatuh di area abu-abu, fitur lain diperlukan.

Sameway, Anda dapat secara independen mengklasifikasikan menggunakan matriks Tekstur dan kemudian menggabungkan kedua skor untuk memastikan bahwa hasilnya masuk akal.

Menangani masalah spasial

Khususnya ketika Anda menyadari bahwa tambalan dapat memiliki bagian-bagiannya yang setengah bata dan setengah rumput. Saya pikir Anda tidak perlu lagi fitur tambahan atau matrik yang berbeda. Ini dapat ditangani dengan dua cara.

1. Simpan beberapa patch keanggotaan sebagai kelas yang berbeda. Misalnya, selain dari birck-onlykelas dan grass-onlykelas, Anda juga dapat memiliki half-brick-half-grass-verticaldan half-brick-half-grass-horizontaltotal empat kelas. Ini dapat dengan mudah diklasifikasikan menggunakan metode pengelompokan yang kita bahas sebelumnya.

2. Tambahkan klasifikasi multi skala Misalnya, mengingat tambalan berada di area abu-abu, Anda dapat membagi tambalan dua bagian yaitu kiri vs kanan. Cara yang sama Anda juga dapat membagi atas vs bawah. Sekarang Anda dapat menerapkan klasifikasi identik untuk "setengah bagian" ini. Idealnya fitur yang tercantum di atas harus memungkinkan Anda untuk membuat skalabel untuk membandingkan kesamaan fitur antara bagian penuh (misalnya warna dominan dapat sama terlepas dari ukurannya) atau Anda mungkin harus mengubah ukurannya.

Menambahkan lebih banyak kelas (seperti pada bagian 1) atau lebih banyak level (seperti pada bagian 2) akan langsung; batas atas akan datang oleh dua faktor - baik divisi tambahan tidak akan lagi menambah nilai klasifikasi atau kebisingan yang berlebihan akan menimbulkan ambiguitas dalam klasifikasi secara efektif. Di sinilah Anda berhenti.

Dipan Mehta
sumber
2

Untuk mulai dengan, 2 gambar dan 3 pengukuran tidak cukup tepat untuk memastikan segala jenis model statistik yang dalam hal dapat digunakan untuk menentukan metrik perbandingan optimal.

Saya pikir Anda bisa mulai melihat makalah pengenalan tekstur untuk metode dan petunjuk. Ini adalah bidang aktif.

Untuk apa nilainya, saya menjalankan beberapa fungsi hashing perceptual (DCT dan Random Projection based) tes dan melakukan percobaan kecil dengan deskriptor SIFT yang disebut. Fungsi-fungsi ini dapat memisahkan jarak antar dan antar kelas, meskipun dari 3 gambar tidak mungkin untuk menyimpulkan apa pun.

Kode di github .

Maurits
sumber