Pahalı bir 2D Fonksiyonunun İzolini İzleyin


10

Birkaç önemli farklılıklar ile bu yazı formülasyon benzer bir sorun var:

Bir 2B işlevini uyarlanabilir şekilde örneklemek için hangi basit yöntemler vardır?

Bu yazıdaki gibi:

  • Bir ve bu fonksiyonun değerlendirilmesi hesaplamak biraz pahalıf(x,y)

Bu yazının aksine:

  • Her yerde fonksiyonun değeriyle değil, sadece fonksiyonun tek bir isocontourunu bulmakla ilgileniyorum.

  • Fonksiyonun otokorelasyonu ve sonuç olarak pürüzsüzlük ölçeği hakkında önemli iddialarda bulunabilirim.

Bu işlevi atlamanın / örneklemenin ve bu konturu bulmanın akıllı bir yolu var mı?

Daha fazla bilgi

İşlev, Haralick Özelliklerinin noktayı çevreleyen piksel üzerinde hesaplanması ve bir tür sınıflandırıcı / regresör ile yumuşak sınıflandırmadır. Bunun çıktısı, noktanın hangi dokuya / malzemeye ait olduğunu gösteren bir kayan nokta sayısıdır. Bu sayının ölçeklendirilmesi, tahmini sınıf olasılıkları (SoftSVM veya istatistiksel yöntemler vb.) Veya doğrusal / lojistik regresyonun çıktısı gibi gerçekten basit bir şey olabilir. Sınıflandırma / regresyon, görüntüden özellik çıkarılması için harcanan süreye kıyasla doğru ve ucuzdur.N

çevreleyen istatistikler , pencerenin tipik olarak üst üste binen bölgeleri örneklediği anlamına gelir ve bu nedenle yakındaki örnekler arasında önemli bir korelasyon vardır . (Sayısal / sembolik olarak bile yaklaşabileceğim bir şey) Sonuç olarak, bu, daha büyük N'nin mahalle (yüksek derecede korelasyonlu) ile daha fazla ilgili bir tahmin vereceği f ( x , y , N ) 'nin daha karmaşık bir işlevi olarak düşünülebilir ve daha küçük N daha değişken ancak daha yerel bir tahmin verecektir. Nf(x,y,N)NN

Denediğim Şeyler:

  • Brute Computation - İyi çalışıyor. Sabit ile% 95 doğru segmentasyon . Bundan sonra herhangi bir standart yöntem kullanılarak konturlandığında sonuçlar harika görünüyor. Bu sonsuza kadar sürer . Örnek başına hesaplanan özellikleri sadeleştirebilirim, ama ideal olarak, farklılıkları özellik alanının farklı bölümlerinde görünen dokulara sahip görüntülerde bu kodu genel tutmak için bundan kaçınmak istiyorum. N

  • Aptal Adım - Her yönde tek bir piksel "adımı" alın ve izo-çizgi değerine olan yakınlığa göre hareket etmek için yönü seçin. Hala oldukça yavaş ve bir isoline çatallanma görmezden gelecektir. Ayrıca, düz bir gradyanı olan alanlarda "gezer" veya kendi başına iki katına çıkar.

İlk bağlantıda önerilen altbölüm gibi bir şey yapmak istediğimi düşünüyorum, ancak ilgilenilen isoline bağlayan kutular için budanmış. de yararlanabilmeliyim gibi hissediyorum , ama buna nasıl yaklaşacağımdan emin değilim. N


Tam olarak aynı problemim var, ancak konturlamak istediğim bir olasılık fonksiyonu ve pahalı çünkü her noktada bir minimizasyon yapmam gerekiyor. Herhangi bir ilerleme kaydettiniz mi ve / veya nihayetinde bununla ilgili nasıl ilerlediğinizi gösterebilir misiniz?
adavid

Yakınsadığım çözümü kontrol ettim. (aşağıya bakınız)
meawoppl

Yanıtlar:


4

Bilgisayar grafiklerinde , belirli bir çizgi segmenti ile bir isoline ait tüm kesişim noktalarını belirleyen bir kehanet sağlamanıza güvenen, İyi Yüzey Örnekleme ve Meshleme adı verilen bir kağıt var . Bununla birlikte, bir yerel özellik ölçeği (maksimum yerel eğrilik gibi bir şey) ve tüm konturlarla kesişen ilk çizgi segmenti kümesi sağlayabileceğinizi varsayarak tüm konturları örnekler. Delaunay üçgenlemlerini hesaplamaya dayalı olduğu için uygulanması en basit şey değil, ancak CGAL'de 3D olarak uygulandı . Üçgen gibi iyi bir üçgenleme yazılımı bulunduğundan , 2D'de oldukça basittir . Bir anlamda, bu yapabileceğinizin en iyisine oldukça yakın.


Bu formülasyonu gerçekten de mantıklı bir şekilde 3D'ye oldukça temiz bir şekilde genişlettiği için seviyorum. Bunu Python'da formüle etmek zorundayım, bu yüzden zaten qhull'ın Delauny ambalajına erişebiliyorum, bu yüzden büyük bir sorun değil. Bakalım bu özeti doğru alıp alamayacağım: - Tohum için biraz örnekleme yapın. - Örnekleri üçgenleyin. - Bazı uzunlukların üzerinde izolini kapsayan tüm kenarlar için: kenar ile izolinin kesişimlerini hesaplayın - tüm numunelere hesaplanır ve nirengi adımından tekrarlanır mı?
meawoppl

@meawoppl: Bu algoritmayı kişisel olarak uygulamadım veya kullanmadım (henüz!) ama kulağa doğru geliyor.
Victor Liu

Bunu bugün silip bazı sonuçlar yayınlayacağım!
meawoppl

Gecikme için üzgünüm. Bu yöntem veri kümem için gerçekten iyi çalışıyor. Temel olarak, başlamak için örneklemek için düzenli bir kafes tohum, sonra üçgen, izo-kontur, kenarları tekrar tekrar kenarları alt bölümlere ayırın. "En iyi özellik" gereksinimini ifade etmek biraz zordur ve rastgele bir başlangıç ​​örneklemesine değer vardır, çünkü diyagonal bir isoline, örneklemenin kiracılıklarını takip eden birinden biraz daha uzun sürer. En fazla 5 geçiş almasına izin verdim ve bu gerçekten basit bir durdurma kriteri olarak çalıştı. Wooo> 1K
meawoppl

1

Verimli Global Güvenilirlik Analizi (EGRA) yönteminin temel özelliklerini uygulamayı deneyebilirsiniz. Bu yöntem, bir başarısızlık olasılığının etkili bir şekilde hesaplanması için türetilmiştir, ancak bunun cesaretleri, tanımladığınız şeyi yapmaya odaklanmıştır - sadece belirli bir ilgi konturuna yakın doğru bir model oluşturmak.

Bu ilginç bir başlangıç ​​noktası olabilir, ancak sorununuzu çözeceğinden emin değilim. Bu çok işlevinizin şekline bağlıdır. Bir kriging modeli ile iyi bir şekilde yakınlaştırılabilecek bir şeyse , o zaman iyi performans göstermelidir. Bu modeller oldukça esnektir, ancak genellikle düzgün bir temel fonksiyona ihtiyaç duyarlar. Geçmişte bir görüntü segmentasyon uygulamasına EGRA uygulamayı denedim, ancak çok az başarı elde ettim, çünkü gerçekten fonksiyonel bir ilişki tarafından tanımlanmamış bir şeye bir vekil model sığdırmak mantıklı değil. Yine de, başvurunuzun öngördüğümden farklı olması durumunda bakmak isteyebileceğiniz bir şey olarak belirtiyorum.

Sizi bundan bahsetmediysem, EGRA hakkında burada (PDF bağlantısı) ve burada daha fazla bilgi edinebilirsiniz ve Sandia'nın DAKOTA projesinde mevcut bir uygulama var - bence EGRA'nın mevcut tek açık kaynak uygulaması.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.