一般に、世界に関する追加情報がない限り、1つの画像から距離測定値を抽出することはできません。たとえば、世界が平面であることがわかっている場合(または平面領域である床を検出できる場合)、ホモグラフィを推定できます。
ホモグラフィは、平面間の射影変換です(3x3マトリックス)。カメラ固有のキャリブレーションがあれば、この平面誘導ホモグラフィを回転と平行移動に分解できます。翻訳はスケールアップされています。このスケールのあいまいさは、カメラから床(平面)までの距離を知ることで解決できます。
ホモグラフィを取得したら、平面上にないオブジェクトを検出できます。ホモグラフィでは、最初の画像を2番目の画像にワープできます。平面上のオブジェクトは整列し、わずかな誤差が生じます。平面上にないオブジェクトは整列しません。これは視差と呼ばれます。
これを実装する1つの方法は
- 両方の画像から特徴を抽出します。
- 機能を一致させるか、追跡します。
- RANSACを使用してホモグラフィを推定します。
- キャリブレーションを使用して、ホモグラフィを回転と平行移動に分解します。
- 最初の画像を
2番目の画像にワープします。大きなエラーのあるピクセルは床になく、
障害物になる可能性があります。
ほとんどのビルディングブロックはopencvで実装されています(http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.htmlを参照)。
幸運を。
PSホモグラフィ分解により、平面の法線も得られます。ただし、これはグランドプレーンであると想定しているため、上方向を指す法線があります。キャリブレーション手順で、より正確なソリューションを実現できます。チェッカーボードターゲットを使用して、そのポーズを推定できます。ポーズには平面法線とカメラまでの距離があります。