Apakah menyaring cara yang baik untuk mengekstrak fitur dari suatu gambar?

13

Saya mencoba mengekstraksi fitur dari suatu gambar, tetapi saya gagal mendapatkan poin yang ingin saya ekstrak, dan karenanya gambar saya gagal cocok dengan templat.

Apakah ada pos pemeriksaan yang harus saya lalui sebelum menerapkan SIFT ke gambar saya sehingga saya mendapatkan hasil yang baik? Misalnya gambar template adalah;
masukkan deskripsi gambar di sini

gambar yang ditargetkan; masukkan deskripsi gambar di sini

KT Harris
sumber
1
Tergantung pada jenis gambar dan untuk apa Anda ingin menggunakan fitur-fiturnya. Tolong info lebih lanjut.

Jawaban:

14

Apa yang seharusnya Anda lakukan ketika mencocokkan templat dengan gambar menggunakan sift adalah menjalankan saringan terhadap templat Anda dan kemudian mencari fitur-fitur penyaringan tersebut dalam pengaturan dalam adegan Anda.

Rule of thumb: Bandingkan suka suka.

Ayak (Templat) Terkandung Dalam Ayak (Gambar)

Anda tidak dapat menyetel Sift untuk mengekstrak "fitur yang Anda inginkan" Sift * menggunakan langkah-langkah invarian untuk menemukan fitur yang menurutnya paling menonjol. (* Chris A)

Jika Anda ingin menemukan fitur tertentu dari templat Anda, buat templat yang lebih kecil dari fitur-fitur tersebut dan cari.

Hanya sebuah saran. Saya tidak tahu persis jenis template apa yang Anda coba cocok dengan jenis adegan atau gambar.

Totero
sumber
7
+1, saya setuju. Kecuali satu hal. SIFT tidak menemukan fitur yang paling invarian. Ia menggunakan langkah-langkah invarian untuk menemukan fitur yang diyakini paling menonjol.
7

Saya tidak yakin apakah Anda hanya ingin mencocokkan dua gambar (mis. Menemukan titik-titik umum), atau Anda ingin mencoba sesuatu seperti CBIR (Pengambilan gambar berbasis konten - mencari basis data dengan gambar templat untuk menemukan semua yang mengandung obyek).

Saat ini saya sedang melakukan penelitian CBIR, jadi saya cukup up-to-date dengan metode saat ini. Di sini dan di sini adalah tautan ke jawaban saya untuk masalah yang serupa dengan Anda dari stackoverflow, Anda harus melihatnya.

Sekarang, untuk berbicara tentang SIFT sedikit. Ketika jika pertama kali diperkenalkan oleh Lowe, istilah SIFT diterapkan baik untuk proses deteksi fitur maupun deskriptor fitur yang dihitung pada poin minat yang terdeteksi. Hingga hari ini, deskriptor SIFT telah terbukti sangat luar biasa. Deskriptor memiliki beberapa properti keren yang @Totero telah sebutkan.

Metode deteksi SIFT , di sisi lain, yang saat ini lebih dan lebih disebut sebagai DoG (Perbedaan Gaussians), tidak lagi mutakhir. Ini masih banyak digunakan, tetapi untuk proses pendeteksian fitur, ada lebih banyak metode saat ini, beberapa di antaranya lebih baik atau lebih baik melengkapi jenis-jenis keypoint ekstrak proses DoG yang invarian.

Sebagian besar makalah saat ini (lihat tautan dalam pertanyaan stackoverflow) memiliki satu praktik lagi yang bagus: mereka menggabungkan beberapa cara mendeteksi fitur, dan kemudian menggunakan deskriptor SIFT (yang masih bergejolak sebagai deskriptor) untuk menghitung representasi vektor invarian. Saat ini saya sedang bekerja dengan kombinasi DoG (mereka fokus pada bagian-bagian gambar seperti sudut) dan wilayah MSER (mereka fokus pada titik-titik berbeda seperti gumpalan melalui beberapa skala). Anda mungkin ingin mencoba dan bereksperimen dan melempar lebih banyak lagi fitur pendeteksi di sana, jika Anda menemukan kombinasi ini tidak memuaskan pada basis data gambar khusus Anda.

Juga, jika Anda tertarik, berikut adalah makalah yang mengevaluasi dalm kombinasi deteksi dan deskriptor yang berbeda. Saya belum membacanya sejak DoG & MSER + SIFT berfungsi dengan baik untuk saya, tetapi saya telah membaca skimnya dan makalahnya cukup bagus.

PS: gunakan google scholar jika Anda tidak memiliki akses ke database IEEEXplore yang saya tautkan.

Penelope
sumber
hanya klarifikasi kecil: DoG adalah singkatan dari Perbedaan Gaussian (perbedaan antara dua respons filter gaussian)
Libor
2

Membangun tanggapan sebelumnya:

(1) Anda dapat menggunakan SIFT (atau varian lain yang ditingkatkan dari deskriptor tambalan lokal ini) dengan sampling padat, alih-alih detektor internal. Anda dapat memilih ukuran tambalan lokal dan kepadatan sampel untuk memenuhi kebutuhan kinerja dan biaya komputasi Anda.

(2) SIFT adalah deskriptor affine invarian untuk pencocokan stereo baseline lebar. Ini berarti bahwa SIFT bekerja dengan baik ketika Anda mengambil gambar dan menginduksi transformasi affine, di mana 'template' harus ada di gambar target meskipun dengan transformasi.

Saran: (a) Buat database gambar templat (jika memungkinkan) untuk meningkatkan peluang Anda mendeteksi gambar.

(B) Anda dapat menggunakan model BoW sebagai baseline jika Anda memilih untuk mengadopsi pendekatan CBIR untuk tugas Anda.

(c) Pangkas gambar template Anda hanya ke bagian yang relevan dan gunakan SIFT yang sangat padat. http://www.vlfeat.org/overview/dsift.html

(4) Kemudian Anda mungkin ingin mencoba deskriptor skala-mutli seperti PHOG (Pyramidal Histogram of Gradients), dll. Yang berpotensi meningkatkan hasil. http://www.vlfeat.org/overview/dsift.html#tut.dsift.phow

Stardust dinamis
sumber