2

私はopencvのセミグローバルブロックマッチングに取り組んでいます。実際、コスト集計を計算するためにすべての方向を参照する必要がある理由がわかりません。このパス(スキャンライン)の長さを制限しようとした人はいますか?

4

1 に答える 1

6

コストの集計には、ソリューションにグローバルな滑らかさの制約を適用するために複数の方向を検索することが含まれます。これらの制約がない場合、各ピクセルの視差は、隣接するピクセルの推定視差を考慮せずに計算され、マッチングプロセスは多くの誤検知を返すため、結果には通常、多くの「ノイズ」が含まれます。

観察された表面が非常に滑らかであると仮定することにより、ピクセルが隣接するピクセルと一致しない場合にピクセルに深度を割り当てる追加コストを設定することにより、視差シフトにペナルティを課すことができます。大まかに言うと、これは、深度を推定しようとして、いくつかの可能な一致がある場合、隣接するピクセルの深度推定と厳密に一致する一致を選択する可能性があることを意味します。より多くの方向を検索すると、コスト計算で考慮するネイバーの数が増え、通常は

OpenCVは、この検索パスの長さを短縮する方法を提供していませんが、アルゴリズムをより高速に実行する場合は、一部の方向を無効にして、8つではなく5つのパスのみを検索できます(これは、引数fullDPを設定することによって実行されます) false)または視差検索範囲を縮小することによって。

于 2013-02-08T18:40:41.313 に答える