(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-16
(45)【発行日】2023-10-24
(54)【発明の名称】点群処理の方法、コンピュータシステム、プログラム及びコンピュータ可読記憶媒体
(51)【国際特許分類】
G06T 17/10 20060101AFI20231017BHJP
G06T 17/00 20060101ALI20231017BHJP
【FI】
G06T17/10
G06T17/00 500
(21)【出願番号】P 2022527968
(86)(22)【出願日】2021-06-22
(86)【国際出願番号】 US2021038475
(87)【国際公開番号】W WO2022010646
(87)【国際公開日】2022-01-13
【審査請求日】2022-05-13
(32)【優先日】2020-07-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-06-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】アクタル,アニーク
(72)【発明者】
【氏名】ガオ,ウエン
(72)【発明者】
【氏名】ジャン,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】橋爪 正樹
(56)【参考文献】
【文献】国際公開第2019/235366(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/00- 9/40
G06T 17/00-17/30
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行される、点群処理の方法であって、
複数のボクセルを含む量子化された点群データを受け取るステップと、
前記複数のボクセルの中から量子化中に失われたボクセルに対応する前記量子化された点群データの占有マップを生成するステップと、
前記失われたボクセルをポピュレートすることに基づき、前記量子化された点群データから点群を再構成するステップと
を有
し、
前記占有マップは、前記複数のボクセルの中から各ボクセルが失われる予測確率に対応し、前記失われたボクセルは、前記予測確率が閾値よりも高いことに基づきポピュレートされる、
方法。
【請求項2】
前記点群は、前記量子化された点群データを1つ以上のパッチに分割し、該パッチをアップサンプリングすることに基づき、再構成される、
請求項1に記載の方法。
【請求項3】
前記点群は、前記占有マップに関連した二値交差エントロピー分類ロスを最小化することに基づき、再構成される、
請求項1に記載の方法。
【請求項4】
前記点群は、U-Net、空間ピラミッドプーリング、又は3D畳み込みの中の1つ以上により再構成される、
請求項1に記載の方法。
【請求項5】
前記3D畳み込みは、畳み込み、部分多様体畳み込み、ダイレイト畳み込み、及び膨張畳み込みの中の1つ以上を有する、
請求項
4に記載の方法。
【請求項6】
点群処理のためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するよう構成された1つ以上のコンピュータ読み出し可能な非一時記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって指示されるよう動作するよう構成された1つ以上のコンピュータプロセッサと
を有し、
前記コンピュータプログラムコードは、前記1つ以上のコンピュータプロセッサによって実行される場合に、前記1つ以上のコンピュータプロセッサに、請求項1乃至
5のうちいずれか一項に記載の方法を実行させる、
コンピュータシステム。
【請求項7】
点群処理のためのコンピュータプログラムであって、
前記コンピュータプログラムは、1つ以上のコンピュータプロセッサに、請求項1乃至
5のうちいずれか一項に記載の方法を実行させる、
コンピュータプログラム。
【請求項8】
請求項
7に記載のコンピュータプログラムを記憶しているコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、米国特許仮出願第63/049862号(2020年7月9日付け出願)及び米国特許第17/345063号(2021年6月11日付け出願)に基づく優先権を主張するものである。先の特許出願の全文は、参照により本願に援用される。
【0002】
[分野]
本開示は、データ処理の分野に概して関係があり、より具体的には、点群圧縮に関係がある。
【背景技術】
【0003】
点群は、近年広く使用されている。例えば、それは、対象物の検出及び位置決めのために自動運転車両で使用されており、それはまた、地図作成のために地理情報システム(GIS)で使用されており、文化遺産物及びコレクションを視覚化しアーカイブ保管するために文化遺産で使用されており、それは、仮想/拡張現実(VR/AR)コンテンツの作成及び通信並びにテレプレゼンスなどで使用されている。点群は、高次元、通常は3次元(3D)の点の組を含み、各点は、3D位置情報と、色、反射率、などのような追加属性とを含む。それらは、複数台のカメラ及びデプスセンサ、又は様々なセットアップでのライダー(Lidar)を用いて捕捉可能であり、元の場面をリアルに再現するために数千から数百万個の点から構成されることがある。
【発明の概要】
【0004】
実施形態は、点群処理のための方法、システム、及びコンピュータ可読媒体に関する。一態様に従って、点群処理のための方法が提供される。方法は、複数のボクセルを含む量子化された点群データを受け取るステップを含み得る。占有マップが、複数のボクセルの中から量子化中に失われたボクセルに対応して、量子化された点群データについて生成される。点群は、失われたボクセルをポピュレートすることに基づき、量子化された点群データから再構成される。
【0005】
他の態様に従って、点群処理のためのコンピュータシステムが提供される。コンピュータシステムは、1つ以上のプロセッサと、1つ以上のコンピュータ可読メモリと、1つ以上のコンピュータ読み出し可能な有形記憶デバイスと、1つ以上のメモリのうちの少なくとも1つを介した1つ以上のプロセッサのうちの少なくとも1つによる実行のために1つ以上の記憶デバイスのうちの少なくとも1つに記憶されているプログラム命令とを含み得る。これによって、コンピュータシステムは方法を実行可能である。方法は、複数のボクセルを含む量子化された点群データを受け取るステップを含み得る。占有マップが、複数のボクセルの中から量子化中に失われたボクセルに対応して、量子化された点群データについて生成される。点群は、失われたボクセルをポピュレートすることに基づき、量子化された点群データから再構成される。
【0006】
更なる他の態様に従って、点群処理のためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つ以上のコンピュータ可読記憶デバイスと、1つ以上の有形な記憶デバイスのうちの少なくとも1つに記憶されている、プロセッサによって実行可能なプログラム命令とを含み得る。プログラム命令は、複数のボクセルを含む量子化された点群データを受け取るステップを然るべく含み得る方法を実行するようプロセッサによって実行可能である。占有マップが、複数のボクセルの中から量子化中に失われたボクセルに対応して、量子化された点群データについて生成される。点群は、失われたボクセルをポピュレートすることに基づき、量子化された点群データから再構成される。
【0007】
これら及び他の目的、特徴、及び利点は、添付の図面とともに読まれるべきである、実例となる実施形態の以下の詳細な説明から明らかになるだろう。図面の様々な特徴は、詳細な説明と併せて当業者の理解を容易にするためのものであるため、実寸ではない。
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態に従って、ネットワーク化されたコンピュータ環境を表す。
【
図2A】少なくとも1つの実施形態に従って、点群データのための八分木構造の図である。
【
図2B】少なくとも1つの実施形態に従って、点群データのための八分木構造の図である。
【
図3A】少なくとも1つの実施形態に従って、点群データをアップサンプリングするシステムの図である。
【
図3B】少なくとも1つの実施形態に従って、U-Net構造の図である。
【
図4】少なくとも1つの実施形態に従って、点群データをアップサンプリングするプログラムによって実行されるステップを表す動作フローチャートである。
【
図5】少なくとも1つの実施形態に従って、
図1に表されているコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である。
【
図6】少なくとも1つの実施形態に従って、
図1に表されているコンピュータシステムを含む、実例となるクラウドコンピューティング環境のブロック図である。
【
図7】少なくとも1つの実施形態に従って、
図6の実例となるクラウドコンピューティング環境の機能レイヤのブロック図である。
【発明を実施するための形態】
【0009】
請求されている構造及び方法の詳細な実施形態が、本明細書で開示されるが、開示されている実施形態は、様々な形態で具現化される可能性がある請求されている構造及び方法の実例にすぎないことが理解され得る。なお、これらの構造及び方法は、多数の異なった形態で具現化される可能性があり、本明細書で説明されている例示的な実施形態に限定されるものとして解釈されるべきではない。むしろ、それらの例示的な実施形態は、本開示が完全かつ完ぺきであり、その範囲を当業者に十分に伝えるように、提供されている。明細書中、よく知られている特徴及び技術の詳細は、提示されている実施形態を不必要に不明りょうにしないように省略されることがある。
【0010】
実施形態は、データ処理の分野に概して関係があり、より具体的には、点群圧縮に関係がある。以下の記載されている例示的な実施形態は、とりわけ、点群データをアップサンプリングするためのシステム、方法、及びコンピュータプログラムを提供する。従って、いくつかの実施形態は、量子化後の点群データの詳細レベルの増大を可能にすることによってコンピューティングの分野を改善する能力を有し、これは、より高いレベルの圧縮を可能にし得る。
【0011】
上述されたように、点群は、近年広く使用されている。例えば、それは、対象物の検出及び位置決めのために自動運転車両で使用されており、それはまた、地図作成のために地理情報システム(GIS)で使用されており、文化遺産物及びコレクションを視覚化しアーカイブ保管するために文化遺産で使用されており、それは、仮想/拡張現実(VR/AR)コンテンツの作成及び通信並びにテレプレゼンスなどで使用されている。点群は、高次元、通常は3次元(3D)の点の組を含み、各点は、3D位置情報と、色、反射率、などのような追加属性とを含む。それらは、複数台のカメラ及びデプスセンサ、又は様々なセットアップでのライダー(Lidar)を用いて捕捉可能であり、元の場面をリアルに再現するために数千から数百万個の点から構成されることがある。
【0012】
圧縮技術は、より速い伝送又は記憶の削減のために点群を表現するのに必要なデータ量を低減すべく必要とされる。ISO/IEC MPEG(JTC 1/SC 29/WG 11)は、静的又は動的なクラウドのための圧縮技術を標準化するためにアドホックグループ(MPEG-PCC)を作った。しかし、現在の点群圧縮及び処理技術は、量子化損失に悩まされており、その結果は、点群のより粗いサブサンプリングされた表現であり、これは、より低い詳細度(Level-of-Detail,LoD)の点群である。
【0013】
量子化は、ほとんどの圧縮-伝送パイプラインで必須のステップである。量子化は、値の範囲を単一の量子化値に圧縮することによって、達成される。シンボルのとり得る値が小さくされる場合に、所与のストリームにおける離散的なシンボルの数は減少し、ストリームはより圧縮しやすくなる。量子化の結果として、隣接するボクセル化された点は、1つのボクセル(すなわち、ピクセルに類似した等間隔の3次元グリッド上の単一のサンプル又はデータ点)にマージされる。圧縮レートに応じて、量子化ステップサイズ(qs)は、再構成された点群のLoD及び失われた点の数を決定することができる。ボクセルの量子化損失を被る点群は:
【数1】
によってモデル化され得る。ここで、qsは、量子化ステップサイズであり、Xは、元の点群の3D位置(座標)であり、ハット付きのXは、再構成された点群の3D位置(座標)である。この量子化は、圧縮プロセス中に削除される重複する点を生じさせる。
【0014】
従って、量子化損失を最小限にしかつより高いLoDの点群を得るために、点群データをアップサンプリングすることが有利であり得る。点群アップサンプリングはまた、圧縮に勝る有用なアプリケーションになる可能性がある。例えば、バンド幅を節約するために、又は、例えば、AR/VR又はテレプレゼンスで、伝送レイテンシを低減するために、より低いLoDの点群が伝送されるアプリケーションがある。そのようなシナリオでは、点群がズームインされる場合に、点群をより高いLoDの点群にアップサンプリングすることが有益である場合がある。このアプリケーションは表示適応(display adaptation)と呼ばれ、点群をズームインするときに、点群アップサンプリングは、表示適応のために更なる詳細を提供するのを助けることができる。
【0015】
態様は、様々な実施形態に従う方法、装置(システム)、及びコンピュータ可読媒体のフローチャート図及び/又はブロック図を参照して、本明細書で記載される。ブローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図のブロックの組み合わせとは、コンピュータ読み出し可能なプログラム命令によって実装可能であることが理解されるだろう。
【0016】
以下の記載されている例示的な実施形態は、点群処理のためのシステム、方法、及びコンピュータプログラムを提供する。これより
図1を参照すると、量子化後の点群データを処理する点群処理システム100(以降「システム」)を表すネットワーク化されたコンピュータ環境の機能ブロック図が示されている。当然ながら、
図1は、1つの実施の実例を単に提供しており、異なる実施形態が実装される可能性がある環境に関して如何なる限定も示唆するものではない。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてもよい。
【0017】
システム100は、コンピュータ102及びサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以降「ネットワーク」)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶されており、ユーザとインターフェース接続しかつサーバコンピュータ114と通信することを可能にされるソフトウェアプログラム108とを含み得る。
図5を参照して以下で記載されるように、コンピュータ102は、内部コンポーネント800A及び外部コンポーネント900Aを夫々含んでもよく、サーバコンピュータ114は、内部コンポーネント800B及び外部コンポーネント900Bを夫々含んでもよい。コンピュータ102は、例えば、モバイルデバイス、電話機、パーソナル・デジタル・アシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又はプログラムの実行、ネットワークへのアクセス、及びデータベースへのアクセスが可能なあらゆるタイプのコンピューティングデバイスであってもよい。
【0018】
サーバコンピュータ114はまた、
図6及び
図7に関連して後述されるように、SaaS(Software as a Service)、PaaS(Platform as a Service)、又はIaaS(Infrastructure as a Service)などのクラウドコンピューティングサービスモデルで作動してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドなどのクラウドコンピューティングデプロイメントモデルで配置されてもよい。
【0019】
点群処理のために使用され得るサーバコンピュータ114は、データベース112と相互作用し得る点群処理プログラム116(以降「プログラム」)を実行することを可能にされる。点群処理プログラムメソッドは、
図4に関連して以下で更に詳細に説明される。一実施形態で、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして作動してもよく、一方、プログラム116は、サーバコンピュータ114で主に実行されてもよい。代替の実施形態では、プログラム116は、1つ以上のコンピュータ102で主に実行されてもよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び記憶のために使用されてもよい。留意されるべきは、プログラム116は、スタンドアロンのプログラムであってもよく、あるいは、より大きい点群処理プログラムに組み込まれてもよい点である。
【0020】
なお、留意されるべきは、プログラム116の処理は、いくつかの事例では、任意の比率でコンピュータ102とサーバコンピュータ114との間で共有されてもよい点である。他の実施形態では、プログラム116は、1よりも多いコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110にわたって単一のサーバコンピュータ114と通信する複数のコンピュータ102、で作動してもよい。他の実施形態では、例えば、プログラム116は、ネットワーク110にわたって複数のクライアントコンピュータと通信する複数のサーバコンピュータ114で作動してもよい。代替的に、プログラムは、ネットワークにわたってサーバ及び複数のクライアントコンピュータと通信するネットワークサーバで作動してもよい。
【0021】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はそれらの何らかの組み合わせを含んでもよい。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続及びプロトコルの任意の組み合わせであることができる。ネットワーク110は、例えば、ローカル・エリア・ネットワーク(LAN)、インターネットのようなワイド・エリア・ネットワーク(WAN)、PSTN(Public Switched Telephone Network,PSTN)のような電気通信網、無線ネットワーク、公衆交換網、衛星網、セルラー網(例えば、第5世代(5G)ネットワーク、ロング・ターム・エボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、など)、公衆陸上移動体通信網(PLMN)、メトロポリタン・エリア・ネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバ網、など、及び/又はこれら若しくは他のタイプのネットワークの組み合わせといった、様々なタイプのネットワークを含んでもよい。
【0022】
図1に示されているデバイス及びネットワークの数及び配置は、一例として与えられている。実際には、
図1に示されているものと比べて、追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは、異なるように配置されたデバイス及び/又はネットワークが存在してもよい。更に、
図1に示されている2つ以上のデバイスは、単一のデバイス内に実装されてもよく、あるいは、
図1に示されている単一のデバイスは、複数の分散したデバイスとして実装されてもよい。追加的に、又は代替的に、システム100のデバイス(例えば、1つ以上のデバイス)の組は、システム100のデバイスの他の組によって実行されるものとして記載されている1つ以上の機能を実行してもよい。
【0023】
これより
図2Aを参照すると、八分木(octree)構造200Aの図が表されている。MPEG-PCCからの参照ソフトウェア、例えば、TMC13などの点群圧縮ソリューションでは、八分木ジオメトリコーデックが使用される場合に、ジオメトリ符号化は次のように進む。第1に、立方体の軸整列境界ボックスBが、2つの点(0,0,0)及び(2
M-1,2
M-1,2
M-1)によって定義される。ここで、2
M-1は、Bのサイズを定義し、Mは、ビットストリームで指定される。次いで、八分木構造200Aは、Bを再帰的に細分することによって構成される。各段階で、立方体は8つのサブ立方体に細分される。8ビットコード、つまり、占有コード(occupancy code)が、次いで、立方体が点を含む(満たされており、値1を有する)か否か(空であり、値0を有する)を示すために1ビット値を各サブ立方体と関連付けることによって、生成される。サイズが1よりも大きい満たされたサブ立方体(つまり、非ボクセル)は、更に細分される。
【0024】
これより
図2Bを参照すると、八分木パーティション200Bの図が表されている。八分木パーティション200Bは、2レベル八分木パーティション202及び対応する占有コード204を含み得る。影付きの立方体及びノードは、それらが点によって占有されていることを示す。各ノードの占有コード204は、次いで、算術符号器によって圧縮される。占有コード204は、8ビット整数であるSとして表すことができ、Sの各ビットは、各子ノードの占有状態を示す。占有コード204のための2つの符号化方法、つまり、ビットワイズ符号化法及びバイトワイズ符号化法が、TMC13には存在し、ビットワイズ符号化がデフォルトで有効にされる。いずれの方法も、占有コード204を符号化するためにコンテキストモデリングを使用して算術符号化を実行する。コンテキスト状態は、符号化プロセス全体の開始時に初期化され、符号化プロセス中に更新される。
【0025】
ビットワイズ符号化については、Sの8つのビンが特定の順序で符号化され、各ビンは、隣接ノード及び隣接ノードの子ノードの占有状態を参照することによって符号化される。このとき、隣接ノードは、現在のノードと同じレベルにある。バイトワイズの符号化については、Sが、N(例えば、32)個の最も頻繁に起こる占有コードを追跡する適応ルックアップテーブル(A-LUT)と、最後に観測された異なるM(例えば、16)個の占有コードを追跡するキャッシュとを参照することによって、符号化される。
【0026】
SがA-LUTにあるか否かを示すバイナリフラグが、符号化される。SがA-LUTにある場合には、A-LUT内のインデックスが、二値算術符号器を使用することによって符号化される。SがA-LUTにない場合には、Sがキャッシュにあるか否かを示すバイナリフラグが、符号化される。Sがキャッシュにある場合には、そのインデックスの二値表現が、二値算術符号器を使用することによって符号化される。そうではなく、Sがキャッシュにない場合には、Sの二値表現が、二値算術符号器を使用することによって符号化される。復号化プロセスは、ビットストリームから境界ボックスBの次元をパースすることによって、始まる。その場合に、同じ八分木構造が、復号化された占有コードに従ってBを細分することによって構成される。
【0027】
これより
図3Aを参照すると、点群処理システム300のブロック図が表されている。点群処理システム300は、とりわけ、U-Net301及び占有マップ304を含み得る。占有マップ304は、そのボクセルが占有されている予測確率に対応し得るので、上位k個のボクセルを選択すること、又は予測値が閾値より大きい場合にボクセルが占有されていることを定義する閾値を有することができる。点群処理システム300は、入力点群306Aを入力として受け取ることができる。入力点群306Aは、入力パッチ308に分割され得る。点群は、数百万個の点を含んで大きいことがある。現在のハードウェア及びソフトウェア計算及びメモリ制限では、点群全体をネットワークにフィードすることができない。点群をネットワークにフィードし、システムをスケーラブルにするために、入力点群306Aは、より小さい立方体入力パッチ308に細分されて、ネットワークにフィードされ得る。入力パッチ308は、次元N×3のボクセル化されたジオメトリであることができ、ここで、Nは、入力立方体パッチ内のボクセルの数であり、3は、x、y、z座標である。アップサンプリングは、入力パッチに対してジオメトリ予測を実行することによって行われる。ジオメトリ予測は、基礎をなす3D構造を学習し、占有マップ304に基づき更なる詳細をもってパッチを生成する。点群処理システム300は、アップサンプリングされた点群312を形成するよう集められ得る出力パッチ310を生成し得る。
【0028】
これより
図3Bを参照すると、U-Netアーキテクチャ302のブロック図が表される。U-Netアーキテクチャ302は、とりわけ、1つ以上の入力ノード314A~314Xと、潜在空間(latent space)316と、1つ以上の出力ノード318A~318Xとを含み得る。入力ノード314A~314Xは、特徴抽出のための収束経路(contraction path)を形成することができ、一方、出力ノード318A~318Xは、細部保存のための拡散経路(expansive path)を形成することができる。入力ノード314A~314X及び出力ノード318A~318Xは、夫々、1つ以上の畳み込みカーネル(例えば、3×3畳み込みカーネル)及び正規線形ユニットを含み得る。入力ノード314A~314Xの夫々は、最大プーリング(max pooling)レイヤ(例えば、2×2最大プーリングレイヤ)によって連続的に接続され得る。例えば、各畳み込みは、バッチ正規化(batch norm)及び正規線形ユニットが後に続き得る。潜在空間316は、類似したデータ点が空間内で互いに近づく圧縮されたデータの表現に対応し得る。出力ノード318A~318Xは、アップサンプリング接続(例えば、2のアップサンプリング係数)によって逆の順序で互いに連続的に繰り入れられ得る。最終的な出力ノードである出力ノード318Aは、点群データを出力し得る。
【0029】
点群は本質的に疎であるから、疎な畳み込みは、よりずっとメモリ効率が高く、非常に深いアーキテクチャを構築することを可能にする。U-Netアーキテクチャは、レイヤごとに3つのInception-Residualネットワークブロックを有して用いられ得る。U-Netは、画像セグメンテーションで広く使用されている。Minkowskiエンジンのような3Dライブラリは、U-Netの3Dバージョンを作成している。しかし、それらはResidualブロックを用いる。3D U-Netは、より新しいInception-Residualネットワークブロックを使用することによって構成され得る。
【0030】
アーキテクチャへの入力は、より低いLoDの点群であり、一方、出力は、より高いLoDの点群に変換される占有予測である(次のサブセクションで説明される。)。二値交差エントロピー分類ロス(binary cross-entropy classification loss)は、ネットワークからの占有マップ予測形式と、グラウンドトゥルース(元の)点群とを比較するために使用され得る。
【0031】
ネットワークの出力は、入力ボクセルを含む2×2×2=8個のボクセルに対するN×8占有マップ予測である。出力は、そのボクセルが
占有されている予測確率であるから、上位k個のボクセルを選択すること、又は予測値が閾値より大きい場合にボクセルが占有されていることを定義する閾値を有することができる。この占有マップは、より密な点群
【数2】
を生成するために使用され得る。出力パッチは、アップサンプリングされた点群を形成するよう一緒に集められてもよい。
【0032】
アプリケーション及び入力点群に基づいて性能を強化又は微調整するために改善がなされ得ることが理解され得る。1つ以上の実施形態に従って、異なる深層学習アーキテクチャが、同じ又はより良い仕事(例えば、空間ピラミッドプーリング(つまり、畳み込みレイヤと全結合レイヤとの間に新しいレイヤを加えて、任意のサイズの入力を固定サイズの出力にマッピングすること)、又は標準畳み込み、部分多様体(submanifold)畳み込み、若しくはダイレイト(dilated)/膨張(atrous)畳み込みを含む3D畳み込み)を行うために使用されてもよい。他の実施形態は、符号器-復号器アーキテクチャを使用することである。出力に応じて、異なる損失関数が用いられてもよい。例えば、面取り(chamfer)損失が、出力を元の(グラウンドトゥルース)点群と比較するために使用されてもよい。
【0033】
アーキテクチャの出力も変化し得る。現在、占有マップ予測は、ボクセルごとに1ビットであるよう出力されることがある。しかし、出力点群のx、y、z座標も直接に学習され得る。ネットワークの出力は、入力と同じサイズ(N)を有する必要がない。アップサンプリングされた点(ハット付きのN)は、
【数3】
の座標を直接に学習するか又は予め定義された座標マップで
【数4】
の占有予測を識別することによって、N×8の占有マップを学習せずとも直接に学習され得る。予測に応じて、点のサブセットは、
【数5】
の座標を形成するよう選択される。出力された占有マップは、入力点群に応じて変化する。例えば、8ボクセル占有マップは、qs=2に適し得る。しかし、qs=4については、入力ボクセルの周りで予測された4×4×4=64個のボクセルを有する方が適している。また、それは、点群があらゆる反復(iteration)でアップサンプリングされるところのマルチ反復システムを訓練するのにも適している。このようにして、qs=4の点群は、最初に、qs=2にアップサンプリングされ、次いで、次の反復で、その元のLoDにアップサンプリングされる。この方法は、非常に低いLoDを有しており、訓練された種々の深層学習アーキテクチャで反復してアップサンプリングされ得る点群により適している。
【0034】
ジオメトリアップサンプリングに加えて、本明細書で開示されている実施形態は、属性(色、反射率、など)アップサンプリングに用いられてもよい。属性の場合に、そのような属性は、ジオメトリ(座標)とともにネットワークに入力され得る。例えば、属性が色のみ、つまり、RGBである場合に、ネットワークへの入力はN×6になり、出力は:
N×(8+24),このとき、8は、予測された占有マップであり、24は、現れ得る占有ボクセルごとの各々の出力属性であり、占有マップに基づき、
【数6】
に変換される;
【数7】
,このとき、ネットワークは、出力座標ととともに属性を直接に学習している;又は
【数8】
,このとき、1は、予め定義された座標系での予測された占有であり、3は、属性であり、占有予測に応じて、サブセット座標は、
【数9】
の点群を形成するよう選択される;
のうちの1つであることができる。
【0035】
これより
図4を参照すると、点群データをアップサンプリングするプログラムによって実行される方法400のステップを表す動作フローチャートが、表されている。
【0036】
402で、方法400は、複数のボクセルを含む量子化された点群データを受け取ることを含み得る。
【0037】
404で、方法400は、複数のボクセルの中から量子化中に失われたボクセルに対応する量子化された点群データについての占有マップを生成することを含み得る。
【0038】
406で、方法400は、失われたボクセルをポピュレートすることに基づき、量子化された点群データから点群を再構成することを含み得る。
【0039】
図4は、1つの実施の実例を単に与えるものであり、異なる実施形態がどのように実装され得るかに関して如何なる限定も示唆するものではないことが理解され得る。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてもよい。
【0040】
図5は、実例となる実施形態に従って
図1で表されているコンピュータの内部及び外部コンポーネントのブロック
図500である。理解されるべきは、
図5は、1つの実施の実例を単に与えるものであり、異なる実施形態が実装される可能性がある環境に関して如何なる限定も示唆するものではない点である。表されている環境に対する多くの変更は、設計及び実装要件に基づき行われてもよい。
【0041】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図5に表されている内部コンポーネント800A、B及び外部コンポーネント900A、Bの各々の組を含み得る。内部コンポーネント800の組の夫々は、1つ以上のバス826上にある1つ以上のプロセッサ820、1つ以上のコンピュータ読み出し可能なRAM822、及び1つ以上のコンピュータ読み出し可能なROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ読み出し可能な有形記憶デバイス830とを含む。
【0042】
プロセッサ820は、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央演算処理装置(CPU)、グラフィクス・プロセッシング・ユニット(GPU)、アクセラレーテッド・プロセッシング・ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプのプロセッシングコンポーネントである。いくつかの実施で、プロセッサ820は、機能を実行するようプログラミングされることが可能な1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、Bの中で通信を可能にするコンポーネントを含む。
【0043】
サーバコンピュータ114(
図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、及び点群処理プログラム116(
図1)は、各々のRAM822(通常はキャッシュメモリを含む。)の1つ以上を介した各々のプロセッサ820の1つ以上による実行のために各々のコンピュータ読み出し可能な有形記憶デバイス830の1つ以上に記憶される。
図5に表されている実施形態では、コンピュータ読み出し可能な有形記憶デバイス830の夫々は、内蔵ハードドライブの磁気ディスク記憶デバイスである。代替的に、コンピュータ読み出し可能な有形記憶デバイス830の夫々は、ROM824のような半導体記憶デバイス、EPROM、フラッシュメモリ、光ディスク、光学磁気ディスク、固体状態ディスク、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、及び/又はコンピュータプログラム及びデジタル情報を記憶することができる他のタイプの非一時的な、コンピュータ読み出し可能な有形記憶デバイスである。
【0044】
内部コンポーネント800A、Bの各組はまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶デバイスなどの1つ以上の、持ち運び可能な、コンピュータ読み出し可能な有形記憶デバイス936に対して読み書きを行うためのR/Wドライブ又はインターフェース832も含む。ソフトウェアプログラム108(
図1)及び点群処理プログラム116(
図1)のようなソフトウェアプログラムは、各々の持ち運び可能な、コンピュータ読み出し可能な有形記憶デバイス936の1つ以上に記憶され、各々のR/Wドライブ又はインターフェース832により読み出され、各々のハードドライブ830にロードされ得る。
【0045】
内部コンポーネント800A、Bの各組はまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、又は3G、4G若しくは5G無線インターフェースカード、あるいは、他の有線又は無線通信リンクなどのネットワークアダプタ又はインターフェース836も含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)及び点群処理プログラム116(
図1)は、外部コンピュータからネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、又は他のワイド・エリア・ネットワーク)及び各々のネットワークアダプタ又はインターフェース836を経由してコンピュータ102(
図1)及びサーバコンピュータ114(
図1)にダウンロードされ得る。ネットワークアダプタ又はインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108及び点群処理プログラム116は、各々のハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを有してもよい。
【0046】
外部コンポーネント900A、Bの組の夫々は、コンピュータ表示モニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部コンポーネント900A、Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマンインターフェースデバイスを含むこともできる。内部コンポーネント800A、Bの組の夫々はまた、コンピュータ表示モニタ920、キーボード930、及びコンピュータマウス934へインターフェース接続するためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインターフェース832、及びネットワークアダプタ又はインターフェース836は、ハードウェア及びソフトウェア(記憶デバイス830及び/又はROM824に記憶される。)を有する。
【0047】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書で説明されている教示の実施はクラウドコンピューティング環境に限られないことが事前に理解される。むしろ、いくつかの実施形態は、現在知られているか又は後に開発されるあらゆる他のタイプのコンピューティング環境とともに実装可能である。
【0048】
クラウドコンピューティングは、管理労力やサービスのプロバイダとのインタラクションが最小限でありながら迅速にプロビジョニング及びリリースすることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワークバンド幅、サーバ、プロセッシング、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの都合の良いオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデルを含み得る。
【0049】
特徴は次の通りである:
オンデマンドのセルフサービス(On-demand Self-service):クラウドコンシューマは、サービスのプロバイダとのヒューマンインタラクションを必要とせずに自動的に必要に応じて、サーバ時間及びネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス(Broad Network Access):機能はネットワーク上で利用可能であり、異種のシン(thin)又はシック(thick)クライアントプラットフォーム(例えば、携帯電話機、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされ得る。
リソースの共用(Resource Pooling):プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するようプールされ、異なる物理的及び仮想的なリソースが要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般的に、提供されているリソースの正確な位置に関して制御又は知識を有しておらず、より高いレベルの抽象化(例えば、国、州、又はデータセンター)で位置を指定することが可能であるという点で、場所に依存しないという感覚がある。
スピーディな拡張性(Rapid Elasticity):機能は、迅速にスケールアウトするよう、いくつかの場合には自動的に、迅速かつ柔軟にプロビジョニングされ、かつ、迅速にスケールインするよう直ちにリリースされ得る。コンシューマには、プロビジョニングに利用可能な機能は、無限であるようにしばしば見え、いつでも如何なる量でも購入可能である。
計測可能なサービス(Measured Service):クラウドシステムは、サービスのタイプ(ストレージ、プロセッシング、バンド幅、アクティブなユーザアカウント、など)に適した何らかの抽象化レベルで計測機能を活用することによって、リソース使用を自動的に制御及び最適化する。リソース利用は、利用されているサービスのプロバイダ及びコンシューマの両方に透明性を提供するように、監視、制御、及び報告され得る。
【0050】
サービスモデルは次の通りである:
SaaS(Software as a Service):コンシューマに提供される機能は、クラウドインフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを通じて様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、更には個々のアプリケーション機能を含む基幹クラウドインフラストラクチャを管理又は制御しない。ただし、ユーザ固有のアプリケーション構成設定が限られている場合を除く。
PaaS(Platform as a Service):コンシューマに提供される機能は、プロバイダによってサポートされているプログラミング言語及びツールを使用して、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャにデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む基幹クラウドインフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によっては、アプリケーションホスティング環境に対する制御を有する。
IaaS(Infrastructure as a Service):コンシューマに提供される機能は、プロセッシング、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる。コンシューマは、基幹クラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、及びデプロイされたアプリケーションに対する制御を有し、場合により、選択したネットワーキングコンポーネント(例えば、ホストファイヤウォール)の限られた制御を有する。
【0051】
デプロイメントモデルは次の通りである:
プライベートクラウド(Private Cloud):クラウドインフラストラクチャは、1つの組織のためにのみ運用される。それは、組織又はサードパーティによって管理されてもよく、オンプレミス又はオフプレミスに存在し得る。
コミュニティクラウド(Community Cloud):クラウドインフラストラクチャは、いくつかの組織によって共有され、共通の懸案事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンス懸念)を有している特定のコミュニティをサポートする。それは、組織又はサードパーティによって管理されてもよく、オンプレミス又はオフプレミスに存在し得る。
パブリッククラウド(Public Cloud):クラウドインフラストラクチャは、一般の人々又は大規模な業界グループに利用可能にされており、クラウドサービスを販売する組織によって所有されている。
ハイブリッドクラウド(Hybrid Cloud):クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、又はパブリック)の複合であり、一意のエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準化された又は独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって結合されている。
【0052】
クラウドコンピューティング環境は、無国籍(statelessness)、低結合度、モジュール性、セマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを有するインフラストラクチャがある。
【0053】
図6を参照すると、実例となるクラウドコンピューティング環境600が表されている。図示されるように、クラウドコンピューティング環境600は、1つ以上のクラウドコンピューティングノード10を有し、それらと、例えば、パーソナル・デジタル・アシスタント(PDA)又は携帯電話機54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが、通信し得る。クラウドコンピューティングノード10は、互いに通信することもできる。それらは、上記のプライベート、コミュニティ、パブリック若しくはハイブリッドなどの1つ以上のネットワーク、又はそれらの組み合わせにおいて、物理的又は仮想的にグループ化されてもよい(図示せず)。これは、クラウドコンピューティング環境600が、クラウドコンシューマがローカルコンピューティングデバイスでリソースを保持する必要がないサービスとしてインフラストラクチャ、プラットフォーム及び/又はソフトウェアを提供することを可能にする。
図6に示されているコンピューティングデバイス54A~Nのタイプは、単に実例であるよう意図され、クラウドコンピューティングノード10及びクラウドコンピューティング環境600は、任意のタイプのネットワーク及び/又はネットワークアドレッシング可能な接続にわたって(例えば、ウェブブラウザを用いて)任意のタイプのコンピュータ化されたデバイスと通信可能であることが理解される。
【0054】
図7を参照すると、クラウドコンピューティング環境600(
図6)によって提供される機能抽象化レイヤ700の組が示されている。
図7に示されているコンポーネント、レイヤ、及び機能は、単に実例であるよう意図され、実施形態はそれに限られないことが事前に理解されるべきである。表されているように、次のレイヤ及び対応する機能が提供される。
【0055】
ハードウェア及びソフトウェアレイヤ60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、並びにネットワーク及びネットワーキングコンポーネント66が含まれる。いくつかの実施形態で、ソフトウェアコンポーネントには、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68が含まれる。
【0056】
仮想化レイヤ70は、抽象化レイヤを提供し、それから、仮想エンティティの次の例、つまり、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、並びに仮想クライアント75、が提供され得る。
【0057】
一例で、管理レイヤ80は、後述される機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格提示(Metering and Pricing)82は、クラウドコンピューティング環境内でリソースが利用される場合の費用追跡と、それらのリソースの消費に対する会計又は請求とを提供する。一例で、これらのリソースは、アプリケーションソフトウェアライセンスを有してもよい。セキュリティは、データ及び他のリソースの保護とともに、クラウドコンシューマ及びタスクの身元確認を提供する。ユーザポータル83は、コンシューマ及びシステムアドミストレータのためにクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要とされるサービスレベルが満足されるようなクラウドコンピューティングリソース割り当て及び管理を提供する。サービス水準合意(Service Level Agreement,SLA)の立案及び履行(planning and fulfillment)85は、SLAに従って将来の要求が予想されるクラウドコンピューティングリソースの事前準備及び調達を提供する。
【0058】
作業負荷レイヤ90は、クラウドコンピューティング環境が利用される可能性がある機能の例を提供する。このレイヤから提供され得る作業負荷及び機能の例には、地図作成及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想クラスルーム教育配信93、データアナリティクス処理94、トランザクション処理95、及び点群処理96が含まれる。点群処理96は、量子化後の失われたボクセルを回復するよう点群データをアップサンプリングすることができる。
【0059】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合でシステム、方法、及び/又はコンピュータ可読媒体に関係し得る。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ読み出し可能なプログラム命令をその上に有する1つ以上のコンピュータ読み出し可能な非一時記憶媒体を含んでもよい。
【0060】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保有又は記憶することができる有形なデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、又はそれらの任意の適切な組み合わせであってもよいが、これらに限られない。コンピュータ可読記憶媒体のより具体的な例の非包括的リストには、次の、ポータブルコンピュータディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラム可能リード・オンリー・メモリ(EPROM又はフラッシュメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブルコンパクトディスク型リード・オンリー・メモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、機械的に符号化されたデバイス(例えば、パンチカード、又は命令が記録されている溝の隆起構造)、及びそれらの任意の適切な組み合わせが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波又は他の自由に伝搬する電磁波、導波路又は他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、あるいは、配線を通じて伝送される電気信号などのような、一時的な信号自体であると解釈されるべきではない。
【0061】
本明細書で記載されるコンピュータ読み出し可能なプログラム命令は、コンピュータ可読記憶媒体から各々のコンピューティング/プロセッシングデバイスへ、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク及び/又は無線ネットワークを経由して外部コンピュータ又は外部記憶デバイスへ、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを有してもよい。各コンピューティング/プロセッシングデバイスのネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ読み出し可能なプログラム命令を受け取り、コンピュータ読み出し可能なプログラム命令を、各々のコンピューティング/プロセッシングデバイス内のコンピュータ可読記憶媒体での記憶のために転送する。
【0062】
動作を実行するためのコンピュータ読み出し可能なプログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(instruction-set-architecture,ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、又はSmalltalk、C++、などのようなオブジェクト指向のプログラミング言語と、“C”プログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語とを含む1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコード若しくはオブジェクトコードのどちらか、であってもよい。コンピュータ読み出し可能なプログラム命令は、全体的にユーザのコンピュータで、部分的にユーザのコンピュータで、スタンドアロンのソフトウェアパッケージとして、部分的にユーザのコンピュータでかつ部分的に遠隔のコンピュータで、又は全体的に遠隔のコンピュータ若しくはサーバで、実行され得る。後者のシナリオでは、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)又はワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータへ接続されてもよく、あるいは、接続は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)行われてもよい。いくつかの実施形態で、例えば、プログラム可能なロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、電子回路をパーソナル化するようコンピュータ読み出し可能なプログラム命令の状態情報を利用することによって、コンピュータ読み出し可能なプログラム命令を実行してもよい。
【0063】
これらのコンピュータ読み出し可能なプログラム命令は、マシンを出現させるよう汎用のコンピュータ、特別目的のコンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサへ供給されてもよく、それにより、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサにより実行される命令は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作を実装する手段を生み出す。これらのコンピュータ読み出し可能なプログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、及び/又は他のデバイスに、特定の様態で機能するよう指示することができるコンピュータ可読記憶媒体に記憶されてもよく、それにより、命令を記憶しているコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作の態様を実装する命令を含む製品を有する。
【0064】
コンピュータ読み出し可能なプログラム命令はまた、コンピュータ実装プロセスを出現させるように一連の動作ステップをコンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスで実行させるようコンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスにロードされてもよく、それにより、コンピュータ、他のプログラム可能なデータ処理装置又は他のデバイスで実行される命令は、フローチャート及び/又はブロック図の1つ以上のブロックで特定されている機能/動作を実装する。
【0065】
図面のフローチャート及びブロック図は、様々な実施形態に従うシステム、方法、及びコンピュータ可読媒体の可能な実施のアーキテクチャ、機能、及び動作を表す。これに関連して、フローチャート又はブロック図の各ブロックは、特定されている論理的機能を実装するための1つ以上の実行可能命令を有するモジュール、セグメント、又は命令の部分に相当し得る。方法、コンピュータシステム、及びコンピュータ可読媒体は、図面に表されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、又は異なるように配置されたブロックを含んでもよい。いくつかの代替の実施では、ブロックで記述されている機能は、図面で記述されている順序を外れて起こってもよい。例えば、連続して示されている2つのブロックは、実際には、同時に又は略同時に実行されてもよく、あるいは、ブロックは、関連する機能に応じて、時々、逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、特定されている機能又は動作を実行するか、あるいは、特別目的のハードウェア及びコンピュータ命令の組み合わせを実行する特別目的のハードウェアベースシステムによって、実装され得ることも留意されたい。
【0066】
明らかなように、本明細書で記載されるシステム及び/又は方法は、種々の形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装されてもよい。このようなシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実施を制限するものではない。よって、システム及び/又は方法の動作及び挙動は、特定のソフトウェアコードを参照せずに本明細書で記載された。つまり、ソフトウェア及びハードウェアは、本明細書の記載に基づきシステム及び/又は方法を実装するよう設計され得ることが理解される。
【0067】
本明細書で使用される要素、動作、又は命令は、重要又は必須であると、そのようなものとして明示的に記載されない限りは、解釈されるべきではない。また、本明細書で使用されるように、冠詞「a」及び「an」は、1つ以上のアイテムを含むよう意図され、「one or more」(1つ以上)と同義的に使用され得る。更に、本明細書で使用されるように、「set」(セット又は組)との用語は、1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、又は関連アイテムと非関連アイテムとの組み合わせ、など)を含むよう意図され、「one or more」(1つ以上)と同義的に使用され得る。ただ1つのアイテムが意図される場合には、「one」(1つ)との用語又は同様の言語が使用される。また、本明細書で使用されるように、「has」、「have」、「having」(有している)などの用語は、オープンエンド(open-ended)の用語であるよう意図される。更に、「based on」(~に基づく)との表現は、明示的に別なふうに述べられない限りは、「based, at least in part, on」(少なくとも部分的に~に基づく)を意味するよう意図される。
【0068】
様々な態様及び実施形態の記載が、例示のために提示されてきたが、包括的であるよう、あるいは、開示されている実施形態に限定されるよう意図されない。たとえ特徴の組み合わせが特許請求の範囲で列挙され、かつ/あるいは、明細書で開示されているとしても、それらの組み合わせは、可能な実施の開示を制限するよう意図されない。実際に、それらの特徴の多くは、具体的に特許請求の範囲で列挙されておらず、かつ/あるいは、明細書で開示されていない方法で、組み合わされてもよい。以下で挙げられている各従属請求項は、ただ1つの請求項にしか直接には依存しないことがあるが、可能な実施の開示は、特許請求の範囲内のあらゆる他の請求項との組み合わせで各従属請求項を含む。多くの変更及び変形は、記載されている実施形態の範囲から外れずに、当業者にとって明らかである。本明細書で使用されている専門用語は、実施形態の原理、市場で見られる技術に対する実際の適用又は技術的改善を最もよく説明するために、あるいは、当業者が本明細書に開示される実施形態を理解できるようにするために、選択された。