Saya memiliki masalah yang mirip dalam perumusan dengan posting ini, dengan beberapa perbedaan penting:
Apa metode sederhana yang ada untuk pengambilan sampel fungsi 2D secara adaptif?
Seperti di pos itu:
- Saya memiliki dan evaluasi fungsi ini agak mahal untuk dihitung
Berbeda dengan di pos itu:
Saya tertarik bukan pada nilai fungsi secara akurat di mana-mana, tetapi hanya menemukan satu isocontour fungsi.
Saya dapat membuat pernyataan signifikan tentang autokorelasi fungsi, dan akibatnya skala kelancaran.
Apakah ada cara cerdas untuk menyusuri / mencicipi fungsi ini dan menemukan kontur ini?
Informasi Lebih Lanjut
Fungsinya adalah penghitungan Fitur Haralick di atas piksel di sekitar titik, dan klasifikasi lunak oleh semacam classifier / regressor. Output dari ini adalah angka floating point yang menunjukkan tekstur / material yang dimiliki titik tersebut. Penskalaan angka ini dapat diperkirakan probabilitas kelas (SoftSVM atau metode statistik, dll) atau sesuatu yang sangat sederhana seperti output dari regresi linier / logistik. Klasifikasi / regresi akurat dan murah dibandingkan dengan waktu yang dibutuhkan untuk ekstraksi fitur dari gambar.
Statistik di sekitar berarti bahwa jendela tersebut biasanya mengambil sampel daerah yang tumpang tindih, dan dengan demikian ada korelasi yang signifikan antara sampel terdekat. (Sesuatu yang saya dapat mendekati secara numerik / simbolis) Akibatnya, ini dapat dianggap sebagai fungsi yang lebih kompleks dari mana lebih besar akan memberikan perkiraan yang lebih terkait dengan lingkungan (berkorelasi tinggi), dan semakin kecil akan memberikan lebih banyak variabel, tetapi lebih banyak perkiraan lokal.
Hal yang Saya Coba:
Komputasi Brute - Berfungsi dengan baik. 95% segmentasi yang benar dengan konstan . Hasilnya terlihat fantastis ketika berkontur menggunakan metode standar apa pun setelah itu. Ini berlangsung selamanya . Saya dapat menyederhanakan fitur yang dihitung berdasarkan per sampel, tetapi idealnya saya ingin menghindari ini untuk menjaga kode ini umum untuk gambar dengan tekstur yang perbedaannya muncul di berbagai bagian ruang fitur.
Dumb Stepping - Ambil "langkah" piksel tunggal di setiap arah dan pilih arah untuk bergerak berdasarkan kedekatan dengan nilai garis iso. Masih cukup lambat, dan itu akan mengabaikan bifurkasi isoline. Juga, di daerah dengan gradien datar itu akan "berkeliaran" atau menggandakan diri.
Saya pikir saya ingin melakukan sesuatu seperti subdivison yang diusulkan pada tautan pertama, tetapi dipangkas untuk kotak-kotak yang mengikat isoline of interest. Saya merasa saya harus dapat memanfaatkan juga, tetapi saya tidak yakin bagaimana cara mendekati itu.
sumber
Jawaban:
Ada sebuah kertas dalam grafik komputer yang disebut Sampling Terbukti Baik dan Penyatuan Permukaan , yang bergantung pada Anda memberikan ramalan yang menentukan semua persimpangan isolin dengan segmen garis tertentu. Dengan itu, sampel semua kontur dengan asumsi Anda dapat memberikan skala fitur lokal (sesuatu seperti lengkungan lokal maksimum), dan set awal segmen garis yang memotong semua kontur. Ini bukan hal yang paling sederhana untuk diterapkan, karena bergantung pada komputasi triangulasi Delaunay, tetapi diimplementasikan dalam 3D di CGAL . Ini jauh lebih sederhana dalam 2D, karena perangkat lunak triangulasi yang bagus seperti Triangle ada. Dalam beberapa hal, ini cukup dekat dengan yang terbaik yang dapat Anda lakukan.
sumber
Anda dapat mencoba menerapkan fitur-fitur inti dari metode Efficiency Global Reliability Analysis (EGRA). Metode ini diturunkan untuk perhitungan yang efisien dari kemungkinan kegagalan, tetapi keberaniannya difokuskan pada melakukan apa yang Anda gambarkan - menciptakan model yang akurat hanya di dekat kontur minat tertentu.
Ini mungkin titik awal yang menarik, tapi saya tidak yakin itu akan menyelesaikan masalah Anda. Itu sangat tergantung pada bentuk fungsi Anda. Jika itu adalah sesuatu yang dapat didekati dengan baik dengan model kriging , maka itu harus berkinerja baik. Model-model ini cukup fleksibel, tetapi umumnya membutuhkan fungsi dasar yang halus. Saya telah mencoba menerapkan EGRA ke aplikasi segmentasi gambar di masa lalu, tetapi sedikit berhasil karena itu tidak masuk akal untuk menyesuaikan model pengganti dengan sesuatu yang tidak benar-benar ditentukan oleh hubungan fungsional. Namun, saya menyebutkannya sebagai sesuatu yang Anda mungkin ingin melihat jika aplikasi Anda berbeda dari yang saya bayangkan.
Jika saya belum membicarakannya, Anda dapat membaca lebih lanjut tentang EGRA di sini (tautan PDF) dan di sini , dan ada implementasi yang ada dalam proyek DAKOTA Sandia - sepengetahuan saya, satu-satunya implementasi open-source EGRA yang tersedia.
sumber