問題タブ [eigen]
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.
c++ - 線形代数用のC++テンプレートライブラリであるEigenを使用するにはどうすればよいですか?
私は行列を作成する画像処理アルゴリズムを持っています。私は自分の行列演算コード(乗算、逆数...)を持っています。しかし、私が使用しているプロセッサはARM Cortex-A8プロセッサで、ベクトル化用のNEONコプロセッサがあります。マトリックス操作はSIMD操作の理想的なケースであるため、コンパイラ(-mfpu = neon -mfloat-abi = softfp)にNEONを生成するように依頼しました。私のコードの命令ですが、コンパイラーはそうすることができず、Matrix操作用に独自のNEON組み込みコードを書き込もうとしましたが、それを行うのは非常に困難でした。
そこで、行列演算のベクトル化を約束する固有ライブラリを利用することを考えました。そこで、すぐにEigen C ++ライブラリをダウンロードして、チュートリアルのとおりに使用してみましたが、残念ながら、サンプルプログラムを実行するとコンパイルエラーが発生します。
Eigenの使用経験がある人は誰でも、どんな例が本当に役に立ちますか?親切にそれについて行く方法を私に助けてください。
ヘルプ!
ありがとう
/ home / ubuntu / Documents / eigenにEigenフォルダーがあります。このパスは、EclipseのC++プロジェクトの追加ディレクトリに設定します。次に、次のプログラムを実行します(例)-
私が得るエラー-
プロジェクトTest_Eigenの構成デバッグのビルド****
すべて作る
ビルドファイル:../ main.cpp
呼び出し:Sourcery G ++C++コンパイラ
arm-none-linux-gnueabi-g ++ -I / home / ubuntu / Documents / eigen -O0 -g3 -Wall -c -fmessage-length = 0 -fcommon -MMD -MP -MF "main.d" -MT "main .d "-mcpu = cortex-a8 -marm -o" main.o "
"../main.cpp"
../main.cpp:6:エラー:'int' makeの前にコンストラクタ、デストラクタ、または型変換が必要です:***[main.o]エラー1
c++ - 線形代数の C++ テンプレート ライブラリである Eigen を使用する C++ プロジェクトのメイクファイルを作成する方法は?
行列演算のベクトル化を約束する Eigen ライブラリを利用しています。Eigen で提供されているファイルの使用方法と makefile の書き方がわかりません。Eigen を使用するソース ファイルには、以下にリストされているファイルが含まれています。これらはヘッダー ファイルではありません (単なるテキスト ファイルです)。
等々。Eigen の Web ページには、その機能を使用するためにプロジェクトをビルドする必要がないことが記載されています。これらのファイルを makefile に含めてプロジェクトをビルドするにはどうすればよいでしょうか。私の例の main.c ファイルは次のようになります。このファイルのmakefile makefileの書き方を教えてもらえますか-
ヘルプ!
c++ - 32ビットアプリケーションの固有最大行列サイズ
そのため、10000x10000より大きい行列を宣言しようとすると、Eigenパッケージがクラッシュすることがわかりました。このような行列を宣言する必要があります。約13000x13000要素を確実に。私は次のようなテストを実行しました:
14008要素で私のマシン(6 GB RAM)でクラッシュします。
ちょっとがっかりしました!EigenはMATLABまたはoctaveのようなものであり、ディスクなどにヒットしたとしても、より大きな配列を使用してもクラッシュしないはずだと思いました。
さらに、このテストを実行してTaskManを開いたままにすると、これらのマトリックスを作成しているプロセスはそれほど多くのメモリを使用しません。TaskManは2kの使用量でレポートします。
Eigen2.0.15安定版リリースの使用
opengl - opengl で Eigen 数学ライブラリを使用する際の問題
現在、Opengl で Eigen 数学ライブラリを使用しようとしています。Vec3 などの Eigen の Vector3f の typedef をいくつか持っているので、それを頂点の座標として使用できます。座標 (vec3)、法線 (vec3)、色 (vec4) を持つ頂点の構造もあります。頂点配列を使用しようとすると (頂点配列が適切に機能するようになったら VBO を使用します)、Eigen の Vector3f を座標として処理する OpenGL に問題があるようです...これらの問題に対処した人はいますか??
opencv - 固有顔アルゴリズムの正解率を向上させる方法
C#でEmguCVライブラリ(openCVラッパー)を使用して、固有顔アルゴリズムを使用して顔検出と顔認識を実装します
最小距離がトレーニングセット内の同じ人物ではない、トレーニングセット内に存在しないが、トレーニングセット内の適切な距離の人物と一致するなど、正解率の間違いが多く見つかりました。
私を助けてください。
ありがとうございました。
追加情報:-トレーニングセットで1人あたり1つの顔画像を使用します(まっすぐな顔画像、向きなし)-現在、トレーニングセットで約10〜20人でテストしています
c++ - Eigen ライブラリと c++ リンカの問題
「Eigen 2.0.15」ライブラリに対して C++ アプリケーションをリンクしようとしています。いくつかの詳細:
- 私のコンパイラは: gcc バージョン 4.0.1 (Apple Inc. ビルド 5493)
- 私のOSは:mac os 10.5
g++ -I/opt/local/include -I/opt/local/include/eigen2 -O2 -g ... でコードをコンパイルします。
Building target: LBRALL Invoking: MacOS X C++ Linker g++ -L/opt/local/lib -o "LBRALL" [... *.o -files ] -lcv -lEigen2 -lcxcore -lhighgui
エラーは次のとおりです。
リンカーが失敗する理由を知っている人はいますか?
opencv - OpenCVCalcPca入力データ
「固有顔」を使って、opencvで顔認識トレーニング機能を実装しようとしています。サンプルデータはありますが、CalcPCA関数の引数に関する情報が見つかりません。私が知っているのは、データマトリックス、平均固有顔マトリックスへの参照、固有ベクトルへの参照、および固有値マトリックスへの参照が必要なことだけです。
私の質問は、平均固有顔とベクトルを取得できるように、いくつかのテスト画像行列からのデータをCalcPCAの最初の引数にどのように渡す必要があるかということです。
c++ - C ++で正規方程式系を解く
次の線形方程式系を解きたいと思います。
A はn x m
行列 (正方ではない)、b と x は両方ともn x 1
ベクトルです。A と b が既知の場合、n は 50 ~ 100 のオーダーで、m は約 2 です (つまり、A は最大 [100x2] になる可能性があります)。
私はの解決策を知っていますx
:$x = \inv(A^T A) A^T b$
uBLAS (Boost)、Lapack、Eigen など、いくつかの解決方法を見つけましたが、これらのパッケージを使用した場合の 'x' の CPU 計算時間がどれほど速いかはわかりません。また、これが「x」を解く理由が数値的に速いかどうかもわかりません
私にとって重要なのは、私が初心者であるため、CPU の計算時間ができるだけ短く、適切なドキュメントであるということです。
正規方程式を解いた後、回帰を使用して近似を改善し、後でカルマン フィルターを適用Ax = b
したいと考えています。
私の質問は、上記のニーズに対してどの C++ ライブラリがより堅牢で高速かということです。
c++ - 新しいC++インターフェイスを使用したOpenCVのPCA
余談ですが、OpenCVの質問でSOを氾濫させている場合はお詫びします:p
現在、古いCコードを移植して新しいC ++インターフェイスを使用しようとしていますが、Eigenfacesの顔認識クラスを再構築するところまで来ています。
PCA空間を作成しようとしています。次に、計算された平均画像を表示して、それが機能しているかどうかを確認します。これに対する他のステップはありますか?
おそらく、最初に画像をPCA部分空間に投影する必要がありますか?
opencv - Cimg (またはおそらく openCV または固有ライブラリ) を使用して SVD を計算する方法は?
Cimg を使用して 3 次元配列の SVD を計算する方法について、簡単なガイドを教えてください。さらなるプロセスを高速化するために配列を小さく圧縮するために、配列の分解を取得したいだけです。どこにどのような値を入力すればよいですか?また、出力を取得するにはどうすればよいですか? 私は周りを検索しましたが、それがどのように機能するのかまだ理解できません。SVDがどのように機能するかを完全には理解していません..マトリックスを解凍するために使用できることだけを知っています。
同時に、OpenCV と Eigen ライブラリでも作業ができることがわかりました。もっと簡単な場合は、その手順を教えてください..
(SVDの代わりに私にとってはPCAがあり、そのソース/ライブラリを見つけましたが、使用方法もわかりません..)
ありがとう!