概して、様々な実装形態が、立体画像の視差マップ推定のための方法、装置、及びコンピュータプログラム製品に関する。
背景
カメラや携帯電話、その他のマルチメディアデバイス等の様々な電子機器が、風景を撮像するのに広く用いられている。電子機器によっては、立体的に見える画像を取得し、立体画像で風景の視差マップ推定を行えるものもある。視差マップ推定は、立体画像間のずれをピクセル単位で決定する処理である。視差マップが被写体の輪郭周辺で不正確な視差を含んだり、穴領域及びテクスチャ欠損領域として表わされる視差欠損を含んだりすることが度々起きる。通常、視差マップにおける視差のリファイニング(refining)と穴埋め(filling)は、最小全域ツリー(minimum spanning tree:MST)ベース集計フレームワーク(aggregation framework)や水平/垂直ベース集計フレームワーク等といった様々な方法で行われる。しかし、こうした被写体輪郭のリファイニングと、穴領域及びテクスチャ欠損領域による視差推定の誤差を解決することは、困難な課題となっている。
いくつかの実施形態のまとめ
例示的実施形態の多くの態様が、特許請求の範囲に提示されている。
第1の態様では、次の方法が提供される:第1の画像及び第2の画像の受取りを進めることであって、前記第1の画像及び第2の画像は風景に関連している、前記進めることと;複数の視差値に対して前記第1の画像の画素に関連する第1の総コストボリュームを決定し、前記複数の視差値に対して前記第2の画像の画素に関連する第2の総コストボリュームを決定することと;前記第1の総コストボリュームに基づいて、前記第1の画像の第1の視差マップを作成し、前記第2の総コストボリュームに基づいて、前記第2の画像の第2の視差マップを作成することと;前記第1の総コストボリュームに基づいて、前記第1の視差マップにおける前記第1の画像の画素の視差値に対する信頼マップを作成することであって、前記信頼マップは、前記第1の画像の画素から信頼画素群を表わす、前記作成することと;前記第1の画像の複数の色セグメント及び前記複数の色セグメントにおける信頼画素数に少なくとも基づいて、前記第1の画像の1つ又は複数の無限遠領域を決定することと;前記第1の画像の画素に対するフィルタ視差値を決定することで、前記第1の視差マップに基づいて第3の視差マップを作成することであって、前記第1の画像の1つ又は複数の無限遠領域の画素に対するフィルタ視差値は、所定の視差値として決定される、前記作成すること
を含む、方法。
第2の態様では、次の装置が提供される:少なくとも1つのプロセッサと;コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置であって、前記少なくとも1つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサを用いて、前記装置に少なくとも:第1の画像及び第2の画像の受取りを進めることであって、前記第1の画像及び第2の画像は風景に関連している、前記進めることと;複数の視差値に対して前記第1の画像の画素に関連する第1の総コストボリュームを決定し、前記複数の視差値に対して前記第2の画像の画素に関連する第2の総コストボリュームを決定することと;前記第1の総コストボリュームに基づいて、前記第1の画像の第1の視差マップを作成し、前記第2の総コストボリュームに基づいて、前記第2の画像の第2の視差マップを作成することと;前記第1の総コストボリュームに基づいて、前記第1の視差マップにおける前記第1の画像の画素の視差値に対する信頼マップを作成することであって、前記信頼マップは、前記第1の画像の画素から信頼画素群を表わす、前記作成することと;前記第1の画像の複数の色セグメント及び前記複数の色セグメントにおける信頼画素数に少なくとも基づいて、前記第1の画像の1つ又は複数の無限遠領域を決定することと;前記第1の画像の画素に対するフィルタ視差値を決定することで、前記第1の視差マップに基づいて第3の視差マップを作成することであって、前記第1の画像の1つ又は複数の無限遠領域の画素に対するフィルタ視差値は、所定の視差値として決定される、前記作成すること
を実行させるように構成される、装置。
第3の態様では、次のコンピュータプログラム製品が提供される:少なくとも1つのコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読記憶媒体は命令セットを含み、前記命令セットは、1つ以上のプロセッサにより実行されると、装置に少なくとも:第1の画像及び第2の画像の受取りを進めることであって、前記第1の画像及び第2の画像は風景に関連している、前記進めることと;複数の視差値に対して前記第1の画像の画素に関連する第1の総コストボリュームを決定し、前記複数の視差値に対して前記第2の画像の画素に関連する第2の総コストボリュームを決定することと;前記第1の総コストボリュームに基づいて、前記第1の画像の第1の視差マップを作成し、前記第2の総コストボリュームに基づいて、前記第2の画像の第2の視差マップを作成することと;前記第1の総コストボリュームに基づいて、前記第1の視差マップにおける前記第1の画像の画素の視差値に対する信頼マップを作成することであって、前記信頼マップは、前記第1の画像の画素から信頼画素群を表わす、前記作成することと;前記第1の画像の複数の色セグメント及び前記複数の色セグメントにおける信頼画素数に少なくとも基づいて、前記第1の画像の1つ又は複数の無限遠領域を決定することと;前記第1の画像の画素に対するフィルタ視差値を決定することで、前記第1の視差マップに基づいて第3の視差マップを作成することであって、前記第1の画像の1つ又は複数の無限遠領域の画素に対するフィルタ視差値は、所定の視差値として決定される、前記作成すること
を実行させる、コンピュータプログラム製品。
第4の態様では、次の装置が提供される:第1の画像及び第2の画像の受取りを進める手段であって、前記第1の画像及び第2の画像は風景に関連している、前記進める手段と;第1の画像及び第2の画像の受取りを進める手段であって、前記第1の画像及び第2の画像は風景に関連している、前記進める手段と;複数の視差値に対して前記第1の画像の画素に関連する第1の総コストボリュームを決定し、前記複数の視差値に対して前記第2の画像の画素に関連する第2の総コストボリュームを決定する手段と;前記第1の総コストボリュームに基づいて、前記第1の画像の第1の視差マップを作成し、前記第2の総コストボリュームに基づいて、前記第2の画像の第2の視差マップを作成する手段と;前記第1の総コストボリュームに基づいて、前記第1の視差マップにおける前記第1の画像の画素の視差値に対する信頼マップを作成する手段であって、前記信頼マップは、前記第1の画像の画素から信頼画素群を表わす、前記作成する手段と;前記第1の画像の複数の色セグメント及び前記複数の色セグメントにおける信頼画素数に少なくとも基づいて、前記第1の画像の1つ又は複数の無限遠領域を決定する手段と;前記第1の画像の画素に対するフィルタ視差値を決定することで、前記第1の視差マップに基づいて第3の視差マップを作成する手段であって、前記第1の画像の1つ又は複数の無限遠領域の画素に対するフィルタ視差値は、所定の視差値として決定される、前記作成する手段
を備える、装置。
第5の態様では、次のコンピュータプログラムが提供される:コンピュータ命令を含むコンピュータプログラムであって、前記コンピュータ命令は、装置により実行されると該装置に:第1の画像及び第2の画像の受取りを進めることであって、前記第1の画像及び第2の画像は風景に関連している、前記進めることと;複数の視差値に対して前記第1の画像の画素に関連する第1の総コストボリュームを決定し、前記複数の視差値に対して前記第2の画像の画素に関連する第2の総コストボリュームを決定することと;前記第1の総コストボリュームに基づいて、前記第1の画像の第1の視差マップを作成し、前記第2の総コストボリュームに基づいて、前記第2の画像の第2の視差マップを作成することと;前記第1の総コストボリュームに基づいて、前記第1の視差マップにおける前記第1の画像の画素の視差値に対する信頼マップを作成することであって、前記信頼マップは、前記第1の画像の画素から信頼画素群を表わす、前記作成することと;前記第1の画像の複数の色セグメント及び前記複数の色セグメントにおける信頼画素数に少なくとも基づいて、前記第1の画像の1つ又は複数の無限遠領域を決定することと;前記第1の画像の画素に対するフィルタ視差値を決定することで、前記第1の視差マップに基づいて第3の視差マップを作成することであって、前記第1の画像の1つ又は複数の無限遠領域の画素に対するフィルタ視差値は、所定の視差値として決定される、前記作成すること
を実行させる、コンピュータプログラム製品。
添付の図面には様々な実施形態が例示されている。これらは例示目的であって、限定目的のものではない。
ある例示的実施形態に従うデバイスを示す。
ある例示的実施形態に従う、立体画像の視差マップ推定のための装置を示す。
ある例示的実施形態に従う、立体画像の第1の画像の例示的表現を示す。
ある例示的実施形態に従う、第1の画像の例示的視差マップを示す。
ある例示的実施形態に従う、第1の画像の複数の色セグメントの例示的表現を示す。
ある例示的実施形態に従う、1つ又は複数の無限遠領域に関連するバイナリマスクの例示的表現を示す。
ある例示的実施形態に従う、閉塞穴領域に関連するバイナリマスクの例示的表現を示す。
ある例示的実施形態に従う、第1の視差マップに基づいて生成されたリファイン視差マップを示す。
ある例示的実施形態に従う、視差マップ推定のための例示的方法を説明するフローチャートである。
ある例示的実施形態に従う、視差マップ推定のための例示的方法を説明するフローチャートである。
ある例示的実施形態に従う、視差マップ推定のための例示的方法を説明するフローチャートである。
詳細説明
例示的実施形態とそれらが潜在的に持つ効果は、図1から8A・8Bを参照することで理解される。
図1は、ある例示的実施形態に従うデバイス100を示す。ただし、当然のことながら、この図に描かれ以下で説明されるデバイス100は、様々な実施形態から利益を受けられるデバイスのタイプの一例を単に示しているに過ぎない。したがって、こうした開示が実施形態の範囲を限定するものと捉えてはならない。またそうした理由から、当然のことながら、デバイス100に関連して以下で説明される要素のうち少なくとも何れかは任意選択可能な要素である。したがって、例示的実施形態によっては、図1の例示的実施形態に関連して説明されている要素よりも多くの要素を有する場合や少ない要素しか有さない場合、又は異なる要素を有する場合がある。デバイス100は多くのタイプの携帯電子機器であることができる。例えばPDAやポケットベル、携帯テレビ、ゲーム機器、携帯電話、例えばラップトップコンピュータや携帯型コンピュータ、デスクトップコンピュータなど全てのタイプのコンピュータ、カメラ、音楽/ビデオプレーヤー、ラジオ、GPSデバイス、メディアプレーヤー、携帯型デジタル支援装置、又はそれらの組合せ、その他のタイプの通信機器であることができる。
デバイス100は、送信機104及び受信機106と協働するアンテナ(または複数のアンテナ)102を備えてもよい。デバイス100はさらに、送信機104及び受信機106との間で信号を提供したり信号を受信したりするような、コントローラ108のような装置を備えてもよい。この信号は、利用可能なセルラシステムの無線インタフェース規格に従うシグナリング情報を含んでいてもよく、及び/又はユーザの音声や受信したデータ、ユーザが生成したデータなどを含んでいてもよい。これに関してデバイス100は、1つ又は複数の無線インタフェース規格や通信プロトコル、変調タイプ、アクセスタイプによって動作する能力を有していてもよい。例ではあるが、デバイス100は、第1世代、第2世代、第3世代、第4世代、及び同様の通信プロトコルのうちいずれか1つ以上で動作することが可能であってもよい。例えばデバイス100は、第2世代(2G)の無線通信プロトコルであるIS-136(時分割多重アクセス(TDMA)やGSM(登録商標)、IS-95(符号分割多重アクセス(CDMA)に従って動作する能力を有していてもよく、第3世代(3G)の通信プロトコルであるE-UTRAN()やCDMA2000、WCDMA(登録商標)、TD-SCDMAに従って動作する能力を有していてもよく、3.9Gの無線通信プロトコルであるE-UTRAN(evolved- universal terrestrial radio access network)や第4世代(4G)の無線通信プロトコルなどのような規格に従って動作する能力を有していてもよい。代替的に又は追加的に、デバイス100はセルラ方式ではない通信メカニズムに従って動作する能力を有していてもよい。例えば、インターネットやローカルエリアネットワーク、ワイドエリアネットワークのようなコンピュータネットワークや、Bluetooth(登録商標)ネットワークやZigBee(登録商標)ネットワーク、IEEE(Institute of Electric and Electronic Engineers)802.11xネットワークのような近距離無線通信ネットワーク、公衆交換電話網(PSTN)のような有線電話ネットワークのような通信メカニズムに従って動作する能力を有していてもよい。
コントローラ108は、とりわけ、デバイス100の音声や論理機能を実装する回路を有していてもよいことは理解されたい。例えばコントローラ108は、1つ又は複数のデジタルシグナルプロセッサ装置、1つ又は複数のマイクロプロセッサ装置、1つ又は複数のデジタルシグナルプロセッサを有する1つ又は複数のプロセッサ、デジタルシグナルプロセッサを有さない1つ又は複数のプロセッサ、1つ又は複数の特定目的コンピュータチップ、1つ又は複数のFPGA(field-programmable gate array)、1つ又は複数のASIC(application-specific integrated circuit)、1つ又は複数のコンピュータ、様々なA/DコンバータやD/Aコンバータ、及び/又はその他のサポート回路を備えていてもよい。デバイス100の信号及び情報処理機能は、それぞれの能力に従って、これらのデバイスの中に割り当てられている。コントローラ108は、変調及び送信を行う前に、畳み込み的な符号化や、メッセージおよびデータのインタリーブを行う機能を有していてもよい。コントローラ108は、さらに音声符号器やデータモデムを内蔵していてもよい。さらに、コントローラ108は、メモリに記録されていてもよい1つ又は複数のソフトウェアプログラムを実行する能力を含んでいてもよい。例えばコントローラ108は、標準的に用いられているWebブラウザのような通信プログラムを実行する能力を有していてもよい。そのような通信プログラムは、デバイス100がWebコンテンツを送受信することを可能とする。そのようなWebコンテンツには、WAP(Wireless Application Protocol)やHTTP(Hypertext Transfer Protocol )位置ベースのコンテンツなどに従う位置ベースのコンテンツやその他のWebページコンテンツなどがある。ある例示的実施形態において、コントローラ108は、デュアルコアプロセッサのようなマルチコアプロセッサとして具現化されてもよい。コントローラ108にはいくつのプロセッサが含まれていてもよい。
デバイス100はまた、出力デバイスであるリンガ110や、イヤホン又はスピーカー112や、マイクロホン114、ディスプレイ116、および、ユーザ入力インタフェースを備えていてもよく、これら全てはコントローラ108に接続されていてもよい。ユーザ入力インタフェースはデバイス100がデータを受信することを可能にし、またデバイス100がデータを受信することを可能にするデバイスをいくつ備えていてもよい。そのようなデバイスには、例えばキーパッド118やタッチディスプレイ、マイクロホン、またその他の入力デバイスが存在する。キーパッド118を含む実施形態において、キーパッド118は、0-9の数字キーや関連するキー(#,*)、その他デバイス100を操作するためのハードキーやソフトキーを有していてもよい。代替的又は追加的に、キーパッド118は、一般的なQWERTY配列のキーパッドを備えていてもよい。キーパッド118はまた、それぞれ機能に関連付けられた多くのソフトキーを備えていてもよい。それに加えて、又は代替的に、デバイス100は、ジョイスティックまたはユーザ入力インタフェースのようなインタフェースデバイスを備えてもよい。さらにデバイス100は、デバイス100を動作させるために使用される様々な回路に電源を供給し、また検知可能な出力としての機械的な振動を提供する、振動バッテリパックのようなバッテリ120を備えてもよい。
ある例示的実施形態において、デバイス100は、カメラモジュールやビデオモジュール、及び/又はオーディオモジュールのようなメディアキャプチャ要素を備えてもよい。メディアキャプチャ要素はコントローラ108と通信する。メディアキャプチャ要素は、画像や動画及び/又は音声をキャプチャして格納したり表示したり送信したりする如何なる手段であってもよい。メディアキャプチャ要素がカメラモジュール122である例示的実施形態では、カメラモジュール122がキャプチャしたイメージからデジタル画像ファイルを形成しうるデジタルカメラを備えてもよい。カメラモジュール122は、レンズその他の光学部品のような全てのハードウェアや、キャプチャしたイメージからデジタル画像ファイルを作成するソフトウェアを含む。あるいは、カメラモジュール122は画像を見るのに必要なハードウェアを備えてもよい。ここでデバイス100の記憶装置は、コントローラ108が実行でき、キャプチャしたイメージからデジタル画像ファイルを作成するための命令をソフトウェアの形態として格納する。ある例示的実施形態では、カメラモジュール122はさらに、コントローラ108が画像データを処理することを支援するコプロセッサのような処理要素や、画像データを圧縮したり伸張したりするエンコーダーやデコーダーを備えていてもよい。エンコーダーやデコーダーは、JPEG標準やその他のフォーマットに従ってエンコードやデコードを行ってもよい。動画に関しては、エンコーダーやデコーダーは、例えばH.261, H.262/ MPEG-2, H.263, H.264, H.264/MPEG-4, MPEG-4のような標準規格をいくつ利用することができてもよい。場合によっては、カメラモジュール122はライブイメージをディスプレイ116に供給することができてもよい。さらに、実施形態によっては、ディスプレイ116はデバイス100の一方の側面に搭載され、カメラモジュール122はそれとは反対側に設けられるレンズを備えていてもよい。それによって、カメラモジュール122がデバイス100の一方の側で画像を撮影し、そのイメージを、デバイス100の別の側に位置しているユーザに表示することができてもよい。
デバイス100はユーザ識別モジュール(UIM)124を備えていてもよい。UIM124は、プロセッサを内蔵するメモリデバイスである。UIM124には、例えば、加入者識別モジュール(SIM)や、UICCカード、USIM、R-UIM、及びその他のタイプのスマートカードが含まれる。UIM124は通常、加入者に関する情報要素を格納する。UIM124に加えてデバイス100はメモリを備えていてもよい。例えばデバイス100は、データの一時的な保管のためのキャッシュ領域を備えるランダムアクセスメモリ(RAM)のような揮発性メモリ126を備えてもよい。デバイス100は、内蔵の及び/又は着脱可能な不揮発性メモリ128を備えていてもよい。不揮発性メモリ128には、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリ、ハードディスクドライブのようなものも含まれる。これらのメモリは、デバイス100の機能を実装するためにデバイス100に使用されるいかなる数の情報片やプログラム、データを格納してもよい。
図2は、ある例示的実施形態に従う、立体画像の視差マップ推定のための装置200を示す。装置200は、例えば、図1のデバイス100によって採用されることができる。しかし、装置200は、携帯式又は固定式に関わらず、その他の様々なデバイスによって採用されることができてもよいことは留意されたい。したがって、実施形態は、図1のデバイス100のようなデバイスへの応用に限定するものではない。場合によっては、実施形態は、複数のデバイスの組み合わせによって利用されうる。そのような複数のデバイスには、例えば上にリストされたものが含まれる。多くの実施形態が、(例えばデバイス100やデバイスの組み合わせのような)単一のデバイスとして具現化される。さらに、以下に記述されるデバイスや要素は必ず必要であるというものではなくともよく、実施形態によっては、これらのうちいくつかが省略されてもよいことに留意されたい。
装置200は少なくとも1つのプロセッサ202及び少なくとも1つのメモリ204を備える。又はこれらと通信できるようにされている。少なくとも1つのメモリ204の例は、これらに限定されないが、揮発性メモリ及び/又は不揮発性メモリを含む。揮発性メモリの例には、これらに限定されないが、ランダムアクセスメモリやダイナミック・ランダムアクセスメモリ、スタティック・ランダムアクセスメモリ等が含まれる。不揮発性メモリの例には、ハードディスクや磁気テープ、光ディスク、プログラム可能なリードオンリーメモリ、プログラムを消去可能なリードオンリーメモリ、電気的に消去可能なプログラム可能リードオンリーメモリ、フラッシュメモリ等がある。様々な例示的実施形態に従う多くの機能を装置200が実行することを可能にするべく、メモリ204は、情報やデータ、ファイル、アプリケーション、命令等を格納するように構成されてもよい。例えばメモリ204は、プロセッサ202によって処理するために、メディアコンテンツを含む入力データをバッファするように構成されてもよい。あるいは又は加えて、メモリ204は、プロセッサ202により実行される命令を格納するように構成されてもよい。
プロセッサ202の例には、コントローラ108が含まれてもよい。プロセッサ202は非常に多くの方法で実施されることができる。プロセッサ202は、マルチコアプロセッサやシングルコアプロセッサ、これらの組み合わせとして具現化されてもよい。例えばプロセッサ202は、1つ又は複数の様々な処理手段として具現化されてもよい。そのような処理手段には例えば、コプロセッサやマイクロプロセッサ、コントローラ、デジタルシグナルプロセッサ(DSP)、DSP搭載型又は非搭載型の処理回路、その他様々な処理デバイスが含まれる。また、そのような処理デバイスには、例えば、ASIC(application specific integrated circuit)やFPGA(field programmable gate array)、マイクロコントローラーユニット(MCU)、ハードウェアアクセラレータ、特定目的コンピュータチップなどが存在する。ある例示的実施形態では、マルチコアプロセッサは、メモリ204に格納された命令を実行するように構成されてもよい。またはプロセッサは、自身がアクセス可能な命令を実行するように構成されてもよい。あるいは又は加えて、プロセッサ202は、ハードコードされた機能を実行するように構成されていてもよい。このように、ハードウェアにより構成されるかソフトウェアによる手法により構成されるか、またはこれらの組み合わせにより構成されるかに関わらず、プロセッサ202は、様々な実施形態に従う処理を遂行する能力を有する要素を表す。たとえば、そのような処理を遂行する能力を有するように、回路中に物理的に具現化された要素を表す。例えば、プロセッサ202が2つまたはそれ以上のASICやFPGAのようなものにより具現化されるとき、プロセッサ202は、本明細書により説明される処理を遂行するために特別に構成されたハードウェアと考えられうる。または、別の実施形態では、プロセッサ202はソフトウェア命令を実行する実行機器として具現化される。そのような命令は、実行されることにより、プロセッサ202を、本明細書に記載されるアルゴリズム又は処理を遂行するように構成しうる。しかし場合によっては、プロセッサ202は、たとえば移動端末やネットワークデバイス等の特定の装置のプロセッサであってもよい。その場合、そのような装置は、本明細書に記載されるアルゴリズム又は処理を実行するための命令によりプロセッサ202を構成することにより、実施形態を取り入れるように構成される。プロセッサ202はとりわけ、その動作をサポートするクロックや算術演算ユニット(ALU)、ロジックゲートを備える。
ユーザインタフェース206は、プロセッサ202と通信する。ユーザインタフェース206は、これらに限定されないが、入力インタフェース及び/又は出力インタフェースを含む。入力インタフェースはユーザ入力を表す情報を受け取るように構成される。出力ユーザインタフェースは音声や視覚、メカニカル、その他の出力及び/又はフィードバックをユーザに提供する。入力インタフェースの例は、これらに限定されないが、例えばキーボードやマウス、ジョイスティック、キーパッド、タッチスクリーン、ソフトキー等を含んでもよい。出力インタフェースの例は、これらに限定されないが、例えばLEDディスプレイやTFTディスプレイのような表示装置、液晶ディスプレイ、AMOLEDディスプレイ、マイクロホン、スピーカー、リンガ、バイブレータを含んでもよい。ある例示的実施形態において、ユーザインタフェース206は、他のデバイスや要素もさることながら、特に、スピーカー、マイクロホン、ディスプレイ、キーボード、タッチスクリーンのようなもののいずれか又は全てを含んでもよい。これに関してプロセッサ202は、例えば、スピーカーやリンガ、ディスプレイ等の1つ又は複数のユーザインタフェース206の要素の少なくともいずれかを制御するように構成されるユーザインタフェース回路を備えていてもよい。プロセッサ202及び/又はプロセッサ202を含むユーザインタフェース回路は、コンピュータプログラム命令を通じて、ユーザインタフェース206の1つ又は複数の要素の1つ又は複数の機能を制御するように構成されてもよい。そのようなコンピュータプログラム命令は、例えば、例えば少なくとも1つのメモリ204など、プロセッサ202がアクセス可能なメモリに格納される、ソフトウェアやファームウェアであることができる。
ある例示的実施形態では、装置200は電子機器を含んでもよい。電子機器の例には、通信機器や、通信機能の有無を問わないメディアキャプチャデバイス、コンピュータデバイス等がある。電子機器の例には、携帯電話やPDA等も含まれる。コンピュータデバイスの例には、ラップトップコンピュータやパーソナルコンピュータ等も含まれる。ある例示的実施形態において、電子機器はユーザインタフェースを備えてもよい。こうしたユーザインタフェースは例えば、電子機器の少なくとも1つの機能を、ディスプレイを通じてユーザが制御することを容易にするように、かつユーザ入力に応答するように構成される、ユーザインタフェース回路とユーザインターフェース・ソフトウェアを備えるユーザインタフェース206がある。ある例示的実施形態において、電子機器は、電子機器のユーザインタフェース206の少なくとも一部分を表示するように構成される表示回路を備えていてもよい。ディスプレイ及び表示回路は、電子機器の少なくとも1つの機能のユーザ制御を容易にするように構成されてもよい。
ある例示的実施形態において、電子機器は送受信機を備えるように具現化されてもよい。この送受信機はソフトウェアに従って動作する如何なるデバイスや回路であってもよく、ハードウェアとして実装されてもよく、又はハードウェア及びソフトウェアの組み合わせとして実装されてもよい。例えば、ソフトウェアの制御の下で動作するプロセッサ202や、本明細書で説明される処理を実行するように特に構成されたASICやFPGAとして具現化されるプロセッサ202、またはこれらの組み合わせなど、装置又は回路に送受信機の機能を実行させるように作られる如何なる構成でもよい。送受信機はメディアコンテンツを受信するように構成されてもよい。メディアコンテンツの例は、オーディオコンテンツやビデオコンテンツ、及びそれらの組合せを含んでもよい。
ある例示的実施形態において、電子機器は、イメージセンサ208及びイメージセンサ210のような複数のイメージセンサを備えるように具現化されてもよい。図2の例示的表現では2つのイメージセンサ208・210しか示されていないが、電子機器はそれより多いイメージセンサを備えることもできる。イメージセンサ208・210は、プロセッサ202及び/又は装置200の他の要素と通信してもよい。イメージセンサ208・210は、画像処理回路及び/又は画像処理ソフトウェアと通信してもよく、デジタル画像やビデオ、グラフィックメディアをキャプチャするように構成される。イメージセンサ208・210及び他の回路は、組合せで、機器200のカメラモジュール122のような少なくとも1つのカメラモジュールの例であってもよい。ある例示的実施形態において、イメージセンサ208・210は、立体視のような風景に対する2つのビューをキャプチャするために対応するレンズを伴っていてもよい。別の例示的実施形態では、1つのイメージセンサ208又は210のみで具現化される、又は機器200にアクセス可能であって、この1つのイメージセンサが風景に対して別々の位置(又は別々の角度)から2つの画像をキャプチャすることで、その風景に関する立体画像対をキャプチャできてもよい。
これらの要素(202-210)は、立体画像の視差マップ推定を容易にするために、集中型回路システム(centralized circuit system)212を介して互いに通信してもよい。集中型回路システム212は、とりわけ、装置200の要素202-210が互いに通信できるように構成される様々なデバイスであってもよい。ある実施形態では、上記集中型回路システム212は、マザーボードやメインボード、システムボード、ロジックボードのような、集中型のプリント基板(PCB)であってもよい。集中型回路システム212はまた、その他のプリント基板アセンブリ(PCA)や通信チャンネルメディアを含んでいてもよい。
ある例示的実施形態において、装置200は、立体画像の視差マップ推定を実行させられる。この例示的実施形態では、プロセッサ202は、メモリ204のコンテンツと共に、あるいは本明細書で説明される他の要素も伴って、装置200に、第1及び第2の画像の受信を容易にさせるように構成される。この例示的実施形態では、第1の画像(「画像l1」とも言い換えられる)及び第2の画像(「画像l2」とも言い換えられる)は、ある風景に関連している。本明細書において、「風景(scene)」とは、画像またはビデオがキャプチャできる1つ又は複数の被写体の(自然物や人工物の、また整然/雑然とした)配置を意味する。この例示的実施形態では、第1の画像及び第2の画像は、デバイス(例えば、イメージセンサ208・210を備えるカメラモジュール)によってキャプチャされた風景の立体画像対である。この例示的実施形態では、第1の画像及び第2の画像は、現存するセンサ208・210でキャプチャされるか、あるいは装置200がアクセス可能なものである。本明細書において、「立体画像対(stereoscopic pair of images)」とは、水平方向に少し離れた点からキャプチャされた風景の2つの画像で、その風景の左眼画像と右眼画像を生成するものを意味する。例示的実施形態によっては、第1の画像及び第2の画像は、予め記録されて装置200に格納されていてもよく、又は、装置200が外部のソースから受信するものであってもよい。こうした例示的実施形態では、装置200は、DVDやコンパクトディスク(CD)、フラッシュドライブ、メモリーカードのような外部記憶媒体から第1の画像及び第2の画像を受取るようにされてもよく、あるいは、インターネットやBluetooth(登録商標)のような外部の記憶場所からそれを受け取るようにされてもよい。ある例示的実施形態においては、処理手段は、風景の第1の画像及び第2の画像のキャプチャを容易にするように構成されてもよい。処理手段の例は、プロセッサ202とイメージセンサ208・210を備えてもよい。プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態において、プロセッサ202は、メモリ204のコンテンツと共に、あるいは本明細書で説明される他の要素も伴って、装置200に、複数の視差値に対して第1の画像の画素に関連する第1の総コストボリューム(aggregated cost volume)を決定させるように構成される。装置200は更に、複数の視差値に対して第2の画像の画素に関連する第2の総コストボリュームを決定させられる。ある例示的実施形態において、第1の総コストボリュームは、複数の視差値に対して、第1の画像の画素と第2の画像の対応する画素との間のコストボリュームを計算して決定される。ある例示的使用例において、コストボリュームは画像l1の各画素と画像l2の対応する画素に対するマッチングコストの組であり、各マッチングコストは(上記複数の視差値からの)特定の視差値に対応する。ある例示的実施形態において、第2の総コストボリュームは、例えば画像l2など特定の画像に対するコストボリュームを計算して決定される。この例示的使用例では、コストボリュームは、n個の視差値に対して計算された、画像(l1及びl2)の対応する画素に対するマッチングコストの数nを含む。ある実施例において、マッチングコストは、画像l1及びl2における2つの対応画素間の類似度(又は距離)を意味してもよい。類似度(又は距離)は、輝度/明度(intensity)や色相、又は他の画像特徴に関して測定される。ある実施例において、コストボリュームは、画像l1の画素と画像l1の画素との間での色差法を用いて計算される。
ある例示的実施形態において、プロセッサ202は、メモリ204のコンテンツと共に、あるいは本明細書で説明される他の要素も伴って、装置200に、ツリーベース集計法(例えば、セグメントツリー法(segment tree method)や最小全域ツリー法)又は非ツリーベース集計法(例えば、水平垂直ガイド付き画像ベース集計法(horizontal and vertical guided image based aggregation)等)に基づいて、第1の総コストボリュームと第2の総コストボリュームを決定させるように構成される。ある例示的実施形態において、装置200は、第1の総コストボリュームを決定するために、第1のセグメントツリーに基づいてコストボリュームを集計させられる。装置200は更に、第2の総コストボリュームを決定するために、第2のセグメントツリーに基づいてコストボリュームを集計させられる。ある例示的実施形態において、特定の画像、例えば画像l1に対して、総コストは、第1の総コストボリュームを生成するために、複数の視差値(d1, d2, …, dn)の各々について、画像l1の(第1のセグメントツリーのノードで表現される)各画素に対して実行される。同様に、ある例示的実施形態において、画像l2に対して、総コストは、第2の総コストボリュームを生成するために、複数の視差値(d1, d2, …, dn)の各々について、画像l2の(第2のセグメントツリーのノードで表現される)各画素に対して実行される。ある実施例において、セグメントツリー(第1のセグメントツリー及び第2のセグメントツリー)並びに第1の総コストボリューム及び第2の総コストボリュームは、次の文献に記載されるようなコスト集計法を用いて決定される:Qingxiong Yang,「立体マッチングのための非ローカルコスト集計法」("A Non-Local Cost Aggregation Method for Stereo Matching"),CVPR2012, 1402-1409頁;Mei, Xing他,「立体マッチングのためのセグメントツリーベースコスト集計」("Segment-Tree based Cost Aggregation for Stereo Matching"),Computer Vision and Pattern Recognition (CVPR), 2013 IEEE Conference on IEEE,2013年。ある例示的実施形態において、処理手段は、画像l1の画素に関連する第1の総コストボリュームと、画像l2の画素に関連する第2の総コストボリュームを決定するように構成されてもよい。処理手段の例はプロセッサ202を備え、プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態において、装置200は、第1の総コストボリュームに基づいて、第1の画像の第1の視差マップを作成させられる。装置200は更に、第2の総コストボリュームに基づいて、第2の画像の第2の視差マップを作成させられる。「視差(disparity)」という用語は、立体画像(例えば、第1の画像及び第2の画像)の対応する画素間の視差値の差を意味する。ある例示的実施形態において、コスト集計法は、第1の視差マップを出力する第1の総コストボリュームを決定するために、第1の画像に関して実行される。同様に、ある例示的実施形態において、コスト集計法は、第2の視差マップを出力する第2の総コストボリュームを決定するために、第2の画像に関して実行される。第1の視差マップ及び第2の視差マップは、次の文献に記載されるようなコスト集計法を用いて作成される:Qingxiong Yang,「立体マッチングのための非ローカルコスト集計法」("A Non-Local Cost Aggregation Method for Stereo Matching"),CVPR2012, 1402-1409頁。ある例示的実施形態において、処理手段は、画像l1の第1の視差マップ及び画像l2の第2の視差マップを作成するように構成されてもよい。処理手段の例はプロセッサ202を備え、プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態において、装置200は、第1の総コストボリュームに基づいて、第1の視差マップにおける第1の画像の画素の視差値に対する信頼マップ(confidence map)を作成させられる。ある例示的実施形態において、信頼マップは、第1の画像の信頼画素(confident pixel)群及び非信頼画素(non-confident pixel)群を表わす。ある例示的実施形態において、信頼マップを作成するために、装置200は、第1の総コストボリュームに基づいて、第1の視差マップに第1の画像の画素に対する視差値に対応する信頼値を決定させられる。ある実施例において、信頼マップは、画像l1の信頼画素群及び非信頼画素群を区別する信頼値を示す。ある実施例において、装置200は、第1の総コストボリュームに基づいて、第1の視差マップに各画素に対する信頼値を計算させられる。ある例示的実施形態において、画像l1の画素(p)に対する信頼値は、次の式(1)に基づいて計算される:
ここで、C(p) は画素pに対する信頼値、dp は画素pに対する視差値、A(p,d) は視差d(dはdp は除く複数の視差値d1, d2, …, dnで変わる)と画素pに対する第1の総コストボリューム、σ は特定の定数である。
ある例示的実施形態において、信頼マップを作成するために、装置200は更に、第1の画像の画素に対する視差値に対応する信頼値を正規化させられる。こうして、(第1の画像内の)テクスチャ欠損領域に対して平らなコスト曲線を持つように正規化信頼値が計算され、そこでの正規化信頼値は0である。例示的実施形態において、第1の視差マップの画素の信頼値は、一定のコスト曲線の値で計算された信頼値として決定されるオフセットコストを差し引いて正規化されてもよい。第1の画像に関連する画素(p)に対する正規化信頼値は、次の式(2)で与えられる:
ここで、C'(p) は画素pに対する正規化信頼値、C (p)は画素pに対する信頼値、L は第1の画像における視差の数である。
ある例示的実施形態において、信頼マップを作成するために、装置200は更に、第1の画像の画素に対して2進信頼値を割当てるために、正規化信頼値を特定の信頼閾値と比較させられる。ある例示的実施形態において、信頼閾値は、経験的に/実験的に(experimentally)計算され得る定数σ(シグマパラメータ)を調整して選択されてもよい。例えば、信頼閾値は、所定の信頼値範囲である0から1の間(例えば、0.75)で選択されてもよい。この実施例では、正規化信頼値は、第1の画像の各画素に対して信頼閾値(例えば、0.75)と比較される。信頼閾値(例えば、0.75)より低い画素に対する正規化信頼値には2進値'0'が割当てられ、信頼閾値(例えば、0.75)より高い画素に対する正規化信頼値には2進値'1'が割当てられる。ある例示的実施形態において、第1の画像の各画素は、信頼マップを実現するために、2進信頼値(2進値'0'又は'1')が割当てられる。本明細書では、信頼マップにおける画素に対する信頼値が2進値'0'及び'1'の形式で実現されるため、信頼マップが「バイナリ信頼マップ」と呼ばれることもある。この実施例では、信頼マップの値'0'は非信頼画素群を表わし、信頼マップの値'1'は信頼画素群を表わす。ある例示的実施形態において、処理手段は、第1の総コストボリュームに基づいて、第1の画像の画素に対する信頼マップを作成するように構成されてもよい。処理手段の例はプロセッサ202を備え、プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態において、装置200は、第1の画像の複数の色セグメントとその複数の色セグメント内の信頼画素数に基づいて、第1の画像の1つ又は複数の無限遠領域を決定させられる。例えば、複数の色セグメントの中のある色セグメントにおいて、信頼画素数がその色セグメントに存在する全画素に対する所定の閾値百分率を超える場合、その色セグメントは無限遠領域であると決定されてもよい。ある例示的実施形態において、画像の「無限遠領域」という用語は、当該画像の領域であって、関連する画素が視差値0を持つものと推測される領域を意味する。無限遠領域の例は、これらに限定されないが、例えば空や平坦な壁等、被写体に関連するテクスチャの低い領域やテクスチャ欠損領域を含んでもよい。ある例示的実施形態において、装置200は、様々な分割方法に基づいて、第1の画像に関連する複数の色セグメントを決定させられる。ある例示的実施形態において、画像の色分割は、各セグメントが特定の均等色を表わすようにセグメントを形成するために、同じ明度値を持つ画素が一緒にグループ化される処理を意味する。複数の色セグメントは種々の適切な方法で決定されてもよい。こうした方法は、平均シフトツリー(MST)ベース分割やセグメントツリーベース分割等でもよいが、これらに限定されない。
別の例示的実施形態では、第1の画像の1つ又は複数の無限遠領域を決定するために、装置200は、第1の視差マップの閉塞画素を決定させられる。ある実施例において、装置200は、第1の視差マップと第2の視差マップの比較に基づいて、画像l1の閉塞画素を決定させられる。この実施例では、第1の視差マップからの画素と第2の視差マップからの画素は、閉塞画素を決定するために、相互一貫性チェック(左右(LR)チェックとも呼ばれる)を受ける。ここで、信頼画素数は式(1)及び(2)によって決定された信頼マップから決定されてもよいことに留意すべきである。ある例示的実施形態において、処理手段は、第1の視差マップと第2の視差マップの比較に基づいて、閉塞画素数を決定させられてもよい。この例示的実施形態では、第1の画像の1つ又は複数の無限遠領域を決定するために、装置200は、第1の画像の複数の色セグメントの大きさと複数の色セグメントにおける信頼画素数、閉塞画素数に基づいて、1つ又は複数の無限遠領域を決定させられる。ある例示的実施形態において、処理手段は、第1の視差マップにおいて閉塞画素を決定し、第1の画像の複数の色セグメントの大きさと複数の色セグメントにおける信頼画素数、閉塞画素数に基づいて、1つ又は複数の無限遠領域を定義するように構成されてもよい。処理手段の例はプロセッサ202を備え、プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態では、1つ又は複数の無限遠領域を決定するために、装置200は、第1の画像の複数の色セグメントを所定の閾値サイズと比較することで、複数の色セグメントから特定の色セグメント群を決定させられる。例えば、閾値サイズは第1の画像のサイズの2%でもよい。閾値サイズ(2%)は単なる説明として言及されているのであって、閾値サイズ制限が任意の値でもよいと見做してはならない。ある例示的実施形態において、装置200は、複数の色セグメントのサイズが閾値サイズよりも大きいか否かを調べるために、複数の色セグメントの中の各色セグメントを閾値サイズと比較させられる。色セグメントのサイズが閾値サイズよりも大きい場合、装置200は、その色セグメントを色セグメント群の一部として選択させられる。
ある例示的実施形態では、1つ又は複数の無限遠領域を決定するために、装置200は、上記色セグメント群に対する第1の因子と第2の因子の比を計算させられる。ある例示的実施形態において、色セグメント群の中の個別色セグメントに対する第1の因子は、その個別色セグメントにおける閉塞画素でない信頼画素の数に基づいて計算される。個別色セグメントに対する第2の因子は、その個別色セグメントにおける閉塞画素でない全画素に基づいて計算される。装置200は、この比と所定の閾値比の比較に基づいて、色セグメント群を1つ又は複数の無限遠領域として分類させられる。ある例示的表現では、第1の因子は式 CN = C - OC に基づいて計算される。ここで、CN は第1の因子、Cは色セグメントSにおける信頼画素の数、Oは色セグメントSにおける閉塞画素の数、OC は式OC = O∩C(OとCの交叉)に基づいて計算される値であって、 色セグメントSの信頼画素のうち、閉塞画素の数である。ある例示的実施形態では、第1の因子(CN)は、色セグメントSにおける閉塞画素でない信頼画素の数を表わす。また、第2の因子(SN)は、式 SN = S - OC に基づいて計算される。ある例示的実施形態では、第2の因子SNは、色セグメントSにおける閉塞画素でない全画素の数を表わす。ある例示的実施形態において、1つ又は複数の無限遠領域を決定するために、装置200は、色セグメント群の各々に対する第1の因子と第2の因子の比を計算させられる。ある例示的表現では、色セグメント群の色セグメントSに対して、この比は式 Ts = |CN|/|SN| に基づいて計算される。ここで、Tsは、色セグメントSに対する第1の因子(CN)と第2の因子(SN)の比である。
ある例示的実施形態では、1つ又は複数の無限遠領域を決定するために、装置200は、色セグメント群に対して計算された(第1の因子と第2の因子の)比を所定の閾値比と比較することで、色セグメント群の1つ又は複数の色セグメントを1つ又は複数の無限遠領域として分類させられる。ある例示的実施形態において、色セグメントSは、比Tsが閾値比よりも小さいか又は大きいかを調べることに基づいて、無限遠領域として分類されてもよい。例えば、比Tsが閾値比よりも小さい場合、色セグメントSは無限遠領域として分類される。ある例示的実施形態において、装置200は、第1の画像の1つ又は複数の無限遠領域の画素に対する視差値を所定の視差値(例えば、0又は1)と等しくなるように設定させられる。例えば、ある例示的実施形態では、1つ又は複数の無限遠領域の画素に対する視差値は、ゼロ(0)に設定されてもよい。ある例示的実施形態において、比Tsが閾値比以上である場合、色セグメントSは、非信頼画素よりも信頼画素の数が多いと見做される。ある例示的実施形態において、比Tsが閾値比以上であるような場合、色セグメントSの非信頼画素は閉塞穴部として分類される。ある例示的実施形態においては、処理手段は1つ又は複数の無限遠領域を決定するように構成されてもよい。処理手段の例はプロセッサ202を備え、プロセッサ202はコントローラ108の例でもよい。
ある例示的実施形態において、装置200は、第1の画像の画素に対する視差値を決定することで、第1の視差マップに基づいて第3の視差マップを作成させられる。第1の画像の画素に対する視差値は、ツリーベース集計法に基づいて決定される。ある例示的実施形態では、第3の視差マップは、第1の視差マップから取得されるリファイン(フィルタ)視差マップである。ある例示的実施形態において、装置200は、第1の視差マップの欠損視差の穴埋めを伴う第1の視差マップのフィルタリングと、第1の画像における1つ又は複数の無限遠領域の解決を実行させられる。ある例示的表現では、第1の視差マップのフィルタリングは、第1の視差マップの画素に対して新しい視差値(「フィルタ視差値」とも呼ばれる)が決定されるように実行される。ある例示的実施形態では、画素(p)に対する視差値は、次の式(3)に基づいて計算される:
ここで、dp は画像l1(第1の画像)の画素pに対するフィルタ視差値、dq は画素qに対する視差値、D(p,q) は第1のセグメントツリーにおける画素pと画素qの間の距離、bq は信頼マップに関連する画素qの2進値、Npは画素pに対する正規化項、σは定数である。ある例示的実施形態では、正規化項(Np)は次の式(4)に基づいて決定される:
注目すべきことは、上記式(3)から、画素pに対するフィルタ視差値が、画像l1の他の画素qの視差値と第1のセグメントツリーに沿った画素p・画素q間距離に基づいて計算されることである。さらに、1つ又は複数の無限遠領域に属する画素の視差値が、フィルタリングの実行(例えば、式(3)の適用)前ではゼロ(0)に決め打ちされていることにも注目すべきである。例えば、dqは1つ又は複数の無限遠領域2属する全画素に対してゼロであり、それ故、1つ又は複数の無限遠領域に属する画素は、(dpの決定における)フィルタリング処理に何の影響も及ぼさない。画素qに対する2進値bq が、qが閉塞穴部であれば0に設定され、qが信頼画素に属する画素、又は1つ又は複数の無限遠領域に属する画素であれば1に設定されることにも注目すべきである。
式(3)において、項bq は、画素qの2進値を表わす。ただし、qは画像l1の全画素である。ある例示的表現では、bq (q∈I1) は、画像l1の画素に対してフィルタ視差値を計算するために、式(3)で適用されるバイナリマスクを表わす。注目すべきことは、画像l1の閉塞画素/穴部に対してbq が0であり、第1の画像における有効視差を持つ画素に対してbq が1であることである。ある例示的実施形態では、1つ又は複数の無限遠領域2属する全画素に対しても、bq は1である。さらに、ある例示的使用例では、1つ又は複数の視差レベルに属する画素に対するフィルタ視差値がゼロ(0)に決め打ちされ、無限遠領域に属するこうした画素に対して式(3)が使われないことにも注目すべきである。別の例示的実施形態では、1つ又は複数の無限遠領域に関連するバイナリマスクが第1の視差マップに適用されているため、フィルタリングは、第1の視差マップに属する、1つ又は複数の無限遠領域の画素以外の画素に関して実行される。1つ又は複数の無限遠領域の画素は、その1つ又は複数の無限遠領域の視差値がゼロであるため、フィルタリング処理に何の影響も及ぼさない。
種々の例示的実施形態において、第1の画像の(無限遠領域に属する画素以外の)画素に対する新しい視差値(フィルタ視差値)は、式(3)に基づいて決定される。無限遠領域に属する画素に対しては、新しい視差値は所定の一様な値、例えばゼロ(0)に設定される。さらに注目すべきことは、式(3)を用いて閉塞穴部又は閉塞画素に属する画素に対する視差値も決定されることである。例えば、閉塞画素に属する画素に対して、その視差値は、画像l1の他の有効画素(信頼画素)の視差値と第1のセグメントツリーにおける前記閉塞画素に属する画素から有効画素までの距離を用いて決定される。ある例示的実施形態において、式(3)の実行による単一のステップで、信頼画素数に対するフィルタ視差値も、閉塞画素や非信頼画素、閉塞穴部に属する画素に対する視差値と同様に決定される。その結果、第3の視差マップは、画像l1の画素に対するフィルタ視差値に基づいて作成され、第1の視差マップに基づいて取得されるリファイン視差マップである。
別の例示的実施形態では、装置200は、第1の画像の(無限遠領域の画素以外の)画素に対する視差値を決定することで、第1の視差マップに基づいて第3の視差マップを作成させられる。第1の画像の画素に対する視差値は、「全画像ガイド付きフィルタリング法(full image guided filtering method)」に基づいて決定される。ある例示的実施形態において、装置200は、第1の画像の画素に対する視差値のフィルタリングをガイドするために、第1の画像で水平垂直集計を用いて重みを計算することで、「全画像ガイド付きフィルタリング」を実行させられる。こうした「全画像ガイド付きフィルタリング法」の一例は、次の文献に記載されている:Qingxiong Yang,「高速立体マッチングのための全画像ガイド付きフィルタリング」("Full-Image Guided Filtering for Fast Stereo Matching"),IEEE signal processing letters, Vol. 20, No. 3,2013年3月。この例示的実施形態では、第1の画像の無限遠領域に属する画素以外の画素に対する視差値は、「全画像ガイド付きフィルタリング法」でフィルタされる。無限遠領域に属する画素に対する視差値は、第3の視差マップで所定の視差値(例えば、ゼロ視差)が割当てられる。
第3の視差マップの推定に関するいくつかの例示的表現を、図3A-3Bから図6で更に説明する。なお、これらの例示的表現は単なる例示目的であって、様々な例示的実施形態の範囲を限定するものと受けとってはならない。
図3Aは、ある例示的実施形態に従う、第1の画像300の例示的表現を示す。ある例示的実施形態において、第1の画像300は、立体画像対の左眼画像又は右眼画像の1つでもよい。図3Aに示すように、第1の画像300は、右眼画像と見做されてもよい。ある例示的実施形態において、立体画像対の第1の画像300と第2の画像(図示せず)をキャプチャするのに、立体カメラが利用されてもよい。ある例示的使用例では、第1の画像300は、デバイス100のカメラモジュール122(図1)のようなメディアキャプチャモジュールや、装置200の他の構成要素を伴うセンサ208・210(図2)のようなセンサでキャプチャされてもよい。他の実施例では、第1の画像300は、立体画像対をキャプチャできるマルチベースラインカメラやアレイカメラ、ライトフィールドカメラ、プレノプティックカメラ(plenoptic camera)でキャプチャされてもよい。
ある例示的実施形態において、第1の画像300は、第2の画像とは異なる視差を有する被写体を含む。例えば、図3Aに示すように、第1の画像300は、人物302や番号304及び306で示される山、芝生308、樹木310、建物312、水塊314、背景に空316のような被写体を含む。ここで、各被写体の画素領域は、第2の画像とは異なる視差を有してもよい。ある例示的実施形態では、第1の画像300の被写体の画素に対する視差値は、第1の画像300に関連する視差マップの形式で決定されてもよい。第1の画像300に関連する視差マップは図3Bに示される。
図3Bは、ある例示的実施形態に従う、第1の画像300の例示的視差マップ320を示す。例示的表現320は例示目的で示されているだけであって、図3Aで示すような画像300に関連する正確な視差マップを示すのではなく、いくつかの例示的実施形態の説明を容易にすることを目的としていることに留意されたい。ある例示的実施形態において、視差マップ320は(図2を参照して説明された)第1の視差マップのようなものであるが、第1の画像300の様々な被写体の画素に関連する視差値の情報を含む。例えば、第1の画像300の第1の視差マップ320は、別々の領域322,324,326,328を含むように示される。各領域は別々の視差を有する。領域322・324・326・328は、これらの領域に対して別々の視差を表わすために、領域322・324・326・328のシェーディングを変えて示される。例えば、領域322には視差値50を有する部分があってもよく、領域324には視差値20を有する部分があってもよい。同様に、第2の画像も視差マップ(図示せず)に関連付けられてもよい。これは、(図2を参照して説明された)第2の視差マップのようなものであり、第2の画像の様々な被写体に関連する視差情報を含む。
ある例示的実施形態において、視差マップ320のような第1の視差マップは、一部で無効視差領域(例えば、テクスチャの低い領域)と視差欠損領域(「閉塞穴部」とも呼ばれる)を含んでもよい。さらに、視差マップ320に示される被写体が一貫性のある輪郭を持たなくてもよい。説明のため、例えば視差マップ320の領域322・324が不正確な視差を有して描かれ、例えば、領域322が不正確な輪郭を有して描かれている。ある例示的表現では、領域326・328が閉塞穴部を有して描かれる。ある例示的実施形態において、リファイン視差マップ(例えば、図2を参照して説明された第3の視差マップ)を作成するために、装置200は、視差マップ320の不正確な視差値及び視差欠損に対して視差を決定させられる。図2を参照して説明された通り、第3の視差マップを決定するために、装置200は、画像300の複数の色セグメントに基づいて、画像300に存在する1つ又は複数の無限遠領域を決定させられる。画像300に対する複数の色セグメントの決定は、図4を参照して説明される。
図4は、ある例示的実施形態に従う、第1の画像300に関連する複数の色セグメントの例示的表現(400)を示す。例示的表現400は例示目的で示されているだけであって、図3Aで示すような画像300に関連する正確な色セグメントを示すのではなく、いくつかの例示的実施形態の説明を容易にすることを目的としていることに留意されたい。図2を参照して説明された通り、画像に対する「複数の色セグメント」とは、第1の画像300の画素間における色明度の差に基づいて分割された、重なり合わない均等色セグメントを意味する。例示的表現400は、色セグメント402・404・406・408のような、複数の色セグメントの中の一部の色セグメントを含むように描かれる。色セグメント402・404・406・408は、これら色セグメント402・404・406・408の画素明度/色パターンを区別するために、シェーディングを変えて描かれる。注目すべきことは、複数の色セグメントが種々の方法で決定されてもよく、こうした方法が限定されないが、平均シフトツリーベース分割とセグメントツリーベース分割等を含むことである。ある例示的実施形態において、複数の色セグメントは、均等色セグメント内には視差の大きな不連続部分が存在しないという仮定に基づいて決定されてもよい。ただし、こうした不連続部分は均等色セグメントの境界では生ずる可能性はある。
ある例示的実施形態において、第1の画像300において1つ又は複数の無限遠領域を決定するために、第1の画像300の複数の色セグメントが決定される。ある例示的実施形態では、第1の画像300に対する第1のセグメントツリーと第2の画像に対する第2のセグメントツリーが決定される。ある実施例では、画像300の画素を複数の色セグメントにグループ化し、画像300の複数の色セグメントの中の各色セグメントに対してサブツリーを作成し、画像300の複数の色セグメントの各々に対するサブツリーを繋げて第1のセグメントツリーを形成することで、第1のセグメントツリーが生成される。同様に、この実施例では、第2の画像(画像l2)の画素を画像l2の複数の色セグメントにグループ化し、画像l2の複数の色セグメントの中の各色セグメントに対してサブツリーを作成し、画像l2の複数の色セグメントの各々に対するサブツリーを繋げて第2のセグメントツリーを形成することで、第2のセグメントツリーが構成される。図2を参照して説明された通り、複数の色セグメントからの色セグメント群は、複数の色セグメントのサイズを閾値サイズと比較することで決定され、色セグメント群からの1つ又は複数の色セグメントは、1つ又は複数の無限遠領域として分類される。ある例示的実施形態では、装置200は、視差マップ320、視差マップ320の1つ又は複数の無限遠領域の情報、視差マップ320の閉塞画素、及び第1の画像300に対して作成された信頼マップに基づいて、第3の視差マップを作成させられる。第3の視差マップの作成処理は、図5A、5B及び6を参照して説明される。
図5Aは、ある例示的実施形態に従う、1つ又は複数の無限遠領域に関連するバイナリマスク500の例示的表現を示す。バイナリマスク500は例示目的で示されているだけであって、図3Aで示すような画像300に関連する正確なバイナリマスクを示すのではなく、いくつかの例示的実施形態の説明を容易にすることを目的としていることに留意されたい。バイナリマスク500は、第1の視差マップの1つ又は複数の無限遠領域を表わし、例えば、無限遠領域502と信頼領域504・506を含むように描かれている。注目すべきことは、バイナリマスク500内の画素に対する視差値が第3の視差マップではゼロに設定されることである。バイナリマスク500は、1つ又は複数の無限遠領域を例えば無限遠領域502のように表わし、バイナリマスク500内の画素の視差値はゼロに設定される。したがって、無限遠領域502の画素は、領域504・506の画素のフィルタ視差値を決定する際に影響を及ぼさない。図2を参照して説明された通り、例えば領域504・506に属する画素といった別の画素に対するフィルタ視差値は、図2を参照して説明したような式(3)に基づくフィルタリングを実行することで決定される。無限遠領域502の画素は、領域502の視差値がゼロに設定されるため、領域504・506の画素に対するフィルタリング処理に何の影響も及ぼさない。
図5Bは、ある例示的実施形態に従う、低信頼領域と同様の閉塞穴領域に関連するバイナリマスク520の例示的表現を示す。バイナリマスク520は例示目的で示されているだけであって、図3Aで示すような画像300に関連する正確なバイナリマスクを示すのではなく、いくつかの例示的実施形態の説明を容易にすることを目的としていることに留意されたい。バイナリマスク500は、有効視差画素を有する領域522と、穴部526及び低信頼穴部524のような一連の閉塞穴部を含むように描かれている。ある例示的実施形態において、穴部の画素及び低信頼穴部/画素に対する視差値は、式(3)に基づいて、又は全画像ガイド付きフィルタリング法により決定される。第1の画像300の画素に対する視差値を決定し、閉塞穴部/画素を穴埋めし、無限遠領域に属する画素に対して所定の視差値を設定した後、(図2で説明した)第3の視差マップのようなリファイン視差マップが作成される。リファイン視差マップは図6に示される。
図6は、ある例示的実施形態に従う、第1の視差マップのリファイン視差マップ600を示す。例示的表現600は例示目的で示されているだけであって、第1の視差マップ320から得られた正確なリファイン視差マップを示すのではなく、いくつかの例示的実施形態の説明を容易にすることを目的としていることに留意されたい。視差マップ600は、領域602・604・606・608のような複数の領域を含むように描かれている。領域602・604・606・608は正確な視差を持つように描かれている。領域602の場合、図3Bに描かれた視差マップ320の領域322・324・326・328と比べてより一貫性のある輪郭を持つように描かれる。視差マップ600は、領域602のような無限遠領域と、領域604・606・608のような信頼視差画素を持つ領域を含む。領域602のような無限遠領域及び領域604・606・608のような信頼視差領域は、例示する目的で別々のシェーディングで表わされる。視差マップ600の例示的表現は、図2を参照して説明されたフィルタリングと穴埋め処理を実行した後に作成されてもよい。
図7は、ある例示的実施形態に従う、視差マップ推定のための例示的方法を説明するフローチャートを示す。ある例示的実施形態において、方法700は、ある風景に対する2つの画像の視差推定を含む。方法700を説明するために、例として図2を参照する。フローチャートに描かれる方法700は、例えば、図2の装置200によって実行されてもよい。
705において、方法700は第1の画像及び第2の画像の受取りを進めることを含む。ある例示的実施形態では、第1の画像及び第2の画像は、ある風景に関連していて、その風景の立体画像対である。第1の画像及び第2の画像は、例えばイメージセンサ208・210等のイメージセンサでキャプチャされる。
710において、方法700は、複数の視差値に対して第1の画像の画素に関連する第1の総コストボリュームを決定し、複数の視差値に対して第2の画像の画素に関連する第2の総コストボリュームを決定することを含む。ある例示的実施形態において、第1の総コストボリュームは、複数の視差値に対して、第1の画像の画素と第2の画像の対応する画素との間のコストボリュームを計算して決定される。ある例示的使用例において、コストボリュームは画像l1の各画素と画像l2の対応する画素に対するマッチングコストの組であり、各マッチングコストは(上記複数の視差値からの)特定の視差値に対応する。ある例示的使用例において、コストボリュームは画像l2の各画素に対するマッチングコストの組であり、各マッチングコストは(上記複数の視差値からの)特定の視差値に対応する。この例示的使用例では、コストボリュームは、n個の視差値に対して計算された、画像(l1及び/又はl2)の対応する画素に対するマッチングコストの数nを含む。ある実施例において、マッチングコストは、画像l1及びl2における2つの対応画素間の類似度(又は距離)を意味してもよい。類似度(又は距離)は、輝度/明度(intensity)や色相、又は他の画像特徴に関して測定される。ある実施例において、コストボリュームは、第1の画像の画素と第2の画像の画素との間での色差法を用いて計算される。ある例示的実施形態において、第1の画像に対する第1の総コストボリュームを決定するために、第1のセグメントツリーに基づいてコストボリュームを集計され、第2の画像に対する第2の総コストボリュームを決定するために、第2のセグメントツリーに基づいてコストボリュームが集計される。
715において、方法700は、第1の総コストボリュームに基づいて、第1の画像の第1の視差マップを作成し、第2の総コストボリュームに基づいて、第2の画像の第2の視差マップを作成することを含む。ある例示的実施形態において、ツリーベースのコスト集計法は、第1の視差マップを出力する第1の総コストボリュームを決定するために、第1の画像に関して実行される。ある例示的実施形態において、ツリーベースのコスト集計法は、第2の視差マップを出力する第2の総コストボリュームを決定するために、第2の画像に関して実行される。
720において、方法700は、第1の総コストボリュームに基づいて、第1の視差マップにおける第1の画像の画素の視差値に対する信頼マップを作成することを含む。ある例示的実施形態において、信頼マップは、第1の画像の画素から信頼画素群を表わす。ある例示的実施形態において、信頼マップを作成するために、第1の視差マップの画素に対する視差値に対応する信頼値が、第1の総コストボリュームに基づいて決定される。ある例示的実施形態において、信頼マップは、画像l1の信頼画素群及び非信頼画素群を区別する信頼値を示す。例えば、信頼マップの信頼値は0と1の2進値でもよい。ある例示的実施形態では、信頼画素には2進値'1'を割当て、非信頼画素には2進値'0'を割当ててもよい。
725において、方法700は、第1の画像の複数の色セグメントとその複数の色セグメント内の信頼画素数に基づいて、第1の画像の1つ又は複数の無限遠領域を決定することを含む。1つ又は複数の無限遠領域の例は、これらに限定されないが、例えば空や平坦な壁等、風景に関連するテクスチャの低い領域やテクスチャ欠損領域を含んでもよい。ある例示的実施形態において、「無限遠領域」という用語は、画像の領域であって、関連する画素が視差値0を持つものと推測される領域を意味する。例えば、複数の色セグメントの中のある色セグメントにおいて、信頼画素数がその色セグメントにおける全画素に対する所定の閾値百分率を超える場合、その色セグメントは無限遠領域であると決定されてもよい。
730において、方法700は、第1の視差マップに基づいて第3の視差マップを作成することを含む。ある例示的実施形態では、第3の視差マップは、第1の視差マップから取得される(図6に描かれるような)リファイン視差マップでもよい。ある例示的実施形態では、方法700は、第1の画像の画素に対するフィルタ視差値を決定することを含む。ある例示的実施形態では、第1の画像における無限遠領域の一部である画素に対するフィルタ視差値は、所定の視差値(例えば、視差値0)と等しくなるように決定される。ある例示的実施形態では、第1の画像における(無限遠領域にある画素以外の)画素に対するフィルタ視差値は、図2を参照して説明されたツリーベース集計法に基づいて計算される。これは、例えば式(3)に基づいて計算される。別の例示的実施形態では、方法700は、第1の画像における(無限遠領域にある画素以外の)画素に対するフィルタ視差値を、図2を参照して説明された全画像ガイド付きフィルタリング法に基づいて決定することを含む。ここで、第1の画像における1つ又は複数の無限遠領域の画素に対するフィルタ視差値には、所定の視差値(例えば、視差値0)が割当てられる。
図8A及び8Bは、ある例示的実施形態に従う、視差マップ推定のための例示的方法800を説明するフローチャートを示す。方法800を説明するために、例として図2を参照する。フローチャートに描かれる方法800は、例えば、図2の装置200によって実行されてもよい。
805において、方法800は第1の画像及び第2の画像の受取りを進めることを含む。ある例示的実施形態では、第1の画像及び第2の画像は、ある風景の立体画像対である。ある実施例において、第1の画像は第1のイメージセンサ(例えば、センサ208)でキャプチャされ、第2の画像は第2のイメージセンサ(例えば、センサ210)でキャプチャされる。
810において、方法800は、第1の総コストボリュームは、複数の視差値(d1, d2, …, dn)に対して、第1の画像の画素と第2の画像の対応する画素との間のコストボリュームを決定することを含む。ある例示的使用例では、コストボリュームは、複数の視差値d1, d2, …, dnに対して、第1の画像の画素と第1の画像の画素に対応する第2の画像の画素に対する複数のマッチングコストを含む。
815において、方法800は、複数の視差値(d1, d2, …, dn)に対して第1の画像に関連する第1の総コストボリュームを決定するために、第1のセグメントツリーに基づいてコストボリュームを集計することと、複数の視差値に対して第2の画像に関連す第2の総コストボリュームを決定するために、第2のセグメントツリーに基づいてコストボリュームを集計することを含む。ブロック810及び815の動作例は、ブロック710で実行される動作である。
820において、方法800は、第1の総コストボリュームに基づいて、第1の画像の第1の視差マップを作成することを含み、第2の総コストボリュームに基づいて、第2の画像の第2の視差マップを作成することも含む。この実施例では、第1の画像の第1の視差マップと第2の画像の第2の視差マップは、コスト集計法を用いて作成される。ブロック820の動作例は、ブロック715で実行される動作である。
825において、方法800は、第1の総コストボリュームに基づいて、第1の視差マップにおける第1の画像の画素に対する視差値に対応する信頼値を決定することを含む。830において、方法800は、正規化信頼値を生成するために信頼値を正規化することを含む。835において、方法800は、第1の視差マップの画素に対して2進信頼値(例えば0又は1)を割当てるために、正規化信頼値を信頼閾値と比較することを含む。信頼値の決定や信頼値の正規化、2進信頼値の割当ての実施例の一部は、図2を参照して説明される。例えば、信頼画素には2進信頼値'1'を割当て、非信頼画素には2進信頼値'0'を割当ててもよい。
840において、方法800は、第1の視差マップと第2の視差マップの比較に基づいて、第1の視差マップの閉塞画素を決定することを含む。この実施例では、第1の視差マップからの画素と第2の視差マップからの画素は、閉塞画素を決定するために、相互一貫性チェック(左右(LR)チェックとも呼ばれる)を受ける。
845において、方法800は、複数の色セグメントのサイズを閾値サイズと比較することに基づいて、色セグメント群を決定することを含む。この実施例では、第1の画像の複数の色セグメントは、本技術分野で知られている種々の適切な分割法に基づいて計算される。ある例示的実施形態では、画像の色分割は、セグメントを形成するために同じ明度値を持つ画素が一緒にグループ化され、各セグメントが特定の色で表わされる処理を意味する。複数の色セグメントは種々の適切な方法で決定されてもよい。こうした方法は、平均シフトツリー(MST)ベース分割やセグメントツリーベース分割等でもよいが、これらに限定されない。ある実施例では、閾値サイズは第1の画像のサイズの2%でもよい。閾値サイズ(2%)は単なる説明として言及されているのであって、閾値サイズ制限が任意の値でもよいと見做してはならない。ある例示的実施形態では、方法800は、複数の色セグメントのサイズが閾値サイズよりも大きいか否かを調べるために、複数の色セグメントの中の各色セグメントを閾値サイズと比較することを含む。色セグメントのサイズが閾値サイズよりも大きい場合、その色セグメントを色セグメント群の一部として選択される。
850において、方法800は、第1の画像の色セグメント群に対する第1の因子及び第2の因子の比(T)を計算することを含む。ある例示的実施形態において、色セグメント群の中の個別色セグメントに対する第1の因子(CN)は、その個別色セグメントにおける閉塞画素でない信頼画素の数に基づいて計算され、第2の因子(SN)は、その個別色セグメントにおける閉塞画素でない全画素に基づいて計算される。第1の因子及び第2の因子の比の実施例の一部は、図2を参照して説明される。850において、第1の因子及び第2の因子の比(T)は、色セグメント群の全セグメントに対して計算される。
855において、方法800は、この比と所定の閾値比の比較に基づいて、色セグメント群を1つ又は複数の無限遠領域として分類することを含む。色セグメント群に対する比が閾値比よりも低いか否かを調べるために、その比が閾値比と比較される。ある例示的実施形態では、ブロック855の動作は、色セグメント群の各色セグメントに対するブロック860・865の動作を実行することを含む。860において、色セグメント群の色セグメントは、その色セグメントに対する比が閾値比未満の場合、「無限遠領域」と分類される。第1の画像における1つ又は複数の無限遠領域の画素に対する視差値は、所定の視差値と等しくなるように設定される。865において、方法800は、色セグメントに対する比が閾値比以上である場合、色セグメント群の非信頼画素を閉塞穴部/画素と分類することを含む。当然のことながら、比Tが閾値比以上である場合、選択された色セグメントは非信頼画素と比べてより多くの信頼画素を有するものと見做され、色セグメント全体が無限遠領域とは分類されず、その中の非信頼画素のみが閉塞穴部/画素と分類される。
870において、方法800は、第1の視差マップに対する第3の視差マップを作成することを含む。動作870は、ブロック730で実行される動作の例である。870において、方法800は、例えば図2を参照して説明したツリーベース集計法に基づき、図2を参照して説明した式(3)を用いるようにして、第1の画像の画素に対する視差値を決定することを含む。ある例示的実施形態では、870で、方法800は第1の画像の画素に対するフィルタ視差値を決定することを含む。ある例示的実施形態では、第1の画像における無限遠領域の一部である画素に対するフィルタ視差値は、所定の視差値(例えば、視差値0)と等しくなるように決定される。そして、第1の画像における(無限遠領域にある画素以外の)画素に対するフィルタ視差値は、図2を参照して説明されたツリーベース集計法に基づき、例えば式(3)に基づいて計算される。別の例示的実施形態では、方法800は、ツリーベース集計法の代替で図2を参照して説明された全画像ガイド付きフィルタリング法に基づいて、第1の画像における(無限遠領域にある画素以外の)画素に対するフィルタ視差値を決定することを含む。
図7及び8A・8Bフローチャートの説明を容易にするために、幾つかの処理が他のステップとは区別可能なステップとして、特定の処理順序を有するものとして説明されてきたことに留意されたい。しかし、このような実装形態は単に例に過ぎず、実装形態を限定するものではない。処理によっては、統合されて単一の処理として実行されてもよく、また、本明細書に例示された順序とは異なる順序でも実行可能である。さらに、方法700・800の処理によっては自動的に実行されるものもある。そうした処理には実質的にユーザは関わらない。方法700・800の別の処理は、マニュアル又は半自動的に実行されてもよい。そうした処理には、1つ又は複数のユーザインタフェースを介してユーザが操作することを含む。
こうしたフローチャートに描かれる方法は、例えば、図2の装置200によって実行されてもよい。フローチャートの処理及びフローチャートの処理の組み合わせは様々な手段によって実施されることに留意されたい。そのような手段には、例えばハードウェアやファームウェア、プロセッサ、回路網、及び/又はソフトウェアの実行に関連付けられるデバイスが含まれる。また当該ソフトウェアは1つ又は複数のコンピュータプログラム命令を含む。例えば、様々な実施形態に関して説明された1つ又は複数の処理は、コンピュータプログラム命令によって具現化されてもよい。ある例示的実施形態では、多くの実施形態で説明された上記の処理を具現化するコンピュータプログラム命令は、装置の少なくとも1つのメモリデバイスに格納されてもよく、装置の少なくとも1つのプロセッサにより実行されてもよい。このようなコンピュータプログラム命令は、コンピュータや、プログラム可能な装置(例えばハードウェア)にロードされて機械を構成する。すなわち、命令がロードされたコンピュータ又はプログラム可能な装置は、1つ又は複数のフローチャートにより特定される機能を実装するための手段を具現化する。これらのコンピュータプログラム命令はコンピュータ読み取り可能な記憶メモリ(すなわち搬送波や電磁波信号のような送信媒体ではない媒体)に格納されてもよく、固有の方法でコンピュータ又はその他のプログラム可能な装置を機能させるべく命令してもよい。すなわち、コンピュータ読み取り可能なメモリに格納される命令は、実行されることにより、1つ又は複数のフローチャートのブロックにより特定される機能を実装する製品を形成する。コンピュータプログラム命令はコンピュータ又はその他のプログラム可能な装置にロードされ、一連の動作を前記コンピュータ又はその他のプログラム可能な装置で実行させることにより、コンピュータ実装プロセスを生成する。すなわち、コンピュータ又はその他のプログラム可能な装置で命令が実行されることにより、フローチャートで特定される処理を提供する。こうした方法に関する処理は、装置200の助けを借りて説明される。しかし、方法に関する処理は、他の如何なる装置を用いて説明されたり実施されたりしてもよい。
本明細書で開示された1つ又は複数の例示的実施形態の技術的効果は、立体画像の視差推定を改善することである。ただしこのことは、請求項に係る発明の範囲や解釈、応用を如何様にも限定するものではない。様々な例示的実施形態は、視差マップの高速フィルタリングを実行することで、不正確な視差を修正することができる。様々な例示的実施形態はまた、閉塞穴部のような欠損視差を穴埋めでき、同時に、画像の画素に対するリファイン視差値を決定するためのワンパス・フィルタリングを実行できる。様々な例示的実施形態はまた、画像の他の領域における画素に対する視差値を推定するために、画像のテクスチャ欠損領域の影響を除外して視差推定を実行でき、その結果よりロバストな視差推定を行える。
前述の様々な実施形態は、ソフトウェアやハードウェア、アプリケーションロジック、又はこれらの結合として実装されてもよい。ソフトウェアやアプリケーションロジック、ハードウェアは、少なくとも1つのメモリ、少なくとも1つのプロセッサ、装置、コンピュータプログラムを用いた製品に存在していてもよい。ある例示的実施形態において、アプリケーションロジック、ソフトウェア、または命令セットは、種々の標準的なコンピュータ可読媒体の何れかに保持される。本明細書の文脈において「コンピュータ可読媒体」は触ることが可能なメディアや手段であって、命令を実行するコンピュータのようなシステムや装置、デバイスによって又はそれと共に使用される命令を、含むことや格納すること、通信すること、伝達すること、送信することのいずれかが可能な如何なるメディアや手段であってもよい。上記コンピュータの例には、図1及び/又は図2に関連して説明され描かれている装置がある。コンピュータ可読媒体はコンピュータ可読記憶媒体を備えてもよい。それは、コンピュータのような、命令を実行するシステムや装置、デバイスによってまたはそれと共に使用される命令を含むか格納しうる、如何なる媒体や手段であってもよい。
必要に応じて、本出願で開示した様々な機能が異なる順序で、及び/又は同時に実行されてもよい。さらに必要に応じて、前述の機能の1つ又は複数が任意選択できたり、統合されたりしてもよい。
実施形態の様々な側面が独立請求項に提示されているが、その他の側面には、請求項に明示的に提示されている組み合わせ以外にも、説明された実施形態及び/又は従属請求項に含まれる特徴を、独立請求項の特徴と組み合わせたものも含まれる。
前述の通り、本発明の例示的実施形態が説明されてきたが、これらの記述を限定的な意味で見るべきでないことにも留意されたい。それよりも、添付の特許請求の範囲に定義される開示の範囲を逸脱することなしに、様々な変形や修正が存在する。