2012-03-05 6 views
0

私はEMGU OpenCVラッパーをC#に使用しています。私はうまく作成された視差マップを持っています。しかし、私の特定のアプリケーションでは、非常に少ないピクセルの視差値しか必要とせず、リアルタイムでそれらを必要とします。計算には約100ミリ秒かかっていますが、何千ものピクセル値ではなく数百のピクセル値に格差をつけることでかなりスピードアップすると思います。ステレオソルバーコードの「フードの下」で何が起こっているのか分かりませんが、必要なピクセルの視差を計算するだけでスピードアップする方法はありますか?EMGU特定のピクセルのみのOpenCV視差

答えて

0

まず、実際に何を達成しようとしているのか、またどのアルゴリズムを使用しているのかについては言及していません。例えば。 StereoGCは、StereoSGBMとStereoBMの両方と比較して、実際には遅い(すなわち、リアルタイムではないが、通常ははるかに正確である)。これらの最後の2つは、いくつかの条件が満たされていれば、リアルタイムで使用できます。

  • 入力イメージのサイズはかなり小さいです。
  • 冗長なパラメータセットを使用していません(たとえば、numberOfDisparitiesの値が大きいほど計算時間が長くなります)。

精度に関しては奇跡を期待しないでください。

それ以外にも、「ほんの数画素」の問題があります。私が理解する限り、OpenCVで実装されたアルゴリズムは通常、視差値を決定するために1ピクセル以上の情報に依存しています。例えば。画像Aからのどのピクセルを画像Bのどのピクセルにマッピングするかを検出するためには近傍が必要です。その結果、一般に画像の他の1ピクセルをすべて破棄することはできません(ただし、どちらのイメージでも、ステレオ・メソッドはまったく必要ありません)。あなたの入力画像の大きな枠を捨てることができない限り、そこに関心のあるピクセルを決して見つけられないことを知っているなら、あなたの質問のこの部分への答えは「いいえ」と言えます。

注目画素が常に入力画像の特定の矩形内にあることがわかった場合は、この矩形に対する入力画像のROI(関心領域)を指定できます。 OpenCVにバグが含まれていないと仮定すると、これは計算を少しスピードアップするはずです。

YouTubeでGPUを使用してEmguCV(またはプレーンOpenCV)を使用してステレオ対応を見つけるリアルタイムの例を見つけることができます。多分これがあなたを助けるかもしれない。

免責事項:あなたの質問に詳細が含まれている場合、これはより完全な回答かもしれません。

関連する問題