問題タブ [surf]
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.
android - openCV Android:knnMatcherは1つの記述子に一致するもののみを返します
修士論文のために、Android用のロゴ検出アルゴリズムを実装する必要があります。私は現在、NDKでopenCV androidライブラリを使用しており、SURFを使用してこれらのキーポイントのキーポイントとセットアップ記述子を検出することができました。
私にとっての次のステップは、knnMatchを使用して、すべてのキーポイントに最も近い2つの一致を見つけることです。その後、2番目の一致と比較して最良のknn一致があまり区別できない一致を破棄します(これら2つの距離の比率が低すぎます)。私のコードの一部:
ここでの私の問題は、たとえばクエリロゴに500個の記述子があり、電車のロゴに400個の記述子がある場合、knnは500個の一致を返しますが、すべてが1つの同じキーポイントに対するものです。通常、すべての記述子に対して2つの最適な一致が返されるため、500の異なる記述子が返されますが、1つの同じ記述子に対して500倍の最適な一致が返されます。
したがって、これらのknnマッチを描画すると、常に同じキーポイント間に500回描画された1つのマッチラインがあります。
単純にベストマッチを返すシンプルマッチャーを試してみると、より多くの行が得られます。画像をそれ自体と比較してこれをテストしました。Knnは、この1行を返します。ここで、単純な一致は500の一致すべてを描画しますが、この場合はもちろん正しいです。
この同様の問題が処理された投稿が見つかりません。誰かがこの問題を抱えているか、ここで私が間違っていることを知っていますか?
よろしくお願いします。
visual-studio - Visual Studioから、または.EXEから直接起動したときに、同じイメージで異なる出力を開く
私は、SURFアルゴリズムのChris Evans OpenSURF実装を使用して、オブジェクト認識用のアプリケーションを開発しました。いくつかの実験を行っていますが、IDEを介して、または.exeファイルをダブルクリックして直接アプリケーションを起動すると、アルゴリズムが適切に動作しないことに気付きました。.exeファイルが、IDEを介して起動するコードのバイナリコンパイル済みであることを確認しました。SURFアルゴリズムは決定論的であり、同じ入力で常に同じ出力を返す必要があるため、IDEまたは.EXEからアプリを起動する場合、浮動小数点の精度に関連する何かが異なるようです。いくつかの例。1列目と2列目は、画像から抽出されたポイントの数です。3番目の列は、この1番目と2番目の違いです。
EXE VS Diff
17340 17366 -26 Image001
4639 4631 8 Image002
3196 3189 7 Image003
10442 10441 1 Image004
1485 1477 8 Image005
5539 5555 -16 Image006
18102 18073 29 Image007
アルゴリズムとコードがまったく同じである場合、出力が異なる理由を誰でも教えてくれますか?
ありがとう
stack - 変数「keypoints」の周りのスタックが壊れていました
次のパーツ コードを使用して、サーフ フィーチャをプロットします。
Visual Studio で次のエラーが表示されます。
変数 'keypoints' の周りのスタックが壊れていました。
Visual Studio デバッガーは、次のエラーを返します。
変数「keypoints」の周りのスタックが壊れていました
どんな助けでも!!
surf - SURFTracker クラスにアクセスするには?
emgu ラッパーを使用しようとしています > Surf Algorithm が含まれているため、surftracker クラスにアクセスする方法を知りたいのですが、名前空間は何ですか?
opencv - 機能の要点からOpenCVで手動でペアワイズマッチングを行う
これが私の問題です。複数の画像でSURFを使用してキーポイントの特徴を手動で抽出しました。しかし、私はすでにどのペアのポイントが一致するかを知っています。問題は、一致するペアを作成しようとしているのですが、その方法がわかりません。コードを見てみましたが、めちゃくちゃです。
今のところ、行列であるfeatures.descriptorsのサイズは、キーポイントの数と同じであることがわかっています(他の次元は1です)。コードでは、一致するペアを検出するために、記述子のみを使用しているため、行(または列、わかりません)または2つの記述子マトリックスを比較し、共通点があるかどうかを判断します。
しかし、私の場合、画像1のキーポイントiと画像2のキーポイントjの間に一致があることはすでに知っています。これをMatchesInfo値として説明するにはどうすればよいですか。特に、タイプstd :: vector <cv::DMatch>の要素が一致します。
編集:だから、これのために、私はマッチャーやこのようなものを使用する必要はありません。私はどのペアが一緒に行くのか知っています!
c# - EMGU CV SURF 画像一致
私は、EMGU CV ライブラリの SURF 特徴検出の例を使用してきました。
これまでのところ、驚くほどうまく機能しています。特定の 2 つの画像間で一致するオブジェクトを検出できますが、画像が一致しない場合に問題が発生しました。
私はフォーラムからのサポートを探していましたが、彼らは私がいるところからダウンしています. 画像が一致するかどうかを決定するパラメーターを知っている人はいますか。一致しない 2 つの画像でテストすると、コードは一致したかのように処理され、一致しない場合でも、画像のランダムな場所にぼやけた太い赤い線が描画されます。
一致しない場合は、コードから抜け出し、それ以上先に進まないようにしたいと思います。
付録:
`
opencl - clsurf 実行中のエラー
http://code.google.com/p/clsurf/source/browse/#svn%2Ftrunk%2Fsrcに投稿された CLSurf コードを実行しようとしています。OpenCL をサポートする ATI グラフィック カードを使用しています。OpenCVもインストールしました。OpenCL (AMD SDK) と OpenCV の両方のパス ディレクトリを配置します。しかし、プログラムを実行すると、次のエラーが発生します。私は途方に暮れており、理解できません。
p>ここには多くのエラーがあることを知っています。しかし、それは code.google.com に投稿されているので、正しいコードである必要があり、それは私の間違いだと思います。誰かが私を助けてくれて本当に感謝しています。前もって感謝します
android - Android で openCV を使用すると、FAST-SURF の正しい一致が見つからない
ロゴ検出アルゴリズムを実装するために、Android用のopenCVを使用しています。私の目標は、Android カメラで撮影した写真で定義済みのロゴを見つけることです。
正しい一致を取得できません..ほとんどopenCVライブラリ関数のみを使用していることを考えると、これは非常に奇妙だと思います。
最初に FAST 検出器を使用してキーポイントを検出します。画像のサイズは 500x500 です。その後、SURF を使用してこれらのキーポイントを記述します。knn で 2 つのベスト マッチを求め、A 比率が 0.6 (first.distance/second.distance) より小さいものを除外します。
私は約10試合を獲得していますが、それらはすべて間違っています.すべての試合(100以上)を描くと、それらはすべて間違っているようです.
ここで何が間違っているのかわかりません。同じ問題を抱えている人はいますか、それとも私が間違っていることを知っていますか?
opencv - SurfFeatureDetector と Mat() を使用した空のマスクの作成
SurfFeatureDetector写真の領域を指定する際にキーポイントを検出するために使用したいと思います。
- Train_pic & Source_pic
- を使用して Train_pic keypoint_1 を検出し
SurfFeatureDetectorます。 - 領域指定で使用する Source_pic keypoint_2 を検出
SurfFeatureDetectorします。 - 計算して一致させます。
SurfFeatureDetector以下のようにOpenCV 。
void FeatureDetector::detect(const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat())
mask – キーポイントを探す場所を指定するマスク (オプション)。対象領域にゼロ以外の値を持つ char 行列でなければなりません。
mask=Mat()Source_pic の作成方法を説明できる人はいますか?
ありがとうジェイ