(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-06
(45)【発行日】2024-09-17
(54)【発明の名称】拡張現実における深度ベースのリライティング
(51)【国際特許分類】
G06T 15/80 20110101AFI20240909BHJP
G06T 19/00 20110101ALI20240909BHJP
【FI】
G06T15/80
G06T19/00 600
(21)【出願番号】P 2022579142
(86)(22)【出願日】2020-06-22
(86)【国際出願番号】 US2020070163
(87)【国際公開番号】W WO2021262243
(87)【国際公開日】2021-12-30
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ドゥ,ルオフェイ
(72)【発明者】
【氏名】キム,デイビッド
【審査官】▲徳▼田 賢二
(56)【参考文献】
【文献】特開2015-201839(JP,A)
【文献】特開2013-125292(JP,A)
【文献】米国特許出願公開第2013/0271625(US,A1)
【文献】米国特許出願公開第2015/0262412(US,A1)
【文献】国際公開第2019/226366(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/80
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
コンピューティングデバイスの画像センサによって、物理的環境の画像に対応する画像データをキャプチャするステップと、
前記コンピューティングデバイスの深度センサによって、前記物理的環境に対応する深度データを検出するステップと、
前記コンピューティングデバイスのプロセッサによって、前記物理的環境の前記画像に対応する前記画像データから拡張現実(augmented reality:AR)シーンを生成するステップと、
を含み、前記ARシーンを生成するステップは、前記物理的環境の前記画像を暗くして、暗くなった物理的環境をシミュレートするステップを含み、
前記方法は、
前記コンピューティングデバイスの入力デバイスにおいて、前記ARシーンに仮想光源を配置する入力を受付けるステップと、
前記
暗くなった物理的環境における前記仮想光源の配置位置と、前記物理的環境に対応する前記深度データとに基づいて、前記ARシーンのリライティングを行なうステップとを含む、方法。
【請求項2】
前記深度データを検出するステップは、前記物理的環境に対応する深度マップを生成するステップを含む、請求項1に記載の方法。
【請求項3】
前記方法は、
前記画像センサによって、前記物理的環境の前記画像に対応する色データを検出するステップと、
前記物理的環境の前記画像に対応する色マップを生成するステップとを、さらに含み、前記色マップは、前記物理的環境の前記ARシーンの複数の画素の各画素の色特性または反射率特性のうち少なくとも1つを提供する、請求項1または2に記載の方法。
【請求項4】
前記ARシーンのリライティングを行なうステップは、
前記ARシーンにおける前記仮想光源の前記配置位置に対応する、前記物理的環境における前記仮想光源の3次元座標位置を検出するステップと、
前記ARシーンの複数の画素の画素ごとに、
前記仮想光源の強度と前記ARシーンにおける前記仮想光源からの前記画素の距離とに基づいて前記画素の強度レベルを設定するステップと、
前記仮想光源の色と前記仮想光源からの前記画素の前記距離と前記ARシーンにおける前記画素の色とに基づいて前記画素の色を設定するステップと、
前記仮想光源の前記色と前記ARシーンにおける前記画素の前記色とに基づいて前記画素の反射率を設定するステップとを含む、請求項2に記載の方法。
【請求項5】
前記ARシーンのリライティングを行なうステップは、前記ARシーンの前記複数の画素の画素ごとに、
前記深度マップに基づいて前記仮想光源の前記配置位置と前記画素との間の障害物を検出するステップと、
前記検出された障害物に基づいて前記画素についての前記設定された強度レベルと前記設定された色と前記設定された反射率とを調整するステップとを含む、請求項4に記載の方法。
【請求項6】
前記ARシーンのリライティングを行なうステップは、前記複数の画素の画素ごとに、前記調整された強度レベル、前記調整された色、および前記調整された反射率になるよう前記画素のリライティングを行なうステップを含むように
、前記ARシーンのリライティングを行なうステップを含む、請求項
5に記載の方法。
【請求項7】
前記ARシーンのリライティングを行なうステップは、
前記調整された強度レベル、前記調整された色、および前記調整された反射率を前記ARシーンに適用するステップと、
前記調整された強度レベル、前記調整された色、および前記調整された反射率を含む前記ARシーンにおいて前記物理的環境の合成レンダリングを生成するステップと、
前記コンピューティングデバイスのディスプレイデバイス上に前記ARシーンの前記合成レンダリングを表示するステップとを含む、請求項5に記載の方法。
【請求項8】
前記ARシーンのリライティングを行なうステップは、前記複数の画素の画素ごとに、
前記ARシーンにおける前記仮想光源の前記配置位置からの前記画素の距離を検出するステップと、
前記ARシーンにおける前記仮想光源の前記配置位置に対応する位置における前記画素の検出に応答して、前記画素の前記強度、前記色および前記反射率を前記仮想光源の前記強度、前記色および前記反射率に設定するステップとを含む、請求項4に記載の方法。
【請求項9】
前記画素の前記強度は、前記仮想光源と前記画素との間の距離の二乗に反比例する、請求項
8に記載の方法。
【請求項10】
システムであって、
カメラアセンブリと、
ディスプレイデバイスと、
少なくとも1つのプロセッサと、
命令を格納したメモリとを備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記システムに、
前記システムの画像センサによって物理的環境の画像に対応する画像データをキャプチャすることと、
前記システムの深度センサによって前記物理的環境に対応する深度データを検出することと、
前記物理的環境の前記画像に対応する前記画像データから拡張現実(AR)シーンを生成することと、
を含み、前記ARシーンを生成することは、前記物理的環境の前記画像を暗くして、暗くなった物理的環境をシミュレートすることを含み、
前記システムの入力デバイスにおいて前記ARシーンにおける仮想光源の配置に対応する入力を受付けることと、
前記
暗くなった物理的環境における前記仮想光源の配置位置と前記物理的環境に対応する前記深度データとに基づいて
、前記ARシーンのリライティングを行なうこととを行なわせる、システム。
【請求項11】
前記カメラアセンブリは
前記深度センサおよび
前記画像センサを含み、前記命令は、前記システムに、
前記深度センサによって収集された前記深度データに基づいて前記物理的環境の深度マップを生成すること、および/または、
前記画像センサによって収集された前記画像データに基づいて前記物理的環境の色マップを生成することを行なわせ、前記色マップは、前記物理的環境の前記ARシーンについての複数の画素の各画素の色特性または反射率特性のうち少なくとも1つを提供する、請求項
10に記載のシステム。
【請求項12】
前記命令は、前記システムに、
前記ARシーンにおける前記仮想光源の前記配置位置に対応する、前記物理的環境における前記仮想光源の3次元座標位置を検出することと、
前記ARシーンの複数の画素の画素ごとに、
前記仮想光源の強度と前記ARシーンにおける前記仮想光源からの前記画素の距離とに基づいて前記画素の強度レベルを設定することと、
前記仮想光源の色と前記仮想光源からの前記画素の前記距離と前記ARシーンにおける前記画素の色とに基づいて前記画素の色を設定することと、
前記仮想光源の前記色と前記ARシーンにおける前記画素の前記色とに基づいて前記画素の反射率を設定することとを行なわせる、請求項
11に記載のシステム。
【請求項13】
前記命令は、前記システムに、
前記深度マップに基づいて、前記ARシーンにおける前記仮想光源の前記配置位置と前記画素との間の障害物を検出することと、
前記検出された障害物に基づいて、前記画素についての前記設定された強度レベルと前記設定された色と前記設定された反射率とを調整することとを行なわせる、請求項
12に記載のシステム。
【請求項14】
前記ARシーンのリライティングを行なうことは、前記複数の画素の画素ごとに、
前記調整された強度レベル、前記調整された色および前記調整された反射率になるように前記画素のリライティングを行なうことを含む、請求項
13に記載のシステム。
【請求項15】
前記命令は、前記システムに、
前記調整された強度レベル、前記調整された色および前記調整された反射率を前記ARシーンに適用することと、
前記調整された強度レベル、前記調整された色および前記調整された反射率を含む前記ARシーンにおいて前記物理的環境の合成レンダリングを生成することと、
前記ARシーンの前記合成レンダリングを前記ディスプレイデバイスに表示することとを行なわせる、請求項
13に記載のシステム。
【請求項16】
前記命令は、前記システムに、前記複数の画素の画素ごとに、
前記ARシーンにおける前記仮想光源の前記配置位置からの前記画素の距離を検出することと、
前記ARシーンにおける前記仮想光源の前記配置位置に対応する位置における前記画素の検出に応答して、前記画素の前記強度レベル、前記色および前記反射率を前記仮想光源の前記強度、前記色および前記反射率に設定することとを行なわせる、請求項
12に記載のシステム。
【請求項17】
前記画素の前記強度レベルは、前記仮想光源と前記画素との間の距離の二乗に反比例する、請求項
16に記載のシステム。
【請求項18】
請求項1~
9のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本明細書は拡張現実(augmented reality:AR)に関し、特にARのためのライティング(lighting)に関する。
【背景技術】
【0002】
背景
拡張現実(AR)環境は、ARシーンを生成するために仮想要素を物理的要素と融合し得る。いくつかの状況では、ARシーンは、様々な視覚効果を追加することによって強調され得る。例えば、いくつかの状況では、ARシーンは、アニメーション、ライティング等によって強調され得る。ARにおけるライティングは、特にARシーン内の要素がずれるかまたは変化するのに応じてARシーン内で仮想要素を物理的要素と融合させる際に問題を引起こす恐れがある。実質的にリアルタイムでのARシーンにおけるリライティング(relighting)により、より興味を引く魅力的なおよび/またはより現実的なユーザ体験が提供され得る。しかしながら、ARシーンの動的性質および他の同様の要因のせいで、実質的にリアルタイムでARシーンのリライティングを行なうことは困難である。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
概略的な一局面では、コンピュータにより実現される方法は、コンピューティングデバイスの画像センサによって、物理的環境の画像に対応する画像データをキャプチャするステップと、コンピューティングデバイスの深度センサによって、物理的環境に対応する深度データを検出するステップと、コンピューティングデバイスのプロセッサによって、物理的環境の画像に対応する画像データから拡張現実(AR)シーンを生成するステップと、コンピューティングデバイスの入力デバイスにおいて、ARシーンに仮想光源を配置する入力を受付けるステップと、ARシーンにおける仮想光源の配置位置と物理的環境に対応する深度データとに基づいてARシーンのリライティングを行なうステップとを含み得る。
【0004】
いくつかの実現例では、深度データを検出するステップは、物理的環境に対応する深度マップを生成するステップを含み得る。いくつかの実現例では、当該方法はまた、当該画像センサによって当該物理的環境の当該画像に対応する色データを検出するステップと、当該物理的環境の当該画像に対応する色マップを生成するステップとを含み、当該色マップは、当該物理的環境の当該ARシーンの複数の画素の各画素の色特性または反射率特性のうち少なくとも1つを提供する。
【0005】
いくつかの実現例では、当該ARシーンのリライティングを行なうステップは、当該ARシーンにおける当該仮想光源の当該配置位置に対応する、当該物理的環境における当該仮想光源の3次元座標位置を検出するステップを含み得る。いくつかの実現例では、当該方法は、当該ARシーンの複数の画素の画素ごとに、当該仮想光源の強度と当該ARシーンにおける当該仮想光源からの当該画素の距離とに基づいて当該画素の強度レベルを設定するステップと、当該仮想光源の色と当該仮想光源からの当該画素の距離と当該ARシーンにおける当該画素の色とに基づいて当該画素の色を設定するステップと、当該仮想光源の当該色と当該ARシーンにおける当該画素の当該色とに基づいて当該画素の反射率を設定するステップとを含み得る。
【0006】
いくつかの実現例では、当該ARシーンのリライティングを行なうステップは、当該ARシーンの当該複数の画素の画素ごとに、当該深度マップに基づいて当該仮想光源の当該配置位置と当該画素との間の障害物を検出するステップと、当該検出された障害物に基づいて当該画素についての当該設定された強度レベルと当該設定された色と当該設定された反射率とを調整するステップとを含み得る。いくつかの実現例では、当該ARシーンを生成するステップは、当該物理的環境の当該画像を暗くして、暗くなった物理的環境をシミュレートするステップを含み得る。いくつかの実現例では、当該ARシーンのリライティングを行なうステップは、当該複数の画素の画素ごとに、当該調整された強度レベル、当該調整された色、および当該調整された反射率になるよう当該画素のリライティングを行なうステップを含むように、暗くなった当該ARシーンのリライティングを行なうステップを含み得る。
【0007】
いくつかの実現例では、当該ARシーンのリライティングを行なうステップは、当該調整された強度レベル、当該調整された色、および当該調整された反射率を当該ARシーンに適用するステップと、当該調整された強度レベル、当該調整された色、および当該調整された反射率を含む当該ARシーンにおいて当該物理的環境の合成レンダリングを生成するステップと、当該コンピューティングデバイスのディスプレイデバイス上に当該ARシーンの当該合成レンダリングを表示するステップとを含み得る。いくつかの実現例では、当該ARシーンのリライティングを行なうステップは、当該複数の画素の画素ごとに、当該ARシーンにおける当該仮想光源の当該配置位置からの当該画素の距離を検出するステップと、当該ARシーンにおける当該仮想光源の当該配置位置に対応する位置における当該画素の検出に応答して、当該画素の当該強度、当該色および当該反射率を当該仮想光源の当該強度、当該色および当該反射率に設定するステップとを含み得る。いくつかの実現例では、当該画素の当該強度は、当該仮想光源と当該画素との間の距離の二乗に反比例し得る。
【0008】
別の概略的な局面では、システムは、カメラアセンブリと、ディスプレイデバイスと、少なくとも1つのプロセッサと、命令を格納したメモリとを備え、当該命令は、当該少なくとも1つのプロセッサによって実行されると、当該システムに、物理的環境の画像に対応する画像データをキャプチャすることと、当該物理的環境に対応する深度データを検出することと、当該物理的環境の当該画像に対応する当該画像データから拡張現実(AR)シーンを生成することと、当該ARシーンにおける仮想光源の配置に対応する入力を受付けることと、当該ARシーンにおける当該仮想光源の配置位置と当該物理的環境に対応する当該深度データとに基づいて当該ARシーンのリライティングを行なうこととを行なわせる。
【0009】
いくつかの実現例では、当該カメラアセンブリは深度センサおよび画像センサを含み、当該命令は、当該システムに、当該深度センサによって収集された当該深度データに基づいて当該物理的環境の深度マップを生成することと、当該画像センサによって収集された当該画像データに基づいて当該物理的環境の色マップを生成することとを行なわせ、当該色マップは、当該物理的環境の当該ARシーンについての複数の画素の各画素の色特性または反射率特性のうち少なくとも1つを提供する。
【0010】
いくつかの実現例では、当該命令は、当該システムに、当該ARシーンにおける当該仮想光源の当該配置位置に対応する、当該物理的環境における当該仮想光源の3次元座標位置を検出することと、当該ARシーンの当該複数の画素の画素ごとに、当該仮想光源の強度と当該ARシーンにおける当該仮想光源からの当該画素の距離とに基づいて当該画素の強度レベルを設定することと、当該仮想光源の色と当該仮想光源からの当該画素の距離と当該ARシーンにおける当該画素の色とに基づいて当該画素の色を設定することと、当該仮想光源の当該色と当該ARシーンにおける当該画素の当該色とに基づいて当該画素の反射率を設定することとを行なわせ得る。
【0011】
いくつかの実現例では、当該命令は、当該システムに、当該深度マップに基づいて、当該ARシーンにおける当該仮想光源の当該配置位置と当該画素との間の障害物を検出することと、当該検出された障害物に基づいて、当該画素についての当該設定された強度レベルと当該設定された色と当該設定された反射率とを調整することとを行なわせ得る。いくつかの実現例では、当該命令は、当該システムに、当該ARシーンにおける当該物理的環境の当該画像を暗くして、暗くなった物理的環境をシミュレートすることと、当該暗くなったARシーンのリライティングを行なうこととを行なわせ得るとともに、当該暗くなったARシーンのリライティングを行なうことは、当該複数の画素の画素ごとに、当該調整された強度レベル、当該調整された色および当該調整された反射率になるよう当該画素のリライティングを行なうことを含む。いくつかの実現例では、当該命令は、当該システムに、当該調整された強度レベル、当該調整された色および当該調整された反射率を当該ARシーンに適用することと、当該調整された強度レベル、当該調整された色および当該調整された反射率を含む当該ARシーンにおいて当該物理的環境の合成レンダリングを生成することと、当該ARシーンの当該合成レンダリングを当該ディスプレイデバイスに表示することとを行なわせ得る。
【0012】
いくつかの実現例では、当該命令は、当該システムに、当該複数の画素の画素ごとに、当該ARシーンにおける当該仮想光源の当該配置位置からの当該画素の距離を検出することと、当該ARシーンにおける当該仮想光源の当該配置位置に対応する位置における当該画素の検出に応答して、当該画素の当該強度、当該色および当該反射率を当該仮想光源の当該強度、当該色および当該反射率に設定することとを行なわせ得る。いくつかの実現例では、当該画素の当該強度は、当該仮想光源と当該画素との間の距離の二乗に反比例し得る。
【図面の簡単な説明】
【0013】
【
図1】例示的な一実現例に従った、ARシーンの深度ベースのリライティングのためのデータシステムを示すブロック図である。
【
図2】例示的な一実現例に従った、物理的環境における例示的なコンピューティングデバイスのユーザ操作を第三者視点で示す図ある。
【
図3A】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図3B】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図3C】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図3D】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図3E】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図3F】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図4】例示的な一実現例に従った、ARシーンのリライティングを行なう例示的な方法を示すフローチャートである。
【
図5】例示的な一実現例に従った、レイマーチング(ray marching)の例示的な方法を示すフローチャートである。
【
図6】例示的な一実現例に従った、ARシーンにおけるレイマーチングのための例示的なアルゴリズムを示す図である。
【
図7A】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図7B】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図7C】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図7D】例示的な一実現例に従った、ユーザ入力に応答した例示的なARシーンのライティングおよびリライティングを示す図である。
【
図8A】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図8B】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図8C】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図8D】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図8E】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図8F】例示的な一実現例に従った、顔面のリライティングの例を示す図である。
【
図9】本明細書に記載の技術と共に用いられ得るコンピューティングデバイスおよびモバイルコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【0014】
これらの図は、いくつかの例示的な実現例において利用される方法、構造または材料の一般的な特徴を示すこと、および以下に記載の説明を補足することを意図していることに留意されたい。しかしながら、これらの図面は、縮尺通りではなく、任意の所与の実現例の正確な構造上または性能上の特徴を正確に反映しない可能性もあり、例示的な実現例によって包含される値または特性の範囲を定義または限定するものとして解釈されるべきではない。様々な図面中で同様または同一の参照番号を用いる場合、同様または同一の要素または特徴の存在を示すことを意図している。
【0015】
詳細な説明
本開示は、ユーザが、例えばARシーンにおいて仮想コンテンツを閲覧および体験することを可能にするための仮想現実(virtual reality:VR)および/または拡張現実(AR)体験および技術に関する。本明細書に記載の実現例に従ったシステムおよび方法は、コンピューティングデバイスによって生成されるとともに実質的にリアルタイムまたはほぼリアルタイムでコンピューティングデバイスのカメラビューに表示されるARシーンのリライティングを施して、より現実的な効果を提供し得るとともに、ARシーンを用いたユーザ体験を向上させ得る。例えば、いくつかの実現例では、このようなリアルタイムでのシーンのリライティングは、仮想光源がコンピューティングデバイスのカメラビューにおけるARシーン内の物理的世界を照らすことを可能にし得る。いくつかの実現例では、このようなリアルタイムでのシーンのリライティングは、仮想光源がずれるのに応じて、および/またはARシーン内の物理的世界の視野がずれるのに応じて、ARシーンの動的なリライティングを提供し得る。いくつかの実現例では、仮想ライティング源は、例えば、コンピューティングデバイスの深度センサによって収集された深度データ等の深度データに基づいて、AR体験時に物理的世界を照明し得る。
【0016】
図1は、例示的な一実現例に従った、深度ベースの実質的にリアルタイムでのARシーンのリライティングを提供するための例示的なシステム100を示すブロック図である。
図1に示すように、例示的なシステム100は、ネットワーク108を介して外部ソース106からコンテンツを受信することができる例示的なコンピューティングデバイス102を含み得る。例示的なコンピューティングデバイス102は、メモリ110と、プロセッサアセンブリ112と、通信モジュール114と、検知システム116と、ディスプレイデバイス118とを含み得る。いくつかの実現例では、コンピューティングデバイス102は、例えば、触知式のユーザ入力を受付け可能なタッチ入力デバイス、可聴式のユーザ入力を受付け可能なマイクロフォン等の様々なユーザ入力デバイス132を含み得る。いくつかの実現例では、他の外部/周辺デバイスは入力デバイスと通信し得るとともに入力デバイスとして機能し得る。いくつかの実現例では、コンピューティングデバイス102は、例えば、視覚出力のためのディスプレイ、音声出力のためのスピーカ等の1つ以上の出力デバイス134を含み得る。いくつかの実現例では、メモリ110は、ARアプリケーション120、画像バッファ124、画像アナライザ126、コンピュータビジョンシステム128、およびレンダリングエンジン130等を含み得る。いくつかの実現例では、コンピュータビジョンシステム128は、コンピューティングデバイス102によって表示されるARコンテンツのための適切なライティングを推定すること、ARシーンからライティング情報を抽出すること等を行なうライティング推定器を含み得る。いくつかの実現例では、検知システム116は、例えば、カメラシステム136、例えば慣性測定ユニットセンサ(すなわち、加速度計、ジャイロスコープ、磁力計など)を含む位置追跡システム136、画像センサ、距離/近接センサ、音声センサ、および他のタイプのセンサを含み得る。
【0017】
いくつかの実現例では、コンピューティングデバイス102は、ARコンテンツをユーザに提供または出力するように構成され得るモバイルコンピューティングデバイス、例えば、スマートフォン、スマートグラスまたは他のタイプの頭部装着型ディスプレイデバイス、スマートウォッチ、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイスなどであり得る。
【0018】
メモリ110は、1つ以上の非一時的なコンピュータ可読記憶媒体を含み得る。メモリ110は、ユーザのためのAR環境を生成するために使用可能な命令およびデータを格納し得る。
【0019】
プロセッサアセンブリ112は、本明細書に記載のシステムおよび方法に関連する様々なタスクを実行するために、メモリ110に格納された命令等の命令を実行可能な1つ以上のデバイスを含み得る。例えば、プロセッサアセンブリ112は、中央処理装置(central processing unit:CPU)および/またはグラフィックスプロセッサユニット(graphics processor unit:GPU)を含み得る。例えば、GPUが存在する場合、いくつかの画像/映像レンダリングタスクがCPUからGPUにオフロードされてもよい。
【0020】
通信モジュール114は、例えば、外部コンピューティングデバイス、外部コンテンツソース106等の他のコンピューティングデバイスと通信するための1つ以上のデバイスを含み得る。通信モジュール114は、ネットワーク108等の無線または有線のネットワークを介して通信し得る。
【0021】
カメラアセンブリ136は、コンピューティングデバイス102の周囲の物理的環境または空間の画像(例えば、静止画像および/もしくは動画像または映像)をキャプチャすることができる。いくつかの実現例では、カメラアセンブリ136は1つ以上のカメラを含み得る。いくつかの実現例では、カメラアセンブリ136は1つ以上の深度センサ、赤外線カメラ等を含み得る。
【0022】
図2は、コンピューティングデバイス300を用いる例示的な物理的環境1000または部屋1000内のユーザを示す。
図2に示す例では、単に説明および例示を目的として、例示的なコンピューティングデバイス300はユーザによって保持されるスマートフォン等の手持ち式モバイルコンピューティングデバイスの形態である。上述したように、本明細書に記載する原理は、本明細書に記載の実現例に従ったシステムが、モバイルでのAR体験時に現実世界の物理的エンティティを照らすための仮想ライティング源を提供し得るように、様々なタイプのコンピューティングデバイスに適用され得る。
図2に示す例示的なコンピューティングデバイス300はカメラアセンブリ330を含む。いくつかの実現例では、カメラアセンブリ330の視野またはライブビューファインダ内のオブジェクトは、コンピューティングデバイス300のディスプレイデバイス310上でユーザにとって可視であり得る。いくつかの実現例では、カメラアセンブリ330は、例えば、静止画像および/または動画像をキャプチャする前向きカメラおよび/または後向きカメラ等の1つ以上のカメラと、他のタイプの画像センサと、1つ以上の深度センサと、1つ以上の光センサと、他のこのような構成要素とを含み得る。
【0023】
仮想要素(例えば、仮想オブジェクトまたはARオブジェクト)を物理的世界と融合してARシーンを展開(例えば、生成、定義)することは、ARシーンの要素(すなわち、仮想要素/AR要素および物理要素の両方)だけでなく、ライティングや、要素の移動、(例えば、コンピューティングデバイスの移動に起因する)ARシーンのカメラビューによる遠近感の変更等に応じたARシーンのリライティング等についても、それらを意味論的にインスタンスレベルで把握することに依拠し得る。本明細書に記載の実現例に従ったシステムおよび方法では、仮想光は、リアルタイムで、または実質的にリアルタイムで、数学的近似および光の伝搬を用いて、ARシーンに配置される仮想光源によって生成される。本明細書に記載の実現例に従ったシステムおよび方法は、ARシーンのライティングおよびリライティングの際に、オクルージョン、仮想光源の位置の変化、ARシーン内の(仮想的および物理的)要素の視点の変化、ならびに他のこのような要因を考慮し得る。
【0024】
図3A~
図3Fは、物理的環境1000のうち対応する部分のカメラビューに配置された、例示的な仮想光源を含む1つ以上のAR要素を含むARシーンの展開図を示す。カメラビューは、コンピューティングデバイス300のカメラアセンブリ330のビューファインダ内または視野内でキャプチャされ得るとともに、コンピューティングデバイス300のディスプレイデバイス310上で可視であり得る。
【0025】
図3Aに示すように、物理的環境1000または部屋1000のうちカメラアセンブリ330の前向きカメラ336の視野内にキャプチャされた部分は、ディスプレイデバイス310上でユーザが視認可能なARシーン400を展開するように、コンピューティングデバイス300のディスプレイデバイス310上に表示され得る。ARシーン400を生成する際、ユーザは、物理的環境1000を含むARシーン400内に仮想光源410を配置すること、またはARシーン400のリライティングを行なうことを望む可能性がある。ユーザは、ディスプレイデバイス310に表示されたメニューバー312からライティングモードまたはリライティングモードを選択し得る。
図3Aでは、ユーザによるライティングモードまたはリライティングモードの選択に応答して、ARシーン400についてのベースが、
図3Bに示すようにディスプレイデバイス310上で視認可能である。この特定の例では、物理的環境1000のうちカメラアセンブリ330のビューファインダまたは視野内の部分は、ライティングモードまたはリライティングモードを選択することに応答して、暗い状態(すなわち、周囲のライティングなし)で表示される。ディスプレイデバイス310がタッチ入力を受付け可能なタッチ入力ディスプレイデバイス310である構成では、ユーザは、
図3Cに示すように、ARシーン400のうちユーザが光源を配置したい位置に対応する位置において、ディスプレイデバイス310にタッチ入力を適用し得る。これにより、
図3Dに示すように、ARシーン400内においてユーザによって選択された位置であってこの例では物理的環境1000内の位置に対応する位置において、ARシーン400内に仮想光源410を配置することが可能になり得る。
【0026】
上述のとおり仮想光源410を配置することで、
図3Bに示す比較的暗い状態から
図3Dに示す比較的明るい状態へとARシーン400が照明され得る。いくつかの実現例では、ユーザは、仮想光源410の特性または特徴を選択および/または調整し得る。例えば、いくつかの実現例では、ユーザは、仮想光源410の位置決めを調整または移動させてもよい。いくつかの実現例では、ユーザは、仮想光源410が発する光の色を選択および/または変更し得る。いくつかの実現例では、ユーザは、仮想光源410が発する光の強度を選択および/または変更し得る。
【0027】
図3Eは、物理的環境1000内の物理的要素に対するコンピューティングデバイス300の位置、または視点が、
図3Dに示す構成と比べてずれている例示的な構成を示す。
【0028】
図3Fは、複数の仮想光源410A、410Bおよび410Cが、ARシーン400のうち、物理的環境1000内の3つの異なる位置にそれぞれ対応する別々の位置に配置されている例示的な構成を示す。複数の仮想光源410を物理的環境1000のARシーンに組込むことにより、複数の光源410からの光の伝搬によって得られる照明が干渉、衝突または交差する可能性があるため、レンダリングに関して課題が生じる。この状況では、複数の光源410の各々によって得られる照明は線形の2D空間内の線形成分に個々に変換され、次いで、当該照明はARシーン400の3D照明のために混合および変換され得る。
【0029】
本明細書に記載の実現例に従ったシステムおよび方法は、ARシーンにおける仮想光源の配置および/または調整に応答して現実的なライティング効果を提供し得る。すなわち、仮想光源が発する光の位置決め、色、強度および他のこのような特徴が調整されるのに応じて、ARシーンの照明に関する明暗/陰影、色、強度および他のこのような要因が調整され得る。
図3A~
図3Dに関して上述され本明細書でさらに説明されるARシーン400のライティングおよびリライティングを行なうための例示的な手法は、現実的な効果を得るために仮想ライティングが適用および/または調整されるべきである多数の状況において適用され得る。例えば、本明細書に記載の原理が適用され得る状況とは、ユーザが、ARシーンの生成時に顔面のリライティングを行なうかまたは他の特別な効果を得るために、昼光条件下で部屋の画像をキャプチャしながら、暗い部屋内の電灯によって生成され得るライティング効果をシミュレートすることを望むような状況である。
【0030】
実質的にリアルタイムでの比較的現実的な物理的環境のライティングおよびリライティングは、物理的環境、特に、例えば、境界、物理的境界内の物理的オブジェクト等を含む物理的環境の物理的局面、を把握することに依拠し得る。例えば、
図2に示す部屋1000等の物理的環境のライティングおよびリライティングは、例えば、壁によって規定される境界の位置決めを把握することに依拠し得る。これはまた、物理的要素、例えば、部屋1000内の家具、装飾品、窓、ドア等の特徴を把握することに依拠し得る。いくつかの実現例では、これらの特徴は、例えば、物理的要素の位置決め、形状、輪郭等を含み得る。いくつかの実現例では、これらの特徴は、部屋1000内の物理的要素の反射率、コンピューティングデバイス300のカメラアセンブリ330から部屋1000内の物理的要素までの距離のマッピング等を含み得る。
【0031】
いくつかの実現例では、コンピューティングデバイス300は深度センサ338を含み得る。いくつかの実現例では、深度センサ338はカメラアセンブリ330とは別個であり得る。いくつかの実現例では、深度センサ338は、カメラアセンブリ330に含まれてもよく、および/またはカメラ336と共に動作してもよい。上述したように、カメラアセンブリ330は、物理的環境1000の画像情報、例えば、物理的環境1000のうち、カメラアセンブリ330の視野内またはビューファインダ内にあってコンピューティングデバイス300のディスプレイデバイス310上でユーザが視認可能な部分、をキャプチャし得る。カメラアセンブリ330がこの画像情報をキャプチャすると、深度センサ338は深度データを検出または収集し得る。深度センサ338によって検出された深度データは、物理的環境1000の深度マップを展開するために用いられ得る。深度マップにより、コンピューティングデバイス300に対する物理的環境1000内の物理的要素の位置が把握され得る。例えば、深度マップは、物理的環境1000およびその中の物理的要素の3次元(three-dimensional:3D)座標マッピングを提供し得る。深度マップ、特に、ユーザが物理的環境1000のうちカメラアセンブリ330/コンピューティングデバイス300の深度センサ338の視野内にある部分をキャプチャするのに応じて実質的にリアルタイムで展開され得る実際の深度マップを用いて、(仮想光源等の)仮想オブジェクトを正確に合成し、物理的障害物、障壁等の背後に位置する領域を遮ることにより、適切なライティング、明暗等を提供し得る。
【0032】
いくつかの実現例では、システムは、このように生成された深度マップを利用して入力(例えば、
図3Cに示すタッチ入力)を処理することで、ARシーン400におけるタッチ入力の位置を(例えば、仮想光源410の位置決めのために)物理的環境1000における3Dワールド空間座標に関連付けてもよい。当該システムは、物理的環境1000内の物理的要素についての(深度マップからも得られる)知識と共に仮想光源410の配置に関連する3Dワールド空間座標を用いて、仮想光源410からの光を、ARシーン400を構成する画像の各画素へと進ませ得る。これにより、仮想光源410の配置に基づいて物理的環境1000のARシーン400の比較的現実的なライティングおよびリライティングを行なうことが可能になり得る。
【0033】
図4は、本明細書に記載の実現例に従った、例示的なARシーン400の画素のリライティングを行なう例示的な方法500のフローチャートである。
図5は、本明細書に記載の実現例に従った、例示的なARシーン400の画素のリライティングを達成するためのレイマーチングの例示的な方法550を示すフローチャートである。
【0034】
図4に示すように、
図3A~
図3Fに関して上述した物理的環境1000等の物理的環境の画像または一連の画像はコンピューティングデバイス300のカメラアセンブリ330によってキャプチャされ得る(ブロック510)。物理的環境1000の画像は、
図3A~
図3Fに示すように、コンピューティングデバイス310のディスプレイデバイス310上で可視であり得る。例えば、
図3Cに示すタッチスクリーンディスプレイデバイス310上のタッチ入力等の、ARシーン400における仮想光源410の配置のためのユーザ入力の検出(ブロック520)に応答して、システムは、物理的環境1000の深度マップおよび/または色マップを展開(例えば、生成、定義)し得る(ブロック530)。上述したように、いくつかの実現例では、コンピューティングデバイス300は、カメラアセンブリ330とは別個であるかまたはカメラアセンブリ330と共に含まれる深度センサ338を含み得る。カメラアセンブリが物理的環境1000の画像情報をキャプチャすると、深度センサ338は、物理的環境1000内の物理的要素を特徴付ける深度データを検出および/または収集して、物理的環境の深度マップを展開し得る(ブロック530)。いくつかの実現例では、カメラアセンブリ330の画像センサ336またはカメラ336は、キャプチャされた画像の色情報を分析し、物理的環境1000の色マップを展開し得る(ブロック530)。色マップにより、例えば、物理的環境1000内の物理的要素に関連する反射率が把握され得る。ARシーン4000に表示される物理的環境1000は、深度マップから導出された深度データと、色マップから導出された色特性/反射率特性とに基づいて、画素ごとに把握され得る。
【0035】
ARシーン400における仮想光源410の配置のためのユーザ入力(例えば、
図3Cに示すタッチスクリーンディスプレイデバイス310上のタッチ入力など)の検出に応答して、システムは、当該タッチ入力に関連付けられた2次元(two-dimensional:2D)座標を取得(例えば、受付け)し得る(ブロック540)。ディスプレイデバイス310上に表示されるARシーン400内のタッチ入力の2D座標は、(3D座標が関連付けられた)物理的環境1000内の位置と相互に関連し得る(ブロック550)。仮想光源410は、
図3Dに示すように、ディスプレイデバイス310上のタッチ入力の位置に対応するとともに物理的環境1000内の3D位置に対応するように、ARシーン400に配置され得る。
【0036】
仮想光源410は、深度マップから導出された深度データおよび/または色マップから導出された色データ/反射率データに基づいてARシーン400を照明し得る。すなわち、仮想光源410からのARシーン400の(物理的環境1000内の物理的要素に対応する)各画素の距離は、深度マップから、画素ごとに把握され得る。同様に、ARシーン400の(物理的環境1000内の物理的要素に対応する)各画素の反射率は、色マップから、画素ごとに把握され得る。ARシーン400の各画素のライティングおよび/またはリライティングは深度および反射率/色の情報に基づいて実行されてもよく、これにより、例えば、視野、光の強度、光の色および他のこのような特徴等の特徴の変化に応じて、実質的にリアルタイムで、仮想光源410の配置位置およびARシーン400のリライティングに基づいてARシーン400の現実的なライティングを行なうことが可能となり得る。
【0037】
上述のとおりARシーン400のライティングおよび/またはリライティングを行なう際、当該システムは、深度マップおよび色マップをGPUにコピーし得るとともに、ARシーン内の画素に関する現在の初期累積強度値を設定し得る(ブロック550)。いくつかの実現例では、当該システムは、ARシーンにおける画素ごとに現在の初期累積強度値を設定してもよい。いくつかの実現例では、当該システムは、ARシーン内の画素のサブセットに関する現在の初期累積強度値を設定し得る。いくつかの実現例では、システムは現在の初期累積強度値をゼロに設定し得る。いくつかの実現例では、システムは現在の初期強度値を別の値に設定してもよい。次いで、システムは、ARシーン400を画素ごとに分析して、光線をARシーン400内に進ませて、各画素に適用されるべきライティング強度を決定し得る(ブロック560)。いくつかの実現例では、画素ごとの分析を行う際、システムは、ARシーン400の画素ごとに、画素が仮想光源410と重なり合っているかどうか判断し得る(ブロック570)。いくつかの実現例では、画素ごとの分析を行う際、システムは、仮想光源410の深度値が画素の深度値よりも大きいかどうか判断し得る(ブロック570)。画素が仮想光源410と重なり合っており、仮想光源410の深度値が画素の深度値よりも大きいという判断は、画素が仮想光源410と同時に存在するかもしくは同じ位置にあること、および/または、物理的環境1000内の(ARシーン400に含まれる)要素が位置決めされた仮想光源410によって不明瞭になり得ること、を示し得る。この場合、画素は、仮想光源410の固有の色および/または強度を累積させるかまたはそれに設定される(ブロック575)。
【0038】
画素が仮想光源410と重なり合っていない、および/または、仮想光源410の深度値が画素の深度値未満である、と判断されると、アルゴリズムに基づいて深度マップおよび/または色マップに従って画素のライティングがトリガされ得る(ブロック580A)。いくつかの実現例では、画素のライティングは仮想光源410からの画素の距離に基づき得る(ブロック580B)。いくつかの実現例では、画素のライティングは、物理的環境1000内の物理的要素が仮想シーンとARシーン400内の対応する画素との間の光を遮り得るかまたは何らかの方法で遮断し得るか否かの判断に基づき得る(ブロック580C)。いくつかの実現例では、1つ以上の光線が仮想光源410からARシーン400内へと外向きに伝搬されてもよく、この場合、仮想光源410からの距離が変化するにつれて光の強度が変化し得る(例えば、仮想光源410からの距離が増えるにつれて光の強度が低下し得る)(ブロック580Dおよび580E)。このプロセスは、全ての画素が分析されたと判断されるまで画素ごとに繰返されてもよい(ブロック590)。
【0039】
図5は、
図4(特に、
図4のブロック580)に関して上述したレイマーチングアルゴリズムの例示的な方法のフローチャートである。
図5に示すように、当該システムは、仮想光源410の配置位置に基づいて、ARシーン400内で光線を画素ごとに進ませるために初期化され得る(ブロック581)。システムを初期化することは、例えば、対応する実世界の位置/物理的環境1000における現在の画素の位置として、レイマーチング位置または光子位置を初期化することを含み得る。システムを初期化することはまた、仮想光源と現在の画素との間に延びる光線またはベクトルとしてレイマーチング方向を初期化することを含み得る。システムを初期化することはまた、現在の画素の初期累積強度をゼロに設定することを含み得る。
【0040】
現在の画素についての光子位置が仮想光源の位置と同じでないかまたは仮想光源の位置内にないと判断される(ブロック582)場合、かつ、進められるべき光/光線が薄明光線ではないと判断される(ブロック583)場合、現在の画素の光子エネルギが、仮想光源の位置に対する現在の画素の光子位置に関連付けられた任意のオクルージョン要因および決定された距離に基づいて評価され得る(ブロック585)。例えば、いくつかの実現例では、仮想光源410の配置位置から物理的環境1000内に光を伝搬することにより、現在の画素が例えば物理的環境1000内の物理的要素によって遮られるかまたは遮断される場合、光子エネルギが比較的有意に低下する可能性がある。加えて、一般に、仮想光源410からの現在の画素の光子位置の距離が長いほど、強度はより小さくまたはより弱くなるだろう。すなわち、一般に、仮想光源410から伝搬する光線の強度は、仮想光源410からの距離が伸びるにつれて低下するだろう。例えば、いくつかの実現例では、強度は仮想光源410からの距離に反比例してもよい。例えば、いくつかの実現例では、この関係は、強度α1/(距離2)という逆二乗法則に従い得る。この場合、(この例では、画素における)強度は光源(この例では、仮想光源410)からの距離の二乗に反比例している。強度は、仮想光源410からの各画素の距離に基づいてARシーン400の画素ごとに累積されてもよく、対応する光線が進められてもよく、ARシーン400には、ARシーン400内の各画素の累積強度を用いてライティングまたはリライティングが行なわれてもよい(ブロック586および587)。
【0041】
進められるべき光/光線が薄明光線であると判断された場合(ブロック583)、3Dジッタを光線方向に投入して(ブロック584)から、仮想光源からの距離と現在の画素に関連する任意のオクルージョン要因とに基づいて現在の画素の光子エネルギを評価し得る(ブロック585)。いくつかの実現例では、薄明光線は、光の本質的に直接的な伝搬ではなく、例えば、塵埃、霧および光による光の歪みまたは分散または散乱を表わす可能性もある。
【0042】
上述したように、レイマーチングベースのアルゴリズムは、例えば、上述したARシーン400または他のARシーン等のARシーンの実質的にリアルタイムでのライティングおよびリライティングをもたらし得る。いくつかの実現例では、このタイプのアルゴリズムへの例示的な入力は、例えば、上述したように、例えばカメラアセンブリ330、画像センサ336および深度センサ338によって提供される深度マップ、色マップおよび画像からのデータを含み得る。いくつかの実現例では、このタイプのアルゴリズムへの例示的な入力はまた、1つ以上の仮想光源、例えば上述した仮想光源410など、各仮想光源についての関連する位置、各仮想光源についての関連する強度、各仮想光源についての関連する色、および他のこのような特徴を含み得る。いくつかの実現例では、このタイプのアルゴリズムの例示的な出力は、物理的環境および1つ以上の仮想光源を含むARシーンについての、リライティングが施された画像であり得る。例示的なアルゴリズムを
図6に示す。
【0043】
上述したように、本明細書に記載の実現例に従ったシステムおよび方法は、ユーザが、リアルタイムで3Dの物理的な環境または実世界に仮想光源を固定して、そこで3Dの物理的な実世界の要素の現実的なライティングおよびリライティングを行なうことを可能にし得る。本明細書に記載の実現例に従ったシステムおよび方法は、生成すべき特定のARシーンのために実質的にリアルタイムで展開された実際の深度マップに基づいて、実質的にリアルタイムのライティングおよびリライティングを提供し得る。いくつかの実現例では、ARシーン400に組込まれるべき仮想ライティングの1つ以上の特徴が改変または変更され得る。例えば、いくつかの実現例では、複数の仮想光源がARシーン400に配置され得る。いくつかの実現例では、コンピューティングデバイス上で見られる物理的環境の視野は、例えば、コンピューティングデバイスの移動、仮想光源による物理的環境の照明の変更の推進、およびARシーンに示す物理的環境の対応するリライティングに基づいて変化し得る。
【0044】
上述の例は、説明および例示を目的として点光源に関して説明されている。本明細書に記載の原理は、例えば、表面ライティング源、半球ライティング源等の物理的環境のARシーンに組込まれ得る他のタイプの仮想光源に適用されてもよい。同様に、本明細書に記載の原理は、ARシーンにおいて表わされる空間内の様々なタイプのライティングをシミュレートするために適用され得る。例えば、本明細書に記載の実現例に従ったシステムおよび方法は、ARシーン内の仮想光源の強度および色温度を変更することによって、例えば、昼間または夜間のライティング条件、早朝、日中、夕方のライティング条件等の様々な自然のライティング条件をシミュレートしてもよい。さらに、上述の例は、単に説明および例示の目的で、物理的要素を含む物理的環境の仮想ライティングの適用に関して説明されている。本明細書に記載の原理は、他のタイプのARシーンにおけるライティング、人物像/顔面のライティング等に適用され得る。
【0045】
図7A~
図7Dは、本明細書に記載の実現例に従った、コンピューティングデバイス300のディスプレイデバイス310上で見られるような、(
図3A~
図3Fに示す)物理的環境1000を含むARシーン400のライティングまたはリライティングを示す。一例では、ユーザは、(例えば、1つ以上の店等のオンライン/ネットワークアクセス可能な外部ソースからの)様々なライティング選択肢を比較することで、ライティングデバイスが物理的環境1000内でどのように見えるかだけでなく、特に暗い条件下でライティングデバイスが物理的環境1000をどのように照明し得るかについて把握することを望む可能性がある。
【0046】
図7Aに示すように、物理的環境1000のうちカメラアセンブリ330のライブビューファインダ内にキャプチャされた部分は、コンピューティングデバイス300のディスプレイデバイス310上で可視であり得る。この図では、様々なライティングの選択肢314A、314B、314C、314Dおよび314Eを表わすアイコン314を含むメニューバー312もディスプレイデバイス310上に表示される。いくつかの状況では、ユーザは、例えば、1つ以上のウェブサイトを閲覧することでこれらの選択肢を選択していてもよい。いくつかの状況では、システムは、例えば、物理的環境1000の深度マッピングおよび/または色マッピングから得られる物理的環境100についての知識に基づいて提案を提供し得る。
【0047】
図7Aでは、物理的環境1000は、昼光条件下にあり自然光によって照明される。物理的環境1000のためのライティングデバイスを選択する際、ユーザは、メニューバー312内のアイコン314によって表される様々なライティング選択肢が暗い条件下で物理的環境1000をどのように照明し得るかを決定したいと望む可能性がある。
図7Bおよび
図7Cにおいて、ユーザは、(例えば、
図3A~
図3Fに関して上述したように、タッチ入力を用いた)ARシーン400への配置のために、アイコン314Eによって表されるライティングデバイスを既に選択している。
図7Bおよび
図7Cでは、物理的環境1000の画像が昼光条件下でキャプチャされているにもかかわらず、ARシーン400が暗い状態で物理的環境を表示しているため、当該選択されたライティングデバイスによる暗い条件下での物理的環境1000の照明がユーザによって評価され得る。
図7Dは、ARシーン400内の選択されたライティングデバイスによる(暗い)物理的環境1000の照明を示す。ARシーン400のリライティングは、
図4、
図5および
図6で説明したプロセスおよびアルゴリズムに従って上述のとおり実行され得る。
【0048】
図8A~
図8Fは、本明細書に記載の実現例に従った、顔面のリライティングの例を示す。
図8A~
図8Fに関して説明する顔面のリライティング効果は本質的に単なる例示に過ぎない。他のライティング効果は、顔画像を含む仮想シーン内の様々なタイプおよび/または配置の仮想ライティングで達成され得る。
【0049】
図8Aでは、ユーザの顔の画像がコンピューティングデバイス300のディスプレイデバイス310に表示される。いくつかの状況では、ユーザは、例えば顔の特徴等を強調するために、画像に対して相対的な1つ以上の位置において、仮想シーン400内の画像にライティングを加えることを選択し得る。例えば、
図8Bでは、ユーザは、仮想光源410を仮想シーン400内の顔画像に対する第1の位置に配置してダウンライト効果をもたらしてもよい。仮想光源410は、例えば、
図3A~
図3Fに関して上述した態様で仮想シーン400に位置決めされ得る。いくつかの実現例では、仮想光源410はまた、例えば白熱素子として、ディスプレイデバイス310上で可視であり得る。いくつかの実現例では、仮想光源410は、ディスプレイデバイス310上に表示される仮想シーン400においては不可視であるが、仮想光源410の効果は、仮想シーン400に表示される顔画像においては可視である。仮想光源410によってもたらされる照明と、仮想シーン400に含まれる要素(この例では、顔画像)に対するその照明の効果とは、
図4、
図5および
図6に関して上述したように生成され得る。
【0050】
図8Cに示す例では、ユーザは、アップライティング(uplighting)効果をもたらすために、仮想シーン400内の顔画像に対する位置に仮想光源410を配置している。仮想光源410は、例えば、
図3A~
図3Fに関して上述した態様で仮想シーン400内に位置決めされてもよい。いくつかの実現例では、仮想光源410はまた、ディスプレイデバイス310上で、例えば白熱素子として可視であり得る。いくつかの実現例では、仮想光源410はディスプレイデバイス310上に表示される仮想シーン400においては不可視であるが、仮想光源410の効果は仮想シーン400に表示される顔画像においては可視である。仮想光源410によってもたらされる照明と、仮想シーン400に含まれる要素(この例では、顔画像)に対するその照明の効果とは、
図4、
図5および
図6に関して上述したように生成され得る。
【0051】
同様に、
図8Dに示す例では、ユーザは、バックライティング(backlighting)効果をもたらすために仮想シーン400内の顔画像に対する位置に仮想光源410を配置している。
図8Eに示す例では、ユーザは、サイドライティング(sidelighting)効果をもたらすために仮想場面400内の顔画像に対する位置に仮想光源410を配置している。
図8Fに示す例では、ユーザは、二重のサイドライティング効果をもたらすために、第1の仮想光源410Aを第1の位置に配置し、第2の仮想光源410Bを第2の位置に配置している。仮想光源410は、例えば、
図3A~
図3Fに関して上述した態様で仮想シーン400に位置決めされてもよい。いくつかの実現例では、仮想光源410はまた、ディスプレイデバイス310上で、例えば白熱素子として可視であり得る。いくつかの実現例では、仮想光源410はディスプレイデバイス310上に表示される仮想シーン400においては不可視であるが、仮想光源410の効果は仮想シーン400に表示される顔画像においては可視である。仮想光源410によってもたらされる照明と、仮想シーン400に含まれる要素(この例では、顔画像)に対するその照明の効果とは、
図4、
図5および
図6に関して上述したように生成され得る。
【0052】
当該システムおよび方法は、単に説明および例示を容易にするために、スマートフォン等の手持ち式コンピューティングデバイスに関連付けて本明細書で説明されてきた。本明細書に記載の原理は、例示を目的として本明細書で用いられる例示的な手持ち式コンピューティングデバイスに加えて、カメラアセンブリおよびディスプレイ機能を備えた多数の様々なタイプのモバイルコンピューティングデバイスに適用され得る。例えば、本明細書に記載の原理は、ウェアラブルコンピューティングデバイス、例えば、頭部装着型ディスプレイデバイス、スマートグラス、手首装着型コンピューティングデバイスなど、さらには、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、および他のこのようなコンピューティングデバイス等に適用され得る。
【0053】
図9は、本明細書に記載の技術と共に用いられ得るコンピュータデバイス700およびモバイルコンピュータデバイス750の例を示す。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表わすよう意図されている。コンピューティングデバイス750は、携帯情報端末、携帯電話、スマートフォンおよび他の同様のコンピューティングデバイス等の様々な形態のモバイルデバイスを表わすよう意図されている。本明細書に示す構成要素、それらの接続および関係ならびにそれらの機能は、例示としてのみ意図されたものであり、本明細書に記載および/または主張される本発明の実現例を限定するよう意図されたものではない。
【0054】
コンピューティングデバイス700は、プロセッサ702と、メモリ704と、ストレージデバイス706と、メモリ704および高速拡張ポート710に接続する高速インターフェイス708と、低速バス714およびストレージデバイス706に接続する低速インターフェイス712とを含む。構成要素702、704、706、708、710および712の各々は、様々なバスを用いて相互接続されるとともに、共通のマザーボード上に、または必要に応じて他の態様で装着され得る。プロセッサ702は、高速インターフェイス708に結合されたディスプレイ716等の外部入出力デバイス上にGUIのためのグラフィカル情報を表示するためにメモリ704またはストレージデバイス706に格納された命令を含む、コンピューティングデバイス700内で実行するための命令を処理することができる。いくつかの実現例では、複数のプロセッサおよび/または複数のバスが、適宜、複数のメモリおよび複数のタイプのメモリと共に用いられ得る。また、複数のコンピューティングデバイス700が接続されてもよく、各デバイスは必要な動作の部分を(例えば、サーババンク、ブレードサーバのグループまたはマルチプロセッサシステムとして)備え得る。
【0055】
メモリ704はコンピューティングデバイス700内に情報を格納する。いくつかの実現例では、メモリ704は1つ以上の揮発性メモリユニットである。いくつかの実現例では、メモリ704は1つ以上の不揮発性メモリユニットである。メモリ704はまた、磁気ディスクまたは光ディスク等の別の形態のコンピュータ可読媒体であり得る。
【0056】
ストレージデバイス706はコンピューティングデバイス700のための大容量ストレージを備えることができる。いくつかの実現例では、ストレージデバイス706は、コンピュータ可読媒体、例えばフロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイスなど、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであり得るか、またはそれらを含み得る。コンピュータプログラム製品は情報担体において有形に具現化することができる。コンピュータプログラム製品はまた、実行されると、上述した方法等の1つ以上の方法を実行する命令を含み得る。情報担体はメモリ704、ストレージデバイス706、またはプロセッサ702上のメモリ等のコンピュータ可読または機械可読の媒体である。
【0057】
高速コントローラ708は、コンピューティングデバイス700のための帯域幅集約型動作を管理し、低速コントローラ712は、より低い帯域幅集約型動作を管理する。このような機能の割当ては一例に過ぎない。いくつかの実現例では、高速コントローラ708は、メモリ704と、(例えば、グラフィックスプロセッサまたはアクセラレータを介する)ディスプレイ716と、様々な拡張カード(図示せず)を受付け得る高速拡張ポート710とに結合される。当該実現例では、低速コントローラ712はストレージデバイス706および低速拡張ポート714に結合される。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含み得る低速拡張ポートは、1つ以上の入出力デバイス、例えばキーボード、ポインティングデバイス、スキャナ等に、またはスイッチもしくはルータ等のネットワーキングデバイス等に、例えばネットワークアダプタを介して結合され得る。
【0058】
コンピューティングデバイス700は、図に示すように、いくつかの異なる形態で実装され得る。例えば、標準サーバ720として、またはこのようなサーバのグループで複数回実装されてもよい。また、ラックサーバシステム724の一部として実装されてもよい。加えて、ラップトップコンピュータ722等のパーソナルコンピュータにおいて実装されてもよい。代替的には、コンピューティングデバイス700からの構成要素は、デバイス750等のモバイルデバイス(図示せず)内の他の構成要素と組合わされてもよい。このようなデバイスの各々はコンピューティングデバイス700、750のうちの1つ以上を含み得るとともに、システム全体は互いに通信する複数のコンピューティングデバイス700、750で構成され得る。
【0059】
コンピューティングデバイス750は、いくつかある構成要素の中でも特に、プロセッサ752、メモリ764、ディスプレイ754等の入出力デバイス、通信インターフェイス766、およびトランシーバ768を含む。デバイス750はまた、追加のストレージを設けるためにマイクロドライブまたは他のデバイス等のストレージデバイスを備え得る。構成要素752、754、764、766および768の各々は様々なバスを用いて相互接続され、当該構成要素のうちのいくつかは、共通のマザーボード上に、または他の態様で適宜、装着され得る。
【0060】
プロセッサ752は、メモリ764に格納された命令を含む、コンピューティングデバイス750内の命令を実行することができる。プロセッサは、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサは、例えば、ユーザインターフェイスの制御、デバイス750によって実行されるアプリケーション、およびデバイス750による無線通信等の、デバイス750の他の構成要素の連携調整を提供し得る。
【0061】
プロセッサ752は、ディスプレイ754に結合された制御インターフェイス758およびディスプレイインターフェイス756を介してユーザと通信し得る。ディスプレイ754は、例えば、薄膜トランジスタ液晶ディスプレイ(Thin-Film-Transistor Liquid Crystal Display:TFT LCD)もしくは有機発光ダイオード(Organic Light Emitting Diode:OLED)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス756は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ754を駆動するための適切な回路を備え得る。制御インターフェイス758は、ユーザからコマンドを受信し、それらコマンドをプロセッサ752に提示できるように変換し得る。加えて、デバイス750と他のデバイスとの近距離通信を可能にするために、プロセッサ752と通信する外部インターフェイス762を設けてもよい。外部インターフェイス762は、例えば、いくつかの実現例では有線通信を提供してもよく、または他のいくつかの実現例では無線通信を提供してもよく、複数のインターフェイスが用いられてもよい。
【0062】
メモリ764はコンピューティングデバイス750内に情報を格納する。メモリ764は、1つ以上のコンピュータ可読媒体、1つ以上の揮発性メモリユニット、または1つ以上の不揮発性メモリユニットのうちの1つ以上として実装され得る。拡張メモリ774がまた設けられてもよく、例えばシングルインラインメモリモジュール(Single In Line Memory Module:SIMM)カードインターフェイスを含み得る拡張インターフェイス772を介してデバイス750に接続されてもよい。このような拡張メモリ774は、デバイス750のための追加のストレージ空間を備えてもよく、またはデバイス750のためのアプリケーションもしくは他の情報を格納してもよい。具体的には、拡張メモリ774は、上述したプロセスを実行または補足するための命令を含み得るとともに、セキュリティ保護された情報も含み得る。したがって、例えば、拡張メモリ774は、デバイス750のためのセキュリティモジュールとして設けられてもよく、デバイス750の安全な使用を可能にする命令でプログラムされてもよい。加えて、ハッキング不可能な態様でSIMMカード上に識別情報を配置すること等により、追加の情報とともに、セキュリティ保護されたアプリケーションがSIMMカードを介して提供され得る。
【0063】
メモリは、以下で説明するように、例えばフラッシュメモリおよび/またはNVRAMメモリを含み得る。いくつかの実現例では、コンピュータプログラム製品は情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法等の1つ以上の方法を実行する命令を含む。情報担体は、メモリ764、拡張メモリ774、またはプロセッサ752上のメモリ等のコンピュータ可読または機械可読の媒体であり、例えば、トランシーバ768または外部インターフェイス762を介して受取られてもよい。
【0064】
デバイス750は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス766を介して無線で通信し得る。通信インターフェイス766は、中でも特に、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRS等の様々なモードまたはプロトコル下での通信を提供し得る。このような通信は、例えば、無線周波数トランシーバ768を通じて行なわれてもよい。加えて、Bluetooth(登録商標)、Wi-Fiまたは他のこのようなトランシーバ(図示せず)等を用いて短距離通信が行われてもよい。加えて、全地球測位システム(Global Positioning System:GPS)受信機モジュール770は、デバイス750上で実行されるアプリケーションによって適宜用いられ得る追加のナビゲーション関連および位置関連の無線データをデバイス750に提供し得る。
【0065】
デバイス750はまた、音声コーデック760を用いて音声認識可能に通信してもよく、音声コーデック760は、ユーザからの発話情報を受信して使用可能なデジタル情報に変換し得る。音声コーデック760は、同様に、例えばデバイス750のハンドセット内のスピーカ等を通じてユーザのために可聴音を生成し得る。このような音は、音声電話通話からの音を含んでもよく、録音された音(例えば、音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス750上で動作するアプリケーションによって生成される音を含んでもよい。
【0066】
コンピューティングデバイス750は図に示すようにいくつかの様々な形態で実装され得る。例えば、携帯電話780として実装されてもよい。スマートフォン782、携帯情報端末または他の同様のモバイルデバイスの一部として実装されてもよい。
【0067】
本明細書に記載のシステムおよび技術の様々な実現例は、デジタル電子回路、集積回路、特別に設計された特定用途向け集積回路(application specific integrated circuit:ASIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合わせで実現することができる。これらの様々な実現例は、ストレージシステム、少なくとも1つの入力デバイスおよび少なくとも1つの出力デバイスに対するデータおよび命令の送受信のために結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能ないくつかまたは複数のコンピュータプログラムの実現例を含み得る。本明細書に記載のシステムおよび技術の様々な実現例は、本明細書では、ソフトウェア局面とハードウェア局面とを組合わせることができる回路、モジュール、ブロックまたはシステムとして実現されてもよく、および/または一般に回路、モジュール、ブロックまたはシステムと称され得る。例えば、モジュールは、プロセッサ(例えば、シリコン基板、GaAs基板等に形成されたプロセッサ)または他の何らかのプログラマブルデータ処理装置上で実行される機能/動作/コンピュータプログラム命令を含み得る。
【0068】
上述の例示的な実現例のうちのいくつかは、フローチャートとして示されるプロセスまたは方法として説明される。これらのフローチャートは動作を連続したプロセスとして説明するが、動作の多くは並行に、並列して、または同時に実行されてもよい。加えて、動作の順序は並べ替えられてもよい。プロセスは、それらの動作が完了したときに終了されてもよいが、図に含まれない追加のステップを含んでもよい。プロセスは、方法、関数、手順、サブルーチン、サブプログラム等に対応し得る。
【0069】
上述した方法は、そのうちのいくつかがフローチャートによって示されており、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語またはこれらのいずれかの組合せによって実現され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは記憶媒体等の機械可読媒体またはコンピュータ可読媒体に格納され得る。プロセッサが当該必要なタスクを実行し得る。
【0070】
本明細書に開示される特定の構造上および機能上の詳細は例示的な実現例を説明する目的で表わされているにすぎない。しかしながら、例示的な実現例は、多くの代替的形態で具現化され得るが、本明細書に記載される実現例のみに限定されるものと解釈されるべきではない。
【0071】
様々な要素を説明するために第1、第2等の語が本明細書で用いられ得るが、これらの要素がこれらの語によって限定されるべきではないことが理解されるだろう。これらの語は、ある要素を別の要素と区別するためにのみ用いられる。例えば、例示的な実現例の範囲から逸脱することなく、第1の要素が第2の要素と称されてもよく、同様に、第2の要素が第1の要素と称されてもよい。本明細書で用いられる場合、この用語等は、列挙された関連項目のうちの1つ以上のいずれかおよびすべての組合わせを含む。
【0072】
ある要素が別の要素に接続または結合されていると言及される場合、当該ある要素が他の要素に直接接続または結合され得ること、または介在要素が存在し得ることが理解されるだろう。対照的に、ある要素が別の要素に直接接続されているかまたは直接結合されていると言及される場合、介在する要素は存在しない。要素間の関係を説明するために用いられる他の語(例えば、「間に」と「直接間に」、「隣接して」と「直接隣接して」等)は同様に解釈されるべきである。
【0073】
本明細書で用いられる用語は、特定の実現例のみを説明することを目的としたものであって、例示的な実現例を限定することを意図するものではない。単数形に付く「a」、「an」および「the」は、本明細書で用いられる場合、文脈中で明確な指示がない限り、複数形も含むものとして意図されている。さらに、「含む」(「comprises」、「comprising」、「includes」および/または「including」)という語は、本明細書で用いられる場合、記載された特徴、整数、ステップ、動作、要素および/または構成要素の存在を特定するものであるが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素および/またはそれらのグループの存在または追加を排除するものではないことが理解されるだろう。
【0074】
いくつかの代替的な実現例では、記載される機能/動作が図に示される順序とは異なる順序で行なわれ得ることにも留意されたい。例えば、連続して示される2つの図は、関与する機能/動作に応じて、実際には同時に実行されてもよく、または場合によっては逆の順序で実行されてもよい。
【0075】
特に定義されない限り、本明細書で用いられる(技術用語および科学用語を含む)すべての用語は、例示的な実現例が属する技術分野の当業者によって通常理解されるものと同じ意味を有する。用語(例えば、一般に用いられる辞書で定義される用語)は、関連技術の文脈におけるそれらの意味と一致する意味を有するものとして解釈されるべきであり、本明細書で明確にそのように定義されない限り、理想化された意味または過度に形式的な意味で解釈されるべきではないことがさらに理解されるだろう。
【0076】
上述の例示的な実現例の部分および対応する詳細な説明は、コンピュータメモリ内のデータビットに関する動作のソフトウェアまたはアルゴリズムおよび記号表現に関して提示されている。これらの説明および表現は、当業者が自身の作業の内容を他の当業者に効果的に伝える際に用いるものである。アルゴリズムという用語が本明細書で用いられる場合、かつ一般に用いられている場合、所望の結果をもたらすステップの自己矛盾のないシーケンスであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。通常、必ずしもそうである必要はないが、これらの量は、記憶、転送、組合せ、比較およびその他の操作が可能な光信号、電気信号または磁気信号の形をとる。時には、主に一般的な使用上の理由から、これらの信号をビット、値、要素、シンボル、文字、用語、数などと称することが都合が良いことが分かっている。
【0077】
上述の例示的な実現例では、プログラムモジュールまたは機能プロセスとして実装され得る(例えば、フローチャートの形態の)動作の実行および象徴的な表現について言及する場合、特定のタスクを実行するかまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等を含んでおり、既存の構造要素において既存のハードウェアを用いて説明および/または実装され得る。このような既存のハードウェアは、1つ以上の中央処理装置(CPU)、デジタル信号プロセッサ(digital signal processor:DSP)、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)コンピュータ等を含み得る。
【0078】
しかしながら、これらおよび同様の用語はすべて、適切な物理量に関連付けられるべきであり、これらの量に適用される便宜上のラベルに過ぎないことに留意されたい。特に規定のない限り、または説明から明らかであるように、表示の処理、コンピューティング、計算または判断といった用語は、コンピュータシステムのレジスタおよびメモリ内で物理的な電子量として表わされるデータを操作し、当該データを、コンピュータシステムのメモリ、レジスタ、もしくは他の同様の情報ストレージデバイス、送信デバイスまたはディスプレイデバイス内の物理量として同様に表わされる他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスもしくはモバイルコンピューティングデバイスの動作およびプロセスを指している。
【0079】
また、例示的な実現例のソフトウェア実装局面が、典型的には、何らかの形態の非一時的なプログラム記憶媒体上で符号化されるか、または、何らかのタイプの伝送媒体に対して実現される。プログラム記憶媒体は、磁気的(例えば、フロッピー(登録商標)ディスクまたはハードドライブ)であってもよく、または光学的(例えば、コンパクトディスク読取り専用メモリ、すなわちCD ROM)であってもよく、読取り専用もしくはランダムアクセスであってもよい。同様に、伝送媒体は、当該技術について公知であるツイストペア線、同軸ケーブル、光ファイバ、または他の何らかの好適な伝送媒体であってもよい。例示的な実現例はいずれの所与の実現例のこれらの局面によっても限定されない。
【0080】
最後に、添付の特許請求の範囲は、本明細書に記載の特徴の特定の組合せを述べているが、本開示の範囲は、主張されるその特定の組合せに限定されるものではなく、その特定の組合せが現時点で添付の特許請求の範囲において具体的に列挙されているか否かに関わらず、ここに開示された特徴または実現例のいずれの組合せをも包含するよう拡張されることにも留意されたい。
【0081】
例示的な実現例は様々な変更例および代替的な形態を含み得るが、それらの実現例が例として添付の図面に示され、本明細書で詳細に説明されている。しかしながら、例示的な実現例を開示された特定の形態に限定する意図はなく、逆に、例示的な実現例が添付の特許請求の範囲内に収まるすべての変更例、同等例および代替例を包含するべきであることを理解されたい。同様の番号は図の説明全体を通じて同様の要素を指す。