問題タブ [eigenvector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6003 参照

python - PCA 計算における複素固有値

行列の PCA を計算しようとしています。

結果の固有値/ベクトルが複雑な値になる場合があるため、固有ベクトル行列にポイント座標を掛けてポイントをより低い次元の計画に投影しようとすると、次の警告が表示されます

そのコード行でnp.dot(self.u[0:components,:],vector)

PCAの計算に使用したコード全体

0 投票する
2 に答える
204 参照

performance - eigsのmatlabキャッシュソリューションはありますか

を使用すると、異なるパフォーマンス結果が得られるようですeigs。同じマトリックスで、呼び出し
[c, v] = eigs(A, 2, 'sm'); には 30 秒、場合によっては 2 秒かかります。 時間を報告する必要があるため、同じマトリックスでの
後続の呼び出しでキャッシュを使用してスピードアップがあるかどうかを知る必要があります...eigs

0 投票する
0 に答える
4087 参照

r - 主成分分析のための固有ベクトルと固有値の計算

いくつかの 3D スキャンの主成分分析を実行しようとしていますが、固有値と固有ベクトルを計算して操作するときにスタックします。

スキャンは .obj ファイル形式です。

6449 個のベクトル、12894 個の顔、および 115 個のスキャンがあります。私の理解では、データは 3D であるため、組み込みprincomp関数を使用できません。さらに、データ量が原因でラップトップでメモリの問題が発生する可能性があり、最終的に PCA を手動で実行する方法を学びたいと考えています。

これを実行するには5つの段階があると思います

  1. 平均 3D スキャンを計算します。バーX
  2. 各スキャンから平均を引きます。Xa - BarX = バー Xa
  3. Bar Xa * Bar Xa = Ma の行列を作成します。
  4. Ma の固有値と固有ベクトルを計算します。パ
  5. 平均形状 BarX を Pa に追加して、固有値と固有ベクトルに従って形状が変形するのを確認します。

これを単純化しすぎていないことを願っていますが、私は数学者/統計学者ではないため、これが私の現在の理解です.

ステージ 1 と 2 は単純なので実行しましたが、混乱しているのは次のステージです。

メモリの問題が発生するのではないかと心配しているので、x、y、z のマトリックスを個別に作成します。したがって、x * x の 6449x6449 の対角行列を作成しています。これは、最初のスキャンの x の行列を作成するために使用したコードです。

これを x、y、z に対して行います。次に、次を使用して固有値と固有ベクトルを計算します。

この段階では、私が行ったことが正しいかどうか確信が持てませんか? しかし、ここから、固有ベクトルと固有値を組み合わせて BarX に追加して形状の変形を確認する方法がわかりませんか?

誰かがアドバイスやガイダンスを持っていれば、それは本当にありがたいです.

前もって感謝します。

0 投票する
0 に答える
268 参照

background - EigenBackground の計算を高速化するには?

移動カメラ ビデオを使用した適応型背景検出のために、このアルゴリズムの最適化を試みています。

http://www.springerlink.com/content/4j2m3885r3133202/fulltext.pdf

このアルゴリズムは、バックグラウンド モデルのアップグレードを高速化します (SVD はリアルタイム アプリケーションには重すぎます)。アルゴリズムを高速化するために管理できる属性は 3 つあります。属性は次のとおりです。

  1. N最初の SVD 計算のフレーム数
  2. M背景モデルを記述するための固有ベクトルの数 (M<=N)
  3. Pバッチ更新を行うために待機するフレーム数

処理時間とこれら 3 つの属性との関係を調べる方法を知っていますか?

最適値を見つける方法を知っていますか?

このアルゴリズムの重要な部分は、バッチ更新中に着信フレームを直交正規化するための QR 分解です。この関数には多くの時間がかかります。

直交正規化を計算するためのより高速なアルゴリズムを知っていますか?

ここで、私が使用しているm_cT (論文の行列U'=[U|E] ) の関数 QR:

テスト中に、フレーム内の高周波数のディテールによって、カメラの動き中に多くの誤検知が発生することに気付きました。

SVD 計算の前にスムーズ フィルターを適用すると、より良い検出 BG/FG が得られると思いますか?

ご協力ありがとうございました。

0 投票する
1 に答える
1029 参照

python - 固有値と固有ベクトルを見つけるpython

最大の「k」固有値と固有ベクトルを見つける必要があるグラフ ラプラシアンがあります。私はこのようなものを使用しています:-

これにより、ほぼ正しい結果が得られますが、何かがうまくいかず、eig 値が 1 よりわずかに大きくなっています (1.05 など)。私の場合、固有値の上限は 1 です。MATLAB やその他のプラットフォームを使用すると、望ましい結果が得られます。

ここで何が間違っていますか?? 固有ベクトルと固有値の計算を並列化する方法はありますか? (pyCudaを検討しています。)

0 投票する
2 に答える
7137 参照

c++ - C++ 固有値/ベクトル分解、最初の n 個のベクトルのみが高速に必要

固有値-固有ベクトル分解を計算する〜3000x3000の共分散に似たマトリックスがあります(これはOpenCVマトリックスでありcv::eigen()、仕事を完了するために使用します)。

ただし、実際には最初の 30 個の固有値/ベクトルだけが必要であり、残りは気にしません。理論的には、これにより計算が大幅に高速化されるはずですよね? つまり、計算する必要がある固有ベクトルが 2970 個少ないということです。

それを可能にする C++ ライブラリはどれですか? OpenCVのeigen()メソッドにはそのためのパラメーターがありますが、ドキュメントにはそれらが無視されると書かれており、私は自分でテストしましたが、実際には無視されます:D

更新: ARPACK でなんとかできました。Windows用にコンパイルし、使用することさえできました。結果は有望に見えます。このおもちゃの例で説明を確認できます。

結果は次のとおりです。

固有値の場合、および

それぞれ 2 つの固有ベクトルに対して (行ごとに 1 つの固有ベクトル) コードは 3 つの固有ベクトルを見つけることができません (この場合、1-2 しか見つけることができません。assert() はそれを確認しますが、それは問題ではありません)。

0 投票する
2 に答える
1321 参照

matlab - 2次元応力ベクトル場をプロットするための固有ベクトルと値

2D 応力場をプロットするつもりでした。私が手にしているのは、2 つの固有ベクトルと、システム内のすべての粒子の 2D 応力テンソル フィールドのそれぞれの 2 つの固有値です。MATLAB、gnuplot、Grapher、ParaView、またはその他の適切なプレート形式のいずれかを使用して、これらの固有ベクトル (方向) と固有値 (最大および最小応力値) を評価して 2D 応力場をプロットする方法がわかりませんでした。

任意の形式のコード (C、C++、MATLAB、または ParaView) と、この自明な固有問題の利用に関する簡単な説明は、非常に高く評価されます。

0 投票する
2 に答える
18126 参照

java - OpenCV/JavaCV顔認識-非常に類似した信頼値

私の質問を理解するために関連しているように思われるので、私がやろうとしていることを説明します。

私は現在、データベース内の既知の写真に基づいて、カメラの前に足を踏み入れた人の顔認識を試みています。

これらの既知の写真は、識別用のスマートカード(正面の顔の写真が1つだけ含まれている)またはソーシャルネットワークの正面の顔のプロフィール写真から収集されています。私がこれまで読んだことから、良い顔認識のためには、かなりの量のトレーニング画像が必要であるように思われます(50+)。そのため、信頼できるトレーニングセットを作成するために収集した画像は非常に少ないため、代わりにライブカメラフレームキャプチャ(現在150を使用)をトレーニングセットとして使用し、以前に収集した識別済みの写真をテストセットとして使用してみました。私がこれで試していることが正しいかどうかわからないので、私が失敗しているかどうか教えてください。

つまり、問題は、スマートカードから取得した5枚の識別された写真を取得した後、カメラが自分の顔をキャプチャした150フレームをトレーニングセットとして使用して顔認識を実行しようとしたことです。認識しようとすると、5つのテスト面のそれぞれの信頼値が非常に似ており、誰も正確に認識できないため、プログラム全体が役に立たなくなります。多くの場合、トレーニングとしてさまざまなカメラキャプチャを使用すると、自分の写真よりもランダムな人物の写真から高い信頼値が得られます。

私はここで途方に暮れているので、あなたが私に与えることができるどんな助けにも感謝します。

ありがとうございました。

注:OpenCV用のJavaCVラッパーを使用してプログラムを作成し、パッケージに含まれているhaarcascadesを使用しています。使用されるアルゴリズムである固有顔。

0 投票する
0 に答える
860 参照

c++ - opencvの複雑な固有値

非対称行列の固有値と固有ベクトルをopencvで計算する方法はありますか?

0 投票する
1 に答える
3384 参照

c# - 8×8行列の固有ベクトルと固有値

浮動小数点数の 8 x 8 行列があり、そこから固有ベクトルと固有値を計算する必要があります。これは、PCA (主成分分析) を使用した機能削減のためのものであり、従来の方法で行うと非常に時間のかかる作業です。Y = C*X X は私の 8 X 8 行列です。

私はそれが間違っていることを知っていますが、それを理解することはできません。累乗法またはおそらくより効果的な計算方法を使用するための助けが必要です.

前もって感謝します。