Apa Keterbatasan Detektor Tepi Canny?

18

Sebagian besar literatur tentang algoritma deteksi tepi dan aplikasi yang menggunakan deteksi tepi, referensi detektor tepi Canny. Sedemikian rupa sehingga hampir seperti "solusi" untuk deteksi tepi. Tentu saja, itu akan melakukan pekerjaan yang terbaik menyeimbangkan kebisingan dan menjaga ujung-ujungnya.

Namun, sebagai rasa ingin tahu yang sederhana, adakah area yang menjadi perhatian bagi detektor tepi Canny? atau apakah ada area aplikasi di mana Canny tidak akan menjadi yang terbaik?

Dalam konteks ini, implementasi yang lebih cepat tidak terlalu diperhatikan. Fokus dari edge detector baik atau buruk haruslah kualitas dan utilitas edge yang dihasilkan.

Juga, saya benar-benar tidak fokus pada implementasi isu-isu spesifik. Saya mencari lebih banyak keterbatasan teoretis atau karakteristik yang melekat dalam algoritma.

Dipan Mehta
sumber
Menariknya pertanyaan ini di sini Cara terbaik untuk membagi pembuluh darah ke daun? deteksi tepi yang dibutuhkan. Salah satu hasil yang ditampilkan adalah Canny dan tidak terlihat terlalu bagus. Padahal, banyak aspek bisa menjadi masalah implementasi vs itu bisa menjadi keterbatasan Canny! Adakah yang melihatnya?
Dipan Mehta
Silakan lihat jawaban saya ( dsp.stackexchange.com/questions/1714/… ), itu menunjukkan hasil yang lebih baik daripada apa yang dia dapatkan dari Canny.
Geerten
Kemungkinan penipuan (sebagian): dsp.stackexchange.com/questions/74/… (atau paling tidak terkait). Pertanyaannya sendiri hampir sama (sebagian), jawabannya agak berbeda dari jawaban pada pertanyaan ini.
Geerten
1
@DipanMehta: Jadi detektor tepi Canny seharusnya tidak digunakan untuk mendeteksi hal-hal yang bukan tepi? :)
endolith

Jawaban:

19

Dari pengalaman saya, poin-poin berikut adalah batasan:

  • Hasilnya adalah biner. Anda kadang-kadang memerlukan ukuran 'berapa' tepi memenuhi syarat sebagai tepi (misalnya gambar intensitas yang berasal dari detektor tepi amplitudo Sobel)
  • Jumlah parameter mengarah pada penyesuaian tak terhingga untuk mendapatkan hasil yang sedikit lebih baik.
  • Anda masih perlu menghubungkan tepi yang dihasilkan untuk mengekstrak tepi lengkap yang tampak begitu jelas untuk mata + pikiran manusia.
  • Juga karena pemulusan gaussian: lokasi tepi mungkin tidak aktif, tergantung pada ukuran kernel gaussian.

  • Metode ini memiliki masalah dengan sudut dan persimpangan:

    • Gaussian smoothing mengaburkan mereka, membuat mereka lebih sulit untuk dideteksi (hal yang sama juga berlaku untuk bagian tepi)
    • Pixel sudut terlihat ke arah yang salah untuk tetangganya, meninggalkan tepi ujung terbuka, dan persimpangan yang hilang

Masalah terakhir ini diatasi dengan metode SUSAN , yang menghubungkan ujung-ujungnya lebih baik dan juga menghasilkan persimpangan yang bagus, seperti yang ditunjukkan oleh contoh-contoh contoh seperti yang diberikan di kertas terkait:

Uji input gambar:

Uji input gambar

Hasil SUSAN:

Hasil SUSAN

Hasil Canny:

Hasil Canny

Anda dapat dengan jelas melihat SUSAN menemukan sudut dan persimpangan bukan Canny.

Geerten
sumber
Ok, apa yang Anda maksud sebagian besar adalah masalah terkait implementasi. Saya setuju masalah seperti itu mungkin ada, tetapi menurut saya banyak deteksi tepi dan algoritma lainnya. Saya mencari lebih banyak keterbatasan teoretis atau karakteristik yang melekat dalam algoritma.
Dipan Mehta
Saya tidak setuju, thresholding (mengarah ke gambar biner), dan parameternya adalah bagian dari metode (seperti yang dijelaskan dalam makalah Canny). Saya tidak melihat ini sebagai detail implementasi.
Geerten
Ambang dilakukan oleh setiap detektor tepi dan karenanya output dari setiap detektor tepi adalah biner. Saya akan mengambil poin Anda tentang kesulitan dalam mengubah parameter dan aspek smoothing Gaussian tetapi tidak seperti jenis operator LoG, Canny benar-benar menemukan jumlah smoothing yang paling optimal dengan adanya noise.
Dipan Mehta
2
Ambang tidak dilakukan oleh setiap detektor tepi (misalnya Sobel, seperti yang disebutkan dalam jawaban saya). Ini adalah langkah tindak lanjut yang umum dan logis dalam banyak kasus, tetapi bukan langkah dasar dari setiap metode deteksi tepi.
Geerten
6

atau apakah ada area aplikasi di mana Canny tidak akan menjadi yang terbaik?

Saya dapat memikirkan beberapa hal:

  • jika Anda membutuhkan kurva tertutup, detektor yang dapat menjamin itu mungkin lebih baik (mis. nol penyeberangan segmentasi laplacian atau daerah aliran sungai)
  • jika Anda mencoba mendeteksi objek yang homogen dengan kontras rendah di beberapa area, metode segmentasi yang menggunakan informasi global (seperti segmentasi daerah aliran sungai) dapat memberikan hasil yang lebih baik
Niki Estner
sumber
1

dalam pengalaman saya proses deteksi tepi dengan detektor tepi cerdik menghaluskan tepi sebelum dapat mendeteksi mereka dan waktu dan panjang filter harus cocok untuk mendeteksi semua tepi tanpa kesalahan.

bugra ergin
sumber
1

Saya hanya ingin menyebutkan satu batasan detektor Canny, yang menghalangi aplikasinya, dan itu adalah pengaturan parameter. Saya pikir pengaturan parameter tidak hanya masalah untuk detektor Canny tetapi juga masalah untuk metode deteksi tepi lainnya.

merasa bebas
sumber