ステレオカメラから密な点群を取得する方法は?


12

シーンの再構成にステレオカメラを使用しようとしていますが、通常は疎な点群しか取得できません(つまり、画像の半分以上には適切な深度情報がありません)。

ステレオ処理アルゴリズムは、画像内のテクスチャの存在に依存しており、視差範囲や相関ウィンドウサイズなど、より良い結果を得るために微調整できるいくつかのパラメーターがあることを理解しています。ただし、これらのパラメーターを調整する限り、Kinectなどのアクティブセンサーを使用して取得できる結果にリモートで近い結果を得ることができません。

私が欲しいのは、隣接する領域に対応する点群が一致を取得するのに十分なオーバーラップを持たないことが非常に多いため、再構成が著しく損なわれるためです。

コンピュータビジョンの専門家への私の質問は次のとおりです。一般に、(オフィス環境を恣意的に変更せずに)より高密度の点群を取得するにはどうすればよいですか?


これは良い質問ですが、もっと詳細が必要だと思います。どのようなアルゴリズムでマッチングを計算しようとしましたか?「隣接地域」と「重複」の意味を教えてください。
Josh Vander Hook、

「隣接領域」とは、同等ではないが空ではない交差がある物理空間の一部を意味します。これを「オーバーラップ」と呼びます。つまり、ICPアルゴリズムで照合およびステッチできる点群を生成する種類の領域です。
georgebrindeiro

アルゴリズムについては、私が見つけた最も簡単な可能な解決策であるOpenCVで利用可能なグローバルブロックマッチングアルゴリズムを適用するstereo_image_proc ROSノードをまだ使用しています。私は、ROSノードまたはより良い結果を提供することが知られている他のアルゴリズムを介して直接アクセスできない可能性があるパラメーター設定について聞いてみたいと思います。
georgebrindeiro

回答:


4

特徴点の検出をスキップして、画像全体を(グリッドなどとして)密にサンプリングし、すべてのサンプルポイントで特徴記述子を計算することができます。おそらく、すべてのピクセルの記述子を計算することもできます。

スケールの不変性は失われる可能性がありますが、オブジェクトは両方の画像でほぼ同じスケールであるため、ステレオビジョンではそれほど問題にはなりません。

別のアプローチとして、コーナー、エッジ、ブロブなど、複数の特徴点検出アルゴリズムを組み合わせる方法があります。次に、検出されたすべてのポイントに対して同じ機能記述子アルゴリズムを使用する必要がありますが、この後者の部分は実装がやや難しい場合があります。


2

したがって、私が過去に使用したステレオ画像処理アルゴリズムは、ピクセルごとに実装されていました。私たちはピンホールカメラモデルを使用し、深度推定が実際のものと一致するまで、メジャーを使用して古い方法の測定をいくつか行いました。

一対の平行カメラの方程式は次のとおりです。

  • d=カメラ間の距離の半分
  • f=カメラの焦点距離(同じであると想定)
  • 座標フレーム:
    • x,y,z=カメラ間の座標フレーム(つまり、カメラのベースフレーム)
    • uR,vRロボットから見た右カメラのカメラ座標(uは水平、vは垂直)
    • uL,vL左カメラのカメラ座標
    • 注:カメラ座標の原点は、カメラ間の座標フレームです(つまり、u軸は反対方向を向いています)。

uL=f(xd)zuR=f(x+d)z

zuR=f(x+d)zuL=f(xd)

z(uRuL)=2df

z=2dfuRuL

y=vLz+dff

x=uLz+dff

これらの方程式を使用して、密なステレオクラウドを計算できます。カメラの各ピクセルに1つ。


努力をありがとう、しかし私はステレオモデリングに精通しています。通常、問題は、左カメラと右カメラの(u、v)座標間の対応の問題です。muksieはそれに対処する方法についていくつかのアイデアを出し、sylvain.joyeuxは結果の改善につながる素晴らしいステレオライブラリを指摘しましたが、
georgebrindeiro

1

「画像の半分以上には適切な深度情報がありません」と言うとき、どちらの半分ですか?

私たちが遭遇した1つの問題は、オブジェクトまでの距離がベースラインと同じ桁の場合(通常は非常に広角のカメラに関連付けられている)、「標準」の高密度ステレオアルゴリズムがうまく機能しないことです。私たちはlibelasライブラリを使用してきましたが、その開発者は、これは「ラージベースラインステレオ」と呼ばれ、さらに別の問題であると述べました。


画像の半分に適切な深度情報がないと私が言ったとき、私はすべてのピクセルのうち、約半分だけが視差を計算したことを意味しました(必ずしも1つの連続した領域を形成しているわけではありません)。オブジェクト/ベースラインの距離の比率で述べたのと同じ問題は発生していませんが、そのライブラリについて聞いて非常に興味深く、これが問題になる可能性があります。ありがとう!
georgebrindeiro

1
どちらにしても、ROSラッパーを見つけたので、リベラスを試してみます
georgebrindeiro

0

KITTIステレオベンチマークリーダーをご覧ください。このベンチマークは、特定のポイントで不均衡を生じさせないためにアルゴリズムにペナルティを課します。そのため、上位のパフォーマーは(多くのポイントで推定の根拠があまりない場合でも)密な出力を生成します。一部のメソッドには、リンクされている公開されているコードがあり、それを試すことができます。

時間がかかることによるペナルティはないため、多くのメソッドの実行にはイメージごとに数分かかるため、アプリケーションに適さない場合があることに注意してください。多くのCNNベースのメソッドが導入されていますが、それらは非常にうまく機能しますが、(GPUで)1秒未満で実行されます。これらのうち少なくとも1つ(CRL)には公開コードがあります。

それでも画像上で適切な深さの見積もりが得られない場合は、目に見えるアプローチから何が可能かという限界を見ているだけかもしれません。基本的に、領域に特徴的なテクスチャがあり、ポイントをうまく一致させることができます。または、テクスチャのない領域でいくつかの強力な仮定(たとえば、滑らかさ)を行うための基礎が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.