0

最大 12 台のカメラを使用する 3D 追跡システムを構築しています。OpenCV 関数StereoCalibrateが 2 つのカメラの相対的な位置と向きを見つけることができることを理解しています。12台のカメラに対してこれを行う必要があります。目的の結果を達成できる OpenCV 関数または利用可能なソース コードはありますか?

私はこのStereoCalibrate機能を使用しており、カメラのペアのすべての組み合わせに単純に適用しています。彼らはより効率的な方法ですか?

4

1 に答える 1

1

おそらく、カメラをペアでキャリブレーションしたくないでしょう。少なくとも最初は、シーン内の固定参照フレームに対して、カメラの位置/ポーズを互いに独立して調整することが望ましいです。この種の実行可能なソリューションが得られた後、特定のペアでステレオを実行する予定がある場合は、それを改良することができます。

セットアップのジオメトリに関する詳細がなければ、アドバイスを与えることは困難です (たとえば、カメラはすべて共通の被写体を見ていますか?)。一般的に言えば:

  • 最初にカメラごとに固有パラメーターをキャリブレーションすることをお勧めします。これは、各カメラのキャリブレーション ターゲット (チェッカーボードなど) の画像を他のカメラとは別に収集することによって行うことができますが、それらを適切に配置した後に行うことができます。光学系が最終設定にロックされています。この方法では、最終的なカメラ ネットワークの外部要素のみを解決する必要があります。
  • 相対ポーズを調整するには、既知のジオメトリで製造された 3D ターゲット/リグが必要になる可能性が非常に高くなります。かなり一般的な種類は、互いに 90 度の角度で交差する 3 つの平面リングのセットで構成され、その上に市松模様のようなマーカーが付いています。
  • または、単一の平面ターゲットを使用して、たとえばターンテーブルを使用して既知の角度で回転させることもできます。
  • ソリューションの最終的な「引き締め」のために、すべてのパラメーターを一緒に最適化して、最終的なバンドル調整を実行する必要がある可能性があります。Google の「ceres」ソルバーを検索して、優れた無料のソルバーを見つけてください。
于 2013-09-03T13:10:42.773 に答える