特許第6643357号(P6643357)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許6643357-全球状取込方法 図000002
  • 特許6643357-全球状取込方法 図000003
  • 特許6643357-全球状取込方法 図000004
  • 特許6643357-全球状取込方法 図000005
  • 特許6643357-全球状取込方法 図000006
  • 特許6643357-全球状取込方法 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6643357
(24)【登録日】2020年1月8日
(45)【発行日】2020年2月12日
(54)【発明の名称】全球状取込方法
(51)【国際特許分類】
   H04N 13/279 20180101AFI20200130BHJP
   H04N 13/243 20180101ALI20200130BHJP
   H04N 13/261 20180101ALI20200130BHJP
   H04N 13/344 20180101ALI20200130BHJP
   G06T 15/04 20110101ALI20200130BHJP
   G06T 19/00 20110101ALI20200130BHJP
   H04N 13/361 20180101ALI20200130BHJP
   H04N 13/366 20180101ALI20200130BHJP
   H04N 13/383 20180101ALI20200130BHJP
【FI】
   H04N13/279
   H04N13/243
   H04N13/261
   H04N13/344
   G06T15/04
   G06T19/00 300B
   H04N13/361
   H04N13/366
   H04N13/383
【請求項の数】17
【全頁数】27
(21)【出願番号】特願2017-555540(P2017-555540)
(86)(22)【出願日】2016年9月16日
(65)【公表番号】特表2018-523326(P2018-523326A)
(43)【公表日】2018年8月16日
(86)【国際出願番号】US2016052086
(87)【国際公開番号】WO2017049055
(87)【国際公開日】20170323
【審査請求日】2017年12月1日
(31)【優先権主張番号】62/219,534
(32)【優先日】2015年9月16日
(33)【優先権主張国】US
(31)【優先権主張番号】15/266,602
(32)【優先日】2016年9月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ラッセル,アンドリュー・イアン
【審査官】 佐野 潤一
(56)【参考文献】
【文献】 国際公開第2012/132234(WO,A1)
【文献】 特開2001−298652(JP,A)
【文献】 特開2001−273522(JP,A)
【文献】 特開2015−046171(JP,A)
【文献】 特開2012−088782(JP,A)
【文献】 特表2004−514951(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 13/00
G06T 1/00
G06T 11/00−19/00
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実現される方法であって、
2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断するステップを含み、前記領域を判断するステップは、頭部装着型ディスプレイデバイスで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれ、前記方法は、さらに、
前記領域における画素の一部について深度値を計算するステップと、
前記領域における画素の前記一部についての画像データを含む球状画像を生成するステップと、
前記画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成するステップと、
前記画像データを使用して、前記コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを行なうステップとを含み、前記テクスチャマッピングは、前記画像データを前記コンピュータグラフィックスオブジェクトの前記表面にマッピングすることを含み、前記方法はさらに、
前記深度値と前記球状画像と前記テクスチャマッピングを行なうことにより生成されたテクスチャマップデータとに基づいて左目ビューおよび右目ビューを生成するステップと、
前記頭部装着型ディスプレイデバイスにおいて前記左目ビューおよび右目ビューを表示するステップとを含む、方法。
【請求項2】
画素の前記一部は、前記領域における画素の前記一部のうちの1つ以上に関連付けられた対応する深度値と等しい半径を有する点に位置しているように視認されるために、前記コンピュータグラフィックスオブジェクトの前記表面上に表わされる、請求項1に記載の方法。
【請求項3】
前記複数の画像はビデオコンテンツを含み、前記画像データは、画素の前記一部に関連付けられたRGBデータおよび深度値データを含み、前記方法はさらに、
前記画像データを使用して、前記領域の2次元バージョンを前記領域の3次元バージョンに変換するステップと、
前記頭部装着型ディスプレイデバイスにおける表示のために、前記領域の前記3次元バージョンを提供するステップとを含み、前記球状画像および前記テクスチャマップデータは、前記3次元空間における前記3次元表面上にマッピングされたテクスチャとして画像をレンダリングすることができるように送信される、請求項1または2に記載の方法。
【請求項4】
前記複数の画像は、球状形状のカメラリグ上に搭載された複数のカメラを用いて取込まれる、請求項1〜のいずれか1項に記載の方法。
【請求項5】
前記ユーザ入力は頭部回転を含み、前記3次元データは、ビューに対応する前記複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、請求項1に記載の方法。
【請求項6】
前記ユーザ入力は凝視方向の変更を含み、前記3次元データは、ユーザの視線上の前記複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、請求項1に記載の方法。
【請求項7】
コンピュータにより実現されるシステムであって、
少なくとも1つのプロセッサと、
命令を格納するメモリとを含み、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記システムに複数の動作を行なわせ、前記複数の動作は、
2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断することを含み、前記領域を判断することは、頭部装着型ディスプレイデバイスで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれ、前記複数の動作は、さらに、、
前記領域における画素の一部について深度値を計算することと、
前記領域における画素の前記一部についての画像データを含む球状画像を生成することと、
前記画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成することと、
前記画像データを使用して、前記コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを行なうこととを含み、前記テクスチャマッピングは、前記画像データを前記コンピュータグラフィックスオブジェクトの前記表面にマッピングすることを含み、前記複数の動作はさらに、
前記深度値と前記球状画像と前記テクスチャマッピングを行なうことにより生成されたテクスチャマップデータとに基づいて左目ビューおよび右目ビューを生成することと、
前記頭部装着型ディスプレイデバイスにおいて前記左目ビューおよび右目ビューを表示することとを含む、システム。
【請求項8】
前記複数の画像はビデオコンテンツを含み、前記画像データは、画素の前記一部に関連付けられたRGBデータおよび深度値データを含み、前記システムはさらに、
前記画像データを使用して、前記領域の2次元バージョンを前記領域の3次元バージョンに変換することと、
前記頭部装着型ディスプレイデバイスにおける表示のために、前記領域の前記3次元バージョンを提供することとを含み、前記球状画像および前記テクスチャマップデータは、前記3次元空間における前記3次元表面上にマッピングされたテクスチャとして画像をレンダリングすることができるように送信される、請求項に記載のシステム。
【請求項9】
前記複数の画像は、球状形状のカメラリグ上に搭載された複数のカメラを用いて取込まれる、請求項7または8に記載のシステム。
【請求項10】
前記ユーザ入力は凝視方向の変更を含み、前記3次元データは、ユーザの視線上の前記複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、請求項に記載のシステム。
【請求項11】
コンピュータにより実現される方法であって、
複数のカメラを用いて複数の画像を取得するステップと、
2次元データを3次元データに変換するための、前記複数の画像内の領域を判断するステップを含み、前記領域を判断するステップは、頭部装着型ディスプレイデバイスで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれ、前記方法は、さらに、
前記複数の画像について少なくとも2つの更新画像を生成するステップとを含み、前記少なくとも2つの更新画像は、予め規定された中心線からの左側オフセットでコンテンツを取込み、前記予め規定された中心線からの右側オフセットでコンテンツを取込むように構成された少なくとも1つの仮想カメラについての視点を補間することによって生成され、前記左側オフセットおよび前記右側オフセットは、前記領域における前記3次元データを提供するために選択され、前記方法はさらに、
頭部装着型ディスプレイの左アイピースに提供するための第1の球状画像を生成するために、前記少なくとも2つの更新画像における第1の画像を第1の球面にマッピングするステップと、
前記頭部装着型ディスプレイの右アイピースに提供するための第2の球状画像を生成するために、前記少なくとも2つの更新画像における第2の画像を第2の球面にマッピングするステップと、
前記頭部装着型ディスプレイの前記左アイピースに前記第1の球状画像を表示し、前記頭部装着型ディスプレイの前記右アイピースに前記第2の球状画像を表示するステップとを含む、方法。
【請求項12】
前記少なくとも1つの仮想カメラは、1つ以上の物理的カメラを使用して取込まれたコンテンツを使用し、前記コンテンツを前記視点から提供されるよう適合させるように構成される、請求項11に記載の方法。
【請求項13】
前記第1の画像のマッピングは、前記第1の画像から前記第1の球面に画素座標を割当てることによって前記第1の画像にテクスチャを適用することを含み、
前記第2の画像のマッピングは、前記第2の画像から前記第2の球面に画素座標を割当てることによって前記第2の画像にテクスチャを適用することを含む、請求項11または12に記載の方法。
【請求項14】
視点を補間することは、前記複数の画像における複数の画素をサンプリングすることと、オプティカルフローを使用して仮想コンテンツを生成することと、前記少なくとも2つの更新画像のうちの少なくとも1つの内部に前記仮想コンテンツを設置することとを含む、請求項1113のいずれか1項に記載の方法。
【請求項15】
少なくとも2つの球状画像は、前記左側オフセットで取込まれた前記コンテンツに含まれる前記複数の画素のうちの少なくとも一部を有するRGB画像と、前記右側オフセットで取込まれた前記コンテンツに含まれる前記複数の画素のうちの少なくとも一部を有するRGB画像とを含む、請求項14に記載の方法。
【請求項16】
前記左側オフセットおよび前記右側オフセットは修正可能であり、また、前記頭部装着型ディスプレイにおける前記第1の画像および前記第2の画像の表示精度を適合させるために機能的である、請求項1115のいずれか1項に記載の方法。
【請求項17】
コンピュータによって実行されるプログラムであって、
前記プログラムは、前記コンピュータに、請求項1〜のいずれか1項に記載の方法を実行する、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願との相互参照
本願は、2015年9月16日に出願された「全球状取込方法」(General Spherical Capture Methods)と題された米国仮特許出願第62/219,534号の優先権を主張する、2016年9月15日に出願された「全球状取込方法」と題された米国非仮特許出願第15/266,602号の優先権を主張し、当該非仮特許出願の継続出願である。これらの出願は双方とも、それら全体がここに引用により援用される。
【0002】
技術分野
本明細書は一般に、2次元(2D)および3次元(3D)画像を取込んで処理するための方法および装置に関する。
【背景技術】
【0003】
背景
球状画像は、シーンの360度のビューを提供できる。そのような画像は、特定の投影フォーマットを使用して取込まれ、規定され得る。たとえば、球状画像は、画像の幅および高さに関するアスペクト比が2:1である単一画像を提供するために、正距円筒投影フォーマットで規定されてもよい。別の例では、球状画像は、立方体の6つの面に再マッピングされた画像を提供するために、立方体投影フォーマットで規定されてもよい。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
1つ以上のコンピュータのシステムが、動作時に当該システムにアクションを行なわせる、当該システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することにより、特定の動作またはアクションを行なうように構成され得る。1つ以上のコンピュータプログラムが、データ処理装置によって実行されると当該装置にアクションを行なわせる命令を含むことにより、特定の動作またはアクションを行なうように構成され得る。
【0005】
一般的な一局面では、これらの命令は、2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断するステップを含む、コンピュータにより実現される方法を含んでいてもよい。2次元データを3次元データに変換するための領域を判断するステップは、頭部装着型ディスプレイで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれてもよい。ユーザ入力は頭部回転を含んでいてもよく、3次元データは、ビューに対応する複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用されてもよい。別の例では、ユーザ入力は凝視方向の変更を含んでいてもよく、3次元データは、ユーザの視線上の複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用されてもよい。
【0006】
この方法はまた、領域における画素の一部について深度値を計算するステップと、球状画像を生成するステップとを含んでいてもよい。球状画像は、領域における画素の一部についての画像データを含んでいてもよい。いくつかの実現化例では、画素の一部は、領域における画素の一部のうちの1つ以上に関連付けられた対応する深度値と等しい半径で、コンピュータグラフィックスオブジェクトの表面上に表わされる。この方法はまた、画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成するステップと、画像データを使用して、コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを生成するステップとを含んでいてもよい。テクスチャマッピングは、コンピュータグラフィックスオブジェクトの表面への画像データのマッピングを含んでいてもよい。この方法はまた、頭部装着型ディスプレイデバイスにおける表示のために、球状画像およびテクスチャマッピングを送信するステップを含んでいてもよい。本局面の他の実施形態は、これらの方法のアクションを行なうように各々構成された、対応するコンピュータシステム、装置、および、1つ以上のコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【0007】
いくつかの実現化例では、この方法はまた、領域に関連付けられた追加の球状画像およびテクスチャマッピングを生成するステップと、画像データの一部と球状画像とを組合せることによって、左目ビューを生成するステップと、追加の画像データを生成し、追加の画像データと追加の球状画像とを組合せることによって、右目ビューを生成するステップと、頭部装着型ディスプレイデバイスにおいて左目ビューおよび右目ビューを表示するステップとを含んでいてもよい。画像データは、領域における画素の一部のうちの少なくともいくつかについての深度値データおよびRGBデータを含んでいてもよい。
【0008】
いくつかの実現化例では、複数の画像はビデオコンテンツを含み、画像データは、画素の一部に関連付けられたRGBデータおよび深度値データを含む。いくつかの実現化例では、この方法はさらに、画像データを使用して、領域の2次元バージョンを領域の3次元バージョンに変換するステップと、頭部装着型ディスプレイデバイスにおける表示のために、領域の3次元バージョンを提供するステップとを含む。いくつかの実現化例では、複数の画像は、球状形状のカメラリグ上に搭載された複数のカメラを用いて取込まれる。
【0009】
別の一般的な局面では、複数のカメラを用いて複数の画像を取得するステップと、複数の画像について少なくとも2つの更新画像を生成するステップとを含み、少なくとも2つの更新画像は、予め規定された中心線からの左側オフセットでコンテンツを取込み、予め規定された中心線からの右側オフセットでコンテンツを取込むように構成された少なくとも1つの仮想カメラについての視点を補間することによって生成される、コンピュータにより実現される方法が説明される。いくつかの実現化例では、視点を補間することは、複数の画像における複数の画素をサンプリングすることと、オプティカルフローを使用して仮想コンテンツを生成することと、少なくとも2つの更新画像のうちの少なくとも1つの内部に仮想コンテンツを設置することとを含む。
【0010】
この方法はさらに、頭部装着型ディスプレイの左アイピースに提供するための第1の球状画像を生成するために、少なくとも2つの更新画像における第1の画像を第1の球面にマッピングするステップと、頭部装着型ディスプレイの右アイピースに提供するための第2の球状画像を生成するために、少なくとも2つの更新画像における第2の画像を第2の球面にマッピングするステップと、頭部装着型ディスプレイの左アイピースに第1の球状画像を表示し、頭部装着型ディスプレイの右アイピースに第2の球状画像を表示するステップとを含んでいてもよい。
【0011】
いくつかの実現化例では、少なくとも1つの仮想カメラは、1つ以上の物理的カメラを使用して取込まれたコンテンツを使用し、コンテンツを視点から提供されるよう適合させるように構成される。いくつかの実現化例では、第1の画像のマッピングは、第1の画像から第1の球面に画素座標を割当てることによって第1の画像にテクスチャを適用することを含み、第2の画像のマッピングは、第2の画像から第2の球面に画素座標を割当てることによって第2の画像にテクスチャを適用することを含む。いくつかの実現化例では、少なくとも2つの球状画像は、左側オフセットで取込まれたコンテンツに含まれる複数の画素のうちの少なくとも一部を有するRGB画像と、右側オフセットで取込まれたコンテンツに含まれる複数の画素のうちの少なくとも一部を有するRGB画像とを含む。いくつかの実現化例では、左側オフセットおよび右側オフセットは修正可能であり、また、頭部装着型ディスプレイにおける第1の画像および第2の画像の表示精度を適合させるために機能的である。
【0012】
本局面の他の実施形態は、これらの方法のアクションを行なうように各々構成された、対応するコンピュータシステム、装置、および、1つ以上のコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【0013】
1つ以上の実現化例の詳細を、添付図面および以下の説明で述べる。他の特徴は、説明および図面から、ならびに請求項から明らかとなるであろう。
【図面の簡単な説明】
【0014】
図1】バーチャルリアリティ(VR)空間のために2Dおよび3Dコンテンツを取込み、処理し、レンダリングするための例示的なシステム100のブロック図である。
図2】ビデオコンテンツの3D部分を生成する際に使用するシーンの画像を取込むように構成された例示的な球状カメラリグを示す図である。
図3】ビデオコンテンツの3D部分を生成する際に使用するシーンの画像を取込むように構成された例示的な二十面体状カメラリグを示す図である。
図4】ビデオコンテンツの3D部分を生成する際に使用するシーンの画像を取込むように構成された例示的な六角形球カメラリグを示す図である。
図5】ビデオコンテンツを生成するためのプロセスの一実施形態を示すフローチャートである。
図6】ここに説明される手法を実現するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【0015】
さまざまな図面における同じ参照符号は、同じ要素を示す。
詳細な説明
シーンの各部分を2次元および/または3次元で正確に再生するために使用され得る画像コンテンツを取得することは一般に、3次元カメラリグに収容された複数のカメラを使用してそのシーンの画像またはビデオを取込むことを含む。これらのカメラは、上部、側部、底部でカメラリグを包囲するシーンの各部分と、間に示されるあらゆるシーンコンテンツとを取込むように構成されてもよい。本開示で説明されるシステムおよび方法は、ほんの数例を挙げると球状形状、二十面体状形状、または3D多角形形状であるカメラリグを採用することができる。そのようなカメラリグには、リグを包囲する外向きに取込可能なすべてのエリアに関する画像コンテンツを取込むためにリグ上に戦略的に設置されたいくつかのグループ(たとえばトライアド(3つ組))のカメラが収容され得る。画像コンテンツは、複数のカメラ間で取込まれた重複画像コンテンツを含む場合があり、この重複は後に、追加の画像コンテンツを生成し、既存の画像コンテンツをつなぎ合わせ、または画像コンテンツにおいて視覚的効果(たとえば3D効果)を生成するために使用され得る。
【0016】
そのような1つの視覚的効果は、画像コンテンツ内に3D領域を生成することを含んでいてもよい。画像コンテンツ(たとえばビデオコンテンツ)内に3D領域をランタイム(またはほぼリアルタイム)に生成することは、ここに説明されるシステムおよび方法を用いて取込まれたコンテンツを使用して達成されてもよい。なぜなら、そのようなカメラリグは、カメラを収容するように構成された球または他の3D形状を包囲する全ての各エリアを取込むように構成されるためである。シーン内のすべての可能なビューイングコンテンツへのアクセスを有することは深度についての計算を可能にし、深度は、2Dコンテンツを3Dコンテンツに修正し、元に戻すために使用され得る。3D領域生成の一例は、画像コンテンツに示されるオブジェクトまたはアクションに基づいて、ある特定のエリアが3Dで示されるべきであると判断することを含み得る。
【0017】
たとえば、画像コンテンツが天井から示されるアクロバット演技を表わす場合、本開示で説明されるシステムおよび方法は、たとえば、ユーザがVR空間の天井に目を向けると、VR空間でユーザの上方に示されるコンテンツに3D効果が適用されるべきであると判断することができる。3D効果は、画像コンテンツ(たとえばビデオコンテンツ)に自動的に適用され、VR頭部装着型ディスプレイ(head mounted display:HMD)デバイスにおいてユーザに表示され得る。いくつかの実現化例では、3D効果は、3D効果を適用するためのエリアをシフトさせるように手動で構成され得る。たとえば、アクロバットの例での3D効果は、演技がメインステージから天井に移動するよう予定されている場合、ステージから天井にシフトされてもよい。すなわち、画像コンテンツ(たとえばビデオコンテンツ)は、アクロバットがユーザ(たとえば観客)の上方で行なわれ始めると、3D効果を天井にシフトさせるように構成され得る。いくつかの実現化例では、画像3D効果は画像コンテンツの一部に適用可能であり、一方、画像コンテンツの周囲部分は2次元フォーマットのままである。いくつかの実現化例では、ここに説明されるシステムは、画像またはビデオ全体に3D効果を適用するために使用され得る。他の実現化例では、ここに説明されるシステムは、シーン、シーンの一部、画像/シーンにおけるエリア、ユーザが選択した、またはユーザが凝視して選択した画像/シーンの一部に、3D効果を適用するために使用され得る。
【0018】
画像コンテンツの2次元(2D)から3次元(3D)への修正を行なうことができるのは、球状カメラリグが球状カメラリグの周りの全角度から画像を取込むために使用されるためであり、このため、すべての可能なエリアを3D調節可能にする。自動調節は、画像コンテンツに関連付けられた深度マップを計算するために密なオプティカルフローを計算することを含み得る。深度マップを計算することは、カメラの位置に対する、シーンにおけるさまざまな点の距離を表わす、多くの深度値を計算することを含み得る。いくつかの例では、2つ以上の画像を使用して深度値を計算し、2D画像データに加えてこれらの深度値を使用して、ある特定のシーンの部分についての3D画像データを推定することができる。
【0019】
いくつかの実現化例では、オブジェクトへのテクスチャマッピングが、2次元データをオブジェクト上にマッピングする2次元効果を生成してもよい。深度マップデータ(または深度データ)およびテクスチャマップデータを深度面に送信する他の実現化例では、効果は3次元効果であってもよい。
【0020】
本開示で説明されるシステムおよび方法は、画像コンテンツ内に3D領域を生成するために、オプティカルフローアルゴリズム、深度マップ計算、ユーザ入力、および/または監督入力を使用することを含んでいてもよい。たとえば、説明されるシステムおよび方法は、画像コンテンツの選択エリアに3D効果を適用することができる。3D効果は戦略的に計算され、ビデオコンテンツなどの画像コンテンツ内にほぼリアルタイムに設置され得る。いくつかの実現化例では、3D効果は、バーチャルリアリティ(VR)空間に画像コンテンツを提供する前に手動で設置され得る。いくつかの実現化例では、3D効果は、ユーザがVR空間で画像コンテンツを見ている間に、たとえばユーザが関心エリアの方を向くのに応答して自動的に設置され得る。たとえば、ここに説明されるデバイスを用いて取込まれた画像コンテンツがVR空間においてユーザに提供される場合、ユーザはVR空間においてコンテンツを見るためにあるエリアの方を向く場合があり、ユーザがそのコンテンツに関心を示したのに応答して、そのコンテンツは自動的に3Dコンテンツとして生成され得る。
【0021】
特定の実現化例では、ここに説明されるシステムおよび方法は、3D画像コンテンツを構成し表示するために、球状カメラリグ上の多くのトライアドのカメラ間の密なオプティカルフロー場を計算することを含み得る。(オプティカルフロー補間手法を使用した)フロー場の計算および送信は、ユーザが見たい特定の3Dビューを(ランタイムに、またはランタイムに先立って)再構成するために行なわれ得る。これらの手法は、ユーザの頭部の傾きおよび平行移動を考慮に入れることができ、3Dコンテンツが球状カメラリグによって取込まれたシーン内の任意の選択可能エリアで提供されることを可能にしてもよい。いくつかの実現化例では、前方および後方頭部平行移動も行なわれ得る。
【0022】
いくつかの実現化例では、ここに説明されるシステムおよび方法は、画像の各画素について深度値を得るために、オプティカルフローおよび/またはステレオ整合手法を採用することができる。オプティカルフローおよび/またはステレオ整合手法を使用して生成された球状画像(またはビデオ)は、たとえばHMDデバイスに送信され得る。球状画像は、RGB(赤緑青)画素データ、YUV(ルーメンおよびクロミナンス)データ、深度データ、もしくは、追加の計算されたまたは取得可能な画像データを含んでいてもよい。HMDデバイスはそのようなデータを受信し、深度成分によって規定された3D空間における表面上にマッピングされたテクスチャとして画像をレンダリングすることができる。
【0023】
いくつかの実現化例では、ここに説明されるシステムおよび方法は、オプティカルフロー手法を使用して多くの異なる仮想カメラを補間することができる。結果として生じるオプティカルフローデータを使用して、少なくとも2つの球状画像が生成され得る(たとえば、左RGB球状画像および右RGB球状画像)。左RGB球状画像における画素は、左にオフセットした仮想カメラから取得可能であり、右RGB球状画像における画素は、右にオフセットした仮想カメラから取得可能である。正確な3D効果を生成するために、ここに説明されるシステムおよび方法は、仮想カメラに使用される左および右のオフセットの量を修正することができる。すなわち、最大オフセットを選択することは、画像またはビデオにおけるコンテンツに基づいて、もしくは監督からの入力に基づいて正確な3D画像コンテンツを提供するように機能し得る。左および右の画像はその場合、たとえばHMDデバイスにおける(一定半径の)球上にマッピングされたテクスチャであり得る。
【0024】
図1は、バーチャルリアリティ(VR)空間のために2Dおよび3Dコンテンツを取込み、処理し、レンダリングするための例示的なシステム100のブロック図である。例示的なシステム100では、球状形状のカメラリグ102が静止画像およびビデオ画像を取込み、ネットワーク104を通して、またはこれに代えて直接、分析および処理のために画像処理システム106に提供し得る。画像が一旦取込まれると、画像処理システム106が画像に対して多くの計算およびプロセスを行ない、たとえば、処理画像をレンダリングのためにネットワーク104を通して頭部装着型ディスプレイ(HMD)デバイス110に提供し得る。いくつかの実現化例では、画像処理システム106はまた、処理画像を、レンダリング、格納、またはさらなる処理のために、モバイルデバイス108に、および/またはコンピューティングデバイス112に提供し得る。
【0025】
HMDデバイス110は、バーチャルリアリティコンテンツを表示できるバーチャルリアリティヘッドセット、眼鏡、アイピース、または他のウェアラブルデバイスを表わしていてもよい。動作時、HMDデバイス110は、受信画像および/または処理画像をユーザに対して再生できるVRアプリケーション(図示せず)を実行し得る。いくつかの実現化例では、VRアプリケーションは、図1に示すデバイス106、108、または112のうちの1つ以上によってホストされ得る。一例では、HMDデバイス110は、シーンの部分を3Dビデオコンテンツとして生成可能であり、カメラリグ102によって取込まれたシーンの3Dフォーマットでのビデオ再生を、戦略的に選択された場所で提供可能である。
【0026】
カメラリグ102は、VR空間においてコンテンツをレンダリングするために画像データを収集するためのカメラ(取込デバイスとも呼ばれ得る)および/または処理デバイスとして使用するために構成され得る。カメラリグ102はここでは特定の機能性を有して説明されるブロック図として示されているが、リグ102は図2図4に示す実現化例のうちのいずれかの形態を取ることができ、加えて、本開示全体にわたってカメラリグについて説明される機能性を有していてもよい。たとえば、システム100の機能性の説明を簡潔にするために、図1は、画像を取込むためのカメラがリグの周りに配置されていないカメラリグ102を示す。カメラリグ102の他の実現化例は、リグ102などの3Dカメラリグ上の任意の点に配置され得る任意の数のカメラを含み得る。
【0027】
図1に示すように、カメラリグ102は、多くのカメラ130と、通信モジュール132とを含む。カメラ130は、スチルカメラまたはビデオカメラを含み得る。いくつかの実現化例では、カメラ130は、球状リグ102の表面に沿って配置された(たとえば着座した)複数のスチルカメラまたは複数のビデオカメラを含み得る。カメラ130は、ビデオカメラ、画像センサ、立体視カメラ、赤外線カメラ、および/またはモバイルデバイスカメラを含んでいてもよい。通信モジュール132は、画像、命令、および/または他のカメラ関連コンテンツをアップロードおよびダウンロードするために使用され得る。通信モジュール132は有線でも無線でもよく、私設ネットワークまたは公衆ネットワークを通してインターフェイス接続可能である。
【0028】
カメラリグ102は、静止リグまたは回転リグとして機能するように構成され得る。リグ上の各カメラは、リグの回転中心からオフセットして配置(たとえば設置)される。カメラリグ102は、たとえば、シーンの360度の球状ビューのすべてまたは一部を掃引して取込むために、360度回転するように構成され得る。いくつかの実現化例では、リグ102は静止位置で動作するように構成可能であり、そのような構成では、追加のカメラをリグに追加してシーンの追加の外向き角度のビューを取込んでもよい。
【0029】
いくつかの実現化例では、カメラは、特定の時点でカメラリグ上のカメラからビデオを取込むために、同期して機能するように構成(たとえばセットアップ)され得る。いくつかの実現化例では、カメラは、ある期間にわたってカメラのうちの1つ以上からビデオの特定部分を取込むために、同期して機能するように構成され得る。カメラリグを較正する別の例は、受信画像をどのように格納するかを構成することを含み得る。たとえば、受信画像は個々のフレームまたはビデオ(たとえば、aviファイル、mpgファイル)として格納可能であり、そのような格納画像は、インターネット、別のサーバまたはデバイスにアップロードされ得るか、もしくはカメラリグ102上の各カメラを用いてローカルに記憶され得る。
【0030】
画像処理システム106は、補間モジュール114と、オプティカルフローモジュール116と、つなぎ合わせモジュール118と、深度マップ生成器120と、3D生成器モジュール122とを含む。補間モジュール114は、たとえば、デジタル画像およびビデオの部分をサンプリングし、カメラリグ102から取込まれた隣接画像間で生じそうな多くの補間画像を求めるために使用され得るアルゴリズムを表わす。いくつかの実現化例では、補間モジュール114は、隣接画像間の補間された画像フラグメント、画像部分、および/または垂直もしくは水平画像ストリップを求めるように構成され得る。いくつかの実現化例では、補間モジュール114は、隣接画像内の関連画素間のフロー場(および/またはフローベクトル)を求めるように構成され得る。フロー場は、画像が受けた両変換、および変換を受けた画像の処理を補償するために使用され得る。たとえば、フロー場は、取得画像の特定の画素格子の変換を補償するために使用され得る。いくつかの実現化例では、補間モジュール114は、周囲画像の補間により、取込まれた画像の一部ではない1つ以上の画像を生成可能であり、生成された画像を取込まれた画像にインターリーブして、シーンの追加のバーチャルリアリティコンテンツを生成可能である。たとえば、補間モジュール114は、実在する(たとえば物理的な)カメラ間の仮想カメラからのビューを再構成し、各ビューの中心光線を選択して、球の中心から1つの仮想カメラ画像を作り上げることにより、2D(平面)写真/ビデオ球のつなぎ合わせを提供し得る。
【0031】
オプティカルフローモジュール116は、各トライアドのカメラ間の密なオプティカルフローを計算するように構成され得る。たとえば、モジュール116は、球状カメラリグ上に三角形を形成するペアのカメラ間の、3方向のペア状のオプティカルフローを計算し得る。オプティカルフローモジュール116は、第1のカメラと第2のカメラとの間、第2のカメラと第3のカメラとの間、および第3のカメラと第1のカメラとの間のオプティカルフローを計算し得る。計算に使用される各ペアのカメラは、ステレオペアと考えられ得る。いくつかの実現化例では、オプティカルフローの計算は、フローベクトルが2Dの量または構成を作成するように任意の方向に向けられる場合に、ペアのカメラ間で行なわれ得る。いくつかの実現化例では、オプティカルフローの計算は、フローベクトルが1次元に制限される場合(たとえば、フローが水平である水平ステレオペア)に行なわれ得る。
【0032】
カメラリグの表面の周りに複数のトライアドのカメラを有する、球状形状のカメラリグ(またはここに説明される他の3D形状のリグ)を使用して、オプティカルフローモジュール116は、リグを包囲する正確なシーンを生成し得る。たとえば、オプティカルフローモジュール116は、特定の取込画像コンテンツについてオプティカルフロー場を計算し、つなぎ合わせモジュール118にアクセスして、シーンについての平面視パノラマをつなぎ合わせ得る。これは、ビデオコンテンツにおけるアーチファクトを減少させる場合がある。平面視パノラマの生成は、ユーザの両目に同じ画像を提示することを含んでいてもよい。これは、ユーザには2Dに見えるかもしれない。いくつかの実現化例では、つなぎ合わせモジュール118は、ユーザに関連付けられた各目に独特で異なる画像を提供可能な立体視パノラマをつなぎ合わせることができ、そのような画像はユーザには3Dに見えるかもしれない。ここに使用されるように、3Dコンテンツは、立体視の提示コンテンツと考えられてもよく、深度面上にマッピングされたテクスチャを示し得る。同様に、2Dコンテンツは、たとえば平面または球面上にマッピングされたテクスチャを示す平面視の提示コンテンツと考えられてもよい。
【0033】
いくつかの実現化例では、モジュール114およびつなぎ合わせモジュール118は、パノラマツイストを導入するために、または、たとえば選択された方向において3D効果を導入するために、代わりに非中心光線を採用することによってステレオ球状ペアを生成するために使用され得る。パノラマツイストは、第1の方向に偏向された光線を用いて第1の目(左目)用の光線を取込み、反対方向に偏向された光線を用いて第2の目(右目)用の光線を取込むことを含む。
【0034】
一般に、オプティカルフローモジュール116はオプティカルフロー手法を使用して、カメラの球状集団における隣接ペアのカメラ間のオプティカルフローを計算することにより、正確なモノパノラマおよびステレオ球状パノラマ(たとえば、全方向ステレオまたはメガステレオパノラマ用のパノラマツイスト)を生成し得る。カメラの集団は、空間における各点が少なくとも3台のカメラに見えるように、カメラ配置の制約を受ける場合がある。
【0035】
いくつかの実現化例では、ここに説明されるカメラリグは、アーチファクト(たとえば、つなぎ合わせエラー/アーチファクト、カメラ境界上のオブジェクトの不連続性、境界での欠損データ、または境界近くでの2重の画像コンテンツ、裂けたオブジェクト、ゆがんたオブジェクト、除去されたコンテンツなど)を減少させるかまたは除去するという利点を提供し得る。アーチファクトは、動画コンテンツを表わすビデオコンテンツについて特に良好に除去され得る。そのようなアーチファクトの除去は、重複したビデオ/画像コンテンツを含むトライアドのカメラを有する球状カメラリグの使用に基づいて可能であり、重複したビデオ/画像コンテンツは、カメラが取込んだ重複画像エリアにアクセスし、オプティカルフロー手法を行ない、アーチファクト/エラーを提供したと思われる画像エリアを再計算することによって、つなぎ合わせエラー/アーチファクトを訂正するために使用され得る。
【0036】
ここに説明されるシステムおよび方法は、3D球状形状のカメラリグ(または他の3D形状のカメラリグ)の周りの取込可能な任意の点でステレオ3Dコンテンツを生成するために使用され得る。そのような広く取込まれたコンテンツは、数学的な方法が、スチルまたはビデオコンテンツ内の任意の場所にステレオ3D効果/ビデオコンテンツを戦略的に設置しつつ、他の場所で3Dを除去するかまたは3D効果を提供せず、ストリーミング帯域幅、処理パワー、および/または記憶空間を節約することを可能にする。
【0037】
深度マップ生成器120は、カメラリグ102を用いて取込まれた画像に関するオプティカルフローデータ(たとえばフロー場)にアクセスし、そのようなフローデータを使用して、取込画像コンテンツについての深度マップを計算し得る。たとえば、深度マップ生成器120は、さまざまな方向を指し示すリグ102上の多くのカメラからの画像データを使用し得る。深度マップ生成器120はステレオ整合アルゴリズムにアクセスし、それを採用して、取込画像に表わされた各画素についての深度値を計算し得る。さまざまなカメラからのビューと深度値とが組合されて、各画素についてのR(赤)値、G(緑)値、B(青)値および深度値を有する1つの球状画像になり得る。ビューアでは、深度マップ生成器120は、球の各点が深度値と等しい半径を有するように、すべての画素で深度値を得ることによって構成された3D空間における表面へのRGB画像のテクスチャマップを行ない得る。この手法は、典型的には深度値および/または深度マップではなくステレオペアを使用する3D球状画像手法とは異なるかもしれない。
【0038】
一般に、深度マップ生成器120は、球状画像とともに送信される深度マップを生成する。画像コンテンツとともに深度マップを送信することは、ユーザが、極(たとえば、ユーザの上方の北、およびユーザの下方の南)を含む全方向を見て3Dコンテンツを見ることを可能にするという利点を提供できる。加えて、画像コンテンツとともに深度マップを送信することはまた、ユーザが自分の頭部を傾け、依然として3D効果を見ることを可能にすることもできる。一例では、深度情報が画像コンテンツとともに送信されるため、ユーザは、自分の名目上の場所から(たとえばX、Y、および/またはZ方向に)わずかな距離動き回ることができてもよく、オブジェクトが正しい方法で動くのを適切な視差で見ることができてもよい。VR空間内でのユーザの動きは実際の動きと呼ばれてもよく、システム100はユーザ位置を追跡できる。
【0039】
計算されたオプティカルフローデータ(光照射野送信データを含む)は、球状ビデオデータと組合されてHMDデバイス(または他のデバイス)に送信され、HMDデバイスにアクセスしているユーザのために左および右のビューを生成し得る。いくつかの実現化例では、深度マップ生成器120は、各目について別々のおよび別個の球状画像およびRGBデータを提供し得る。
【0040】
いくつかの実現化例では、オプティカルフロー補間は、HMDデバイス110と通信しているコンピュータシステムによって実行可能であり、特定の画像コンテンツがHMDデバイスに送信可能である。他の実現化例では、3D画像コンテンツを表示のために修正するために、補間がHMDデバイス110でローカルに実行可能である。フローデータは、HMDデバイス110にアクセスしている左および右目用の左および右のビューを生成するために使用され得る。補間は、HMDデバイス110で実行可能である。なぜなら、システム110は、組合されたデータ(たとえば、球状ビデオデータおよびオプティカルフローデータ)をランタイムに提供するためである。
【0041】
いくつかの実現化例では、3D発生器モジュール122は、オプティカルフローデータおよび深度マップデータを使用して、画像コンテンツ内に3D領域を生成し、VR空間でそのような3D効果をユーザに提供する。3D効果は、手動または自動で設置されるようトリガされ得る。たとえば、特定の画像コンテンツの3D局面は、監督の決定時の後処理での取込後に構成され得る。特に、監督は、自分のVR空間におけるシーンが、VR空間において飛行機およびヘリコプターがユーザの頭上を飛ぶようシミュレートされる飛行機およびヘリコプターのシーケンスを提供するように構成され得る、と判断できる。監督は、3D生成器ツール(図示せず)を含む1組のツールにアクセスして、3D効果をビデオコンテンツに適用してもよい。この例では、監督は、ユーザは飛行機またはヘリコプターの騒音が聞こえると空を見上げるであろうと判断でき、飛行機およびヘリコプターを3Dコンテンツとして提供するために3D生成器ツールを使用してビデオ画像コンテンツを調節できる。そのような例では、監督は、ユーザはヘリコプターおよび飛行機が通り過ぎるまで空を見上げているかもしれないため、他の周囲のビデオコンテンツは、3Dコンテンツとして提供された場合に、ユーザに使用をあまり提供しないかもしれない、と判断できる。したがって、監督は、ヘリコプターおよび飛行機を含むシーケンスの終了が予定されると、3D効果を空からビデオコンテンツにおける別のエリアに調節するようにビデオコンテンツを構成できる。
【0042】
3D効果を含む画像コンテンツの部分を手動で選択することは、たとえばVR映画監督によってトリガされ得る。監督は、コンテンツに基づいて、または所望のユーザ応答に基づいて画像コンテンツを構成してもよい。たとえば、監督は、ユーザの注目をコンテンツ内のどこかに集中させたいかもしれず、ほんの数例を挙げると、データへの有用なアクセス、芸術的ビジョン、または滑らかな遷移を提供するために、そうすることができる。監督は、画像コンテンツ内に3D変更を予め構成し、そのような変更がVR空間でユーザに表示される時間を調節することができる。
【0043】
3D効果を含む画像コンテンツの部分を自動的に選択することは、効果をトリガするためにユーザ入力を使用することを含み得る。たとえば、システム100は、VR空間においてコンテンツにアクセスしているユーザの検出された頭部の傾きに基づいて、3D効果を画像コンテンツ内に現われるようトリガするために使用され得る。ユーザの他の動き、コンテンツ変更、センサ、および場所ベースの効果が、3D効果の特定の適用または除去をトリガするための入力として使用され得る。一例では、ステージ上のコンサートをVR空間において3Dで表わすことができ、一方、ユーザはコンサート中にまず振り返らないため、コンサートにアクセスしているユーザの背後の観衆は2Dのままであってもよい。しかしながら、ユーザが振り返ることを選択した場合、3D効果は、ステージ/コンサート画像コンテンツから観客画像コンテンツにシフトされ得る。
【0044】
例示的なシステム100では、デバイス106、108、および112は、ラップトップコンピュータ、デスクトップコンピュータ、モバイルコンピューティングデバイス、またはゲーム機であってもよい。いくつかの実現化例では、デバイス106、108、および112は、HMDデバイス110内に配置され(たとえば設置され/位置し)得るモバイルコンピューティングデバイスであり得る。モバイルコンピューティングデバイスは、たとえば、HMDデバイス110のためのスクリーンとして使用され得るディスプレイデバイスを含み得る。デバイス106、108、および112は、VRアプリケーションを実行するためのハードウェアおよび/またはソフトウェアを含み得る。加えて、デバイス106、108、および112は、これらのデバイスがHMDデバイス110の前に設置されるか、またはHMDデバイス110に対してある範囲の位置内に保持される場合に、HMDデバイス110の3D移動を認識、監視、および追跡可能なハードウェアおよび/またはソフトウェアを含み得る。いくつかの実現化例では、デバイス106、108、および112は、追加のコンテンツをネットワーク104を通してHMDデバイス110に提供し得る。いくつかの実現化例では、デバイス102、106、108、110、および112は、ネットワーク104を介してペアリングされるかまたは接続された互いのうちの1つ以上と接続/インターフェイス接続され得る。この接続は有線でも無線でもよい。ネットワーク104は公衆通信ネットワークでも私設通信ネットワークでもよい。
【0045】
システム100は電子記憶装置を含んでいてもよい。電子記憶装置は、情報を電子的に格納する非一時的記憶媒体を含み得る。電子記憶装置は、取込画像、取得画像、前処理された画像、後処理された画像などを格納するように構成されてもよい。開示されるカメラリグのいずれかを用いて取込まれた画像は、ビデオの1つ以上のストリームとして処理されて格納され得るか、または個々のフレームとして格納され得る。いくつかの実現化例では、格納は取込時に起こり、レンダリングは取込みの部分の直後に起こり、取込みおよび処理が同時でなかった場合よりも早く、パノラマステレオコンテンツへの高速アクセスを可能とし得る。
【0046】
図2は、ビデオコンテンツの3D部分を生成する際に使用するシーンの画像を取込むように構成された例示的な球状カメラリグ200を示す図である。カメラリグ200は、多くのカメラ202、204、206、208、210、212、214、216、および218を含む。カメラ202〜218は、球状形状のリグに取付けられて図示されている。球の他の角度についての追加のカメラは図2に示されていないが、そのような他の角度から画像コンテンツを収集するように構成されている。カメラ202〜218は、3つのカメラの各々が、球を包囲する各点/エリアについて画像コンテンツを取込むために、ともに機能できるように配置される。各点/エリアを取込むことは、リグ200を包囲するシーンの静止画像またはビデオ画像を取込むことを含む。カメラ202〜218は、球(または他の形状のリグ)に当たって設置され得る。いくつかの実現化例では、カメラ202〜218(および/または、より多いかより少ないカメラ)は、追加の画像コンテンツを取込むために球に対して傾斜して設置され得る。
【0047】
非限定的な一例では、カメラ202、204、および206は、球を包囲するシーンのエリアの画像を取込むために配置され得る。取込画像は分析され、ともに組合され(たとえばつなぎ合わされ)て、VR空間においてユーザのための可視シーンを形成し得る。同様に、カメラ204を用いて取込まれた画像が、カメラ202および208を用いて取込まれた画像と組合されて、可視シーンの別のエリアを提供し得る。カメラ202、208、および210を用いて取込まれた画像同士は、カメラ206、212、および214と同じやり方で組合され得る。カメラ間のより広い空間も可能になり得る。たとえば、カメラ210、212、および216を用いて取込まれた画像同士を組合せて、リグ200の半球の半分から見えるシーン(たとえば点)についての画像コンテンツを提供することができる。球200の半球の別の半分からの可視画像を提供するために、同様の組合せがカメラ210、212、および218を用いて作られ得る。いくつかの実現化例では、カメラリグ200の直径220は、約0.15メートル〜約1.5メートルのどこかにあってもよい。非限定的な一例では、直径220は約0.2〜約0.9メートルである。別の非限定的な例では、直径220は約0.5〜約0.6メートルである。いくつかの実現化例では、カメラ間の間隔は約0.05メートル〜約0.6メートルであり得る。非限定的な一例では、カメラ間の間隔は約0.1メートルである。
【0048】
いくつかの実現化例では、空間における各点を取込むために、カメラの集団は、そのような球状カメラリグ(または他の3D形状のリグ)上に、多くの方向において配置され得る。すなわち、空間における各点は、少なくとも3つのカメラによって取込まれてもよい。一例では、多くのカメラができるだけ接近して球上に(たとえば、二十面体の各隅、ジオデシックドームの各隅などに)配置され得る。多くのリグ構成を以下に説明する。本開示で説明される各構成は、前述のまたは他の直径およびカメラ間距離を有して構成され得る。
【0049】
図3を参照して、二十面体状カメラリグ300が示される。カメラリグ300上には多くのカメラが搭載され得る。カメラは、カメラ302、304、および306によって図示されるように、二十面体における三角形の点に設置され得る。これに代えて、またはこれに加えて、カメラは、カメラ308、310、312、および314によって図示されるように、二十面体の三角形の中心に設置され得る。二十面体の辺の周りに、カメラ316、318、320、322、および324が図示されている。二十面体の周りに、追加のカメラが含まれ得る。カメラ間隔および直径326は、本開示全体にわたって説明される他のカメラリグと同様に構成されてもよい。いくつかの実現化例では、カメラは、カメラリグに対して接線方向に設置され得る。他の実現化例では、各カメラは、カメラリグに対してさまざまな角度で設置され得る。
【0050】
カメラリグ300は静止していてもよく、視野が広いカメラ302〜324で構成されてもよい。たとえば、カメラ302〜324は、約150度〜約180度の視野を取込むことができる。カメラ302〜324は、より広いビューを取込むために魚眼レンズを有していてもよい。いくつかの実現化例では、隣り合うカメラ(たとえば、302および320)はステレオペアとして機能でき、第3のカメラ306がカメラ302および320の各々とペアになって、カメラ302、306、および320から取得された画像からオプティカルフローが計算され得るステレオトライアドのカメラを生成し得る。同様に、図3に示されない数あるカメラ組合せの中でも特に、以下のカメラは、3D画像を生成するために組合せ可能画像を生成し得る:(カメラ302、312、および324)、(カメラ302、304、および324)、(カメラ304、316、および324)、(カメラ302、306、および320)、(カメラ304、316、および318)、(カメラ304、306、および318)、ならびに(カメラ310、312、および314)。
【0051】
いくつかの実現化例では、カメラリグ300(およびここに説明される他のカメラ)は、シーン330などのシーンの画像を取込むように構成され得る。画像は、シーン330の部分、シーン330のビデオ、またはシーン330のパノラマビデオを含んでいてもよい。動作時、ここに説明されるシステムは、そのような取込画像を検索し、コンテンツを処理して、取込画像内の特定の領域を3次元フォーマットで表示することができる。たとえば、ここに説明されるシステムは、2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断できる。例示的な領域は、領域332、334、および336を含む。そのような領域は、ユーザにより選択され、監督により選択され、または自動的に選択され得る。いくつかの実現化例では、領域は、画像が取込まれた後に、およびHMDデバイスでの画像の表示中に選択され得る。シーン330全体を通して他の領域が選択可能であり、領域332、334、および336は例示的な領域を表わす。領域332は、取込経路338、340、および342を使用してリグ300によって取込まれた領域を示す。
【0052】
図4を参照して、六角形球カメラリグ400が示される。カメラリグ400上には多くのカメラが搭載され得る。カメラは、カメラ402、404、および406によって図示されるように、六角形の点に、または六角形の辺に沿って設置され得る。これに代えて、またはこれに加えて、カメラは、六角形の中心に設置され得る。六角形球カメラリグ400の周りに、追加のカメラが含まれ得る。カメラ間隔および直径408は、本開示全体にわたって説明される他のカメラリグと同様に構成されてもよい。
【0053】
図5は、VR空間にアクセスしているユーザに3D画像コンテンツのエリアを提供するためのプロセス500の一実施形態を示すフローチャートである。プロセス500は、取込画像を使用して、RGBデータを含むもののそれに限定されない画像データを検索および/または計算することができ、そのようなデータを使用して、画像の領域における画素の一部に関連付けられた深度値データを計算することができる。システムは、頭部装着型ディスプレイデバイスにおける表示のために領域の3次元バージョンを提供するために、画像データを使用して領域の2次元バージョンを領域の3次元バージョンに変換することができる。
【0054】
ブロック502で、システム100は、2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断し得る。複数の画像は、静止画像、ビデオ、画像の部分、および/またはビデオの部分であってもよい。いくつかの実現化例では、複数の画像は、球状形状のカメラリグ上に搭載された多くのカメラを用いて取込まれたビデオ画像コンテンツを含んでいてもよい。いくつかの実現化例では、2次元データを3次元データに変換するための領域を判断するステップは、ディスプレイデバイス106などの頭部装着型ディスプレイで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれる。ユーザ入力は、頭部回転、凝視方向の変更、手ぶり、場所変更などを含んでいてもよい。いくつかの実現化例では、領域を判断するステップは、特定のビデオまたは画像内に3D領域を提供するというVR映画監督の選択に基づいて、手動で起こり得る。
【0055】
ブロック504で、システム100は、その領域における画素の一部について深度値を計算し得る。いくつかの実現化例では、システム100は、領域における各画素について深度値を計算し得る。深度値を計算するステップは、複数のカメラによって取込まれた多くの領域を比較するステップを含んでいてもよい。たとえば、領域332の3つの画像が、領域332に対して異なる角度にある3つのカメラ(たとえば、カメラ304、316、および324)によって取込まれ得る。システム100は、画素強度の精度を判断するために、3つの画像中の画素強度および場所を比較し得る。比較を使用して、深度値が、領域332における1つ以上の画素について計算され得る。画素強度の精度を確認するために、他の基準オブジェクトがシーンで比較され得る。
【0056】
ブロック506で、システム100は球状画像を生成し得る。球状画像を生成するステップは、画像データを使用して、画像の球状にフォーマット化されたバージョンを計算するステップを含み得る。
【0057】
ブロック508で、システム100は、画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成し得る。たとえば、画素の一部は、領域における画素の一部のうちの1つ以上に関連付けられた対応する深度値と等しい半径で、コンピュータグラフィックスオブジェクトの表面上に表わされてもよい。コンピュータグラフィックスオブジェクトは、球、二十面体、三角形、または他の多角形であってもよい。
【0058】
ブロック510で、システム100は、画像データを使用して、コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを生成し得る。テクスチャマッピングは、画像データをコンピュータグラフィックスオブジェクトの表面にマッピングすることを含んでいてもよい。ブロック512で、システム100は、頭部装着型ディスプレイデバイスにおける表示のために、球状画像およびテクスチャマッピングを送信し得る。
【0059】
ブロック512で、システム100は、頭部装着型ディスプレイデバイスにおける表示のために、球状画像およびテクスチャマッピングを送信し得る。いくつかの実現化例では、プロセス500は、領域についての追加の球状画像およびテクスチャマッピングを生成するステップと、画像データの一部と球状画像とを組合せることによって、左目ビューを生成するステップとを含んでいてもよい。プロセス500は加えて、追加の画像データを生成し、追加の画像データと追加の球状画像とを組合せることによって、右目ビューを生成するステップを含み得る。プロセス500は加えて、頭部装着型ディスプレイデバイスにおいて左目ビューおよび右目ビューを表示するステップを含み得る。いくつかの実現化例では、画像データは、領域における画素の一部のうちの少なくともいくつかについての深度値データおよびRGBデータを含む。
【0060】
表示は、領域に3D画像コンテンツを含んでいてもよい。方法はまた、追加の球状画像およびテクスチャマッピングを生成するステップと、深度値の一部をRGBデータおよび球状画像と組合せることによって、左目ビューを生成するステップと、追加の深度値を生成し、追加の深度値を更新されたRGBデータおよび追加の球状画像と組合せることによって、右目ビューを生成するステップと、頭部装着型ディスプレイデバイスにおいて左目ビューおよび右目ビューを表示するステップとを含んでいてもよい。
【0061】
いくつかの実現化例では、ここに説明されるシステムは、任意の数のカメラを用いて画像を取得するように構成されてもよい。たとえば、カメラ402、404、および406(図4)を使用して、特定の画像を取込むことができる。ここに説明されるシステムは、取込画像のうちの1つ以上を使用して、頭部装着型ディスプレイデバイスに提供するための少なくとも2つの更新画像を生成し得る。更新画像は、2Dまたは3Dコンテンツを提供するように構成されてもよい。3Dコンテンツは、更新画像の部分または更新画像のすべてにおいて構成され得る。更新画像は、たとえばカメラ402、404、および406などの物理的カメラから取込まれた画像から生成された仮想カメラ視点を使用して生成されてもよい。視点は、画像の特定の領域において特定の3Dコンテンツを提供するために選択された1つ以上のオフセットに関していてもよい。
【0062】
いくつかの実現化例では、更新画像は、特定のオフセットから生成された画像データを含む。たとえば、ある更新画像は、コンテンツにおける画素の一部が1つ以上のカメラ402、404、または406の左側に面するオフセットから取込まれた画像コンテンツを含んでいてもよい。別の更新画像は、コンテンツにおける画素の一部が1つ以上のカメラ402、404、または406の右側に面するオフセットから取込まれた画像コンテンツを含んでいてもよい。
【0063】
一般に、更新画像は、オフセット画像コンテンツ、仮想コンテンツ、さまざまなカメラ角度からのコンテンツ、操作された画像コンテンツ、およびそれらの組合せを含んでいてもよい。いくつかの実現化例では、更新画像は、少なくとも1つの仮想カメラの視点を補間することによって生成されてもよい。補間は、取込画像における複数の画素をサンプリングすることと、オプティカルフローを使用して仮想コンテンツを生成することと、仮想コンテンツが更新画像のうちの少なくとも1つの内部に設置されるよう適合させることとを含んでいてもよい。
【0064】
仮想カメラは、予め規定された中心線からの左側オフセットでコンテンツを取込み、予め規定された中心線からの右側オフセットでコンテンツを取込むように構成されてもよい。左側オフセットおよび右側オフセットは修正可能であり、また、頭部装着型ディスプレイにおける正確な表示のために画像を適合させるために機能的であってもよい。
【0065】
仮想カメラは、1つ以上の物理的カメラを用いて取込まれたコンテンツを利用し、コンテンツを補間された視点から提供されるよう適合させるように構成されてもよい。特に、仮想カメラは、1つ以上の物理的カメラによって生成された任意のオフセット(角度)を取込むように適合され得る。オフセットは視点を規定してもよい。オフセットは、物理的カメラの中心線から、または2つの物理的カメラ間に規定された中心線から規定されてもよい。コンテンツの補間は、いずれかの中心線からの任意のオフセットを有するコンテンツを生成するために調整可能であり、オフセットの量および方向は、HMDディスプレイデバイスにおいて提供される画像において3次元効果の正確な描写を保証するように選択され得る。
【0066】
少なくとも2つの更新画像を生成すると、ここに説明されるシステムは、頭部装着型ディスプレイの左アイピースに提供するための第1の球状画像を生成するために、第1の画像を第1の球面にマッピングするように構成されてもよい。同様に、ここに説明されるシステムは、頭部装着型ディスプレイの右アイピースに提供するための第2の球状画像を生成するために、第2の画像を第2の球面にマッピングするように構成されてもよい。第1の画像のマッピングおよび第2の画像のマッピングは、第1の画像および第2の画像にテクスチャを適用することを含んでいてもよい。テクスチャの適用は、詳細に上述されたように、第1の画像から第1の球面に画素座標を割当てること、および、第2の画像から第2の球面に画素座標を割当てることを含んでいてもよい。
【0067】
図6は、ここに説明される手法を用いて使用され得る汎用コンピュータデバイス600および汎用モバイルコンピュータデバイス650の例を示す。コンピューティングデバイス600は、プロセッサ602と、メモリ604と、記憶装置606と、メモリ604および高速拡張ポート610に接続している高速インターフェイス608と、低速バス614および記憶装置606に接続している低速インターフェイス612とを含む。コンポーネント602、604、606、608、610、および612の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ602は、コンピューティングデバイス600内で実行される命令を処理可能であり、これらの命令は、GUIのためのグラフィック情報を、高速インターフェイス608に結合されたディスプレイ616などの外部入出力デバイス上に表示するために、メモリ604内または記憶装置606上に格納された命令を含む。他の実現化例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。加えて、複数のコンピューティングデバイス600が接続されてもよく、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0068】
メモリ604は、情報をコンピューティングデバイス600内に格納する。一実現化例では、メモリ604は1つまたは複数の揮発性メモリユニットである。別の実現化例では、メモリ604は1つまたは複数の不揮発性メモリユニットである。メモリ604はまた、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
【0069】
記憶装置606は、コンピューティングデバイス600のための大容量記憶を提供可能である。一実現化例では、記憶装置606は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラム製品が情報担体において有形に具体化され得る。コンピュータプログラム製品はまた、実行されると上述のような1つ以上の方法を行なう命令を含んでいてもよい。情報担体は、メモリ604、記憶装置606、またはプロセッサ602上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【0070】
高速インターフェイス608はコンピューティングデバイス600のための帯域幅集約的な動作を管理し、一方、低速コントローラ612はより低い帯域幅集約的な動作を管理する。機能のそのような割当ては例示に過ぎない。一実現化例では、高速コントローラ608は、メモリ604、ディスプレイ616に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)、および、さまざまな拡張カード(図示せず)を受付け得る高速拡張ポート610に結合される。この実現化例では、低速インターフェイス612は、記憶装置606および低速拡張ポート614に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイスに、もしくは、スイッチまたはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0071】
コンピューティングデバイス600は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、標準サーバ620として、またはそのようなサーバのグループで複数回実現されてもよい。それはまた、ラックサーバシステム624の一部として実現されてもよい。加えて、それは、ラップトップコンピュータ622などのパーソナルコンピュータにおいて実現されてもよい。これに代えて、コンピューティングデバイス600からのコンポーネントは、デバイス650などのモバイルデバイス(図示せず)における他のコンポーネントと組合されてもよい。そのようなデバイスの各々は、コンピューティングデバイス600、650のうちの1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス600、650で構成されてもよい。
【0072】
コンピューティングデバイス650は、数あるコンポーネントの中でも特に、プロセッサ652と、メモリ664と、ディスプレイ654などの入出力デバイスと、通信インターフェイス666と、トランシーバ668とを含む。デバイス650にはまた、追加の格納を提供するために、マイクロドライブまたは他のデバイスなどの記憶装置が設けられてもよい。コンポーネント650、652、664、654、666、および668の各々は、さまざまなバスを使用して相互接続されており、当該コンポーネントのうちのいくつかは、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。
【0073】
プロセッサ652は、メモリ664に格納された命令を含む、コンピューティングデバイス650内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス650が実行するアプリケーション、およびデバイス650による無線通信の制御といった、デバイス650の他のコンポーネント同士の連携を提供してもよい。
【0074】
プロセッサ652は、ディスプレイ654に結合された制御インターフェイス658およびディスプレイインターフェイス656を介してユーザと通信してもよい。ディスプレイ654は、たとえば、TFT LCD(Thin-Film-Transistor Liquid Crystal Display:薄膜トランジスタ液晶ディスプレイ)、またはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス656は、ディスプレイ654を駆動してグラフィカル情報および他の情報をユーザに提示するための適切な回路を含んでいてもよい。制御インターフェイス658は、ユーザからコマンドを受信し、それらをプロセッサ652に送出するために変換してもよい。加えて、デバイス650と他のデバイスとの近接エリア通信を可能にするように、外部インターフェイス662がプロセッサ652と通信した状態で設けられてもよい。外部インターフェイス662は、たとえば、ある実現化例では有線通信を提供し、他の実現化例では無線通信を提供してもよく、複数のインターフェイスも使用されてもよい。
【0075】
メモリ664は、情報をコンピューティングデバイス650内に格納する。メモリ664は、1つまたは複数のコンピュータ読取可能媒体、1つまたは複数の揮発性メモリユニット、もしくは、1つまたは複数の不揮発性メモリユニットの1つ以上として実現され得る。拡張メモリ674も設けられ、拡張インターフェイス672を介してデバイス650に接続されてもよく、拡張インターフェイス672は、たとえばSIMM(Single In Line Memory Module)カードインターフェイスを含んでいてもよい。そのような拡張メモリ674は、デバイス650に余分の格納スペースを提供してもよく、もしくは、デバイス650のためのアプリケーションまたは他の情報も格納してもよい。具体的には、拡張メモリ674は、上述のプロセスを実行または補足するための命令を含んでいてもよく、安全な情報も含んでいてもよい。このため、たとえば、拡張メモリ674はデバイス650のためのセキュリティモジュールとして設けられてもよく、デバイス650の安全な使用を許可する命令でプログラミングされてもよい。加えて、ハッキング不可能な態様でSIMMカード上に識別情報を乗せるといったように、安全なアプリケーションが追加情報とともにSIMMカードを介して提供されてもよい。
【0076】
メモリはたとえば、以下に説明されるようなフラッシュメモリおよび/またはNVRAMメモリを含んでいてもよい。一実現化例では、コンピュータプログラム製品が情報担体において有形に具体化される。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を行なう命令を含む。情報担体は、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体であり、たとえばトランシーバ668または外部インターフェイス662を通して受信され得る。
【0077】
デバイス650は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス666を介して無線通信してもよい。通信インターフェイス666は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、さまざまなモードまたはプロトコル下での通信を提供してもよい。そのような通信は、たとえば無線周波数トランシーバ668を介して生じてもよい。加えて、ブルートゥース、Wi−Fi、または他のそのようなトランシーバ(図示せず)などを使用して、短距離通信が生じてもよい。加えて、GPS(Global Positioning System:全地球測位システム)レシーバモジュール670が、追加のナビゲーション関連および位置関連無線データをデバイス650に提供してもよく、当該データは、デバイス650上で実行されるアプリケーションによって適宜使用されてもよい。
【0078】
デバイス650はまた、ユーザから口頭情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック660を使用して、音声通信してもよい。音声コーデック660はまた、たとえばデバイス650のハンドセットにおいて、スピーカを介すなどして、ユーザに聞こえる音を生成してもよい。そのような音は、音声電話からの音を含んでいてもよく、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでいてもよく、デバイス650上で動作するアプリケーションが生成する音も含んでいてもよい。
【0079】
コンピューティングデバイス650は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、携帯電話680として実現されてもよい。それはまた、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【0080】
ここに説明されたシステムおよび手法のさまざまな実現化例は、デジタル電子回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらのさまざまな実現化例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現化例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するとともに、これらにデータおよび命令を送信するように結合されてもよい。
【0081】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)は、プログラマブルプロセッサのための機械命令を含んでおり、高レベル手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械言語で実現され得る。ここに使用されるように、「機械読取可能媒体」「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0082】
ユーザとのやりとりを提供するために、ここに説明されたシステムおよび手法は、情報をユーザに表示するためのディスプレイデバイス(たとえば、CRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供できるようにするキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実現され得る。他の種類のデバイスを使用してユーザとのやりとりを提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信され得る。
【0083】
ここに説明されたシステムおよび手法は、(たとえばデータサーバとしての)バックエンドコンポーネントを含む、またはミドルウェアコンポーネント(たとえばアプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、ユーザがここに説明されたシステムおよび手法の実現化例とやりとりできるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)を含む、もしくは、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば通信ネットワーク)によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(local area network:LAN)、ワイドエリアネットワーク(wide area network:WAN)、およびインターネットを含む。
【0084】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介してやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【0085】
いくつかの実現化例では、図6に示すコンピューティングデバイスは、バーチャルリアリティ(VRヘッドセット690)とインターフェイス接続するセンサを含み得る。たとえば、図6に示すコンピューティングデバイス650または他のコンピューティングデバイス上に含まれる1つ以上のセンサは、VRヘッドセット690への入力を提供でき、または一般に、VR空間への入力を提供できる。センサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、生体認証センサ、温度センサ、湿度センサ、および周囲光センサを含み得るものの、それらに限定されない。コンピューティングデバイス650はこれらのセンサを使用して、VR空間におけるコンピューティングデバイスの絶対位置および/または検出された回転を判断可能であり、それは次に、VR空間への入力として使用され得る。たとえば、コンピューティングデバイス650は、コントローラ、レーザポインタ、キーボード、武器などの仮想オブジェクトとしてVR空間に組込まれてもよい。VR空間に組込まれた場合のコンピューティングデバイス/仮想オブジェクトのユーザによる位置付けは、ユーザが、VR空間において仮想オブジェクトをある態様で見るようにコンピューティングデバイスを位置付けることを可能にし得る。たとえば、仮想オブジェクトがレーザポインタを表わす場合、ユーザは、コンピューティングデバイスを、実際のレーザポインタであるかのように操作することができる。ユーザはコンピューティングデバイスをたとえば左右に、上下に、円形に動かして、レーザポインタを使用するのと同様の態様でデバイスを使用することができる。
【0086】
いくつかの実現化例では、コンピューティングデバイス650上に含まれ、またはコンピューティングデバイス650に接続された1つ以上の入力デバイスは、VR空間への入力として使用され得る。入力デバイスは、タッチスクリーン、キーボード、1つ以上のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロホン、入力機能性を有するイヤホンまたは小型イヤホン、ゲーミングコントローラ、または他の接続可能な入力デバイスを含み得るものの、それらに限定されない。コンピューティングデバイスがVR空間に組込まれた場合にコンピューティングデバイス650上に含まれる入力デバイスとやりとりするユーザは、特定のアクションがVR空間で生じるようにすることができる。
【0087】
いくつかの実現化例では、コンピューティングデバイス650のタッチスクリーンは、VR空間においてタッチパッドとしてレンダリングされ得る。ユーザは、コンピューティングデバイス650のタッチスクリーンとやりとりすることができる。やりとりは、たとえばVRヘッドセット690において、VR空間におけるレンダリングされたタッチパッド上の動きとしてレンダリングされる。レンダリングされた動きは、VR空間においてオブジェクトを制御することができる。
【0088】
いくつかの実現化例では、コンピューティングデバイス650上に含まれる1つ以上の出力デバイスは、VR空間においてVRヘッドセット690のユーザに出力および/またはフィードバックを提供することができる。出力およびフィードバックは、視覚、触覚、または音声によるものであり得る。出力および/またはフィードバックは、振動、1つ以上のライトまたはストロボをオンオフすることもしくは点滅および/または明滅させること、アラームを鳴らすこと、チャイムを鳴らすこと、歌を演奏すること、および音声ファイルを演奏することを含み得るものの、それらに限定されない。出力デバイスは、振動モータ、振動コイル、圧電デバイス、静電デバイス、発光ダイオード(LED)、ストロボ、およびスピーカを含み得るものの、それらに限定されない。
【0089】
いくつかの実現化例では、コンピューティングデバイス650は、コンピュータが生成した3D環境において別のオブジェクトのように見えてもよい。ユーザによるコンピューティングデバイス650とのやりとり(たとえば、タッチスクリーンを回転させ、振動させること、タッチスクリーンに触れること、タッチスクリーンを横切って指をスワイプすること)は、VR空間におけるオブジェクトとのやりとりとして解釈され得る。VR空間におけるレーザポインタの例では、コンピューティングデバイス650は、コンピュータが生成した3D環境において仮想レーザポインタのように見える。ユーザがコンピューティングデバイス650を操作すると、ユーザはVR空間においてレーザポインタの動きを見る。ユーザは、コンピューティングデバイス650上またはVRヘッドセット690上で、VR空間におけるコンピューティングデバイス650とのやりとりからフィードバックを受信する。
【0090】
いくつかの実現化例では、コンピューティングデバイスに加えて1つ以上の入力デバイス(たとえばマウス、キーボード)が、コンピュータが生成した3D環境においてレンダリングされ得る。レンダリングされた入力デバイス(たとえば、レンダリングされたマウス、レンダリングされたキーボード)は、VR空間においてオブジェクトを制御するために、VR空間においてレンダリングされたとして使用され得る。
【0091】
コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータといった、さまざまな形態のデジタルコンピュータを表わすよう意図されている。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスといった、さまざまな形態のモバイルデバイスを表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は、単なる例示であるよう意図されており、本文書に記載のおよび/または請求項に記載の本発明の実現化例を限定するよう意図されてはいない。
【0092】
多くの実施形態を説明してきた。しかしながら、明細書の精神および範囲から逸脱することなくさまざまな変更がなされ得ることが理解されるであろう。
【0093】
加えて、図面に示す論理フローは、所望の結果を達成するために、図示された特定の順序または順番を必要としない。加えて、説明されたフローに他のステップが提供されてもよく、または当該フローからステップが除去されてもよく、説明されたシステムに他のコンポーネントが追加されてもよく、または当該システムから除去されてもよい。したがって、他の実施形態は以下の請求項の範囲内にある。
【0094】
以下の例において、さらなる実現化例を要約する。
例1:コンピュータにより実現される方法であって、2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断するステップと、領域における画素の一部について深度値を計算するステップと、領域における画素の一部についての画像データを含む球状画像を生成するステップと、画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成するステップと、画像データを使用して、コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを生成するステップとを含み、テクスチャマッピングは、画像データをコンピュータグラフィックスオブジェクトの表面にマッピングすることを含み、方法はさらに、頭部装着型ディスプレイデバイスにおける表示のために、球状画像およびテクスチャマッピングを送信するステップを含む、方法。
【0095】
例2:画素の一部は、領域における画素の一部のうちの1つ以上に関連付けられた対応する深度値と等しい半径で、コンピュータグラフィックスオブジェクトの表面上に表わされる、例1に記載の方法。
【0096】
例3:領域に関連付けられた追加の球状画像およびテクスチャマッピングを生成するステップと、画像データの一部と球状画像とを組合せることによって、左目ビューを生成するステップと、追加の画像データを生成し、追加の画像データと追加の球状画像とを組合せることによって、右目ビューを生成するステップと、頭部装着型ディスプレイデバイスにおいて左目ビューおよび右目ビューを表示するステップとをさらに含み、画像データは、領域における画素の一部のうちの少なくともいくつかについての深度値データおよびRGBデータを含む、例1または例2に記載の方法。
【0097】
例4:複数の画像はビデオコンテンツを含み、画像データは、画素の一部に関連付けられたRGBデータおよび深度値データを含み、方法はさらに、画像データを使用して、領域の2次元バージョンを領域の3次元バージョンに変換するステップと、頭部装着型ディスプレイデバイスにおける表示のために、領域の3次元バージョンを提供するステップとを含む、例1〜3のうちの1つに記載の方法。
【0098】
例5:複数の画像は、球状形状のカメラリグ上に搭載された複数のカメラを用いて取込まれる、例1〜4のうちの1つに記載の方法。
【0099】
例6:2次元データを3次元データに変換するための領域を判断するステップは、頭部装着型ディスプレイで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれる、例1〜5のうちの1つに記載の方法。
【0100】
例7:ユーザ入力は頭部回転を含み、3次元データは、ビューに対応する複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、例6に記載の方法。
【0101】
例8:ユーザ入力は凝視方向の変更を含み、3次元データは、ユーザの視線上の複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、例6または例7に記載の方法。
【0102】
例9:コンピュータにより実現されるシステムであって、少なくとも1つのプロセッサと、命令を格納するメモリとを含み、命令は、少なくとも1つのプロセッサによって実行されると、システムに複数の動作を行なわせ、複数の動作は、2次元データを3次元データに変換するための、複数のカメラを用いて取込まれた複数の画像内の領域を判断することと、領域における画素の一部について深度値を計算することと、領域における画素の一部についての画像データを含む球状画像を生成することと、画像データを使用して、画像処理システムによって生成されたコンピュータグラフィックスオブジェクトの3次元空間において3次元表面を構成することと、画像データを使用して、コンピュータグラフィックスオブジェクトの表面へのテクスチャマッピングを生成することとを含み、テクスチャマッピングは、画像データをコンピュータグラフィックスオブジェクトの表面にマッピングすることを含み、複数の動作はさらに、頭部装着型ディスプレイデバイスにおける表示のために、球状画像およびテクスチャマッピングを送信することを含む、システム。
【0103】
例10:追加の球状画像およびテクスチャマッピングを生成することと、画像データの一部と球状画像とを組合せることによって、左目ビューを生成することと、追加の画像データを生成し、追加の画像データと追加の球状画像とを組合せることによって、右目ビューを生成することと、頭部装着型ディスプレイデバイスにおいて左目ビューおよび右目ビューを表示することとをさらに含み、画像データは、領域における画素の一部のうちの少なくともいくつかについての深度値データおよびRGBデータを含む、例9に記載のシステム。
【0104】
例11:複数の画像はビデオコンテンツを含み、画像データは、画素の一部に関連付けられたRGBデータおよび深度値データを含み、システムはさらに、画像データを使用して、領域の2次元バージョンを領域の3次元バージョンに変換することと、頭部装着型ディスプレイデバイスにおける表示のために、領域の3次元バージョンを提供することとを含む、例9または例10に記載のシステム。
【0105】
例12:複数の画像は、球状形状のカメラリグ上に搭載された複数のカメラを用いて取込まれる、例9〜11のうちの1つに記載のシステム。
【0106】
例13:2次元データを3次元データに変換するための領域を判断することは、頭部装着型ディスプレイで検出されたユーザ入力に少なくとも部分的に基づいて自動的に行なわれる、例9〜12のうちの1つに記載のシステム。
【0107】
例14:ユーザ入力は凝視方向の変更を含み、3次元データは、ユーザの視線上の複数の画像のうちの少なくとも1つにおいて3次元部分を生成するために使用される、例13に記載のシステム。
【0108】
例15:コンピュータにより実現される方法であって、複数のカメラを用いて複数の画像を取得するステップと、複数の画像について少なくとも2つの更新画像を生成するステップとを含み、少なくとも2つの更新画像は、予め規定された中心線からの左側オフセットでコンテンツを取込み、予め規定された中心線からの右側オフセットでコンテンツを取込むように構成された少なくとも1つの仮想カメラについての視点を補間することによって生成され、方法はさらに、頭部装着型ディスプレイの左アイピースに提供するための第1の球状画像を生成するために、少なくとも2つの更新画像における第1の画像を第1の球面にマッピングするステップと、頭部装着型ディスプレイの右アイピースに提供するための第2の球状画像を生成するために、少なくとも2つの更新画像における第2の画像を第2の球面にマッピングするステップと、頭部装着型ディスプレイの左アイピースに第1の球状画像を表示し、頭部装着型ディスプレイの右アイピースに第2の球状画像を表示するステップとを含む、方法。
【0109】
例16:少なくとも1つの仮想カメラは、1つ以上の物理的カメラを使用して取込まれたコンテンツを使用し、コンテンツを視点から提供されるよう適合させるように構成される、例15に記載の方法。
【0110】
例17: 第1の画像のマッピングは、第1の画像から第1の球面に画素座標を割当てることによって第1の画像にテクスチャを適用することを含み、第2の画像のマッピングは、第2の画像から第2の球面に画素座標を割当てることによって第2の画像にテクスチャを適用することを含む、例15または例16に記載の方法。
【0111】
例18:視点を補間することは、複数の画像における複数の画素をサンプリングすることと、オプティカルフローを使用して仮想コンテンツを生成することと、少なくとも2つの更新画像のうちの少なくとも1つの内部に仮想コンテンツを設置することとを含む、例15〜17のうちの1つに記載の方法。
【0112】
例19:少なくとも2つの球状画像は、左側オフセットで取込まれたコンテンツに含まれる複数の画素のうちの少なくとも一部を有するRGB画像と、右側オフセットで取込まれたコンテンツに含まれる複数の画素のうちの少なくとも一部を有するRGB画像とを含む、例18に記載の方法。
【0113】
例20:左側オフセットおよび右側オフセットは修正可能であり、また、頭部装着型ディスプレイにおける第1の画像および第2の画像の表示精度を適合させるために機能的である、例15〜19のうちの1つに記載の方法。
図1
図2
図3
図4
図5
図6