私は、UGVで使用するステレオビジョンシステムを構築中です。このシステムは、大きな屋外フィールドで比較的小さな色の岩を見つけるために遠隔操作される競技で使用されるロボット用です。このようなシステムを調整し、ステレオビジョンシステムのデータを処理する方法を理解しています。しかし、そのようなシステムにカメラを選択する方法は知りません。ステレオビジョンシステム用のカメラを選ぶためのベストプラクティスは何ですか?
私は、UGVで使用するステレオビジョンシステムを構築中です。このシステムは、大きな屋外フィールドで比較的小さな色の岩を見つけるために遠隔操作される競技で使用されるロボット用です。このようなシステムを調整し、ステレオビジョンシステムのデータを処理する方法を理解しています。しかし、そのようなシステムにカメラを選択する方法は知りません。ステレオビジョンシステム用のカメラを選ぶためのベストプラクティスは何ですか?
回答:
私の頭の上から、私は次の選択基準で行きます
まず、必要な1秒あたりのフレーム数と、そのフレームレートで処理できるカメラの解像度を計算することから始めます。それ以外の場合、それはあなたがあなたのニーズに合わないカメラを使いすぎたり、購入するのを防ぎます。
それ以外にも、選択をより困難/興味深いものにするさまざまな機能があります。異なるカメラ(特にAxisのようなネットワークカメラ)を使用すると、画像品質を変更したり、画像ストリームの最大ビットレートを指定したりできます。一部のカメラでは、シャッタースピードを選択できるため、画像の露出時間を一定にしたり、平均照明を一定にしたりできます。一部のカメラは他のカメラよりも感度が高くなります(これで最後に作業したのは2009年であり、PS3 Eyeは低光量の条件下で非常にうまく機能することに気付きました)。
おそらく最善の方法は、DSLRで撮影したいくつかの静止画像で画像処理アルゴリズムを実行し、フレームサイズと品質を下げて、どこから問題が始まるかを確認することです。
次のことに注意する必要があります。
ハードウェアでのカメラの同期は、一部のカメラ、特にファイヤーワイヤーカメラで実現できます。これにより、物事が動き回っているときのステレオの結果が大幅に改善されます。
取り付けは、ステレオペアの外部パラメーター(カメラ間の相対的なポーズ)の変更がキャリブレーション後に変更されないように行う必要があります。UGVは屋外の不整地に直面し、物事が振動するため、リグではより重要です。
専用のステレオハードウェアにより、視差画像をステレオビジョンシステムの出力として直接取得できるため、組み込みコンピューティングの負荷が軽減されます。また、ソフトウェアでまったく同じアルゴリズムを実行するよりもはるかに高速になる傾向があります。
いつものように、あなたが喜んで支払うほど、より良い結果が得られます。正直に言うと、Bumblebee2のような本格的なステレオカメラを購入できるなら、それが私がしたいことです。そうでなければ、もしあなたが安い側にいるなら、私は単にKinectを使うだろう。同じ価格でそれよりも優れたシステムを手に入れることができるとは思えない。
これは興味深いトピックであり、最初の試行で正しく理解するのはそれほど簡単ではありません。これに関する経験から、最も重要なことは次のとおりです。
同期。カメラは100%同期されている必要があります。たとえば、UGVが控えめな36Km / hr(10m / s)で走行しており、30フレーム/秒でフレームを記録しているとします。つまり、UGVはすべてのフレームで3mをカバーします。ここで、同期が1ミリ秒ずれているとしましょう。カメラの1つは0.3ミリほどずれていますが、これは悪いことです(頭のてっぺんから外れています)。同期の問題を検出するのは非常に困難です。
重複します。ステレオを取得するには、カメラをオーバーラップさせる必要があります。したがって、アプリケーションに十分なオーバーラップが得られるように、レンズの焦点距離(視野)とベースラインの組み合わせを選択する必要があります。基本的に、三角法はボード上で動作するか、簡単なmatlab / pythonスクリプトです。
UGVの場合、ステレオには2つの用途があります。
ナビゲーションとポーズの推定この場合、おそらく大きなベースラインと長い焦点距離が必要です。これにより、ステレオは深度をより良く、より長い範囲で確認および解決できます。
障害物の検出と回避おそらく、より近いものに焦点を合わせることができるように、より短いベースラインとより広いレンズ(より短い焦点距離)が必要になるでしょう。
いくつかのUGVには、ナビゲーション用の大きなベースラインの狭い視野と障害物回避用の別の1つまたは2つのステレオ設定の両方がある場合があります。
あなたが買うものに非常に注意してください。一部の企業は、既に構築されたステレオセットアップを提供しています。これらは物事の堅牢性の面で素晴らしいです、彼らは簡単にキャリブレーションを失うことはなく、常に同期しています。問題は、市販のもののベースラインが小さいことです。独自に構築したい場合。私はあなたがそうすることになると思います、カメラが同期可能であることを確認してください。Firewireはこれに最適です。同じバス上の2台のカメラは、そのままで125マイクロ秒の精度で同期します。USBとGigeのカムは同期するのが大変です。すべてをまとめるとき、レンズがまったく動かないようにし、ベースラインが硬く、アプリケーションにとって非常に硬いことを確認する必要があります。
レンズの選択にも注意してください。すべてのレンズがすべてのカメラで動作するわけではありません。レンズにも解像度があります。これは別のトピックです。これは、http://www.qualitymag.com/articles/90642-qa--selecting-lenses-for-machine-vision-systemsの短い記事です。