(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】オブジェクト検出のための訓練データの生成
(51)【国際特許分類】
G06V 10/82 20220101AFI20240311BHJP
G06T 7/00 20170101ALI20240311BHJP
【FI】
G06V10/82
G06T7/00 350C
(21)【出願番号】P 2022526782
(86)(22)【出願日】2020-11-17
(86)【国際出願番号】 IB2020060819
(87)【国際公開番号】W WO2021099938
(87)【国際公開日】2021-05-27
【審査請求日】2023-04-24
(32)【優先日】2019-11-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】長井 真吾
(72)【発明者】
【氏名】野村 幸平
(72)【発明者】
【氏名】山上 円佳
(72)【発明者】
【氏名】ライ、イル
【審査官】千葉 久博
(56)【参考文献】
【文献】特表2011-512999(JP,A)
【文献】米国特許出願公開第2019/50981(US,A1)
【文献】米国特許出願公開第2018/307942(US,A1)
【文献】米国特許出願公開第2009/92301(US,A1)
【文献】米国特許出願公開第2008/75367(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 10/82
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
オブジェクト検出のための訓練データを生成する方法であって、
画像を複数のスライス画像に分割することであって、前記画像は前記画像内のオブジェクトについてのメタ情報を含み、前記メタ情報は前記オブジェクトを囲むバウンディング・ボックスと関連付けられたバウンディング・ボックス情報と、前記オブジェクトと関連付けられたマーカについてのマーカ情報とを含み、前記マーカは前記バウンディング・ボックス内に配置される、分割することと、
前記複数のスライス画像の中から少なくとも1つのスライス・オブジェクト画像を指定することであって、前記バウンディング・ボックスの少なくとも一部は前記それぞれのスライス・オブジェクト画像の各々と重なり合う、指定することと、
前記バウンディング・ボックス情報及び前記マーカ情報に基づいて、前記指定されたスライス・オブジェクト画像の中から少なくとも1つの訓練データ画像を指定することと、
前記少なくとも1つの指定された訓練データ画像から前記訓練データを生成することと
を含む、方法。
【請求項2】
前記訓練データから、前記複数のスライス・オブジェクト画像の中のマーカを含まない全てのスライス・オブジェクト画像を排除することをさらに含む、請求項1に記載の方法。
【請求項3】
各マーカについて、前記マーカ情報は数値を含み、前記少なくとも1つの訓練データ画像を指定することは、前記それぞれのスライス・オブジェクト画像内の前記マーカの全てについての累積数値が閾値を満たすことを要求する、
請求項1又は請求項2に記載の方法。
【請求項4】
前記バウンディング・ボックスに対応する前記画像の領域についてのバウンディング・ボックス画像ヒストグラムを生成することと、
前記スライス・オブジェクト画像の各々についてのスライス・オブジェクト画像ヒストグラムを生成することと
をさらに含み、前記少なくとも1つの訓練データ画像を指定することは、前記バウンディング・ボックス画像ヒストグラム
と前記それぞれのスライス・オブジェクト画像についての前記スライス・オブジェクト画像ヒストグラムと
の類似度が閾値を満たすことを要求する、
請求項1から請求項3までのいずれかに記載の方法。
【請求項5】
前記バウンディング・ボックスに対応する前記画像の領域についての画像ヒストグラムを生成することと、
前記スライス・オブジェクト画像の各々についての画像ヒストグラムを生成することと
をさらに含み、
各々のマーカについて、前記マーカ情報は数値を含み、前記少なくとも1つの訓練データ画像を指定することは、前記それぞれのスライス・オブジェクト画像内の前記マーカの全てについての累積数値が閾値を満たすこと、及び、前記バウンディング・ボックスについての前記画像ヒストグラム
と前記それぞれのスライス・オブジェクト画像についての前記画像ヒストグラムと
の類似度が閾値を満たすこと要求する、
請求項1から請求項4までのいずれかに記載の方法。
【請求項6】
前記訓練データを生成することは、前記訓練データ画像の各々についての注釈情報を生成することを含む、
請求項1から請求項5までのいずれかに記載の方法。
【請求項7】
前記バウンディング・ボックスは、前記オブジェクトの最大幅及び最大高さに対応する、
請求項1から請求項6までのいずれかに記載の方法。
【請求項8】
プログラム命令が1つ又は複数のコンピュータ可読ストレージ媒体上にまとめて格納された1つ又は複数のコンピュータ可読ストレージ媒体と、
前記プログラム命令を実行して、
請求項1から請求項7までのいずれかに記載の方法を実行するように構成された1つ又は複数のプロセッサ
と
を含む、コンピュータ・システム。
【請求項9】
請求項1から請求項7までのいずれかに記載の方法をコンピュータに実行させるソフトウェア・コード部分を含む、コンピュータ・プログラム。
【請求項10】
請求項9に記載のコンピュータ・プログラムを格納した、コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像内のオブジェクト検出のための訓練データを生成するための方法、コンピュータ・システム、及びコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
深層学習ニューラル・ネットワーク(deep learning neural network、DNN)の使用により、オブジェクト検出のための効果的な訓練が可能になり得る。DNN訓練手順には、画像についての注釈情報(annotation information)が含まれる。SSD及びYOLOなどの、オブジェクト検出のための主要モデルは、特定のサイズのオブジェクトの検出に限界がある。従って、高解像度画像内の極めて小さいオブジェクトを検出するのは困難である。この問題の最も一般的な解決法は、高解像度画像を多数の小さい画像にスライスすることである。これにより、ターゲットのサイズは、検出モデルにとって比較的十分な大きさになる。ターゲットが入力画像のサイズと比べて極めて小さい場合には、推論のための前処理の際、画像を数百より多い小さい画像にスライスすることが必要である。つまり、訓練データも数百の小さい画像にスライスする必要がある。小画像の各々に対して注釈を付ける必要がある。膨大なスライス・データに対して注釈を作成するのは大変な作業負荷である。
【0003】
作業負荷を軽減させるための解決法の1つは、元の注釈から、それらの小画像についての新しい注釈を自動的に作成できるプログラムを開発することである。しかしながら、自動的方法では、その領域内にターゲット・オブジェクトが含まれていない無意味な領域に対する注釈が作成される可能性がある。
【0004】
最近、極めて小さいオブジェクトを検出するためのビジネス事例の数が増加している。訓練データのための高品質のスライス注釈を作成するための効率的な自動的方法は、膨大な作業負荷を軽減させ、深層学習モデルの精度を向上させるであろう。従って、当技術分野において、前述の問題に対処するための必要性がある。
【発明の概要】
【0005】
第1の態様から見ると、本発明は、オブジェクト検出のための訓練データを生成する方法を提供し、この方法は、画像を複数のスライス画像に分割することであって、画像は該画像内のオブジェクトについてのメタ情報を含み、メタ情報はオブジェクトを囲むバウンディング・ボックスと関連付けられたバウンディング・ボックス情報と、オブジェクトと関連付けられたマーカについてのマーカ情報とを含み、マーカはバウンディング・ボックス内に配置される、分割することと、複数のスライス画像の中から少なくとも1つのスライス・オブジェクト画像を指定することであって、バウンディング・ボックスの少なくとも一部はそれぞれのスライス・オブジェクト画像の各々と重なり合う、指定することと、バウンディング・ボックス情報及びマーカ情報に基づいて、指定されたスライス・オブジェクト画像の中から少なくとも1つの訓練データ画像を指定することと、少なくとも1つの指定された訓練データ画像から訓練データを生成することとを含む。
【0006】
さらに別の態様から見ると、本発明は、プログラム命令が1つ又は複数のコンピュータ可読ストレージ媒体上にまとめて格納された1つ又は複数のコンピュータ可読ストレージ媒体と、プログラム命令を実行して、オブジェクト検出のための訓練データを生成するための方法を実行するように構成された1つ又は複数のプロセッサとを含むコンピュータ・システムを提供し、この方法は、画像を複数のスライス画像に分割することであって、像は該画像内のオブジェクトについてのメタ情報を含み、メタ情報はオブジェクトを囲むバウンディング・ボックスと関連付けられたバウンディング・ボックス情報と、オブジェクトと関連付けられたマーカについてのマーカ情報とを含み、マーカはバウンディング・ボックス内に配置される、分割することと、複数のスライス画像の中から少なくとも1つのスライス・オブジェクト画像を指定することであって、バウンディング・ボックスの少なくとも一部はそれぞれのスライス・オブジェクト画像の各々と重なり合う、指定することと、バウンディング・ボックス情報及びマーカ情報に基づいて、指定されたスライス・オブジェクト画像の中から少なくとも1つの訓練データ画像を指定することと、少なくとも1つの指定された訓練データ画像から訓練データを生成することとを含む。
【0007】
さらに別の態様から見ると、本発明は、オブジェクト検出のための訓練データを生成するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、1つ又は複数のコンピュータ可読ストレージ媒体と、1つ又は複数のコンピュータ可読ストレージ媒体上にまとめて格納されたプログラム命令とを含み、プログラム命令は、画像を複数のスライス画像に分割することであって、画像は該画像内のオブジェクトについてのメタ情報を含み、メタ情報はオブジェクトを囲むバウンディング・ボックスと関連付けられたバウンディング・ボックス情報と、オブジェクトと関連付けられたマーカについてのマーカ情報とを含み、マーカはバウンディング・ボックス内に配置される、分割することを行うためのプログラム命令と、複数のスライス画像の中から少なくとも1つのスライス・オブジェクト画像を指定することであって、バウンディング・ボックスの少なくとも一部はそれぞれのスライス・オブジェクト画像の各々と重なり合う、指定することを行うためのプログラム命令と、バウンディング・ボックス情報及びマーカ情報に基づいて、指定されたスライス・オブジェクト画像の中から少なくとも1つの訓練データ画像を指定することを行うためのプログラム命令と、少なくとも1つの指定された訓練データ画像から訓練データを生成することを行うためのプログラム命令とを含む。
【0008】
さらに別の態様から見ると、本発明は、画像内のオブジェクト検出のための訓練データを生成するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路により可読であり、本発明のステップを実行するための方法を実施するための、処理回路により実行される命令を格納するコンピュータ可読ストレージ媒体を含む。
【0009】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体上に格納され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されるとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0010】
本開示の実施形態は、オブジェクト検出のための訓練データを生成するための方法に関する。特定の実施形態において、方法は、画像を複数のスライス画像に分割することを含む。画像は、該画像内のオブジェクトについてのメタ情報を含み、メタ情報はオブジェクトを囲むバウンディング・ボックスと関連付けられたバウンディング・ボックス情報と、オブジェクトと関連付けられたマーカについてのマーカ情報とを含み、マーカはバウンディング・ボックス内に配置される。方法は、複数のスライス画像の中から少なくとも1つのスライス・オブジェクト画像を指定することを含み、バウンディング・ボックスの少なくとも一部はそれぞれのスライス・オブジェクト画像の各々と重なり合う。方法はまた、バウンディング・ボックス情報及びマーカ情報に基づいて、指定されたスライス・オブジェクト画像の中から少なくとも1つの訓練データ画像を指定することも含む。方法はまた、指定された訓練データ画像から訓練データを生成することも含む。
【0011】
本開示の他の実施形態は、コンピュータ・システム及び方法を実施するためのコンピュータ・プログラム製品に向けられる。
【0012】
上記の概要は、本開示の例示的な実施形態の各々又はあらゆる実装を説明することを意図したものではない。
【図面の簡単な説明】
【0013】
図面は本出願に含まれ、本明細書に組み入れられ、本明細書の一部を形成する。図面は、本開示の実施形態を示し、記述と共に本開示の原理を説明する働きをする。図面は、特定の実施形態の例証に過ぎず、本開示を限定するものでない。
【0014】
【
図1】実施形態による、処理システムのブロック図を示す。
【
図2】実施形態による、クラウド顧客により用いられるローカル・コンピューティング・デバイスが通信する1つ又は複数のコンピューティング・ノードを有する例示的なクラウド・コンピューティング環境のブロック図である。
【
図3】実施形態による、クラウド・コンピューティング環境により提供される機能抽象化層のセットのブロック図である。
【
図4】実施形態による、画像内のオブジェクトのための訓練データを生成するための方法のブロック図である。
【
図5】実施形態による、画像ヒストグラムの比較を用いる、画像内のオブジェクトのための訓練データを生成するための方法のブロック図である。
【
図6】実施形態による、ラベル付けツール及びユーザ入力を用いて画像内のオブジェクトをマーク付けする方法を示す。
【
図7】実施形態による、画像スライス・アルゴリズムを用いて画像を複数のスライス画像に分割する方法を示す。
【
図8】実施形態による、画像ヒストグラム比較を用いて小さいオブジェクトを検出するための訓練データを生成する方法を示す。
【発明を実施するための形態】
【0015】
本明細書に説明される実施形態は、訓練を行う際に処理しなければならない画像注釈情報の量を低減させる、デジタル画像内のオブジェクト検出のための訓練データを生成するための方法、コンピュータ・システム、及びコンピュータ・プログラム製品を提供する。図中のフローチャート及び断面図は、種々の実施形態によるこれらの方法を示す。幾つかの代替的な実装において、フローチャートのステップは、図に示される順序とは異なる順序で行われることがある。
【0016】
デジタル画像は、物理オブジェクト又は物理オブジェクトの集合体のデジタル表現もしくは複写である。所与のデジタル画像内に存在する特定のオブジェクトを検出又は認識することができる技術が存在する。例えば、デジタル・カメラ上にインストールされたソフトウェアは、人間の顔又は目などのオブジェクトが、カメラのセンサによってキャプチャされた画像内に存在することを認識することができる。また、写真編集ソフトウェア・アプリケーションは、直線などのオブジェクトが、編集されているデジタル画像内に存在することを認識することができる。ニューラル・ネットワーク及び他の深層学習モジュールを用いて、このオブジェクト検出を助けることができる。
【0017】
人工ニューラル・ネットワーク(Artificial Neural Network、ANN)(ニューラル・ネットワークとも呼ばれる)は、外部入力への動的な状態応答により情報を処理する、多数の単純で高度に相互接続された処理要素(ノード)から構成されるコンピューティング・システムである。ANNは、哺乳類の大脳皮質のニューロン構造を、大まかに、しかしずっと小規模にモデル化した処理デバイス(アルゴリズムもしくはハードウェア、又はその両方)である。大規模なANNは、数百又は数千のプロセッサ・ユニットを有するが、哺乳類の脳は数十億のニューロンを有し、それに対応して、その全体的な相互作用及び創発的行動の大きさが増加する。フィードフォワード(feedforward)ニューラル・ネットワークは、ユニット間の接続がサイクルを形成しない人工ニューラル・ネットワークである。
【0018】
深層学習ニューラル・ネットワーク(DNN)は、入力層と出力層との間にユニットの層である複数の隠れ層を有する人工ニューラル・ネットワーク(ANN)である。浅いANNと同様に、DNNは、複雑な非線形関係をモデル化することができる。DNNアーキテクチャは、例えばオブジェクト検出及び解析のために、オブジェクトが画像プリミティブの層状構成として表わされる構成モデルを生成する。追加の層により、下位層からの特徴の構成が可能になり、同様に機能する浅いネットワークよりも少ないユニットで複雑なデータをモデル化する可能性を与える。DNNは、一般的には、フィードフォワード・ネットワークとして設計される。
【0019】
機械学習においては、畳み込みニューラル・ネットワーク(CNN又はConvNet)は、フィードフォワードANNの一種であり、そのノード(ニューロン)間の接続パターンは、動物の視覚野の組織からヒントを得ており、その個々のニューロンは、視野をタイル化する重複領域に対応するよう配置される。畳み込みニューラル・ネットワークは、生物学的プロセスを模倣し、デジタル画像などのデータを処理する間、最小量の前処理を使用するように設計された多層パーセプトロンの変形として構成される。従って、CNNは、一般に、視覚画像の分析に適用されるDNNの1つのクラスである。コンピュータ・ビジョンの分野では、畳み込みニューラル・ネットワークは、画像分類を得意としており、それは、クラスのセットが与えられた場合、画像をカテゴリー化することと、画像内に存在する最強のクラスをネットワークに判断させることとからなる。
【0020】
近年、オブジェクトの検出、位置特定、及び分類のタスクを扱うために、領域畳み込みニューラル・ネットワーク(region-convolutional neural network、R-CNN)が開発されている。一般に、R-CNNは画像内のオブジェクトの位置を特定し、検出することが可能な特別なタイプのCNNである。R-CNNの出力は、一般に、検出されたオブジェクトの各々と厳密に適合するバウンディング・ボックスのセットであり、検出されたオブジェクトの各々についてのクラス出力でもある。
【0021】
近年、R-CNN及びその後継するものと関連付けられた特定の処理ボトルネックを処理するために、新しいアーキテクチャが作成され、リアルタイムでのオブジェクト検出の向上が可能になった。これらの新しいアーキテクチャの2つの例が、You Only Look Once(YOLO)及びSingle Shot Detector(SSD MultiBox)である。しかしながら、特定のより小さいサイズのオブジェクトを検出する際、YOLO及びSSDなどのオブジェクト検出のためのアーキテクチャには限界がある。これらのアーキテクチャによって、高解像度のデジタル画像内の非常に小さいオブジェクトを検出することは困難である。この問題の1つの解決法は、高解像度画像を多くの小さい画像にスライスすることである。これにより、ターゲット・サイズは、オブジェクト検出モデルにとって十分な大きさになる。
【0022】
ターゲットが入力画像のサイズと比べて非常に小さい場合、前処理の際及び推論(例えば、訓練された機械学習アルゴリズムを使って予測を行う処理)のために、画像を数百の(又はそれより多い)小さいスライス画像にスライスする必要がある。その結果、訓練データを数百の小さい画像にスライスすることも必要になる。
【0023】
また、小さい画像の各々に対して注釈を付ける必要もある。一般に、注釈とは、画像に対して、メタデータ(例えば、画像作成者の名前、画像と関連したキーワード、キャプション、タイトル及びコメント、画像のサイズ、画像の位置など)を割り当てることを指す。非常に大量のスライス・データについての注釈を作成することは、非常に大きい作業負荷をもたらす。作業負荷を軽減させるための1つの方法は、元の注釈から小さい画像についての新しい注釈を自動的に作成することである。しかしながら、この方法では、ターゲット・オブジェクトが含まれていない領域にも注釈がもたらされ、深層学習モデルの精度が低下することがある。
【0024】
ここで、同じ番号が同じ又は類似の要素を表す図を参照し、最初に
図1を参照すると、一実施形態による、本実施形態を適用できる例示的な処理システム100が示される。処理システム100は、システム・バス102を介して他のコンポーネントに動作可能に結合された少なくとも1つのプロセッサ(CPU)104を含む。特定の実施形態では、CPUは、ラベル付けツールを用いて画像の前処理を実行し、このラベル付けツールは、ユーザが画像内のオブジェクトについてのバウンディング・ボックスを作成し、バウンディング・ボックス内のオブジェクトに対するマーカを作成することを可能にする。特定の実施形態では、CPUは、検出ターゲット・オブジェクトのサイズに基づいて、画像を複数のより小さい画像に分割するスライス・ツールで画像の前処理を実行する。キャッシュ106、読み出し専用メモリ(ROM)108、ランダム・アクセス・メモリ(RAM)110、入力/出力(I/O)アダプタ120、サウンド・アダプタ130、ネットワーク・アダプタ140、ユーザ・インターフェース・アダプタ150、及びディスプレイ・アダプタ160が、システム・バス102に動作可能に結合される。
【0025】
第1のストレージ・デバイス122及び第2のストレージ・デバイス124は、I/Oアダプタ120によってシステム・バス102に動作可能に結合される。ストレージ・デバイス122及び124は、ディスク・ストレージ・デバイス(例えば、磁気又は光学ディスク・ストレージ・デバイス)、ソリッド・ステート磁気デバイスなどのいずれかとすることができる。また、ストレージ・デバイス122及び124は、同じタイプのストレージ・デバイスであってもよく、又は異なるタイプのストレージ・デバイスであってもよい。
【0026】
スピーカ132は、サウンド・アダプタ130によってシステム・バス102に動作可能に結合される。送受信機142は、ネットワーク・アダプタ140によってシステム・バス102に動作可能に結合される。ディスプレイ・デバイス162は、ディスプレイ・アダプタ160によってシステム・バス102に動作可能に結合される。
【0027】
第1のユーザ入力デバイス152、第2のユーザ入力デバイス154、及び第3のユーザ入力デバイス156は、ユーザ・インターフェース・アダプタ150によってシステム・バス102に動作可能に結合される。ユーザ入力デバイス152、154及び156は、キーボード、マウス、キーパッド、画像キャプチャ・デバイス、動作感知デバイス、マイクロフォン、前述のデバイスのうちの少なくとも2つの機能を組み込むデバイス、又は任意の他の適切なタイプの入力デバイスのいずれかとすることができる。ユーザ入力デバイス152、154及び156は、同じタイプのユーザ入力デバイスであってもよく、又は異なるタイプのユーザ入力デバイスであってもよい。ユーザ入力デバイス152、154及び156は、システム100との間で情報を入力及び出力するために使用される。特定の実施形態では、グラフィックス処理ユニット(GPU)170が、システム・バス102に動作可能に結合される。これらの実施形態では、GPUは、深層学習オブジェクト検出モデルで画像に対する訓練及び推論を行う。
【0028】
当業者であれば容易に企図できるように、処理システム100は、他の要素(図示せず)を含むことも、特定の要素を省略することもできる。例えば、当業者によって容易に理解されるように、同じものの特定の実装に応じて、種々の他の入力デバイスもしくは出力デバイス又はその両方を、処理システム100内に含むことができる。例えば、種々のタイプの無線入力及び/又は有線入力及び/又は出力デバイスを使用することができる。さらに、当業者であれば容易に理解するように、種々の構成にける付加的なプロセッサ、コントローラ、メモリなどを利用することもできる。処理システム100のこれら及び他の変形は、本明細書で提供される本開示の教示が与えられれば、当業者により容易に企図される。
【0029】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と共に実施することが可能である。
【0030】
クラウド・コンピューティングは、最小限の管理労力又はサービスのプロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。
【0031】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0032】
ここで
図2を参照すると、例示的なクラウド・コンピューティング環境250が示される。図示のように、クラウド・コンピューティング環境250は、例えば、携帯情報端末(PDA)又は携帯電話254A、デスクトップ・コンピュータ254B、ラップトップ・コンピュータ254C、もしくはコンピュータ・システム254N又はそれらの組み合わせなどのような、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスと通信することができる、1つ又は複数のクラウド・コンピューティング・ノード210を含む。ノード210は、互いに通信することができる。これらのノードは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、又はこれらの組み合わせなど、1つ又は複数のネットワークにおいて物理的又は仮想的にグループ化することができる(図示せず)。このことは、クラウド・コンピューティング環境250が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のない、infrastructure as a service、platform as a service、もしくはsoftware as a service、又はそれらの組み合わせを提供することを可能にする。
図2に示されるコンピューティング・デバイス254A~Nのタイプは単に例示であることを意図し、コンピューティング・ノード210及びクラウド・コンピューティング環境250は、任意のタイプのネットワーク上でもしくはネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いる)上で又はその両方で、任意のタイプのコンピュータ化されたデバイスと通信できることを理解されたい。
【0033】
ここで
図3を参照すると、クラウド・コンピューティング環境250(
図2)によって提供される機能抽象化層のセットが示される。
図3に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【0034】
ハードウェア及びソフトウェア層360は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、メインフレーム361と、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャ・ベースのサーバ362と、サーバ363と、ブレード・サーバ364と、ストレージ・デバイス365と、ネットワーク及びネットワーク・コンポーネント366と、が含まれる。幾つかの実施形態においては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア367と、データベース・ソフトウェア368とを含む。
【0035】
仮想化層370は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ371、仮想ストレージ372、仮想プライベート・ネットワークを含む仮想ネットワーク373、仮想アプリケーション及びオペレーティング・システム374、並びに仮想クライアント375を提供することができる。
【0036】
一例において、管理層380は、以下で説明される機能を提供することができる。リソース・プロビジョニング381は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定382は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、これらのリソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル383は、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理384、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行385は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0037】
作業負荷層390は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができる作業負荷及び機能の例として、マッピング及びナビゲーション391、ソフトウェア開発及びライフサイクル管理392、仮想教室教育配信393、データ分析処理394、トランザクション処理395、及びオブジェクト検出訓練処理396が挙げられる。
【0038】
ここで
図4を参照すると、この図は、実施形態による、バウンディング・ボックス及びマーカを用いて、画像内のオブジェクトについての訓練データを生成する方法を示す。これらの実施形態において、画像は複数のより小さい画像にスライスされ、スライスされた画像のサブセット(及びそれと関連付けられた注釈情報)のみが、訓練データに使用される。
【0039】
特定の実施形態において、ステップ400において、元の画像に対して注釈ファイルが生成される。特定の実施形態では、ユーザは、ラベル付けツールを通じて入力を提供している。ラベル付けツールにより、ユーザが画像内の任意のオブジェクトに対してバウンディング・ボックスを作成し、バウンディング・ボックス内にマーカを作成することが可能になる。特定の実施形態では、バウンディング・ボックスは、オブジェクトの最上部、右端部、左端部及び最下部を包含する画像の領域である。従って、バウンディング・ボックスは、最上部及び左端部の画素位置、並びに最下部及び右端部の画素位置を特定する座標を有することができる。その結果、バウンディング・ボックスは、水平方向のサイズ及び垂直方向のサイズも有する。特定の実施形態では、マーカは、ラベル付けツールでユーザが識別した識別されたオブジェクトの視覚的特徴である(例えば、マーカは、画像の背景部分とは十分に異なる何らかの特徴であり得る)。1つの識別されたオブジェクトは複数のマーカを有してもよく、これらのマーカは、識別されたオブジェクトの異なる位置内に存在してもよい。特定の実施形態では、マーカは、画像内のX-Y画素座標によって表される。特定の実施形態では、マーカは、他のマーカに対するマーカの相対的重要性を表す数値で指定される。従って、ステップ400において、注釈ファイルは、オブジェクトのバウンディング・ボックス、及びオブジェクトのマーカに関する情報を含む。一例では、注釈情報は、拡張マークアップ言語(XML)ファイル、又は当技術分野において知られる別の適切なファイル形式でのメタ情報として保存される。プロセスのこの段階では、元の画像全体が処理されて、そこに含まれるあらゆるオブジェクトの位置が決定され、ユーザにより指定されたマーカ及びバウンディング・ボックスに関連したメタ情報を含むXMLファイルが作成されている。
【0040】
ステップ402において、特定の実施形態では、CPU(
図1の104を参照されたい)は、元の画像を複数のより小さいスライス画像(例えば、画像全体の部分画像セクション)に分割するスライス・スクリプトを実行する。特定の例では、画像の全体的なサイズ/解像度、及びそこで指定されたターゲット・オブジェクトのサイズに応じて、数百又は数千のスライス画像が存在し得る。所与のスライス画像は、バウンディング・ボックス(又はバウンディング・ボックスの一部)を含むことも又は含まないこともある。特定の実施形態では、スライス画像がバウンディング・ボックスを含まない場合、スライス画像はいかなるマーカも含まない(例えば、全てのマーカは、バウンディング・ボックスの境界内に含まれる)。逆に、スライス画像がバウンディング・ボックス(又はその一部)を含む場合、スライス画像はマーカを含むことも又は含まないこともある。例えば、ユーザは、バウンディング・ボックス内のオブジェクトに対して1つのマーカを指定することができる。しかしながら、スライス・スクリプトが画像を十分に小さい画像スライスに分割した場合(例えば、オブジェクト及びそれぞれのバウンディング・ボックスが1よりも大きい場合)、バウンディング・ボックスは、複数のスライス画像に分割され得る。この場合、1つのマーカは必ず複数のスライス画像のうちの1つ内にのみ現れ、他の画像内には現れない。
【0041】
ステップ404において、特定の実施形態では、方法は、スライス画像の各々を分析し、次に、そこに含まれるいずれかのバウンディング・ボックス(又はその一部)があるかどうかを判断することを含む。スライス画像内にバウンディング・ボックスの少なくとも一部が存在する場合、プロセスはステップ406に進む。スライス画像内にバウンディング・ボックスがない場合、プロセスはステップ408に進み、分析すべきスライス画像がもっとあるかどうかを判断する。
【0042】
ステップ406において、スライス画像がバウンディング・ボックスを含むと判断された場合、方法は、スライス画像を分析して、バウンディング・ボックス内に存在するいずれかのマーカがあるかどうかを判断することを含む。特定の実施形態では、特定のスライス画像内に少なくとも1つのマーカが存在する場合、ステップ410において、方法は、スライス画像についての注釈情報(例えば、バウンディング・ボックス情報及びマーカ情報)を含むように注釈ファイルを更新することを含む。ステップ410において注釈ファイルが更新された後、プロセスはステップ412に進み、スライス画像内にバウンディング・ボックスがもっとあるかどうかを判断する。例えば、1つのスライス画像は、以前にバウンディング・ボックスでマークされた複数のオブジェクトを含むことがある。
【0043】
ステップ406において、スライス画像のバウンディング・ボックス内にマーカがないと判断された場合、注釈ファイルは更新されない。
【0044】
他の実施形態では、訓練データのためにスライス画像が選択される(例えば、注釈ファイルを更新する)ためには、1つより多いマーカが、所与のスライス画像内に存在しなければならない。
【0045】
他の実施形態では、各マーカは、それと関連付けられた重要度値を有する。重要度値は、他のマーカに対する又はある所定の重要度の閾値に対する、マーカの相対的な値(又は重要度)を示す。マーカが指定された重要度値を有する実施形態においては、スライス画像内に、重要度の特定の閾値レベルを満たす少なくとも1つのマーカが存在する場合、注釈ファイルが更新される。所与のスライス画像内に複数のマーカがある別の実施形態においては、スライス画像内の全てのマーカの重要度値の合計が特定の閾値を満たす場合、注釈ファイルが更新される。
【0046】
別の実施形態では、スライス画像内に少なくとも1つのマーカが現れ、スライス画像内にオブジェクトのバウンディング・ボックスの中心位置が現れる場合、注釈ファイルが更新される。
【0047】
従って、本実施形態のあるものによれば、特定のマーカを有するスライス画像、又は特定のマーカ基準を満たすマーカのみが使用されることになる。従って、スライス画像の全てが訓練データに使用されるわけではない。従って、スライス画像に対して作成する必要がある注釈の全体的な数が減少し、訓練のための全体的な処理作業負荷が低減する。さららに、オブジェクトが存在するスライス画像についてのみ注釈を有する(例えば、無意味な領域を除く)ことによって、訓練データに基づいて生成される深層学習モデルの精度が向上する。
【0048】
再び
図4を参照すると、ステップ412において、スライス画像内にバウンディング・ボックスがもっとあると判断された場合、プロセスは、ステップ406に戻り、次のバウンディング・ボックス内に含まれる任意のマーカのさらなる分析を行う。ステップ412において、スライス画像内にバウンディング・ボックスがそれ以上ないと判断された場合、プロセスはステップ408に進み、分析すべきスライス画像がもっとあるかどうかを判断する。従って、スライス画像内に現れる各々のバウンディング・ボックスについて、マーカ分析が繰り返される。
【0049】
ステップ408において、分析すべき付加的なスライス画像が存在すると判断された場合、処理はステップ404に戻る。ステップ408において、分析すべき付加的なスライス画像がないと判断された場合、処理はステップ414で終了する。ステップ414において処理が終了した後、元の画像全体が分析され、あらゆるスライス画像について注釈ファイルが生成されたことになる(例えば、マーカが適用可能なマーカ基準を満たす場合)。この段階で、訓練データ(例えば、スライス画像)及び生成された注釈ファイルを用いて、深層学習オブジェクト検出モデルにより(例えば、
図1に示すグラフィックス処理ユニット(GPU)170を利用して)訓練を行うことができる。
【0050】
ここで
図5を参照すると、この図は、特定の実施形態による、画像ヒストグラムを用いて画像内のオブジェクトのための訓練データを生成する方法を示す。これらの実施形態では、画像は複数のより小さい画像にスライスされ、スライス画像のサブセット(及びそれと関連付けられた注釈情報)のみが訓練データに使用される。特定の実施形態では、ステップ400、402、404、408、410、412及び414は、
図4について上述したものと同じである。しかしながら、
図4のプロセスにおけるように、マーカを利用してスライス画像が訓練データに使用されるかどうかを判断するのではなく、画像ヒストグラムを使用して、スライス画像が訓練データに適しているかどうかを判断する。
図5のステップ506において、本方法は、元の注釈領域(例えば、オブジェクトのバウンディング・ボックスにより包含される画像の領域の少なくとも一部)の画像ヒストグラムを、スライスされた注釈領域(例えば、スライス画像の領域の少なくとも一部)の画像ヒストグラムと比較することを含む。
【0051】
一般に、画像ヒストグラムは、デジタル画像内の色調分布のグラフィック表現として機能するヒストグラムの一種である。画像ヒストグラムでは、各々の色調値に対して、画素の数がプロットされる。特定の画像についてのヒストグラムを見ることによって、見る人(viewer)が全体の色調分布を一目で判断できるようになる。他の実施形態では、画素の行(又は列)内の全ての画素についての累積色値に基づいて、ヒストグラムが生成される。ヒストグラムは、画像からのグレースケール画素情報に基づくことができ、又は着色した(例えば、RGBの)画素ピクセル情報に基づくこともできる。バウンディング・ボックス画像とそれぞれのスライス画像との間で比較を行うことができるならば、画像ヒストグラムを生成する他の任意の適切な方法を使用してもよいことを理解されたい。より一般的には、バウンディング・ボックス画像とそれぞれのスライス画像との間で比較を行うことができるならば、画像比較の他の任意の適切な方法を使用できる(例えば、画像ヒストグラム方法以外の)ことを理解されたい。
【0052】
ステップ506において、両方の画像ヒストグラム間の類似度が設定された閾値を満たす又は超える場合、方法は、スライス画像についての注釈情報(例えば、バウンディング・ボックス情報もしくはマーカ情報又はその両方)を含むように注釈ファイルを更新することを含む。ステップ410において注釈ファイルが更新された後、プロセスはステップ412に進み、スライス画像内にバウンディング・ボックスがもっとあるかどうかを判断する。ステップ506において、両方の画像ヒストグラム間の類似度が閾値を満たさない場合、注釈領域は、訓練データのために選択されない。上記に示したように、本方法における残りのステップは、
図4に関して説明したものと同じである。
【0053】
ここで
図6を参照すると、この図は、ユーザがラベル付けツールを利用して、元の画像(例えば、予めスライスされた)内のオブジェクトについてのバウンディング・ボックス及びマーカを生成する例を示す。この図は、
図4及び
図5に関して示され、上述されたステップ400のグラフィック表現である。
図6の上部において、元の画像602は、マーク付けされるべきオブジェクト604(例えば、電子機器コンポーネント上のナノメートル又はマイクロメートル規模の欠陥)を含む。一般的な意味では、オブジェクトは、画像の背景から特定の閾値差を有する任意の視覚的特徴、及びユーザが異常であると識別する任意の特徴とすることができる。
図6の下部において、オブジェクト604のバウンディング・ボックス610が決定される。特定の実施形態では、バウンディング・ボックス610は、最上部及び左端の位置、並びに最下部及び右端の画素位置を特定する座標を有する。その結果、バウンディング・ボックス610は、水平方向のサイズ及び垂直方向のサイズも有し、このサイズは、画像602内のオブジェクト604のサイズに基づく。
図6の下部にも示されるように、オブジェクト604と関連付けられた複数のマーカ608が生成される。ユーザは、オブジェクトのサイズもしくはユーザに対する関連性又はその両方に応じて、所与のオブジェクトについての任意の適切な数のマーカを生成できることを理解されたい。
【0054】
他の実施形態では、ユーザがラベル付けツールにより手動でオブジェクトを識別し、マーク付けする(例えば、バウンディング・ボックス及びマーカを作成する)のではなく、自動光学検査(AOI)システムが、カメラを用いてオブジェクトを識別し、デバイスを自律的に走査して画像を取得し、次に画像処理アルゴリズム(又は他の適切な方法)を用いて、画像内のオブジェクト又は欠陥を識別することによって、オブジェクトを識別する。
【0055】
ここで
図7を参照すると、この図は、画像スライス・アルゴリズムを元の画像に適用して、複数のスライス画像を生成する例を示す。この図は、
図4に関して示され、上述されたステップ406、及び
図5に関して示され、上述されたステップ506のグラフィック表現である。
図7の上部において、オブジェクト604と関連付けられたバウンディング・ボックス610及びマーカ608が、ラベル付けツール600によりユーザによって識別される。画像スライス・アルゴリズム702は、元の画像602を、
図7の下部に示される複数のスライス画像704にスライスする。この例では、24個のスライス画像704が存在する。しかしながら、任意の適切な数のスライス画像(例えば、数百又はそれより多く)が存在し得ることを理解されたい。特定の実施形態では、スライス画像の数は、元の画像602のサイズもしくは画像内で検出される異なるオブジェクトのサイズ又はその両方に基づく。
【0056】
図7の下部に示されるように、オブジェクト604のバウンディング・ボックス610は、スライス画像のうちの4つ(例えば、スライス画像706、708、710及び712)内に現れる。しかしながら、バウンディング・ボックス610は、オブジェクト604のサイズに応じて、任意の数のスライス画像内に現れることがあることを理解されたい。オブジェクト604と関連付けられた3つのマーカ714、716、及び718がある。この例では、マーカ714及び716の2つがスライス画像712内に現れ、マーカ718の1つがスライス画像710内に現れる。この例示的な実施形態では、任意の所与のスライス画像内に1つより多いマーカが存在する場合には、スライス画像と関連付けられた注釈情報が、訓練データのために選択される。特定の実施形態では、バウンディング・ボックスの位置と一致するスライス画像(例えば、スライス画像706、708、710及び712)のみが、可能な訓練データのために考慮される。この例では、オブジェクト604は、スライス画像706内に現れる。しかしながら、スライス画像706はいずれのマーカも含まないため、訓練データのために選択されない。また、この例では、バウンディング・ボックス610は、スライス画像708内に現れる。しかしながら、スライス画像708内には、オブジェクトが現れないだけでなく、このスライス画像708内には、マーカもない。このため、スライス画像708は、訓練データのために選択されない。この例では、スライス画像712は、2つのマーカ714及び716を含み、従って、訓練データのために選択される。同様に、スライス画像710は、1つのマーカ718を含み、これも訓練データのために選択される。従って、4つのスライス画像(例えば、スライス画像706、708、710及び712)のうちの2つ(例えば、スライス画像710及び712)だけが、訓練データのために選択される。従って、スライス画像データに対して作成する必要のある注釈の数が減少し、訓練のための全体的な処理負荷が低減する。
【0057】
ここで
図8を参照すると、この図は、スライス画像に対して画像ヒストグラム比較を行って、それらを訓練データのために選択すべきかどうかを判断する実施形態を示す。
図8に示すように、オブジェクト604のバウンディング・ボックス610は、スライス画像の4つ(例えば、スライス画像706、708、710及び712)内に現れる。しかしながら、オブジェクト604のサイズ及びスライス画像のサイズ/解像度に応じて、バウンディング・ボックス610は、任意の数のスライス画像内に現れることがあることを理解されたい。この例示的な実施形態では、スライス画像706、708、710及び712の各々について、スライス画像の画像ヒストグラムが生成される。
図8に示すように、スライス画像ヒストグラム814はスライス画像706に対応し、スライス画像ヒストグラム816はスライス画像708に対応し、スライス画像ヒストグラム818はスライス画像712に対応し、スライス画像ヒストグラム820はスライス画像710に対応する。本実施形態では、バウンディング・ボックス・ヒストグラム824も生成される。
【0058】
スライス画像ヒストグラムが、一定の閾値を超える、バウンディング・ボックス・ヒストグラムとの類似性を有する場合、そのスライス画像は訓練データのために選択される。この例では、スライス画像706、712及び710のスライス画像ヒストグラム814、818及び820は、バウンディング・ボックス・ヒストグラム824と十分な類似性を有しているので、訓練データのために選択される。しかしながら、スライス画像ヒストグラム816は、バウンディング・ボックス・ヒストグラム824と十分な類似性を有していない(例えば、ヒストグラムの形状が比較的一様である)ので、訓練データのために選択されない。従って、4つのスライス画像(例えば、スライス画像706、708、710及び712)のうちの3つの画像(例えば、スライス画像706、710及び712)だけが、訓練データのために選択される。従って、スライス画像データに対して作成する必要がある注釈の数が減少し、訓練のための全体的な処理負荷が減少する。
【0059】
特定の実施形態では、ヒストグラム比較とマーカ分析の両方を組み合わせて使用し、スライス画像を訓練データのために使用すべきかどうかを決定する。これらの分析を実行する順序は変更することができる。
【0060】
本発明は、システム、方法もしくはコンピュータ・プログラム製品又はそれらの組み合わせを、いずれかの可能な技術的詳細レベルで統合したものとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
【0061】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードもしくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【0062】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、又はそれらの組み合わせを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
【0063】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータもしくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
【0064】
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0065】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置もしくは他のデバイス又はその組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
【0066】
コンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生産し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図又は両方の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
【0067】
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又は両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【0068】
本開示の種々の実施形態の説明は、例証の目的のために提示されたが、これらは、網羅的であること、又は開示した実施形態に限定することを意図するものではない。当業者には、説明される実施形態の範囲から逸脱することなく、多くの修正及び変形が明らかであろう。本明細書で用いられる用語は、実施形態の原理、実際の適用、又は市場に見られる技術に優る技術的改善を最もよく説明するため、又は、当業者が、本明細書に開示される実施形態を理解するのを可能にするために選択された。