高価な2D関数の等値線をトレースする


10

私はこの投稿と同様の問題を抱えていますが、いくつかの顕著な違いがあります:

2D関数を適応的にサンプリングするための簡単な方法は何ですか?

その投稿のように:

  • 私はを持っており、この関数の評価は計算にいくらか費用がかかりますf(x,y)

その投稿とは異なり:

  • どこでも正確に関数の値に興味があるのではなく、関数の単一の等高線を見つけることにのみ興味があります。

  • 関数の自己相関、そしてその結果として滑らかさのスケールについて、私は重要な主張をすることができます。

この関数に沿ってステップ/サンプリングしてこの輪郭を見つけるインテリジェントな方法はありますか?

詳しくは

関数は、計算されHaralick特長上に分類器/回帰何らかのによってポイント、ソフト分類を囲むpixles。これの出力は、ポイントが属するテクスチャ/マテリアルを示す浮動小数点数です。この数値のスケーリングは、推定クラス確率(SoftSVMまたは統計手法など)または線形/ロジスティック回帰の出力のような非常に単純なものです。分類/回帰は、画像からの特徴抽出にかかる時間に比べて正確で安価です。N

を取り巻く統計は、ウィンドウが通常は重複領域をサンプリングしているため、近くのサンプル間に有意な相関があることを意味します。(私も象徴/数値的に近づくことができるもの)従って、これは、より複雑な機能と考えることができるより大きいより近傍に関連する推定値を与える(高度に相関する)、およびAが小さいほど、変数は大きくなりますが、より局所的な推定になります。 Nf(x,y,N)NN

私が試したこと:

  • ブルート計算-うまく機能します。定数 95%正しいセグメンテーション。その後、標準的な方法を使用して輪郭を描くと、結果は素晴らしいものになります。これには永遠にかかります。サンプルごとに計算された特徴を簡略化できますが、理想的にはこれを避けて、特徴空間の異なる部分に違いが現れるテクスチャのある画像にこのコードを一般的に維持します。 N

  • ダムステッピング-各方向に1ピクセルの「ステップ」を取り、等値線値への近さに基づいて移動する方向を選択します。それでもかなり低速で、等値線の分岐は無視されます。また、グラデーションがフラットな領域では、「さまよう」または2倍に戻ります。

私は最初のリンクで提案された細分割のようなことをしたいと思っていますが、関心のある等値線を囲むボックスを剪定しました。も活用できると思いますが、どうすればいいのかわかりません。 N


輪郭を描きたい尤度関数であることと、各点で最小化を実行する必要があるためにコストがかかることを除いて、まったく同じ問題があります。あなたは何か進歩を遂げましたか、そして/またはあなたは最終的にこれについてどのように進んだかを指摘できますか?
adavid

収束したソリューションを確認したところです。(下記参照)
meawoppl

回答:


4

コンピュータグラフィックスには、Provably Good Sampling and Meshing of Surfacesと呼ばれる論文があります。これは、特定の線分と等値線のすべての交差を決定するオラクルを提供することに依存しています。これにより、ローカルフィーチャスケール(最大ローカル曲率など)と、すべてのコンターと交差するラインセグメントの初期セットを提供できると想定して、すべてのコンターをサンプリングします。Delaunay三角形分割の計算に依存しているため、実装するのが最も簡単なことではありませんが、CGALの 3Dで実装されます。Triangleのような優れた三角測量ソフトウェアが存在するため、2Dでは大幅にシンプルになります。ある意味で、これはあなたができる最高のことにはかなり近いです。


この定式化も論理的に3dに拡張されているため、私は本当に気に入っています。これをPythonで定式化する必要があるので、すでにqhullのDelaunyラッピングにアクセスできるので、それは大きな問題ではありません。この要約が正しいかどうか見てみましょう:-シードするためにいくつかのサンプリングを行います。-サンプルを三角形分割します。-ある長さを超える等値線にまたがるすべてのエッジの場合:等値線とエッジの交差を計算します-計算されたすべてをサンプルにして、三角測量ステップから繰り返しますか?
meawoppl 2012年

@meawoppl:私はこのアルゴリズムを個人的に実装したり使用したりはしていません(まだ!)。
Victor Liu

今日はこれを整理して結果を投稿します!
meawoppl 2012年

遅れて申し訳ありません。この方法は、私のデータセットに対して非常にうまく機能します。基本的に、通常のメッシュをシードして最初からサンプリングしてから、三角形分割し、等高線を横切るエッジを繰り返します。「最も細かい機能」の要件を表現するのは少し難しいです。ランダムな初期サンプリングと対比のメリットは、対角線の等値線がサンプリングのテナンシーに従うものよりも少し長いためです。せいぜい5回のパスだけを許可することになり、それは非常に単純な停止基準として機能しました。Wooo> 1K
meawoppl 2012年

1

効率的なグローバル信頼性分析(EGRA)メソッドのコア機能を適用してみてください。この方法は失敗の確率を効率的に計算するために導出されましたが、その根本は、あなたが説明することを行うことに集中しています-関心のある特定の輪郭の近くでのみ正確なモデルの作成。

これは興味深い出発点かもしれませんが、問題が解決するかどうかはわかりません。それはあなたの機能の形に大きく依存します。クリギングモデルで十分に近似できるものであれば、十分に機能するはずです。これらのモデルはかなり柔軟ですが、一般的にはスムーズな基礎となる機能が必要です。私は過去にEGRAを画像セグメンテーションアプリケーションに適用しようとしましたが、サロゲートモデルを関数の関係で実際に定義されていないものに適合させるのは意味がないため、ほとんど成功しませんでした。それでも、あなたのアプリケーションが私が想像しているものと異なる場合に備えて、あなたが調べてみたいかもしれないものとしてそれを述べます。

私がそれについて話していない場合は、ここ(PDFリンク)とここでEGRAについての詳細を読むことができます。サンディアのDAKOTAプロジェクトには既存の実装があります。私の知る限り、EGRAの唯一のオープンソース実装が利用可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.