大きな視差のあるステッチング

大きな視差のあるステッチング

5 台のカメラの画像をつなぎ合わせる必要があります。カメラは水中遠隔操作車両の側面に取り付けられています。基本的には 2.1m x 1.3m x 1.85m のサイズのキューポイドです。カメラはこのキューポイドの側面に取り付けられています。つまり、前面に 1 台、背面に 1 台、右側に 1 台、左側に 1 台、下部に下向きに 1 台です。すべてのカメラには、視野角が 180° 以上の魚眼レンズが付いており、解像度は 4k です。目標は、画像をリアルタイムでつなぎ合わせ、VR ヘッドセットで結果を表示することです。

私はカメラの位置とパラメータだけを使った純粋な幾何学的アプローチを試しました。これはうまくいきましたが、画像間の継ぎ目は特定の視聴距離でのみ有効です。そうでない場合、継ぎ目は非常に目立ち、水平カメラのみをつなぎ合わせることができましたが、下のカメラはつなぎ合わせることができませんでした。

NVidia の vrWorks 360 も試してみましたが、これは水平に並んだカメラでしか機能しないため、下のカメラは無視されます。また、水平カメラのステッチ結果は非常に悪かったです。

私も偶然見つけた視差を許容する画像合成この実装ただし、水平方向に揃えた画像にのみ機能し、魚眼レンズは使用できません。

私の最後のアプローチは、PTGuiこのキャリブレーションをステッチこれはかつては商用のステッチング ソフトウェアでしたが、現在はオープン ソースになっています。これはこれまでのところ最高の結果をもたらしました。ただし、まだ位置合わせエラーがいくつかあり、近くにオブジェクトがほとんどまたはまったくない場合にのみ正常に機能します。

また、openCV を直接使用しようとしましたが、API を使用するオプションが多数あり、構成するモジュールも多数あるため、これは私にとっては難しすぎました。

これらの画像を効率的につなぎ合わせる方法をご存知の方はいらっしゃいますか? 無料のオープンソース ソリューションが望ましいですが、目的を達成できるのであれば有料のクローズド ソース アプリケーションでもかまいません。

答え1

「リアルタイム」について話すとき、ステッチング時の高速画像処理について言及していると思います。そうであれば、多くの制御、オプション、GPU 処理を備え、ボトム イメージでパノラマを作成できるこのオープン ソース ソリューションを検討してください。

本当の「リアルタイム」について言及する場合、おそらく OpenCV を使用したアドホック システムを選択する必要があり、おそらくリアルタイム処理は速度と解像度のトレードオフに依存することになります。基本的な例へのリンクを以下に示します。

乾杯!

関連情報