SURF および SIFT アルゴリズムを理解する上で、いくつかの概念的な問題があります SURFについてのすべて。私の理解では、SURF はガウス分布のラプラシアンを見つけ、SIFT はガウス分布の差に基づいて動作します。次に、その周囲に 64 変数のベクトルを構築して特徴を抽出します。このCODEを適用しました。
(Q1 )では、特徴とはどのようなものでしょうか?
(Q2) SurfFeatureDetector detector(500) を使用してアルゴリズムを初期化します。では、これは特徴空間のサイズが 500 であることを意味しますか?
(Q3) SURF Good_Matches の出力は、Keypoint1 と Keypoint2 の間の一致を示し、一致の数を調整することで、オブジェクトが見つかった/検出されたかどうかを結論付けることができます。KeyPoints とはどういう意味ですか? これらは機能を保存しますか?
(Q4)オブジェクト認識アプリケーションを実行する必要があります。コードでは、アルゴリズムが本を認識できるように見えます。そのため、物体認識に応用できます。SURF は、色や形によってオブジェクトを区別するために使用できるという印象を受けました。ただし、SURF と SIFT はコーナー エッジの検出を検出するため、カラー イメージをトレーニング サンプルとして使用してもグレー スケールに変換されるため意味がありません。これらのアルゴリズムで色または HSV を使用するオプションはありません。ただし、各チャネルのキーポイントを個別に計算しない限り、これは別の研究分野です (オブジェクトおよびシーン認識のための色記述子の評価)。
では、色や形に基づいてオブジェクトを検出および認識するにはどうすればよいでしょうか? SURF は、物体を形状で区別するために使用できると思います。たとえば、2 冊の本と 1 本のボトルを持っているとします。オブジェクト全体から 1 本だけを認識する必要があります。ただし、シーン内に他の同様の形状のオブジェクトがあるとすぐに、SURF は多くの誤検知を示します。私のアプリケーションに適用する方法についての提案をいただければ幸いです。