7

私の修士論文では、スマートフォンでのロゴ検出のために、SIFT SURFenFASTアルゴリズムでいくつかのテストを実行しています。

単に検出の時間を計ると、いくつかのメソッドに一致する説明が次の結果になります。

SURF検出器とSURF記述子の場合:

180個のキーポイントが見つかりました

  • 1,994秒のキーポイント計算時間(SURF)

  • 4,516秒の記述時間(SURF)

  • 0.282秒のマッチング時間(SURF)

SURF検出器の代わりにFAST検出器を使用する場合

319個のキーポイントが見つかりました

  • 0.023秒のキーポイント計算時間(FAST)

  • 1.295秒の記述時間(SURF)

  • 0.397秒のマッチング時間(SURF)

FAST検出器はSURF検出器よりもはるかに高速であり、100倍高速でほぼ2倍のキーポイントを検出します。これらの結果は予測可能です。

ただし、次のステップは予測された結果ではありません。319 FASTキーポイントの方が180SURFキーポイントよりもdeSURF記述子が高速である可能性はありますか?

私の知る限り、この説明は検出アルゴリズムとは関係ありません...それでもこれらの結果は予測どおりではありません。

これがどのように可能か知っている人はいますか?

コードは次のとおりです。

    FeatureDetector detector = FeatureDetector.create(FeatureDetector.SURF);
    //FeatureDetector detector = FeatureDetector.create(FeatureDetector.FAST);
    Imgproc.cvtColor(image1, image1, Imgproc.COLOR_RGBA2RGB);
    Imgproc.cvtColor(image2, image2, Imgproc.COLOR_RGBA2RGB);

    DescriptorExtractor SurfExtractor = DescriptorExtractor
    .create(DescriptorExtractor.SURF);


    //extract keypoints
    long time= System.currentTimeMillis();
    detector.detect(image1, keypoints);
    Log.d("LOG!", "number of query Keypoints= " + keypoints.size());
    detector.detect(image2, logoKeypoints);
    Log.d("LOG!", "number of logo Keypoints= " + logoKeypoints.size());
    Log.d("LOG!", "keypoint calculation time elapsed" + (System.currentTimeMillis() -time));

    //Descript keypoints
    long time2 = System.currentTimeMillis();
    Mat descriptors = new Mat();
    Mat logoDescriptors = new Mat();
    Log.d("LOG!", "logo type" + image2.type() + "  intype" + image1.type());
    SurfExtractor.compute(image1, keypoints, descriptors);
    SurfExtractor.compute(image2, logoKeypoints, logoDescriptors);
    Log.d("LOG!", "Description time elapsed" + (System.currentTimeMillis()- time2));
4

1 に答える 1

7

SURF記述子抽出で最も時間のかかる部分は、すべてのキーポイントの周囲に(2.8 * keypoint.size x 2.8 * keypoint.size)サイズのパッチのサブピクセル抽出です。

だからここに私の推測があります:FAST検出器によって検出されたキーポイントは常にsize7に等しくなりますが、SURF検出器ははるかに大きなサイズのキーポイントを検出できます。したがって、180個の「大きい」キーポイントは319個の「小さい」キーポイントよりも長く処理されます。

于 2012-05-21T20:40:52.347 に答える