コンピューター ビジョン ステレオスコピック ミニマリストの概要

立体視の概要

        客観的な世界は空間の 3 次元なので、視覚の研究と応用は基本的に 3 次元でなければなりません。ほとんどの既存の画像取得デバイスによって取得された画像は、3-D オブジェクトの空間情報を含む場合がありますが、それ自体が 2-D 平面上にあります。画像から世界を理解するには, 2D 画像から 3D 空間情報を復元する必要があります. ここで重要なのは, シーンの各点と観察者 (または任意の基準点) の間の距離を測定することです.この問題を解決する重要な方法です。

        立体視は、シーンの複数の 2D ビューから 3D 情報を抽出するプロセスです。先進運転支援システム (ADAS) やロボット ナビゲーションなどのアプリケーションで使用されるステレオ ビジョンは、対象となるオブジェクトのカメラまでの実際の距離または範囲を推定するために使用されます。

        3D 情報は、シーン内のポイントの相対的な深度を推定することにより、画像のペア (ステレオ ペアとも呼ばれます) から取得できます。これらの推定値は、ステレオ ペアの対応するポイントを一致させることによって構築されるステレオ視差マップで表されます。

2. 画像の 3D 情報

1.影

 2.テクスチャ

 3. フォーカス

 4. エクササイズ

 5. その他

6. 概要情報 

視点
 隠れたシルエット

         同じサイズのオブジェクトは、遠くにあると小さく見えます (これは遠近法にも関連しています)。

3. 立体視システム

 1. カメラのキャリブレーション

        目的は、有効なイメージング モデルに従ってカメラの内部および外部属性パラメータを決定し、空間座標系の物点と画像平面上のその画像点との対応関係を正しく確立することです。ステレオ ビジョンでは、複数のカメラが使用されることが多く、現時点では各カメラを個別に調整する必要があります。コンピューターの 2 次元画像座標から 3 次元情報を取得する場合、カメラが静止している場合は、1 回のキャリブレーションのみが必要です。カメラが動いている場合は、複数回のキャリブレーションが必要になる場合があります。

2. 画像取得

        画像取得には、空間座標と画像プロパティの 2 つの側面が関係します。立体画像の取得は、立体視の物質的な基礎です。最も一般的に使用される立体画像は双眼画像です。また、近年では多眼画像を利用する方法も多く、これらの複眼画像を取得するカメラ(および対応する観察視点)は、直線上、平面上、さらにはステレオ上にある場合もあります。分布。

3. 特徴抽出

        立体視は、同じシーンの異なる視点間の視差を使用して、3 次元情報 (特に奥行き情報) を取得するのに役立ちます。異なる画像で同じシーンの対応関係を決定する方法は、重要なステップです。この問題の解決策の 1 つは、ステレオ イメージ間のマッチングに適したイメージの特徴を選択することです。ここでいう機能とは一般的な概念であり、主にピクセルまたはピクセルの集まりの表現と記述を抽象的に表したものです。現在、画像の特徴を取得するための普遍的な理論はありませんが、一般的に使用される照合特徴は、小さなものから大きなものまで、主に点状の特徴、線状の特徴、および領域の特徴です。一般的に、大規模な特徴は、より豊富な画像情報を含み、必要な数が少なく、高速なマッチングが容易に得られますが、その抽出と記述は比較的複雑であり、位置合わせの精度も低くなります。一方、小縮尺地物自体は測位精度が高く、表現や記述もシンプルですが、数は多いものの情報量が少ないため、強い制約とロバストなマッチングが必要になります。マッチングの戦略です。

4.ステレオマッチング

        ステレオマッチングとは、選択された特徴の計算に従って特徴間の対応関係を確立することを指し、異なる画像内の同じ空間点の画像点間の関係を確立し、対応する視差画像を取得します。ステレオ マッチングは、ステレオ ビジョンにおける最も重要で難しいステップです。空間 3D シーンを 2D 画像として投影すると、同じシーンを異なる視点から見た画像は大きく異なり、照明条件、ノイズ干渉、シーンのジオメトリと歪み、表面など、シーンには多くの変化要因があります。物理的特性やカメラの特性などは、単一の画像グレー値に統合されます。このグレー値だけで上記の要因を判断することは非常に難しく、これまでのところ、この問題はうまく解決されていません。

5. 3D情報の復元

        ステレオ マッチングによって視差画像が得られると、奥行き画像がさらに計算され、シーン内の 3 次元情報が復元されます (10 章では、他の 3 次元シーン復元方法についても詳しく説明します)。深度距離測定の精度に影響を与える要因には、主にデジタル量子化効果、カメラのキャリブレーションエラー、特徴検出とマッチングの位置決め精度などが含まれます。一般的に言えば、深度測定の精度は、マッチング ポジショニングの精度に比例し、カメラのベースライン (異なるカメラ位置を結ぶ線) の長さに比例します。基線長を長くすると深度測定の精度が向上しますが、同時に画像間の差が大きくなり、シーンが遮られる可能性が高くなり、マッチングが難しくなります。したがって、正確なステレオ ビジョン システムを設計するには、すべての要素を包括的に考慮して、各リンクが高精度であることを確認する必要があります。

4番目に、OpenCVはステレオ画像の深度マップを計算します

        主にStereoBM_create関数。

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt

imgL = cv.imread('Tsukuba_L.png', 0)
imgR = cv.imread('Tsukuba_R.png', 0)

stereo = cv.StereoBM_create(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL, imgR)

        結果を表示します。結果に満足できない場合は、numDisparities および blockSize パラメーターを調整できます。

fig, ax = plt.subplots(ncols=3, nrows=1)
ax[0].imshow(imgL)
ax[1].imshow(imgR)
ax[2].imshow(disparity)
plt.show()

おすすめ

転載: blog.csdn.net/bashendixie5/article/details/127075247