(57)【要約】  同時位置決定およびマッピングに関する遮蔽処理を実行するためのシステム、装置、および方法を開示する。画像キーフレームに応じて作成された深度マスクに従って、遮蔽されるマップ点が検出されてもよい。シーンをセクションに分割することによって、深度マスクを最適化してもよい。深度マスク点のサイズは、強度に従って調整されてもよい。考えられるマップ点の最適化されたセットによって可視性が検証されてもよい。第1の点の周囲の画像パッチの初期可視性を判定したことに応答して、可視性を近接する点に伝搬させてもよい。グリッドに従って可視性を構成し最適化してもよい。
2018507476.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータビジョン遮蔽処理のための方法であって、
3Dマップから観測できるマップ点をキーフレームの点に投影するステップであって、前記キーフレームが関連するカメラ視点を有する画像を含む、投影するステップと、
複数の深度マップ点を含む深度マップを前記キーフレームの前記点の各々から作成するステップであって、各深度マップ点が、前記キーフレームの関連するカメラ視点から、前記3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、前記値が前記複数のそれぞれのマップ点距離のうちの最短のものを含む、作成するステップと、
前記キーフレーム内の潜在的可視点を特定するステップであって、前記潜在的可視点が、前記深度マップ内の代表的な距離を有する前記キーフレームの前記点を含む、特定するステップと、
前記画像内の可視性に関して試験すべき複数の前記潜在的可視点を選択するステップと、
前記選択された複数の前記潜在的可視点を可視性に関して試験するステップであって、前記試験するステップが、前記複数の前記潜在的可視点の各々が、前記3Dマップから得た画像パッチに相当する前記キーフレームから得た周囲の画像パッチを含むかどうかを判定するステップを含む、試験するステップと、
可視性に関する前記試験の結果に従って環境をマッピングするステップと
を含む方法。
【請求項２】
前記複数の前記潜在的可視点を選択する前記ステップは、
前記キーフレームをセクションに細分割するステップであって、各セクションが、可視性に関して試験すべきしきい値数のマップ点を含む、細分割するステップを含む、請求項1に記載の方法。
【請求項３】
前記選択された複数の前記潜在的可視点を可視性に関して試験する前記ステップは、
前記試験の結果をそれぞれの前記潜在的可視点に隣接するしきい値数の点に伝搬させるステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記深度マップを作成する前記ステップは、
前記キーフレームをセクションに細分割するステップであって、深度値を有するしきい値数の前記点が前記セクションの各々に割り振られる、細分割するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記深度マップ点のサイズを前記点の前記値に対して決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
処理能力または信頼度設定に従って、可視性に関して試験すべきセクションの数、試験すべきしきい値数の潜在的可視点、可視性結果を伝搬させるべきしきい値数の隣接する点、深度値を有するしきい値数の点、またはそれらの任意の組合せを設定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記深度マップ点が複数のそれぞれのマップ点距離を表す場合、最長距離が、遮蔽される点を表す、請求項1に記載の方法。
【請求項８】
コンピュータビジョン遮蔽処理のためのデバイスであって、
メモリと、
前記メモリに結合されたプロセッサであって、
3Dマップから観測できるマップ点をキーフレームの点に投影することであって、前記キーフレームが関連するカメラ視点を有する画像を含む、投影することと、
複数の深度マップ点を含む深度マップを前記キーフレームの前記点の各々から作成することであって、各深度マップ点が、前記キーフレームの関連するカメラ視点から、前記3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、前記値が前記複数のそれぞれのマップ点距離のうちの最短のものを含む、作成することと、
前記キーフレーム内の潜在的可視点を特定するステップであって、前記潜在的可視点が、前記深度マップ内の代表的な距離を有する前記キーフレームの前記点を含む、特定することと、
前記画像内の可視性に関して試験すべき複数の前記潜在的可視点を選択することと、
前記選択された複数の前記潜在的可視点を可視性に関して試験することであって、前記試験することが、前記複数の前記潜在的可視点の各々が、前記3Dマップから得た画像パッチに相当する前記キーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む、試験することと、
可視性に関する前記試験の結果に従って環境をマッピングすることと
を行うように構成されたプロセッサと
を備えるデバイス。
【請求項９】
前記キーフレームをセクションに細分割することであって、各セクションが、可視性に関して試験すべきしきい値数のマップ点を含む、細分割することを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１０】
前記試験の結果をそれぞれの前記潜在的可視点に隣接するしきい値数の点に伝搬させるようにさらに構成される、請求項8に記載のデバイス。
【請求項１１】
前記キーフレームをセクションに細分割することであって、深度値を有するしきい値数の前記点が前記セクションの各々に割り振られる、細分割することを行うようにさらに構成される、請求項8に記載のデバイス。
【請求項１２】
前記深度マップ点のサイズを前記点の前記値に対して決定するようにさらに構成される、請求項8に記載のデバイス。
【請求項１３】
処理能力または信頼度設定に従って、可視性に関して試験すべきセクションの数、試験すべきしきい値数の潜在的可視点、可視性結果を伝搬させるべきしきい値数の隣接する点、深度値を有するしきい値数の点、またはそれらの任意の組合せを設定するようにさらに構成される、請求項8に記載のデバイス。
【請求項１４】
前記深度マップ点が複数のそれぞれのマップ点距離を表すとき、最長距離が、遮蔽される点を表す、請求項8に記載のデバイス。
【請求項１５】
プログラム命令が記憶された機械可読非一時的記憶媒体であって、前記プログラム命令が、
3Dマップから観測できるマップ点をキーフレームの点に投影することであって、前記キーフレームが関連するカメラ視点を有する画像を含む、投影することと、
複数の深度マップ点を含む深度マップを前記キーフレームの前記点の各々から作成することであって、各深度マップ点が、前記キーフレームの関連するカメラ視点から、前記3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、前記値が前記複数のそれぞれのマップ点距離のうちの最短のものを含む、作成することと、
前記キーフレーム内の潜在的可視点を特定するステップであって、前記潜在的可視点が、前記深度マップ内の代表的な距離を有する前記キーフレームの前記点を含む、特定することと、
前記画像内の可視性に関して試験すべき複数の前記潜在的可視点を選択することと、
前記選択された複数の前記潜在的可視点を可視性に関して試験することであって、前記試験することが、前記複数の前記潜在的可視点の各々が、前記3Dマップから得た画像パッチに相当する前記キーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む、試験することと、
可視性に関する前記試験の結果に従って環境をマッピングすることと
を行うようにプロセッサによって実行できる媒体。
【請求項１６】
前記キーフレームをセクションに細分割するための命令であって、各セクションが、可視性に関して試験すべきしきい値数のマップ点を含む命令をさらに含む、請求項15に記載の媒体。
【請求項１７】
前記試験の結果をそれぞれの前記潜在的可視点に隣接するしきい値数の点に伝搬させるための命令をさらに含む、請求項15に記載の媒体。
【請求項１８】
前記キーフレームをセクションに細分割するための命令であって、深度値を有するしきい値数の前記点が前記セクションの各々に割り振られる命令をさらに含む、請求項15に記載の媒体。
【請求項１９】
前記深度マップ点のサイズを前記点の前記値に対して決定するための命令をさらに含む、請求項15に記載の媒体。
【請求項２０】
処理能力または信頼度設定に従って、可視性に関して試験すべきセクションの数、試験すべきしきい値数の潜在的可視点、可視性結果を伝搬させるべきしきい値数の隣接する点、深度値を有するしきい値数の点、またはそれらの任意の組合せを設定するための命令をさらに含む、請求項15に記載の媒体。
【請求項２１】
前記深度マップ点が複数のそれぞれのマップ点距離を表すとき、最長距離が、遮蔽される点を表す、請求項15に記載の媒体。
【請求項２２】
コンピュータビジョンに関する遮蔽処理を実行するための装置であって、
3Dマップから観測できるマップ点をキーフレームの点に投影するための手段であって、前記キーフレームが関連するカメラ視点を有する画像を含む手段と、
複数の深度マップ点を含む深度マップを前記キーフレームの前記点の各々から作成するための手段であって、各深度マップ点が、前記キーフレームの関連するカメラ視点から、前記3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、前記値が前記複数のそれぞれのマップ点距離のうちの最短のものを含む手段と、
前記キーフレーム内の潜在的可視点を特定するための手段であって、前記潜在的可視点が、前記深度マップ内の代表的な距離を有する前記キーフレームの前記点を含む手段と、
前記画像内の可視性に関して試験すべき複数の前記潜在的可視点を選択するための手段と、
前記選択された複数の前記潜在的可視点を可視性に関して試験するための手段であって、前記試験が、前記複数の前記潜在的可視点の各々が、前記3Dマップから得た画像パッチに相当する前記キーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む手段と、
可視性に関する前記試験の結果に従って環境をマッピングするための手段と
を備える装置。
【請求項２３】
前記複数の前記潜在的可視点を選択するための前記手段は、
前記キーフレームをセクションに細分割するための手段であって、各セクションが、可視性に関して試験すべきしきい値数のマップ点を含む手段を備える、請求項22に記載の装置。
【請求項２４】
前記選択された複数の前記潜在的可視点を可視性に関して試験するための前記手段は、
前記試験の結果をそれぞれの前記潜在的可視点に隣接するしきい値数の点に伝搬させるための手段をさらに備える、請求項22に記載の装置。
【請求項２５】
前記深度マップを作成するための前記手段は、
前記キーフレームをセクションに細分割するための手段であって、深度値を有するしきい値数の前記点が前記セクションの各々に割り振られる手段をさらに備える、請求項22に記載の装置。
【請求項２６】
前記深度マップ点のサイズを前記点の前記値に対して決定するための手段をさらに備える、請求項22に記載の装置。
【請求項２７】
処理能力または信頼度設定に従って、可視性に関して試験すべきセクションの数、試験すべきしきい値数の潜在的可視点、可視性結果を伝搬させるべきしきい値数の隣接する点、深度値を有するしきい値数の点、またはそれらの任意の組合せを設定するための手段をさらに備える、請求項22に記載の装置。
【請求項２８】
前記深度マップ点が複数のそれぞれのマップ点距離を表す場合、最長距離が、遮蔽される点を表す、請求項22に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれている、2015年1月29日に出願された「OCCLUSION HANDLING FOR COMPUTER VISION」という名称の米国特許出願第14/609,371号からの優先権の利益を主張する。
【０００２】
本明細書において開示する主題は概して、コンピュータビジョンにおける遮蔽されるオブジェクトおよび環境の検出に関する。
【背景技術】
【０００３】
コンピュータビジョンは、画像(たとえば、実世界画像キャプチャ)を取得し、分析し、処理し、理解してイベントまたは結果を提示するための方法およびシステムを含む分野である。たとえば、1つのコンピュータビジョン技法は、同時位置決定およびマッピング(SLAM: Simultaneous Localization and Mapping)であり、この技法では、カメラが6自由度(6DOF: Six Degrees of Freedom)で動く際に、単一のカメラの入力を処理し、かつ、環境の三次元(3D)モデル(たとえば再構成されたマップ)を連続的に作成することができる。SLAMシステムは、3Dモデルをマッピングしつつ3Dモデルに対するカメラの姿勢を同時に追跡することができる。しかし、新しい(マップされていない)オブジェクトが既存の3Dモデルを遮蔽するとき、SLAMシステムは、新しい遮蔽オブジェクトの後方にある既存の/再構成された3Dモデルの追跡を試みるときにエラーを生じる場合がある。SLAMシステムが3Dモデルの特徴の追跡を試みるときにエラーが生じることがあるのは、新しいオブジェクトによって遮蔽される特徴はもはやSLAMシステムによって追跡することができないからである。場合によっては、遮蔽エラーによって、SLAMシステムが3Dモデルの追跡に失敗し、遮蔽オブジェクトは再構成されない。
【０００４】
新しいオブジェクトの遮蔽による追跡エラーでは一般に、一定のデバイス(たとえば、処理機能が限定された携帯デバイスまたはモバイルデバイス)上でリアルタイムに可能である場合がある処理を超えたシーンの広範な処理が必要である。たとえば、遮蔽オブジェクトを検出するには一般に、カメラの視野におけるあらゆるマップ点の可視性(visibility)を検証する必要がある。この広範な可視性検証では、再構成されたあらゆるマップ点と現在のカメラ画像内のあらゆる点との対応が探索される。したがって、コンピュータビジョンに関する新しい改良された遮蔽処理(occlusion handling)が望ましい。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書で開示する実施形態は、コンピュータビジョンに関する遮蔽処理を実行するための方法に関する場合がある。この方法は、3Dマップから観測できるマップ点をキーフレームの点に投影するステップであって、キーフレームが関連するカメラ視点を有する画像を含む、投影するステップを含んでもよい。この方法は、複数の深度マップ点を含む深度マップをキーフレームの点の各々から作成するステップであって、各深度マップ点が、キーフレームの関連するカメラ視点から、3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、この値が複数のそれぞれのマップ点距離のうちの最短のものを含む、作成するステップを含んでもよい。この方法はまた、キーフレーム内の潜在的可視点(potentially visible point)を特定するステップであって、潜在的可視点が深度マップ内の代表的な距離を有するキーフレームの点を含む、ステップと、画像内の可視性に関して試験すべき複数の潜在的可視点を選択するステップとを含んでもよい。この方法はまた、選択された複数の潜在的可視点を可視性に関して試験するステップであって、試験するステップが、複数の潜在的可視点の各々が、3Dマップから得た画像パッチに相当するキーフレームから得た周囲の画像パッチを含むかどうかを判定するステップを含む、試験するステップと、可視性に関する試験の結果に従って環境をマッピングするステップとを含んでもよい。
【０００６】
本明細書において開示する実施形態はさらに、コンピュータビジョンに関する遮蔽処理を実行するためのデバイスに関する場合がある。このデバイスは、3Dマップから観測できるマップ点をキーフレームの点に投影するための命令であって、キーフレームが関連するカメラ視点を有する画像を含む命令を含んでもよい。このデバイスは、複数の深度マップ点を含む深度マップをキーフレームの点の各々から作成するための命令であって、各深度マップ点が、キーフレームの関連するカメラ視点から、3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、この値が複数のそれぞれのマップ点距離のうちの最短のものを含む命令を含んでもよい。このデバイスは、キーフレーム内の潜在的可視点を特定するための命令であって、潜在的可視点が深度マップ内の代表的な距離を有するキーフレームの点を含む命令と、画像内の可視性に関して試験すべき複数の潜在的可視点を選択するための命令とを含んでもよい。このデバイスは、選択された複数の潜在的可視点を可視性に関して試験するための命令であって、試験が、複数の潜在的可視点の各々が、3Dマップから得た画像パッチに相当するキーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む命令と、可視性に関する試験の結果に従って環境をマッピングするための命令とを含んでもよい。
【０００７】
本明細書において開示する実施形態はさらに、コンピュータビジョンに関する遮蔽処理を実行するための装置に関する場合もある。この装置は、3Dマップから観測できるマップ点をキーフレームの点に投影するための手段であって、キーフレームが関連するカメラ視点を有する画像を含む手段を含んでもよい。この装置は、複数の深度マップ点を含む深度マップをキーフレームの点の各々から作成するための手段であって、各深度マップ点が、キーフレームの関連するカメラ視点から、3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、この値が複数のそれぞれのマップ点距離のうちの最短のものを含む手段を含んでもよい。この装置は、キーフレーム内の潜在的可視点を特定するための手段であって、潜在的可視点が深度マップ内の代表的な距離を有するキーフレームの点を含む手段と、画像内の可視性に関して試験すべき複数の潜在的可視点を選択するための手段とを含んでもよい。この装置は、選択された複数の潜在的可視点を可視性に関して試験するための手段あって、試験が、複数の潜在的可視点の各々が、3Dマップから得た画像パッチに相当するキーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む手段と、可視性に関する試験の結果に従って環境をマッピングするための手段とを含んでもよい。
【０００８】
本明細書において開示する実施形態は、コンピュータビジョンに関する遮蔽処理を実行するように実行可能な命令を有する非一時的記憶媒体を含む物品にさらに関する。この媒体は、3Dマップから観測できるマップ点をキーフレームの点に投影するための命令であって、キーフレームが関連するカメラ視点を有する画像を含む命令を含んでもよい。この媒体は、複数の深度マップ点を含む深度マップをキーフレームの点の各々から作成するための命令であって、各深度マップ点が、キーフレームの関連するカメラ視点から、3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、この値が複数のそれぞれのマップ点距離のうちの最短のものを含む命令を含んでもよい。この媒体は、キーフレーム内の潜在的可視点を特定するための命令であって、潜在的可視点が深度マップ内の代表的な距離を有するキーフレームの点を含む命令と、画像内の可視性に関して試験すべき複数の潜在的可視点を選択するための命令とを含んでもよい。この媒体は、選択された複数の潜在的可視点を可視性に関して試験するための命令であって、試験が、複数の潜在的可視点の各々が、3Dマップから得た画像パッチに相当するキーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む命令と、可視性に関する試験の結果に従って環境をマッピングするための命令とを含んでもよい。
【０００９】
他の特徴および利点は、添付の図面および詳細な説明から、明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】一実施形態における、コンピュータビジョンに関する遮蔽処理(OHCV: Occlusion Handling for Computer Vision)の態様が実施される場合があるシステムのブロック図である。
【図２Ａ】一実施形態における、第1の視点および3次元(3D)マップによる第1のキーフレームを示す図である。
【図２Ｂ】一実施形態における、第2の視点による第2のキーフレームを示す図である。
【図２Ｃ】一実施形態における、カメラビュー内のマップ点の表現を示す図である。
【図２Ｄ】一実施形態における、カメラ画像平面に対する相対深度を有する図2Cのマップ点を示す図である。
【図２Ｅ】一実施形態における、図2Bの環境に関連する3Dマップを示す図である。
【図２Ｆ】一実施形態における、遮蔽を考慮しない新しい画像点抽出を示す図である。
【図２Ｇ】一実施形態における、図2Bのシーンに関する深度マップを示す図である。
【図２Ｈ】別の実施形態における、図2Bに示す環境における点に関する深度値を表すマスクを示す図である。
【図２Ｉ】一実施形態における、深度マップ比較を実行することによって判定された遮蔽される点を示す図である。
【図２Ｊ】一実施形態における、図2Bのシーンにおける潜在的可視点を示す図である。
【図２Ｋ】別の実施形態における、可視性試験を含む処理に関する図2Bに示すシーン内の点の選択を示す図である。
【図２Ｌ】可視性試験によって発見された遮蔽される点を示す図である。
【図２Ｍ】一実施形態における、入力キーフレームから抽出すべき新しい画像点を示す図である。
【図３】一実施形態における、OHCVを実行するための方法の流れ図である。
【図４】一実施形態における、OHCV深度フィルタ処理を実行するための方法の流れ図である。
【図５】一実施形態における、OHCV可視性試験を実行するための方法の流れ図である。
【発明を実施するための形態】
【００１１】
「例示的」または「例」という単語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」もしくは「例」として本明細書において説明するいずれの態様または実施形態も、他の態様もしくは実施形態に比べて好ましいか、または有利であると解釈されるとは限らない。
【００１２】
一実施形態では、コンピュータビジョンに関する遮蔽処理(本明細書では「OHCV(Occlusion Handling for Computer Vision)」と表す)によって、遮蔽されたマップ点が深度マップによってフィルタ処理され、ポイントのサブセットの可視性が判定される。3Dマップにおける3Dポイントは、既知の深度値(たとえば、同時位置決定およびマッピング(SLAM)またはその他のマッピング方法の結果)を有する。一実施形態において、OHCVが、3Dポイントの深度を、深度マスク/マップにおける等価点(たとえば、カメラ視点に対して同じ位置を占有する点)に関する深度と比較する。2つ以上の等価点を比較したことに応答して、より大きい深度を有する点(たとえば、カメラ位置からより遠くに離れた点)が遮蔽される点として分類される。深度マスクにおいて対応する深度を有さない点は、最適化された可視性試験によって処理される。
【００１３】
実施形態によっては、OHCVが、各点のそれぞれの深度値に対する深度マップ内のその点のサイズを設定する。たとえば、カメラ視点に最も近い点は、深度マップではより大きいカバレージエリアを有するように(たとえば、カメラ視点からより遠い点よりも大きい円周を有する円として)表される。
【００１４】
一実施形態では、深度マップによる事前フィルタ処理の後に残る非遮蔽点のサブセットに関してカメラ視点に対する点可視性が検証される。点可視性は、別の未知の(すなわち、まだ再構成されていない)オブジェクトによって遮蔽される可能性がある、深度マップ事前フィルタ処理の後に残る3Dマップ点を取り込むように検証される。
【００１５】
図1は、本発明の実施形態が実施される場合があるシステムを示すブロック図である。このシステムは、汎用プロセッサ161とメモリ164とを含んでもよいデバイス(たとえば、デバイス100)であってもよい。デバイス100は、モジュールまたはエンジンとして実装されるOHCV170にさらに結合された1つまたは複数のバス177または信号線に結合されたいくつかのデバイスセンサを含んでもよい。図1に示すように、OHCV170は、図を明確にするためにプロセッサ161および/またはハードウェア162から分離されているが、プロセッサ161および/またはハードウェア162において組み合わされならびに/あるいは実装されてもよい。実施形態によっては、OHCV170の機能は、ソフトウェア165および/またはファームウェア163における命令によって実現される。実施形態によっては、制御ユニット160は、OHCVを実行する方法を実施するように構成される。たとえば、制御ユニット160は、以下に図3、図4、および図5に関して説明するデバイス100の機能を実施するように構成することが可能である。
【００１６】
デバイス100は、モバイルデバイス、ワイヤレスデバイス、セル電話、拡張現実感デバイス(AR: Augmented Reality)、パーソナルデジタルアシスタント、着用可能デバイス(たとえば眼鏡、腕時計、帽子または同様の身体装着デバイス)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、データ処理デバイス/システム、または処理能力を有する任意のタイプのデバイスであってもよい。
【００１７】
一実施形態では、デバイス100はモバイル/携帯型プラットフォームである。デバイス100は、カメラ114などの画像をキャプチャするための手段を含むことができ、また、場合によっては、加速度計、ジャイロスコープ、電子コンパスまたは他の同様の運動知覚要素などの運動センサ111を含んでもよい。
【００１８】
デバイス100は、様々なセンサを組み込むこともある、二重前面カメラおよび/または前面/後面カメラなどの複数のカメラを備えてもよい。カメラは、静止画像とビデオ画像の両方をキャプチャ可能であってもよい。カメラは、30フレーム/秒(fps)で画像をキャプチャすることが可能なRGBD(Red Green Blue plus Depth)カメラまたは立体視ビデオカメラであってもよい。カメラによってキャプチャされた画像は、生の未圧縮フォーマットであってもよく、処理されならびに/あるいはメモリ164内に記憶される前に圧縮されてもよい。OHCVは、可逆的な圧縮技法または不可逆的な圧縮技法を使用して、プロセッサ161による画像圧縮を実行してもよい。
【００１９】
プロセッサ161は、センサ111から入力を受け取ってもよい。センサ111は、3軸加速度計、3軸ジャイロスコープ、および/または磁力計を備えてもよい。センサ111は、速度、方位、および/または他の位置関連情報をプロセッサ161に供給してもよい。センサ111は、カメラ114による各画像フレームのキャプチャに関連付けられた測定された情報を出力してもよい。カメラ114および/またはデバイス100の姿勢を判定するために、センサ111の出力がプロセッサ161によって部分的に使用されてもよい。
【００２０】
カメラ114の姿勢(本明細書では「カメラ視点」として表される)は、座標系に対するカメラ114の位置および方位(すなわち、姿勢)を指す。(基準系のX、Y、Z座標によって与えられる場合がある)3つの並進成分と3つの角成分(たとえば、同じ基準系に対するロール、ピッチおよびヨー)とを指す6DOFに関して、カメラ姿勢が判定されてもよい。
【００２１】
カメラ114および/またはデバイス100の姿勢は、カメラ114によってキャプチャされた画像に基づいて、視覚追跡ソリューションを使用して、プロセッサ161によって判定および/または追跡されてもよい。たとえば、プロセッサ161上で動作しているマッピングモジュールは、コンピュータビジョンベースの追跡、モデルベースの追跡、および/または同時位置決定およびマッピング(SLAM)方法を実装し実行することができる。SLAMは、デバイス100によってモデル化される環境の3Dマップなどの環境の3Dマップが作成され、同時にそのマップに対するカメラの姿勢を追跡する技法の一種を指す。SLAMモジュール173によって実施される方法は、カメラ114によってキャプチャされたカラーまたはグレースケールの画像データに基づく場合があり、カメラの6DOF姿勢測定の推定値を生成するために使用される場合がある。センサ111の出力は、推定された姿勢に対して推定、訂正、および/または他の方法での調整を行うために使用されてもよい。カメラ114によってキャプチャされた画像は、センサ111に関するバイアス調整を再較正または実行するために使用されてもよい。
【００２２】
デバイス100は、拡張現実感画像を表示するための、ディスプレイ112などの手段を含むユーザインターフェース150をさらに含んでもよい。また、ユーザインターフェース150は、キーボード、キーパッド152、またはユーザが情報をデバイス100内に入力することができる他の入力デバイスを含んでもよい。必要に応じて、タッチスクリーン/センサを有するディスプレイ112に仮想キーパッドを統合することにより、キーボードまたはキーパッド152をなくしてもよい。たとえば、デバイス100がセルラー電話のようなモバイルプラットフォームであるとき、ユーザインターフェース150は、マイクロフォン154およびスピーカ156も含んでもよい。デバイス100は、衛星位置システム受信機、電力デバイス(たとえば電池)などの本開示には無関係の他の要素、ならびに典型的には携帯型電子デバイスおよび非携帯型電子デバイスに結合される他の構成要素を含んでもよい。
【００２３】
デバイス100は、モバイルデバイスまたはワイヤレスデバイスとして機能してもよく、また、任意の適切なワイヤレス通信技術に基づくか、またはさもなければサポートするワイヤレスネットワークを通した1つまたは複数のワイヤレス通信リンクを介して通信してもよい。たとえば、いくつかの態様では、デバイス100は、クライアントまたはサーバであってもよく、また、ワイヤレスネットワークに関連してもよい。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば、超広帯域ネットワーク)を備えることができる。いくつかの態様では、ネットワークは、ローカルエリアネットワーク、または広域ネットワークを備えてもよい。ワイヤレスデバイスは、様々なワイヤレス通信技術、プロトコル、またはたとえば3G、LTE、Advanced LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAXおよびWi-Fiなどの規格のうちの1つまたは複数をサポートするか、またはさもなければ使用する場合がある。同様に、ワイヤレスデバイスは、様々な対応する変調スキームまたは多重化スキームのうちの1つまたは複数をサポートするか、またはさもなければ使用する場合がある。モバイルワイヤレスデバイスは、他のモバイルデバイス、セルフォン、他のワイヤードコンピュータおよびワイヤレスコンピュータ、インターネットウェブサイト、等々とワイヤレスに通信する場合がある。
【００２４】
上記において説明したように、デバイス100は、携帯型電子デバイス(たとえば、スマートフォン、専用拡張現実感(AR)デバイス、ゲームデバイス、またはAR処理能力および表示能力を有する他のデバイス)であってもよい。本明細書において説明するARシステムを実装するデバイスは、様々な環境(たとえば、ショッピングモール、道路、事務所、家庭、またはユーザがこれらのポータブルデバイスを持ち運ぶ任意の場所)において使用されてもよい。ユーザは、広範囲にわたる様々な状況において自分のデバイス100の複数の機能とインターフェースすることができる。ARでは、ユーザは、自分のデバイスを使用して、自分のデバイスのディスプレイを通して実世界の表現を見る場合がある。ユーザは、自分のデバイスのカメラを使用して実世界画像/ビデオを受け取り、かつ、デバイス上に表示された実世界画像/ビデオの上に追加情報または代替情報を重ね合わせる方法で画像を処理することにより、自分のAR可能デバイスと対話してもよい。ユーザが、自分のデバイス上で実現されるARを見る際に、実世界のオブジェクトまたはシーンがデバイスディスプレイ上でリアルタイムに置き換えられるか、または変更されてもよい。仮想オブジェクト(たとえばテキスト、画像、ビデオ)が、デバイスディスプレイ上に示されたシーンの表現に挿入されてもよい。
【００２５】
一実施形態では、OHCVは、SLAMなどの技法から3Dマップを作成する。たとえば、SLAM(たとえば、6自由度(6DOF)追跡およびマッピング)によって、キーフレームから観測された特徴を3Dマップに関連付け、特徴点関連付けを使用して、それぞれのカメラ画像に関係するカメラの姿勢を判定することができる。OHCVは、6DOFマッピングによって、オブジェクトおよび環境の新しい再構成またはさらなる再構成によって3Dマップを更新/維持してもよい。たとえば、OHCVは、キーフレーム内に遮蔽されたオブジェクトを検出したことに応答して、オブジェクトの再構成および/またはキーフレーム内の新しいオブジェクトのマッピングをトリガすることができる。新たに発見されたオブジェクトが3Dマップに組み込まれてもよい。3Dマップは、2つ以上のキーフレームから三角行列化された3D特徴点を含んでもよい。たとえば、キーフレームは、観察されたシーンを表現するために、画像またはビデオストリームまたはフィードから選択されてもよい。キーフレームの場合、OHCVは、画像に結合されたそれぞれの6DOFカメラ姿勢を計算することができる。OHCVは、3Dマップからの特徴を画像フレームまたはビデオフレーム内に投影し、かつ、検証された2D-3D対応からカメラ姿勢を更新することによってカメラ姿勢を判定することができる。
【００２６】
図2Aは、一実施形態における、第1の視点および3Dマップによる第1のキーフレームを示す。たとえば、図示のキーフレームは、時間Ti-1においてキャプチャされた第1の視点(Vi-1)を有する第1のキーフレーム(Ki-1)であってもよい。図2Aは、時間Ti-1におけるSLAMシステム(たとえば、3Dマップ)内の完全に再構成されるかまたは部分的に再構成されたオブジェクトを表すオブジェクト(たとえば、オブジェクト205およびオブジェクト215)をさらに示す。たとえば、オブジェクト205は、時間Ti-1よりも前の時間T0にSLAMシステムによってすでに再構成されていてもよい。図2Aは、時間Ti-1における環境200内の部分的に再構成されたオブジェクトを表す潜在的に遮蔽するオブジェクト(たとえば、オブジェクト215)をさらに示す。たとえば、図2Aに示す時間Ti-1では、SLAMシステムは、潜在的に遮蔽するオブジェクトをまだ完全に再構成しておらず、あるいは環境をマッピングする間に視点の角度によって供給される情報が限定されることに起因して、オブジェクトの再構成が限定的/部分的になる場合がある。実施形態によっては、視点は、まったく再構成されていないオブジェクトを含んでもよい(たとえば、限定されたオブジェクトまたは部分的に再構成されたオブジェクトは存在しない)。
【００２７】
図2Bは、一実施形態における、第2の視点による第2のキーフレームを示す図である。たとえば、図2Bは、時間T1においてキャプチャされた視点Viを有する第2のキーフレーム(Ki)を示す場合がある(たとえば、T1は、図2Aに関連する時間Ti-1の後であってもよい)。OHCVは、キーフレームKiを読み取って、すでに再構成されたマップ点との重なり合いを回避しつつキーフレームKiにおける新しい画像点を抽出してもよい。図2Bは、カメラ視点が、時間Ti-1における図2Aのより上位の図からT1においてより下位にシフトしたことを示す。図2Bに示すように、オブジェクト215は現在、3Dマップの再構成された部分(たとえば、オブジェクト205)を少なくとも部分的に遮蔽している。時間Ti-1における図2Aと同様に、SLAMシステムは、時間T1では遮蔽オブジェクトをまだ完全には再構成していない。
【００２８】
図2Cは、一実施形態における、カメラビュー内のマップ点の表現を示す図である。図2Cは、カメラビューから(たとえば、カメラ中心203から視線方向207に沿って)どの点が観測可能であるかを示す。点211-1〜211-4はカメラ画像平面204内に投影される。これに対して、点209-1および209-2は可視領域(たとえば、左境界202および右境界206)の外側に位置する。点210-1〜210-2はカメラの後方(カメラ画像平面204の後方)に位置する。
【００２９】
図2Dは、一実施形態における、カメラ画像平面に対する相対深度を有する図2Cのマップ点を示す。深度208は、本明細書では、カメラの視線方向(たとえば、方向207)における観測可能な点の距離として図示され記載されている。深度は、既知のカメラ配置および配向に従って算出されてもよい。
【００３０】
図2Eは、時間T1における、図2Bの環境に関連する3Dマップを示す図である。図2Eは、再構成されたオブジェクト205を追跡するためにSLAMシステムによって利用される場合がある点(たとえば、基準3Dマップ点210)を有する再構成されたオブジェクト205を含む環境201を示す。図2Eは、カメラのビュー錐台(すなわち、視界)内に観測される場合があるキーフレーム点KPiのサブセットを示す。一実施形態では、未再構成オブジェクト215は、最初、時間T1では発見されず、SLAMシステムの3Dマップ内には再構成されないので、環境の3Dマップ内に表されない。実施形態によっては、遮蔽オブジェクトが部分的にのみ再構成されるので、オブジェクトのいくつかの領域は基本的にSLAMシステムには未知である(たとえば、オブジェクト215の前部セクションは3D点では表されない)。図2Eは、いくつかの3D点が遮蔽されることも示す。たとえば、オブジェクト215の頂部に関連する点216は、オブジェクト205に関連する点217を遮蔽する。
【００３１】
図2Fは、遮蔽を考慮しない新しい画像点再構成を示す図である。たとえば、図2Fに示すように、SLAMシステムは見えないマップ点との重なり合いを認識しない(たとえば、判定されていない)。以下に示すように、OHCVは、入力キーフレーム内で実行する可視性試験の回数を減らすために深度マップの比較によって遮蔽を検出することができる。実施形態によっては、OHCVは、深度マップの比較を実行することに加えてまたは実行する代わりに、以下に図3および図5に関してより詳細に説明する可視性試験推定および伝搬技法を利用する。
【００３２】
図2Gは、一実施形態における、図2Bのシーンに関する深度マップを示す図である。たとえば、深度マップDiは、KPiのすべての点の距離を表してもよい。一実施形態では、深度マップDiは、カメラ視点からシーンまたは環境内の物理的エリアまでの深度値を表すデータポイントを含む。たとえば、点220、221、222、および223は、カメラ視点からオブジェクト215上のそれぞれの位置までの深度値(たとえば、インチ、センチメートル、または他の距離測定値)を示す場合がある。図2Gに示すように、点220は、最大強度を有し(ほぼ黒色)、カメラ視点から最も遠い。点221は、点220よりもカメラ視点に近いが、点223ほど近くはない点を表す。点222は、カメラ視点に比較的近い点を示す低強度深度値を表す。図2Gに示すように、点222およびオブジェクト205の上部セクションにおける他の点は、カメラ視点に最も近い。
【００３３】
図2Hは、別の実施形態における、図2Bに示す環境における点に関する深度値を表すマスクを示す図である。たとえば、深度値を表すマスクにおける点は、そのそれぞれの深度値と比較してより大きく(たとえば、点226)または小さく(たとえば、点224)描かれてもよい。より近い点(たとえば、オブジェクト215に関する点226および点227)は、カメラ視点からより遠い点(たとえば、点224および点225)と比較して大きく描かれてもよい。
【００３４】
図2Iは、一実施形態における、深度マップ比較を実行することによって判定された遮蔽される点を示す図である。たとえば、図2Gは、Diにおける対応するピクセルを有さない遮蔽される点Oi(たとえば、点230)を表してもよい。図2Iに示すように、点Oiは他のマップ点によって遮蔽される(たとえば、O=KP-PV)。たとえば、図2Iは、図2Eによって示されるように点216によって遮蔽される点217を含む。
【００３５】
図2Jは、一実施形態における、図2Bのシーンにおける潜在的可視点を示す図である。たとえば、図2Jに示す潜在的可視点PViは、3Dマップ内の他のマップ点によって遮蔽されていないと判定される。OHCVは、図2Jに示す遮蔽される点を削除するか、無視するか、または破棄したことに応答して、得られる潜在的可視点に対して可視性試験を施してもよい。図2Jは、可視性に関して試験するために使用される場合があるマップ点235の周りの画像パッチ238をさらに示す。たとえば、3Dマップにおけるマップ点235の周りの画像パッチ238は、現在のキーフレームの画像の出現に整合するようにゆがめられるかまたは変形されてもよい。OHCVは、マップ点の予想される位置の周りの探索領域239における正規化相互相関(NCC)を算出してもよい。対応が見つかった場合(たとえば、ある位置が高いNCCを有する)、マップ点(たとえば、点235)は見えると見なされる。選択された点235からしきい値半径内の点(たとえば、点236および237)は、点235の周りの画像パッチ238に関するピクセルを共有するので、可視性を共有する可能性が高い。たとえば、オブジェクト(ボックス)215の左上縁部は、画像パッチ238に含まれるように示されており、キーフレームからの画像パッチを3Dマップからのそれぞれの画像パッチに整合させるときに有用な視覚的識別子/マーカーとなる場合がある。実施形態によっては、OHCVは、キーフレーム内の点に関する可視性試験を実行する際、後述の図2Kに示す点対応の群に対する試験を構成するためのセクションまたはグリッドに再分割する。
【００３６】
図2Kは、別の実施形態における、可視性試験を含む処理に関する図2Bに示すシーン内の点の選択を示す図である。一実施形態では、OHCVは、セクション/グリッドおよび可視性試験結果伝搬を利用して、キーフレーム内の点に関する可視性を判定するプロセスを最適化する。OHCVは、キーフレームを別々の部分/セクションに細分割することができる。一実施形態では、OHCVは、等しいサイズのボックスまたは矩形のグリッド(たとえば、グリッドセクション260)によってキーフレームを再分割するが、他の構成、形材、またはサイズが可能である場合もある。一実施形態では、セクション/グリッドに関するOHCVの構成設定は、OHCVを実行する特定のデバイスの処理機能によって決まる。たとえば、図2Kに示すグリッドセクション260は、未知の可視性を有する4つの点266〜269を含む。
【００３７】
特定のセクション/グリッド構成を選択したことに応答して(たとえば、セクションのサイズおよび数の構成可能な設定に応じて)、キーフレームと3Dマップとの間の点対応が判定されてもよい。実施形態によっては、OHCVは、各グリッドセクションのサブセクション内の点を同じグリッドセクション内の1つまたは複数の他の点と比較する。OHCVは、1つまたは複数の点による比較の結果を他の近接する点または隣接する点に伝搬させることができる。たとえば、OHCVは、図2Kに示すグリッドセクション260内において、1つまたは複数の点対応を試験するように構成されてもよい。一実施形態では、OHCVは、あらゆる点を試験する(処理集中的プロセスであり得る)のではなく、試験される点の数がしきい値(すなわち、しきい値数の試験される点)を満たすかまたは超えるときに、点のサブセットに対する可視性試験をスキップ/バイパスする。OHCVは、各点の値/ステータスが近接する点または隣接する点と同じであるかまたは同様であると推論することによって、残りの試験されていない点の可視性値/ステータスを推定または推論してもよい。OHCVは、1つまたは複数の点のサブセットを試験し、結果を各グリッドセクション内の他の隣接する点または近接する点に伝搬させる。図2Kに示す例示的なグリッドでは、グリッドセクション260内の4つの点266〜269のうちの1〜3個の点が明示的に試験されてもよく、各点に関する結果が、近接する点または隣接する点のうちの1つまたは複数に複製、拡張、またはコピーされてもよい。たとえば、OHCVは、可視性試験に従って点266が見えると判定したことに応答して、可視性結果(visibility result)を隣接する点267、268、269に伝搬させることができる。したがって、点266のみを可視性に関して明示的に試験したが、点266の結果の伝搬後に、グリッドセクション260内のすべての4つの点266〜269に、266と同じまたは同様な可視性試験値/結果が割り当てられる。
【００３８】
一実施形態では、OHCVは、試験セクションの数、試験セクションのサイズ、または点のしきい値数のうちの1つまたは複数を調整パラメータとして利用して、OHCVを実行するシステムまたはハードウェアの所与の処理能力に適応する。たとえば、OHCVは、処理能力が比較的低いデバイス(たとえば、ローエンドモバイルデバイス)上では、より高性能のデバイス(たとえば、フラグシップまたは最先端のモバイルデバイス)と比較してより多くの可視性値を伝搬させる場合がある。実施形態によっては、OHCVは、伝搬すべきしきい値数の可視性値および/またはグリッド構成設定を指定する信頼度構成設定を参照してもよい。
【００３９】
図2Lは、一実施形態における、可視性試験によって発見された遮蔽点を示す図である。たとえば、可視性試験では、深度マップから見つけられる遮蔽点だけでなく、キーフレーム内の残りの遮蔽点を発見することができる。図2Lに示されているように、遮蔽される点は、オブジェクト205の前方のボックスの再構成されていないセクションである。
【００４０】
図2Mは、一実施形態における、入力キーフレームから抽出すべき新しい画像点を示す。OHCVは、最終的な見えるマップ点280の抽出を回避し、ボックスの正面から点275を抽出することができる。図2Hとは対照的に、OHCVは、再構成によって(たとえば、オブジェクト205によって覆われる領域における)見えないマップ点との重なり合いを回避することができるように見えるマップ点を正しく検出できている。
【００４１】
図3は、一実施形態における、コンピュータビジョンに関する遮蔽処理の流れ図を示す。ブロック305において、実施形態(たとえば、OHCV)は、3Dマップから観測できるマップ点をキーフレームの点に投影し、この場合、キーフレームは関連するカメラ視点を有する画像を含む。
【００４２】
3Dマップ内の3D点およびカメラの位置(たとえば、キーフレーム視点)からの投影は、3D点がカメラ画像内のどこに現れるか(たとえば、カメラ/キーフレーム画像内の3D点)に関する計算を含む。投影のプロセスは、3D世界座標から得た3D点を3Dカメラ座標に変換し、次いで2Dカメラ空間内に投影し、次いで2Dピクセル空間に変換することを含んでもよい。たとえば、公式はmi=K*P(T*Mi)であってもよく、この場合、Miは3Dにおける点であり、Tはカメラ/キーフレーム姿勢行列であり、P()は、3D点を取り、z座標によって除算し、それによって2D点を得る投影関数であり、Kは、カメラ/キーフレーム較正行列であり、miは、カメラ/キーフレーム画像におけるMiの2Dピクセル座標である。
【００４３】
実施形態によっては、OHCVは、3Dマップ点を投影したことに応答してまたは投影することの一部として、3Dマップへのカメラ視点からどのキーフレーム点が観測できるか(たとえば、図2Cおよび図2Dに示す点211-1〜211-4)を判定する。たとえば、現在のカメラ視点からはすべての3Dマップ点を観測できるとは限らない。その理由は、すべての3Dマップ点がフレーム内に位置するとは限らないからである(たとえば、図2Cおよび図2Dに示す点209-1〜209-2)。
【００４４】
キーフレームは、画像内で検出される3D点(たとえば、3次元空間内の座標を有する点)を含んでもよい。たとえば、キーフレームは、カメラ画像を処理して画像内の1つまたは複数の特徴点を検出することによって決定されてもよい。一実施形態では、OHCVは、環境内の1つまたは複数のオブジェクトに関連する3Dマップ点を含む環境の3次元(3D)マップ(基準マップとも呼ばれる)を取得する。たとえば、3Dマップは、SLAMまたは他のコンピュータビジョンマッピングシステムから再構成されたマップであってもよい。基準マップ/再構成されたマップは、ローカルに(たとえば、デバイス100のメモリ164に)記憶され取り出されてもよい。実施形態によっては、3Dマップは、サーバまたは外部/リモートデバイスから受信され/取り込まれる。
【００４５】
ブロック310において、実施形態では、複数の深度マップ点を含む深度マップがキーフレームの点の各々から作成され、この場合、各深度マップ点が、キーフレームの関連するカメラ視点から、3Dマップから得たそれぞれのマップ点までの距離を表す値を含み、深度マップ点が複数のそれぞれのマップ点距離を表す場合、この値が複数のそれぞれのマップ点距離のうちの最短のものを含む、作成するステップを含んでもよい。たとえば、OHCVは、円の強度がカメラ視点から環境内の点までの距離を表す小さい円として3Dマップ点が表される深度画像を作成してもよい。遮蔽されたマップ点は、3Dマップ点の距離と深度マップからの深度を比較することによって検出されてもよい。たとえば、同じ3Dマップ点上に投影されるカメラ視点から観測できるキーフレーム点およびカメラ視点に最も近いそれぞれの3Dマップ距離が深度マップに記憶される。2つの点間の距離を比較した結果、カメラ視点からより遠い距離(たとえば、最長距離)に関連するキーフレーム点が遮蔽される点として判定される。深度マップフィルタ処理については、以下に図4に関してさらに詳細に説明する。
【００４６】
実施形態によっては、深度マップは、キーフレームをセクションに細分割することも含み、深度値を有するしきい値数の点がセクションの各々に割り振られる。さらに、各深度点のサイズは点の値に対して決定されてもよい。たとえば、より近い点(より小さい距離値)は、より遠い点(より大きい距離値)よりも大きく描かれてもよい。
【００４７】
ブロック315において、本実施形態は、キーフレーム内の潜在的可視点を特定し、この場合、潜在的可視点は、深度マップ内の代表的な距離を有するキーフレームの点を含む。たとえば、OHCVは、深度比較の結果を使用して、遮蔽されたマップ点を特定することができる。
【００４８】
ブロック320において、本実施形態は、画像内の可視性に関して試験すべき複数の潜在的可視点を選択する。実施形態によっては、複数の潜在的可視点を選択することは、キーフレームをセクションに細分割することを含み、各セクションは、可視性に関して試験すべきしきい値数のマップ点を含む。
【００４９】
ブロック325において、本実施形態は、選択された複数の潜在的可視点を可視性に関して試験し、この場合、試験は、複数の潜在的可視点の各々が、3Dマップから得た画像パッチに相当するキーフレームから得た周囲の画像パッチを含むかどうかを判定することを含む。可視性検証では、たとえば、現在の画像またはキーフレーム内の3Dマップ点画像パッチおよび周囲の画像パッチに関する対応を探索することによって見える(遮蔽されていない)3Dマップ点が見つけられる。OHCVは、選択された点および画像パッチに関する可視性試験を実行し、可視性結果を「近接する」または「隣接する」マップ点および画像パッチに伝搬させることができる(たとえば、可視または非可視の結果を割り当てる)。たとえば、点および画像パッチは、別の点が選択された点の近接度しきい値内にある場合にこの別の点に「近接する」または「隣接する」と定義されてもよい。近接度は、点から判定されてもあるいはパッチから判定されてもよい。たとえば、近接度は、2つの点の間のしきい値数のピクセルまたはその他の距離測定値に従う度合いであってもよく、あるいは画像パッチが、別の近傍の画像パッチ内のピクセルに隣接するしきい値数のピクセルを有するかどうかに従って判定されてもよい。一実施形態では、深度点に基づく事前フィルタ処理および近接度最適化によって、3D点および周囲の画像パッチの総数のサブセットが検証されてもよく、画像の可視性結果は、画像内の点および画像パッチのセット全体の各々を検証する必要なしに実現される。実施形態によっては、可視性試験の目標である点および関連する画像パッチの数は、グリッド方式によって限定される。たとえば、画像フレーム(たとえば、入力キーフレーム)がグリッドに分割されてもよく、各グリッド内に収まる点の数に対してしきい値数の可視性試験が実行される(たとえば、5つの点を含むグリッドは、しきい値数の3つの試験または他の何らかの数の点およびしきい値を有してもよい)。
【００５０】
実施形態によっては、試験すべき点の数は、グリッドを使用して最適化される。一実施形態では、グリッドのセクションの数または試験すべきしきい値数の3Dマップ点は、処理能力または信頼度設定に応じて設定可能である。たとえば、処理能力が低いデバイスは、デバイスがユーザの適切な視聴エクスペリエンスを実現するのに十分な速度でキーフレームを処理できるように効率に関して最適化された構成を有してもよい。処理能力が高いデバイスは、デバイスが、同じくユーザの適切な視聴エクスペリエンスを実現しつつさらなる可視性点を検証することができるように精度に関して最適化された構成を有してもよい。可視性試験については図5に関して以下により詳細に説明する。
【００５１】
実施形態によっては、選択された複数の潜在的可視点を可視性に関して試験することは、複数の潜在的可視点の各々が画像内に対応する点を有するかどうかの結果を、それぞれの潜在的可視点に隣接するしきい値数の点まで伝搬させることをさらに含む。
【００５２】
ブロック330において、本実施形態は、可視性試験の結果に従って環境をマッピングする。
【００５３】
実施形態によっては、OHCVは、OHCVホストデバイス(たとえば、デバイス100)の処理能力または信頼度設定に従って、上述の、可視性に関して試験すべきセクションの数、試験すべきしきい値数の潜在的可視点、可視性結果を伝搬させるべきしきい値数の隣接する点、深度値を有するしきい値数の点、またはそれらの任意の組合せのうちの1つまたは複数を設定することができる。たとえば、処理能力の低いデバイスは、より大きいセクションを有するように構成されてもよく、それによって、処理能力の高いデバイスと比較して試験すべきセクションの数が少なくなる。さらに、OHCVは、実際の処理能力にかかわらず、本明細書において説明する構成設定のうちのいくつかを調整することによって速度を優先して信頼度を高くするかまたは低くして実行するように構成されてもよい。
【００５４】
図4は、一実施形態におけるOHCV深度フィルタ処理の流れ図を示す。ブロック405において、本実施形態は、フィルタ処理すべきキーフレームを取得する。キーフレームは、画像内の要素またはオブジェクトに関連する点(たとえば、特徴点)を含んでもよい。一実施形態では、キーフレームを受信したことに応答して、深度マスク生成が初期設定される。たとえば、取得されるキーフレームは、図2Bに示すようなカメラビューであってもよい。
【００５５】
たとえば、キーフレームは、カメラセンサからのカメラ画像またはビデオフレームから処理されてもよい。キーフレームは、キャプチャされた画像のカメラ視点(たとえば、姿勢)に関する情報を含んでもよい。OHCVは、キーフレームを作成すべき入力画像から特徴を抽出してもよい。本明細書において使用されている特徴(たとえば特徴点または関心ポイント)は、画像の関心対象となる部分または注目すべき部分である。キャプチャされた画像から抽出される特徴は、三次元空間(たとえば軸X、YおよびZ上の座標)に沿った互いに別個の点を表してもよく、また、すべての特徴点は、関連する特徴ロケーションを有してもよい。キーフレーム内の特徴は、すでにキャプチャされたキーフレームの特徴と整合するかまたは整合しないかのいずれかである(すなわち、すでにキャプチャされたキーフレームの特徴と同じであるか、あるいはこの特徴に対応する)。特徴検出は、すべてのピクセルを調べて、特定のピクセルに特徴が存在しているかどうかを判定するための画像処理動作であってもよい。特徴検出は、キャプチャされた画像全体を処理してもよく、代替的に、キャプチャされた画像の特定の部分または一部を処理してもよい。
【００５６】
キャプチャされた画像またはビデオフレームごとに特徴が検出されると、その特徴の周囲の局所画像パッチを抽出することができる。特徴を位置決定し、それらの記述を生成する、スケール不変特徴変換(SIFT: Scale Invariant Feature Transform)のようなよく知られている技法を使用して、特徴が抽出されてもよい。必要に応じて、スピードアップロバストフィーチャーズ(SURF: Speed Up Robust Features)、勾配位置-配向ヒストグラム(GLOH: Gradient Location-Orientation histogram)、正規化相互相関(NCC)または他の匹敵する技法などの他の技法が使用されてもよい。ある画像に対して抽出された特徴の数がしきい値(たとえば100点特徴または他の数の点)を超えていることが判定されたときは、その画像および特徴をキーフレームとして保存することができる。
【００５７】
一実施形態では、OHCVは、基準マップ(たとえば、コンピュータビジョンマッピングシステムによって作成され維持される3Dマップ)の再構成された(たとえば、3Dマップ)点および特徴点から得た3D座標から、これらの点を現在のカメラ姿勢(たとえば、現在のキーフレームに関連するカメラ視点)に投影する。各キーフレーム点は、画像/キーフレーム上の2D座標に関する距離を有する。
【００５８】
ブロック410において、本実施形態は、場合によっては距離に応じて深度点サイズを決定してもよい。たとえば、図2Fは、深度点サイズ決定を示しており、より大きい点は、カメラ視点により近い画像の部分を示し、より小さい点は、カメラ視点からより遠い画像の部分を示す。
【００５９】
ブロック415において、本実施形態は、グリッドによってキーフレームを分割する。たとえば、OHCVは、キーフレームを、深度点計算ができるように等しいサイズのセクションに分離してもよい。一実施形態では、各セクションは、設定可能な数の深度点を有してもよい。
【００６０】
ブロック420において、本実施形態は、比較すべきグリッドセクションを選択する。OHCVは、すべてのセクションが処理されるまで、セクションを選択し、そのセクション内の点を処理し、その後次のセクションを選択してもよい。
【００６１】
ブロック425において、本実施形態は、マップ点距離を深度マスク距離と比較する。上記において紹介したように、OHCVは、図2Eまたは図2Fに示すマスクなどの深度マスクを決定してもよい。OHCVは、3Dマップ点の距離を深度マップにおける等価点と比較し、マスクピクセルよりも遠い点(現在のカメラ姿勢において遮蔽される点)を見つけてもよい。OHCVが、どの点が遮蔽されるかを判定すると、深度マップ内のすべての点に同じサイズ(たとえば、5つのピクセルまたは他の何らかの構成可能な値の半径を有する円)が割り当てられる。実施形態によっては、円は、距離値に応じて異なる半径を有してもよい。たとえば、より遠い点についてはより小さい円が与えられる。2つの点が非常に近接しているが、一方の点の円が他方の点を完全にはオーバードローしない場合、他方の点は遮蔽されないと見なされる。このことは、両方の点が(その円も同じサイズを有する場合があるので)厳密に同じピクセル座標上に投影される場合に生じることがある。しかし、多数の点がある場合、たとえば、互いに近接する3つの点が、(より遠くに離れた)別の点も覆う領域全体を覆うことがある。したがって、覆われる点の円は、それらの他の3つの点によって完全に覆われており、その場合、覆われる点は遮蔽されると見なされる。
【００６２】
ブロック430において、本実施形態は、現在のセクション内の別の点を処理すべきかどうかを判定する。たとえば、各セクションは、比較されるいくつかの点を有してもよく、OHCVは、あるグリッドセクションが比較されるまで各点を反復してもよい。
【００６３】
ブロック435において、本実施形態は、グリッド内のあるセクションが完了したと判定し、別のセクションを比較すべきであるかどうかを判定する。別の比較が待ち行列に入っている場合、本実施形態は、ブロック320に戻って次に比較するセクションを選択する。待ち行列に別の比較が入っていない場合、本実施形態は、ブロック340に進み、フィルタ処理された結果を出力する。
【００６４】
図5は、一実施形態におけるOHCV可視性試験の流れ図を示す。ブロック505において、本実施形態(たとえば、OHCV)は、図3に関して説明した深度フィルタ処理から残りの点を受け取る。
【００６５】
ブロック510において、本実施形態は、グリッドによってキーフレームを分割する。一実施形態では、OHCVは、グリッドのセクションに従って試験すべきセクションを配置することによって計算時間を調整するのを可能にする。グリッドのセクションごとに、構成可能な設定によって、セクション内のいくつの点を処理するかを決定することができる。たとえば、セクション内に1000個の点が存在する場合があるが、この構成では最大で100個の点を処理するように設定してもよい。一実施形態では、許容可能な点が不規則に分散されてもよい。他の実施形態ででは、処理すべき許容可能な点はグリッドのセクション全体にわたって十分に分散されてもよい。
【００６６】
ブロック515において、本実施形態は、可視性試験を施されるグリッドセクションを選択する。たとえば、本実施形態は、すべてのセクションが試験されるまで各セクションを反復してもよい。
【００６７】
ブロック520において、本実施形態は、ある点を可視性に関して試験する。可視性試験の設定に応じて、セクション内の各点が試験されてもよく、あるいは各点のサブセクションが試験されてもよい。
【００６８】
ブロック525において、本実施形態は、可視性試験結果をブロック420から近接する点に伝搬させる。たとえば、見える点を検出したことに応答して、見える点に近接する他の点も見えると仮定される。さらに、遮蔽される点に近接する点は遮蔽されると仮定される。したがって、可視性試験は、試験すべきすべての潜在的な点のサブセットに対して実行され、全体的な可視性試験時間が短縮され、プロセッサ要件が低減する。
【００６９】
ブロック530において、本実施形態は、グリッドセクション内に試験すべき別の点が残っているかどうかを判定する。セクション内の試験すべきさらなるグリッド点が待ち行列に入っている場合、本実施形態はブロック520に戻る。
【００７０】
ブロック535において、本実施形態は、グリッドのあるセクションの処理を終了し、試験すべき別のセクションが待ち行列に入っているかどうかを判定する。別のセクションを試験すべきである場合、本実施形態はブロック515に戻る。
【００７１】
ブロック540において、本実施形態は、キーフレーム可視性結果を出力する。たとえば、出力はバイナリ遮蔽マスク画像であってもよい。
【００７２】
上述のように、デバイス100は、携帯型電子デバイス(たとえばスマートフォン、専用拡張現実感(AR)デバイス、ゲームデバイス、眼鏡などの着用可能デバイス、またはAR処理能力および表示能力を有する他のデバイス)であってもよい。本明細書において説明するARシステムを実装するデバイスは、ショッピングモール、道路、部屋、またはユーザが携帯型デバイスを持っていくことができるあらゆる場所などの様々な環境において使用されてもよい。ARでは、ユーザは、デバイス100を使用して、自分のデバイスのディスプレイを通して実世界の表現を見る場合がある。ユーザは、自分のデバイスのカメラを使用して実世界画像/ビデオを受け取り、かつ、デバイス上に表示された実世界画像/ビデオの上に追加情報または代替情報を重ね合わせ、すなわち、重畳させることにより、自分のAR対応デバイスと対話してもよい。ユーザが、自分のデバイス上で実現されるARを見る際に、実世界のオブジェクトまたはシーンがデバイスディスプレイ上でリアルタイムに置き換えられるか、または変更されてもよい。仮想オブジェクト(たとえばテキスト、画像、ビデオ)が、デバイスディスプレイ上に示されたシーンの表現に挿入されてもよい。
【００７３】
デバイス100およびカメラ114が移動すると、ディスプレイは、3Dマップ内の目標(たとえば1つまたは複数のオブジェクトまたはシーン)の拡張をリアルタイムに更新することができる。デバイスが初期基準画像位置から離れると、デバイスは、代替ビューから追加画像をキャプチャすることができる。特徴を抽出し、かつ、追加キーフレームを三角行列化すると、拡張の精度を高めることができる(たとえばオブジェクトの周囲の境界をより正確に適合させることができ、シーン内のオブジェクトの表現がより現実的に見えるようになり、また、目標をカメラ114姿勢に対してより正確に配置することができる)。
【００７４】
一実施形態では、カメラ114によってキャプチャされ、かつ、ディスプレイ112上に表示されたビデオストリーム(または画像)に、オブジェクトまたは図形を挿入し、あるいは統合することができる。OHCVは、場合によっては、目標を拡張するための追加情報をユーザに促す場合がある。たとえばユーザは、ユーザコンテンツを追加して目標の表現を拡張することができる。ユーザコンテンツは、画像、3Dオブジェクト、ビデオ、テキスト、あるいは目標の表現と統合するかまたは重畳するかまたは置き換わることができる他のコンテンツタイプであってもよい。
【００７５】
ディスプレイは、シームレスな追跡によって元のシーンをリアルタイムに更新してもよい。たとえばサイン上のテキストは、代替テキストと置き換えられてもよく、あるいは3Dオブジェクトは、戦略的にシーン内に配置されデバイス100上に表示されてもよい。ユーザがカメラ114の姿勢を変更すると、図形またはオブジェクトをカメラ114の相対移動に整合するように調整または拡張することができる。たとえば仮想オブジェクトが拡張現実ディスプレイに挿入される場合、カメラが仮想オブジェクトから離れることによって、カメラ114が移動した距離に比例して仮想オブジェクトのサイズを小さくすることができる。たとえば仮想オブジェクトから4ステップ後退すると、仮想オブジェクトから半ステップ後退する場合と比較して、他のすべての変数が等しい状態で、より大幅に仮想オブジェクトのサイズが小さくなる。モーショングラフィックスまたはアニメーションは、OHCVによって表されるシーン内にアニメーション化することができる。たとえば、アニメーション化されたオブジェクトは、拡張現実ディスプレイ内に示されたシーン内で「動く」ことができる。本明細書において説明する実施形態が、AR以外の方法(たとえばロボット位置決め)で実施することができることが、当業者には認識されよう。
【００７６】
OHCVは、ソフトウェア、ファームウェア、ハードウェア、モジュールまたはエンジンとして実装されてもよい。一実施形態では、上記のOHCVの説明は、前述の所望の機能(たとえば、少なくとも図3、図4、および図5に示す機能)を実現するようにデバイス100内の汎用プロセッサ161によって実施されてもよい。他の実施形態では、前述の副構成要素のうちの1つまたは複数の副構成要素の特徴がそれぞれに異なる個々の構成要素、モジュールまたはエンジンとして組み合わされるかあるいは区分されてもよい。
【００７７】
情報および信号が様々な異なる技術および技法のいずれを使用して表されてもよいことは、当業者であれば理解されよう。たとえば、上記の説明全体を通して言及されることがあるデータ、命令、指令、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されることがある。
【００７８】
本明細書において開示された実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、エンジン、回路およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実装されてもよいことが、当業者にはさらに理解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、エンジン、回路およびステップについて、上記では、概してそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、システム全体に課される具体的な用途および設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装上の決定は本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００７９】
本明細書において開示された実施形態に関連して説明した種々の例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ(たとえば、プロセッサ161)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別のゲートもしくはトランジスタロジック、個別のハードウェア構成要素、または本明細書において説明した機能を果たすように設計されたこれらの任意の組合せを用いて実装されるか、または実行される場合がある。汎用プロセッサは、マイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実現される場合もある。
【００８０】
本明細書において開示された(たとえば、図3〜図5に示されるような)実施形態に関連して説明した方法またはアルゴリズムのステップは、ハードウェアとして直接的に具現化されるか、あるいはプロセッサによって実行されるソフトウェアモジュールとして具現化されるか、あるいはその2つの組合せとして具現化されることがある。ソフトウェアモジュールまたは他のプログラム命令がランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、フラッシュメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、DVD-ROM、ブルーレイ、または当技術分野において公知である任意の他の形態の記憶媒体に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出すことができ、かつ、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサに一体化されてもよい。プロセッサおよび記憶媒体は、ASICに存在する場合がある。ASICは、ユーザ端末に存在してもよい。代替形態では、プロセッサおよび記憶媒体は、個別構成要素としてユーザ端末内に存在してもよい。
【００８１】
1つまたは複数の例示的実施形態では、前述の機能またはモジュールは、ハードウェア(たとえばハードウェア162)、ソフトウェア(たとえばソフトウェア165)、ファームウェア(たとえばファームウェア163)またはそれらの任意の組合せを含むデータ処理デバイスに実装されてもよい。コンピュータプログラム製品としてソフトウェアに実装される場合、機能またはモジュールは、コンピュータ可読媒体(たとえば、非一時的機械可読記憶媒体)上の1つまたは複数の命令またはコードとして記憶されても、あるいはそれらの命令またはコードを介して伝送されてもよい。コンピュータ可読媒体は、ある場所から別の場所への実行可能なコンピュータプログラムの転送を容易にする任意の媒体または物品を含む、コンピュータ記憶媒体と通信媒体の両方を含むことが可能である。記憶媒体は、コンピュータまたはデータ処理デバイス/システムによってアクセスすることができる任意の利用可能な媒体であってもよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用することができ、かつコンピュータによってアクセスすることができる任意の他の媒体を含むことが可能である。さらに、任意の接続を実行可能なコンピュータ可読媒体と呼ぶことも妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するとき、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、
ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体の範囲内に含まれるべきである。
【００８２】
開示した実施形態の先の説明は、当業者が本発明を作成または使用することができるように提示されている。これらの実施形態に対する様々な変更形態が、当業者には容易に明らかとなり、本明細書において規定される一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用される場合がある。したがって、本発明は、本明細書に示す実施形態に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００８３】
100  デバイス
111  センサ
112  ディスプレイ
114  カメラ
140  トランシーバ
150  ユーザインターフェース
152  キーパッド
154  マイクロフォン
160  制御ユニット
161  汎用プロセッサ
162  ハードウェア
163  ファームウェア
164  メモリ
165  ソフトウェア
170  遮蔽処理コンピュータビジョン
173  SLAMモジュール
177  バス
200  環境
202  可視領域の左境界
203  カメラ中心
204  カメラ画像平面
205  再構成されたオブジェクト
206  可視領域の右境界
207  視線方向
215  未再構成オブジェクト
220  点
235  マップ点
238  画像パッチ
239  探索領域
260  グリッドセクション
266  点
267  隣接する点
280  最終的な見えるマップ点
KPi  キーフレーム点
Ki  キーフレーム
PVi  潜在的可視点
T0  時間
T1  時間
【図１】
2018507476.tif 000003
【図２Ａ】
2018507476.tif 000004
【図２Ｂ】
2018507476.tif 000005
【図２Ｃ】
2018507476.tif 000006
【図２Ｄ】
2018507476.tif 000007
【図２Ｅ】
2018507476.tif 000008
【図２Ｆ】
2018507476.tif 000009
【図２Ｇ】
2018507476.tif 000010
【図２Ｈ】
2018507476.tif 000011
【図２Ｉ】
2018507476.tif 000012
【図２Ｊ】
2018507476.tif 000013
【図２Ｋ】
2018507476.tif 000014
【図２Ｌ】
2018507476.tif 000015
【図２Ｍ】
2018507476.tif 000016
【図３】
2018507476.tif 000017
【図４】
2018507476.tif 000018
【図５】
2018507476.tif 000019
【国際調査報告】
2018507476.tif 000020
2018507476.tif 000021