ゴールは、一定期間(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のおかげでオプションです。私が考えることができる他のオプション
私はそれを確認します。 – Andre
あなたの結果を投稿してください;) – PSchn