3D画像ラプラシアンの固有値と固有ベクトル


7

3D画像のラプラシアンの固有値と固有ベクトルを計算する必要があります。ボリュームヒートカーネルシグネチャを実装するために、3Dユニフォームグリッド(ボクセル化された画像によって生成されたユニフォーム構造)のヒートカーネルを評価しようとしています(「数値計算」セクションを参照してください)。私が取り組んでいるドメインは長方形ではないため、一部のグリッドポイントに1があり、他のポイントに0があり、バイナリ3Dシェイプを生成しています。私はこれについて2Dについて読んでいます。2Dでは、すべてのグリッドポイントのラプラシアンが計算され、結果の行列の固有値と固有ベクトルが計算されます。3Dでこれを行うにはどうすればよいですか?具体的な質問は次のとおりです。

  1. (3x3x3)離散ラプラス演算子を適用した後に取得した3D画像から行列を取得するにはどうすればよいですか?
  2. 行列を取得する方法がない場合は、3D構造グリッドの固有値と固有ベクトルを計算する必要があります。これを行う最も簡単な方法は何ですか?これを行うためのソフトをお勧めできますか?

ヒントをいただければ幸いです。

前もって感謝します。


@nikieが指摘したように、質問であることを明確にしてください。熱分布の3D導関数を計算しますか?つまり、グリッド上に3Dベクトル場を生成しますか?
Dr.D.

Dr.Dさん、ありがとうございます。質問にさらに情報を追加し、実装しようとしている論文への参照を追加しました。
フェデリコ

ボリューメトリックなヒアシグネチャとは何なのかわからないので間違っているかもしれませんが、すでにリンクしている記事は3Dシェイプに関するものだと思いませんか。私が理解している方法では、ラプラシアンは行列の乗算と見なすことができます(線形であるため)。その行列の固有値(つまり、すべてのボクセルに1行、すべてのボクセルに1列の行列)を見つけることになります。 。
Niki Estner 2013年

彼はラプラシアンの固有値を3Dで見つけようとしていると思います。(しかし私は間違っているかもしれません)
Beni Bogosel 2013

回答:


3

この答えは少し遅くなりますが、ラプラシアンの固有構造とは何か、それがどのように計算されるのかについての混乱を解消する必要があると思います。

まず第一に、これは離散導関数の計算に使用されるローカルカーネルのプロパティに関するものではないことを強調することが重要です。代わりに、要素がボリュームデータセットであるベクトル空間上の線形演算子としてラプラシアンを理解する必要があります。

つまり、ラプラス演算子の適用は、1つのベクトル(データセット)を別のベクトル(データセット)にマップする線形マップです。このコンテキストでは、ラプラシアンの固有ベクトルも、同じベクトル空間のベクトル(データセット)です。したがって、あなたの質問に対する答えは、実際にはベクトル空間の次元(つまり、独立したボクセルの数)と同じくらいのボリュームデータセットのセットになります。

非常に単純な例を考えてみましょう。1次元の画像、つまり1行のピクセルを取得し、ごく少数のピクセル、つまり4のみを使用してみましょう。次に、最初のピクセルと最後のピクセルはそれぞれ1つしか隣接していませんが、中央の2つのピクセルは隣接ピクセルを指示する必要があります。

1234

このピクセルジオメトリでは、2つの中心ピクセル2と3の離散ラプラス演算子の結果を、ピクセル値の線形関数として与えることができます。

l[2]=p[1]2p[2]+p[3]
l[3]=p[2]2p[3]+p[4]

他の2つのピクセル1と4には、離散2次導関数を計算するのに十分な直接近傍がありません。ピクセル1と4が直接隣接していると想定し、トポロジーを円に閉じて、いわゆる円形境界条件を課すことで、これを修正できます。または、境界で二次導関数を取り去って消滅させます。両方を実行してみましょう。ただし、循環境界条件から始めます。だから私たちは:

l[1]=p[4]2p[1]+p[2]
l[4]=p[3]2p[4]+p[1]

このマップは線形であり、列方程式をにマッピングして、行列方程式として書き込むことができます行列との乗算。p:=(p[1],p[2],p[3],p[4])l=(L[1],L[2],L[3],L[4])M

L=Mp

この行列をラプラス演算子の離散表現と呼びます。この例では、

M=(2101121001211012)

この行列の固有ベクトルは、 関連付けられた固有値

v1=(1,1,1,1)
v2=(0,1,0,1)
v3=(1,0,1,0)
v4=(1,1,1,1)
λ1=4,λ1=2,λ1=2,λ1=0

これらのベクトルは、このベクトルの離散フーリエ変換の基底ベクトルとして認識でき、固有値はそれらの離散周波数として認識できます。これは一般的に当てはまり、実際には、ラプラス演算子の固有スペクトルへのベクトル(またはより一般的には関数)の分解は、フーリエ変換の概念を一般化します。

ここで、およびの代替境界条件を使用した場合にどうなるかを調べてみましょう。行列はl[1]=0l[4]=0M

M=(0000121001210000)

恐らく、この行列には固有ベクトルと固有値の異なるセットがあります。それらは直感的でおかしくはないので、明示的には記載しません。ただし、固有値 2回取得することに注意してください。つまり、ラプラシアンが消失する固有部分空間は2次元です。0

では、1行のピクセルではなく適切な画像がある場合、どのように変化するでしょうか。あまりない。画像の直接隣接関係またはトポロジーを考慮しながら、各単一ピクセルのラプラシアンを書き留めるだけです。少しトリッキーにするために、不規則な形の2次元画像を見てみましょう。

123|||45678|||||910111213|||141516

明らかに、ここで、2次元の偏微分係数を水平方向と垂直方向に合計して、2次元のラプラシアンを計算する必要があります。そのためには、各方向に2つの直接隣接が必要です。したがって、内側の点は、完全な2展開になります。ポイント場合、たとえば次のようになります。5,6,7,10,11,125

l[5]=p[4]2p[5]+p[6]+p[1]2p[5]+p[10]=p[4]+p[6]+p[1]+p[10]4p[5]

コーナーポイント、離散2次導関数を構築できないため、境界条件を使用します。たとえば、1,3,4,8,9,13,14,16l[1]=0

残り2点、とです。両方とも、水平方向に2つの直接の隣人を持ちますが、垂直方向にはありません。したがって、垂直2次導関数をゼロに設定することにより、垂直方向にのみ影響する境界条件を適用できます。一方、離散2次導関数を水平に評価して、およびについても同様です。215l[2]=p[1]2p[2]+p[3]l[15]

この構成に従って、ピクセル値に関連付けるすべてのポイントの線形方程式を取得します。ここでも、行列方程式として記述します。この場合、行列にはエントリがあります。具体的には、 L=Mp16×16

M=(0000000000000000121000000000000000000000000000000000000000000000100141000100000001001410001000000010014100010000000000000000000000000000000000000000100014100100000001000141001000000010001410010000000000000000000000000000000000000000000001210000000000000000)

そして再び、この行列の固有システムを解くことができます。固有ベクトルとして得られる画像の物理的な解釈は、固有値によって与えられる周波数で、画像のような形をした膜の振動モードを表すというものです。

ボクセル間の近傍関係を知っていれば、このゲームを任意の数の次元まで簡単に進めることができます。上記のように個々の線形方程式を公式化し、行列を作成し、固有システムを見つけます。

ラプラシアン解法の固有ベクトルから得られる情報により、離散ラプラシアンを含む差分方程式を大幅に簡略化できます。固有構造が見つかると、領域のジオメトリのみに応じて、すべてのデータセットを固有基底に簡単に分解でき、差分方程式は簡単になります。


0

ラプラシアンは行列ではなくスカラー値です。したがって、固有値はありません。多分あなたはヘッセ行列の固有値/ベクトルを意味しますか?

ヘッセ行列の固有値と固有ベクトルを計算するには、最初に各ピクセルのヘッセ行列(3方向のそれぞれの2次導関数を含む対称3x3行列)を計算します。これを行う簡単な方法は、3つの画像に3つのグラデーションフィルター(x、y、z方向)を適用することです。これで3つの画像ができました。これらの画像のそれぞれに、3つの勾配フィルターを再度適用して、各ピクセルのヘッセ行列の3x3エントリを含む3x3の結果画像を作成します。(勾配フィルターは通勤なので、I * gx * gy = I * gy * gxなので、実際に計算する必要があるのは6つだけです。)

この3x3行列の固有値とベクトルを取得するには、2つの方法があります。特性多項式の根を見つけるか、反復法を使用します。特徴的な多項式は3次であるため、反復法の方が実際には高速だと思います(単純な加算/乗算の計算に立方根がはるかに長くかかるため)。


問題が明確になることを期待して、問題を述べます。私は、異なる時間値で3D均一グリッドのヒートカーネルを評価しようとしています。私が作業しているボリュームは長方形ではないため、一部のグリッドポイントに1があり、他のポイントに0があるため、バイナリ3Dシェイプが生成されます。私はこれについて2Dで読んでいます。2Dでは、すべてのグリッドポイントのラプラシアンが計算され、結果の行列の固有値と固有ベクトルが計算されます。3Dでこれを行うにはどうすればよいですか?
フェデリコ

そうですか。この情報で質問を更新してください。そうすれば、私の回答を削除できます(明らかに質問には回答しません)。質問を更新するとき、「2Dマトリックス」は通常2行2列のマトリックスを意味することに注意してください。3Dマトリックスは、3行3列のマトリックスです。私が言っているのは3Dマトリックスではなく、3次テンソルであり、これはマトリックスではありません。
Niki Estner 2013年

実際、あなたの答えは適切かもしれないと思います。それは、私がその出版物で指摘したのと同じ概念です。OPの3Dグリッド関連の問題にどのように適用できるかは、明確ではありません。
Dr.D.

0

たぶん、これは助けになります(?)

http://en.m.wikipedia.org/wiki/Kronecker_sum_of_discrete_Laplacians

L = Dxx¤I¤I + I¤Dyy¤I + I¤I¤Dzz

ここで、¤はクロネッカー積です(適切な記号ではないため、ここで取得する方法がわかりませんでした)。固有値と固有ベクトルはボクセルごとの結果の行列から計算されると思います。

次のペーパーのセクション4で説明されているテンソルの概念は、まったく同じではありませんが、関連しているようです。ただし、@ nikieの回答で述べたように、これはヘッセ行列に密接に関連しています。

Carsten Steger、線とエッジのサブピクセル精度の抽出、写真測量とリモートセンシングの国際アーカイブ(2000)。

論文はここにあります:http : //ias.in.tum.de/people/steger/publications

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