2

Emgu CV C# を使用して、動く LED を追跡しようとしています。LEDだけが白いスポット/ブロブになるまで、キャプチャした画像をしきい値処理します。ブロブ分析/追跡を使用しましたが、うまくいきましたが、問題は、ライトを速く動かしすぎると追跡できなくなることです。私が減速すれば、それはうまくいきます。物事をスピードアップする方法はありますか?

最終的には、基本的に LED を使用してコンピューターに描画する必要があります。また、他の目的のために LED の位置/中心も必要です。

ブロブの分析と追跡に使用したコードは、Emgu.CV.Examples --> Video Surveillance のコードと同じです。

4

1 に答える 1

0

はい、いいえ。コードを調べてプロセスを合理化することで、画像処理にかかる時間をできるだけ短くすることができます。つまり、ループや計算を減らすことができます。コンピュータのハードウェアを変更できます。より多くのコアを備えたより高速なプロセッサは、より高速で処理するためのより多くのスレッドを許可します。CUDA グラフィックス カードに投資してこれを処理することもできますが、コードがそれほど複雑でない場合は、パフォーマンスが低下することさえあります。ハイエンドのグラフィックカードが推奨されます。

実際、結果を画面に表示するのに多くの時間が無駄に費やされています。これでパフォーマンスが向上しない場合、唯一のオプションは、解析アルゴリズムを FPGA ハードウェア デバイス (事実上、これらはカスタム ベースのプロセスです) に移行することです。これは時間がかかり、そのようなことをしたことがない場合は非常に困難です。画像のリアルタイム処理の実装と達成は困難です。考えられる代替手段は、XBOX Kinect をごまかすことです。実際には、フレーム間のユーザーの動きを予測する複雑なアルゴリズムが導入されています。これが、ゲームプレイがときどきびくびくする理由です。

ハフ ブロブ トラッキングを使用している場合は、ブロブ トラッキング ルーチンを調べることをお勧めします。画像の行と列の合計を見て、独自のハード コーディングを試してみてください。ただし、X と Y の位置に対応するピーク値が得られます。したがって、使用できる LED は 1 つだけです。これにより、Hough blob 追跡機能に関連する非表示のプロセスが削除されるため、パフォーマンスが向上する場合があります。

次に、可能な限り単純なしきい値処理手法を変更してみてください(まだ行っていない場合)、光が明るい場合は、グレースケール画像から一定の250を差し引くだけです。明るい部屋またはこれらの別の光でない限り、うまくいけばLEDをそのままにしますソース。

私は現在、画像処理で PHD を行っているので、リアルタイム処理を達成するには一生かかる可能性があることを警告します。また、Web カメラが約 30 fps で画像を取得する最良の結果を期待しないことをお勧めします。処理を行うと、せいぜい 25 fps で、場合によっては 10 fps 程度になることもあります。

標準の LED に代わるものは、カメラに適したライト フィルターを備えた赤外線 LED です。これにより、バックグラウンド ノイズがほとんどなく、LED からブロブだけが見えるようになります。例については、Instructables.com を確認してください。

クリスの助けになることを願っています

于 2011-07-14T15:18:25.713 に答える