(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-22
(45)【発行日】2025-05-30
(54)【発明の名称】追跡セッションからのオブジェクトおよび背景への漸進的な3D点群セグメント化
(51)【国際特許分類】
G06T 7/143 20170101AFI20250523BHJP
G06T 7/70 20170101ALI20250523BHJP
G06T 19/00 20110101ALI20250523BHJP
【FI】
G06T7/143
G06T7/70
G06T19/00 600
(21)【出願番号】P 2021568784
(86)(22)【出願日】2020-05-06
(86)【国際出願番号】 IB2020054284
(87)【国際公開番号】W WO2020234678
(87)【国際公開日】2020-11-26
【審査請求日】2022-10-21
【審判番号】
【審判請求日】2024-05-28
(32)【優先日】2019-05-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ツア、ヨチャイ
【合議体】
【審判長】廣川 浩
【審判官】本郷 彰
【審判官】中木 努
(56)【参考文献】
【文献】特開2017-16333(JP,A)
【文献】米国特許出願公開第2012/0195471(US,A1)
【文献】米国特許出願公開第2016/0210512(US,A1)
【文献】米国特許出願公開第2015/0269739(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06T19/00
(57)【特許請求の範囲】
【請求項1】
3D点群を、オブジェクトおよび背景のセグメントにセグメント化する方法であって、
プロセッサが、
映像ストリーム内のシーン内のオブジェクトを、カメラが前記シーン内を動き回るのに従って追跡することと、
前記映像ストリーム内のフレームが含む複数の点の各々を前記オブジェクトに対応する点または前記背景に対応する点の
どちらかに、前記点が前記オブジェクトに対応する確率および前記点が前記背景に対応する確率に基づいて漸進的にセグメント化を行い当該セグメント化を更新することであって、前記点がオブジェクトに対応する確率がより高い場合には、オブジェクトを経時的に追跡するためのインライア点として識別し、前記点が背景に対応する確率がより高い場合には、追跡に用いられないアウトライア点として識別する、前記セグメント化を更新することと、
前記
インライア点を経時的に追跡することで得られる前記オブジェクトの3Dモデルに、視覚的外観の記述子を付与して拡張現実コンテンツを生成することと、
を実行する、方法。
【請求項2】
前記オブジェクトの3Dモデルを用いて、前記オブジェクトの3Dモデルに対する前記カメラの姿勢を推定することを含む、請求項1に記載の方法。
【請求項3】
前記点が前記オブジェクトに対応すると決定したのか、それとも前記背景に対応すると決定したのかに基づいて、点ごとの前記確率が更新される、請求項1に記載の方法。
【請求項4】
点ごとの前記確率
のデフォルト設定が
0.5であり、前記点が前記オブジェクトに対応すると決定したときには、前記確率が高められ、前記点が前記背景に対応すると決定したときには、前記確率が下げられる、請求項3に記載の方法。
【請求項5】
請求項1ないし4の何れか一項に記載の方法を実行するプロセッサを備えたシステム。
【請求項6】
プロセッサに、請求項1ないし4の何れか一項に記載の方法を実行させるためのプログラム。
【請求項7】
請求項6に記載のプログラムを記憶する記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクトまたは背景に対応するものとしての点のファジー・セグメント化を用いて点群クリーンアップを自動化することによって拡張現実コンテンツを生成するための技法に関する。
【背景技術】
【0002】
3D点群は、その位置および色を各々有する、数千個の点を含み得る、3Dモデルを保存するための標準形式である。通常、点群は、3D再構成(オブジェクトまたはシーンのモデルの3D幾何学を、その映像をもとに計算する計算パイプライン)の間に作成される。通例、映像から3Dオブジェクトを再構成したときに、得られた点群は、オブジェクトだけでなく、オブジェクトが配置された机、壁、床、および映像上に見られる他のオブジェクトなどの、いくつかの背景要素も包含する。3Dモデルの多くの適用物にとっては、オブジェクトに属する点のみを列挙する、クリーンな点群を有することが重要である。したがって、オブジェクトに属さないモデル内の区分をクリーニングして除去するタスクが非常に重要である。このタスクは、時として、「『オブジェクト』および『背景』へのセグメント化」と称される。
【0003】
セグメント化のための1つのアプローチは、背景領域を標識し、それらを削除することを可能にする対話型アプリケーションを用いた背景点の手動消去である。BlenderおよびMeshLabのようなツールが本アプローチの例であるが、これは手作業および時間の投資を必要とし、それゆえ、スケーラブルでない。第2のアプローチは、何らかの発見的方法、例えば、カメラからの距離を閾値設定すること、またはコンパクトなブロブを計算することを用いることである。オブジェクトがそのサイズおよび背景要素からの距離についての仮定に一致する場合には、これらの方法はうまくいかない。
【0004】
したがって、点群オブジェクト-背景セグメント化タスクの、自動的な、信頼できる遂行を提供する技法の必要性が生じている。
【発明の概要】
【0005】
本システムおよび方法の実施形態は、点群セグメント化タスクの、自動的な、信頼できる遂行を提供する技法を提供し得る。実施形態は、拡張現実(augmented reality、AR)適用物における追跡セッションからオブジェクト-背景セグメント化を漸進的に学習する能力を提供し得る。3D点群は、群からの点をライブ映像内の領域にマッチングさせることによって、AR適用物における追跡のために用いられ得る。多くのマッチを有する3D点は、オブジェクトの部分である可能性がより高く、その一方で、マッチをまれに有する3D点は、背景の部分である可能性がより高い。このアプローチの利点は、セグメント化を行うために手作業が必要でないことを含み、オブジェクトが複数の環境内で追跡されていくのに従って、結果が経時的に絶えず改善され得る。
【0006】
例えば、一実施形態では、拡張現実コンテンツを生成する方法が、プロセッサ、プロセッサによってアクセス可能なメモリ、およびメモリ内に記憶され、プロセッサによって実行可能なコンピュータ・プログラム命令を備えるコンピュータにおいて実施され得、本方法は、コンピュータ・システムにおいて、映像ストリーム内のシーン内のオブジェクトの3Dモデルを、カメラがシーン内を動き回るのに従って追跡することであって、追跡することが、映像ストリーム内のフレームごとの点ごとに、点がオブジェクトに対応するのか、それとも点が背景に対応するのかを決定することを含む、追跡することと、コンピュータ・システムにおいて、複数の点の各々をオブジェクトに対応する点または背景に対応する点のどちらかに、点がオブジェクトに対応する確率および点が背景に対応する確率に基づいてセグメント化することであって、点ごとに、点がオブジェクトに対応する確率がより高いことがより多い場合には、追跡することが点をインライアとして識別し、点ごとに、点が背景に対応する確率がより高いことがより多い場合には、追跡することが点をアウトライアとして識別する、セグメント化することと、コンピュータ・システムにおいて、オブジェクトのセグメント化された3Dモデルに基づいて拡張現実コンテンツを生成することと、を含む。
【0007】
実施形態では、追跡することは、オブジェクトのセグメント化された3Dモデルを用いて、オブジェクトの3Dモデルに対するカメラの姿勢を推定することを含み得る。オブジェクト3Dモデルは、点ごとの確率のデフォルト設定を用いて最初にセグメント化され得、フレームごとに、追跡することが、点がオブジェクトに対応すると決定したのか、それとも背景に対応すると決定したのかに基づいて、点ごとの確率が更新される。点ごとの確率のデフォルト設定は.5であってもよく、追跡することが点を映像フレーム内の画素にマッチングさせたときには、確率は高められてもよく、追跡することが点を映像フレーム内の画素のうちのいずれにもマッチングさせなかったときには、確率は下げられる。シーン内のオブジェクトの3Dモデルは、オブジェクトに対応する少なくともいくつかの点およびシーンの背景に対応する少なくともいくつかの点を含む複数の点を含む3D点群を含み得る。映像ストリームは、シーン内を動き回るカメラから取得され得る。
【0008】
一実施形態では、拡張現実コンテンツを生成するためのシステムが、プロセッサと、プロセッサによってアクセス可能なメモリと、メモリ内に記憶されたコンピュータ・プログラム命令と、を備え得、コンピュータ・プログラム命令は、プロセッサによって、映像ストリーム内のシーン内のオブジェクトの3Dモデルを、カメラがシーン内を動き回るのに従って追跡することであって、追跡することが、フレームごとの点ごとに、点がオブジェクトに対応するのか、それとも点が背景に対応するのかを決定することを含む、追跡することと、複数の点の各々をオブジェクトに対応する点または背景に対応する点のどちらかに、点がオブジェクトに対応する確率および点が背景に対応する確率に基づいてセグメント化することであって、点ごとに、点がオブジェクトに対応する確率がより高いことがより多い場合には、追跡することが、点がオブジェクトに対応すると決定し、点ごとに、点が背景に対応する確率がより高いことがより多い場合には、追跡することが、点が背景に対応すると決定する、セグメント化することと、オブジェクトのセグメント化された3Dモデルに基づいて拡張現実コンテンツを生成することと、を遂行するように実行可能である。
【0009】
一実施形態では、拡張現実コンテンツを生成するためのコンピュータ・プログラム製品が非一過性コンピュータ可読ストレージを備え得、非一過性コンピュータ可読ストレージにはプログラム命令が組み込まれており、プログラム命令は、コンピュータによって、コンピュータに方法を遂行させるよう実行可能であり、本方法は、映像ストリーム内のシーン内のオブジェクトの3Dモデルを、カメラがシーン内を動き回るのに従って追跡することであって、追跡することが、フレームごとの点ごとに、点がオブジェクトに対応するのか、それとも点が背景に対応するのかを決定することを含む、追跡することと、複数の点の各々をオブジェクトに対応する点または背景に対応する点のどちらかに、点がオブジェクトに対応する確率および点が背景に対応する確率に基づいてセグメント化することであって、点ごとに、点がオブジェクトに対応する確率がより高いことがより多い場合には、追跡することが、点がオブジェクトに対応すると決定し、点ごとに、点が背景に対応する確率がより高いことがより多い場合には、追跡することが、点が背景に対応すると決定する、セグメント化することと、オブジェクトのセグメント化された3Dモデルに基づいて拡張現実コンテンツを生成することと、を含む。
【0010】
本発明の詳細は、その構造および動作の両方に関して、添付の図面を参照することによって最も深く理解され得る。図面において、同様の参照符号および記号は同様の要素を参照する。
【図面の簡単な説明】
【0011】
【
図1】本システムおよび方法の実施形態が実施され得るシステムの例示的な図を示す。
【
図2】本システムおよび方法の実施形態に係る、プロセスの一実施形態の例示的なフロー図である。
【
図3】本システムおよび方法の実施形態に係る3Dモデルの一例を示す図である。
【
図4】本システムおよび方法の実施形態に係る、セグメント化情報を用いてモデルに対するカメラの姿勢を推定することの例示的な図である。
【
図5】本システムおよび方法の実施形態に係る、セグメント化情報の更新を有する、セグメント化情報を用いてモデルに対するカメラの姿勢を推定することの例示的な図である。
【
図6】本明細書において説明される実施形態に含まれるプロセスが実施され得るコンピュータ・システムの例示的なブロック図である。
【発明を実施するための形態】
【0012】
本システムおよび方法の実施形態は、点群オブジェクト-背景セグメント化タスクの、自動的な、信頼できる遂行を提供する技法を提供し得る。実施形態は、拡張現実(AR)適用物における追跡セッションからオブジェクト-背景セグメント化を漸進的に学習することによる、オブジェクトおよび背景のセグメントへの3D点群の自動セグメント化を遂行する能力を提供し得る。AR適用物では、映像ストリーム内のシーン内に表示されることになる1つまたは複数のオブジェクトの3Dモデルが生成され、シーン上、またはシーン内のオブジェクト上に表示され得る。このようなARコンテンツを適切に表示するために、シーンに対する、およびARコンテンツが表示されることになるシーン内のオブジェクトに対するカメラの位置が決定され、カメラが移動するのに従って追跡され得る。シーン内のオブジェクトのモデルは、画像または映像ストリームへの3D再構成を用いてオブジェクトの3D点群を生成して生成され得る。3D点群は、群からの点をライブ映像内の領域にマッチングさせることによって、AR適用物における追跡のために用いられ得る。
【0013】
通例、3D点群を含む生成された3Dモデルは、点群が、追跡されるべきオブジェクト上ではなく、シーンの背景上に位置する点を含み得るため、そのまま用いることができない。背景を除去するため、あるいは点を、追跡されるべきオブジェクトの部分である点、およびそうでない点にセグメント化するために、画像または映像ストリームの一形態の「クリーニング」が適用され得る。本システムおよび方法の実施形態は、点を、追跡されるべきオブジェクトの部分である点、およびそうでない点にセグメント化することによって、このようなクリーニングを自動的に遂行し得る。このような自動セグメント化は、改善された性能をもたらし得る。
【0014】
例えば、実施形態は、オブジェクトおよび背景への3D点群の漸進的なセグメント化のための方法を提供する。実施形態は、追跡セッションを用いて点をオブジェクトおよび背景クラスに漸進的に関連付け得る。実施形態は、2値セグメント化でなく、ファジー・セグメント化を用いてもよく、セグメント化は追跡プロセスの「副次効果」と考えられてもよい。映像内の画素への多くのマッチを有する3D点は、オブジェクトを経時的に追跡するためのインライア点であると考えられ、オブジェクトの部分である可能性がより高く、その一方で、映像内の画素へのマッチをまれに有する3D点は、背景の部分である可能性がより高い。このアプローチの利点は、オブジェクトが様々な環境内で再配置されたときの、改善されたオブジェクト検出および追跡を可能にし得、セグメント化を行うために手作業が必要とされないことをさらに含み得、オブジェクトが複数の環境内で追跡されていくのに従って、結果が経時的に絶えず改善され得る。
【0015】
図1に、本システムおよび方法の実施形態が実施され得る例示的なシステム100が示されている。
図1の例において示されるように、システム100は、カメラが、映像ストリーム103を形成するために複数の視点102A~Hを通って移動しながら3次元(3D)オブジェクト104の映像画像を取り込むためのカメラであるか、またはそれを含み得るプラットフォーム101を含み得る。プラットフォーム101は経路または軌道108をたどって動き回り得る。映像ストリーム103は、本システムおよび方法の実施形態に含まれるプロセスが実施され得る、画像処理システム106へ伝送され得る。例えば、画像処理システム106は、本システムおよび方法の実施形態に従って、シーンまたはシーン内のオブジェクトあるいはその両方の3D点群を生成することによって3D再構成を遂行し得る。
図3に、オブジェクトのこのようなモデル300の一例が示されている。モデル300を含むシーンの3D点群が生成された後に、3D点群内の点は、モデル300によって表現されるオブジェクト内の点302、および背景に属する点304になるようセグメント化され得る。
【0016】
図2に、本システムおよび方法の実施形態の動作のプロセス200の一実施形態が示されている。プロセス200は、3D点群を生成し得る、202から開始する。例えば、映像ストリーム103が受信され得、オブジェクトのモデルのための3D点群が、n個の点を有する映像ストリーム103から再構成され得る。各点は、映像ストリーム103内のシーン内のオブジェクトの部分である確率を付与され得る。ファジー・セグメント化の実施形態では、3D点群内の各点iは、p
iと表される、オブジェクトに属する確率を付与され得る。このときには、1-p
iが、背景に属する確率である。点iがオブジェクトの部分である確率p
iは、例えば、50%に初期化され得る。点群内の全ての点の確率はベクトルに形成され得る。204において、点群および確率ベクトルをP=[p
0,p
1...p
n]として、p
i>T、閾値を有する全ての点をオブジェクトに属するものとして考慮することによって、セグメント化を遂行し得る。
【0017】
206において、点群を拡張現実(AR)セッションにおける追跡のために用いるために、各点に様々な視点からのその視覚的外観のいくつかの記述子を付与し得る。記述子は、点群を再構成するために用いられる映像から計算され得る。208において、ARセッションにおいて3D点群を用いてオブジェクトのモデルを追跡し得る。
図4に示されるように、フレーム402ごとに、追跡器404が、セグメント化情報408を用いて、モデル410に対するカメラの姿勢406を推定し得、AR映像ストリーム103内の点に対して、点の記述子からマッチングが計算され得る。例えば、推定は、3D点を画像点に関連付け得る、スケール不変特徴変換(scale-invariant feature transform、SIFT)などの、視覚記述子をマッチングさせることに基づき得る。セグメント化は、どの3D点を考慮すべきであるかを選定するために用いられ得る。例えば、追跡は、p
i>Tを有する点のみを用いて遂行され得る。または、例えば、追跡は、サンプリング点に基づいて、それらの確率に基づいて遂行され得る。追跡器が、推定されたカメラ姿勢を出力し得るため、追跡の結果は映像ストリーム103内のオブジェクト位置になり得る。推定された姿勢を裏付けるマッチは姿勢のためのインライアと考えられてもよく、その一方で、他のマッチはアウトライアと考えられてもよい。
【0018】
210において、インライア・マッチに属する3D点はそれらのp
i値を大きくされてもよく、その一方で、アウトライア・マッチに属する点はそれらのp
i値を小さくされてもよい。212において、経時的に、p
i値がプロセスによって、オブジェクトに属する点が高いp
i値を有し得、その一方で、背景点が低いp
i値を有し得るよう、調整されることになる。214において、セグメント化を改善するために、決定されたセグメント化が更新され得る。実施形態では、追跡器内の内部データであり得る、3D-2Dマッチング統計が、セグメント化を改善するために用いられ得る。例えば、オブジェクト・セグメントに属する3D点は、通常、「正しく」マッチングされたと考えられてもよく、その一方で、背景に属する点は、「不適切に(badly)」マッチングされたと考えられてもよい。
図5に示されるように、実施形態では、点ごとに、モデル追跡器502は、そのマッチング・エラー504、およびそれが姿勢推定に寄与したかどうか(インライア-アウトライア)を出力し得る。すなわち、モデル追跡器502は、どの点が追跡のために実際に用いられたのか(インライア)、およびどの点が用いられなかったのか(アウトライア)を指示し得る。セグメント化更新506は、インライア点のためのp
i値を大きくし、アウトライア点のためのp
i値を小さくすることによって現在のセグメント化508を更新し得、これがセグメント化情報510を更新するために用いられ得、これが次に用いられ、モデル追跡器502であり得る。それゆえ、どの点が追跡のために実際に用いられたのか、およびどの点が用いられなかったのかについての情報がセグメント化を更新するために用いられ得、これが次に、追跡を改善するために用いられ得る。
【0019】
図6に、本明細書において説明される実施形態に含まれるプロセスが実施され得るコンピュータ・システム600の例示的なブロック図が示されている。コンピュータ・システム600は、組み込みプロセッサ、システム・オン・チップ、パーソナル・コンピュータ、ワークステーション、サーバ・システム、およびミニコンピュータもしくはメインフレーム・コンピュータなどの、1つまたは複数のプログラムされた汎用コンピュータ・システムを用いて、あるいは分散型のネットワーク化コンピューティング環境内で実施され得る。コンピュータ・システム600は、1つまたは複数のプロセッサ(CPU)602A~602N、入力/出力回路機構604、ネットワーク・アダプタ606、およびメモリ608を含み得る。CPU602A~602Nは、本通信システムおよび方法の機能を実施するためにプログラム命令を実行する。通例、CPU602A~602Nは、INTEL CORE(R)プロセッサなどの、1つまたは複数のマイクロプロセッサである。
図6は、コンピュータ・システム600が、複数のプロセッサ602A~602Nが、メモリ608、入力/出力回路機構604、およびネットワーク・アダプタ606などの、システム・リソースを共有する、単一のマルチ・プロセッサ・コンピュータ・システムとして実施された一実施形態を示す。しかし、本通信システムおよび方法はまた、コンピュータ・システム600が、シングル・プロセッサ・コンピュータ・システム、マルチ・プロセッサ・コンピュータ・システム、またはそれらの混合であり得る、複数のネットワーク化コンピュータ・システムとして実施された実施形態も含む。
【0020】
入力/出力回路機構604は、データをコンピュータ・システム600に入力する、またはデータをそれから出力する能力を提供する。例えば、入力/出力回路機構は、キーボード、マウス、タッチパッド、トラックボール、スキャナ、アナログ-デジタル変換器等などの、入力デバイス、ビデオ・アダプタ、モニタ、プリンタ等などの、出力デバイス、およびモデム等などの、入力/出力デバイスを含み得る。ネットワーク・アダプタ606はデバイス600をネットワーク610とインターフェースで接続する。ネットワーク610は、限定するものではないが、インターネットを含む、任意の公衆または独自LANまたはWANであり得る。
【0021】
メモリ608は、CPU602によって、コンピュータ・システム600の機能を実行するために実行されるプログラム命令、および用いられ、処理されるデータを記憶する。メモリ608は、例えば、ランダム・アクセス・メモリ(random-access memory、RAM)、リード・オンリー・メモリ(read-only memory、ROM)、プログラマブル・リード・オンリー・メモリ(programmable read-only memory、PROM)、電気的消去可能プログラマブル・リード・オンリー・メモリ(electrically erasable programmable read-only memory、EEPROM)、フラッシュ・メモリ等などの、電子メモリ・デバイス、ならびにインテグレーティド・ドライブ・エレクトロニクス(integrated drive electronics、IDE)インターフェース、または拡張IDE(enhanced IDE、EIDE)もしくはウルトラ・ダイレクト・メモリ・アクセス(ultra-direct memory access、UDMA)などの、その変形もしくは拡張、あるいは小型コンピュータ・システム・インターフェース(small computer system interface、SCSI)ベースのインターフェース、またはファーストSCSI、ワイドSCSI、ファースト・アンド・ワイドSCSI等などの、その変形もしくは拡張、あるいはシリアル・アドバンスド・テクノロジー・アタッチメント(Serial Advanced Technology Attachment、SATA)、またはその変形もしくは拡張、あるいはファイバー・チャネル・アービトレーテッド・ループ(fiber channel-arbitrated loop、FC-AL)インターフェースを用い得る、磁気ディスク・ドライブ、テープ・ドライブ、光ディスク・ドライブ等などの、電気機械メモリを含み得る。
【0022】
メモリ608の内容は、コンピュータ・システム600が実行するようにプログラムされた機能に応じて異なり得る。
図6に示される例では、上述されたプロセスの実施形態のためのルーチンおよびデータを表現する例示的なメモリ内容が示されている。しかし、当業者は、これらのルーチンは、それらのルーチンに関連するメモリ内容と共に、1つのシステムまたはデバイス上に含まれなくてもよく、むしろ、よく知られた工学的考察に基づいて、複数のシステムまたはデバイスの間で分散していてもよいことを認識するであろう。本通信システムおよび方法はありとあらゆるこのような構成を含み得る。
【0023】
図6に示される例では、メモリ608は、点群生成ルーチン612、セグメント化決定ルーチン614、追跡ルーチン616、セグメント化更新618、映像ストリーム画像データ620、およびオペレーティング・システム622を含み得る。点群ルーチン612は、点群内の各点がオブジェクトの部分である確率を付与し得、様々な視点からの視覚的外観の記述子を付与し得る、映像ストリーム画像データ620から再構成され得る、オブジェクトのモデルのための3d点群を生成するためのソフトウェア・ルーチンを含み得る。セグメント化決定ルーチン614は、追跡ルーチン616から受信された情報に基づいて、各点がオブジェクトの部分である確率を決定し、更新するためのソフトウェア・ルーチンを含み得る。追跡ルーチン616は、映像ストリーム画像データ620内のオブジェクトの位置を追跡し、推定されたカメラ姿勢を出力し、各点が、オブジェクトを追跡するために用いられたかどうかを指示する情報を出力するためのソフトウェア・ルーチンを含み得、この情報が、各点がオブジェクトの部分である確率を決定し、更新するためのセグメント化決定ルーチン614によって用いられ得る。オペレーティング・システム634は全体的なシステム機能性を提供し得る。
【0024】
図6に示されるように、本通信システムおよび方法は、マルチ・プロセッサ、マルチ・タスキング、マルチ・プロセス、またはマルチ・スレッド・コンピューティングあるいはその組み合わせを提供するシステムまたはシステム群上における実施、ならびに単一のプロセッサ、シングル・スレッド・コンピューティングのみを提供するシステム上における実施を含み得る。マルチ・プロセッサ・コンピューティングは、1つを超えるプロセッサを用いてコンピューティングを実行することを含む。マルチ・タスキング・コンピューティングは、1つを超えるオペレーティング・システム・タスクを用いてコンピューティングを実行することを含む。タスクは、実行されるプログラム、およびオペレーティング・システムによって用いられる記帳情報の組み合わせを指すオペレーティング・システム概念である。プログラムが実行される際には必ず、オペレーティング・システムはそれのための新たなタスクを作成する。タスクは、それがタスク番号を用いてプログラムを識別し、他の記帳情報をそれに添付するという点で、プログラムのためのエンベロープのようなものである。Linux、UNIX(R)、OS/2(R)、およびWindows(R)を含む、多くのオペレーティング・システムは、多くのタスクを同時に実行する能力を有し、マルチタスキング・オペレーティング・システムと呼ばれる。マルチ・タスキングは、オペレーティング・システムが1つを超える実行ファイルを同時に実行する能力である。各実行ファイルはその独自のアドレス空間内で実行している。つまり、実行ファイルはそれらのメモリのうちのいくらかを共有することはできない。いずれのプログラムも、システム上で実行する他のプログラムのうちのいずれかの実行に被害を与えることが不可能であるため、これは利点を有する。しかし、プログラムは、オペレーティング・システムを通じて(またはファイル・システム上に記憶されたファイルを読み出すことによって)交換する以外、いかなる情報を交換することもできない。用語、タスクおよびプロセスはしばしば互換的に用いられるため、マルチ・プロセス・コンピューティングはマルチ・タスキング・コンピューティングと類似している。ただし、一部のオペレーティング・システムは両者を区別する。
【0025】
本発明は、任意の可能な技術的詳細統合レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または媒体群)を含み得る。コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであることができる。
【0026】
コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下のもの:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROM(erasable programmable read-only memory)もしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(static random access memory、SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(compact disk read-only memory、CD-ROM)、デジタル多用途ディスク(digital versatile disk、DVD)、メモリ・スティック、フロッピー(R)・ディスク、穿孔カード、または命令が記録された溝内の隆起構造などの、機械的に符号化されたデバイス、ならびに上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波または他の自由伝搬する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいは電線を通して伝送される電気信号などの、一過性信号自体であると解釈されるべきでない。
【0027】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組み合わせを経由して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースがネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0028】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(instruction-set-architecture、ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmalltalk(R)、C++、もしくは同様のものなどの、オブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの、手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれた、ソース・コードまたはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は完全にユーザのコンピュータ上で実行するか、一部ユーザのコンピュータ上で実行するか、独立型ソフトウェア・パッケージとして実行するか、一部ユーザのコンピュータ上で、且つ一部リモート・コンピュータ上で実行するか、または完全にリモート・コンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(local area network、LAN)またはワイド・エリア・ネットワーク(wide area network、WAN)を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続され得るか、あるいは外部コンピュータへの接続が(例えば、インターネット・サービス・プロバイダを利用してインターネットを通じて)行われ得る。実施形態によっては、例えば、プログラマブル論理回路機構、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array、FPGA)、またはプログラマブル論理アレイ(programmable logic array、PLA)を含む電子回路機構が、本発明の態様を遂行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機構を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【0029】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0030】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能/行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または機械を作り出すための他のプログラム可能データ処理装置のプロセッサに提供され得る。これらのコンピュータ可読プログラム命令はまた、内部に記憶された命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能データ処理装置、または他のデバイスあるいはその組み合わせを特定の仕方で機能するように仕向けることができるコンピュータ可読記憶媒体内に記憶され得る。
【0031】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたはブロック群において指定された機能/行為を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードされ、一連の動作ステップを、コンピュータ、他のプログラム可能装置、または他のデバイス上で遂行させ、コンピュータ実施プロセスを作り出し得る。
【0032】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的実装形態では、ブロック内に記された機能は、図面に記された順序に従わずに生じてもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは、時として、含まれる機能性に依存して、逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を遂行するか、あるいは専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
【0033】
本発明の特定の実施形態が説明されたが、説明された実施形態と同等である他の実施形態が存在することが当業者によって理解されるであろう。したがって、本発明は特定の例示された実施形態によって限定されず、添付の請求項の範囲によってのみ限定されることを理解されたい。