1

opencv 2.4.2でSURF、FERN、FREAKなどのアルゴリズムを使用してオブジェクト認識を実行しようとしています。

私は変更なしでopencvサンプルからのプログラムを使用しています-find_obj.cpp, find_obj_ferns.cpp, freak_demo.cpp

役に立たなかったアルゴリズムのパラメーターを変更してみました。

トレーニング画像、テスト画像、FREAK認識の結果がここにあります

ご覧のとおり、結果はかなり悪いです。

少し質問があります:

  1. これらのアルゴリズムがグレースケール画像で機能するのはなぜですか?上記のトレーニング画像では、RGBを含めるとオブジェクトを簡単に検出できることは明らかです。これを考慮したテクニックはありますか?

  2. パフォーマンスを向上させる他の方法はありますか?うまく機能しなかった機能パラメータをいじってみました。

4

1 に答える 1

4

私があなたの画像で最初に観察したのは、オブジェクトは平面であり、テクスチャの違いはありません...つまり、使用したすべての特徴検出器は、ビュー不変であるコーナーを見つけるためのものです。つまり、それらが画像のキーポイントであるということです。一意の近傍とxおよびy導関数の適切な大きさ。分析をアップロードしました...図を参照してくださいここに画像の説明を入力してください

私が言っていることが正しいことを知る方法は?

オブジェクト上で見つけたキーポイントの記述子値に移動して値を確認すると、ほとんどがゼロであることがわかります...記述子は特定の方向のコーナーポイント周辺のエッジの変化の記述であるため(詳細については、サーフのドキュメントを参照してください)。

検出しようとしているオブジェクトは携帯電話のように見えるので、オブジェクトまたはモバイルを逆にして実験を繰り返すだけで、確実に良い結果が得られます...前面のオブジェクトは一般にスイッチやロゴなどのテクスチャが多いためです..

これが私がアップロードした結果です、 ここに画像の説明を入力してください

于 2012-08-12T10:10:43.340 に答える