ステレオビゞョンの基瀎

この蚘事には、ステレオビゞョンで䜿甚される数孊的装眮に関する基本情報が含たれおいたす。 それを曞くずいうアむデアは、特にOpenCVで実装されたアルゎリズムを䜿甚しお、ステレオビゞョンメ゜ッドで䜜業を始めた埌に生たれたした。 これらのアルゎリズムは、倚くの堎合、「基本行列」、「゚ピポヌラ幟䜕」、「䞉角枬量」などのさたざたな抂念を指したす。 コンピュヌタヌビゞョンに関する非垞に優れた曞籍がありたす。これには、ステレオビゞョンや必芁なすべおの抂念が蚘茉されおいたすが、倚くの堎合、初心者には情報が倚すぎたす。 ここでは、短い圢匏で、ステレオビゞョンがどのように機胜するかに関する基本的な情報ずそれに関連する基本的な必芁な抂念を瀺したす。

この蚘事のほずんどすべおの資料は、R。HartleyおよびA. Zissermanによる「コンピュヌタヌビゞョンの耇数ビュヌゞオメトリ」に基づいおおり、深床マップの構築に関するセクションは、Gary Bradski、Adrian KaehlerによるLearning OpenCVの資料に基づいお説明されおいたす。



蚘事の内容を理解するには、分析幟䜕孊ず線圢代数の䞀般的な抂念を持っおいるだけで十分です。行列、ベクトル、スカラヌ、ベクトル積が䜕であるかを知るこずです。



1射圱幟䜕ず同次座暙

射圱幟䜕孊は、立䜓芖幟䜕孊においお重芁な圹割を果たしたす。 射圱幟䜕孊にはいく぀かのアプロヌチがありたす幟䜕孊ナヌクリッド幟䜕孊、公理のような幟䜕孊オブゞェクトの抂念を導入し、これから射圱空間のすべおのプロパティを導き出す、分析的ナヌクリッド幟䜕孊ぞの分析的アプロヌチのように座暙ですべおを考慮する、代数的です。



さらなる議論のために、射圱幟䜕孊ぞの分析的アプロヌチの理解が䞻に必芁であり、以䞋に提瀺されるのは圌です。



射圱平面のポむント。 2次元の射圱空間射圱平面ずも呌ばれたすを考えたす。 通垞のナヌクリッド平面では、点は射圱平面䞊の座暙のペア x 、 y  Tで蚘述されたすが、点は3芁玠ベクトル x 、 y 、 w  Tで蚘述されたす。 さらに、れロ以倖の数倀aの堎合、ベクトル x 、 y 、 w  Tず ax 、 ay 、 aw  Tは同じ点に察応したす。 たた、れロベクトル0,0,0 Tはどの点にも察応せず、考慮の察象倖ずなりたす。 このような平面点の蚘述は、同次座暙ず呌ばれたす。



射圱平面の点は、通垞のナヌクリッド平面の点に関連付けるこずができたす。 w ≠0の座暙ベクトル x 、 y 、 w  Tに぀いお、ナヌクリッド平面の点を座暙 x / w 、 y / w  Tに関連付けたす。 w = 0の堎合、぀たり 座暙ベクトルの圢匏は x 、 y 、0 T であり、この点は無限倧にあるず蚀いたす。 したがっお、射圱平面は、無限遠からの点で補われるナヌクリッド平面ず芋なすこずができたす。



座暙ベクトルを最埌の成分で陀算しおから x 、 y 、 w  T → x / w 、 y / w  Tを砎棄するこずにより、同次座暙 x 、 y 、 w  Tから通垞のナヌクリッド座暙に移動できたす そしお、ナヌクリッド座暙 x 、 y  Tから、座暙ベクトルに1を远加するこずにより、同次座暙に進むこずができたす x 、 y  T → x 、 y 、1 T



射圱平面䞊の線。 射圱平面䞊の線は、点のように、3芁玠ベクトルl = a 、 b 、 c  Tによっお蚘述されたす。 繰り返したすが、線を蚘述するベクトルはれロ以倖の係数たで決定されたす。 この堎合、線の方皋匏は次の圢匏になりたす l T x = 0。



a 2 + b 2 ≠0の堎合、通垞の盎線ax + by + c = 0のアナログがありたす。そしお、ベクトル0,0、 w は無限にある盎線に察応したす。



䞉次元射圱空間。 射圱平面ずの類掚により、3次元射圱空間の点は、同次座暙 x 、 y 、 z 、 w  Tの4成分ベクトルによっお決定されたす。 繰り返したすが、れロ以倖の数倀aの堎合、座暙ベクトル x 、 y 、 z 、 w  Tず ax 、 ay 、 az 、 aw  Tは同じ点に察応したす。



射圱平面の堎合ず同様に、3次元ナヌクリッド空間ず3次元射圱空間の点の間で察応を確立できたす。 w ≠0の同次座暙 x 、 y 、 z 、 w  Tのベクトルは、座暙 x / w 、 y / w 、 z / w  Tのナヌクリッド空間の点に察応したす。 そしお、フォヌム x 、 y 、 z 、0 Tの同次座暙のベクトルを持぀点に぀いお、圌らはそれが無限遠にあるず蚀いたす。



射圱倉換。 さらなるプレれンテヌションに必芁ずなるもう1぀のこずは、射圱倉換ホモグラフィ、射圱倉換-英語文孊です。 幟䜕孊的な芳点から芋るず、射圱倉換は、盎線を盎線に倉換する射圱平面たたは空間の可逆倉換です。 座暙では、射圱倉換は非瞮退正方行列Hずしお衚されたすが、座暙ベクトルxは次の匏に埓っお座暙ベクトルx 'になりたす x ' = H x 。



2投圱カメラモデル



図1 カメラモデル。 Cはカメラの䞭心、 Cpはカメラの䞻軞です。 3次元空間の点Xは 、画像平面䞊の点xに投圱されたす。
珟代のCCDカメラは、投圱カメラ、ピンホヌルカメラず呌ばれる次のモデルを䜿甚しおよく説明されおいたす。 射圱カメラは、カメラの䞭心、 䞻軞 -カメラの䞭心から開始しおカメラが芋おいる堎所に向けられたビヌム、画像平面-点が投圱される平面、およびこの平面䞊の座暙系によっお定矩されたす。 このようなモデルでは、空間Xの任意の点が、カメラCの䞭心を開始点Xに接続するセグメントCX䞊の点xで画像平面に投圱されたす図1を参照。



投圱匏には、同次座暙での簡単な数孊衚蚘がありたす。

x = P X
ここで、 Xは空間内の点の同次座暙、 xは平面内の点の同次座暙、 Pは3×4カメラ行列です。



行列Pは次のように衚されたす。P = KR [ I | -c ] = K [ R | t ]、ここでKは3×3カメラの内郚パラメヌタヌの䞊䞉角行列です特定のビュヌを以䞋に瀺したす、 Rはグロヌバル座暙系に察するカメラの回転を決定する3×3盎亀行列、 Iは単䞀の3×3行列、ベクトルc-カメラの䞭心の座暙、およびt = -R c



カメラ行列は、定数x = P Xを䜿甚しお投圱点の結果を倉曎しない䞀定の非れロ係数たで決定されるこずに泚意しおください。 ただし、この定数係数は通垞、カメラマトリックスが䞊蚘の圢匏になるように遞択されたす。



最も単玔な堎合、カメラの䞭心が原点にあるずき、カメラの䞻軞はCz軞ず䞀臎し、カメラ平面䞊の座暙軞は同じスケヌル正方圢ピクセルに盞圓を持ち、画像の䞭心はれロ座暙を持ち、カメラ行列はP = K [ 私 | 0 ]、ここで

実際のCCDカメラでは、ピクセルは通垞正方圢のものずわずかに異なり、画像の䞭心はれロ以倖の座暙を持ちたす。 この堎合、内郚パラメヌタヌのマトリックスは次の圢匏を取りたす。



係数f 、αx、αy-は、カメラの焊点距離ず呌ばれたすそれぞれ、共通およびx軞ずy軞に沿っお。



さらに、光孊系の䞍完党な性質により、カメラから取埗した画像には歪み歪みが含たれおいたす。 これらの歪みには、非線圢の数孊的な蚘録がありたす。

ここで、 k 1 、 k 2 、 p 1 、 p 2 、 k 3は歪み係数であり、光孊系のパラメヌタです。 r 2 = x ' 2 + y ' 2 ;  x '、 y '-正方圢ピクセルで歪みのない画像の䞭心に盞察的な点の投圱の座暙;  x ″、 y ″-正方圢ピクセルの画像の䞭心に察する点の歪んだ座暙。



歪みはオブゞェクトたでの距離に䟝存せず、オブゞェクトのピクセルが投圱されるポむントの座暙のみに䟝存したす。 したがっお、歪みを補正するために、カメラから取埗した元の画像は通垞倉換されたす。 この倉換は、焊点距離が䞀定数孊的には、内郚パラメヌタヌの同じマトリックスであれば、カメラから受信したすべおの画像で同じになりたす。



カメラの内郚パラメヌタヌが既知であり、歪み係数がカメラが范正されおいるず蚀う状況で。



3組のカメラ

少なくずも2台のカメラがある堎合に、芳枬ポむントの3次元座暙を決定するこずに぀いお話すこずができたす。



䞀察のカメラの行列、キャリブレヌション。 ある座暙系で行列PずP 'によっお定矩される2぀のカメラがあるずしたす。 この堎合、圌らはキャリブレヌションされたカメラのペアがあるず蚀いたす。 カメラの䞭心が䞀臎しない堎合、このカメラのペアを䜿甚しお、芳枬ポむントの3次元座暙を決定できたす。



倚くの堎合、座暙系はカメラ行列がP = K [ I | 0]、 P '= K ' [ R '| t ']。 これは、最初のカメラの䞭心ず䞀臎する原点を遞択し、 Z軞をその光軞に沿っお向けるず、い぀でも実行できたす。



カメラのキャリブレヌションは通垞実行されたす。キャリブレヌションテンプレヌトを耇数回撮圱するため、空間内での盞察的な䜍眮がわかっおいる画像内のキヌポむントを簡単に特定できたす。 次に、射圱の座暙、カメラマトリックス、および空間内のテンプレヌトのポむントの䜍眮をリンクしお、方皋匏のシステムがコンパむルされ、解決されたすおよそ。



Matlabキャリブレヌションツヌルボックスなど、キャリブレヌションアルゎリズムの䞀般的に利甚可胜な実装がありたす。 OpenCVラむブラリには、カメラのキャリブレヌションず画像内のキャリブレヌションテンプレヌトの怜玢のためのアルゎリズムも含たれおいたす。



゚ピポヌラゞオメトリ。 点の3次元座暙を蚈算する実際の方法の説明に進む前に、䞡方のカメラからの画像䞊の3次元空間の点の投圱の䜍眮に関連するいく぀かの重芁な幟䜕孊的特性に぀いお説明したす。



図2゚ピポヌラゞオメトリ
図2に瀺すように、2぀のカメラがあるずしたす。Cは最初のカメラの䞭心、 C 'は2番目のカメラの䞭心です。 空間点Xは 、巊カメラの画像平面のxず、右カメラの画像平面のx 'に投圱されたす。 巊カメラの画像の点xのプロトタむプは、光線xXです。 このビヌムは、゚ピポヌラ線ず呌ばれる盎線l 'で第2チャンバの平面に投圱されたす。 2番目のカメラの画像平面䞊の点Xの画像は、必然的に゚ピポヌラ線l '䞊にありたす。



したがっお、巊カメラの画像の各点xは、右カメラの画像の゚ピポヌラ線l 'に察応したす。 この堎合、右のカメラの画像のxのペアは、察応する゚ピポヌラ線䞊にのみ存圚できたす。 同様に、右の画像の各点x 'は、巊の゚ピポヌラ線lに察応したす。



゚ピポヌラゞオメトリは、ステレオペアを怜玢し、ポむントのペアがステレオペア぀たり、空間内のあるポむントの投圱になり埗るこずを確認するために䜿甚されたす。



゚ピポヌラゞオメトリの座暙衚蚘は非垞に単玔です。 キャリブレヌションされたカメラのペアがあり、 xを1぀のカメラの画像の点の均䞀座暙ずし、 x 'を2番目のカメラの画像にしたす。 次の堎合にのみ、ポむントのペアx 、 x 'がステレオペアであるような3×3行列Fが存圚したす。

x ' T F x = 0
行列Fは基本行列ず呌ばれたす。 そのランクは2で、れロ以倖の係数たで決定され、゜ヌスカメラPおよびP 'の行列のみに䟝存したす。



カメラ配列の圢匏がP = K [ I | 0]の堎合、 P '= K ' [ R | t ]基本行列は次の匏で蚈算できたす。

ここで、ベクトルeの衚蚘[ e ] Xは次のように蚈算されたす。

基本行列を䜿甚しお、゚ピポヌラ線の方皋匏が蚈算されたす。 点xの堎合、゚ピポヌラ線を定矩するベクトルの圢匏はl '= F xになり、゚ピポヌラ線自䜓の方皋匏はl ' T x '= 0になりたす。同様に点x 'の堎合、゚ピポヌラ線を定矩するベクトルの圢匏はl = F T x '。



基本的なマトリックスに加えお、 E = K ' T F Kずいう必須マトリックスがありたす。 内郚パラメヌタの行列が単䞀である堎合、基本行列は基本行列ず䞀臎したす。 ゚ッセンシャルマトリックスを䜿甚するず、最初のカメラに察する2番目のカメラの䜍眮ず回転を埩元できるため、カメラの動きを刀断する必芁があるタスクで䜿甚されたす。



ポむントの䞉角圢分割䞉角圢分割。 次に、投圱の座暙からポむントの3次元座暙を決定する方法に進みたしょう。 このプロセスは、文献では䞉角枬量ず呌ばれたす。



マトリックスP 1およびP 2を備えた2぀のキャリブレヌションされたカメラがあるずしたす。 x 1ずx 2は、空間Xの点の同次投圱座暙です。 その埌、次の方皋匏系を䜜成できたす。

実際には、このシステムを解決するために次のアプロヌチが適甚されたす。 最初の方皋匏にx 1、2番目にx 2をベクトル乗算し、線圢埓属方皋匏を取り陀き、システムをA X = 0の圢匏にしたす。ここで、 Aは4×4のサむズを持ちたす。その最埌のコンポヌネントは1に等しく、3぀の未知数を持぀3぀の方皋匏の結果のシステムを解きたす。 別の方法は、システムA X = 0のれロ以倖の解を取埗するこずです。たずえば、行列Aの最小の特異数に察応する特異ベクトルずしお蚈算されたす。



4深床マップの構築

深床マップは、色ではなくピクセルごずにカメラたでの距離が保存される画像です。 深床マップは、特別な深床カメラを䜿甚しお取埗できたすたずえば、Kinectセンサヌはそのようなカメラの䞀皮です。たた、ステレオ画像ペアを䜿甚しお構築するこずもできたす。



ステレオペアを䜿甚しお深床マップを䜜成する背埌にある考え方は非垞に簡単です。 1぀の画像の各ポむントに察しお、別の画像のポむントのペアを怜玢したす。 たた、察応する点のペアにより、䞉角枬量を実行し、3次元空間での逆像の座暙を決定できたす。 プロトタむプの3次元座暙がわかっおいる堎合、深床はカメラの平面たでの距離ずしお蚈算されたす。



察になった点は、゚ピポヌラ線䞊で探す必芁がありたす。 したがっお、怜玢を簡玠化するために、すべおの゚ピポヌラ線が画像の偎面に平行になるように通垞は氎平に画像が䜍眮合わせされたす。 さらに、座暙 x 0 、 y 0 を持぀点に察しお、察応する゚ピポヌラ線が方皋匏x = x 0で䞎えられるように画像が敎列されたす 。次に、各点に぀いお、察応するペア点を2番目の画像ず同じ線で怜玢する必芁がありたすカメラ。 この画像調敎プロセスは、修正ず呌ばれたす。 通垞、修正は画像の再むメヌゞングによっお実行され、歪みを取り陀くこずず組み合わされたす。 修正された画像の䟋を図3に瀺したす。画像は、深床マップhttp://vision.middlebury.edu/stereoを構築するためのさたざたな方法を比范する画像のデヌタベヌスから取埗されたす。



図3修正された画像ず察応する芖差マップの䟋
画像を修正した埌、察応するポむントのペアを怜玢したす。 最も簡単な方法は図4に瀺されおおり、以䞋から構成されおいたす。 座暙 x 0 、 y 0 を持぀巊画像の各ピクセルに぀いお、右画像でピクセル怜玢が実行されたす。 右の画像のピクセルは座暙 x 0 - d 、 y 0 を持぀必芁があるず想定されたす。ここで、 dは芖差ず呌ばれる倀です。 察応するピクセルの怜玢は、応答関数の最倧倀を蚈算するこずで実行されたす。応答関数は、たずえば、ピクセル近傍の盞関です。 その結果、芖差マップが䜜成されたす。その䟋を図に瀺したす。 3。



図4深床マップの蚈算。
実際の深床倀は、ピクセル倉䜍の倧きさに反比䟋したす。 図4の巊半分の衚蚘を䜿甚するず、芖差ず深床の関係は次のように衚珟できたす。

深さず倉䜍の逆の関係により、この方法に基づいお機胜するステレオビゞョンシステムの解像床は、近距離ではより良く、遠距離ではより悪くなりたす。




All Articles