2012-02-22 4 views
0

OpenCVを使用しているプロジェクトで作業しています。オプティカルフローアルゴリズムcvCalculateOpticalFlowFarnebackを使用して、ビデオ上のオプティカルフローを取得しています。私は、ドキュメントを読んでいるとさえソースにビットを探して、あなたがアルゴリズムを養うことができますオプションがありcvCalculateOpticalFlowFarnebackのOPTFLOW_USE_INITIAL_FLOWオプション

:OPTFLOW_USE_INITIAL_FLOW

私はそれで遊んでてきたが、私はの違いを見ることができません速度または精度。だから私の質問は:

オプションは何ですか?あなたはそれを使用する際に何か違った経験をしましたか? (良いか悪いか)

また、いくつかの実装を見ると、このオプションはバグがあるので避けなければならないと言いました。私はそれ以外のところではうまくできませんでしたが、それは私を少し神経質にさせます(特にプロダクションソフトウェアに含める場合)。

コメントはまだありません。

答えて

2

OpenCV documentation for cvCalculateOpticalFlowFarnebackは言う:

OPTFLOW_USE_INITIAL_FLOW使用することを意味し、最初のフロー近似

として入力フロー:あなたは、フローの見積もりと出力パラメータの流れこの機能に記入した場合あなたが思っているのと同じように、あなたが最初に見積もったフローを使用します。入力として流量の合理的な見積もりを与えることができれば、実際の違いのみを見ることができます。さもなければこれは効果がなく、さらに悪化させます。

  • 最初の2つの画像では、パラメータなしでフローを計算してください。
  • 次のイメージでは、OPTFLOW_USE_INITIAL_FLOWパラメータを使用して、新しい計算の入力として前のペアに対して計算されたフローを使用します。それを使わずに流れを計算してください。
  • 結果のフローとそれにかかる時間を比較します。これはあなたがパラメタの効果を示すはずです。

グンナーFarnebackのアルゴリズムは、オプティカルフローを見つけるためにいくつかの最適化アルゴリズムである(私が正しく理解している場合)ので、それはローカル最大で立ち往生しがちなので、良い初期化は、おそらくあなたがより良い地球最大値を見つけることができますしたがって、パラメータの効果はより良いフロー出力でなければなりません。必ずしも高速ではありません。実装や生産、使用中のバグの可能性について

(注:私は、実際のソースを見ていない):

  • それはあなたのニーズに許容されずにあなたが見つけるオプティカルフローであれば、しないでくださいこれを使って。
  • パラメータの影響をテストし、それが役立つことがわかったら、そのパラメータが役立ち、それを使用することを確信するまで、さらにテストしてください。
  • OpenCV mailinglistのバグについて質問できますが、試してみる前にまずいくつかのテストやコード読み取りをお勧めします。