本開示では、特に明記されない限り、用語「第一」、「第二」などが、各種の要素を説明するために使用されるが、これらの要素の位置関係、タイミング関係又は重要性関係を限定することを意図するものではない。このような用語は、1つの要素をもう1つの要素と区別するためだけに用いられる。幾つかの例示において、第一要素及び第二要素が該要素の同一実例に指向することができるが、幾つかの場合において、コンテキストに基づいて、それらは、異なる実例を指すこともできる。
本開示では、様々な前記例示についての説明に使用する用語は、特定の例示を説明することのみを目的としており、限定を行うことを目的としない。コンテキストに明記されない限り、要素の数が特に限定されない場合、該要素は1つであっても良く、複数であっても良い。また、本開示に使用する用語「及び/又は」は、リストされている項目のうちの任意の1つ及びすべての可能な組み合わせをカバーする。
関連技術では、コンピュータビジョン技術を採用して、同一シーンの2つの異なる画角の画像における各対のマッチした画素点の間の視差を得ることで視差図を取得し、また、前記視差図に基づいて前記シーンの深度情報を取得することができる。ここで、前記深度情報は、3次元再構成、自動運転、障害物検知などの様々な分野で用いることができる。例示として、コンピュータビジョン技術を採用して視差を得る方法は、ローカルエリアマッチング法、グローバル最適化法、セミグローバルマッチング法、畳み込みニューラルネットワークなどに基づくニューラルネットワークの方法などを含んでも良い。
様々な視差取得方法即ち視差計算方法について言えば、視差計算の過程は、すべて、画素一致点をサーチ(search)する過程と見なすことができる。画像間の実際の視差が大きいほど、サーチする必要のある範囲が大きい。また、画像の視差サーチ範囲及び画像のサイズも、すべて、視差計算の速度に影響を及ぼすことがある。例えば、画像のサイズ及び/又は視差サーチ範囲が大きいほど、視差計算に必要な計算量が大きく、速度が低い。よって、関連技術では、大サイズ画像について、先ず、それに対してダウンサンプリングを行い、ダウンサンプリング後の画像の視差サーチ範囲が狭くなるため、その後、ダウンサンプリング後の画像に基づいて視差計算を行い、必要な視差図を取得することができる。しかし、このような方法で計算することにより得られた視差は、直接オリジナルサイズの画像に基づいて計算することにより得られた視差に比べて、精度が低下し、視差計算の精度及び実行速度を両立することができない。
本開示では、新しい視差確定方法が提供され、それは、先ず、第一画像及び第二画像に対してダウンサンプリング処理を行い、第一サイズを有する第一画像及び前記第一サイズを有する第二画像を取得し、また、前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像に対して第一段の視差計算処理を行い、前記第一サイズを有する第一視差図を取得し;その後、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得する。第一段の視差計算処理が基づく画像(即ち、該画像に基づいて第一段の視差計算処理を行う)はダウンサンプリング後の画像であり、また、第二段の視差計算処理は第一段の視差計算処理により得られた第一視差図をもとに実行することができる。よって、視差計算の速度を上げることができるだけでなく、視差計算に必要な精度の要求を満足することもできる。これにより、視差計算の速度及び精度を両立する効果を達成することができる。以下、図面を参照しながら本開示の視差確定方法の例示的な実施例についてさらに説明する。
図1は、本開示の例示的な実施例による視差確定方法のフローチャートである。図1に示すように、前記視差確定方法は、例えば、第一画像及び第二画像に対してダウンサンプリング処理を行い、第一サイズを有する第一画像及び前記第一サイズを有する第二画像を取得し(ステップS101);前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像に対して第一段の視差計算処理を行い、前記第一サイズを有する第一視差図を取得し(ステップS102);及び、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得する(ステップS103)ことを含んでも良い。
図1におけるフローチャートに示す視差確定方法によれば、先に、第一画像及び第二画像に対してダウンサンプリング処理を行い、第一サイズを有する第一画像及び前記第一サイズを有する第二画像を取得し、また、前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像に対して第一段の視差計算処理を行い、前記第一サイズを有する第一視差図を取得し;その後、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得することができる。第一段の視差計算処理が基づく画像はダウンサンプリング後の画像であり、また、第二段の視差計算処理は第一段の視差計算処理により得られた第一視差図をもとに実行することができる。よって、視差計算の速度を上げることができるのみならず、視差計算に必要な精度の要求を満足することもできる。これにより、視差計算の速度及び精度を両立する効果を達成することができる。
幾つかの実施例によれば、前記第一画像及び前記第二画像は、マルチカメラにより採取した、同一シーンに対する画像であっても良い。前記第一画像及び前記第二画像は、サイズが一致しているが、対応する画角が異なる。もちろん、前記第一画像及び前記第二画像は、他の方法で取得した(例えば、他の装置から取得した)、要求を満たす画像であっても良い。また、前記第一画像及び前記第二画像は、グレースケール画像又はカラー画像であっても良い。
幾つかの実施例によれば、前記第一画像及び前記第二画像は、エピポーラ修正(epipolar rectification)後の、1つの方向(例えば、水平方向、垂直方向など)において視差が存在する画像であっても良い。換言すれば、前記第一画像及び前記第二画像に対してダウンサンプリング処理を行う前に、前記方法は、さらに、前記第一画像及び前記第二画像に対してエピポーラ修正を行うことで、前記第一画像及び前記第二画像に、1つの方向において視差を持たせることを含んでも良い。これにより、画像の視差サーチ範囲が1つのみの方向に限定されることで、視差計算の効率を向上させることができる。代替案として、画像のエピポーラ修正の操作は、マルチカメラ又は他の装置により行われても良い。
本開示では、前記マルチカメラとは、2つ、3つ、ひいてはより多くのカメラヘッドが配置される、静的又は動的な画像キャプチャーを行うことができるカメラを指す。それは、配置される複数のカメラヘッドによって異なる画角又は範囲のシーンをカバーすることで、カメラの、シーンにおける物体への検知能力を向上させることができる。2つのカメラヘッド(例えば、左、右カメラヘッド)が配置される双目カメラを例にとれば、任意のシーンについて、前記双目カメラは、配置される2つのカメラヘッドによって該シーンの2つの、サイズが一致しているが、対応する画角が異なる画像(例えば、左画像及び右画像)を得ることができる。ここで、前記2つの画像は、該シーンにおける物体の、前記2つの画像において対応する画素点の間の変位(例えば、水平変位)即ち視差を確定することで、物体の距離などの深度情報を確定するために用いられ得る。
本開示では、各画像(第一画像、第二画像、第一視差図、第二視差図などの視差図を含む)のサイズは、各画像の単一チャンネルのサイズを指しても良く、画像の高さ及び幅により表すことができ、例えば、H×Wと表すことができる。ここで、Hは画像の高さを示し、Wは画像の幅を示し、また、両者の単位は画素であっても良い。もちろん、これは例示に過ぎず、画像のサイズは、画像を反映し得る画素数、データ量、記憶量、クラリティ(Clarity)などのうちの1つ又は複数の他のパラメータにより表されても良い。また、留意されたいのは、グレースケール画像について言えば、そのチャンネル数は1であり、カラー画像について言えば、R、G、Bの3つの色チャンネルがあるので、そのチャンネル数は3であっても良く、即ち、カラー画像の実際のサイズはH×W×3と表され得るということである。また、本開示では、前記第一画像及び前記第二画像のサイズ(即ち、ダウンサンプリング及び/又はアップサンプリングなどの処理が行われる前のオリジナル画像のサイズ)は、例えば、前記画像対(ペア)を採取するためのマルチカメラのセンサーのサイズ、画素数などのパラメータに基づいて確定することができる。
幾つかの実施例によれば、前記第一画像及び前記第二画像に対してダウンサンプリング処理を行い、第一サイズを有する第一画像及び前記第一サイズを有する第二画像を取得することは、視差計算処理の回数閾値を確定し;前記回数閾値に基づいて、前記第一画像及び前記第二画像に対してダウンサンプリング処理を行うに必要なダウンサンプリング係数を確定し;及び、前記ダウンサンプリング係数に基づいて、前記第一画像及び前記第二画像に対してダウンサンプリング処理を含んでも良い。ここで、前記回数閾値が大きいほど、前記ダウンサンプリング係数は大きくても良い。
幾つかの実施例によれば、前記回数閾値は実際のニーズに応じて柔軟に設定することができる。例えば、実際のニーズに応じて、前記回数閾値を2、3、4、又は他の2以上の正の整数値などに設定しても良い。また、前記回数閾値の値は、必ずしも、大きければ大きいほど良いとは限られず、ターゲット装置の精度のニーズと視差計算の実行速度とのバランスをとることを前提として、適切な数値を選ぶことができる。
幾つかの実施例によれば、前記ダウンサンプリング処理の過程は、例えば、1つのサイズがH×Wである画像について言えば、採用するダウンサンプリング係数がPであれば、前記画像の原図における各行各列においてP個の点毎に1つの点を選択して1つの画像を成すことであっても良い。もちろん、これは例示に過ぎず、ダウンサンプリングは、他の方法で実現することもでき、例えば、P個の点の平均を取っても良い。換言すると、ダウンサンプリング係数Pを用いて画像に対してダウンサンプリング処理を行った後に、ダウンサンプリング処理後の画像の高さ及び幅は、それぞれ、該画像の原図の高さ及び幅の1/P倍であっても良い。
幾つかの実施例によれば、前記回数閾値がNと表され、且つ各隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長が一致していることを例とすると、前記ダウンサンプリング係数Pは、KのN-1乗と表すことができる。前記Kは、隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長であり、ここで、前記Kは、1以上の任意の数値であっても良い。例えば、前記Kは、2、3、4、又は他の1以上の正の整数値、或いは、任意の1以上の非整数値などであっても良い。また、留意されたいのは、本開示で言及されているダウンサンプリング係数Pが指すのは、多段視差計算処理(二段を含む)の複数回の累積サンプリング係数であり、また、言及されているアップサンプリングステップ長K又はダウンサンプリングステップ長Kが指すのは、隣接する二段視差計算処理が基づく画像間のサンプリング係数であるということである。また、前述の説明と同様に、隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長がKであり、且つ段のレベルが高いほど、その視差計算処理が基づく画像のサイズが大きいときに、次の段の視差計算処理が基づく画像の高さ及び幅は、それぞれ、前の段の視差計算処理が基づく画像の高さ及び幅のK倍であっても良い。
例示として、前記回数閾値Nの値が2であり、且つ各隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長Kの値が2であることを例にとると、前記ダウンサンプリング係数は21と表すことができる。それ相応に、前記第一画像及び前記第二画像のオリジナルサイズがH×W(フルサイズと称されても良い)と表されれば、前記ダウンサンプリング係数に基づいて前記第一画像及び前記第二画像に対してダウンサンプリング処理を行うことにより得られた、前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像(即ち、第一段の視差計算処理が基づく画像)のサイズ(即ち、第一サイズ)は、(H/2)×(W/2)(1/2サイズと称されても良い)と表すことができる。また、このような場合、第二段の視差計算処理が基づく画像のサイズ(即ち、第二サイズ)は、対応して、H×W(即ち、フルサイズ)と表すことができる。
また、例えば、前記回数閾値Nの値が3であり、且つ各隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長Kの値が2であることを例とすれば、前記ダウンサンプリング係数は22と表すことができる。それ相応に、前記第一画像及び前記第二画像のオリジナルサイズがH×W(即ち、フルサイズ)と表される場合、前記ダウンサンプリング係数に基づいて前記第一画像及び前記第二画像に対してダウンサンプリング処理を行うことにより得られた、前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像(即ち、第一段の視差計算処理が基づく画像)のサイズ(即ち、第一サイズ)は、(H/4)×(W/4)(1/4サイズと称されても良い)と表すことができる。また、このような場合、第二段の視差計算処理が基づく画像のサイズ(即ち、第二サイズ)は、対応して、(H/2)×(W/2)(1/2サイズと称されても良い)と表すことができる。
なお、留意されたいのは、本開示では、各隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長(又はダウンサンプリングステップ長)は一致しなくても良く、実際のニーズに応じて柔軟に調整することができるということである。例えば、Nの値が4であることを例にとると、第一段の視差計算処理及び第二段の視差計算処理が基づく画像間のアップサンプリングステップ長は第一数値に設定し、第二段の視差計算処理及び第三段の視差計算処理が基づく画像間のアップサンプリングステップ長は第二数値に設定し、第三段の視差計算処理及び第四級視差計算処理が基づく画像間のアップサンプリングステップ長は第三数値に設定することができる。前記第二数値は前記第一数値とは異なっても良く(もちろん、前述のように、前記第二数値は前記第一数値と同じであっても良い)、前記第三数値は前記第一数値又は前記第二数値とは異なって良い(もちろん、前述のように、前記第三数値は前記第一数値又は前記第二数値と同じであっても良い)。また、前記第一数値、第二数値及び第三数値はいずれも1以上の数値であっても良い。
また、画像に対してダウンサンプリング処理を行った後に、画像に対応する視差サーチ範囲は狭くなる。例えば、前記第一画像及び前記第二画像に対応する視差サーチ範囲が[0,D]と表されることを例にとり、ここで、Dは視差サーチ最大値を表し、その値は前記第一画像及び前記第二画像を採取するためのマルチカメラにおける各カメラヘッドの焦点距離及び/又は各カメラヘッド間の間隔と関係がある(単位は画像の高さH、幅Wと同様に画素であっても良い)。この場合、前記ダウンサンプリング係数に基づいて前記第一画像及び前記第二画像に対してダウンサンプリング処理を行うことにより得られた第一画像及び第二画像のサイズが(H/2)×(W/2)であれば、前記ダウンサンプリング処理により得られた第一画像及び第二画像の視差サーチ範囲は[0,D/2]になる。このように、前記ダウンサンプリング処理により得られた第一画像及び第二画像(即ち、前記第一サイズを有する第一画像及び前記第一サイズを有する第二画像)に対して第一段の視差計算処理を行うに必要な計算量は、それ相応に、フルサイズの画像に基づいて視差計算処理を行うときの1/8になる(各画像の視差計算処理に必要な計算量は、該画像の高さ、幅、及び視差サーチ最大値の三者の積と関係がある)。これにより、視差計算に必要な計算量を大幅に減少させ、初期視差を迅速に得ることができる。また、初期視差を迅速に得た後に、前記初期視差をもとに、より大きいサイズ例えば第二サイズを有する第一画像及び第二画像に対して第二段の視差計算処理を行うことで、精度が比較的高い視差図を取得することができる。第二段の視差計算処理が初期視差をもとに行われ、必要な計算量が低いので、精度が向上し且つ計算速度が上がる効果を達成することができる。
幾つかの実施例によれば、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得するステップの後に、前記方法はさらに、視差計算処理の回数が回数閾値に達していることに応じて、前記第二サイズを有する前記第二視差図を前記第一画像及び前記第二画像間の最終の視差図とすることを含んでも良い。
他の幾つかの実施例によれば、前記方法は、さらに、視差計算処理の回数が回数閾値に達しないことに応じて、現在の段の視差計算処理により得られた視差図の、次の段の視差計算処理に対応するサイズを有するアップサンプリング視差図に基づいて、前記次の段の視差計算処理に対応するサイズを有する第一画像及び前記次の段の視差計算処理に対応するサイズを有する第二画像に対して前記次の段の視差計算処理の操作を、視差計算処理の回数が前記回数閾値に達していることが確定されるまで繰り返して実行し、そして、最後の段の視差計算処理により得られた視差図を前記第一画像及び前記第二画像間の最終の視差図とすることを含んでも良い。ここで、各段の視差計算処理に対応するサイズは、該段の視差計算処理が基づく画像のサイズ(又は、該段の視差計算処理に必要な視差図のサイズであると見なしても良い)である。また、対応するアップサンプリング視差図を得るために採用するアップサンプリング処理方法は、例えば、最近傍補間アルゴリズム、双線形補間アルゴリズム、デコンボリューションアルゴリズムなどを含んでも良い。
これにより、複数回のカスケード接続の視差計算処理により、最終に得られる視差図の精度をさらに向上させることができる。また、各後段の視差計算処理がすべて前段の視差計算処理により得られた視差図をもとに行われ、必要な計算量が低いから、視差計算の実行速度に関する要求を満たすことができる。
例示として、図2を参照するに、図2は、本開示の例示的な実施例による視差確定方法のもう1つのフローチャートであり、この視差確定方法は、図1に示すステップと同じであるステップS101、ステップS102及びステップS103に加えて、以下のようなステップをさらに含んでも良い。
ステップS104:視差計算処理の回数が回数閾値に達しているかを確定し、はいの場合、ステップS105を実行し、そうでない場合、ステップS106を実行する。
前述のように、前記回数閾値は実際のニーズに応じて決定することができる。例えば、ターゲット装置の精度のニーズと視差計算の実行速度とのバランスをとることを前提として、前記回数閾値を2、3、4、又は他の適切な2以上の正の整数値などに設定しても良い。
ステップS105:前記第二サイズを有する前記第二視差図を前記第一画像及び前記第二画像間の最終の視差図とする。
ステップS106:現在の段の視差計算処理により得られた視差図の、次の段の視差計算処理に対応するサイズを有するアップサンプリング視差図に基づいて、前記次の段の視差計算処理に対応するサイズを有する第一画像及び前記次の段の視差計算処理に対応するサイズを有する第二画像に対して前記次の段の視差計算処理を行い、前記次の段の視差計算処理に対応するサイズを有する視差図を取得する。
例示として、現在の段の視差計算処理が前記第二段の視差計算処理であることを例にとり、その次の段の視差計算処理(即ち、第三段の視差計算処理)に対応するサイズが第三サイズと表され得る。このときに、ステップS106は、対応して、前記第二視差図の、第三サイズを有するアップサンプリング視差図に基づいて、前記第三サイズを有する第一画像及び前記第三サイズを有する第二画像に対して第三段の視差計算処理を行い、前記第三サイズを有する第三視差図を取得すると書き換えることができる。
ステップS107:視差計算処理の回数が回数閾値に達しているかを確定し、はいの場合、ステップS108を実行し、そうでない場合、ステップS106にジャンプする。
ステップS108:ステップS106で得られた、前記次の段の視差計算処理に対応するサイズを有する視差図(即ち、最後の段の視差計算処理により得られた視差図)を前記第一画像及び前記第二画像間の最終の視差図とする。
幾つかの実施例によれば、最後の段の視差計算処理により得られた視差図を前記第一画像及び前記第二画像間の最終の視差図として出力し得ることに加えて、他の各段の視差計算処理により得られた視差図を一緒に出力することで、サイズが異なる(例えば、対応する視差計算処理の段のレベルの低から高への順序に従って、サイズが増大する)複数の視差図を、異なるパフォーマンス又は異なる精度の複数のターゲット装置の使用に供するために取得しても良い。これにより、異なるターゲット装置の精度及び速度への要求を満足し、システムの柔軟性及び適用性を向上させることができる。また、各段の視差計算処理により得られた視差図は、後続の読み取り及び使用のために、記憶装置又は記憶媒体に記憶(例えば、バッファリング)することもできる。
幾つかの実施例によれば、各段の視差計算処理のうちの最後の段の視差計算処理により得られた視差図のサイズは、前記第一画像及び前記第二画像のオリジナルサイズと一致である。換言すれば、本開示の実施例に記載の視差確定方法により、対応するサイズが前記第一画像及び前記第二画像のオリジナルサイズと一致しており、且つ精度が比較的高い視差図を得ることができる。これにより、高パフォーマンスのターゲット装置の、生成する視差図の精度への要求をより良く満足することができる。代替案として、前記最後の段の視差計算処理により得られた視差図のサイズは、前記第一画像及び前記第二画像のオリジナルサイズ未満であっても良く、即ち、実際のニーズに応じて柔軟に設定することができる。
本開示では、各段の視差計算処理は、すべて、ローカルエリアマッチング(即ち、ローカルステレオマッチング)方法、ニューラルネットワークに基づく方法などの視差計算方法により実現され得る。また、各段の視差計算処理のステップは、該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定し;該段の視差計算処理に対応する視差サーチ範囲を確定し;該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴、並びに該段の視差計算処理に対応する視差サーチ範囲に基づいて、視差計算処理を行うことなどを含んでも良い。
なお、留意されたいのは、第一段の視差計算処理以外の各段の視差計算処理について、それは、1つ前の段の視差計算処理により得られた視差図、例えば、該視差図のアップサンプリング視差図をもとに実行する必要があるので、その処理方法は、第一段の視差計算処理とは若干異なるということである。以下、第二段の視差計算処理を例にとり、図3及び図4を基づいて第一段の視差計算処理以外の各段の視差計算処理の処理過程について例示に説明する。
幾つかの実施例によれば、図3を参照するに、図3は、本開示の例示的な実施例による第二段の視差計算処理のフローチャートであり、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得することは、以下のステップS301〜S304を含んでも良い。
ステップS301:前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像に基づいて、前記第二段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定し、ここで、前記第二画像に関する画像特徴には、前記第二サイズを有する前記アップサンプリング視差図に基づいて確定された視差偏移(オフセット)が含まれている。
例示として、前記第二サイズを有する前記アップサンプリング視差図に基づいて、前記第二サイズを有する前記第一画像I1における点pの初期視差がdisp1(p)であると確定するとすれば、該第二画像に関する画像特徴を確定するときに、該初期視差disp1(p)により表される視差偏移値を加算することができる。また、視差計算時に、第一画像及び第二画像のうち、1つの画像(例えば、第一画像)が参照画像であり、もう1つの画像(例えば、第二画像)がマッチング待ち画像、即ち、ターゲット画像であるので、ターゲット画像(例えば、第二画像)に関する画像特徴にのみ、対応する視差偏移を持たせても良い。ここで留意されたいのは、本開示では、第一画像を参照画像とし、第二画像をターゲット画像とすることを例にとって説明したが、もちろん、実際のニーズに応じて、第二画像を参照画像とし、第一画像をターゲット画像としても良いということである。このときに、第一画像に関する画像特徴に、対応する視差偏移を持たせても良い。
ステップS302:前記第二段の視差計算処理に対応する視差サーチ範囲を確定する。
ステップS303:前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する視差調整図を得る。
ステップS304:前記第二サイズを有する前記アップサンプリング視差図と、前記第二サイズを有する前記視差調整図との組み合わせ(例えば、重ね合わせ)を行い、前記第二サイズを有する前記第二視差図を得る。
上述のステップから分かるように、第二段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定するときに、ターゲット画像としての第二画像に関する画像特徴に、対応する視差偏移を持たせることができる。該視差偏移は、前記第二サイズを有する前記アップサンプリング視差図に基づいて確定することができる。例えば、直接、前記第二サイズを有する前記アップサンプリング視差図における視差値を視差偏移としても良い。このような方法により、前の段の視差計算処理により得られた視差図をもとに、より高い精度を有する視差図を迅速に取得し得る効果を柔軟に実現することができる。
幾つかの実施例によれば、前記第二段の視差計算処理に対応する視差サーチ範囲は、関連技術での通常の方法により設定される範囲よりも小さく(狭く)設定することができる。これにより、より大きいサイズの画像上の二回視差サーチの効率を向上させ、速度及び精度の要求をより良く満足することができる。
例えば、前記第一視差図と、前記第二サイズを有する前記アップサンプリング視差図との間のアップサンプリングステップ長、及び、前記第一段の視差計算処理に対応する最大視差誤差に基づいて、前記第二段の視差計算処理に対応する視差サーチ範囲を[-D0,D0]に設定しても良く、前記D0は、M0(K-1)以下の正の数値であっても良い。ここで、前述の関連実施例に述べたように、前記Kは、前記アップサンプリングステップ長を表し、且つ1以上の数値であり;前記M0は、前記第一段の視差計算処理に対応する最大視差誤差を表し、且つ1以上の数値である。また、前記M0の値は、前記第一画像及び前記第二画像を採取するためのマルチカメラの装置パラメータ(例えば、マルチカメラにおける各カメラヘッドの焦点距離及び/又は各カメラヘッド間の間隔など)及び該第一段の視差計算処理が基づく画像のサイズ(又は、該第一段の視差計算処理が基づく画像のサイズと、前記第一画像又は前記第二画像のオリジナルサイズとの間の比)に基づいて決定することができる。例えば、マルチカメラにおける各カメラヘッドの焦点距離が1200(単位:mm)であり、ベースライン(2つカメラヘッドの中心の間の距離、即ち、2つのカメラヘッドの間の間隔である)が50(単位:mm)であることを例にとる場合、30cm以外の物体を撮影するときに、フルサイズに対応する最大視差誤差は200であり、N=2且つK=2であれば、第一段の視差計算処理に対応する最大視差誤差M0の値は100である。また、留意されたいのは、各段の視差計算処理に対応する最大視差誤差は異なっても良く、それ相応に、第二段の視差計算処理を含む非第一段の(第一段でない)各段の視差計算処理に対応する視差サーチ範囲も異なっても良いということである。
例示として、前記Kの値が2であることを例にとる場合、前記第二段の視差計算処理に対応する視差サーチ範囲は最小で[-1,1]に設定されても良く、最大はとても大きく設定する必要がない。これにより、第二段の視差計算処理に必要な計算量を大幅に減少させ、視差計算の速度を大幅に上げることができる。
これにより、フルサイズの画像を直接使用して視差を計算することに比較して、第二段の視差計算処理に必要な計算量は、フルサイズの画像を直接使用して視差を計算するときの(2・D0+1)/Dであり、計算量が比較的低い。視差計算処理の総回数が2回であり、隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長の値が2であることを例にとると、視差計算に必要な総計算量は、フルサイズの画像を直接使用して視差を計算するときの(1/8)+(2・D0+1)/Dであり、計算量が明らかに減少する。これにより、視差計算の速度を大幅に上げることができる。
また、分かるように、視差計算処理の総回数が3回であり、隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長の値が2である場合、総計算量は、フルサイズの画像を直接使用して視差を計算するときの(1/64)+(2D1+1)/4D+(2D0+1)/Dであり、D1、D0は、それぞれ、第二段、第三段の視差計算処理に対応する視差サーチ範囲の上限値を示し;同様に、視差計算処理の総回数がn+1回である場合、総計算量は、フルサイズの画像を直接使用して視差を計算するときの
代替案として、図4を参照するに、図4は、本開示の例示的な実施例による第二段の視差計算処理のもう1つのフローチャートであり、前記第一視差図の、第二サイズを有するアップサンプリング視差図に基づいて、前記第二サイズを有する第一画像及び前記第二サイズを有する第二画像に対して第二段の視差計算処理を行い、前記第二サイズを有する第二視差図を取得することは、以下のステップS401〜S403を含んでも良い。
ステップS401:前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像に基づいて、前記第二段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定する。
ステップS402:前記第二サイズを有する前記アップサンプリング視差図に基づいて、前記第二段の視差計算処理に対応する視差サーチ範囲を確定する。換言すると、前記第二段の視差計算処理に対応する視差サーチ範囲には、前記第二サイズを有する前記アップサンプリング視差図に基づいて確定された視差偏移が含まれている。
ステップS403:前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する前記第二視差図を得る。
上述のステップから分かるように、図3に示す方法で、第二段の視差計算処理が基づく、第一画像に関する画像特徴又は第二画像に関する画像特徴に、対応する視差偏移を持たせることができる以外に、第二段の視差計算処理に対応する視差サーチ範囲に、対応する視差偏移を持たせる方法で、前の段の視差計算処理により得られた視差図をもとに、より高い精度を有する視差図を迅速に取得し得る効果を柔軟に実現することもできる。
幾つかの実施例によれば、ステップS402に記載の、前記第二サイズを有する前記アップサンプリング視差図に基づいて、前記第二段の視差計算処理に対応する視差サーチ範囲を確定することは、前記第一視差図と、前記第二サイズを有する前記アップサンプリング視差図との間のアップサンプリングステップ長、及び、前記第一段の視差計算処理に対応する最大視差誤差に基づいて、前記第二段の視差計算処理に対応する視差サーチ調整範囲を確定し;及び、前記第二サイズを有する前記アップサンプリング視差図における視差値を基準として、前記第二段の視差計算処理に対応する視差サーチ調整範囲に対して調整を行い、前記第二段の視差計算処理に対応する、対応する視差偏移を含む視差サーチ範囲を得ることを含んでも良い。
幾つかの実施例によれば、前述の実施例における、第二段の視差計算処理に対応する視差サーチ範囲の設定方法と同様に、前記第二段の視差計算処理に対応する視差サーチ調整範囲も比較的低い小さい範囲に設定しても良い。それ相応に、前記第二段の視差計算処理に対応する、対応する視差偏移を含む視差サーチ範囲も1つの比較的小さい範囲であっても良い。これにより、より大きいサイズ画像上の二回視差サーチの効率を向上させ、速度及び精度の要求をより良く満足することができる。
例えば、前記第一視差図と、前記第二サイズを有する前記アップサンプリング視差図との間のアップサンプリングステップ長、及び、前記第一段の視差計算処理に対応する最大視差誤差に基づいて、前記第二段の視差計算処理に対応する視差サーチ調整範囲を[-D0,D0]に設定しても良い。この場合、前記第二段の視差計算処理に対応する、対応する視差偏移を含む視差サーチ範囲は[-D0+disp1,D0+disp1]と表すことができる。前記disp1は、前記第二サイズを有する前記アップサンプリング視差図における視差値を示し、前記D0は、M0(K-1)以下の正の数値であり、ここで、前記Kは、前記アップサンプリングステップ長を示し、且つ1以上の数値であり;前記M0は、前記第一段の視差計算処理に対応する最大視差誤差を示し、且つ1以上の数値である。また、前述の実施例の関連説明と同様に、前記M0の値は、前記第一画像及び前記第二画像を採取するためのマルチカメラの装置パラメータ(例えば、マルチカメラにおける各カメラヘッドの焦点距離及び/又は各カメラヘッド間の間隔など)、及び、該第一段の視差計算処理が基づく画像のサイズ(又は、該第一段の視差計算処理が基づく画像のサイズと、前記第一画像又は前記第二画像のオリジナルサイズとの間の比)に基づいて決定することができる。また、留意されたいのは、各段の視差計算処理に対応する最大視差誤差が異なっても良いので、第二段の視差計算処理を含む非第一段の(第一段でない)各段の視差計算処理に対応する視差サーチ調整範囲及びそれ相応の、視差偏移を含む視差調整範囲も異なっても良いということである。
例示として、前記第二サイズを有する前記アップサンプリング視差図に基づいて確定した、前記第二サイズを有する前記第一画像I1における点pの初期視差がdisp1(p)であるとする場合、該第一画像I1における点pに対応する、第二段の視差計算処理に関する、対応する視差偏移を含む視差サーチ範囲は、[-D0+disp1(p),D0+disp1(p)]と表すことができる。
また、前記Kの値が2であることを例にとる場合、前記第二段の視差計算処理に対応する視差サーチ調整範囲は最小で[-1,1]に設定されても良く、最大はとても大きく設定する必要がない。これにより、第二段の視差計算処理に必要な計算量を大幅に減少させ、視差計算の速度を大幅に上げることができる。
上述の図3、図4に関する説明から分かるように、第一段の視差計算処理以外の、第二段の視差計算処理を含む各段の視差計算処理について言えば、すべては、以下の2種類の方式により実現することができる。
方式1:該段の視差計算処理に対応するサイズを有する第一画像及び該段の視差計算処理に対応するサイズを有する第二画像に基づいて、該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定し、ここで、前記第二画像に関する画像特徴には、1つ前の段の視差計算処理により得られた視差図の、該段の視差計算処理に対応するサイズを有するアップサンプリング視差図に基づいて確定された視差偏移が含まれており;該段の視差計算処理に対応する視差サーチ範囲を確定し;該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴、並びに該段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、該段の視差計算処理に対応するサイズを有する視差調整図を取得し;及び、前記の、該段の視差計算処理に対応するサイズを有するアップサンプリング視差図と、前記の、該段の視差計算処理に対応するサイズを有する視差調整図との組み合わせ(例えば、重ね合わせ)を行い、該段の視差計算処理に対応するサイズを有する視差図を得る。
方式2:該段の視差計算処理に対応するサイズを有する第一画像及び該段の視差計算処理に対応するサイズを有する第二画像に基づいて、該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴を確定し;1つ前の段の視差計算処理により得られた視差図の、該段の視差計算処理に対応するサイズを有するアップサンプリング視差図に基づいて、該段の視差計算処理に対応する視差サーチ範囲(即ち、該段の視差計算処理に対応する視差サーチ範囲には、該段の視差計算処理に対応するサイズを有する前記アップサンプリング視差図に基づいて確定された視差偏移が含まれている)を確定し;及び、該段の視差計算処理が基づく、第一画像に関する画像特徴及び第二画像に関する画像特徴、並びに該段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、該段の視差計算処理に対応するサイズを有する視差図を得る。
換言すると、該段の視差計算処理が基づく、ターゲット画像としての第二画像に関する画像特徴に、対応する視差偏移を持たせることができる以外に、該段の視差計算処理に対応する視差サーチ範囲に、対応する視差偏移を持たせる方式により、1つ前の段の視差計算処理により得られた視差図をもとに、より高い精度を有する視差図を迅速に取得し得る効果を柔軟に実現することもできる。なお、以上、非第一段の(第一段でない)各段の視差計算処理に対応する視差サーチ範囲については、前述の関連実施例に記載の方式に従って設定することができるため、ここではその詳細な説明を省略する。
幾つかの実施例によれば、第一、第二視差計算処理を含む各段の視差計算処理について言えば、確定された第一画像に関する画像特徴又は第二画像に関する画像特徴は、画像における各画素点のRGB(赤、緑、青)成分及び各画素点の勾配(gradient)(例えば、水平勾配又は垂直勾配など)のうちの少なくとも1つを含んでも良い。
幾つかの実施例によれば、p1(x,y)、p2(x-1,y)を、対応するサイズを有する第一画像I1における2つの隣接点として記す場合、該第一画像I1におけるp1点の水平勾配方向は、
と表すことができる。ここで、I
1 r(p
1)、I
1 g(p
1)、I
1 b(p
1)は、それぞれ、該第一画像I
1における点p
1のRGB成分を示し、I
1 r(p
2)、I
1 g(p
2)、I
1 b(p
2)は、それぞれ、該第一画像I
1における点p
2のRGB成分を示す。なお、画像における各画素点のRGB成分は、関連技術での様々なRGB成分読み取りアルゴリズムにより該画像から直接読み取ることができるため、追加の計算処理や操作を必要としない。
幾つかの実施例によれば、第一画像に関する画像特徴又は第二画像に関する画像特徴は、画素点のRGB成分及び/又は勾配を含むことに加えて、実際の状況に応じて柔軟に設定することもできる。例えば、第一画像及び第二画像の画素値、第一画像及び第二画像においてマッチした画素点間の画素自乗差(squared difference)、第一画像及び第二画像間の相関値、第一画像及び第二画像においてマッチした画素点間のハミング距離(Hamming距離)、ひいては第一画像及び第二画像の、前述のような低複雑度の特徴(即ち、画像における画素値、RGB成分などに基づいて簡単な変換を行うことで取得し得る特徴である)に対してのより高いレベルの画像特徴、例えば、語義特徴、エッジ特徴、テキスチャー特徴、形状特徴などのうちの1つ又は複数を、画像特徴選択の柔軟性及び多様性を向上させるために含んでも良い。
幾つかの実施例によれば、各画像特徴が各段の視差計算処理に占める重みは、実際の状況に応じて柔軟に設定されても良い。例えば、第一画像に関する画像特徴又は第二画像に関する画像特徴が画素点のRGB成分及び/又は勾配を含み得ることを例にとれば、各画素点のRGB成分が各段の視差計算処理に占める重みは、各画素点の勾配が各段の視差計算処理に占める重み以上に設定されても良い。代替案として、各画素点の勾配が反映するのは隣接する画素点の差であり、比較的一定であることを考慮して、各画素点のRGB成分が各段の視差計算処理に占める重みは、各画素点の勾配が各段の視差計算処理に占める重み以下に設定されても良いが、これについて限定しない。
本開示では、前述のように、各段の視差計算処理は、すべて、ローカルエリアマッチング(即ち、ローカルステレオマッチング)方法、ニューラルネットワークに基づく方法などの視差計算方法により実現することもできる。幾つかの実施例によれば、ローカルエリアマッチング方法を採用して視差を計算するときには、コスト関数ボリューム(Cost volume又はCostボリューム)を構築する方式により実現することができ、ニューラルネットワークに基づく方法を採用して視差を計算するときには、適切なニューラルネットワークを選ぶ方式により実現することができる。
以下、前述の、図3、図4に示す2種類の第二段の視差計算処理の実現方式を例として、第二段の視差計算処理の、第一、第二画像に関する画像特徴及び対応する視差サーチ範囲に基づいて視差計算処理を行うことで第二サイズを有する視差調整図(ステップS303に対応する)又は第二サイズを有する第二視差図(ステップS403に対応する)を得る処理過程について例示的に説明する。なお、他の各段の視差計算処理(第一段の視差計算処理を含む)の、第一、第二画像に関する画像特徴及び対応する視差サーチ範囲に基づいて視差計算処理を行うことで対応するサイズを有する視差調整図又は視差図を得る処理過程は、第二段の視差計算処理の上述の対応する過程と類似しているが、相違点は、第一段の視差計算処理について言えば、それが基づくターゲット画像に関する画像特徴又は視差サーチ範囲には対応する視差偏移が含まれないことにある。これは、以下では繰り返されない。
幾つかの実施例によれば、ステップS303に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する視差調整図を得ることは、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて、コスト関数ボリューム(Costボリューム)を構築し;及び、前記コスト関数ボリュームに基づいて、前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像における各対のマッチした画素点間の視差調整値を確定することで、前記第二サイズを有する前記視差調整図を取得することを含んでも良い。
前記Costボリュームのサイズは、第二段の視差計算処理が基づく画像のサイズ(即ち、前記第二サイズ)及び第二段の視差計算処理に対応する視差サーチ範囲に関連する。また、前記CostボリュームにおけるC(p,d)点、即ち、対応するサイズ(即ち、前記第二サイズ)を有する第一画像I1の中のp(x,y)点の、視差dにおけるマッチングコストC(p,d)は、対応するサイズを有する該第一画像I1におけるp(x,y)点と、対応するサイズ(即ち、前記第二サイズ)を有する第二画像I2におけるq(x-d-disp1(p),y)点との差を表すために用いられ得る。前記dの数値範囲は、第二段の視差計算処理に対応する視差サーチ範囲に基づいて決定される。例えば、第二段の視差計算処理に対応する視差サーチ範囲を[-D0,D0]とすることを例にとると、前記dの数値範囲も[-D0,D0]とすることができる。前記disp1(p)は、対応するサイズ(即ち、前記第二サイズ)を有するアップサンプリング視差図に基づいて確定された、対応するサイズを有する該第一画像I1における点pの初期視差を表す。
幾つかの実施例によれば、確定された、第一画像に関する画像特徴又は第二画像に関する画像特徴に、画像における各画素点のRGB成分及び各画素点の勾配(例えば、水平勾配)が含まれることを例にとれば、前記差は、対応して、色の差及び勾配の差を含んでも良い。
幾つかの実施例によれば、前記色の差は、
と表すことができる。ここで、前記iの3つの値1、2、3は、それぞれ、R、G、B成分を示す。前記勾配の差(例えば、水平勾配の差)は、
と表すことができる。ここで、∇
x(I
1(p))は、対応するサイズ(即ち、前記第二サイズ)を有する該第一画像I
1におけるp点の水平勾配を示し、∇
x(I
2(q))は、対応するサイズ(即ち、前記第二サイズ)を有する該第二画像I
2におけるq点の水平勾配を示す。
幾つかの実施例によれば、前記Costボリュームにおける点C(p,d)は、下述の公式で表すことができる。
ここで、αは、色の項と勾配の項のバランスをとるための重みであり、T
c及びT
gは、それぞれ、色の項及び勾配の項に関するカットオフ値を表し、三者の値は、すべて、実際の状況に応じて柔軟に設定することができる。例示として、α=0.9、T
c=21、T
g=4と設定しても良いが、これに限定されない。
幾つかの実施例によれば、前記コスト関数ボリュームに基づいて、前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像における各対のマッチした画素点間の視差調整値を確定することは、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおけるマッチングコストに対してコストアグリゲーション(即ち、コストフィルタリング)を行い;前記コストアグリゲーションの結果に基づいて、前記第二サイズを有する前記第一画像(即ち、参照画像)における各画素点の、前記第二段の視差計算処理に対応する視差サーチ範囲内の最小累積コストを確定し;及び、前記最小累積コストに基づいて、前記第二サイズを有する前記第一画像における各画素点と、前記第二サイズを有する前記第二画像(即ち、ターゲット画像)におけるマッチした画素点との間の視差調整値を確定することを含んでも良い。
換言すれば、Costボリュームを構築した後に、対応するアグリゲーションウィンドウに基づいてCostボリュームにおけるマッチングコストに対してコストアグリゲーションを行うことで、単点のノイズを除去し、マッチング精度を向上させることができる。その後、アグリゲーション後のマッチングコスト(即ち、累積コスト)に対して最小値を取る方式により、対応する視差調整値を得ることができる。
幾つかの実施例によれば、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおけるマッチングコストに対してコストアグリゲーションを行うことは、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおける、対応する視差が同じであるマッチングコストに対してコストアグリゲーションを行うことを含んでも良い。
例示として、SAD(Sum of absolute differences)アグリゲーションアルゴリズムを採用することを例にとると、以下の公式により、Costボリュームにおける、対応する視差が同じであるマッチングコストに対してコストアグリゲーションを行い、前記第二サイズを有する第一画像の中のp(x,y)点の、視差dにおける累積コストを得ることができる。
ここで、KW及びKHは、それぞれ、対応するアグリゲーションウィンドウの幅及び高さを示し(即ち、アグリゲーションウィンドウはKW×KHと表すことができる)、単位は、画素であっても良く、且つその値は、実際の状況に応じて柔軟に設定することができ、例えば、すべては、9などに設定されても良い。
幾つかの実施例によれば、前記第二サイズを有する第一画像における各画素点の、前記第二段の視差計算処理に対応する視差サーチ範囲内の各視差処の累積コストを得た後、WTA(Winner-take-all)アルゴリズムにより最小累積コストを選ぶことにより、前記最小累積コストに基づいて、前記第二サイズを有する前記第一画像における各画素点と、前記第二サイズを有する前記第二画像におけるマッチした画素点との間の視差調整値disp2を得ることができる。
それ相応に、前記第二サイズを有する前記第一画像における各画素点と、前記第二サイズを有する前記第二画像におけるマッチした画素点との間の視差調整値disp2を確定した後に、disp2と、前記第二サイズを有するアップサンプリング視差図に基づいて確定された、対応する初期視差(又は、視差偏移)disp1との和を求める方式により、前記第二サイズを有する前記第一画像における各画素点と、前記第二サイズを有する前記第二画像におけるマッチした画素点との間の最終視差を得ることができる。これにより、前記第二サイズを有する第二視差図を取得することができる。
以上、関連公式を参照しながら、ローカルエリアマッチング方法を採用して、ステップS303に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行うことで前記第二サイズを有する視差調整図を得る過程について例示的に説明した。ローカルエリアマッチング方法を採用して、ステップS403に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行うことで前記第二サイズを有する前記第二視差図を得る過程は、ローカルエリアマッチング方法を採用してステップS303を行う過程と類似しているため、詳細な説明が詳細される。
例示として、ステップS303と同様に、ステップS403に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する前記第二視差図を得ることは、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて、コスト関数ボリュームを構築し;及び、前記コスト関数ボリュームに基づいて、前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像における各対のマッチした画素点間の視差を確定することで、前記第二サイズを有する前記第二視差図を得ることを含んでも良い。
なお、この場合、構築されたCostボリュームにおけるC(p,d)点、即ち、対応するサイズ(即ち、前記第二サイズ)を有する第一画像I1の中のp(x,y)点の、視差dにおけるマッチングコストC(p,d)は、対応するサイズを有する該第一画像I1におけるp(x,y)点と、対応するサイズ(即ち、前記第二サイズ)を有する該第二画像I2におけるq(x-d,y)点との差を表すために用いられ得る。前記dの数値範囲は、この場合における第二段の視差計算処理に対応する、対応する視差偏移を含む視差サーチ範囲に基づいて決定される。例えば、前記第二段の視差計算処理に対応する、対応する視差偏移を有する視差サーチ範囲を[-D0+disp1,D0+disp1]と表す場合、前記dの数値範囲も[-D0+disp1,D0+disp1]と表すことができ。前記disp1(p)は、対応するサイズ(即ち、前記第二サイズ)を有するアップサンプリング視差図に基づいて確定された、対応するサイズを有する該第一画像I1における点pの初期視差を表す。
幾つかの実施例によれば、前記コスト関数ボリュームに基づいて、前記第二サイズを有する前記第一画像及び前記第二サイズを有する前記第二画像のおける各対のマッチした画素点間の視差を確定することは、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおけるマッチングコストに対してコストアグリゲーションを行い;前記コストアグリゲーションの結果に基づいて、前記第二サイズを有する前記第一画像における各画素点の、前記第二段の視差計算処理に対応する視差サーチ範囲内の最小累積コストを確定し;及び、前記最小累積コストに基づいて、前記第二サイズを有する前記第一画像における各画素点と、前記第二サイズを有する前記第二画像におけるマッチした画素点との間の視差を確定することを含んでも良い。
幾つかの実施例によれば、前述のように、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおけるマッチングコストに対してコストアグリゲーションを行うことは、前記第二段の視差計算処理に対応するアグリゲーションウィンドウに基づいて、前記コスト関数ボリュームにおける、対応する視差が同じであるマッチングコストに対してコストアグリゲーションを行うことを含んでも良い。
また、上記の関連説明から分かるように、ステップS403に対応する視差計算処理方式を採用する場合、前記第二サイズを有する前記第二視差図を直接得ることができるが、ステップS303に対応する視差計算処理方式を採用する場合、先ず、前記第二サイズを有する前記視差調整図を取得し、その後、前記第二サイズを有する前記視差調整図と、前記第二サイズを有する前記アップサンプリング視差図との組み合わせ(例えば、重ね合わせ)を行うことで、前記第二サイズを有する前記第二視差図を得ることができるができる。
また、前述のように、ローカルエリアマッチング方法を採用して、他の各段の視差計算処理(第一段の視差計算処理を含む)の、第一、第二画像に関する画像特徴及び対応する視差サーチ範囲に基づいて視差計算処理を行うことで対応するサイズを有する視差調整図又は視差図を得る過程は、第二段の視差計算処理の上記の対応する過程に類似しているが、相違点は、第一段の視差計算処理について言えば、それが基づくターゲット画像に関する画像特徴又は視差サーチ範囲には対応する視差偏移が含まれないことにある。換言すれば、ローカルエリアマッチング方法を採用して視差を計算するときに、第二段の視差計算処理を含むその後の各段の視差計算処理とは異なり、第一段の視差計算処理について言えば、そのために構築されたCostボリュームにおけるC(p,d)点、即ち、対応するサイズ(即ち、前記第一サイズ)を有する第一画像I1の中のp(x,y)点の、視差dにおけるマッチングコストC(p,d)は、対応するサイズを有する該第一画像I1におけるp(x,y)点と、対応するサイズ(即ち、前記第一サイズ)を有する該第二画像I2におけるq(x-d,y)点との差を表すために用いられ得る。ここで、前記dの数値範囲は、該第一段の視差計算処理に対応する視差サーチ範囲に基づいて決定される。例えば、第一段の視差計算処理に対応する視差サーチ範囲を[0,D/2]とすることを例にとれば、前記dの数値範囲は[0,D/2]と表すことができる。また、前記第一段の視差計算処理に対応する視差サーチ範囲には視差偏移が含まれない。
代替案として、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する視差調整図を得ること(ステップS303に対応する)は、視差生成ニューラルネットワークを確定し、前記視差生成ニューラルネットワークは、画像対における各画像の画像特徴及び対応する視差サーチ範囲に基づいて、前記画像対における各対のマッチした画素点間の視差調整値を確定することで、対応するサイズを有する視差調整図を得るために用いられ;並びに、前記視差生成ニューラルネットワークに基づいて、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に対して処理を行うことで、前記第二サイズを有する視差調整図を得ることを含んでも良い。
同様に、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて視差計算処理を行い、前記第二サイズを有する前記第二視差図を得ること(ステップS403に対応する)は、視差生成ニューラルネットワークを確定し、前記視差生成ニューラルネットワークは、画像対における各画像の画像特徴及び対応する視差サーチ範囲に基づいて前記画像対における各対のマッチした画素点間の視差を確定することで、対応するサイズを有する視差図を得るために用いられ;並びに、前記視差生成ニューラルネットワークに基づいて、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に対して処理を行うことで、前記第二サイズを有する前記第二視差図を得ることを含んでも良い。
換言すると、ローカルエリアマッチング方法を採用して各段の視差計算処理(第一段、第二段の視差計算処理を含む)を行うことができる他に、ニューラルネットワークに基づく方法を採用して適切なニューラルネットワークを選んで各段の視差計算処理を行っても良い。ニューラルネットワークに基づく方法は、視差ネットワークを構築することで、より大きい感知領域を得ることがでるため、視差の確定の効果が良い。
幾つかの実施例によれば、各視差生成ニューラルネットワークは2DCNN(2次元深層畳み込みニューラルネットワーク)、3DCNN(3次元深層畳み込みニューラルネットワーク)などの任意の、対応する視差処理機能を実現し得る畳み込みニューラルネットワークであっても良い。畳み込みニューラルネットワークを視差生成ネットワークとして採用することで、比較的大きい感知領域を得ることができるため、得られる視差図の精度を向上させることができる。
幾つかの実施例によれば、2DCNN構成を採用する視差生成ニューラルネットワークは、相関層(correlation layer)及び第一の数(例えば、3〜5などであり、もちろん、実際のニーズに応じて他の適切な値を柔軟に選択しても良い)の、順にカスケード接続される畳み込み層(convolution layer)を含んでも良い。各畳み込み層の畳み込み方式は、例えば、深層分離可能畳み込み(depthwise separable convolution)などを採用しても良い。3DCNN構成を採用する視差生成ニューラルネットワークは、シフト結合層(shift concatenate layer)及び第二の数(例えば、3〜7であり、もちろん、実際のニーズに応じて他の適切な値を柔軟に選択しても良い)の、順にカスケード接続される畳み込み層を含んでも良い。
幾つかの実施例によれば、2DCNN構成を採用する視差生成ニューラルネットワークについて言えば、それに含まれる相関層の機能は、前述の実施例に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて、コスト関数ボリュームを構築することに類似している。3DCNN構成を採用する視差生成ニューラルネットワークについて言えば、それに含まれるシフト結合層の機能は、前述の実施例に記載の、前記第一画像に関する画像特徴、前記第二画像に関する画像特徴、及び前記第二段の視差計算処理に対応する視差サーチ範囲に基づいて、コスト関数ボリュームを構築することに類似している。それ相応に、第二画像に関する画像特徴には前記第二サイズを有するアップサンプリング視差図に基づいて確定された視差偏移が含まれること、又は、第二段の視差計算処理に対応する視差サーチ範囲には前記第二サイズを有する前記アップサンプリング視差図に基づいて確定された視差偏移が含まれることとは、相関層の操作又はシフト結合層の操作を行うときに、前記第二サイズを有する前記アップサンプリング視差図に基づいて確定された視差偏移を考慮する(例えば、重ね合わせる)ことを指す。
幾つかの実施例によれば、第一段の視差計算処理のための視差生成ニューラルネットワークに含まれる畳み込み層の数は、他の視差計算処理のための視差生成ニューラルネットワークに含まれる畳み込み層の数よりも大きくても良い。これにより、第一段の視差計算処理により得られた初期視差図の精度を向上させることで、視差計算過程全体の精度を向上させることができる。
なお、ニューラルネットワークに基づく方法を採用して視差を計算することについて言えば、視差計算時にそれが基づく第一画像に関する画像特徴及び第二画像に関する画像特徴なども、画像対における各画像の画像特徴に対して抽出を行うための特徴抽出ニューラルネットワークにより実現されても良い。このように、画像特徴抽出の効率を向上させることで、視差計算の効率を向上させることができる。
幾つかの実施例によれば、各段の視差計算処理のための視差生成ニューラルネットワーク及び/又は特徴抽出ニューラルネットワークは、いずれも、教師有り訓練又は教師無し訓練の方式で訓練することにより得ることができる。教師有り訓練では、通常、既存の訓練サンプル(例えば、ラベル付きデータ)を利用して入力から出力までのマッピングを学習し、その後、このようなマッピング関係を未知のデータに適用することで、分類又は回帰の目的を達成する。教師有り訓練のアルゴリズムは、例えば、論理回帰アルゴリズム、SVM(Support Vector Machine)アルゴリズム、決定木アルゴリズムなどを含んでも良い。教師無し訓練と教師有り訓練の相違点は、教師無し訓練ではサンプルを訓練する必要がなく、直接、ラベル無しのデータに対してモデリングを行い、そのうちの規律を見つけることにあり、その典型的なアルゴリズムは、例えば、クラスタリングアルゴリズム、ランダムフォレスト(Random forests)アルゴリズムなどを含んでも良い。
幾つかの実施例によれば、各段の視差計算処理のための視差生成ニューラルネットワーク及び/又は特徴抽出ニューラルネットワークは、すべて、訓練サンプル集に基づいて事前訓練されたニューラルネットワークであっても良い。このように、視差処理の効率を向上させることができる。もちろん、実際のニーズに応じて、各段の視差計算処理のための視差生成ニューラルネットワーク及び/又は特徴抽出ニューラルネットワークは、訓練サンプル集に基づいてリアルタイムで訓練することにより得られたものであっても良く、又は、更新後の訓練サンプル集に基づいて事前訓練済みのニューラルネットワークに対してリアルタイムな又は定時の最適化を行うことにより得られたものであっても良い。これにより、視差計算の正確性を向上させることができる。
例示として、以下、図5に基づいて、本開示の例示的な実施例の、二段視差計算処理を含む視差確定方法の全体的なワーキング過程について説明する。ここで、各段の視差計算処理は、いずれも、ローカルエリアマッチング方法を採用して実行することができる。
図5に示す通りであり、図5は、本開示の例示的な実施例による、二段視差計算処理を含む視差確定方法の全体図であり、前記視差確定方法は、第一段の視差計算処理を、ダウンサンプリング視差(即ち、初期視差)を計算するために、及び、第二段の視差計算処理を、初期視差に基づいて視差詳細化を行うために含んでも良い。ここで、各段の視差計算処理は、それぞれ、画像特徴の確定、コスト関数ボリューム(Cost volume又はCostボリューム)の構築、コストのアグリゲーション(即ち、コストのフィルタリング)及び最小累積コストの確定などの操作を含んでも良い。
例示として、処理待ち画像対における画像(即ち、第一画像及び第二画像)のオリジナルサイズをH×W(フルサイズとも言う)とし、且つ隣接する二段視差計算処理が基づく画像間のアップサンプリングステップ長又はダウンサンプリングステップ長の値が2であるとする場合、第一段の視差計算処理が基づくダウンサンプリング処理後の第一画像及び第二画像のサイズ(即ち、第一サイズ)は(H/2)×(W/2)(1/2サイズとも言う)と表すことができ、対応する視差サーチ範囲は[0,D/2]になる。ここで、Dは、第一画像及び第二画像のオリジナル画像の視差サーチ最大値を表し、その値は、前記第一画像及び前記第二画像を採取するためのマルチカメラにおける各カメラヘッドの焦点距離及び/又は各カメラヘッド間の間隔と関係がある(単位は画像の高さH、幅Wと同様に画素であっても良い)。第二段の視差計算処理が基づく画像のサイズ(即ち、第二サイズ)は、該フルサイズH×Wであり、対応する視差サーチ範囲は、[-D0,D0]に設定することができる。前記D0は、M0(K-1)以下の正の数値であり、ここで、上記の関連実施例に記載のように、前記Kは、前記アップサンプリングステップ長を表し;前記M0は、前記第一段の視差計算処理に対応する最大視差誤差を表し、且つ1以上の数値である。また、便宜のため、これからも依然としてI1、I2を用いてダウンサンプリング後の第一画像及び第二画像を表し、また、異なるサイズの画像の標識(ID)を区別しない。
例示として、第一段の視差計算処理の画像特徴の確定の段階で、第一サイズを有する第一画像I1を例にとると、該第一画像I1における各画素点のRGB成分及び各画素点の勾配(例えば、水平勾配)を対応する画像特徴として確定することができる。ここで、該第一画像I1における点p1(x,y)の水平勾配は以下の方式で確定することができる。
p1(x,y)、p2(x-1,y)を第一画像I1における2つの隣接点として記す場合、該第一画像I1におけるp1点の水平勾配方向は、
と表すことができる。ここで、I
1 r(p
1)、I
1 g(p
1)、I
1 b(p
1)は、それぞれ、該第一画像I
1における点p
1のRGB成分を示し、I
1 r(p
2)、I
1 g(p
2)、I
1 b(p
2)は、それぞれ、該第一画像I
1における点p
2のRGB成分を示す。
第一サイズを有する第一画像I1及び第一サイズを有する第二画像I2の画像特徴を得た後に、第一段の視差計算処理のコスト関数ボリュームの構築の段階で、以下の方式でCostボリュームを構築することができ、ここで、Costボリュームのサイズは、(W/2)×(H/2)×(D/2)と表すことができる。
確定された第一画像I1の各画素点のRGB成分及び勾配(例えば、水平勾配)、及び第二画像I2の各画素点のRGB成分及び勾配(例えば、水平勾配)に基づいて、両者の間の色の差及び勾配の差を確定する。前記色の差は、
と表すことができ、ここで、前記iの3つの値1、2、3は、R、G、B成分を示す。前記勾配の差(例えば、水平勾配の差)は、
と表し、ここで、∇
x(I
1(p))は、第一サイズを有する第一画像I
1におけるp点の水平勾配を示し、∇
x(I
2(q))は、第一サイズを有する第二画像I
2におけるq点の水平勾配を示す。前記dの数値範囲は、第一段の視差計算処理に対応する視差サーチ範囲に基づいて決定され、例示として、前記dの数値範囲は、[0,D/2]である。
確定された色の差及び勾配の差に基づいて、以下の公式により前記Costボリュームを構築する。
ここで、前記CostボリュームにおけるC(p,d)点、即ち、第一サイズを有する第一画像I
1におけるp(x,y)点の、視差dにおけるマッチングコストC(p,d)は、該第一サイズを有する第一画像I
1におけるp(x,y)点と、第一サイズを有する第二画像I
2におけるq(x-d,y)点との差を表し、αは、色の項と勾配の項とのバランスをとるための重みであり、T
c及びT
gは、それぞれ、色の項及び勾配の項と関するカットオフ値であり、三者の値は、すべて、実際の状況に応じて柔軟に設定することができる。例示として、α=0.9、T
c=21、T
g=4と設定しても良いが、これに限定されない。
Costボリューム構築後に、第一段の視差計算処理のコストアグリゲーションの段階において、SADアグリゲーションアルゴリズムを採用することを例にとれば、以下の公式でCostボリュームにおいて対応する視差が同じであるマッチングコストに対してコストアグリゲーションを行い、第一サイズを有する第一画像I1におけるp(x,y)点の、視差dにおける累積コストを取得する。
前記KW及びKHは、それぞれ、対応するアグリゲーションウィンドウの幅及び高さを表し(即ち、アグリゲーションウィンドウはKW×KHと表すことができる)、単位は画素であり、且つその値は、実際の状況に応じて柔軟に設定することができ、例えば、すべては、9などに設定しても良い。
第一サイズを有する第一画像I1の中の各画素点の、第一段の視差計算処理に対応する視差サーチ範囲内の各視差における累積コストを得た後に、第一段の視差計算処理の最後の段階で、以下の公式でWTAアルゴリズムに基づいて最小累積コストを選択することにより、対応する初期視差disp0を確定することができる。
前記初期視差disp0及びフルサイズの第一画像I
1、フルサイズの第二画像I
2は、共同で、次の段即ち第二段の視差計算処理の入力とされることで、対応する画像特徴を確定することができる。また、初期視差disp0が第一画像及び第二画像の原図の二分之一のサイズに対応するので、それをdisp1=2*upsample(disp0)にアップサンプリングすることで、対応するフルサイズの初期視差disp1を得ることができる。
例示として、第二段の視差計算処理の各段階は、すべて、第一段の視差計算処理の各対応する段階と類似した方式で実行されても良いが、相違点は、このときの各画素点がすべて1つの初期視差disp1に対応しても良いことのみにある。換言すると、依然として、確定された第一画像に関する画像特徴又は第二画像に関する画像特徴が画像における各画素点のRGB成分及び各画素点の勾配(例えば、水平勾配)を含むことを例に取ると、第二段の視差計算処理において構築されたCostボリュームにおけるC(p,d)点、即ち、フルサイズ(即ち、前記第二サイズ)を有する第一画像I1の中のp(x,y)点の、視差dにおけるマッチングコストC(p,d)は、フルサイズを有する該第一画像I1におけるp(x,y)点と、フルサイズ(即ち、前記第二サイズ)を有する該第二画像I2におけるq(x-d-disp1(p),y)点との差を表すために用いることができ、ここで、前記dの数値範囲は、第二段の視差計算処理に対応する視差サーチ範囲[-D0,D0]に基づいて決定される。例えば、前記dの数値範囲は、[-D0,D0]と表しても良い。
なお、SADアグリゲーションアルゴリズムを採用してコストアグリゲーションを行うことを例に取ると、第二段の視差計算処理のコストアグリゲーションの段階で採用する公式は、以下の通りであっても良い。
ここで、KW及びKHは、それぞれ、対応するアグリゲーションウィンドウの幅及び高さを表し、単位は、画素であり、その値は、実際の状況に応じて柔軟に設定されても良く、例えば、すべては、9などに設定しても良い。また、異なる段の視差計算処理に対応するアグリゲーションウィンドウのサイズも異なるように設定されても良い。
それ相応に、累積コストを得た後に、第二段の視差計算処理の最後の1つの段階で、WTAアルゴリズムにより最小累積コストを選ぶことで、対応する視差調整値disp2を確定し、その後、初期視差disp1と視差調整値disp2との和を求めることで、詳細化後の視差即ち最終視差disp=disp1+disp2を得ることができる。なお、該例示は、図3に対応する視差計算処理方式を採用して説明したが、Costボリュームの構築、コストのアグリゲーション、最小累積コストの確定などのステップを図4に対応する視差計算処理方式において対応するテップに置換すれば、視差調整値を計算する必要なく、直接、必要な視差を算出することができる。
上述の内容から分かるように、直接フルサイズの画像を用いて視差を計算することに比較して、本開示の図5に示す視差計算過程に必要な総計算量は、直接フルサイズの画像を用いて視差を計算するときの(1/8)+(2・D0+1)/Dである。計算量が明らかに減少するため、視差計算の速度を大幅に上げることができる。
以下、図6A、図6B、図6C及び図6Dをもとに、参照画像のMiddlebury共通データ集の画像上でのテストにより得られた結果に基づいて例示的に説明する。図6A及び図6Bは、それぞれ、本開示の例示的な実施例による参照画像及び対応する真値視差(ground truth)図を示す図である。図6C及び図6Dは、それぞれ、本開示の例示的な実施例による視差確定方法が図6Aに示す参照画像に基づいて二段視差処理を行うことにより得られたアップサンプリング処理後の初期視差図及び最適化視差図を示す図である。これらの各図面から分かるように、詳細化後の視差結果(最後の一段の視差計算処理により得られた結果)は、アップサンプリング処理後の初期視差結果に比べて、より平滑的であり、視差がより連続的である。
また、図6A〜図6Dは、それぞれ、グレースケール画像の方式で参照画像、真値視差図、アップサンプリング処理後の初期視差図及び最適化視差図について例示したが、理解すべきは、図6Aに示す参照画像がカラー画像であるときに、図6B〜図6Dに示す各視差図も対応するカラー画像であっても良いということである。
また、図未しないが、得られた視差図例えば最適化視差図(即ち、最後の一段の視差計算処理により得られた視差図)はさらに、対応するターゲット装置に提供され、更なる処理をして貰っても良い。例えば、対応するターゲット装置に提供されることにより、前記ターゲット装置は、前記視差図に基づいて深度図を算出し、そして、シーンの深度情報を得ることで、3次元再構成、自動運転、障害物検知などの様々な応用シーンに用いることができる。
また、前述の関連実施例に記載のように、最後の一段の視差計算処理により得られた視差図を視差計算結果とする以外、他の各段の視差計算処理により得られた視差図を一緒に視差計算結果としても良い。この場合、ターゲット装置のパフォーマンスに基づいて、前記複数の視差図のうちからそのサイズが前記ターゲット装置のパフォーマンスとマッチした視差図を選択し、最終的に前記ターゲット装置に提供される視差図としても良い。例えば、前記ターゲット装置のパフォーマンスが高く、及び/又は、その要する視差図の精度が高い場合、前記複数の視差図のうちからサイズが比較的大きい視差図を選んで前記ターゲット装置に提供しても良い。
以上、図1〜図6Dを参照しながら本開示の視差確定の例示的な方法を説明した。以下、図7をもとに、本開示の例示的な電子機器の例示的な実施例についてさらに説明する。留意されたいのは、前文に図1〜図6Dに基づいて説明した各種の定義、実施例、実施方式、実例なども、以下に説明の例示的な実施例に適用することができ、又は、それと組み合わせることができるということである。
本開示の一側面において、電子機器が提供され、該電子機器は、処理器;及びプログラムを記憶している記憶器を含んでも良く、前記プログラムは指令を含み、前記指令は、前記処理器により実行されるときに、前記処理器に、前述の任意の方法を実行させることができる。
本開示の一側面において、プログラムを記憶しているコンピュータ可読記憶媒体が提供され、前記プログラムは指令を含み、前記指令は、電子機器の処理器により実行されるときに、前記電子機器に、前述の任意の方法を実行させることができる。
以下、図7を参照しながら計算装置2000を説明する。それは、本開示の各側面に適用され得るハードウェア装置の例示である。計算装置2000は、処理及び/又は計算を実行するように構成される任意の装置であっても良く、例えば、ワークステーション、サーバ、デスクトップコンピュータ、ノートコンピュータ、タブレットコンピュータ、PDA、スマートフォン、車載コンピュータ又はその任意の組み合わせであっても良いが、これに限定されない。
計算装置2000は、バス2002に接続される又はバス2002と通信される素子を含んでも良い(なお、1つ又は複数のインターフェースを経由する可能性がある)。例えば、計算装置2000は、バス2002、1つ又は複数の処理器2004、1つ又は複数の入力装置2006及び1つ又は複数の出力装置2008を含んでも良い。1つ又は複数の処理器2004は、任意の類型の処理器であっても良く、例えば、1つ又は複数の汎用処理器及び/又は1つ又は複数の専用処理器(例えば、特殊処理チップ)を含んでも良いが、これに限定されない。入力装置2006は、計算装置2000に情報を入力し得る任意の類型の装置であっても良く、例えば、マウス、キーボード、タッチパネル、マイク及び/又はリモコンであっても良いが、これに限定されない。出力装置2008は、情報を表示し得る任意の類型の装置であっても良いが、例えば、表示器、スピーカー、ビデオ/音声出力端子、振動器及び/又はプリンタであっても良いが、これに限定されない。計算装置2000はさらに、記憶装置2010を含んでも良く、又は記憶装置2010に接続されても良く、記憶装置は、非一時的で且つデータの記憶を実現し得る任意の記憶装置であっても良く、例えば、ディスクドライブ、光ストレージデバイス、ソリッドステートメモリ、フロッピーディスク、フレキシブルディスク、ハードディスク、テープ又はその他の磁気メディア、光ディスク又はその他の光メディア、ROM(読み取り専用メモリ)、RAM(ランダムアクセスメモリ)、キャッシュメモリ、及び/又はその他のメモリチップ又はカートリッジ、及び/又はコンピュータがデータ、命令、及び/又はコードを読み取ることができるその他の媒体であっても良いが、これに限定されない。記憶装置2010はインターフェースに対して着脱可能である。記憶装置2010は、上述の方法及びステップ(例えば、図1〜図4などのフローチャートに示す方法及びステップ)を実現するためのデータ/プログラム(指令を含む)/コードを有しても良い。計算装置2000はさらに、通信装置2012を含んでも良い。通信装置2012は、外部装置及び/又はネットワークと通信し得る任意の類型の装置又はシステムであっても良く、例えば、モデム、ネットワークカード、赤外線通信装置、無線通信装置及び/又はチップアセンブリ、例えば、ブルートゥース(登録商標)装置、1302.11装置、WiFi装置、WiMax装置、セルラー通信装置及び/又は類似物を含んでも良いが、これに限定されない。
計算装置2000はさらに、ワーキング記憶器2014を含んでも良く、それは、処理器2004のワーキングに有用なプログラム(指令を含む)及び/又はデータを記憶する任意の類型のワーキング記憶器であっても良く、例えば、ランダムアクセスメモリ及び/又は読み取り専用メモリを含んでも良いが、これに限定されない。
ソフトウェア要素(プログラム)がワーキング記憶器2014にあっても良く、それは、オペレーティングシステム2016、1つ又は複数のアプリ(アプリケーション、即ち、応用プログラム)2018、駆動プログラム及び/又はその他のデータ及びコードを含んでも良いが、これに限定されない。上述の方法及びステップ(例えば、図1〜図4などのフローチャートに示す方法及びステップ)を実行するための指令は、1つ又は複数のアプリ2018に含まれても良く、また、処理器2004が該1つ又は複数のアプリ2018の指令を読み取り及び実行することにより実現されても良い。ソフトウェア要素(プログラム)の指令の実行可能なコード又はソースコードは、非一時的コンピュータ可読記憶媒体(例えば、上述の記憶装置2010)に記憶され、且つ実行時にワーキング記憶器2014に格納され得る(コンパイル及び/又はインストールされ得る)。ソフトウェア要素(プログラム)の指令の実行可能なコード又はソースコードは、リモート位置からダウンロードすることもできる。
なお、具体的な要求に応じて様々な変形を行っても良い。例えば、カスタム化ハードウェアを用いても良く、及び/又は、ハードウェア、ソフトウェア、ファームウェア、ミッドウェア、マイクロコード、ハードウェア記述言語又はその任意の組み合わせにより特定の素子を実現することもできる。例えば、開示される方法及び装置における幾つか又は全部は、本開示の論理及びアルゴリズムに基づいて、アセンブリ言語又はハードウェアプログラミング言語(例えば、VERILOG、VHDL、C++)を用いて、ハードウェア(例えば、FPGA及び/又はPLAを含むプログラム可能な論理回路)に対してプログラミングを行うことにより実現されても良い。
また、理解すべきは、前述の方法がサーバ-クライアントの方式により実現されても良いということである。例えば、クライアントは、ユーザが入力したデータを受信し、前記データをサーバに送信することができる。クライアントは、ユーザが入力したデータを受信し、前述の方法における一部の処理を行い、そして、処理により得られたデータをサーバに送信することもできる。サーバは、クライアントからのデータを受信し、前述の方法又は前述の方法における一部を実行し、そして、実行の結果をクライアントに返すことができる。クライアントは、サーバから方法の実行の結果を受信し、また、例えば、出力装置によりユーザに示すことができる。
さらに、理解すべきは、計算装置2000の部品がネットワークに分散しても良いということである。例えば、1つの処理器が幾つかの処理を実行し、また、該1つ処理器を離れる他の処理器が他の処理を実行しても良い。計算装置2000の他の部品も同様に分散しても良い。このように、計算装置2000は、複数の位置で処理を実行する分散型計算システムと見なされても良い。
なお、図面を参照しながら本開示の実施例又は実施方式を説明したが、理解すべきは、上述の方法、システム及び装置は例示的な実施例又は実施方式に過ぎず、本開示の範囲はこれらの実施例又は実施方式により限定されず、特許請求の範囲及びその均等な範囲により限定されるということである。実施例又は実施方式における各種の要素は、省略されても良く又は他の均等な要素により置換されても良い。また、本開示に述べた順序とは異なる順序に従って各ステップを実行しても良い。さらに、各種の方式で実施例又は実施方式における各種の要素を組み合わせても良い。重要なのは、技術が進化するにつれて、ここで記載されている多くの要素を、本開示の後に現れる均等な要素により置き換えることができるということである。