Ukuran statistik untuk jika suatu gambar terdiri dari wilayah terpisah yang terhubung secara spasial


14

Pertimbangkan dua gambar skala abu-abu ini:

sungai acak

Gambar pertama menunjukkan pola sungai yang berkelok-kelok. Gambar kedua menunjukkan noise acak.

Saya mencari ukuran statistik yang dapat saya gunakan untuk menentukan apakah ada kemungkinan gambar menunjukkan pola sungai.

Gambar sungai memiliki dua area: sungai = nilai tinggi dan di tempat lain = nilai rendah.

Hasilnya adalah histogramnya bimodal:

masukkan deskripsi gambar di sini

Oleh karena itu gambar dengan pola sungai harus memiliki varian yang tinggi.

Namun demikian gambar acak di atas:

River_var = 0.0269, Random_var = 0.0310

Di sisi lain gambar acak memiliki kontinuitas spasial yang rendah, sedangkan citra sungai memiliki kontinuitas spasial yang tinggi, yang jelas ditunjukkan dalam variogram eksperimental: masukkan deskripsi gambar di sini

Dengan cara yang sama bahwa varians "meringkas" histogram dalam satu angka, saya mencari ukuran kontiuitas spasial yang "merangkum" variogram eksperimental.

Saya ingin ukuran ini "menghukum" semivarian tinggi dengan kelambatan kecil lebih sulit daripada kelambatan besar, jadi saya telah menghasilkan:

 svSebuahr=h=1nγ(h)/h2

Jika saya hanya menambahkan dari lag = 1 hingga 15 saya mendapatkan:

River_svar = 0.0228, Random_svar = 0.0488

Saya pikir gambar sungai harus memiliki varians tinggi, tetapi varians spasial rendah jadi saya memperkenalkan rasio varians:

 rSebuahtsayaHai=vSebuahr/svSebuahr

Hasilnya adalah:

River_ratio = 1.1816, Random_ratio = 0.6337

Ide saya adalah menggunakan rasio ini sebagai kriteria keputusan untuk apakah suatu gambar adalah citra sungai atau bukan; rasio tinggi (mis.> 1) = sungai.

Adakah ide tentang bagaimana saya dapat meningkatkan banyak hal?

Terima kasih sebelumnya atas jawaban apa pun!

EDIT: Mengikuti saran dari whuber dan Gschneider berikut adalah Moran I dari dua gambar yang dihitung dengan matriks bobot jarak invers 15x15 menggunakan fungsi Matlab Felix Hebeler :

River_M Random_M

Saya perlu merangkum hasilnya menjadi satu angka untuk setiap gambar. Menurut wikipedia: "Nilai berkisar dari −1 (menunjukkan dispersi sempurna) hingga +1 (korelasi sempurna). Nilai nol menunjukkan pola spasial acak." Jika saya jumlah kuadrat dari Morans saya untuk semua piksel saya dapatkan:

River_sumSqM = 654.9283, Random_sumSqM = 50.0785 

Ada perbedaan besar di sini sehingga Morans saya tampaknya menjadi ukuran kontinuitas ruang yang sangat baik :-).

Dan di sini adalah histogram dari nilai ini untuk 20.000 permutasi gambar sungai: histogram permuasi

Jelas nilai River_sumSqM (654.9283) tidak mungkin dan gambar River karenanya tidak spasial acak.


4
Pertanyaan menarik. Salah satu nasihat yang langsung terlintas dalam pikiran adalah untuk fokus pada bagian jangka pendek dari variogram: itu adalah bagian penting dan akan melakukan pekerjaan terbaik membedakan pasangan gambar seperti ini. (Statistik yang terkait erat adalah Moran's I dan Geary's C. ) Namun, sulit untuk memberikan saran khusus, kecuali Anda dapat lebih jelas mengkarakterisasi jenis gambar yang Anda antisipasi untuk diproses.
whuber

2
+1 whuber, Moran's sepertinya awal yang bagus dalam kasus ini. Maka mungkin pertimbangkan tes permutasi untuk melihat seberapa "ekstrim" gambar Anda.
Gschneider

@ Gschneider Tes permutasi adalah ide yang bagus, terutama karena tidak ada permutasi yang perlu dilakukan! Sangat mudah untuk menghitung distribusi variogram (atau Moran's I atau Geary's C atau apa pun) di bawah permutasi dari nilai-nilai dalam gambar: ada begitu banyak nilai yang diterapkan CLT. (Misalnya, variogram akan terlihat seperti titik hijau; dua kali tinggi konstannya adalah varians dari nilai gambar.) Masalahnya menjadi lebih menantang ketika pola "sungai" perlu dibedakan dari pola lain seperti "danau" atau "Sungai" dapat memiliki lebar yang sangat bervariasi.
whuber

Maaf tapi saya tidak yakin saya mengikuti: apakah Anda memberitahu saya untuk mengubah gambar yang diuji pixel per pixel secara acak dan kemudian membandingkan nilai Moran saya dari gambar yang diijinkan dengan gambar yang sedang diuji?
Andy

Apa yang ada dalam pikiran saya adalah pertama mendefinisikan beberapa jenis struktur lingkungan (mungkin sederhana) dan menghitung I. Moran. Kemudian Anda dapat menghitung K, katakanlah 200.000, kemungkinan permutasi piksel, menghitung Moran's I untuk setiap permutasi. Setelah Anda mendapatkan 200.000 Moran's I ini, lihat di mana letak statistik yang Anda amati. Tapi, metode whuber terdengar lebih mudah :).
Gschneider

Jawaban:


1

Saya berpikir bahwa Gaussian blur bertindak sebagai filter low-pass meninggalkan struktur skala besar di belakang dan menghapus komponen bilangan gelombang tinggi.

Anda juga bisa melihat skala wavelet yang diperlukan untuk menghasilkan gambar. Jika semua informasi hidup dalam wavelet skala kecil maka kemungkinan bukan sungai.

Anda mungkin mempertimbangkan semacam korelasi otomatis satu garis sungai dengan dirinya sendiri. Jadi jika Anda mengambil deretan piksel sungai, bahkan dengan noise, dan menemukan fungsi korelasi silang dengan baris berikutnya, maka Anda berdua bisa menemukan lokasi dan nilai puncak. Nilai ini akan jauh lebih tinggi dari apa yang akan Anda dapatkan dengan noise acak. Kolom piksel tidak akan menghasilkan banyak sinyal kecuali Anda mengambil sesuatu dari wilayah di mana sungai itu berada.

http://en.wikipedia.org/wiki/Gaussian_blur

http://en.wikipedia.org/wiki/Cross-correlation


1
Beberapa ide menarik di sini! Bisakah saya membujuk Anda untuk menyempurnakan jawaban ini dengan menerapkan satu atau lebih pendekatan Anda pada gambar sampel untuk (1) menunjukkan bagaimana metode Anda bekerja dan (2) mengevaluasi seberapa baik kinerjanya?
whuber

1
Ini dari Tesis saya. (Teknik Mesin) Saya meletakkan Gaussian blur pada posisi pendulum nonlinier, dan kemudian menggunakan metode konvolusi untuk mundur posisi dari gambar dan membandingkannya dengan analitik. Saya mencobanya dengan beberapa tingkat kebisingan. Selama kebisingan di bawah ambang batas yang terkait dengan ukuran gaussian, ada rekonstruksi yang sangat baik. link Gambar 11 adalah grafik yang relevan untuk rekonstruksi. Gambar 6 dan persamaan 2 menunjukkan respons terhadap kebisingan.
EngrStudent

Terima kasih! Jadi sepertinya Anda berada dalam posisi yang bagus untuk menyempurnakan jawaban ini dan menunjukkan seberapa efektif itu sebenarnya. :-)
whuber

Maaf atas komentar ganda. Saya pikir itu "pintar" untuk menggunakan bagian dari suatu objek sebagai pseudo "mother-wavelet" untuk dirinya sendiri. Tampaknya referensial diri, tetapi juga puitis. Self Adjoint.
EngrStudent

1

Ini agak terlambat, tetapi saya tidak bisa menolak satu saran dan satu pengamatan.

Pertama, saya percaya pendekatan yang lebih "pemrosesan gambar" mungkin lebih cocok daripada analisis histogram / variogram. Saya akan mengatakan bahwa saran "smoothing" dari EngrStudent ada di jalur yang benar, tetapi bagian "blur" kontraproduktif. Apa yang dipanggil adalah pengawet tepi yang lebih halus, seperti filter Bilateral , atau filter median . Ini lebih canggih daripada filter rata-rata bergerak, karena mereka dengan kebutuhan nonlinier .

Ini demonstrasi dari apa yang saya maksud. Berikut adalah dua gambar yang mendekati dua skenario Anda, beserta histogramnya. (Gambar masing-masing 100 oleh 100, dengan intensitas dinormalisasi).

Gambar mentah gambar mentah

Untuk setiap gambar ini, saya kemudian menerapkan filter median 5 kali 5 kali *, yang menghaluskan polanya mempertahankan tepinya . Hasilnya ditunjukkan di bawah ini.

Gambar yang dihaluskan gambar dihaluskan

(* Menggunakan filter yang lebih besar akan tetap mempertahankan kontras yang tajam melintasi tepinya, tetapi akan memperlancar posisi mereka.)

Perhatikan bagaimana gambar "sungai" masih memiliki histogram bimodal, tetapi sekarang dipisahkan dengan baik menjadi 2 komponen *. Sementara itu, gambar "white noise" masih memiliki histogram unimodal komponen tunggal. (* Mudah di-threshold via, mis metode Otsu , untuk membuat topeng dan menyelesaikan segmentasi.)


xf[y]

(Maaf untuk kata-kata kasar ... pelatihan saya adalah sebagai ahli geomorfologi, awalnya)


Di samping catatan, itu umumnya ide yang baik untuk sangat berhati-hati dalam menerapkan "metode variogram" untuk gambar alami, yang biasanya tidak diam. Ini tersentuh dalam jawaban saya di sini .
GeoMatt22

0

Saran yang mungkin merupakan kemenangan cepat (atau mungkin tidak bekerja sama sekali, tetapi dapat dengan mudah dihilangkan) - sudahkah Anda mencoba melihat rasio rata-rata terhadap varian histogram intensitas gambar?

Ambil gambar derau acak. Dengan asumsi itu dihasilkan oleh foton yang dipancarkan secara acak (atau serupa) mengenai kamera, dan setiap piksel sama-sama mungkin terkena, dan bahwa Anda memiliki bacaan mentah (yaitu nilai-nilai tidak ditulis ulang, atau ditulis ulang dengan cara yang diketahui dapat Anda batalkan) , maka jumlah bacaan di setiap piksel harus didistribusikan poisson; Anda menghitung jumlah peristiwa (foton yang mengenai piksel) yang terjadi dalam periode waktu tetap (waktu bukaan) beberapa kali (melebihi semua piksel).

Jika ada sungai dengan dua nilai intensitas berbeda, Anda memiliki campuran dua distribusi poisson.

Cara yang sangat cepat untuk menguji suatu gambar mungkin dengan melihat rasio rata-rata terhadap varian intensitas. Untuk distribusi poisson rata-rata akan kira-kira sama dengan varians. Untuk campuran dua distribusi poisson, varians akan lebih besar dari rata-rata. Anda akan perlu menguji rasio keduanya terhadap beberapa ambang yang telah ditentukan sebelumnya.

Ini sangat kasar. Tetapi jika berhasil, Anda akan dapat menghitung statistik yang cukup yang diperlukan dengan hanya satu melewati setiap piksel pada gambar Anda :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.