問題タブ [sift]
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の一致すべてを描画しますが、この場合はもちろん正しいです。
この同様の問題が処理された投稿が見つかりません。誰かがこの問題を抱えているか、ここで私が間違っていることを知っていますか?
よろしくお願いします。
sift - Andrea VeldadiのSIFT実装で互いに一致するポイントをプロットする方法は?
vl_ubcmatch関数を使用しました。SIFTアルゴリズムを使用して2つの画像がどれほど類似しているかを計算する方法から助けを借りましたか?。私が使用している手順は、https://stackoverflow.com/users/71131/jacobによって推奨されていますか?。これらは:
これは、2つの画像と、一方が青で、もう一方が赤でマークされた特徴とともに表示されることを意味します。ただし、対応する機能が線で結ばれていることも確認したいと思います。
sift - サブピクセル位置を計算する SIFT テイラー展開
私はSIFTを実装しようとしていますが、現在、MATLABで実装を開始する前に、それがどのように機能するかを理解しようとしています.Taylor Expansionを使用してサブピクセル精度を計算する方法を除いて、ほとんどを理解しています:
上は元の論文の方程式です。適用方法についていくつか質問があります。
導関数は各次元で別々に計算され、方程式は x に適用され、次に y に適用されますか?
1 番目と 2 番目の導関数はシグマ軸にも適用されますか?
以前の実装を見るのに疲れましたが、どこでこれを行っているかを見つけることができません。前もって感謝します
image-processing - SIFT 記述子: 循環サポート パッチとは何を指しますか?
この記事、ランダムフォレストとシダを使用した画像分類を読んでいます。それは書いてあります:
SIFT 記述子 [19] は、間隔が M ピクセルの規則的なグリッド上の点で計算されます。各グリッド ポイントで、ディスクリプタは異なる半径を持つ 4 つの円形サポート パッチにわたって計算されます。したがって、各ポイントは 4 つの SIFT ディスクリプタで表されます。複数のディスクリプタが計算され、イメージ間のスケールの変動が許容されます。
4 つの円形サポート パッチに関する部分が何を意味するのかわかりません。これを私に明確にできる人はいますか?
c++ - SIFT 記述子を使用する OpenCV (C++) は、検出される機能の数を増やしますか?
OpenCV のSIFT 記述子の実装を使用しているときに、少し混乱する状況があります。
さまざまな機能検出器と記述子の計算方法をテストしようとしているので、さまざまな検出器の方法と記述子を簡単に変更できるcv::FeatureDetector
とインターフェイスの組み合わせを使用しています。cv::DescriptorExtractor
cv::DescriptorExtractor::compute(...)
(単一の画像のバリアント)を呼び出すと、記述子を計算できない場合、アルゴリズムに与えられるキーポイントの数が減少する可能性があるとドキュメントに記載されており、それがどのように、なぜ行われるのかを理解しています。
しかし、実際には、ディスクリプタ計算後のキー ポイントの数が増加します。それは明らかにそうであり、私はそれが起こるのを止めようとしているわけではありません.理由についての説明を望んでいます.
コードを持たない実際の OpenCV の周りにラッパーのレイヤーを何層も重ねています (いくつかのローカルの非 OpenCV フラグを設定するだけです)。
記述子の計算の直前と直後の最初の 10 個のキー ポイントを出力したので、例としていくつかの具体的な数値を示します。
この例から、元のfeat[1]
とfeat[7]
がそれぞれ 2 つの新しいキー ポイントにまたがっていることがわかりますが、それを行うcompute
方法についての論理的な説明は見当たりません :(
ここに示したプリントアウトは、キーポイントの検出にMSERを使用してからSIFT記述子を計算しようとしたものですが、検出されたSTAR、SURF、およびSIFT (つまり DoG) キーポイントでも同じサイズの増加が発生します。SIFT記述子を別のものに変更しようとはしませんでしたが、質問に関連していると誰かが考えた場合は、それを試して質問で編集します。
android - Android で openCV を使用すると、FAST-SURF の正しい一致が見つからない
ロゴ検出アルゴリズムを実装するために、Android用のopenCVを使用しています。私の目標は、Android カメラで撮影した写真で定義済みのロゴを見つけることです。
正しい一致を取得できません..ほとんどopenCVライブラリ関数のみを使用していることを考えると、これは非常に奇妙だと思います。
最初に FAST 検出器を使用してキーポイントを検出します。画像のサイズは 500x500 です。その後、SURF を使用してこれらのキーポイントを記述します。knn で 2 つのベスト マッチを求め、A 比率が 0.6 (first.distance/second.distance) より小さいものを除外します。
私は約10試合を獲得していますが、それらはすべて間違っています.すべての試合(100以上)を描くと、それらはすべて間違っているようです.
ここで何が間違っているのかわかりません。同じ問題を抱えている人はいますか、それとも私が間違っていることを知っていますか?
image - SIFT 記述子を使用して 2 つの画像の類似性を比較する
SIFT アルゴリズムを使用して、2 つの画像の類似度を判断しています。画像の記述子のリストを取得できましたが、次に何をすべきかわかりません。私の問題は、記述子の数が異なり、それらの順序が同じではない可能性があることです。これらの記述子を比較する最良の方法は何ですか?
ありがとう。
c++ - OpenCvでsiftを使用して2つの画像を一致させようとしていますが、一致が多すぎます
ボックスのみの画像とシーンにボックスを含む2つの画像を入力するプログラムを実装しようとしています。基本的に、プログラムはこれら2つの画像からキーポイントを検出し、キーポイントが一致する画像を表示することになっています。つまり、2つの入力画像の追加画像と、それらが接続された一致するキーポイントが表示されることを期待しています。私のコードは次のとおりです。
問題は、予想よりも多くの一致が2つあることです。プログラムをデバッグして、キーポイントベクトルなどの内部を調べましたが、すべてが正常に見えます。少なくとも、キーポイントは方向などで検出されます。
私はOpenCVv2.3を使用しており、使用しているクラスのタイプについてドキュメントを確認し、問題を解決しようとしましたが、それは機能しませんでした。私はこれに3日間取り組んでいますが、あまり改善されませんでした。
これが私のプログラムから得た出力です。
画像を削除する必要があります。
まったく同じ画像をmatlabの別の実装でテストしたので、あまり一致しないはずです。これは非常に優れていました。