(57)【要約】  開示される実施形態は、複合現実感のための装置、システム、および方法に関する。いくつかの実施形態では、ライブ画像内の追跡されるオブジェクトに対する相対的なカメラ姿勢が、判定され、追跡されるオブジェクトなしの3Dモデル内のキーフレームから合成画像をレンダリングするのに使用され得る。合成画像のサブセットに対する相対的な第1のマスク領域内の画素のオプティカルフローの大きさが、判定され得、オプティカルフローの大きさは、第1のマスク内の画素に対応する合成画像のサブセットの各々内の画素を判定するのに使用され得る。第1のマスク内の画素ごとに、対応する置換画素が、第1のマスク内の対応する画素に対応する合成画像のサブセット内の画素の関数として判定され得る。
2016522485.tif 000002
【特許請求の範囲】
【請求項１】
複数のライブ画像を入手するステップであって、前記ライブ画像は、追跡されるオブジェクトを含む、入手するステップと、
前記複数のライブ画像内のライブ画像について、前記追跡されるオブジェクトに対する相対的なカメラ姿勢を判定するステップと、
前記カメラ姿勢に基づいて、前記追跡されるオブジェクトなしの複数の合成画像をレンダリングするステップであって、各合成画像は、3Dモデル内の別個のキーフレームから入手される、レンダリングするステップと、
前記追跡されるオブジェクトに関連する第1のマスク領域を判定するために、前記ライブ画像と前記合成画像とを比較するステップと、
前記複数の合成画像内の合成画像のサブセットに対する相対的な前記追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフローの大きさを計算するステップと、
前記第1のマスク領域内の前記複数の画素の各々について、前記オプティカルフローの大きさに部分的に基づいて合成画像の前記サブセットの各々内の対応する画素を判定するステップと、
前記第1のマスク領域内の前記複数の画素の各々の置換画素を判定するステップであって、各置換画素は、前記第1のマスク領域内の別個の画素に対応し、各置換画素は、前記第1のマスク領域内の画素に対応する合成画像の前記サブセット内の前記対応する画素の関数として判定される、判定するステップと
を含む方法。
【請求項２】
隠消現実感画像をレンダリングするステップをさらに含み、前記隠消現実感画像は、前記置換画素に少なくとも部分的に基づいて入手する、請求項1に記載の方法。
【請求項３】
前記第1のマスクによって示される画像内の領域内に仮想オブジェクトをレンダリングするステップをさらに含み、前記仮想オブジェクトは、現在のカメラ姿勢に基づいてレンダリングされる、請求項2に記載の方法。
【請求項４】
前記第1のマスクによって示される前記画像内の前記領域内に前記仮想オブジェクトをレンダリングするステップは、
前記画像内の少なくとも1つの既知の現実のオブジェクトの仮想表現を仮想zバッファ内にレンダリングするステップであって、前記現実のオブジェクトは、少なくとも部分的に前記第1のマスク内にある、レンダリングするステップと、
前記少なくとも1つの既知の現実のオブジェクトと前記仮想zバッファ内の前記仮想オブジェクトとの間のオクルージョンを解決するステップと、
前記画像と一致するように前記仮想zバッファをワープさせるステップであって、前記ワープさせるステップは、前記少なくとも1つの既知の現実のオブジェクトの前記仮想表現と前記画像内の前記少なくとも1つの既知の現実のオブジェクトとの間のオプティカルフローに部分的に基づく、ワープさせるステップと
を含む、請求項3に記載の方法。
【請求項５】
合成画像の前記サブセットの各々内の対応する画素を判定するステップは、
前記第1のマスク内の前記複数の画素の各々について、前記オプティカルフローに基づいて変位と輝度補正とを入手するステップ
を含む、請求項1に記載の方法。
【請求項６】
各置換画素は、合成画像の前記サブセット内の対応する画素の加重平均として判定され、前記サブセット内の合成画像内の対応する画素に関連する重みは、前記対応する画素の前記オプティカルフローの大きさと、前記ライブ画像と前記対応する画素に関連する前記合成画像との間の角変位とに基づく
請求項1に記載の方法。
【請求項７】
前記第1のマスク(M')領域は、前記追跡されるオブジェクトの回りの第2のマスク領域(M)を含み、M内の各置換画素の前記オプティカルフローの大きさは、境界M'-Mからの散乱データ補間によって判定される、請求項6に記載の方法。
【請求項８】
前記複数の合成画像および前記複数の合成画像の前記サブセットは、それぞれ、3つの合成画像を含む、請求項1に記載の方法。
【請求項９】
Simultaneous Localization and Mapping (SLAM)追跡技法が、前記カメラ姿勢を判定するのに使用される、請求項1に記載の方法。
【請求項１０】
追跡されるオブジェクトを含む複数のライブ画像をキャプチャするように構成されたカメラと、
複数のキーフレームを含む3Dモデルを記憶するためのメモリと、
前記カメラおよび前記メモリに結合されたプロセッサであって、
前記複数の画像内のライブ画像について、前記追跡されるオブジェクトに対する相対的なカメラ姿勢を判定し、
前記カメラ姿勢に基づいて、前記追跡されるオブジェクトなしの複数の合成画像をレンダリングし、各合成画像は、別個のキーフレームから入手され、
前記追跡されるオブジェクトに関連する第1のマスク領域を判定するために、前記ライブ画像と前記合成画像とを比較し、
前記複数の合成画像内の合成画像のサブセットに対する相対的な前記追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフローの大きさを計算し、
前記第1のマスク領域内の前記複数の画素の各々について、前記オプティカルフローの大きさに部分的に基づいて合成画像の前記サブセットの各々内の対応する画素を判定し、
前記第1のマスク領域内の前記複数の画素の各々の置換画素を判定し、各置換画素は、前記第1のマスク領域内の別個の画素に対応し、各置換画素は、前記第1のマスク領域内の前記画素に対応する合成画像の前記サブセット内の前記対応する画素の関数として判定される
ように構成されたプロセッサと
を含む移動局(MS)。
【請求項１１】
前記プロセッサは、
隠消現実感画像をレンダリングし、前記隠消現実感画像は、前記置換画素に少なくとも部分的に基づく
ようにさらに構成される、請求項10に記載のMS。
【請求項１２】
前記プロセッサは、
前記第1のマスクによって示される画像内の領域内に仮想オブジェクトをレンダリングし、前記仮想オブジェクトは、現在のカメラ姿勢に基づいてレンダリングされる
ようにさらに構成される、請求項11に記載のMS。
【請求項１３】
前記第1のマスクによって示される前記画像内の前記領域内に前記仮想オブジェクトをレンダリングするために、前記プロセッサは、
前記画像内の少なくとも1つの既知の現実のオブジェクトの仮想表現を仮想zバッファ内にレンダリングし、前記現実のオブジェクトは、少なくとも部分的に前記第1のマスク内にあり、
前記少なくとも1つの既知の現実のオブジェクトと前記仮想zバッファ内の前記仮想オブジェクトとの間のオクルージョンを解決し、
前記画像と一致するように前記仮想zバッファをワープさせ、前記ワープさせるステップは、前記少なくとも1つの既知の現実のオブジェクトの前記仮想表現と前記画像内の前記少なくとも1つの既知の現実のオブジェクトとの間のオプティカルフローに部分的に基づく
ように構成される、請求項12に記載のMS。
【請求項１４】
合成画像の前記サブセットの各々内の対応する画素を判定するために、前記プロセッサは、
前記第1のマスク内の前記複数の画素の各々について、前記オプティカルフローに基づいて変位と輝度補正とを入手する
ように構成される、請求項10に記載のMS。
【請求項１５】
各置換画素は、合成画像の前記サブセット内の対応する画素の加重平均として判定され、前記サブセット内の合成画像内の対応する画素に関連する重みは、前記対応する画素の前記オプティカルフローの大きさと、前記ライブ画像と前記対応する画素に関連する前記合成画像との間の角変位とに基づく
請求項10に記載のMS。
【請求項１６】
前記第1のマスク(M')領域は、前記追跡されるオブジェクトの回りの第2のマスク領域(M)を含み、M内の各置換画素の前記オプティカルフローの大きさは、境界M'-Mからの散乱データ補間によって判定される
請求項15に記載のMS。
【請求項１７】
前記複数の合成画像および前記複数の合成画像の前記サブセットは、それぞれ、3つの合成画像を含む、請求項10に記載のMS。
【請求項１８】
前記プロセッサは、Simultaneous Localization and Mapping (SLAM)追跡技法を使用して前記カメラ姿勢を判定するように構成される、請求項10に記載のMS。
【請求項１９】
追跡されるオブジェクトを含む複数の画像をキャプチャするための、画像化手段と、
複数のキーフレームを含む3Dモデルを記憶するためのストレージ手段と、
前記画像化手段および前記ストレージ手段に結合された処理手段であって、
前記複数のライブ画像内のライブ画像について、前記追跡されるオブジェクトに対する相対的な画像化手段姿勢を判定するための手段と、
前記画像化手段姿勢に基づいて、前記追跡されるオブジェクトなしの複数の合成画像をレンダリングするための手段であって、各合成画像は、別個のキーフレームから入手される、レンダリングするための手段と、
前記追跡されるオブジェクトに関連する第1のマスク領域を判定するために、前記ライブ画像と前記合成画像とを比較するための手段と、
前記複数の合成画像内の合成画像のサブセットに対する相対的な前記追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフローの大きさを計算するための手段と、
前記第1のマスク内の前記複数の画素の各々について、前記オプティカルフローの大きさに部分的に基づいて合成画像の前記サブセットの各々内の対応する画素を判定するための手段と、
前記第1のマスク内の前記複数の画素の各々の置換画素を判定するための手段であって、各置換画素は、前記第1のマスク内の別個の画素に対応し、各置換画素は、前記第1のマスク内の前記画素に対応する合成画像の前記サブセット内の前記対応する画素の関数として判定される、判定するための手段と
をさらに含む、処理手段と
を含む装置。
【請求項２０】
前記処理手段は、
隠消現実感画像をレンダリングするための手段であって、前記隠消現実感画像は、前記置換画素に少なくとも部分的に基づく、レンダリングするための手段
をさらに含む、請求項19に記載の装置。
【請求項２１】
前記処理手段は、
前記第1のマスクによって示される画像内の領域内に仮想オブジェクトをレンダリングするための手段であって、前記仮想オブジェクトは、現在の画像化手段姿勢に基づいてレンダリングされる、レンダリングするための手段
をさらに含む、請求項20に記載の装置。
【請求項２２】
前記第1のマスクによって示される前記画像内の前記領域内に前記仮想オブジェクトをレンダリングするための手段は、
前記画像内の少なくとも1つの既知の現実のオブジェクトの仮想表現を仮想zバッファ内にレンダリングするための手段であって、前記現実のオブジェクトは、少なくとも部分的に前記第1のマスク内にある、レンダリングするための手段と、
前記少なくとも1つの既知の現実のオブジェクトと前記仮想zバッファ内の前記仮想オブジェクトとの間のオクルージョンを解決するための手段と、
前記画像と一致するように前記仮想zバッファをワープさせるための手段であって、ワープさせることは、前記少なくとも1つの既知の現実のオブジェクトの前記仮想表現と前記画像内の前記少なくとも1つの既知の現実のオブジェクトとの間のオプティカルフローに部分的に基づく、ワープさせるための手段と
を含む、請求項21に記載の装置。
【請求項２３】
各置換画素は、合成画像の前記サブセット内の対応する画素の加重平均として判定され、前記サブセット内の合成画像内の対応する画素に関連する重みは、前記対応する画素の前記オプティカルフローの大きさと、前記ライブ画像と前記対応する画素に関連する前記合成画像との間の角変位とに基づく
請求項19に記載の装置。
【請求項２４】
プロセッサによって実行された時に、
複数のライブ画像を入手するステップであって、前記ライブ画像は、追跡されるオブジェクトを含む、入手するステップと、
前記複数のライブ画像内のライブ画像について、前記追跡されるオブジェクトに対する相対的なカメラ姿勢を判定するステップと、
前記カメラ姿勢に基づいて、前記追跡されるオブジェクトなしの複数の合成画像をレンダリングするステップであって、各合成画像は、前記カメラ姿勢に基づいて3Dモデル内の別個のキーフレームから入手される、レンダリングするステップと、
前記追跡されるオブジェクトに関連する第1のマスク領域を判定するために、前記ライブ画像と前記合成画像とを比較するステップと、
前記複数の合成画像内の合成画像のサブセットに対する相対的な前記追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフローの大きさを計算するステップと、
前記第1のマスク領域内の前記複数の画素の各々について、前記オプティカルフローの大きさに部分的に基づいて合成画像の前記サブセットの各々内の対応する画素を判定するステップと、
前記第1のマスク領域内の前記複数の画素の各々の置換画素を判定するステップであって、各置換画素は、前記第1のマスク領域内の別個の画素に対応し、各置換画素は、前記第1のマスク領域内の前記画素に対応する合成画像の前記サブセット内の前記対応する画素の関数として判定される、判定するステップと
を含む方法内のステップを実行する命令を含む非一時的コンピュータ可読媒体。
【請求項２５】
隠消現実感画像をレンダリングするステップをさらに含み、前記隠消現実感画像は、前記置換画素に少なくとも部分的に基づいて入手する、請求項24に記載の非一時的コンピュータ可読媒体。
【請求項２６】
前記第1のマスクによって示される画像内の領域内に仮想オブジェクトをレンダリングするステップをさらに含み、前記仮想オブジェクトは、現在のカメラ姿勢に基づいてレンダリングされる、請求項25に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記第1のマスクによって示される前記画像内の前記領域内に前記仮想オブジェクトをレンダリングするステップは、
前記画像内の少なくとも1つの既知の現実のオブジェクトの仮想表現を仮想zバッファ内にレンダリングするステップであって、前記現実のオブジェクトは、少なくとも部分的に前記第1のマスク内にある、レンダリングするステップと、
前記少なくとも1つの既知の現実のオブジェクトと前記仮想zバッファ内の前記仮想オブジェクトとの間のオクルージョンを解決するステップと、
前記画像と一致するように前記仮想zバッファをワープさせるステップであって、前記ワープさせるステップは、前記少なくとも1つの既知の現実のオブジェクトの前記仮想表現と前記画像内の前記少なくとも1つの既知の現実のオブジェクトとの間のオプティカルフローに部分的に基づく、ワープさせるステップと
を含む、請求項26に記載の非一時的コンピュータ可読媒体。
【請求項２８】
合成画像の前記サブセットの各々内の対応する画素を判定するステップは、
前記第1のマスク内の前記複数の画素の各々について、前記オプティカルフローに基づいて変位と輝度補正とを入手するステップ
を含む、請求項24に記載の非一時的コンピュータ可読媒体。
【請求項２９】
各置換画素は、合成画像の前記サブセット内の対応する画素の加重平均として判定され、前記サブセット内の合成画像内の対応する画素に関連する重みは、前記対応する画素の前記オプティカルフローの大きさと、前記ライブ画像と前記対応する画素に関連する前記合成画像との間の角変位とに基づく
請求項24に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記第1のマスク(M')領域は、前記追跡されるオブジェクトの回りの第2のマスク領域(M)を含み、M内の各置換画素の前記オプティカルフローの大きさは、境界M'-Mからの散乱データ補間によって判定される、請求項29に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、両方が参照によってその全体が本明細書に組み込まれている、2013年4月30日に出願した米国特許仮出願第61/817792号、名称「Diminished and Mediated Reality Effects from Reconstruction」の利益および優先権を主張する、2014年3月25日に出願した米国特許出願第14/225157号、名称「Diminished and Mediated Reality Effects from Reconstruction」の利益および優先権を主張するものである。
【０００２】
本開示は、全般的には複合現実感の装置、システム、および方法に関する。
【背景技術】
【０００３】
コンピュータビジョンおよびコンピュータグラフィックスでは、3次元(「3D」)再構成は、現実のオブジェクトおよび/または環境の形状および/または外見を判定するプロセスである。一般に、3Dモデルという用語は、本明細書で、デバイスによってモデル化されつつある3D環境の表現を指すのに使用される。3D再構成は、カメラを含む様々なタイプのセンサから入手されたオブジェクトのデータおよび/または画像に基づくものとすることができる。たとえば、ハンドヘルドカメラを使用して、小さい3Dシーンに関する情報を獲得し、そのシーンの近似仮想モデルを作ることができる。
【０００４】
拡張現実感(AR)アプリケーションおよび複合現実感(MR)アプリケーションは、しばしば、3D再構成に関連して使用される。ARでは、現実の画像を処理して、その画像に仮想オブジェクトを追加することができる。複合現実感(MR)では、隠消現実感(Diminished Reality)または媒介現実感(Mediated Reality)などの効果を、画像内のオブジェクトを除去し、かつ/または変更するために、既存のシーンの3Dモデルに基づいて実施することができる。隠消現実感では、現実のオブジェクトがシーンからシームレスに除去されるが、媒介現実感では、現実のオブジェクトが、仮想オブジェクトによってシームレスに置換される。従来のリアルタイムまたは近リアルタイムのAR/MR法は、現在の画像の諸部分が除去されるべきオブジェクトの上にコピーされるインペインティング(inpainting)技法が使用される場合があるので、しばしば、最適未満に動作する。インペインティングは、アーティファクトを引き起こす可能性があり、このアーティファクトは、シーン再構成とライブカメラ追跡とにおける正確さの欠如および/または他の誤差から悪化する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、より最適なユーザ経験を達成するために、レンダリングされたMR画像の品質を高める画像処理方法の必要がある。
【課題を解決するための手段】
【０００６】
いくつかの態様によれば、複合現実感アプリケーションの方法が開示される。いくつかの実施形態によれば、この方法は、複数のライブ画像を入手するステップであって、ライブ画像は、追跡されるオブジェクトを含む、入手するステップと、複数のライブ画像内のライブ画像について、追跡されるオブジェクトに対する相対的なカメラ姿勢を判定するステップとを含むことができる。追跡されるオブジェクトなしの複数の合成画像が、レンダリングされ得、各合成画像は、カメラ姿勢に基づいて3Dモデル内の別個のキーフレームから入手される。追跡されるオブジェクトに関連する第1のマスク領域を判定するために、ライブ画像と合成画像とが、比較され得、オプティカルフロー大きさが、複数の合成画像内の合成画像のサブセットに対する相対的な追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素について計算され得る。第1のマスク内の複数の画素の各々について、合成画像のサブセットの各々内の対応する画素が、オプティカルフロー大きさに部分的に基づいて判定され得、置換画素が、第1のマスク内の複数の画素の各々について判定され得、各置換画素は、第1のマスク内の別個の画素に対応し、各置換画素は、第1のマスク内の画素に対応する合成画像のサブセット内の対応する画素の関数として判定される。
【０００７】
別の態様では、移動局(MS)は、追跡されるオブジェクトを含む複数のライブ画像をキャプチャするように構成されたカメラと、複数のキーフレームを含む3Dモデルを記憶するためのメモリと、カメラおよびメモリに結合されたプロセッサとを含むことができる。いくつかの実施形態では、プロセッサは、複数のライブ画像内のライブ画像について、追跡されるオブジェクトに対する相対的なカメラ姿勢を判定し、追跡されるオブジェクトなしの複数の合成画像をレンダリングし、各合成画像は、カメラ姿勢に基づいて、3Dモデル内の別個のキーフレームから入手され、追跡されるオブジェクトに関連する第1のマスク領域を判定するために、ライブ画像と合成画像とを比較し、複数の合成画像内の合成画像のサブセットに対する相対的な追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフロー大きさを計算し、第1のマスク内の複数の画素の各々について、オプティカルフロー大きさに部分的に基づいて合成画像のサブセットの各々内の対応する画素を判定し、第1のマスク内の複数の画素の各々の置換画素を判定し、各置換画素は、第1のマスク内の別個の画素に対応し、各置換画素は、第1のマスク内の画素に対応する合成画像のサブセット内の対応する画素の関数として判定されるように構成され得る。
【０００８】
さらなる態様では、装置は、追跡されるオブジェクトを含む複数の画像をキャプチャするための、画像化手段と、複数のキーフレームを含む3Dモデルを記憶するためのストレージ手段と、画像化手段およびストレージ手段に結合された処理手段とを含むことができる。いくつかの実施形態では、処理手段は、複数のライブ画像内のライブ画像について、追跡されるオブジェクトに対する相対的な画像化手段姿勢を判定するための手段と、追跡されるオブジェクトなしの複数の合成画像をレンダリングするための手段であって、各合成画像は、画像化手段姿勢に基づいて、3Dモデル内の別個のキーフレームから入手される、レンダリングするための手段と、追跡されるオブジェクトに関連する第1のマスク領域を判定するために、ライブ画像と合成画像とを比較するための手段と、複数の合成画像内の合成画像のサブセットに対する相対的な追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフロー大きさを計算するための手段と、第1のマスク内の複数の画素の各々について、オプティカルフロー大きさに部分的に基づいて合成画像のサブセットの各々内の対応する画素を判定するための手段と、第1のマスク内の複数の画素の各々の置換画素を判定するための手段であって、各置換画素は、第1のマスク内の別個の画素に対応し、各置換画素は、第1のマスク内の画素に対応する合成画像のサブセット内の対応する画素の関数として判定される、判定するための手段とをさらに含むことができる。
【０００９】
別の態様では、コンピュータ可読媒体は、プロセッサによって実行された時に、複数のライブ画像を入手するステップであって、ライブ画像は、追跡されるオブジェクトを含む、入手するステップと、複数のライブ画像内のライブ画像について、追跡されるオブジェクトに対する相対的なカメラ姿勢を判定するステップと、カメラ姿勢に基づいて、追跡されるオブジェクトなしの複数の合成画像をレンダリングするステップであって、各合成画像は、カメラ姿勢に基づいて3Dモデル内の別個のキーフレームから入手される、レンダリングするステップと、追跡されるオブジェクトに関連する第1のマスク領域を判定するために、ライブ画像と合成画像とを比較するステップと、複数の合成画像内の合成画像のサブセットに対する相対的な追跡されるオブジェクトに関連する第1のマスク領域内の複数の画素のオプティカルフロー大きさを計算するステップと、第1のマスク内の複数の画素の各々について、オプティカルフロー大きさに部分的に基づいて合成画像のサブセットの各々内の対応する画素を判定するステップと、第1のマスク内の複数の画素の各々の置換画素を判定するステップであって、各置換画素は、第1のマスク内の別個の画素に対応し、各置換画素は、第1のマスク内の画素に対応する合成画像のサブセット内の対応する画素の関数として判定される、判定するステップとを含むことができる方法内のステップを実行することができる命令を含むことができる。
【００１０】
開示される実施形態はまた、ソフトウェア、ファームウェア、およびコンピュータ可読媒体またはコンピュータ可読メモリを使用するプロセッサによって作成、記憶、アクセスまたは変更されるプログラム命令に関係する。説明する方法は、プロセッサおよび様々なモバイルデバイス上で実行され得る。
【００１１】
これらおよび他の実施形態は、以下の図に関して下でさらに説明される。他の態様が、例として様々な態様が示され、説明される、以下の詳細な説明から、当業者にたやすく明白になることを理解されたい。図面および詳細な説明は、性質において例示的であって制限的ではないものと見なされなければならない。
【００１２】
本発明の実施形態を、例としてのみ、図面を参照して説明する。
【図面の簡単な説明】
【００１３】
【図１】開示される実施形態と一貫する形で隠消現実感効果および媒介現実感効果を実施することができる例示的なモバイルデバイスを示すブロック図である。
【図２Ａ】複合現実感アプリケーションによって処理され得る例示的な画像192を示す図である。
【図２Ｂ】オブジェクト193が除去された、隠消現実感画像194を示す図である。
【図２Ｃ】オブジェクト193が仮想オブジェクト197によって置換された、媒介現実感画像196を示す図である。
【図３Ａ】開示される実施形態と一貫する形で、再構成からの隠消現実感効果および媒介現実感効果などのMR効果を容易にするための例示的な方法を示す流れ図である。
【図３Ｂ】開示される実施形態と一貫する形で、再構成からのMR効果を容易にするために少なくとも1つの追跡されるオブジェクトに関連するマスクの置換画素を計算するための例示的なサブルーチンを示す流れ図である。
【図４】例示的な隠消現実感アプリケーションと単一の合成画像とに関する例示的なワークフローを示す図である。
【図５】開示される実施形態と一貫する形で、再構成からの隠消現実感効果および媒介現実感効果などのMR効果を容易にするための例示的な方法を示す流れ図である。
【図６】開示される実施形態と一貫する形で、隠消現実感効果および媒介現実感効果を容易にすることを可能にされたサーバ600を示す概略ブロック図である。
【発明を実施するための形態】
【００１４】
添付図面に関連して下で示される詳細な説明は、本開示の様々な態様の説明であることを意図されたものであって、本開示を実践できる態様だけを表すことを意図されたものではない。本開示で説明される各態様は、単に本開示の例または実例として提供されるものであって、必ずしも他の態様より好ましいまたは有利とは解釈されるべきものではない。この詳細な説明は、本開示の完全な理解を提供するために、特定の詳細を含む。しかしながら、これらの特定の詳細なしで本開示を実践できることは、当業者に明白である。場合によっては、本開示の概念を曖昧にするのを回避するために、周知の構造およびデバイスがブロック図の形式で示されている。頭字語および他の説明的な用語法は、単に便宜および明瞭さのために使用される場合があり、本開示の範囲を限定することは意図されていない。
【００１５】
計算的に高価な従来の3D再構成では、デジタル画像のセットは、通常は他の感覚情報と一緒にバッチモードでオフラインで処理され、環境の3Dモデルは、通常、長い処理遅延の後に入手され得る。したがって、3D再構成を使用する実際のリアルタイムアプリケーションは、これまで限定的であった。
【００１６】
より最近に、従来のリアルタイムまたは近リアルタイムの3D再構成は、高められた処理能力、進歩したアルゴリズム、ならびに新しい形の入力データに起因して、弾みがついた。ユーザは、今や、キャプチャされた写真が、モバイルデバイスを含むコンピューティングデバイスによってすばやく処理され、これによってリアルタイムまたは近リアルタイムのARアプリケーションおよび/またはMRアプリケーションが容易になるので、近リアルタイムで3D再構成に関するフィードバックを得ることができる。
【００１７】
リアルタイム対話的とされ得るAR/MRアプリケーションは、通常、現実の画像と仮想画像とを組み合わせ、キャプチャされた画像とオブジェクトとの間の3Dでの位置合わせを実行する。したがって、どのオブジェクトが現実の画像内に存在するのかならびにこれらのオブジェクトの位置を判定することは、多くのARシステムおよび/またはMRシステムの効果的な動作を容易にすることができ、仮想オブジェクトの配置、除去、オクルージョン、および他の効果を助けるのに使用され得る。
【００１８】
コンピュータビジョンでは、検出は、キャプチャされた画像フレーム内でターゲットオブジェクトをローカライズし、基準系に関するカメラ姿勢を計算するプロセスを指す。追跡は、画像フレームの時間シーケンス上でのカメラ姿勢推定を指す。
【００１９】
従来の近リアルタイム技法は、通常、インペインティング技法を使用する。インペインティングは、画素を背景画素または仮想画素によって置換するための画像補間技法の使用を指す。従来のインペインティング技法は、ライブカメラ追跡からの誤差によって倍加される、シーン再構成中の正確さの欠如という欠点がある。したがって、インペインティング技法は、AR/MRアプリケーションに関連して使用される時に、しばしば標準以下のユーザ経験をもたらす。正確さの欠如は、AR/MR経験を損なう、レンダリング品質の劣化と、ゴーストおよびブラーなどの様々な画像アーティファクトとをもたらす可能性がある。したがって、本明細書で開示されるいくつかの実施形態は、再構成と追跡の正確さとを改善し、これによってユーザAR/MR経験の質を高めるために、コンピュータビジョン技法および画像処理技法を適用する。
【００２０】
これらおよび他の実施形態を、下で、以下の図面に関してさらに説明する。他の態様が、以下の詳細な説明から当業者にたやすく明白になり、以下の詳細な説明では、実例によって様々な態様が図示され、説明されることを理解されたい。図面および詳細な説明は、性質において例示的であって制限的ではないものと見なされなければならない。
【００２１】
図1に、開示される実施形態と一貫する形での隠消現実感効果および媒介現実感効果を含む、コンピュータビジョンアプリケーションを実施することができる例示的なモバイルデバイスまたは移動局(MS)100のブロック図を示す。いくつかの実施形態では、MS 100は、3D環境の既存のモデルに基づいて媒介現実感などのMR法を実施できるものとすることができる。いくつかの実施形態では、MR法を、開示される実施形態と一貫する形でリアルタイムまたは近リアルタイムで実施することができる。
【００２２】
本明細書で使用する場合、モバイルデバイスまたは移動局(MS)100は、セルラー電話、モバイル電話または他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、個人情報マネージャ(PIM)、または携帯情報端末(PDA)、ラップトップ、タブレット、ノートブックおよび/または手持ち式のコンピュータの形をとり得る。モバイルデバイスまたは移動局という用語は、本明細書では互換的に使用される。いくつかの実施形態では、MS100は、ワイヤレス通信および/またはナビゲーション信号を受信することが可能であり得る。
【００２３】
さらに、「移動局」という用語は、たとえば、短距離ワイヤレス接続、赤外線接続、有線接続もしくは他の接続によって、パーソナルナビゲーションデバイス(PND)と通信するデバイスを含むことも意図されており、かつ/または位置関連処理がそのデバイスまたはPNDにおいて行われる。また、「移動局」は、ワイヤレス信号受信、アシスタンスデータ受信、および/または関連する処理がデバイス、サーバ、またはネットワークに関連する別のデバイスのどれで行われるのかにかかわりなく、サーバ(図6のサーバ600など)と通信することができる、様々なワイヤレス通信デバイスを含むすべてのデバイスを含むことが意図されている。上記の任意の動作可能な組合せも、「移動局」と考えられる。
【００２４】
「移動局」という用語は、ネットワークに接続するように、または他の方法によりワイヤレスに、もしくは有線接続により別のデバイスと通信するように構成されないことがあるゲームまたは他のデバイスを含むことも意図される。たとえば、「移動局」は、通信要素および/またはネットワーキング機能を省くことができる。たとえば、本明細書で説明する実施形態は、別のデバイスとの有線またはワイヤレスネットワーキングのために接続するように構成されない独立型デバイスで実装され得る。
【００２５】
図1に示されているように、MS 100は、お互いおよびMS 100上の他の機能ユニット(図示せず)に動作可能に結合され得る、カメラ110、センサバンクまたはセンサ130、プロセッサ150、メモリ160、ディスプレイ180、および/またはトランシーバ170を含むことができる。たとえば、カメラ110、プロセッサ150、メモリ160、ディスプレイ180、トランシーバ170、および/または他の機能ユニットを、バス、信号線、ファイバ、リンク、その他、またはこれらの何らかの組合せを介して動作可能に結合することができる。
【００２６】
トランシーバ170は、たとえば、1つまたは複数のタイプのワイヤレス通信ネットワークを介して1つまたは複数の信号を送信することを可能にされた送信器と、1つまたは複数のタイプのワイヤレス通信ネットワークを介して送信された1つまたは複数の信号を受信するための受信器とを含むことができる。トランシーバ170は、フェムトセル、IEEE 802.11系列の標準規格に基づくものとされ得るWi-Fiネットワークもしくは無線ローカルエリアネットワーク(WLAN)、Bluetooth（登録商標）、Near Field Communication (NFC)、IEEE 802.15x系列の標準規格に基づくネットワーク、その他などの無線パーソナルエリアネットワーク(WPAN)、および/またはLTE、WiMAX、その他などの無線広域ネットワーク(WWAN)などであるがこれに限定されない様々な技術に基づくワイヤレスネットワークとの通信を可能にすることができる。いくつかの実施形態では、トランシーバ170は、MS 100の位置を判定するのに使用され得る全地球航法衛星システム(GNSS)からの信号を受信できる場合がある。モバイルデバイスは、有線ネットワークを介して通信するための1つまたは複数のポートを含むこともできる。いくつかの実施形態では、トランシーバ170および/またはモバイルデバイス100上の1つもしくは複数の他のポートを省略することができる。
【００２７】
いくつかの実施形態では、MS100は、CCDセンサまたはCMOSセンサなどの画像センサおよび/またはカメラ110(以下「カメラ110」と呼ぶ)を含むことができる。カメラ110は、光画像を電子画像またはデジタル画像に変換することができ、キャプチャされた画像をプロセッサ150に送ることができる。いくつかの実施形態では、カメラ110は、ウェアラブルディスプレイ内に収容され得、このウェアラブルディスプレイは、プロセッサ150および/またはMS 100内の他の機能ユニットに動作可能に結合され得るが、これとは別々に収容される。
【００２８】
いくつかの実施形態では、カメラ110は、複数のカメラ、前面カメラおよび/または背面カメラ、広角カメラ、高解像度カメラを含むことができ、CCD、CMOS、および/または他のセンサを組み込むこともできる。カメラ110は、スチルカメラおよび/またはビデオカメラとすることができるが、環境の一連の静止画像フレームおよび/またはビデオ画像フレームをキャプチャし、キャプチャされた画像フレームをプロセッサ150に送ることができる。いくつかの実施形態では、カメラ110は、MS 100内の他の機能ユニットに動作可能に結合され得るが、これとは別々に収容される、ウェアラブルカメラまたは外部カメラとすることができる。一実施形態では、カメラ110によってキャプチャされた画像は、生の未圧縮フォーマットであるものとすることができ、処理され、かつ/またはメモリ160内に記憶される前に圧縮されるものとすることができる。いくつかの実施形態では、画像圧縮を、ロスレス圧縮技法またはロッシイ圧縮技法を使用して、プロセッサ150によって実行することができる。いくつかの実施形態では、カメラ110を、3D画像をキャプチャできる立体視カメラとすることができる。別の実施形態では、カメラ110は、深度情報を推定できる深度センサを含むことができる。
【００２９】
プロセッサ150は、カメラ110によってキャプチャされた画像を処理するためにソフトウェアを実行することもできる。たとえば、プロセッサ150は、カメラ110の姿勢を判定するために、カメラ110から受け取られた1つもしくは複数の画像フレームを処理すること、様々なコンピュータビジョンアルゴリズムおよび画像処理アルゴリズムを実施すること、AR/MRアプリケーションを実行すること、および/またはカメラ110から受け取られた画像に対応する環境の3D再構成を実行することができるものとすることができる。カメラ110の姿勢は、基準系に対するカメラ110の位置および方位を指す。いくつかの実施形態では、3つの並進成分(基準系のX、Y、Z座標によって与えられ得る)と3つの角成分(たとえば、同じ基準系に対するロール、ピッチおよびヨー)とを指す6自由度(6DOF)に関して、カメラ姿勢が判断され得る。
【００３０】
いくつかの実施形態では、カメラ110および/またはMS 100の姿勢を、カメラ110から受け取られた画像フレームに基づいて視覚的追跡解決策を使用してプロセッサ150によって判定し、かつ/または追跡することができる。いくつかの実施形態では、コンピュータビジョン(CV)モジュール155を、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、および/または専用プロセッサ(プロセッサ150など)などの専用回路網を使用して実施することができる。いくつかの実施形態では、CVモジュール155は、MS 100上の1つまたは複数の他のプロセッサと通信する機能性を含むことができる。いくつかの実施形態では、CVモジュール155は、3D再構成、AR/MR、画像圧縮、およびフィルタリングなどの様々なコンピュータビジョン方法および/または画像処理方法を実施することができる。CVモジュール155は、コンピュータビジョンベースの追跡、モデルベースの追跡、Simultaneous Localization And Mapping (SLAM)、その他を実施することもできる。いくつかの実施形態では、CVモジュール155によって実施される方法は、カメラによってキャプチャされたカラー画像データまたはグレイスケール画像データに基づくものとすることができ、このカラー画像データまたはグレイスケール画像データは、カメラの6DOF姿勢測定の推定値を生成するのに使用され得る。
【００３１】
SLAMは、MS 100によってモデル化される環境のマップなどの環境のマップが、そのマップに対する相対的なMS 100の姿勢を同時に追跡している間に作成される種類の技法を指す。SLAM技法は、MS 100上のカメラ110などの単一のカメラによってキャプチャされた画像が、環境のマップに対する相対的なカメラの姿勢を同時に追跡している間にそのマップを作成するのに使用される、Visual SLAM (VSLAM)を含む。したがって、VSLAMは、周囲の環境の3D構造をも判定している間にカメラの6DOF姿勢を追跡することを含むことができる。たとえば、いくつかの実施形態で、VSLAM技法は、1つまたは複数のキャプチャされた画像フレーム内の顕著な特徴パッチを検出し、キャプチャされた画像フレームをキーフレームまたは基準フレームとして記憶することができる。キーフレームベースのSLAMでは、カメラの姿勢は、たとえば現在キャプチャされている画像フレームを1つまたは複数のキーフレームと比較することによって判定され得る。
【００３２】
いくつかの実施形態では、CVモジュール155は、3D再構成モジュール158を含むことができ、この3D再構成モジュール158は、カメラ姿勢と画素ごとのマップ情報とを使用して、環境の3Dモデルまたは3D表現を作成することができる。いくつかの実施形態では、3D再構成モジュール158を、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、および/または専用プロセッサ(プロセッサ150など)などの専用回路網を使用して実施することができる。一実施形態では、プロセッサ150は、カメラ110の正確で頑健な6DOF追跡のためにMS 100の周囲の環境の粗マップを作成するのに単眼VSLAM技法を使用することによって、カメラ110の位置を追跡することができる。単眼という用語は、画像をキャプチャするための単一の非立体視カメラの使用、または深度情報のないキャプチャされた画像を指す。
【００３３】
いくつかの実施形態では、3Dモデルは、モデル化されつつある3D環境をレンダリングするのに使用できる、テクスチャ付き3Dメッシュ、体積データセット、CADモデルなどの形をとることができる。たとえば、3Dメッシュが使用される実施形態では、VSLAM技法においてキーフレームを使用して、環境の疎点クラウド(sparse point cloud)表現を獲得することができる。疎点クラウドという用語は、たとえばX、Y、およびZ座標を有する3D座標系などの座標系内の、散乱されたデータ点のセットを指す。点クラウド表現を、その後、適当な散乱データ補間(scattered data interpolation)法を使用して3Dメッシュに変換することができる。
【００３４】
いくつかの実施形態では、プロセッサ150は、環境光センサ、音響センサ、慣性測定ユニット(IMU)、その他などの様々な他のセンサを含むことができるセンサ130から入力を受け取ることもできる。IMUは、3軸加速度計、3軸ジャイロスコープ、および/または磁力計を含むことができるが、速度、方位、および/または他の位置関連情報をプロセッサ150に供給することができる。いくつかの実施形態では、IMUは、カメラ110による各画像フレームのキャプチャと同期して、測定された情報を出力することができる。いくつかの実施形態では、IMUの出力は、カメラ110および/またはMS 100の姿勢を判定するのに、部分的にプロセッサ150によって使用され得る。
【００３５】
プロセッサ150は、ハードウェア、ファームウェアおよびソフトウェアの組合せを使用して実装され得る。プロセッサ150は、3D再構成、SLAM、追跡、モデル化、画像処理などに関するコンピューティング手順またはプロセスの少なくとも一部を実行するように構成可能な1つまたは複数の回路を表すことができ、メモリ160から命令および/またはデータを取り出すことができる。プロセッサ150は、本明細書で説明する機能を実行するように設計された、1つまたは複数の特定用途向け集積回路(ASIC)、中央処理装置および/もしくはグラフィックス処理ユニット(CPUおよび/もしくはGPU)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、組込みプロセッサコア、電子デバイス、他の電子ユニット、またはそれらの組合せを使用して実装され得る。
【００３６】
メモリ160は、プロセッサ150内および/またはプロセッサ150の外部で実装され得る。本明細書で使用される時に、「メモリ」という用語は、すべてのタイプの長期、短期、揮発性、不揮発性、または他のメモリを指し、メモリのどの特定のタイプもしくはメモリの個数またはメモリが記憶される物理媒体のタイプにも限定されない。いくつかの実施形態では、メモリ160は、画像処理、SLAM、追跡、モデル化、3D再構成、AR/MRアプリケーション、およびプロセッサ150上のCVモジュール155によって実行される他のタスクを容易にするプログラムコードを保持することができる。たとえば、メモリ160は、データ、キャプチャされた静止画像、深度情報、ビデオフレーム、プログラム結果、3Dモデル、キーフレーム、ならびに様々なセンサによって供給されるデータを保持することができる。一般に、メモリ160は、すべてのデータ記憶機構を表すことができる。たとえば、メモリ160は1次メモリおよび/または2次メモリを含み得る。1次メモリは、たとえば、ランダムアクセスメモリ、読み取り専用メモリなどを含み得る。図1ではプロセッサ150とは別個のものとして示されているが、1次メモリの全部または一部がプロセッサ150内に設けられるか、あるいはプロセッサ150と共設および/または結合され得ることを理解されたい。
【００３７】
2次メモリは、たとえば、1次メモリと同一のまたは類似するタイプのメモリ、および/またはたとえば、フラッシュ/USBメモリドライブ、メモリカードドライブ、ディスク(disk)ドライブ、光ディスク(disc)ドライブ、テープドライブ、ソリッドステートドライブ、ハイブリッドドライブ、その他など、1つもしくは複数のデータストレージデバイスもしくはデータストレージシステムを含むことができる。ある種の実施態様では、2次メモリは、モバイルデバイス100に結合されたリムーバブルメディアドライブ(図示せず)内の非一時的コンピュータ可読媒体を動作可能に受け、または他の形でこれに結合するように構成可能とされ得る。いくつかの実施形態では、非一時的コンピュータ可読媒体は、メモリ160および/またはプロセッサ150の一部を形成することができる。
【００３８】
さらに、MS100は、3D画像を含む色画像をレンダリングすることが可能なスクリーンまたはディスプレイ180を含むことができる。いくつかの実施形態では、ディスプレイ180を使用して、カメラ110によってキャプチャされたライブ画像、AR画像、グラフィカルユーザインターフェース(GUI)、プログラム出力などを表示することができる。いくつかの実施形態では、ディスプレイ180は、仮想キーボード、アイコン、メニュー、もしくは他のグラフィカルユーザインターフェース(GUI)、ユーザジェスチャ、ならびに/またはスタイラスおよび他の書込器具などの入力デバイスの何らかの組合せを介してユーザがデータを入力することを可能にするために、タッチスクリーンを含み、かつ/またはこれとともに収容され得る。いくつかの実施形態では、ディスプレイ180は、液晶画面(LCD)ディスプレイまたは発光ダイオード(LED)ディスプレイ、たとえば有機LED(OLED)ディスプレイを使用して実装され得る。他の実施形態では、ディスプレイ180は装着型ディスプレイであってよく、これはMS100における他の機能ユニットに動作可能に結合されるが、他の機能ユニットとは別個に格納され得る。いくつかの実施形態では、MS 100は、MS 100に結合された別々のモニタを介するMR画像の表示を可能にするためにポートを含むことができる。
【００３９】
モバイルデバイス100内に含まれるすべてのモジュールが、図1に示されているとは限らない。例示的なモバイルデバイス100は、図示の機能ブロックのうちの1つまたは複数を追加し、組み合わせ、または省略することによるなど、本開示と一貫する形で様々な形で変更されることも可能である。たとえば、いくつかの構成で、モバイルデバイス100が、トランシーバ170を含まない場合がある。一実施形態では、MS 100は、ネットワークに接続され、または他の形で、ワイヤレスにもしくは有線接続を介してのいずれかで別のデバイスと通信するように構成されない場合があるゲーミングデバイスまたは他のデバイスの形をとることができる。したがって、本明細書で開示される実施形態は、独立型のARシステム/デバイス内で、たとえば別のデバイスと通信する必要がない移動局内で、使用され得る。
【００４０】
さらに、ある種の例の実施態様では、モバイルデバイス100は、3軸ジャイロスコープおよび/または磁力計を含むことができるIMUを含むことができる。IMUは、速度、方位、および/または他の位置関連情報をプロセッサ150に供給することができる。いくつかの実施形態では、IMUは、カメラ110による各画像フレームのキャプチャと同期して、測定された情報を出力することができる。いくつかの実施形態では、IMU130の出力がプロセッサ150によって部分的に使用されて、カメラ110および/またはMS100の姿勢が判断され得る。いくつかの実施形態では、IMUの出力は、推定された姿勢を判定し、補正し、かつ/または他の形で調整するのに使用され得る。さらに、いくつかの実施形態では、カメラ110から受け取られた画像も、IMUを再較正し、またはIMUのバイアス調整を実行するのに使用され得る。いくつかの実施形態では、MS 100は、MS 100の位置情報を判定するのにGNSS信号および/またはワイヤレス(たとえば、地上測位信号、Wi-Fi、WWAN、WPAN)信号を使用することができる測位システムを含むことができる。いくつかの実施形態では、MS 100は、環境光センサ、マイクロホン、音響センサ、超音波センサ、レーザ測距器、その他などの様々な他のセンサを含むことができる。いくつかの実施形態では、モバイルデバイス100の諸部分は、1つまたは複数のチップセットおよび/または類似物の形をとることができる。
【００４１】
図2Aに、複合現実感アプリケーションによって処理され得る例示的な画像192を示す。いくつかの実施形態では、MS 100は、現実のオブジェクトがキャプチャされた画像からシームレスに除去される隠消現実感などのMRを実行できるものとすることができる。たとえば、図2Bに示されているように、隠消現実感画像194では、オブジェクト193(画像192内の本の山)が、画像194から除去されている。
【００４２】
いくつかの実施形態では、MS 100は、現実のオブジェクトを仮想オブジェクトによってシームレスに置換できる媒介現実感などのMRを実行できるものとすることができる。たとえば、図2Cに示されているように、媒介現実感画像196では、オブジェクト193(画像192内の本の山)が、画像196内の仮想の鉢植えオブジェクト197によって置換されている。
【００４３】
別の例として、媒介現実感を実施する1つの例示的な方法では、既存のソファを、ユーザの居間の画像から除去し(隠消現実感)、ユーザが買うつもりである可能性があるソファに置換する(媒介現実感)ことができる。
【００４４】
いくつかの実施形態では、MRを、環境の既存の3Dモデルを使用して実行することができる。いくつかの実施形態では、Parallel Tracking And Mapping (PTAM)などのキーフレームベースのSLAM技法を、MS 100上のプロセッサ150によって使用して、カメラ110から受け取られた画像を処理し、環境の3Dモデルを入手することができる。様々な周知の技法を使用して、環境の3Dモデルを入手することができる。いくつかの実施形態では、環境の先在するおよび/またはオフラインの3Dモデルを使用し、かつ/または更新することができる。いくつかの実施形態では、キーフレームベースのSLAMなど、様々な対話型3D再構成方法を使用して、環境の3Dモデルを入手することができる。
【００４５】
別の媒介現実感の例として、ある表面に置かれた玩具のアクションフィギュアを、アニメーション付きの仮想アクションフィギュアによって置換することができる。いくつかの実施形態では、玩具のアクションフィギュアを、仮想アクションフィギュアによって置換される(媒介現実感)前に、画像から仮想的に除去する(隠消現実感)ことができる。現実の玩具のアクションフィギュアが、まず画像から除去されたので、現実のアクションフィギュアを置換する仮想アクションフィギュアを、3Dモデルに基づく除去の後に、画像内で任意に移動することができる。したがって、本明細書で開示される実施形態は、媒介現実感を実施する時の、現実のオブジェクトの画素ごとの「オーバーペインティング」または「インペインティング」の使用を未然に防ぐ。
【００４６】
いくつかの実施形態では、前景なしの背景の3Dモデルを入手することによって、背景の仮想レンダリングを、前景のレンダリングに関連して処理することができる。上の例では、現実の玩具のアクションフィギュアを前景と考えることができ、画像の残りを背景と考えることができる。したがって、上の例に関して、現実の玩具のアクションフィギュアなしの背景の3Dモデルを入手することによって、背景を使用して、前景画素を置換することができる。その後、仮想の玩具のアクションフィギュアを、隠消現実感画像内でシームレスにアニメートし、レンダリングすることができる。
【００４７】
いくつかの実施形態では、3D背景を再構成することによって、複数のMR効果を、MS 100によってリアルタイムで実施することができ、MS 100に結合されたディスプレイ上で見ることができる。たとえば、既知の現実のオブジェクトまたは前景オブジェクトを、画像から除去することができる(隠消現実感)。本明細書で開示される方法は、既知の現実のオブジェクトが再構成中に存在しない時、および/または前景オブジェクトが再構成中に存在する時に、適用され得る。いくつかの実施形態では、本明細書で開示される方法は、再構成中に存在しなかった、以前には未知のオブジェクトの除去をも容易にすることができる。たとえば、ユーザの手および/または他の望まれないアーティファクトを、画像から除去することができる。いくつかの実施形態では、開示される方法は、仮想オブジェクトと現実のオブジェクトとの間の正確なリアルタイムオクルージョン効果を容易にすることができる。
【００４８】
図3Aに、再構成からの隠消現実感効果および媒介現実感効果などのMR効果を容易にするための例示的な方法300の流れ図を示す。いくつかの実施形態では、方法300を、カメラ110によってキャプチャされ、および/またはメモリ160に記憶された画像フレームを使用して、MS 100上のプロセッサ150によって実行することができる。いくつかの実施形態では、方法300を、1つまたは複数の他の機能ユニットに関連してプロセッサ150によって実行することができる。いくつかの実施形態では、方法300を、CVモジュール155によって実行することができる。
【００４９】
いくつかの実施形態では、ライブ入力ビデオ画像フレーム305は、画像フレームのシーケンスを含むことができる。いくつかの実施形態では、ステップ315で、環境の3Dモデルを入手することができる。
【００５０】
たとえば、いくつかの実施形態では、3Dモデルは、任意のオフライン再構成方法を使用してまたは手作業の3Dモデル化を介して生成され得る。いくつかの実施形態では、たとえば環境のCADモデルなどの3Dモデルが、入手可能であり、MS 100に結合されたサーバ(図6のサーバ600など)から入手され得る。3Dモデルは、オブジェクトのサイズおよび形状に関する情報と、オブジェクトに関係する色および外見の情報と、オブジェクトの表面に適用され得るテクスチャとを含むことができる。
【００５１】
その代わりに、いくつかの実施形態では、様々な対話型3D再構成方法を使用して、3Dモデルを入手することができる。いくつかの実施形態では、キーフレームベースのSimultaneous Localization and Mapping (SLAM)を使用して、環境の3Dモデルを入手することができる。いくつかの実施形態では、3Dモデルが、既知の追跡されるオブジェクトを含まない場合がある。たとえば、1つまたは複数の前景オブジェクトが、3Dモデルに含まれない場合がある。
【００５２】
SLAMベースの技法は、カメラ110および/またはMS 100の位置を同時にローカライズする間の未知の環境のマップの生成を可能にする。SLAMでは、カメラ(カメラ110など)によって入手された画像を使用して、相対的に低い計算オーバーヘッドを伴って未知の環境をモデル化し、これによって、リアルタイムおよび/または近リアルタイムのモデル化を容易にすることができる。
【００５３】
キーフレームベースのSLAMでは、様々な時点にカメラ110によってキャプチャされたスナップショットまたは画像フレームとすることができるキーフレームのセットを使用して、環境のマップまたはモデルを生成することができる。いくつかの実施形態では、各キーフレームは、カメラを中心とする座標フレーム(coordinate frame)に関連付けられ得、異なる解像度の画像のピラミッドを含むことができる。たとえば、キャプチャされた画像キーフレームをサブサンプリングして、そのキーフレームに関連する異なる解像度の画像を入手することができる。
【００５４】
さらに、キーフレーム内の各特徴点を、(i)そのソースキーフレームと、(ii)ソースキーフレームに関連するサブサンプリングされた画像のうちの1つと、(iii)サブサンプリングされた画像内の画素位置とに関連付けることができる。各特徴点を、パッチに関連付けることもでき、このパッチは、ある領域に対応する(サブサンプリングされた)画像の部分を指し、この領域は、(サブサンプリングされた)画像内の特徴点を囲む多角形の形をとることができる。いくつかの実施形態では、ステップ315で、キーフレームベースのSLAMを使用して、入力ビデオ画像フレーム305を処理し、疎3D特徴点を獲得し、シーンの疎点クラウド再構成を入手することができる。いくつかの実施形態では、ステップ315でのSLAMマッピング更新を、周期的に実行することができる。
【００５５】
ステップ310では、ライブ入力ビデオ画像フレーム305内の画像フレームを処理して、その画像フレームに関する現在のカメラ視点またはカメラ姿勢を入手することができる。いくつかの実施形態では、SLAM追跡を使用して、現在の視点を入手することができる。たとえば、一実施形態では、キーフレームベースのSLAMが以前に再構成に使用された場合に、そのキーフレームベースのSLAMを追跡に使用することができる。いくつかの実施形態では、ライブ入力ビデオ画像フレーム305から除去される(たとえば、隠消現実感アプリケーション内で)1つまたは複数の既知のオブジェクトも、追跡され得る。追跡は、画像フレームの時間シーケンスにわたるカメラ姿勢推定を指す。カメラ姿勢は、基準系に対する相対的なカメラの位置および位置合わせを指す。
【００５６】
いくつかの実施形態では、ステップ310および315を、MS 100上の複数のプロセッサ150、同一のプロセッサ150上の異なるプロセッサコアを使用して、および/またはプロセッサ150上の異なるプロセススレッドによって、並列に実行することができる。いくつかの実施形態では、カメラ110の姿勢は、ステップ310で入ってくる画像フレームごとに追跡され得、ステップ315でのSLAMマッピング更新は、周期的に実行され得る。
【００５７】
ステップ320では、SLAMマッピングステップ315からの疎3D点クラウド入力を、3Dメッシュに変換することができる。いくつかの実施形態では、散乱データ補間方法を使用して、疎点クラウドをメッシュに変換することができる。散乱点のセットとこれらの点の値のセットとを与えられて、散乱データ補間技法は、点(x)が散乱データ点によって表される表面に乗っているかどうかを判定する関数fを入手することを目指す。たとえば、関数f(x)は、xが表面に乗っている場合に1の値を作り(f(x)=1)、xが表面に乗っていない場合にf(x)≠1になるように定義され得る。
【００５８】
一実施形態では、階層分解技法を適用することができ、画像ピラミッド内のダウンサンプリングされた画像を使用して、点セットの疎から微細への階層を構成することができ、その後、この階層を、最も疎なレベルから開始して補間することができる。したがって、階層の点セットは、前のレベルで計算された補間関数をオフセットすることによって補間され得る。いくつかの実施形態では、補間は、コンパクト台をもつ(compactly supported)基底関数を使用することができる。たとえば、一実施形態では、補間は、コンパクト台をもつ放射基底関数(RBF)を使用することができる。
【００５９】
RBFは、その値が「中心」と呼ばれる点からの距離だけに依存する実数値関数である。たとえば、N>0であり、m個の別個の点xi(1≦i≦m)を有するN次元ユークリッド空間内で、関数y(x)の近似を、それぞれが異なる中心xiに関連し、適当な係数wiによって重みを付けられたN個の放射基底関数の和として表すことができる。コンパクト台をもつRBFについて、「中心」の回りの限られた広がりの周囲の中で、f(x)≠0である。
【００６０】
ステップ325では、いくつかの実施形態で、テクスチャ付きのビューS1、S2、およびS3などの複数のビューを、現在のカメラ姿勢に基づく代理幾何形状(proxy geometry)へのキーフレームの射影テクスチャマッピングによって入手することができる。「代理幾何形状」という用語は、シーンに関係する近似幾何情報を指すのに使用される。射影テクスチャマッピングでは、カメラ姿勢と、テクスチャを有する仮想画像平面とが、射影の中心としてカメラ姿勢を使用して幾何モデルに投影される。
【００６１】
いくつかの実施形態では、ステップ320で入手されたメッシュは、ステップ310で入手された現在の視点または現在のカメラ姿勢に基づいてレンダリングされ得、視点依存テクスチャマッピング(VDTM:View Dependent Texture Mapping)が、テクスチャとしてSLAMキーフレームを使用して適用され得る。これによって、メッシュは、画像ベースのレンダリング手法において代理幾何形状になる。
【００６２】
VDTMは、以前にキャプチャされた画像の疎セットから近似的に既知の幾何形状を有するシーンの新しいビューを生成するための技法である。VDTMでは、この補間が、出力画像内の所望の光線に対応する、各入力画像内の画素を判定するために、幾何モデルを使用して実行される。所望の光線に角度的に近接し、かつ/または角度においてこれに相対的により近い対応する光線は、補間結果への最大の寄与を行うように重みを付けられる。
【００６３】
一実施形態では、それに関連するカメラ姿勢が角変位において相対的により近いか、現在の視点に角度的に近接する、複数のキーフレームが、判定され得、複数のキーフレームのサブセットが、合成レンダリングを作るのに使用され得る。たとえば、それに関連するカメラ姿勢が、現在のカメラ姿勢または視点に角度空間内で最も近い3つのキーフレームが、判定され得、この3つのキーフレームが、3つの合成レンダリングS1、S2、およびS3を作るのに使用され得る。
【００６４】
いくつかの実施形態では、非構造化ルミグラフレンダリング(ULR:Unstructured Lumigraph Rendering)技法を使用して、複数のキーフレームからキーフレームのサブセットを選択し、対応するレンダリングを作ることができる。ULRは、入力画像の非構造化コレクション、入力画像の各々に関連するカメラ姿勢推定値、およびシーンの近似幾何形状代理を使用することによってビューをレンダリングすることができる、リアルタイムレンダリング技法である。
【００６５】
たとえば、ULRを使用して、3つのキーフレームを選択し、それぞれが選択されたキーフレームのうちの1つに対応する3つの合成レンダリングS1、S2、およびS3を作ることができる。たとえば、「ブレンディングフィールド(blending field)」を、現在の視点について画像平面内の頂点のセットにおいて評価することができ、そのブレンディングフィールドを、画像全体にわたって補間することができる。ブレンディングフィールドは、所与の画素を再構成する時に、各ソースキーフレーム画像がどのように重みを与えられるのかを記述する。重みは、たとえば現在の視点とキーフレーム画像の視点との間の角度差を含む、様々な要因に部分的に基づくものとすることができる。
【００６６】
ステップ328では、ライブ画像と合成画像とを比較することができ、既知の追跡されるオブジェクトのうちの1つまたは複数を、ライブ画像から除去することができる。たとえば、ステップ325で入手された合成レンダリングS1、S2、およびS3を、1つまたは複数のライブ入力画像フレーム305と比較することができる。
【００６７】
次に、ステップ330では、既知のオブジェクトのバイナリ画像を、ライブ画像内の置換されるべき画素をマークするマスクMにレンダリングすることができる。いくつかの実施形態では、マスクMを、ある量だけ拡大して、マスクM'を作ることができる。たとえば、マスクMは、追跡誤差およびモデル化誤差に対処するために、Mの周囲の領域内の画素を含めることによって、M'に拡大され得る。いくつかの実施形態では、マスクは、画像にフィルタ演算を適用することによって拡大され得る。
【００６８】
たとえば、一実施形態では、フィルタは、Mのシルエットを判定し、その後、すべてのシルエット画素に円盤形の核または2Dガウス核を適用することができる。核は、画像畳み込みで使用されるが、数の行列として表現され得、画素の回りの領域について定義される。フィルタ演算は、核内の対応する画素の値を用いて行列内の値を畳み込むことによって、M内の入力画素ごとに出力値を入手する。畳み込みの下の結果は、行列内の数の大きさと分布とに依存し、核内の各画素の、出力画素への寄与を決定する。
【００６９】
別の実施形態では、フィルタを、Mへの距離変換を計算することと、その後に距離変換にしきい値を適用することとに基づくものとすることができる。そのようなフィルタは、0〜1の範囲内の値を与えることができ、この値は、現実の画像と合成画像とをブレンドするためのアルファマスクとして解釈され得る。
【００７０】
サブルーチン335では、M'内の画素の置換画素を、図3Bに示されているように計算することができる。いくつかの実施形態では、計算された置換画素を使用して、隠消現実感画像340をレンダリングすることができる。その後、この方法は、次の入力ビデオ画像フレーム305を処理することによって、別の反復を開始する。いくつかの実施形態では、方法300は、レンダリングされた画像の追跡誤差または他の誤差に起因する色のにじみ、ゴースト、または他のアーティファクトを減らしまたは除去するのを助けることができる。
【００７１】
たとえば、前景オブジェクトの回りのマスクの境界付近の少数の画素の検討は、マスク境界にまたがる連続性を保証することができる。たとえば、ライブ画像からの画素が合成画像からの画素に隣接する状況では、すべての誤差(たとえば、追跡からの)を、オプティカルフロー計算の結果によって補正することができる。
【００７２】
前に説明したように、従来の技法は、本物には見えない可能性がある、DR画像の描きこまれた部分をしばしばもたらす可能性もある。たとえば、従来の技法を使用するDR背景は、除去されたオブジェクトの背後の実際の背景とは異なる場合がある。これらの不正確さおよび一貫性のなさは、背景が複雑または不均一である時に、特に顕著になり得る。従来の技法を使用する時には、インペインティングに使用される不均一な背景からの情報は、視覚的構造が、それがあてはまらない位置にコピーされる可能性があるので、一貫していないように見える。対照的に、背景シーンの画像ベースのモデルの使用に基づいて、開示される実施形態は、除去される前景オブジェクトによって遮蔽された画素に描きこむために、正確な背景位置で実際の情報を使用する。したがって、開示される実施形態は、相対的にそのようなアーティファクトがない。
【００７３】
現実のオブジェクトが仮想オブジェクトによって置換される媒介現実感アプリケーションに関してなど、いくつかの実施形態では、方法300は、現実のオブジェクトが除去された区域内に所望の仮想オブジェクトを追加してレンダリングするように変更され得る。いくつかの実施形態では、方法300を、1つまたは複数の追跡されるオブジェクトに適用することができる。
【００７４】
いくつかの実施形態では、方法300を、他の形で変更することもできる。たとえば、一実施形態では、3Dモデルが、既知の追跡されるターゲットを含む時に、除去されるべきオブジェクトに対応するマスクを、ライブ入力ビデオ画像フレーム305に適用することができ(ステップ330でのように)、再構成に関するステップ315、320、および325を、マスクによって除去されない画素を検討するように変更することができる。
【００７５】
いくつかの実施形態では、ライブ入力ビデオ画像フレーム305を前景オブジェクトと背景シーンとにセグメント化することができ、このセグメント化は、いくつかの実例で、前景オブジェクトをマークすることによって達成することができる。隠消現実感アプリケーションについて、前景オブジェクトは、除去されるべきオブジェクトとすることができる。一実施形態では、GrabCutなどの既知の方法を当初に使用して、前景と背景とをセグメント化することができる。その後、前景オブジェクトのシルエットを、ライブ入力ビデオ画像フレーム305内で追跡することができ、除去すべき前景オブジェクトのマスクを作成するのに使用することができる。再構成に関するステップ315、320、および325を、マスクによって除去されない画素を検討するように変更することができる。
【００７６】
いくつかの実施形態では、方法300を、マーカー除去に使用することができる。たとえば、ユーザが、基準マーカー(たとえば、白地に黒の基準マーカー)を使用するシーンと対話する場合に、これらのマーカーを仮想的に除去することができる。
【００７７】
図3Bに、開示される実施形態と一貫する形で、再構成からのMR効果を容易にするために少なくとも1つの追跡されるオブジェクトに関連するマスクの置換画素を計算するための例示的なサブルーチン335の流れ図を示す。
【００７８】
ステップ344で、合成画像のいずれかが、既知の/追跡されるオブジェクトを引いた(またはこれを有しない)ライブ画像と、正確にまたはある事前定義のしきい尺度以内のいずれかで一致する場合には(ステップ344の「Y」)、ステップ346で、ライブ画像内のマスク内のすべての画素を、合成画像からの画素に置換することができる。ステップ344で、既知のオブジェクトを引いたライブ画像と合成画像のいずれとの間にも一致がない場合、または一致の度合が事前定義のしきい尺度を超える場合には(ステップ344の「N」)、この方法は、ステップ348に進む。
【００７９】
ステップ348では、マスクM'内の現実の画像画素と合成画像画素との間の関係を、オプティカルフロー法を使用して計算することができる。オプティカルフローは、画像シーケンス内の輝度パターンのみかけの動きを指す。3D表面上の各移動する点は、画像平面に射影された時に、2次元(2D)経路を作る。「2Dモーションフィールド」という用語は、すべての可視の表面点の2D速度を指すのに使用される。オプティカルフロー推定値を使用して、時間変動する画像輝度に基づいて2Dモーションフィールドへの近似を計算することができる。
【００８０】
いくつかの実施形態では、オプティカルフロー計算を、マスクM'によってカバーされる区域に制限することができる。たとえば、一実施形態では、オプティカルフロー計算を、ライブ入力ビデオ画像フレーム305内のマスクM'内のすべての画素について実行して、合成画像S1、S2、およびS3を合成することができる。
【００８１】
ステップ350では、合成画像からの画素を、ライブ画像のうちでマスクMの外部でマスクM'内の部分と一致させることができるようにするために、M'-M内のすべての画素の変位および色/輝度補正を、オプティカルフロー計算に基づいて判定することができる。
【００８２】
ステップ352では、M'-M内の画素について、S1、S2、およびS3からそれぞれ1つの、3つの対応する画素を、ステップ350で判定されたオプティカルフロー補正に基づいて判定することができる。
【００８３】
次に、ステップ354では、いくつかの実施形態で、M'-M内のすべての画素の値を、S1、S2、およびS3からそれぞれ1つの、3つの対応する画素の加重平均として計算することができる。いくつかの実施形態では、画素の重みを、その画素のオプティカルフローの大きさと、ライブ入力ビデオ画像フレーム305とS1、S2、S3のそれぞれとの間の角変位との関数とすることができる。
【００８４】
いくつかの実施形態では、M'-M内のオプティカルフロー計算を、アフィン運動に制約し、これによって、推定される未知数の個数を制限することができる。アフィン運動について、6つの未知数がある。小さい面積について、アフィン変換は、滑らかな表面の画像の動きの正確な近似を提供することができる。
【００８５】
いくつかの実施形態では、ステップ356で、マスクM内の画素のオプティカルフローを、境界M'-Mからの散乱データ補間によって計算することができる。
M内の画素の値を、補間されたオプティカルフロー値を使用して、S1、S2、およびS3からそれぞれ1つの、3つの対応する画素の加重平均として計算することができる。さらに、M内の画素値を、オプティカルフローに基づいてS1、S2、およびS3からの画素をブレンドすることによって入手することができる。
【００８６】
アルファ(透明度)値が、M'の計算の一部としてM内の画素について計算される、いくつかの実施形態では、ある画素のアルファ値を使用して、その画素の新しい計算された値を、ライブ入力ビデオ画像フレーム305内の対応する画素のオリジナル値とブレンドすることができる。いくつかの実施形態では、ルーチン335を、(i)ステップ354を省略するために、および(ii)新しい値をM'内のすべての画素について計算できるようにするためにステップ356を変更することによって、変更することができる。
【００８７】
現実のオブジェクトが仮想オブジェクトによって置換され得る媒介現実感アプリケーションに関するものなど、いくつかの実施形態では、ルーチン335を変更して、呼出し側プログラムから受け取られたパラメータに基づいて、現実のオブジェクトが除去された区域内に所望の仮想オブジェクトをさらにレンダリングすることができる。
【００８８】
いくつかの実施形態では、方法300および/または335を使用して、既知のシーンから未知のオブジェクトまたは期待されないオブジェクトを除去することができる。一実施形態では、以前に再構成されたシーン内に存在する未知のオブジェクトの除去を、オプティカルフローとセグメント化との合同推定によって実行することができる。たとえば、ルーチン335を変更して、合成画像全体とライブ画像全体とを比較し、一致しない領域を判定するステップを含めることができる。その後、これらの領域のすべてを、前に説明した技法を使用して除去することができる。たとえば、ユーザの手または指が、不注意で画像フレームに含まれる場合に、これらをシーンから除去することができる。
【００８９】
さらなる実施形態では、方法300および/または335を、適当な変更とともに使用して、仮想オブジェクトと現実のオブジェクトとの間の正確なオクルージョンを引き渡すことができる。たとえば、既知の(追跡されるまたは静止している)オブジェクトが、ライブ入力ビデオ画像フレーム305内に存在し、追跡されるオブジェクトが仮想オブジェクトを遮蔽する可能性がある場合には、現実の既知のオブジェクトのファントム表現または仮想表現を、仮想zバッファ内にレンダリングすることができる。結果のファントムzバッファを使用して、仮想オブジェクトとのオクルージョンを解決することができる。
【００９０】
追跡誤差を考慮に入れるために、ファントムzバッファ画像とライブビデオ内の現実のオブジェクトの対応する画像との間のオプティカルフローを計算し、これを使用して、ライブビデオと一致するようにファントムzバッファ画像をワープさせることができる。
【００９１】
したがって、いくつかの実施形態では、ステップ330を変更して、仮想オブジェクトのフットプリントに対応する、さらには拡大されないマスクM''をレンダリングすることができる。いくつかの実施形態では、ルーチン335を変更して、仮想表現M''とライブビデオ内の現実のオブジェクトの対応する画像との間のオプティカルフローを計算して、ライブビデオと一致するように仮想zバッファをワープさせることができる。
【００９２】
仮想オブジェクトのすべての画素について、ワープされた仮想zバッファからの深度テストを使用して、その画素が描かれるか否かを判定することができる。たとえば、仮想キャラクタが現実のオブジェクトの背後に隠れる場合があるゲーム中など、現実のオブジェクトが仮想オブジェクトを遮蔽する場合に、オクルージョンを使用することができる。上で説明された実施形態では、オブジェクトが除去されないことに留意されたい。その代わりに、新しい仮想オブジェクトのすべての画素のワープされたzバッファからの深度テストが、その画素が描かれるか否かを判定する。
【００９３】
いくつかの実施形態では、方法300の諸部分を、MS 100と、トランシーバ170を介してMS 100にワイヤレスで結合された1つまたは複数のサーバまたは他のコンピュータとのある組合せによって実行することができる。たとえば、MSは、サーバにデータを送ることができ、方法300の1つまたは複数のステップは、サーバによって実行され得、その結果が、MS 100に返され得る。
【００９４】
図4に、例示的な隠消現実感アプリケーションと単一の合成画像とに関する例示的なワークフロー400を示す。図4では、ステップ410で、たとえば、再構成されたシーン415を、環境に対応する3Dモデルから入手することができる。いくつかの実施形態では、再構成されたシーン415が、前景オブジェクト428を含まない場合がある。
【００９５】
ステップ420では、前景オブジェクト428を、除去のために識別することができ、マスク425を作成することができる。いくつかの実施形態では、ステップ420で、ライブ画像422からカメラ姿勢を判定することができる。
【００９６】
ステップ430では、ステップ420で判定されたカメラ姿勢に基づく合成画像432を、再構成されたシーン415を使用してレンダリングする。図4に示されているように、合成画像432は、マスク425に対応する領域435内にオブジェクト428を含まない。
【００９７】
ステップ440では、合成画像432をライブ画像422と組み合わせることができ、マスク425に関連する画素を、領域435内の対応する画素によって置換することができる。いくつかの実施形態では、ステップ440に示されたマスク445(M'に対応することができる)を、マスク425(Mに対応することができる)より大きくすることができる。図4に示されているように、補正の前には、追跡誤差または他の誤差に起因する色のにじみ、ゴースト、または他のアーティファクト450が、組み合わされた画像445内にある場合がある。
【００９８】
ステップ460では、ライブ画像422と合成画像432(および1つまたは複数の追加の合成画像)との間のオプティカルフローを計算することによって、補正を組み合わされた画像445に適用することができる。たとえば、一実施形態では、オプティカルフロー計算を、マスク445によってカバーされる区域に制限することができる。たとえば、一実施形態では、オプティカルフロー計算を、マスク445内のすべての画素について、1つまたは複数の合成画像に対して実行することができる。オプティカルフロー計算は、変位と色/輝度補正とを作ることができ、その結果、合成画像からの画素を、マスクM内のライブ画像の画素と一致させることができるようになる。
補正を適用して、補正後の組み合わされた画像465を入手することができる。
【００９９】
図5に、開示される実施形態と一貫する形で、再構成からの隠消現実感効果および媒介現実感効果などのMR効果を容易にするための例示的な方法の流れ図500を示す。いくつかの実施形態では、方法500を、MS 100によって実行することができる。いくつかの実施形態では、初期化プロセスの一部として、第1の画像フレームを、追跡されるオブジェクトを含む前景と背景とにセグメント化することができる。たとえば、追跡されるオブジェクトを有しない3Dモデル、GrabCutなどの方法、または他のセグメント化技法を使用することができる。
【０１００】
ステップ505では、複数のライブ画像フレーム内の、追跡されるオブジェクトを含む第1のまたは次のライブ入力ビデオ画像フレーム305を、入手することができる。次に、ステップ510では、ライブ画像305を処理して、複数のライブ画像内のライブ画像について、追跡されるオブジェクトに対する相対的なカメラ姿勢を判定することができる。いくつかの実施形態では、SLAM追跡技法を使用して、追跡されるオブジェクトを含むライブ入力ビデオ画像フレーム305についてカメラ姿勢を判定することができる。一般に、任意のリアルタイム追跡技法を使用して、ライブ画像フレーム305にまたがってオブジェクトを追跡することができる。
【０１０１】
ステップ520では、カメラ姿勢を使用して、追跡されるオブジェクトなしの複数の合成画像をレンダリングすることができ、各合成画像は、3Dモデル505内の別個のキーフレームから入手され得る。たとえば、カメラ姿勢に基づいて、現在のライブ画像フレームに角度近接において最も近い、追跡されるオブジェクトなしの3つの合成画像をレンダリングすることができる。いくつかの実施形態では、別個のキーフレームを、カメラ姿勢に対する相対的な別個のキーフレームの角変位近接に基づいて選択することができる。いくつかの実施形態では、3Dモデルが、追跡されるオブジェクトを含まなくても良い。
【０１０２】
いくつかの実施形態では、3Dモデルをオフラインで生成することができる。いくつかの実施形態では、3Dモデルを、VSLAM技法を使用して入手することができる。たとえば、VSLAM技法を使用して、キーフレームを獲得し、環境の疎点クラウド表現を作成することができる。いくつかの実施形態では、テクスチャ付き3Dメッシュを、疎クラウド表現から入手することができる。
【０１０３】
ステップ525では、ライブ画像と合成画像とを比較して、追跡されるオブジェクトに関連する第1のマスク領域を判定することができる。次に、ステップ530では、複数の合成画像内の合成画像のサブセットに対する相対的な追跡されるオブジェクトに関連する第1のマスク領域内の画素のオプティカルフロー大きさを計算することができる。
【０１０４】
ステップ535では、第1のマスク内の複数の画素の各々について、合成画像のサブセットの各々内の対応する画素を、オプティカルフロー大きさに部分的に基づいて判定することができる。上の例では、第1のマスク内の画素に対応する合成画像画素を、3つの合成画像のそれぞれにおいて判定することができる。たとえば、オプティカルフローに基づいて、第1のマスク内の複数の画素の各々の変位と色補正および/または輝度補正とを入手することができる。マスクの内部の画素の変位と色/輝度補正とを使用して、ライブ画像のうちで第1のマスク内の部分と一致する、合成画像からの対応する画素を判定することができる。
【０１０５】
ステップ540では、第1のマスク内の複数の画素の各々の置換画素を判定することができ、各置換画素は、第1のマスク内の別個の画素に対応することができ、各置換画素は、第1のマスク内の置換画素に対応する画素に対応する合成画像のサブセット内の画素の関数として判定され得る。いくつかの実施形態では、各置換画素を、合成画像のサブセット内の対応する画素の加重平均として判定することができ、サブセット内の合成画像内の対応する画素に関連する重みは、対応する画素のオプティカルフロー大きさと、ライブ画像と対応する画素に関連する合成画像との間の角変位とに部分的に基づく。いくつかの実施形態では、第1のマスク(M')領域は、追跡されるオブジェクトの回りの第2のマスク領域(M)を含むことができ、M内の各置換画素のオプティカルフロー大きさは、境界M'-Mからの散乱データ補間によって判定され得る。
【０１０６】
いくつかの実施形態では、その後、隠消現実感画像をレンダリングすることができ、この隠消現実感画像は、置換画素に少なくとも部分的に基づいて入手され得る。いくつかの実施形態では、仮想オブジェクトを、第1のマスクによって示される画像内の領域内にレンダリングすることもでき、この仮想オブジェクトは、現在のカメラ姿勢に基づいてレンダリングされる。いくつかの実施形態では、仮想オブジェクトは、画像内の少なくとも1つの既知の現実のオブジェクトの仮想表現を仮想zバッファ内にレンダリングするステップであって、現実のオブジェクトは、少なくとも部分的に第1のマスク内にある、レンダリングするステップと、少なくとも1つの既知の現実のオブジェクトと仮想zバッファ内の仮想オブジェクトとの間のオクルージョンを解決するステップと、画像と一致するように仮想zバッファをワープさせるステップであって、ワープさせるステップは、少なくとも1つの既知の現実のオブジェクトの仮想表現と画像内の少なくとも1つの既知の現実のオブジェクトとの間のオプティカルフローに部分的に基づく、ワープさせるステップとによって、第1のマスクによって示される画像内の領域内にレンダリングされ得る。
【０１０７】
いくつかの実施形態では、追跡されるオブジェクトに関連する第1のマスク(M')内の画素のオプティカルフロー大きさの計算は、画像内の追跡されるオブジェクトの画素を第2のマスク(M)内にレンダリングすることを含むことができ、第2のマスクは、画像内の、置換される画素を含む領域を示す。さらに、画像内の第1のマスクと第2のマスクとの間の領域(M'-M)内の画素のオプティカルフロー大きさを、合成画像のサブセットに対して相対的に計算することができる。さらに、第2のマスク(M)内の画素のオプティカルフロー大きさを、散乱データ補間を使用して計算することができる。その後、このプロセスは、ステップ510に戻って、次の反復を開始することができる。
【０１０８】
いくつかの実施形態では、隠消現実感画像を、置換画素に部分的に基づいてレンダリングすることができる。さらに、方法500を、様々な形で変更することができる。たとえば、複合現実感アプリケーションでは、仮想オブジェクトを、置換画素によって示される領域内にレンダリングすることができる。いくつかの実施形態では、置換画素によって示される領域内での仮想オブジェクトのレンダリングは、既知の現実のオブジェクトと仮想オブジェクトとの間のオクルージョンを解決するのに使用できる、仮想zバッファへの画像内の既知の/追跡される現実のオブジェクトの仮想表現のレンダリングを含むことができる。さらに、仮想zバッファを、画像と一致するようにワープさせることができ、このワープは、少なくとも1つの既知の現実のオブジェクトの仮想表現と画像内の少なくとも1つの現実のオブジェクトとの間のオプティカルフローに基づくものとすることができる。
【０１０９】
ここで図6を参照するが、図6は、開示される実施形態と一貫する形で、隠消現実感効果および媒介現実感効果を容易にすることを可能にされたサーバ600を示す概略ブロック図である。いくつかの実施形態では、サーバ600は、方法300、335、および/または500の諸部分を実行することができる。いくつかの実施形態では、方法300、335、および/または500を、処理ユニット650および/またはコンピュータビジョン(CV)モジュール656によって実行することができる。たとえば、上記の方法を、サーバ600の1つまたは複数の機能ユニットに関連しておよび/またはMS 100に関連して、処理ユニット650および/またはCVモジュール656によって全体としてまたは部分的に実行することができる。
【０１１０】
いくつかの実施形態では、サーバ600を、WWAN、WLAN、またはWPANのうちの1つとすることができるワイヤレスネットワーク(図示せず)を介して1つまたは複数の移動局100にワイヤレスで結合することができる。いくつかの実施形態では、サーバ600は、たとえば、1つまたは複数の接続620(たとえば、バス、信号線、ファイバ、リンクなど)を用いて動作可能に結合され得る、1つまたは複数の処理ユニット650、メモリ680、ストレージ660、および(適用可能な場合に)通信インターフェース690(たとえば、有線またはワイヤレスのネットワークインターフェース)を含むことができる。ある種の例の実施態様では、サーバ600のある部分が、チップセットおよび/または類似物の形をとることができる。
【０１１１】
通信インターフェース690は、有線の送信および/または受信をサポートし、望まれる場合には、それに加えてまたはその代わりに、1つまたは複数のタイプのワイヤレス通信ネットワークを介する1つまたは複数の信号の送信および受信をサポートすることができる、様々な有線接続およびワイヤレス接続を含むことができる。通信インターフェース690は、MS 100ならびに/または様々な他のコンピュータおよび周辺機器との通信のためのインターフェースを含むことができる。たとえば、一実施形態では、通信インターフェース690は、サーバ600によって実行される通信機能のうちの1つまたは複数を実施する、ネットワークインターフェースカード、入出力カード、チップ、および/またはASICを含むことができる。いくつかの実施形態では、通信インターフェース690は、環境の3Dモデル情報を送り、かつ/または方法300および/もしくは500に関係するデータおよび/もしくは命令を受信するためにMS 100とインターフェースすることもできる。
【０１１２】
処理ユニット650は、要求された計算を実行し、かつ/または要求された情報および/もしくは結果を通信インターフェース690を介してMS 100に送るために、受信された情報の一部またはすべてを使用することができる。いくつかの実施形態では、処理ユニット650を、ハードウェア、ファームウェア、およびソフトウェアの組合せを使用して実施することができる。いくつかの実施形態では、処理ユニット650は、コンピュータビジョン(CV)モジュール656を含むことができ、このCVモジュール656は、AR/MR手順、SLAMマップ生成などを含むコンピュータビジョン方法を実施し、実行することができる。いくつかの実施形態では、CVモジュール656は、3D再構成モジュール658を含むことができ、この3D再構成モジュール658は、3D再構成を実行し、かつ/または環境の3Dモデルを提供/更新することができる。いくつかの実施形態では、処理ユニット650は、サーバ600の動作に関するデータ信号コンピューティング手順またはプロセスの少なくとも一部を実行するように構成可能な1つまたは複数の回路を表すことができる。
【０１１３】
本明細書で流れ図またはメッセージフローで説明される方法論を、応用例に応じて様々な手段によって実施することができる。たとえば、これらの方法論を、ハードウェア、ファームウェア、ソフトウェア、またはその任意の組合せで実施することができる。ハードウェア実装形態の場合、処理ユニット650は、本明細書で説明する機能を実行するように設計された、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、他の電子ユニット、あるいはそれらの組合せ内で実現されてもよい。
【０１１４】
ファームウェア実施態様および/またはソフトウェア実施態様について、方法論を、本明細書で説明される機能を実行するモジュール(たとえば、手続き、関数など)を用いて実施することができる。命令を有形に実施する任意の機械可読媒体を、本明細書で説明される方法論を実施する際に使用することができる。たとえば、ソフトウェアを、リムーバブルメディアドライブ670内に記憶することができ、リムーバブルメディアドライブ670は、リムーバブルメディアを含む非一時的コンピュータ可読媒体676の使用をサポートすることができる。プログラムコードは、非一時的コンピュータ可読媒体676またはメモリ680に存在することができ、処理ユニット650によって読み取られ、実行され得る。メモリは、処理ユニット650内または処理ユニット650の外部で実施され得る。本明細書で使用される時に、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他のメモリを指し、どの特定のタイプのメモリまたはメモリの個数にも、メモリが記憶される媒体のタイプにも限定されない。
【０１１５】
ファームウェアおよび/またはソフトウェアで実施される時に、諸機能を、非一時的コンピュータ可読媒体676および/またはメモリ680上の1つまたは複数の命令またはコードとして記憶することができる。例は、データを符号化されたコンピュータ可読媒体およびコンピュータプログラムを符号化されたコンピュータ可読媒体を含む。たとえば、その上に記憶されたプログラムを含む非一時的コンピュータ可読媒体676は、開示される実施形態と一貫する形での再構成からの隠消現実感効果および媒介現実感効果などのMR効果を容易にするためのプログラムコードを含むことができる。
【０１１６】
非一時的コンピュータ可読媒体は、様々な物理コンピュータ記憶媒体を含むことができる。記憶媒体は、コンピュータによってアクセスできる任意の入手可能な媒体とすることができる。限定ではなく、一例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で記憶するのに使用することができ、かつコンピュータからアクセスすることのできる任意の他の媒体を備えてよく、本明細書で使用するディスク(diskおよびdisc)には、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピィディスク、およびブルーレイディスクが含まれ、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザによって光学的に再生する。非一時的コンピュータ可読媒体の他の例は、フラッシュドライブ、USBドライブ、ソリッドステートドライブ、メモリカードなどを含む。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
【０１１７】
コンピュータ可読媒体上のストレージに加えて、命令および/またはデータを伝送媒体上の信号として通信インターフェース690に供給することができ、通信インターフェース690は、命令/データをメモリ680、ストレージ660に記憶し、かつ/または命令/データを実行のために処理ユニット650に中継することができる。たとえば、通信インターフェース690は、命令およびデータを示すワイヤレス信号またはネットワーク信号を受信することができる。命令およびデータは、1つまたは複数のプロセッサに特許請求の範囲で概要を示される機能を実施させるように構成される。すなわち、通信装置は、開示される機能を実行するための情報を示す信号を伴う伝送媒体を含む。
【０１１８】
メモリ680は、任意のデータ記憶機構を代表するものであってよい。たとえば、メモリ680は1次メモリおよび/または2次メモリを含み得る。1次メモリは、たとえば、ランダムアクセスメモリ、読取り専用メモリ、不揮発性RAMなどを含み得る。この例では処理ユニット650とは別個のものとして示されているが、1次メモリの全部または一部が処理ユニット650内に設けられるか、あるいは処理ユニット650と共設/結合され得ることを理解されたい。2次メモリは、たとえば、1次メモリおよび/または、たとえばハードディスク(disk)ドライブ、光ディスク(disc)ドライブ、テープドライブ、ソリッドステートメモリドライブなどを含む1つまたは複数のデータストレージデバイス660などのストレージ660と同一のまたは類似するタイプのメモリを含むことができる。
【０１１９】
いくつかの実施形態では、ストレージ660は、3Dモデル、キーフレーム、仮想オブジェクトに関する情報などを含む、環境に関する情報を保持することができる1つまたは複数のデータベースを含むことができる。いくつかの実施形態では、データベース内の情報を、様々な計算中に処理ユニット650によって読み取り、使用し、かつ/または更新することができる。
【０１２０】
いくつかの実装形態では、2次メモリは、非一時的コンピュータ可読媒体676を動作可能に受容するか、または場合によってはそれに結合するように構成され得る。したがって、ある種の例の実施態様では、本明細書で提示される方法および/または装置は、少なくとも1つの処理ユニット650によって実行される場合に本明細書で説明される例の動作のすべてまたは一部を実行することを動作可能に可能にされ得る、その上に記憶されたコンピュータ実施可能命令を含み得る非一時的コンピュータ可読媒体676を使用して全体としてまたは部分的に実施され得る。いくつかの実施形態では、コンピュータ可読媒体676を、リムーバブルメディアドライブ670を使用して読み取ることができ、かつ/またはコンピュータ可読媒体676が、メモリ680の一部を形成することができる。
【０１２１】
本明細書で開示される実施形態は、オブジェクト除去またはオブジェクト置換などの計算的に効率的な複合現実感アプリケーションの基礎としてのSLAMシステムのインフラストラクチャの活用を容易にする。いくつかの実施形態では、MR効率および/またはMR性能は、マスク境界をまたぐ連続性を保証するのに十分な、前景オブジェクトの回りのマスクの境界付近の少数の画素を考慮することによって得ることができ、ライブ画像からの画素は、合成画像からの画素に隣接し、オプティカルフロー計算の結果によって補正される。本明細書で説明される方法論は、応用例に応じて様々な手段によって実施され得る。たとえば、ファームウェアおよび/またはソフトウェア実装形態の場合、これらの方法は、本明細書で説明する機能を実行するモジュール(たとえば、手順、機能など)で実施され得る。命令を有形に具現化するいずれの機械可読媒体も、本明細書で説明する方法を実施する際に使用され得る。たとえば、ソフトウェアコードはメモリに記憶され、プロセッサユニットにより実行され得る。いくつかの実施形態では、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され得る。これらの例には、データ構造により符号化されたコンピュータ可読媒体およびコンピュータプログラムにより符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。
【０１２２】
開示される態様の前の説明は、当業者が本開示を作りまたは使用することを可能にするために提供されるものである。これらの態様に対する様々な変更が、当業者にたやすく明白になり、本明細書で定義される包括的な原理は、本開示の趣旨または範囲から逸脱せずに、他の態様に適用され得る。
【符号の説明】
【０１２３】
100  移動局(MS)
110  カメラ
130  センサバンクまたはセンサ
150  プロセッサ
155  コンピュータビジョン(CV)モジュール
158  3D再構成モジュール
160  メモリ
170  トランシーバ
180  ディスプレイ
192  画像
193  オブジェクト
194  隠消現実感画像
196  媒介現実感画像
197  仮想の鉢植えオブジェクト
197  仮想オブジェクト
300  方法
305  ライブ入力ビデオ画像フレーム
335  サブルーチン
340  隠消現実感画像
345  組み合わされた画像
400  ワークフロー
415  再構成されたシーン
422  ライブ画像
425  マスク
428  前景オブジェクト
432  合成画像
435  領域
445  マスク
445  組み合わされた画像
450  色のにじみ、ゴースト、または他のアーティファクト
465  補正後の組み合わされた画像
500  流れ図
505  3Dモデル
600  サーバ
620  接続
650  処理ユニット
656  コンピュータビジョン(CV)モジュール
658  3D再構成モジュール
660  ストレージ
670  リムーバブルメディアドライブ
676  非一時的コンピュータ可読媒体
680  メモリ
690  通信インターフェース
M  マスク
M'  マスク
S1  合成レンダリング
S2  合成レンダリング
S3  合成レンダリング
【図１】
2016522485.tif 000003
【図２Ａ】
2016522485.tif 000004
【図２Ｂ】
2016522485.tif 000005
【図２Ｃ】
2016522485.tif 000006
【図３Ａ】
2016522485.tif 000007
【図３Ｂ】
2016522485.tif 000008
【図５】
2016522485.tif 000009
【図６】
2016522485.tif 000010
【図４】
2016522485.tif 000011
【国際調査報告】
2016522485.tif 000012
2016522485.tif 000013