質問: Android-openCVアプリケーションをスピードアップするにはどうすればよいですか? 私はSURF記述子を使用するopenCVアプリケーションを実装しました。コードは次のようになります: > 入力ビデオストリームのサイズを縮小してスピードアップします。 > > ``` capture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, display.getWidth()); capture.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, display.getHeight()); capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA); try{ //-- Step 1: Detect the keypoints using SURF Detector surfDetector.detect( mRgba, vector1 ); for (KeyPoint t : vector1) Core.circle(mRgba, t.pt, 10, new Scalar(100, 100,100)); //-- Step 2: Calculate descriptors (feature vectors) //extractor.compute(mRgba, vector1, descriptor1); //-- Draw matches //Mat img_matches; //drawMatches( mRgba, vector1, mRgba, vector1, matches, img_matches ); }catch(Exception e){ Log.e( "ERROR", e.toString()); } ``` しかし計算はまだ遅すぎるので、私は入力ビデオストリームの量を減らす別の方法を見つける必要があります。またはそれをスピードアップする別の方法を知っているなら、それを私と共有してもかまいません;) Thanks for your time & answers
回答: アプリケーションにSURF機能/記述子を使用する必要がありますか? SURFは非常にうまく一致するので魅力的ですが、あなたが知ったように、それはやや遅いです。ビデオを介してポイントをトラッキングするだけの場合、ポイントがフレームごとに大きく変化しないことを前提にして、Harris/FASTコーナーを検出して一致させてから、一致するものが有効であると判断することができます元の点のxピクセルの半径? OpenCVには、フィーチャディテクタおよび記述子抽出プログラムおよび[記述子マッチャー](http ://opencv.itseez.com/modules/features2d/doc/common_interfaces_of_descriptor_matchers.html#descriptormatcher-create )を使用していない場合は、オプションを調査する価値があります。