IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許75181963Dジオメトリを構築するための方法、装置及びプログラム
<>
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図1A
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図1B
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図2
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図3
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図4A
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図4B
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図4C
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図4D
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図5
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図6
  • 特許-3Dジオメトリを構築するための方法、装置及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】3Dジオメトリを構築するための方法、装置及びプログラム
(51)【国際特許分類】
   G06T 17/30 20060101AFI20240709BHJP
【FI】
G06T17/30
【請求項の数】 12
(21)【出願番号】P 2022565905
(86)(22)【出願日】2021-10-18
(65)【公表番号】
(43)【公表日】2023-07-12
(86)【国際出願番号】 US2021055393
(87)【国際公開番号】W WO2022235291
(87)【国際公開日】2022-11-10
【審査請求日】2022-10-27
(31)【優先権主張番号】63/185,946
(32)【優先日】2021-05-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/502,973
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100112656
【弁理士】
【氏名又は名称】宮田 英毅
(74)【代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】シャン・ジャン
(72)【発明者】
【氏名】ビン・ジアン
(72)【発明者】
【氏名】ル・ヘ
(72)【発明者】
【氏名】ハイチャオ・ジュ
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】ケリン・リュウ
(72)【発明者】
【氏名】ウェイウェイ・フェン
【審査官】橘 高志
(56)【参考文献】
【文献】米国特許出願公開第2020/0111250(US,A1)
【文献】Clara Fernandez-Labrador; Alejandro Perez-Yus; Gonzalo Lopez-Nicolas; Jose J. Guerrero,Layouts From Panoramic Images With Geometry and Deep Learning,IEEE Robotics and Automation Letters,Volume: 3, Issue: 4, October 2018,IEEE,2018年06月25日,p.3153 - 3160
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/30
(57)【特許請求の範囲】
【請求項1】
部屋のパノラマ画像から前記部屋の三次元(3D)ジオメトリを生成する方法であって、前記方法は、
記部屋の前記パノラマ画像の前記部屋の壁のコーナポイントのそれぞれが、前記部屋の床面および天井面の各々に存在し、同じ垂直線にある一対の床面のコーナポイントと天井面のコーナポイントとの内のオブジェクトによって遮られていないユーザによって手動でマークされた一方のコーナポイントと、該一方のコーナポイントとユーザによって設定された前記部屋の天井高とに基づいて決定された他方のコーナポイントと、の二次元(2D)位置を決定するステップと
前記壁のコーナポイントの前記2D位置、前記パノラマ画像のサイズ、および前記部屋の前記床面と前記部屋の前記パノラマ画像を捕捉するように構成されたデバイスの捕捉位置との間の距離に基づいて、前記壁のコーナポイントの3D位置を算出するステップと、
前記壁のコーナポイントの順序に基づいて前記部屋のレイアウトを決定するステップと、
前記部屋の前記レイアウトと前記壁のコーナポイントの前記3D位置に基づいて前記部屋の前記3Dジオメトリを生成するステップと、
を含む、方法。
【請求項2】
前記2D位置を決定するステップは、ユーザ入力に基づいて、前記壁のコーナポイントの前記2D位置を決定し、
前記ユーザ入力が、前記部屋の前記壁のコーナポイントおよび前記壁のコーナポイントの前記順序をユーザが選択することを含む、請求項1に記載の方法。
【請求項3】
前記壁のコーナポイントの少なくとも1つが、第1のタイプの壁のコーナポイントであり、前記第1のタイプの壁のコーナポイントが、前記3Dジオメトリの壁面を示す、請求項1に記載の方法。
【請求項4】
前記壁のコーナポイントの少なくとも1つが、第2のタイプの壁のコーナポイントであり、前記第2のタイプの壁のコーナポイントが、前記3Dジオメトリのオープンエリア平面を示す、請求項1に記載の方法。
【請求項5】
前記部屋の前記3Dジオメトリを生成する前記ステップが、
2つの近接する壁のコーナポイントのうちの所定の1つのタイプに基づいて、前記3Dジオメトリの平面を生成するステップを含む、請求項1に記載の方法。
【請求項6】
前記3Dジオメトリの平面内の各3D位置に対して、それぞれの前記3D位置に対応する前記部屋の前記パノラマ画像内の2D位置における色情報に基づいて、それぞれの前記3D位置の色情報を決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記3Dジオメトリの各壁面が、前記3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、
前記方法が、ユーザが前記壁のコーナポイントのうちの1つを選択することを支援するガイドラインを生成するステップをさらに含む、
請求項1に記載の方法。
【請求項8】
前記3Dジオメトリの各壁面が、前記3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、
前記方法が、前記ユーザによって選択された前記壁のコーナポイントのうちの1つを調整するステップをさらに含む、
請求項1に記載の方法。
【請求項9】
前記部屋の前記パノラマ画像における2つのポイントの2D位置を決定するステップと、
前記2つのポイントの前記2D位置、前記パノラマ画像の前記サイズ、および前記部屋の前記床面と前記デバイスの前記捕捉位置との間の前記距離に基づいて、前記2つのポイントの3D位置を算出するステップと、
前記2つのポイントの前記3D位置の間の距離を算出するステップと、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記部屋のレイアウトを決定するステップは、
前記壁のコーナポイントのユーザによって選択された順序に従って隣接する前記壁のコーナポイントを接続することにより、前記部屋のレイアウトを決定する、
請求項1に記載の方法。
【請求項11】
請求項1から10のいずれか一項に記載の方法を実行するように構成された処理回路を備える、装置。
【請求項12】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1から10のいずれか一項に記載の方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月15日に出願された米国特許出願第17/502,973号「METHOD AND APPARATUS FOR CONSTRUCTING A 3D GEOMETRY」に対する優先権の利益を主張し、2021年5月7日に出願された米国仮出願第63/185,946号「METHODS OF CONSTRUCTING 3D GEOMETRY FROM PANORAMA IMAGES WITH MARKED CORNERS FOR INDOOR SCENES」に対する優先権の利益を主張するものである。先行する出願の開示が完全な状態で本出願で参照により援用される。
【0002】
本開示は、一般的に、様々な仮想現実および/または拡張現実アプリケーション用途を含む三次元空間の再構築に関連する実施形態を説明する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈をおおまかに提示することを目的としている。本明細書に記載された発明者の業績は、その業績がこの背景技術セクションに記載されている限りにおいて、さもなければ出願時に従来技術として適格ではない可能性がある説明の態様は、本開示に対する従来技術として、明示的にも黙示的にも認められない。
【0004】
屋内建物の三次元(3D)再構築は、活発な研究テーマであり、不動産、建物構築、建物修復、エンターテイメントなどを含む様々な産業で使用されている。3D再構築は、単一の画像(例えば、RGB画像)または異なるビューからの画像グループを入力として取り込み、シーン内の建物の3Dジオメトリ表現を生成することによって、コンピュータビジョンや機械学習などの技術を活用することができる。深度センサの進歩により、シーンから直接深度情報を測定する、より簡単で正確な手段が使用可能になった。例えば、広く使用されている深度カメラとしては、Lidar、立体照明などが挙げられる。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の態様は、部屋のパノラマ画像から部屋の三次元(3D)ジオメトリを生成するための装置を提供する。装置は、前記部屋の前記パノラマ画像の前記部屋の壁のコーナポイントのそれぞれが、前記部屋の床面および天井面の各々に存在し、同じ垂直線にある一対の床面のコーナポイントと天井面のコーナポイントとの内のオブジェクトによって遮られていないユーザによって手動でマークされた一方のコーナポイントと、該一方のコーナポイントとユーザによって設定された前記部屋の天井高とに基づいて決定された他方のコーナポイントと、の二次元(2D)位置を決定する処理回路を含む。処理回路は、壁のコーナポイントの2D位置、パノラマ画像のサイズ、および部屋の床面と部屋のパノラマ画像を捕捉するように構成されたデバイスの捕捉位置との間の距離に基づいて壁のコーナポイントの3D位置を算出する。処理回路は、壁のコーナポイントの順序に基づいて部屋のレイアウトを決定する。処理回路は、部屋のレイアウトと壁のコーナポイントの3D位置とに基づいて部屋の3Dジオメトリを生成する。
【0006】
一実施形態において、ユーザ入力は、部屋の壁のコーナポイントおよび壁のコーナポイントの順序をユーザが選択することを含む。
【0007】
一実施形態において、壁のコーナポイントの少なくとも1つは、第1のタイプの壁のコーナポイントである。第1のタイプの壁のコーナポイントは、3Dジオメトリの壁面を示す。
【0008】
一実施形態において、壁のコーナポイントのうちの少なくとも1つは、第2タイプの壁のコーナポイントである。第2のタイプの壁のコーナポイントは、3Dジオメトリのオープンエリア平面を示す。
【0009】
一実施形態において、処理回路は、2つの近接する壁のコーナポイントのうちの所定の1つのタイプに基づいて、3Dジオメトリの平面を生成する。
【0010】
一実施形態において、処理回路は、3Dジオメトリの平面内の各3D位置に対して、それぞれの3D位置に対応する部屋のパノラマ画像内の2D位置における色情報に基づいて、それぞれの3D位置の色情報を決定する。
【0011】
一実施形態において、3Dジオメトリの各壁面は、3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、処理回路は、ユーザが壁のコーナポイントのうちの1つを選択することを支援するガイドラインを生成する。
【0012】
一実施形態において、3Dジオメトリの各壁面は、3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、処理回路は、ユーザによって選択された壁のコーナポイントのうちの1つを調整する。
【0013】
一実施形態において、処理回路は、部屋のパノラマ画像における2つのポイントの2D位置を決定する。処理回路は、2つのポイントの2D位置、パノラマ画像のサイズ、および部屋の床面とデバイスの捕捉位置との間の距離に基づいて、2つのポイントの3D位置を算出する。処理回路は、2つのポイントの3D位置の間の距離を算出する。
一実施形態において、処理回路は、部屋のレイアウトを決定する。処理回路は、壁のコーナポイントのユーザによって選択された順序に従って隣接する壁のコーナポイントを接続することにより、部屋のレイアウトを決定する。
【0014】
本開示の態様は、部屋のパノラマ画像から部屋の3Dジオメトリを生成するための方法を提供する。方法は、部屋のパノラマ画像から部屋の3Dジオメトリを生成するための装置によって実行される処理のいずれか、またはその組合せを実行できる。方法では、部屋のパノラマ画像における部屋の壁のコーナポイントの2D位置が、ユーザ入力に基づいて決定される。壁のコーナポイントのそれぞれは、部屋の床面または天井面のいずれか一方である。壁のコーナポイントの3D位置は、壁のコーナポイントの2D位置、パノラマ画像のサイズ、および部屋の床面と部屋のパノラマ画像を捕捉するように構成されたデバイスの捕捉位置との間の距離に基づいて算出される。部屋のレイアウトは、壁のコーナポイントの順序に基づいて生成される。部屋の3Dジオメトリは、部屋のレイアウトと壁のコーナポイントの3D位置とに基づいて生成される。
【0015】
本開示の態様は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、部屋のパノラマ画像から部屋の三次元(3D)ジオメトリを生成するための方法のいずれか、またはその組合せを実行させる命令を格納する非一時コンピュータ可読記メディアを提供する。
【0016】
以下の詳細な説明と添付の図面とから、開示されている保護対象のさらなる特徴、性質および様々な利点がより明らかになる。
【図面の簡単な説明】
【0017】
図1A】本開示の一実施形態による部屋の例示的なパノラマ画像を示す図である。
図1B】本開示の一実施形態による部屋の例示的な3Dジオメトリを示す図である。
図2】本開示の一実施形態による、別の部屋のパノラマ画像におけるホワイトボードの高さを測定する例を示す図である。
図3】本開示の一実施形態による、他の部屋のパノラマ画像における遮られたポイントを決定する例を示す図である。
図4A】本開示のいくつかの実施形態による、クロージャポイントおよび制御ポイントによって定義される部屋のレイアウトの様々な例を示す図である。
図4B】本開示のいくつかの実施形態による、クロージャポイントおよび制御ポイントによって定義される部屋のレイアウトの様々な例を示す図である。
図4C】本開示のいくつかの実施形態による、クロージャポイントおよび制御ポイントによって定義される部屋のレイアウトの様々な例を示す図である。
図4D】本開示のいくつかの実施形態による、クロージャポイントおよび制御ポイントによって定義される部屋のレイアウトの様々な例を示す図である。
図5】本開示の一実施形態によるマーキング処理で使用される例示的なガイドラインを示す図である。
図6】本開示の一実施形態による例示的なフローチャート図である。
図7】本開示の一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0018】
I.三次元ジオメトリ構築
本開示は、部屋などの三次元(3D)空間の再構築に関する。部屋は、例えば、建物内であり得る。さらに、3D再構築は、仮想ツアー、デジタル博物館、仮想住宅販売などの様々な仮想現実(VR)および/または拡張現実(AR)アプリケーションで使用することができる。本開示では、屋内シーンのためのハンドメイドのコーナを有するパノラマ画像から部屋の3Dジオメトリを構築する方法を例として記述する。しかし、この方法は他の3D空間にも適用できることを理解されたい。
【0019】
オブジェクトの3Dジオメトリ表現は、通常、ポイントクラウドの形態であり、これは、空間内の3Dポイントのセットを含む。各3Dポイントは、3D位置情報と、色情報や反射率情報などの追加属性とを含むことができる。別の一般的な3Dフォーマットはテクスチャメッシュであり、これには、3Dポイント情報に加えて、隣接するポイント間の接続情報が含まれる。接続情報に基づいて、テクスチャメッシュのファセット(例えば、三角形)の集合を形成できる。テクスチャメッシュのテクスチャ情報も、各ファセットに添付できる。
【0020】
いくつかの屋内シーンアプリケーションでは、いくつかの事前知識を利用することによって、いくつかの学習ベースの方法(例えば、LayoutNetアルゴリズム、HorizonNetアルゴリズム、およびDula-Netアルゴリズム)を使用して、部屋の単一のパノラマ画像からレイアウト境界およびコーナ位置などの部屋のいくつかのレイアウト要素を予測できる。しかし、これらのアルゴリズムは、典型的にデータ駆動型であり、高品質の訓練データを必要とする。アルゴリズムは、実世界のシーンの複雑さのために、実際のシナリオにおいて失敗する可能性がある。
【0021】
本開示は、パノラマ画像内の部屋の、手でマークされた(例えば、ユーザによって手動でマークされた)、壁のコーナを有する部屋の単一のパノラマ画像から、部屋の3Dジオメトリを再構築する方法を含む。これらの方法は、半自動パイプラインで適用できることに留意されたい。例えば、自動アルゴリズム(例えば、LayoutNetアルゴリズム、HorizonNetアルゴリズム、またはDula-Netアルゴリズム)を最初に使用して、レイアウトコーナのおおまかな推定を生成し、次に、本開示の方法を使用してレイアウトコーナを精緻化させることができる。別の例では、レイアウトコーナは、本開示の方法を使用して手でマークしてもよく、次に、自動精緻化アルゴリズムを、手でマークされたコーナに適用してもよい。
【0022】
図1Aは、本開示の一実施形態による部屋の例示的なパノラマ画像を示す。パノラマ画像において、ユーザは、部屋の1つまたは複数の壁のコーナに手動でマークを付けることができる。マークされた壁のコーナに基づいて、図1Bに示されるような、部屋の3Dジオメトリを生成できる。部屋の3Dジオメトリは、ポイントクラウドまたはテクスチャメッシュの形態で表現できる。
【0023】
本開示の方法において、部屋のパノラマ画像(I)を入力として使用できる。パノラマ画像(I)のサイズは画素で、W×Hであり、ここでW=2Hと仮定する。また、カメラの高さ(例えば、カメラの中心位置から基平面までの垂直距離)の正確な値を提供できる。カメラの高さは、ユーザによって提供されるか、アルゴリズムによって推定されるか、測定されるか、またはデフォルト値として設定することができる(例えば、1.5メートル)。カメラの高さは、Hcamで表す。
【0024】
本開示の方法において、3D空間の表面に関して特定の仮定を行うことができる。例えば、部屋の床は、平坦であり、基平面に対して水平であると仮定できる。部屋の天井は、平坦であり、基平面に対して水平であると仮定できる。部屋の壁は垂直であり、したがって床に対して垂直であると仮定できる。さらに、カメラ光線は、基平面に対して平行であると仮定できる。
【0025】
本開示の方法において、カメラ座標系において、カメラの中心位置は、直交座標系におけるワールド座標の原点として使用することができる。つまり、カメラの座標は(0,0,0)である。また、カメラはx軸の正の方向を向いており、z軸の負の方向は床面方向であり、床面と天井面とはx-y平面に対して平行であると仮定できる。基平面の水平消尽線は、部屋のパノラマ画像の中央の高さにある。したがって、床面のz軸位置は-Hcamである。
【0026】
以上の仮定により、室内の3D位置の座標は、3D位置に対応するパノラマ画像中の画素の画像座標と、カメラ座標系における3D位置の直交座標との間で変換できる。仮定が異なる場合、変換式は異なる可能性があることに留意されたい。
【0027】
本開示の態様によれば、パノラマ画像内の画素の画像座標は、該画素に対応するカメラ座標系における3D位置の直交座標に変換できる。
【0028】
一実施形態において、パノラマ画像内の画素の画像座標は(u,v)であり、u∈[0,W)、v∈[0,H)である。カメラ座標系における対応する3D位置のz軸座標は既知であると仮定する。したがって、画素の画像座標は、対応する3D位置の直交座標に以下のように変換できる。
【数1】
【数2】
【0029】
次に、対応する3D位置と実世界のカメラとの距離は、
【数3】
で推定できる。
【0030】
したがって、画素が床面上にある場合、カメラ座標系における対応する3D位置の直交座標は、以下のように表現できる。
【数4】
【数5】
z=-Hcam (式5)
【0031】
画素が天井面上にあり、天井高、つまり、天井面から床面までの垂直距離がHceilとして既知の場合、カメラ座標系における対応する3D位置の直交座標は、以下のように表現できる。
【数6】
【数7】
z=Hceil-Hcam (式8)
【0032】
本開示の態様によれば、カメラ座標系における3D位置の直交座標は、3D位置に対応するパノラマ画像内の画素の画像座標に変換できる。
【0033】
カメラ座標系における3D位置の直交座標を(x,y,z)とすると、パノラマ画像における対応する画素の画像座標は、以下のように表現できる。
【数8】
【数9】
ここで、arctan2()は以下のように定義される関数である。
【数10】
【0034】
本開示の態様によれば、室内のオブジェクトの高さは、部屋のパノラマ画像に基づいて推定できる。パノラマ画像内の同じ列の2つの画素が与えられ、パノラマ画像内の2つの画素の座標が(u,v)および(u,v)として表され、(u,v)内の1つの画素に対応するカメラ座標系内の第1の3D位置のz軸座標が既知であり、zに等しい場合、(u,v)内の他の画素に対応するカメラ座標系内の第2の3D位置のz軸座標は、以下のように表現できる。
【数11】
【0035】
1つの例示的なアプリケーションは、パノラマ画像における床面に対するオブジェクトの関心点の高さを推定することである。(u,v)の画素が床面にあることが既知の場合、つまり、z=-Hcamの場合、(u,v)の他の画素に対応するカメラ座標系における第2の3D位置のz軸座標は、以下のように表現できる。
【数12】
【0036】
オブジェクト内の関心点が(u,v)の画素である場合、オブジェクト内の関心点の床面に対する高さは、Hobj=z-zである。
【0037】
図2は、本開示の一実施形態による、部屋のパノラマ画像におけるホワイトボードの高さを測定する例を示す。図2は、部屋のパノラマ画像の一部を示すことを留意されたい。図2において、部屋の床面からホワイトボードの下側まで垂直線(201)が手動で引かれているので、ホワイトボードの高さを自動的に推定できる。これにより、天井高や机の高さなどのオブジェクトの高さも推定できる。例えば、垂直線(202)は、部屋の天井高を示している。
【0038】
また、部屋の天井高は、いくつかの実施形態では、ユーザによって設定され得ることに留意されたい。したがって、天井高、つまり、Hceilが決定されると、床面(または天井面)のポイントは、対応するポイントがユーザによってマークされている場合、天井面(または床面)の対応するポイントに基づいて自動的に決定することができる。両方のポイントは、部屋のパノラマ画像において、同じ垂直線または列にある。
【0039】
一実施形態において、天井高が決定され、部屋の床面のポイントが決定される(例えば、ユーザによってマークされる)場合、部屋の天井面の対応するポイントは自動的に決定され得る。両方のポイントは、部屋のパノラマ画像において、同じ垂直線にある。
【0040】
例えば、部屋のパノラマ画像のポイント(u1,)が部屋の床面にある場合、カメラ座標系におけるそのポイントの直交座標、つまり、(x1,1,)は、(式1)-(式2)によって算出できる。ここで、z=-Hcamである。次に、部屋の天井面における対応するポイントの直交座標は、(x2,2,)=(x1,1,+Hceil)として算出できる。次に、天井面におけるポイントに対応する画素の画像座標は、(式9)~(式10)により算出できる。
【0041】
一実施形態において、天井高が決定され、部屋の天井面のポイントが決定される(例えば、ユーザによってマークされる)場合、部屋の床面の対応するポイントは自動的に決定され得る。両方のポイントは、部屋のパノラマ画像において、同じ垂直線にある。
【0042】
例えば、部屋のパノラマ画像のポイント(u1,)が天井面にある場合、カメラ座標系におけるそのポイントの直交座標、つまり、(x1,1,)は、(式1)-(式2)によって算出できる。ここで、z=Hceil-Hcamである。次に、床面における対応するポイントの直交座標は、(x2,2,)=(x1,1,-Hceil)として算出できる。次に、床面におけるポイントの画像座標は、(式9)~(式10)により算出できる。
【0043】
実際のシーンでは、床面のポイントまたは天井面のポイントのいずれかは、オブジェクトによって遮られることが一般的であるため、上記の方法は重要であり得る。この場合、ユーザは、床面または天井面のいずれかの認識可能なポイントをクリックすることができ、パノラマ画像において、遮蔽された相当物を自動的に推定できる。すなわち、床面のポイントまたは天井面のポイントの少なくとも1つが手動でマークされている場合、壁のコーナを決定することができる。
【0044】
図3は、部屋のパノラマ画像の遮られたポイントを決定する例を示す。例えば、番号「01」、「02」および「03」でマークされたコーナポイントペアについて、部屋の床面におけるコーナポイントが、室内のいくつかの椅子および机によって遮られている。しかし、これらのコーナポイントは、部屋の天井面の対応するポイントをクリックすることによって推定できる。
【0045】
部屋のパノラマ画像の同じ垂直線上にある天井および床のコーナポイントのペアは、3D空間において垂直な直線を定義できる。2つのペアのコーナポイントは、3D空間における垂直な壁面を定義できる。例えば、図3において、コーナポイントペア「00」および「01」はホワイトボードのある壁面を定義し、コーナポイントペア「01」および「02」は窓のある壁面を定義し、コーナポイントペア「02」および「03」はTVのある壁面を定義し、コーナポイントペア「03」および「04」はガラスドアのある壁面を定義している。コーナポイントペア「04」および「00」は、がんじょうな壁面ではなく、開いたドアを定義していることに留意されたい。
【0046】
本開示の態様によれば、部屋のレイアウトは、制御ポイントによって定義することができる。部屋のレイアウトは、多角形形状のエリアであって、複数のコーナポイントを含み得る。近接するいくつかのコーナポイントは壁面を形成することができ、他のものは開口エリアを形成することができる。したがって、クロージャの概念および2つのタイプの制御ポイントは、以下のように記述することができる。
【0047】
クロージャは、特定の順序を有する制御ポイントのセットとして定義できる。図3では、「00」~「04」のコーナポイントペアはクロージャを形成する。図4Aは、本開示の一実施形態によるクロージャの別の例を示す。図4Aにおいて、「00」~「03」の制御ポイントは、クロージャを形成する。図4の制御ポイントは、カメラ座標系におけるx-y平面の鳥瞰図を用いて二次元(2D)で示されていることに留意されたい。図4Aの制御ポイントは、実際のシーンにおけるコーナポイントペア(例えば、一方のコーナポイントが天井面にあり、他方のコーナポイントが床面にある)に対応する。これら2つのコーナポイントは、カメラ座標系において同じxおよびy座標を有するので、図4Aにおいて同じ制御ポイントによって表現される。制御ポイントの2D位置を決定するために、ユーザは、部屋のパノラマ画像の床面または天井面のいずれかにおける対応するコーナポイントをマークできる。クロージャはループであり、制御ポイントの順序に基づいて決定されることに留意されたい。1つの制御ポイントは、順序にしたがってその隣接する制御ポイントと接続され、最後の制御ポイントは第1の制御ポイントと接続される。例えば、図3のクロージャでは「00」と「04」とが接続されている。
【0048】
いくつかの実施形態では、異なるタイプの壁面は、異なるタイプの制御ポイントを用いて区別できる。例えば、がんじょうな壁面と開口エリアとを区別するために、2つのタイプの制御ポイントを定義できる。図4A図4Dに示すように、2つのタイプの制御ポイントは、それぞれ、黒ベタの円およびパターン付きの円によって表現することができる。黒ベタ制御ポイントは、その前の制御ポイントと共にがんじょうな壁面を形成することができ、一方、パターン付き制御ポイントは、その前の制御ポイントと共に開口エリアを形成できる。例えば、図4Aの4つの制御ポイントはすべて黒ベタ制御ポイントであり、したがって、このクロージャは、空間内に4つのがんじょうな壁を有する。しかし、図4Bでは、「00」がパターン付き制御ポイントであるため、「04」~「00」のセグメントは、開口エリア(例えば、開いたドアまたは窓)を示す。図4C図4Dでは、2つのパターン付き制御ポイントおよび2つの黒ベタ制御ポイントがあり、したがって、2つのがんじょうな壁および2つの開口エリア(例えば、バルコニや廊下)が存在する。
【0049】
クロージャは、黒ベタ制御ポイントに基づいてがんじょうな壁面を構築することに限定されず、床面および/または天井面を構築することも可能であることに留意されたい。すべての制御ポイントによって定義される多角形は、床面および/または天井面の形状を識別できる。したがって、パターン付き制御ポイントは、黒ベタ制御ポイントと同様に重要であり得る。
【0050】
一実施形態では、コンピュータソフトウェア(またはプログラム)は、コンピュータマウスの左クリックまたは右クリックなどの異なる入力タイプによって、2つのタイプの制御ポイントを区別できる。
【0051】
一実施形態では、コンピュータソフトウェア(またはプログラム)は、異なるキーボード入力などのキーボードの助けによって、2つのタイプの制御ポイントを区別できる。
【0052】
いくつかの実施形態では、複数のクロージャを使用して、単一のパノラマ画像におけるシーンの部屋のレイアウトを記述することができる。複数のクロージャは、互いに独立しており、異なる天井高を有し得る。したがって、複数のクロージャを使用し、異なる天井高を有する複数の部屋のシーンを表現することができる。
【0053】
部屋のレイアウトがクロージャおよび制御ポイントによって定義されると、壁面、床面、および天井面を構築することによって、シーンの3Dジオメトリを復元できる。制御ポイントの3Dジオメトリ位置は、(式1)~(式8)に基づいて算出できる。次に、各平面(例えば、壁面、天井面、床面、または別の平面)における3D位置を、制御ポイントから補間することによって算出できる。各補間位置の画像座標は、(式9)~(式10)に基づいて算出することができ、パノラマ画像における各補間位置の画像座標における色情報を、3Dジオメトリのそれぞれの補間位置の色情報として適用することができる。したがって、シーンの色付きのポイントクラウドおよびテクスチャメッシュを構築することができる。
【0054】
いくつかの実施形態では、壁の配置に関して特定の仮定を行うことができる。例えば、マンハッタンワールド仮説を3D空間の3Dジオメトリを生成する際に使用して、生成された3Dジオメトリの品質を向上させることができる。マンハッタンワールド仮説では、壁は互いに平行または垂直であると仮定される。
【0055】
一実施形態では、マンハッタンワールド仮説を使用して、ユーザのマーキング処理をガイドすることができる。図5は、本開示の一実施形態によるマーキング処理で使用することができるガイドラインの例示的な表示を示す。図5において、制御ポイント「00」および「01」がマークされた後にがんじょうな壁面が形成されるので、マンハッタンワールドにおける主要な方向を決定することができる。次に、ユーザが次の制御ポイント「02」を見つけるためにカーソルを移動させると、ユーザがそれを迅速に見つけられるように、1つのセットのガイドラインを生成することができる。図5において、次の制御ポイント「02」から伸びる曲線(501)~(504)がプレビューガイドラインである。これらの曲線は、パノラマ画像中の「02」の位置で交差する2つの垂直な壁面を図示している。これにより、床および天井のコーナポイントが両方とも遮られている場合でも、制御ポイント「02」のマークの利便性と精度とを向上させることができる。
【0056】
一実施形態では、マンハッタンワールド仮説は、ユーザがマークした位置を精緻化するために使用することができる。例えば、パノラマ画像内のユーザがマークした位置がガイドラインに近いが、正確ではない場合、ユーザがマークした位置は、マンハッタンワールド仮説と一致するようにわずかに調整することができる。これにより、生成された3Dジオメトリはマンハッタンワールド仮説を満たすことができ、したがって、より正確な構築が保証される。
【0057】
本開示の態様によれば、3Dジオメトリ(例えば、ポイントクラウドまたはテクスチャメッシュ)は、部屋のパノラマ画像内の天井面および/または床面における1つのセットの壁のコーナポイントをマークすることによって構築することができる。壁のコーナポイントは、一実施形態において、ユーザによって手動でマークされ得る。別の実施形態では、壁のコーナポイントは、自動アルゴリズム(例えば、LayoutNetアルゴリズム、HorizonNetアルゴリズム、またはDula-Netアルゴリズム)などによって最初に推定され、次に、ユーザによって修正されてもよい。別の実施形態では、壁のコーナポイントは、最初にユーザによってマークされ、次に、自動アルゴリズムなどによって、精緻化されてもよい。
【0058】
いくつかの実施形態では、実世界における距離(または寸法)は、部屋のパノラマ画像でマークされたポイントに基づいて測定または推定できる。実世界における距離は、パノラマ画像内のマークされたポイントに対応する実世界における位置から、画像を捕捉するように構成されたカメラデバイスまでの距離である。実世界における位置の3D座標は、例えばカメラデバイスが(0,0,0)に配置され得るカメラ座標系に配置することができる。
【0059】
一実施形態では、オブジェクトの高さ(例えば、オブジェクトから部屋の床面までの垂直距離)は、部屋のパノラマ画像内のオブジェクトのポイントをマークすることによって推定できる。オブジェクトの高さが既知である(または推定された)もしくは決定された場合、パノラマ画像内の任意のポイントに対応する実世界におけるポイントの3D座標は推定可能である。実世界における位置の3D座標は、例えばカメラが(0,0,0)に配置されたカメラ座標系に配置することができる。また、オブジェクトの高さが既知である(または推定された)もしくは決定された場合、実世界における2つの位置の間の距離を推定できる。2つの位置は、部屋のパノラマ画像の2つの任意のポイントに対応し得る。
【0060】
いくつかの実施形態では、部屋のレイアウトは、パノラマ画像のマークされたポイント(制御ポイントとも呼ばれる)のグループによって定義できる。特定の順序でマークされたポイントは、部屋のレイアウトに対応するクロージャを定義できる。2つのタイプのマークされたポイントを使用することができ、その場合、第1のタイプのマークされたポイントは、部屋のがんじょうな壁面を形成することができ、第2のタイプのマークされたポイントは、部屋の開口エリアを形成できる。
【0061】
上述のように、一実施形態では、コンピュータソフトウェア(またはプログラム)は、コンピュータマウスの左クリックまたは右クリックによって、2つのタイプの制御ポイントを区別できる。一実施形態では、コンピュータソフトウェア(またはプログラム)は、キーボードの助けによって、2つのタイプの制御ポイントを区別できる。
【0062】
単一のパノラマ画像に対して、シーンの部屋のレイアウトを記述するために、複数のクロージャを使用できる。複数のクロージャは、互いに独立しており、異なる天井高を有し得る。したがって、複数のクロージャを使用し、異なる天井高を有する複数の部屋のシーンを表現することができる。
【0063】
部屋のレイアウトに基づいて、シーンの3Dジオメトリ表現を構築することができる。3Dジオメトリは、色および法線ベクトル情報を有するポイントクラウド、またはテクスチャ情報を有するメッシュのいずれかであり得る。色情報およびテクスチャ情報は、パノラマ画像から補間することによって取得できる。
【0064】
いくつかの実施形態では、マンハッタンワールド仮説などの特定の仮定を、シーンの3Dジオメトリの構築に適用することができる。
【0065】
一実施形態では、マンハッタンワールド仮説を、マーキング処理をガイドするために使用できる。例えば、1つのセットのガイドラインを、マンハッタンワールド仮説に基づいてパノラマ画像に生成することができる。マーキング処理において、ユーザはガイドラインのセットにしたがって、パノラマ画像内のポイントをマークすることができる。
【0066】
一実施形態では、マンハッタンワールド仮説は、ユーザがマークした位置を精緻化するために使用することができる。例えば、ユーザがマークした位置がガイドラインのセットのいずれにもない場合、ユーザがマークした位置は、1つの最も近いガイドライン上になるように自動的に調整され得る。
【0067】
II.フローチャート
図6は、本開示の一実施形態による例示的な処理(600)を概説するフローチャートである。様々な実施形態において、処理(600)は、図7に示される処理回路などの処理回路によって実行される。いくつかの実施形態では、処理(600)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は処理(600)を実行する。
【0068】
処理(600)は、一般に、ステップ(S610)で開始することができ、処理(600)は、ユーザ入力に基づいて、部屋のパノラマ画像の部屋の壁のコーナポイントの2D位置を決定する。壁のコーナポイントのそれぞれは、部屋の床面または天井面のいずれか一方である。次に、処理(600)は、ステップ(S620)に進む。
【0069】
ステップ(S620)において、処理(600)は、壁のコーナポイントの2D位置、パノラマ画像のサイズ、および部屋の床面と部屋のパノラマ画像を捕捉するように構成されたデバイスの捕捉位置との間の距離に基づいて、壁のコーナポイントの3D位置を算出する。次に、処理(600)は、ステップ(S630)に進む。
【0070】
ステップ(S630)において、処理(600)は、壁のコーナポイントの順序に基づいて、部屋のレイアウトを決定する。次に、処理(600)は、ステップ(S640)に進む。
【0071】
ステップ(S640)において、処理(600)は、部屋のレイアウトと壁のコーナポイントの3D位置とに基づいて、部屋の3Dジオメトリを生成する。次に、処理(600)は終了する。
【0072】
一実施形態において、ユーザ入力は、部屋の壁のコーナポイントおよび壁のコーナポイントの順序をユーザが選択することを含む。
【0073】
一実施形態において、壁のコーナポイントの少なくとも1つは、第1のタイプの壁のコーナポイントである。第1のタイプの壁のコーナポイントは、3Dジオメトリの壁面を示す。
【0074】
一実施形態において、壁のコーナポイントのうちの少なくとも1つは、第2タイプの壁のコーナポイントである。第2のタイプの壁のコーナポイントは、3Dジオメトリのオープンエリア平面を示す。
【0075】
一実施形態において、処理回路は、2つの近接する壁のコーナポイントのうちの所定の1つのタイプに基づいて、3Dジオメトリの平面を生成する。
【0076】
一実施形態において、処理(600)は、3Dジオメトリの平面内の各3D位置に対して、それぞれの3D位置に対応する部屋のパノラマ画像内の2D位置における色情報に基づいて、それぞれの3D位置の色情報を決定する。
【0077】
一実施形態において、3Dジオメトリの各壁面は、3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、処理(600)は、ユーザが壁のコーナポイントのうちの1つを選択することを支援するガイドラインを生成する。
【0078】
一実施形態において、3Dジオメトリの各壁面は、3Dジオメトリの少なくとも1つの他の壁面に対して平行または垂直であり、処理(600)は、ユーザによって選択された壁のコーナポイントのうちの1つを調整する。
【0079】
一実施形態において、処理(600)は、部屋のパノラマ画像における2つのポイントの2D位置を決定する。処理(600)は、2つのポイントの2D位置、パノラマ画像のサイズ、および部屋の床面とデバイスの捕捉位置との間の距離に基づいて、2つのポイントの3D位置を算出する。処理(600)は、2つのポイントの3D位置の間の距離を算出する。
【0080】
III.コンピュータシステム
上述の技術は、1つまたは複数のコンピュータ可読媒体に物理的に記憶された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装することができる。例えば、図7は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム700を示す。
【0081】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)およびグラフィックス処理装置(GPU)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを生成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0082】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行され得る。
【0083】
図7に示されたコンピュータシステム(700)のコンポーネントは、本質的に例示であり、本開示の実施形態を実装するためのコンピュータソフトウェアの使用範囲または機能にいかなる制限を加えることを意図するものではない。コンポーネントの構成は、コンピュータシステム(700)の例示的な実施形態に示されているコンポーネントのいずれかまたは組合せに関する依存関係または要件を有すると解釈されるべきではない。
【0084】
コンピュータシステム(700)は、特定のヒューマン・インタフェース入力デバイスを含むことができる。そのようなヒューマン・インタフェース入力デバイスは、例えば、触知入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した1つまたは複数の人間のユーザによる入力に応答することができる。ヒューマン・インタフェース・デバイスを用いて、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得される写真画像など)、ビデオ(二次元ビデオ、立体ビデオを含む三次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係ない特定の媒体を取り込むこともできる。
【0085】
入力ヒューマン・インタフェース・デバイスは、キーボード(701)、マウス(702)、トラックパッド(703)、タッチスクリーン(710)、データグローブ(図示せず)、ジョイスティック(705)、マイクロフォン(706)、スキャナ(707)、およびカメラ(708)のうちの1つまたは複数(図示された各々のうちの1つのみ)を含むことができる。
【0086】
コンピュータシステム(700)はまた、特定のヒューマン・インタフェース出力デバイスを含んでもよい。そのようなヒューマン・インタフェース出力デバイスは、例えば、触知出力、音、光、および匂い/味によって1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマン・インタフェース出力デバイスは、触知出力デバイス(例えば、タッチスクリーン(710)、データグローブ(図示せず)、またはジョイスティック(705)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカー(709)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(710)などであって、それぞれタッチスクリーン入力能力を有するもの、有さないもの、それぞれ触知フィードバック機能を有するもの、有さないもの、そのうちのいくつかは、二次元視覚出力、または立体写真出力などの手段による三次元を越える出力を出力することができるもの、バーチャルリアリティグラス(図示せず)、ホログラフィックディスプレイ、スモークタンク(図示せず)など)、およびプリンタ(図示せず)を含み得る。これらの視覚出力デバイス(スクリーン(710)など)は、グラフィックスアダプタ(750)を介してシステムバス(748)に接続することができる。
【0087】
コンピュータシステム(700)はまた、人がアクセス可能なストレージデバイスおよびそれらの関連媒体、例えば、CD/DVDなどの媒体(721)を有するCD/DVD ROM/RW(720)を含む光学メディア、サムドライブ(722)、リムーバブル・ハードドライブまたはソリッドステート・ドライブ(723)、テープおよびフロッピーディスク(図示せず)などの従来の磁気メディア、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどを含むことができる。
【0088】
当業者はまた、現在開示された主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0089】
コンピュータシステム(700)はまた、1つまたは複数の通信ネットワーク(755)へのネットワークインタフェース(754)を含むことができる。1つまたは複数の通信ネットワーク(755)は、例えば、無線、有線、光であり得る。さらに、1つまたは複数の通信ネットワーク(755)は、ローカル、広域、都市、車両および産業、リアルタイム、遅延耐性などであり得る。1つまたは複数の通信ネットワーク(755)は、例えば、イーサネット、無線LAN等のローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラ・ネットワーク、ケーブルTV、衛星TV、地上波TV等を含むテレビ有線もしくは無線広域デジタルネットワーク、CANBus等を含む車載用もしくは産業用等を含む。特定のネットワークは、一般的に、特定の汎用データポートまたは周辺バス(749)に取り付けられた外部ネットワークインタフェース・アダプタ(例えば、コンピュータシステム(700)のUSBポートなど)を必要とし、他のものは、一般に、以下に説明するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインタフェースまたはスマートフォン・コンピュータ・システムへのセルラ・ネットワーク・インタフェース)によってコンピュータシステム(700)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(700)は、他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用して、他のコンピュータシステムに対して、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインタフェースのそれぞれで使用することができる。
【0090】
前述のヒューマン・インタフェース・デバイス、ヒューマンアクセス可能なストレージデバイス、およびネットワークインタフェースは、コンピュータシステム(700)のコア(740)に取り付けることができる。
【0091】
コア(740)は1つまたは複数の中央処理ユニット(CPU)(741)、グラフィックス処理装置(GPU)(742)、フィールドプログラム可能ゲートエリア(FPGA)(743)の形態の専用プログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(744)、グラフィックスアダプタ(750)等を含む。これらのデバイスは、読み出し専用メモリ(ROM)(745)、ランダムアクセスメモリ(746)、ユーザがアクセスできない内部ハードドライブなどの内部大容量ストレージ(747)、SSDなどと共に、システムバス(748)を介して接続することができる。いくつかのコンピュータシステムでは、システムバス(748)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(748)に直接取り付けることも、周辺バス(749)を介して取り付けることもできる。一例として、スクリーン(710)は、グラフィックスアダプタ(750)に接続できる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0092】
CPU(741)、GPU(742)、FPGA(743)、およびアクセラレータ(744)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(745)またはRAM(746)に記憶することができる。一時的なデータはまた、RAM(746)に記憶することができ、一方、永続的なデータは、例えば内部大容量ストレージ(747)に記憶することができる。メモリデバイスのいずれかへの高速記憶および取得は、1つまたは複数のCPU(741)、GPU(742)、大容量ストレージ(747)、ROM(745)、RAM(746)などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0093】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよいし、またはコンピュータソフトウェア技術の当業者に公知の利用可能な種類のものであってもよい。
【0094】
限定ではなく一例として、アーキテクチャ(700)、特にコア(740)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(747)またはROM(745)などの非一時的な性質のコア(740)の特定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(740)によって実行することができる。コンピュータ可読メディアは、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(740)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(746)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義された処理にしたがってそのようなデータ構造を修正することを含む、本明細書に記載の特定の処理または特定の処理の特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ(744))に具現化された論理の結果として機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載の特定の処理または特定の処理の特定の部分を実行することができる。ソフトウェアへの参照は、論理を包含することができ、適切な場合には逆もまた同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはこれらの両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0095】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0096】
600 処理
700 コンピュータシステム
701 キーボード
702 マウス
703 トラックパッド
705 ジョイスティック
706 マイクロフォン
707 スキャナ
708 カメラ
709 スピーカー
710 スクリーン
721 媒体
722 サムドライブ
723 ドライブ
740 コア
741 中央処理ユニット(CPU)
742 グラフィックス処理装置(GPU)
743 フィールドプログラム可能ゲートエリア(FPGA)
744 ハードウェアアクセラレータ
745 読み出し専用メモリ(ROM)
746 ランダムアクセスメモリ(RAM)
747 内部大容量ストレージ
748 システムバス
749 周辺バス
750 グラフィックスアダプタ
754 ネットワークインタフェース
755 通信ネットワーク
図1A
図1B
図2
図3
図4A
図4B
図4C
図4D
図5
図6
図7