2011-12-29 8 views
1

OpenCVを使用して、cv.camshift()関数を使用して画面上のオブジェクトを追跡するアプリケーション(Windows 7ではC++)を記述しています。私のカメラウィンドウ(カメラが見ていることを示す私のアプリケーションウィンドウ)は、非常に速い動きに関して少し遅れていることに気づいた。遅れは約0.1秒と思われます - 非常に小さいが目立つ。私はこれらの遅延に対して非常に敏感なアプリケーションを開発しています。コーディングエラーを除外するために、私はOpenCVサンプルビデオアプリケーションの1つを使用しようとしました。これは、カメラが画面上で見ているものを示しています。また、この小さな遅延もありました。興味深いことに、自分のカメラがSkypeを通じて見ているものを見ても、事実上全く遅延がないようです。この小さな遅延を取り除くためにOpenCVをもっと速く動作させるためにできることはありますか?OpenCVの小さな画面に遅延がありますか?

答えて

1

CamShiftは、meanShift - オブジェクト中心の平均動きを使用してモーションを検出します。これは、複数のフレームにわたって計算されなければならない。 30Hzのフレームレートの場合、3フレームの深度は0.1秒である。

+0

意味があります!説明をありがとう!だから、私は別のテクニックを実装する必要があります - 一つは、平均を取ることを含まない。再度、感謝します! – pkout

+0

しかし、驚いているのは、OpenCVスーパーパックに同梱されているcamera.pyデモを実行してカメラの出力を見るだけで、オブジェクトをすばやく移動すると視野の中には小さな遅延もあります。この場合、カムシフトは行われない。多分、複数のフレームにわたって計算するよりも遅れがあるかもしれません。これが間違っていると思ったら教えてください。 – pkout

+0

これ以上の研究をした後、この議論に追加するには、遅延は通信のカメラレイテンシに内在することが分かります。それを取り除く唯一の方法は、待ち時間の少ないプロフェッショナルなカメラを手に入れることです。私たちは、レイテンシーが非常に小さいPointGreyカメラに行ってしまいました。これはソフトウェアの問題ではなく、ハードウェアの問題です。 – pkout

関連する問題