(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-28
(54)【発明の名称】敵対的生成ネットワーク技術を用いた3次元プリント
(51)【国際特許分類】
G06T 19/00 20110101AFI20240621BHJP
G06F 30/27 20200101ALI20240621BHJP
B33Y 10/00 20150101ALI20240621BHJP
B33Y 30/00 20150101ALI20240621BHJP
B33Y 50/00 20150101ALI20240621BHJP
B29C 64/386 20170101ALI20240621BHJP
G06F 16/908 20190101ALN20240621BHJP
G06F 113/10 20200101ALN20240621BHJP
G06F 111/02 20200101ALN20240621BHJP
【FI】
G06T19/00 A
G06F30/27
B33Y10/00
B33Y30/00
B33Y50/00
B29C64/386
G06F16/908
G06F113:10
G06F111:02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023570350
(86)(22)【出願日】2022-05-26
(85)【翻訳文提出日】2023-11-14
(86)【国際出願番号】 CN2022095162
(87)【国際公開番号】W WO2022257772
(87)【国際公開日】2022-12-15
(32)【優先日】2021-06-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】デクロップ、クレメント
(72)【発明者】
【氏名】ベラー、チャールズ イー
(72)【発明者】
【氏名】シルヴァースタイン、ザカリー エー
(72)【発明者】
【氏名】フォックス、ジェレミー アール
【テーマコード(参考)】
4F213
5B050
5B146
5B175
【Fターム(参考)】
4F213WA25
4F213WB01
4F213WL02
4F213WL85
5B050AA10
5B050BA09
5B050BA15
5B050CA08
5B050DA01
5B050EA04
5B050EA18
5B050EA26
5B050FA02
5B146BA01
5B146BA04
5B146DC03
5B146DE12
5B146EA02
5B146EA08
5B146EC08
5B175FA01
5B175HB03
(57)【要約】
敵対的生成ネットワーク技術を用いて壊れたオブジェクトのピースを再組み立てすることによって、完全オブジェクトの3次元(3D)プリント可能ファイルを生成するためのシステム、方法、およびコンピュータ・プログラム製品が提供される。プロセッサは、壊れたオブジェクトの複数のピースの各ピースの3Dスキャンを生成し得る。プロセッサは、複数のピースの各ピースの3Dスキャンを組み立てて、再組立オブジェクトを生成してもよく、再組立オブジェクトは、1つまたは複数の間隙を含む。プロセッサは、再組立オブジェクト内の1つまたは複数の間隙を充填して、完全オブジェクトを作成し得る。プロセッサは、完全オブジェクトの3Dプリント可能ファイルを生成し得る。
【特許請求の範囲】
【請求項1】
方法であって、
壊れたオブジェクトの複数のピースの各ピースの3次元(3D)スキャンを生成することと、
前記複数のピースの各ピースの前記3Dスキャンを組み立てて、再組立オブジェクトを生成することであって、前記再組立オブジェクトが、1つまたは複数の間隙を含む、前記生成することと、
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填して、完全オブジェクトを作成することと、
前記完全オブジェクトの3Dプリント可能ファイルを生成することと、
を含む、方法。
【請求項2】
コンピュータ支援設計(CAD)テスト・ソフトウェアを使用して前記完全オブジェクトを検証することをさらに含む、請求項1に記載の方法。
【請求項3】
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填することが、敵対的生成ネットワーク(GAN)を用いて行われる、請求項1に記載の方法。
【請求項4】
前記3Dプリント可能ファイルを用いて前記完全オブジェクトのプリントを開始するために、3Dプリント・デバイスにコマンドを送信することをさらに含む、請求項1に記載の方法。
【請求項5】
前記壊れたオブジェクトが、データベース内に対応する3Dプリント可能ファイルを有する第2のオブジェクトに対して所定の類似度閾値の範囲内にあることを検出することと、
前記再組立オブジェクトを生成し、前記再組立オブジェクト内の前記1つまたは複数の間隙を充填するときに、前記複数のピースの他のピースに対する各ピースの相対位置を予測することを支援するために、前記対応する3Dプリント可能ファイルを前記複数のピースの各ピースの前記3Dスキャンと相関させることと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記完全オブジェクトが前記壊れたオブジェクトと同様に壊れることを防止するために、前記完全オブジェクトの修正が行われるべきであると示すフィードバックを、1人または複数のユーザから受信することと、
前記フィードバックに基づいて、修正する前記完全オブジェクトの領域を判断することと、
前記判断することに応答して、前記完全オブジェクトの前記領域に対する前記修正で前記3Dプリント可能ファイルを更新することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
修正される前記領域が、前記再組立オブジェクトにおいて充填された前記1つまたは複数の間隙を少なくとも一部含み、前記修正が、前記領域の厚さを増加させることを含む、請求項6に記載の方法。
【請求項8】
修正される前記領域が、前記再組立オブジェクトにおいて充填された前記1つまたは複数の間隙を少なくとも一部含み、前記修正が、前記完全オブジェクトのプリント時に使用される材料の変更を実施することを含む、請求項6に記載の方法。
【請求項9】
システムであって、
プロセッサと、
前記プロセッサに通信可能に連結され、かつ前記プロセッサにより実行されるときに、
壊れたオブジェクトの複数のピースの各ピースの3次元(3D)スキャンを生成すること、
前記複数のピースの各ピースの前記3Dスキャンを組み立てて、再組立オブジェクトを生成することであって、前記再組立オブジェクトが、1つまたは複数の間隙を含む、前記生成すること、
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填して、完全オブジェクトを作成すること、および
前記完全オブジェクトの3Dプリント可能ファイルを生成すること、
を含む方法を前記プロセッサに実行させるプログラム命令を記憶する、コンピュータ可読記憶媒体と、
を備える、システム。
【請求項10】
前記プロセッサによって実行される前記方法が、コンピュータ支援設計(CAD)テスト・ソフトウェアを使用して前記完全オブジェクトを検証することをさらに含む、請求項9に記載のシステム。
【請求項11】
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填することが、敵対的生成ネットワーク(GAN)を用いて行われる、請求項9に記載のシステム。
【請求項12】
前記プロセッサによって実行される前記方法が、前記3Dプリント可能ファイルを用いて前記完全オブジェクトのプリントを開始するために、3Dプリント・デバイスにコマンドを送信することをさらに含む、請求項9に記載のシステム。
【請求項13】
前記プロセッサによって実行される前記方法が、
前記壊れたオブジェクトが、データベース内に対応する3Dプリント可能ファイルを有する第2のオブジェクトに対して所定の類似度閾値の範囲内にあることを検出することと、
前記再組立オブジェクトを生成し、前記再組立オブジェクト内の前記1つまたは複数の間隙を充填するときに、前記複数のピースの他のピースに対する各ピースの相対位置を予測することを支援するために、前記対応する3Dプリント可能ファイルを前記複数のピースの各ピースの前記3Dスキャンと相関させることと、
をさらに含む、請求項9に記載のシステム。
【請求項14】
前記プロセッサによって実行される前記方法が、
前記完全オブジェクトが前記壊れたオブジェクトと同様に壊れることを防止するために、前記完全オブジェクトの修正が行われるべきであると示すフィードバックを、1人または複数のユーザから受信することと、
前記フィードバックに基づいて、修正する前記完全オブジェクトの領域を判断することと、
前記判断することに応答して、前記完全オブジェクトの前記領域に対する前記修正で前記3Dプリント可能ファイルを更新することと、
をさらに含む、請求項9に記載のシステム。
【請求項15】
修正される前記領域が、前記再組立オブジェクトにおいて充填された前記1つまたは複数の間隙を少なくとも一部含み、前記修正が、前記領域の厚さを増加させることを含む、請求項14に記載のシステム。
【請求項16】
修正される前記領域が、前記再組立オブジェクトにおいて充填された前記1つまたは複数の間隙を少なくとも一部含み、前記修正が、前記完全オブジェクトのプリント時に使用される材料の変更を実施することを含む、請求項14に記載のシステム。
【請求項17】
具現化されるプログラム命令を有するコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記プログラム命令が、
壊れたオブジェクトの複数のピースの各ピースの3次元(3D)スキャンを生成することと、
前記複数のピースの各ピースの前記3Dスキャンを組み立てて、再組立オブジェクトを生成することであって、前記再組立オブジェクトが、1つまたは複数の間隙を含む、前記生成することと、
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填して、完全オブジェクトを作成することと、
前記完全オブジェクトの3Dプリント可能ファイルを生成することと、
を含む方法をプロセッサに実行させるために前記プロセッサにより実行可能である、コンピュータ・プログラム製品。
【請求項18】
前記プロセッサによって実行される前記方法が、コンピュータ支援設計(CAD)テスト・ソフトウェアを使用して前記完全オブジェクトを検証することをさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
前記再組立オブジェクト内の前記1つまたは複数の間隙を充填することが、敵対的生成ネットワーク(GAN)を用いて行われる、請求項17に記載のコンピュータ・プログラム製品。
【請求項20】
前記プロセッサによって実行される前記方法が、
前記完全オブジェクトが前記壊れたオブジェクトと同様に壊れることを防止するために、前記完全オブジェクトの修正が行われるべきであると示すフィードバックを、1人または複数のユーザから受信することと、
前記フィードバックに基づいて、修正する前記完全オブジェクトの領域を判断することと、
前記判断することに応答して、前記完全オブジェクトの前記領域に対する前記修正で前記3Dプリント可能ファイルを更新することと、
をさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、3次元(3D)プリントの分野に関し、より詳細には、敵対的生成ネットワーク技術を用いて壊れたオブジェクト(broken object)のピースを再組み立てすることによって、完全オブジェクト(complete object)の3Dプリント可能ファイル(3D printable file)を生成することに関する。
【背景技術】
【0002】
3Dプリントまたは付加製造は、3Dプリント・デバイス(3D printing device)を用いて材料の多くの連続する薄層を敷くことによって、3Dデジタル・モデル(例えば、CAD図面または表現)から物理オブジェクトを作るためのプロセスである。
【発明の概要】
【0003】
本開示の実施形態は、敵対的生成ネットワーク技術を用いて壊れたオブジェクトのピースを再組み立てすることによって、完全オブジェクトの3次元(3D)プリント可能ファイルを生成するための方法、システム、およびコンピュータ・プログラム製品を含む。プロセッサは、壊れたオブジェクトの複数のピースの各ピースの3Dスキャンを生成し得る。プロセッサは、複数のピースの各ピースの3Dスキャンを組み立てて、再組立オブジェクト(re-assembled object)を生成してもよく、再組立オブジェクトは、1つまたは複数の間隙を含む。プロセッサは、再組立オブジェクト内の1つまたは複数の間隙を充填して、完全オブジェクトを作成し得る。プロセッサは、完全オブジェクトの3Dプリント可能ファイルを生成し得る。
【0004】
上記概要は、本開示のそれぞれの例示した実施形態または全ての実施態様を説明することを意図するものではない。
【0005】
本開示に含まれる図面は、明細書に組み込まれ、かつ明細書の一部を形成する。図面は、本開示の実施形態を示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、典型的な実施形態を例示するだけであり、本開示を限定するものではない。
【図面の簡単な説明】
【0006】
【
図1】本開示の実施形態による、例としての3次元プリント・システムのブロック図である。
【
図2】本開示の実施形態による、完全オブジェクトの3次元プリント可能ファイルを生成する例としてのプロセスのフロー図である。
【
図3A】本開示の実施形態による、例としてのオブジェクトの図である。
【
図3B】本開示の実施形態による、例としての壊れたオブジェクトの図である。
【
図3C】本開示の実施形態による、例としての再組立オブジェクトの3次元ビューの図である。
【
図3D】本開示の実施形態による、例としての完全オブジェクトの3次元ビューの図である。
【
図4】本開示の実施形態による、本明細書に記載された方法、ツール、およびモジュールのうちの1つまたは複数、ならびに任意の関連機能を実施する際に使用され得る例としてのコンピュータ・システムのハイレベル・ブロック図である。
【
図5】本開示の実施形態による、クラウド・コンピューティング環境を示す図である。
【
図6】本開示の実施形態による、抽象モデル層を示す図である。
【発明を実施するための形態】
【0007】
本明細書に記載された実施形態は、様々な変更および代替形式に従うが、その詳細は、図面において例として示されており、詳細に説明される。しかしながら、説明される特定の実施形態は、限定的な意味に取られるべきではないと理解されたい。逆に、その意図は、本開示の範囲内に入る全ての変更、等価物、および代替物を包含することである。
【0008】
本開示の態様は、3Dプリントの分野に関し、より詳細には、敵対的生成ネットワーク技術を用いて再組み立てされた壊れたオブジェクトの3Dプリント可能ファイルを生成することに関する。本開示は、このような用途に必ずしも限定されないが、本開示の様々な態様は、この文脈を用いた様々な例の説明を通して理解され得る。
【0009】
3Dプリントまたは付加製造は、3Dプリント・デバイスを用いて材料の多くの連続的な薄層を敷くことによって、3Dデジタル・モデル(例えば、CAD図面または表現)から物理オブジェクトを作るためのプロセスである。多くの事例において、3Dプリントに基づく生産プロセスは、従来の製造の課題および制限、特に、生産と設計との間、または生産と輸送との間、あるいはその両方のトレードオフにつながるものの多くを回避する。3Dプリンタは、全ての想像できる限りの製品を作ることができるわけではないが、3Dプリントを使用して生産され得るものの在庫は至る所にある。例えば、3Dプリントされた製品は、プラスチック、金属、および人体組織と同等に多様で、交換ジョイント、消費者向け衣類、およびエンジン部品と同等に複雑な材料から作られたものを含む。製品の数および複雑性は、3Dプリント技術が進展するにつれて、急速に増加し続けている。
【0010】
多くの産業が、様々な生産ラインを稼働状態に保つための手段として、現在3Dプリントを使用している。例えば、3Dプリントは、重要なピースの予期せぬ故障が発生したときに、複雑な機械のための必要な部品を素早く容易に作成するために使用されることがある。そのようなシナリオでは、ユーザは、3Dプリントを用いて壊れたピースと全く同じものを生産するために、重要なピースのモデルIDまたはデジタル・モデルを取り出し得る。しかしながら、多くの事例では、故障したピースのデジタル・モデルが利用可能でないことがある。したがって、ユーザは、ピースを直接注文し、交換ピースが配達されるのを待つ必要がある場合がある。これは、所与の生産ラインの著しい中断時間をもたらす結果となり得る。
【0011】
本開示の実施形態は、敵対的生成ネットワーク技術を用いて壊れたオブジェクトのピースを再組み立てすることによって、完全オブジェクトの3Dプリント可能ファイルを生成するための方法、システム、およびコンピュータ・プログラム製品を含む。実施形態では、オブジェクトは、複数のピースに分解され得る。例えば、オブジェクトは、複数のピースに分解されている、製造施設内のコンベヤ・システムの重要コンポーネントであってもよい。ユーザは、オブジェクトの利用可能なピースを全て収集し、3Dスキャン・デバイス(3D scanning device)を用いて各ピースをスキャンして、壊れたオブジェクトの各ピースの3Dスキャンを生成し得る。各3Dスキャンは、3D物理ベース空間内のそれぞれの所与のピースのデジタル・レンダリング(digital rendering)を含む。いくつかの実施形態では、ユーザは、壊れたオブジェクトの全てのピースを取得およびスキャンし得る。しかしながら、いくつかの実施形態では、様々な制約(例えば、サイズに起因してユーザがピースのうちの1つまたは複数を見つけることができない、ピースが崩壊している、など)に起因していくつかのピースがスキャンに利用不可能である場合があるため、複数のピースのみがスキャンされることがある。
【0012】
実施形態では、システムは、複数のピースのうちの他のピースに対する相対位置において複数のピースの各ピースの3Dスキャンを組み立てて、再組立オブジェクトを生成する。システムは、再組立オブジェクトを生成するときに、オブジェクト定位エンジン(object orientation engine)を使用してピースの3Dスキャンを組み立て得る。例えば、オブジェクト定位エンジンは、再組立オブジェクトを継ぎ合わせるためにスキャンの定位を正確に予測する、様々なコンピュータ・ビジョン技術(例えば、シフト、配置、セグメンテーションなど)を利用し得る。いくつかの実施形態では、オブジェクト定位エンジンは、オブジェクトに関連する様々な撮像データを利用して、オブジェクトの壊れたピースを再組み立てすることを支援し得る。例えば、オブジェクト定位エンジンは、オブジェクトまたはオブジェクトの個々のピースあるいはその両方に関連付けられた、1つまたは複数の関連するCAD図面、参照画像(例えば写真)、または設計図、あるいはそれらの組合せを利用して、再組立オブジェクトを生成することを支援し得る。
【0013】
実施形態では、再組立オブジェクトは、壊れたオブジェクトの1つまたは複数のピースがスキャンに利用できないことに起因する、1つまたは複数の間隙を含み得る。例えば、ピースのうちの2つがオブジェクトの破損の間に失われたために、ユーザは、壊れたオブジェクトの5つのピースのうち3つしか収集およびスキャンすることができない場合がある。したがって、オブジェクト定位エンジンが、3つの利用可能なピースの3Dスキャンだけを使用して再組立オブジェクトを再構築し得る一方、利用可能でない第4および第5のピースが位置する1つまたは複数の間隙が、再組立オブジェクトに残る。実施形態では、オブジェクト定位エンジンは、全てのピースが利用可能ではないときに、関連画像を利用して、壊れたピースの3Dスキャンを互いに対してどのように定位するかについての判断を行い得る。このように、定位は、壊れたオブジェクトの全てのピースのスキャンを必要とすることなく、再組立オブジェクトを正確に予測および生成し得る。
【0014】
実施形態では、システムは、再組立オブジェクト内の1つまたは複数の間隙を充填して、完全オブジェクトを作成し得る。実施形態では、システムは、敵対的生成ネットワーク(GAN)技術を用いて、再組立オブジェクト内の1つまたは複数の間隙を充填する。例えば、システムは、本物の3Dピースとして通用し得る、間隙が位置するオブジェクトの人工ピース(または充填物)を作成することによって間隙または空白を充填する、GANエンジンを利用し得る。このように、GANエンジンは、再組立オブジェクト内の破断点(fracture point)を識別し、完全オブジェクトの破断前3Dレンディングを繰り返し作成し得る。いくつかの実施形態では、GANエンジンは、オブジェクトの関連画像データ(例えば、CAD図面、設計図、参照画像など)を用いて、任意の間隙の充填方法についての予測を行い、または壊れたピースの3Dスキャンに含まれていない場合があるオブジェクトの1つまたは複数のコンポーネントを生成し、あるいはその両方を行い得る。例えば、GANエンジンは、オブジェクトの参照画像内には見えるが、壊れたオブジェクト/再組立オブジェクトのピースの3Dスキャンには現れない、人工突起を生成するように構成され得る。このように、GANエンジンは、完全オブジェクトを正確に生成するために、壊れたオブジェクトのピースの3Dスキャンをオブジェクトの関連画像と相関させることによって、壊れたオブジェクトの様々な態様またはコンポーネントを予測し得る。
【0015】
いくつかの実施形態では、システムは、コンピュータ支援設計(CAD)テスト・ソフトウェアを使用して完全オブジェクトを検証し得る。実施形態では、3Dプリント・システムは、様々な物理アルゴリズムを利用するCADエンジンを使用して、壊れたオブジェクトに対する完全オブジェクトの精度に関する判断を行い得る。例えば、CADエンジンは、再組立オブジェクトの1つまたは複数の間隙を充填するために生成された、人工ピースの精度を判断し得る。完全オブジェクトが精度閾値を満たさないとCADエンジンが判断する場合、CADエンジンは、完全オブジェクトを検証しなくてもよく、結果としてGANエンジンが再組立オブジェクトの1つまたは複数の間隙を充填するために追加の生成の繰り返しを行うこととなる。精度閾値は、元のオブジェクトまたは1つもしくは複数の類似オブジェクトの関連画像データ(例えば、CAD図面、参照画像など)に基づいて生成され得る。いくつかの実施形態では、システムは、完全オブジェクトが壊れた破断前オブジェクト(pre-fracture object)に十分一致するというユーザからの手動検証入力を要求し、受信し得る。このように、ユーザは、完全オブジェクトを手動で検証し得る。完全オブジェクトを検証することに応答して、システムは、完全オブジェクトの3Dプリント可能ファイルまたはSTL(standard triangle language)ファイルを生成し得る。
【0016】
完全オブジェクトの3Dプリント可能ファイルを使用して、システムは、通信可能に連結する3Dプリント・デバイスを用いて所与のオブジェクトのプリントを開始し得る。上記の例に戻って、この技術を用いて完全オブジェクトをプリントすることによって、ユーザは、製造設備におけるコンベヤ・システムの重要コンポーネントを素早くプリントし交換することが可能となり、したがって危機的な中断時間を減少させる。このように、部品のデジタル・モデルが利用可能でないときに、システムは、ユーザが交換部品を容易に生産することを可能にする。
【0017】
いくつかの実施形態では、システムは、クラウドソーシングを利用して、交換部品またはオブジェクトの品質を改善し得る。例えば、システムは、様々な部品またはオブジェクトが故障していること、または類似の破断点において経時的に故障が継続することを示すフィードバックを、ユーザから受信するように構成され得る。フィードバックおよび機械学習を使用して、システムは、部品を再生産するときに、さらなる故障を防止するために変更し得る、完全オブジェクト内の領域を判断し得る。例えば、システムは、完全オブジェクトの3Dレンダリング上の破断点(例えば間隙)の領域における材料の厚さを増加させてもよい(例えば、10cmから20cmに変更する)。別の例では、フィードバックに基づいて、システムは、完全オブジェクトをプリントする際に使用される1つまたは複数の異なるプリント材料を(例えば、プリント材料のセットの引張り強度判断に基づいて)推奨してもよい。この判断は、完全オブジェクトの厚さが様々な適合制約に起因して変更され得ない場合がある事例において、行われてもよい。
【0018】
実施形態では、システムは、オブジェクトの壊れたピースの個々の3Dスキャン、再組立オブジェクト、および完全オブジェクトの3Dプリント可能ファイルをデータベース内に記憶し得る。これらの履歴上の画像データ・ファイルは、システムが、類似のオブジェクトまたはピースがスキャンされていることを検出すると、使用または活用あるいはその両方が行われ得る。このように、システムは、履歴データを利用して、壊れたピースの定位についての予測、または類似の再組立オブジェクト内の1つまたは複数の間隙を充填するときの予測、あるいはその両方を支援し得る。
【0019】
いくつかの実施形態では、システムがそれらの情報を収集、生成、または使用、あるいはそれらの組合せを行う(例えば、3Dスキャンを生成する、CAD図面を受信する、知的財産権を分析するなどの)ためには、ユーザがシステムに入らなければならない。ユーザは、他のどのユーザ(例えば、サード・パーティ・ユーザ、第2のユーザ、クラウドソーシングされたユーザなど)が収集されたデータにアクセス可能であるかを判断し得る。例えば、初期化プロセスの間、システムは、収集するデータの種類(例えば、画像データ、3Dスキャン、ユーザ・フィードバックなど)、およびデータが収集される理由をユーザに通知し得る。これらの実施形態では、システムは、ユーザが明示的に収集を許可するときにのみ、ユーザ情報の収集を開始する。さらに、システムは、完全オブジェクトの3Dプリント可能ファイルを生成するために必要なデータのみを収集し得る。データは、使用中匿名化または暗号化あるいはその両方が行われてもよく、データは、必要なアクションを提供するために必要に応じて維持されるだけであってもよい。ユーザがシステムから抜けることを選択する場合、以前に収集されたいかなるユーザ情報も永久に削除され得る。
【0020】
上述の利点は、例としての利点であり、全ての利点について論じているわけではない。さらに、本開示の範囲内に留まりつつ、前述の利点の全てまたはいくつかを含むか、あるいは前述の利点のいずれも含まない、本開示の実施形態が存在し得る。
【0021】
ここで
図1を参照すると、本開示の実施形態による、例としての3次元プリント・システム100のブロック図が示されている。例示する実施形態では、3Dプリント・システム100は、3Dスキャン・デバイス120、3Dプリント・デバイス130、およびユーザ・デバイス140にネットワーク150を介して通信可能に連結された3Dプリント・アシスタント(3D printing assistant)102を含む。3Dプリント・アシスタント102およびユーザ・デバイス140は、任意の種類のコンピュータ・システムとして構成されてもよく、
図4のコンピュータ・システム1101に実質的に類似してもよい。いくつかの実施形態では、3Dプリント・アシスタント102、3Dスキャン・デバイス120、および3Dプリント・デバイス130は、別個のスタンドアロン・システムとして、または1つの統合型システムとして構成されてもよい。
【0022】
ネットワーク150は、ワイヤレス・ネットワークまたはクラウド・コンピューティング・ネットワークなどの任意の種類の通信ネットワークであってもよい。ネットワーク150は、
図5に記載されたクラウド・コンピューティング環境50に実質的に類似してもよく、または同一であってもよい。いくつかの実施形態では、ネットワーク150は、クラウド・コンピューティング環境内で、または1つもしくは複数のクラウド・コンピューティング・サービスを使用して実施されてもよい。様々な実施形態と一貫して、クラウド・コンピューティング環境は、1つまたは複数のクラウド・コンピューティング・サービスを提供する、ネットワークベースの分散型データ処理システムを含んでもよい。さらに、クラウド・コンピューティング環境は、1つまたは複数のデータ・センタ内に配置され、かつネットワーク150上でリソースを共有するように構成された、多数のコンピュータ(例えば、数百または数千あるいはそれ以上のコンピュータ)を含んでもよい。
【0023】
いくつかの実施形態では、ネットワーク150は、任意の数の任意の好適な通信媒体を使用して実施され得る。例えば、ネットワークは、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、パーソナル・エリア・ネットワーク(PAN)、インターネット、またはイントラネットであってもよい。ある実施形態では、様々なシステムは、互いにローカルであってもよく、かつ任意の適当なローカル通信媒体を介して通信してもよい。例えば、3Dプリント・アシスタント102は、WAN、1つもしくは複数の配線接続(例えばイーサネット(R)・ケーブル)、またはワイヤレス通信ネットワーク、あるいはそれらの組合せを用いて3Dスキャン・デバイス120、3Dプリント・デバイス130、およびユーザ・デバイス140と通信し得る。いくつかの実施形態では、様々なシステムは、1つもしくは複数のネットワークまたは1つもしくは複数のローカル接続あるいはその両方の組合せを用いて通信可能に連結され得る。例えば、いくつかの実施形態では、3Dプリント・アシスタント102は、配線接続を用いて3Dスキャン・デバイス120および3Dプリント・デバイス130と通信し得るが、ユーザ・デバイス140と3Dプリント・アシスタント102との間の通信は、ワイヤレス通信ネットワークを通してであってもよい。
【0024】
実施形態では、3Dスキャン・デバイス120は、1つまたは複数のオブジェクトの3Dスキャンを生成するように構成される、任意の種類のスキャン・デバイス(例えば3Dスキャナ)であってもよい。実施形態では、3Dプリント・デバイス130は、物理的3Dオブジェクトをプリントまたは生成あるいはその両方を行うように構成される、任意の種類のプリント・デバイス(例えば3Dプリンタ)であってもよい。いくつかの実施形態では、3Dスキャン・デバイス120および3Dプリント・デバイス130は、3Dプリント・アシスタント102のようにいくつかのまたは類似のコンポーネント(例えば、プロセッサ、メモリ、機械学習エンジンなど)を含み得るが、簡潔にするために、これらのコンポーネントは図示されない。
【0025】
例示する実施形態では、3Dプリント・アシスタント102は、ネットワーク・インターフェース(I/F)104と、プロセッサ106と、メモリ108と、オブジェクト定位エンジン110と、敵対的生成ネットワーク(GAN)エンジン112と、コンピュータ支援設計(CAD)エンジン114と、機械学習エンジン116と、オブジェクト・データベース118と、を含む。
【0026】
実施形態では、オブジェクト定位エンジン110は、様々なオブジェクト定位アルゴリズムを使用して、壊れたオブジェクトのピースの(3Dスキャン・デバイス120を用いて生成された)3Dスキャンを再組立オブジェクトに組み立てるように構成される。ピースの3Dスキャンは、3D物理ベース空間でデジタル・レンダリングされ得る。オブジェクト定位エンジン110は、既知のコンピュータ・ビジョン技術(例えば、シフト、配置、セグメンテーション、OpenCVなど)を用いて個々のピースの3Dスキャンを分析して、壊れたピースを再組立オブジェクトに組み立て得る。いくつかの実施形態では、壊れたオブジェクトの全てのピースが見つかるわけではなく、またはスキャンされるわけではない、あるいはその両方であり、したがって、1つまたは複数の間隙が再組立バージョンのオブジェクト内に残っていると推定される。いくつかの実施形態では、オブジェクト定位エンジン110は、(壊れる前の)オブジェクトまたは類似のオブジェクトのCAD図面/参照画像を利用して、所望のオブジェクトへの壊れたピースの再組立を予測することを援助し得る。例えば、大きな間隙が再組立オブジェクトに残っていることがあり、そこで、オブジェクト定位エンジン110は、関連画像(例えば、壊れる前のオブジェクトの写真、CAD図面など)を利用して、シングルアクセス(single access)に対して平面を位置合わせすることを援助し得る。実施形態では、CAD図面/参照画像が、オブジェクト・データベース118から受信され、取り出され、またはオブジェクト・データベース118上に記憶され、あるいはそれらの組合せが行われ得る。
【0027】
実施形態では、GANエンジン112は、完全オブジェクト(オブジェクトの破断前レンディング)の3Dプリント可能ファイルを生成するために、GANアルゴリズムを使用して再組立オブジェクト内の1つまたは複数の間隙を充填するように構成される。GANエンジン112は、本物の3Dピースとして通用し得る、間隙が位置するオブジェクトの人工ピース(または充填物)を作成することによって間隙または空白を充填するように構成される。例えば、これは、所定の精度閾値を満たすオブジェクトの人工インスタンスまたはピースが生成され得るまで、壊れたオブジェクトの個々のピースの3Dスキャン上で様々な欠陥ライン(fault lines)または破断点あるいはその両方を識別すること、および欠陥ラインから平坦な平面を再現することによって行われてもよい。所定の精度閾値は、破断前オブジェクトまたは類似オブジェクトあるいはその両方の参照画像またはCAD図面を相関させることによって判断され得る。例えば、精度閾値は、充填された間隙が元のオブジェクトの同一領域の95%の精度であることを必要としてもよい。いくつかの実施形態では、GANエンジン112は、材料損失に起因する間隙を充填するために使用される規則のセットを取り出し得る。例えば、規則は、各ピースの3Dスキャンの位置合わせに基づいて、ある量の充填(例えば、2%充填、98%充填、最小充填など)を要求し得る。
【0028】
実施形態では、CADエンジン114は、完全オブジェクトを検証するように構成される。CADエンジン114は、様々なCADまたは物理学アルゴリズムあるいはその両方を使用して、壊れたオブジェクトに対する完全オブジェクトの精度に関する判断を行い得る。例えば、CADエンジン114は、オブジェクトの関連CAD図面または参照画像から抽出された様々な特徴を比較することによって、破断前オブジェクトに対する完全オブジェクトの精度を判断し得る。完全オブジェクトが精度閾値を満たさないとCADエンジン114が判断する場合、CADエンジン114は、完全オブジェクトを検証しなくてもよく、結果としてGANエンジン112が再組立オブジェクトの1つまたは複数の間隙を充填するための追加の生成の繰り返しを行うこととなる。
【0029】
実施形態では、機械学習エンジン116は、3Dプリント・システム100に関連する様々なデータ(3Dスキャン、ピースの人工再現、CAD図面など)を収集、監視、または分析、あるいはそれらの組合せを行い得る。様々なデータを使用して、機械学習エンジン116は、完全オブジェクトを検証するために使用される様々な閾値を、自動的に実施または調整あるいはその両方を行い得る。例えば、機械学習エンジン116は、3Dプリントされた完全オブジェクトが、あるパーセンテージの閾値範囲内で壊れた元のオブジェクトに厳密に一致しないことを、収集データまたは(ユーザ・デバイス140を介して受信した)ユーザからのフィードバックあるいはその両方から識別し得る。機械学習エンジン116は、新たな閾値が満たされるまで完全オブジェクトの検証が発生しないように、このデータを使用し、精度閾値を調整し得る。
【0030】
いくつかの実施形態では、機械学習エンジン116は、機械学習または深層学習あるいはその両方を利用することができ、そこで、アルゴリズムまたはモデルが、完全オブジェクトを生成することに関する履歴データに対して教師あり、教師なし、または半教師あり訓練を実行すること(例えば、ピースの個々の3Dスキャン、再組立オブジェクト、人工ピースなどを分析すること)によって生成され、3Dプリント可能ファイルを使用して正確な破断前オブジェクトを再現することについての履歴上の成功率を相関させることができる。経時的に、機械学習エンジン116は、改善された3Dプリントされた完全オブジェクト/交換オブジェクトをもたらすGANエンジン112と協調して正確な人工ピースを生成する方法についての予測を改善し得る。
【0031】
機械学習アルゴリズムは、決定木学習、連関規則学習、人工ニューラル・ネットワーク、深層学習、帰納論理プログラミング、サポート・ベクトル・マシン、クラスタリング、ベイジアン・ネットワーク、強化学習、表現学習、類似性/メトリック訓練、スパース辞書学習、遺伝的アルゴリズム、規則ベース学習、または他の機械学習技術、あるいはそれらの組合せを含み得るが、それらに限定されない。
【0032】
例えば、機械学習アルゴリズムは、以下の例としての技術、K近傍法(KNN)、学習ベクトル量子化(LVQ)、自己組織化マップ(SOM)、ロジスティック回帰、最小二乗法回帰(OLSR)、線形回帰、段階的回帰、多変量適応的回帰スプライン(MARS)、リッジ回帰、ラッソ回帰(LASSO)、エラスティック・ネット、最小角回帰(LARS)、確率的分類、ナイーブ・ベイズ分類、二項分類、線形分類、階層的分類、正準相関分析(CCA)、因子分析、独立成分分析(ICA)、線形判別分析(LDA)、多次元尺度構成法(MDS)、非負行列因子分解(NMF)、部分的最小二乗回帰(PLSR)、主成分分析(PCA)、主成分回帰(PCR)、サモン・マッピング、t分布型確率的近傍埋め込み法(t-SNE)、ブートストラップ集約、アンサンブル平均、勾配ブースティング決定木(GBDT)、勾配ブースティング機械(GBM)、帰納バイアス・アルゴリズム、Q学習、SARSA(state-action-reward-state-action)法、時間差分(TD)学習、アプリオリ・アルゴリズム、等価クラス変換(ECLAT)アルゴリズム、ガウス過程回帰、遺伝子発現プログラミング、データ処理のグループ手法(GMDH)、帰納論理プログラミング、インスタンスベース学習、ロジスティック・モデル木、情報ファジー・ネットワーク(IFN)、隠れマルコフ・モデル、ガウシアン・ナイーブ・ベイズ、多項ナイーブ・ベイズ、平均化1依存推定器(AODE)、ベイジアン・ネットワーク(BN)、分類および回帰木(CART)、カイ2乗自動相互作用検出(CHAID)、EM(expectation-maximization)アルゴリズム、フィードフォワード・ニューラル・ネットワーク、論理学習機械、自己組織化マップ、単一リンケージ・クラスタリング、ファジー・クラスタリング、階層型クラスタリング、ボルツマン機械、畳み込みニューラル・ネットワーク、回帰型ニューラル・ネットワーク、階層時間記憶(HTM)、または他の機械学習技術、あるいはそれらの組合せのうちの1つまたは複数を利用することができる。
【0033】
図1は、3Dプリント・システム100の代表的な主要コンポーネントを示すことを意図している。いくつかの実施形態では、しかしながら、個々のコンポーネントは、
図1に表されたよりも大きなまたは小さな複雑性を有してもよく、
図1に示されたもの以外の、または
図1に示されたものに追加するコンポーネントが存在してもよく、そのようなコンポーネントの数、種類、および構成は変化してもよい。同様に、3Dプリント・システム100と共に示された1つまたは複数のコンポーネントは存在しなくてもよく、コンポーネントの配置は変化してもよい。
【0034】
例えば、
図1は、単一のネットワーク150を経て通信可能に連結された、単一の3Dプリント・アシスタント102と、単一の3Dスキャン・デバイス120と、単一の3Dプリント・デバイス130と、単一のユーザ・デバイス140と、を有する例としての3Dプリント・システム100を示しているが、本開示の実施形態を実施するのに好適なネットワーク・アーキテクチャは、任意の数の3Dプリント・アシスタント、3Dスキャン・デバイス、3Dプリント・デバイス、ユーザ・デバイス、およびネットワークを含んでもよい。
図1に例示された様々なモデル、モジュール、システム、およびコンポーネントが、仮にあったとしても、複数の3Dプリント・アシスタント、3Dスキャン・デバイス、3Dプリント・デバイス、ユーザ・デバイス、およびネットワークにわたって存在してもよい。
【0035】
ここで
図2を参照すると、本開示の実施形態による、完全オブジェクトの3次元プリント可能ファイルを生成する例としてのプロセス200のフロー図が示されている。プロセス200は、ハードウェア(例えば、回路、専用ロジック、プログラマブル・ロジック、マイクロコードなど)、ソフトウェア(例えば、プロセッサ上で実行される命令)、ファームウェア、またはそれらの組合せを含む処理ロジックによって実行されてもよい。いくつかの実施形態では、プロセス200は、コンピュータ実施プロセスである。実施形態では、プロセス200は、
図1に例示された3Dプリント・アシスタント102のプロセッサ106によって実行され得る。
【0036】
プロセス200は、壊れたオブジェクトの複数のピースの各ピースの3次元スキャンを生成することによって始まる。これは、ステップ205において示されている。
図3Aおよび
図3Bを参照すると、本開示の実施形態による、例としてのオブジェクト300Aおよび例としての壊れたオブジェクト300Bがそれぞれ示されている。実施形態では、オブジェクト300Aは、ユーザが3Dプリント・デバイスを使用して再現したい、任意の種類のオブジェクトであってもよい。例えば、オブジェクト300Aは、複数のピース302A、302B、302C、および302D(まとめてピース302と呼ぶ)に予期せず壊れた非常に複雑な機械の重要ピース(例えば、自動組立ラインのロボット・アームの部品)であってもよい。プロセス200を用いてオブジェクト300Aを再現するために、ユーザは、壊れたオブジェクト300Bのピース302を収集し、3Dスキャナを使用してピース302のそれぞれを個別にスキャンして各ピースの3Dスキャンを生成しなければならない。いくつかの実施形態では、ユーザは、完全オブジェクトを構成する全てのピースを収集およびスキャンし得る。いくつかの実施形態では、ユーザは、オブジェクトの重要部分を構成する複数のピースを収集およびスキャンし得る。例えば、いくつかの事例において、ユーザは、様々な制約に起因して壊れたオブジェクトの全てのピースを収集することができない場合があり、あるピース(例えば、大きなピース302Aおよび302B)のみがスキャンされることとなる。例えば、オブジェクト300Aが壊れたときに、ピース302Cおよび302Dが小さ過ぎて位置を特定できないか、またはそれらが失われた(例えば、崩壊した、せん断力によって未知の場所に放出された)場合に、収集およびスキャンされないことがある。
【0037】
プロセス200は、複数のピースのうちの他のピースに対する相対位置において複数のピースの各ピースの3Dスキャンを組み立てて再組立オブジェクトを生成することによって続く。これは、ステップ210において示されている。壊れたオブジェクトの複数のピースのうちの各ピースが、スキャンされ、システムによって3D物理ベース空間内でデジタル・レンダリングされる。
図3Cを参照して、本開示の実施形態による、例としての再組立オブジェクト300Cの3次元ビューが示されている。図示された実施形態では、ピース302Aおよび302Bの3Dスキャンは、互いに対する相対位置でシステムによって組み立てられて、再組立オブジェクト300Cを生成する。システムは、オブジェクト定位エンジン(例えばオブジェクト定位エンジン110)を使用して、ピース302Aおよび302Bの3Dスキャンを組み立てて、再組立オブジェクト300Cを生成し得る。オブジェクト定位エンジンは、再組立オブジェクト300Cを生成するために3Dスキャンの定位を正確に予測する様々なコンピュータ・ビジョン技術(例えば、シフト、配置、セグメンテーションなど)を利用し得る。
【0038】
いくつかの実施形態では、オブジェクト定位エンジンは、オブジェクトに関連する様々な画像データを利用して、オブジェクトの壊れたピースを再組み立てすることを支援し得る。例えば、オブジェクト定位エンジンは、オブジェクトまたはオブジェクトの個々のピースあるいはその両方に関連付けられた、1つまたは複数の関連するCAD図面、参照画像、または設計図、あるいはそれらの組合せを利用して、再組立オブジェクト300Cを生成することを支援し得る。例えば、再組立オブジェクト300Cは、間隙304Aおよび304B(まとめて、間隙304と呼ばれる)を含む。これらの間隙304は、様々な制約(例えば、オブジェクトの壊れたピースを収集するときに、ピースが利用できなかった/失われた)に起因してスキャンされなかったピース302Cおよび302Dに対応する。オブジェクト定位エンジンは、全てのピースが利用可能ではないときに、オブジェクトの関連画像を利用して、壊れたピースの3Dスキャンをどのように定位するかについての判断を行い得る。このように、オブジェクト定位エンジンは、壊れたオブジェクトの全てのピースのスキャンを必要とすることなく、再組立オブジェクトを正確に予測し、生成し得る。
【0039】
プロセス200は、再組立オブジェクト内の1つまたは複数の間隙を充填して、完全オブジェクトを作成することによって続く。これは、ステップ215において示されている。実施形態では、システムは、敵対的生成ネットワーク(GAN)技術を用いて、再組立オブジェクト内の1つまたは複数の間隙を充填する。実施形態では、システムは、本物の3Dピースとして通用し得る、間隙が位置するオブジェクトの人工ピース(または充填物)を作成することによって間隙または空白を充填する、GANエンジン(例えば、GANエンジン112)を利用し得る。
図3Dを参照して、本開示の実施形態による、例としての完全オブジェクト300Dの3次元ビューが示されている。例示した実施形態では、完全オブジェクト300Dは、再組立オブジェクト300C内の間隙304を交換/充填して完全オブジェクト300Dを作成するためにGANエンジンによって生成された、人工ピース306Aおよび306B(まとめて人工ピース306と呼ぶ)の3Dレンダリングを含む。いくつかの実施形態では、GANエンジンは、オブジェクトの関連画像データ(例えば、CAD図面、設計図、参照画像など)を用いて、任意の間隙の充填方法についての予測を行い、または壊れたピースの3Dスキャンに含まれていない/存在していない場合があるオブジェクトの1つまたは複数のコンポーネント/態様を生成し得る。例えば、1つまたは複数の突起が、オブジェクトの関連画像に示されているが、利用可能な壊れたピースの3Dスキャンのいずれにも含まれていない場合がある。オブジェクトの関連画像を用いて、GANエンジンは、関連画像に基づいて破断前突起が位置していると判断される領域または間隙を予測し、3D人工突起で充填し得る。このように、GANエンジンは、1つまたは複数の関連画像を相関させることに基づいて、完全オブジェクトを生成する際にオブジェクトの追加コンポーネントまたは態様を予測し得る。
【0040】
いくつかの実施形態では、プロセス200は、コンピュータ支援設計(CAD)テスト・ソフトウェアを使用して完全オブジェクトを検証することによって続く。これは、ステップ220において示されている。実施形態では、システムは、様々な物理アルゴリズムを利用するCADエンジン(例えばCADエンジン114)を使用して、壊れたオブジェクトに対する完全オブジェクトの精度に関する判断を行い得る。例えば、CADエンジンは、再組立オブジェクトの1つまたは複数の間隙を充填するために生成された、人工ピースの精度を判断し得る。完全オブジェクトが精度閾値を満たさないとCADエンジンが判断する場合、CADエンジンは、完全オブジェクトを検証しなくてもよく、プロセスはステップ215に戻って、結果としてGANエンジンが再組立オブジェクトの1つまたは複数の間隙を充填するために追加の生成の繰り返しを行うこととなる。いくつかの実施形態では、ユーザは、完全オブジェクトを手動で検証し得る。これは、ユーザが任意の精度閾値に優先することを可能にし得る。例えば、ユーザは、80%閾値の範囲内で元のオブジェクトに一致する完全オブジェクトを必要とするだけであってもよいが、精度閾値は90%に設定されてもよい。そのような事例では、ユーザは、CADエンジン検証に優先して、手動で完全オブジェクトを検証してもよい。
【0041】
完全オブジェクトが検証されたことに応答して、プロセス200は、完全オブジェクトの3Dプリント可能ファイルを生成することによって続く。これは、ステップ225において示されている。例えば、完全オブジェクトの3Dレンディングは、完全オブジェクトの3Dプリント可能ファイルに変換され得る。いくつかの実施形態では、システムは、完全オブジェクトのSTL(standard triangle language)ファイルを生成し得る。3Dプリント可能ファイルまたはSTLファイルあるいはその両方は、ユーザがオブジェクトをプリントするためにファイルにアクセスし得るデータベース上に記憶され得る。
【0042】
いくつかの実施形態では、プロセス200は、3Dプリント・デバイスを用いて完全オブジェクトのプリントを開始することによって続く。これは、ステップ230において示されている。例えば、完全の3Dプリント可能ファイルが一旦利用可能になると、システムがオブジェクトのプリントを自動的に開始し得るように、システムは3Dプリンタに通信可能に接続され得る。いくつかの実施形態では、システムはまた、壊れたオブジェクトのピース、再組立オブジェクト、またはGANエンジンによって生成された人工的に作成されたピース、あるいはそれらの組合せの個々の3Dスキャンに対応する3Dプリント可能ファイルを出力または生成し得る。これらの3Dプリント可能ファイルは、破断点が発生する理由または場所を判断するために、それぞれのオブジェクトまたはピースを試しにプリントするために使用されてもよい。
【0043】
いくつかの実施形態では、システムは、完全オブジェクトが壊れたオブジェクトと同様に壊れることを防止するために、完全オブジェクトの修正が行われるべきであると示すフィードバックを、(ユーザ・デバイス140を介して)1人または複数のユーザから受信し得る。例えば、ユーザは、オブジェクトが同じ場所または破断点において壊れ続けることを示すフィードバックを提供し得る。フィードバックに応答して、システムは、充填された1つまたは複数の間隙を含む領域が修正される必要があると、機械学習を用いて判断し得る。例えば、システムは、将来の破壊を防止するために、領域が25mmではなく50mmの厚さを有するように修正される必要があると判断し得る。機械学習を用いて、システムは、修正で完全オブジェクトの3Dプリント可能ファイルを自動的に更新し得る。別の例では、完全オブジェクトの厚さは、様々な適合制約に起因して修正可能でなくてもよい。したがって、システムは、利用可能なプリント材料のセットに対応する引張り強度値のセットを分析することによって、第1のプリント材料を第2のプリント材料に変更することを推奨し得る。このように、システムは、プリントされたオブジェクトが繰り返し壊れるときに、より強力なプリント材料を使用することを推奨し得る。
【0044】
ここで
図4を参照すると、本開示の実施形態による、(例えば、コンピュータの1つまたは複数のプロセッサ回路またはコンピュータ・プロセッサを用いて)本明細書に記載された方法、ツール、およびモジュールのうちの1つまたは複数、ならびに任意の関連機能を実施する際に使用され得る例としてのコンピュータ・システム1101のハイレベル・ブロック図が示されている。いくつかの実施形態では、コンピュータ・システム1101の主要コンポーネントは、1つまたは複数のCPU1102、メモリ・サブシステム1104、端末インターフェース1112、ストレージ・インターフェース1116、I/O(入力/出力)デバイス・インターフェース1114、およびネットワーク・インターフェース1118を含んでもよく、それらの全てが、メモリ・バス1103、I/Oバス1108、およびI/Oバス・インターフェース1110を介したコンポーネント間通信のために、直接的または間接的に、通信可能に連結され得る。
【0045】
コンピュータ・システム1101は、本明細書で総称してCPU1102と呼ばれる、1つまたは複数の汎用プログラマブル中央処理装置(CPU)1102A、1102B、1102C、および1102Dを含み得る。いくつかの実施形態では、コンピュータ・システム1101は、比較的大規模なシステムに固有の複数のプロセッサを含んでもよいが、他の実施形態では、コンピュータ・システム1101は、代替的に単一のCPUシステムであってもよい。各CPU1102は、メモリ・サブシステム1104に記憶された命令を実行してもよく、1つまたは複数のレベルのオンボード・キャッシュを含んでもよい。いくつかの実施形態では、プロセッサは、メモリ・コントローラまたはストレージ・コントローラあるいはその両方の少なくとも1つまたは複数を含み得る。いくつかの実施形態では、CPUは、本明細書に含まれるプロセス(例えば、
図2に記載されたプロセス200)を実行し得る。いくつかの実施形態では、コンピュータ・システム1101は、
図1の3Dプリント・システム100として構成され得る。
【0046】
システム・メモリ・サブシステム1104は、ランダム・アクセス・メモリ(RAM)1122またはキャッシュ・メモリ1124などの揮発性メモリの形態で、コンピュータ・システム可読媒体を含み得る。コンピュータ・システム1101は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム・データ記憶媒体をさらに含み得る。単なる例として、ストレージ・システム1126は、「ハード・ドライブ」などの、非リムーバブル不揮発性磁気媒体からの読み出しおよび非リムーバブル不揮発性磁気媒体への書き込み用に提供され得る。図示されないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読み出しおよびリムーバブル不揮発性磁気ディスクへの書き込み用の磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくは他の光学媒体などのリムーバブル不揮発性光ディスクからの読み出しもしくはリムーバブル不揮発性光ディスクへの書き込み用の光学ディスク・ドライブが、提供され得る。加えて、メモリ・サブシステム1104は、フラッシュ・メモリ、例えばフラッシュ・メモリ・スティック・ドライブまたはフラッシュ・ドライブ、を含み得る。メモリ・デバイスは、1つまたは複数のデータ媒体インターフェースによってメモリ・バス1103に接続され得る。メモリ・サブシステム1104は、様々な実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0047】
メモリ・バス1103は、CPU1102、メモリ・サブシステム1104、およびI/Oバス・インターフェース1110の間に直接通信経路を提供する単一バス構造として
図4に示されるが、メモリ・バス1103は、いくつかの実施形態では、複数の異なるバスまたは通信経路を含んでもよく、それらは、階層型、星形もしくはウェブ構成の2点間リンク、多階層型バス、並列および冗長経路、または任意の他の適当な種類の構成などの、様々な形態のいずれかで配置されてもよい。さらに、I/Oバス・インターフェース1110およびI/Oバス1108は、単一のユニットとして示され、コンピュータ・システム1101は、いくつかの実施形態では、複数のI/Oバス・インターフェース1110、複数のI/Oバス1108、またはその両方を含み得る。さらに、様々なI/Oデバイスに対して通っている様々な通信経路からI/Oバス1108を分離する、複数のI/Oインターフェース・ユニットが示されているが、他の実施形態では、I/Oデバイスのいくつかまたは全てが、1つまたは複数のシステムI/Oバスに直接接続され得る。
【0048】
いくつかの実施形態では、コンピュータ・システム1101は、マルチユーザ・メインフレーム・コンピュータ・システム、単一ユーザ・システム、または、直接のユーザ・インターフェースをほとんどもしくは全く有しないが、他のコンピュータ・システム(クライアント)からリクエストを受信するサーバ・コンピュータもしくは類似デバイスであってもよい。さらに、いくつかの実施形態では、コンピュータ・システム1101は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップもしくはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマートフォン、ネットワーク・スイッチもしくはルータ、または任意の他の適当な種類の電子デバイスとして実施されてもよい。
【0049】
図4が、例示的コンピュータ・システム1101の代表的な主要コンポーネントを示すことを意図していることに留意されたい。いくつかの実施形態では、しかしながら、個々のコンポーネントは、
図4に表されたよりも大きなまたは小さな複雑性を有してもよく、
図4に示されたもの以外の、または
図1に示されたものに追加するコンポーネントが存在してもよく、そのようなコンポーネントの数、種類、および構成は変化してもよい。
【0050】
プログラム・モジュール1130の少なくとも1つのセットをそれぞれが有する1つまたは複数のプログラム/ユーティリティ1128が、メモリ・サブシステム1104に記憶され得る。プログラム/ユーティリティ1128は、ハイパバイザ(仮想機械モニタとも呼ばれる)、1つまたは複数のオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを含み得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せが、ネットワーキング環境の実施態様を含み得る。プログラム/ユーティリティ1128またはプログラム・モジュール1130あるいはその両方は、一般に様々な実施形態の機能または方法を実行する。
【0051】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に列挙される教示の実施態様は、クラウド・コンピューティング環境に限定されないと予め理解されたい。むしろ、本開示の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【0052】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースされ、リリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0053】
特性は、以下の通りである。
【0054】
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
【0055】
幅広いネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
【0056】
リソース・プーリング:プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、一般的には、提供されるリソースの正確な位置に対する制御または知識を有しないが、より高い抽象レベル(例えば、国、州、またはデータセンタ)において位置を指定することが可能であり得るという点において、位置独立性がある。
【0057】
急速な拡張性:機能は、急速にかつ弾力的に、場合によっては自動的にプロビジョニングされて、即座にスケール・アウトすることができ、急速にリリースされて、迅速にスケール・インすることができる。消費者には、プロビジョニングに利用可能な機能が、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
【0058】
測定されるサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象レベルにおいて計測機能を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されて、利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【0059】
サービス・モデルは、以下の通りである。
【0060】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通して、様々な3Dプリント・アシスタントらアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能でさえも含む、基礎的なクラウド・インフラを管理または制御しない。
【0061】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成したアプリケーションまたは消費者が取得したアプリケーションを、クラウド・インフラ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラを管理または制御しないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションに対して制御を行う。
【0062】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本コンピューティング・リソースをプロビジョニングすることであり、消費者はオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開して実行することができる。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対して制御を行い、場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0063】
展開モデルは、以下の通りである。
【0064】
プライベート・クラウド:クラウド・インフラストラクチャは、一組織のためだけに動作される。クラウド・インフラストラクチャは、その組織または第三者によって管理されてよく、構内または構外に存在し得る。
【0065】
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織または第三者によって管理されてよく、構内または構外に存在し得る。
【0066】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0067】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組み合わせたものであり、各クラウドは一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結合されている。
【0068】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味相互運用性に焦点をおいたサービス指向型である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0069】
ここで
図5を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示するように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組合せなど、が通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信し得る。それらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組合せなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化され得る(図示せず)。これによって、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。
図5に示されるコンピューティング・デバイス54A~Nの種類は、単なる例示であることを意図し、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て(例えば、ウェブ・ブラウザを用いて)、任意の種類のコンピュータ化デバイスと通信し得ると理解されたい。
【0070】
ここで
図6を参照すると、クラウド・コンピューティング環境50(
図5)によって提供される機能抽象層のセットが示されている。
図6に示されるコンポーネント、層、および機能は、単なる例示であるように意図され、本発明の実施形態は、それらに限定されないと、予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0071】
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、
図1の3Dプリント・システム100に関連するネットワーク・アプリケーション・サーバ・ソフトウェア67および3Dプリント・アシスタント68を含む。
【0072】
仮想化層70は、仮想エンティティの以下の例、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る、抽象層を提供する。
【0073】
一例では、管理層80は、以下の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースが、クラウド・コンピューティング環境内で利用される際のコスト追跡、およびこれらのリソースの消費に対して課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクのための本人確認を提供する。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来の必要性が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0074】
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ解析処理94、トランザクション処理95、ならびに3Dオブジェクト再現およびプリント96を含む。例えば、
図1の3Dプリント・システム100は、ワークロード層90を用いて完全オブジェクトの3Dプリント可能ファイルの生成を実行するように構成され得る。
【0075】
本明細書でより詳細に説明されるように、本明細書で説明される方法の実施形態のいくつかの動作のうちのいくつかまたは全てが、代替的な順序で実行されてもよく、または全く実行されなくてもよいと考えられる。さらに、複数の動作が、同時に、またはより大きなプロセスの内部部分として発生してもよい。
【0076】
本発明は、任意の可能な統合の技術的詳細レベルにおけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0077】
コンピュータ可読記憶媒体は、命令実行デバイスにより使用するための命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の好適な組合せであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはFlashメモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の好適な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体は、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号それ自体であると解釈されるべきではない。
【0078】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
【0079】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラム言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
【0080】
本発明の態様は、発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
【0081】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令がその中に記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示し得る、コンピュータ可読記憶媒体に記憶されてもよい。
【0082】
コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされてもよい。
【0083】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能、および動作を例示する。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、同時に、実質的に同時に、部分的または全体的に時間的に重複して実行されて、1つのステップとして実現されてもよく、または、ブロックが、関係する機能次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【0084】
本明細書で使用される専門用語は、特定の実施形態のみを説明するためのものであり、多様な実施形態の限定であることを意図するものではない。本明細書で使用される、単数形「ある/1つの(a)」、「ある/1つの(an)」、および「その(the)」は、文脈が特段明示していない限り、複数形も同様に含むことを意図するものである。「含む(includes)」または「含んでいる(including)」という用語、あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組合せの存在を明示するものであって、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組合せの存在または追加を排除するものではないことがさらに理解されるであろう。様々な実施形態の例としての実施形態の前述の詳細な説明では、添付図面(類似の番号が類似要素を表す)に対して参照が行われた。添付図面は、本明細書の一部を形成し、その中で例示として、様々な実施形態が実施され得る特定の例としての実施形態が示されている。これらの実施形態は、当業者が実施形態を実施することを可能にするために十分詳細に説明されたが、他の実施形態が使用されてもよく、論理的、機械的、電気的、および他の変更が、様々な実施形態の範囲から逸脱することなく行われ得る。前述の説明において、様々な実施形態の完全な理解を提供するために、多くの具体的詳細が記述された。しかし、様々な実施形態が、これらの具体的詳細なしで実施され得る。他の例では、周知の回路、構造、および技術が、実施形態を不明確にしないために詳細に示されない。
【0085】
本明細書で使用される、「いくつかの(a number of)」は、品目を参照して使用されるとき、1つまたは複数の品目を意味する。例えば、「いくつかの異なる種類のネットワーク」は、1つまたは複数の異なる種類のネットワークである。
【0086】
異なる参照番号が、異なる文字が後に続く共通の番号(例えば、100a、100b、100c)または異なる数字が後に続く句読点(例えば、100-1、100-2、もしくは100.1、100.2)を含むとき、文字または続く数字のない参照文字のみ(例えば100)の使用は、要素のグループ全体、グループの任意のサブセット、またはグループの見本を指し得る。
【0087】
さらに、「~の少なくとも1つ(at least one of)」という句は、品目のリストと共に使用されるとき、リストされた品目の1つまたは複数の異なる組合せが使用され得ることを意味し、リスト内の各品目の1つだけが必要であってもよい。言い換えると、「~の少なくとも1つ」は、品目の任意の組合せおよび任意の数の品目がリストから使用され得ることを意味するが、リスト内の品目の全てが必要であるわけではない。品目は、特定のオブジェクト、もの、またはカテゴリであってもよい。
【0088】
例えば、限定ではなく、「品目A、品目B、または品目Cの少なくとも1つ」は、品目A、品目Aおよび品目B、または品目Bを含み得る。この例では、品目A、品目B、および品目C、または品目Bおよび品目Cも含み得る。当然ながら、これらの品目の任意の組合せが存在し得る。いくつかの例示的な例では、「~の少なくとも1つ」は、限定ではなく例えば、2つの品目A、1つの品目B、および10個の品目C、4つの品目Bおよび7個の品目C、または他の好適な組合せであってもよい。
【0089】
本明細書内で使用される「実施形態」という語の異なる事例は、同一実施形態を必ずしも指すものではないが、指していてもよい。本明細書に示されまたは説明される任意のデータおよびデータ構造は、単なる例であり、他の実施形態では、異なるデータの量、データの種類、フィールド、フィールドの数および種類、フィールド名、行の数および種類、レコード、エントリ、またはデータ編成が使用されてもよい。加えて、別のデータ構造が必要なくてもよいように、任意のデータが、ロジックと組み合わされ得る。したがって、前述の詳細な説明は、限定的な意味に取られるべきではない。
【0090】
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示される実施形態に限定することを意図するものではない。多くの変更および変形が、説明される実施形態の範囲から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書で開示された実施形態を他の当業者が理解可能にするために、選択された。
【0091】
本発明は、特定の実施形態に関して説明されているが、それらの改変および変更が当業者には明らかになると予想される。したがって、以下の特許請求の範囲は、本発明の範囲内に入るものとして、そのような改変および変更の全てを包含すると解釈されることを意図するものである。
【国際調査報告】