2016-08-22 6 views
0

ゴールは、一定期間(ROI内で複数の)オブジェクトが静止しているかどうかを検出することです(アプリケーション:ゼブラレーン検出をブロックする)。だから、だから、 入力=動画ファイルいくつかのビデオフレームにわたるブロブ位置の比較

    • 時間tに対して、各ブロブをobeserving

    を意味し、のは、横断歩道のレーンがROIであるとしましょう。バックグラウンド減算はROI内でのみ発生し、そこで動いていなければ各ブロブ(車両)は時間tに対して別々に観測される。

    私が考えているのは、フレーム1とフレームn(時間のしきい値)でブロブの位置を取得し、位置が同じかどうかを確認することです。しかし、これは、複数のブロブがあると仮定して、各ブロブに適用されなければならない。したがって、ループは、各ブロブを1つずつ処理するためにここに含まれます。しかし、フレーム1とフレームnの位置を取得して各ブロブを処理し、それが同じかどうかを比較してください(そうであれば時間tでは動きがないので「ブロック」しています)。その後、次のブロブに移動します。

    私のロジックはJavaコードで書かれた:

    //assuming "blobs" is an arraylist containing all the blobs in the image 
        int initialPosition = 0, finalPosition = 0; 
        static int violatorCount=0; 
    for(int i=0; i<blobs.size(); i++){ //iterate to each blob to process them separately 
        initialPosition = blobs.get(i).getPosition(); 
        for(int j=0; j<=timeThreshold; j++){ 
         if(blobs.get(i) == null){ //if blob is no longer existing on frame j 
          break; 
         } 
         finalPosition = blobs.get(i).getPosition(); 
        } 
        if(initialPosition == finalPosition){ 
         violatorCount++; 
        } 
        //output count on top-right part of window 
    } 
    

    あなたはみんなにMatlabのか、OpenCVのいずれかにゴール/アイデアを実装する方法のロジックを共有することはできますか?

    オプティカルフローは、PSchnのおかげでオプションです。私が考えることができる他のオプション

  • 答えて

    0

    optical flowのようなサウンド。あなたはOpenCV implementationさんでしょうか。次の画像と共にcv::calcOpticalFlowPyrLKにポイントを渡してください(hereを参照)。それから、ポイントとディザイドとの距離を調べることができます。

    私はそれがうまくいくかどうか分かりません。

    +0

    私はそれを確認します。 – Andre

    +0

    あなたの結果を投稿してください;) – PSchn

    関連する問題