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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許-画像の欠陥の特定 図1
  • 特許-画像の欠陥の特定 図2
  • 特許-画像の欠陥の特定 図3
  • 特許-画像の欠陥の特定 図4
  • 特許-画像の欠陥の特定 図5
  • 特許-画像の欠陥の特定 図6
  • 特許-画像の欠陥の特定 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-02
(45)【発行日】2024-05-14
(54)【発明の名称】画像の欠陥の特定
(51)【国際特許分類】
   G01N 21/88 20060101AFI20240507BHJP
   G06T 7/00 20170101ALI20240507BHJP
   G06V 10/82 20220101ALI20240507BHJP
【FI】
G01N21/88 Z
G06T7/00 350C
G06V10/82
【請求項の数】 8
(21)【出願番号】P 2021578101
(86)(22)【出願日】2020-06-12
(65)【公表番号】
(43)【公表日】2022-09-02
(86)【国際出願番号】 IB2020055527
(87)【国際公開番号】W WO2021005426
(87)【国際公開日】2021-01-14
【審査請求日】2022-11-21
(31)【優先権主張番号】16/503,764
(32)【優先日】2019-07-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】リー、ファン
(72)【発明者】
【氏名】ヒュー、ギュオ クィヤン
(72)【発明者】
【氏名】チュー、シェン ナン
(72)【発明者】
【氏名】チュー、ジュン
(72)【発明者】
【氏名】ホアン、ジン チャン
(72)【発明者】
【氏名】ジー、ペン
(72)【発明者】
【氏名】ディン、ユアン ユアン
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2019-039727(JP,A)
【文献】特開2019-040910(JP,A)
【文献】特開2019-087044(JP,A)
【文献】米国特許出願公開第2019/0080443(US,A1)
【文献】新美 信悟、外2名,“GANを用いた工業製品における外観検査”,SSII2019 第25回 画像センシングシンポジウム,日本,画像センシング技術研究会,2019年06月12日,pp.1-4
【文献】木村 大毅、外2名,“VAEGANとAttentionを活用した異常検出手法”,2019年度人工知能学会全国大会(第33回)論文集,日本,一般社団法人人工知能学会,2019年06月04日,pp.1-2
【文献】Jiahui Yu et al.,"Generative Image Inpainting with Contextual Attention",2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition,米国,IEEE,2018年06月18日,pp.5505-5514
【文献】Fan Li et al.,"Weakly-Supervised Defect Segmentation Within Visual Inspection Images of Liquid Crystal Displays in Array Process",2020 IEEE International Conference on Image Processing (ICIP),米国,IEEE,2020年09月30日,pp.743-747
(58)【調査した分野】(Int.Cl.,DB名)
G01N 21/88
G06T 1/00,7/00-7/90
G06V 10/00-10/98
(57)【特許請求の範囲】
【請求項1】
画像処理のための、コンピュータに実装された方法であって、
第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを1つ以上のプロセッサによって判断するステップと、
前記第1の画像が前記欠陥を示すと判断するステップに応答して、前記欠陥のない第2の画像を前記第1の画像に基づいて前記1つ以上のプロセッサによって得るステップと、
前記第1の画像と前記第2の画像とを比較することにより前記1つ以上のプロセッサによって前記欠陥を特定するステップと、を含み、
前記第2の画像を得るステップは、
前記第1の画像内の画素のヒート値を示すヒートマップを前記1つ以上のプロセッサによって生成するステップと、
前記欠陥の少なくとも一部を覆うマスクを前記ヒートマップに基づいて前記1つ以上のプロセッサによって生成するステップと、
前記マスクにより覆われた前記欠陥の少なくとも前記一部を前記第1の画像から除去することにより前記第2の画像を前記1つ以上のプロセッサによって生成するステップと、
を含む、コンピュータに実装された方法。
【請求項2】
前記ヒートマップを生成するステップは、
前記第1の画像内の前記欠陥の位置を特定するように訓練されているクラス・アクティベーション・ヒートマップ・モデルに前記第1の画像を適用することにより、前記ヒートマップを前記1つ以上のプロセッサによって生成するステップ
を含む、請求項1に記載のコンピュータに実装された方法。
【請求項3】
前記マスクを生成するステップは、
所定の閾値を上回っている、前記第1の画像内の画素のセットのヒート値を、前記1つ以上のプロセッサによって判断するステップと、
前記画素のセットを覆う前記マスクを前記1つ以上のプロセッサによって生成するステップと、
を含む、請求項1に記載のコンピュータに実装された方法。
【請求項4】
前記第2の画像を生成するステップは、
前記欠陥の少なくとも前記一部を除去するように訓練されている敵対的生成ネットワーク(GAN)ベースのモデルに、前記マスクを伴う前記第1の画像を適用することにより、前記第2の画像を前記1つ以上のプロセッサによって生成するステップ
を含む、請求項1に記載のコンピュータに実装された方法。
【請求項5】
前記第2の画像を生成するステップは、
前記欠陥の少なくとも前記一部を前記第1の画像から除去することにより中間画像を前記1つ以上のプロセッサによって得るステップと、
前記中間画像に前記欠陥がないことに応答して、前記1つ以上のプロセッサによって前記中間画像を前記第2の画像に決定するステップと、
前記中間画像に前記欠陥の残存部分が存在することに応答して、前記第2の画像を生成するために前記中間画像のヒートマップに基づいて前記残存部分を前記中間画像から前記1つ以上のプロセッサによって除去するステップと、
を含む、請求項1に記載のコンピュータに実装された方法。
【請求項6】
処理ユニットと、
前記処理ユニットに結合され命令を格納しているメモリと、
を含む、画像処理のためのデバイスであって、前記命令は、前記処理ユニットにより実行されると、
第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを判断するステップと、
前記第1の画像が前記欠陥を示すと判断することに応答して、前記欠陥のない第2の画像を前記第1の画像に基づいて得るステップと、
前記第1の画像と前記第2の画像とを比較することにより前記欠陥を特定するステップと、を実行し、
前記第2の画像を得るステップおいて、
前記第1の画像内の画素のヒート値を示すヒートマップを前記処理ユニットによって生成するステップと、
前記欠陥の少なくとも一部を覆うマスクを前記ヒートマップに基づいて前記処理ユニットによって生成するステップと、
前記マスクにより覆われた前記欠陥の少なくとも前記一部を前記第1の画像から除去することにより前記第2の画像を前記処理ユニットによって生成するステップと、
を実行する、デバイス。
【請求項7】
プロセッサに、
第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを判断するステップと、
前記第1の画像が前記欠陥を示すと判断することに応答して、前記欠陥のない第2の画像を前記第1の画像に基づいて得るステップと、
前記第1の画像と前記第2の画像とを比較することにより前記欠陥を特定するステップと、
前記第2の画像を得るステップおいて、
前記第1の画像内の画素のヒート値を示すヒートマップを前記1つ以上のプロセッサによって生成するステップと、
前記欠陥の少なくとも一部を覆うマスクを前記ヒートマップに基づいて前記1つ以上のプロセッサによって生成するステップと、
前記マスクにより覆われた前記欠陥の少なくとも前記一部を前記第1の画像から除去することにより前記第2の画像を前記1つ以上のプロセッサによって生成するステップと、
を実行させるためのコンピュータ・プログラム。
【請求項8】
請求項7に記載のコンピュータ・プログラムを記憶したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理に関し、特に、画像内の対象オブジェクトに関連する欠陥を特定する方法、デバイス、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
昨今、自動化された正確な欠陥セグメンテーションに対する高い需要が製造業に存在する。スマートフォン部品の組み立ての人手による検査、プリント回路基板(PCB:Printed Circuit Board)に対するコンポーネント・レベルの欠陥検査(20を超える欠陥の種類)、および液晶ディスプレイ(LCD:Liquid Crystal Display)パネルの欠陥検出(120を超える欠陥の種類)などの分野において、製造業全体にわたり、欠陥セグメンテーションのための自動外観検査技術に対する需要がますます高まっている。
【0003】
正確な欠陥セグメンテーションは、欠陥の深刻度および後の処理フロー(例として、修理、再加工、無視、廃棄など)を決定するために相当に有用である。検査担当者は、要求される作業量が大量であることが理由で、欠陥の位置を正確に判断したり、または画素単位のレベルでアノテーションを実行したりすることよりも、画像レベルで欠陥のアノテーションを実行する(例として、欠陥の種類のラベルにより各画像にアノテーションする)ことをより好む。
【発明の概要】
【0004】
本発明の一実施形態によれば、画像処理の方法が提供される。本方法において、第1の画像が対象オブジェクトに関連する欠陥を示すかどうかが判断される。第1の画像が欠陥を示すと判断することに応答して、欠陥のない第2の画像が第1の画像に基づいて得られる。第1の画像と第2の画像とを比較することにより欠陥が特定される。
【0005】
本発明の別の実施形態によれば、画像処理のためのデバイスが提供される。デバイスは、処理ユニットと、処理ユニットに結合され命令を格納しているメモリとを含む。命令は、処理ユニットにより実行されると、第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを判断することと、第1の画像が欠陥を示すと判断することに応答して、欠陥のない第2の画像を第1の画像に基づいて得ることと、第1の画像と第2の画像とを比較することにより欠陥を特定することと、を含む動作を実行する。
【0006】
本発明のさらに別の実施形態によれば、非一時的な機械可読媒体に有形に格納され、機械実行可能命令を含むコンピュータ・プログラム製品が提供される。命令は、デバイス上で実行されるとデバイスに、第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを判断することと、第1の画像が欠陥を示すと判断することに応答して、欠陥のない第2の画像を第1の画像に基づいて得ることと、第1の画像と第2の画像とを比較することにより欠陥を特定することと、を含む動作を実行させる。
【0007】
以下、次の図面を参照しながら、単なる例として本発明の好適な実施形態について記載する。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態によるクラウド・コンピューティング・ノードを示す。
図2】本発明の実施形態によるクラウド・コンピューティング環境を示す。
図3】本発明の実施形態による抽象化モデル層を示す。
図4】本発明の実施形態による画像処理の例示の方法のフローチャートを示す。
図5】本発明の実施形態による例示の欠陥セグメンテーションの概略図を示す。
図6】本発明の実施形態による別の例示の欠陥セグメンテーションの概略図を示す。
図7】本発明の実施形態によるさらに別の例示の欠陥セグメンテーションの概略図を示す。
【発明を実施するための形態】
【0009】
同じ参照符号は、概して、本開示の実施形態の中の同じコンポーネントを指す。
【0010】
本開示の実施形態が示されている添付の図面を参照しながら、いくつかの実施形態についてさらに詳細に記載する。ただし、本開示は様々な形で実装でき、そのため、本願明細書で開示される実施形態に限定されると解釈されてはならない。
【0011】
当然のことながら、本開示はクラウド・コンピューティングについての詳細な記載を含むが、本願明細書に記載する教示の実装はクラウド・コンピューティング環境に限定されない。むしろ、本発明の実施形態は、現在周知の、または後に開発される、他の任意の種類のコンピューティング環境に関連して実装することができる。
【0012】
クラウド・コンピューティングは、最小限の管理作業またはサービスのプロバイダとのやり取りで迅速にプロビジョニングおよびリリースできる構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する、オンデマンドの便利なネットワーク・アクセスを実現するサービス供給のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとを含み得る。
【0013】
特徴は以下のとおりである。
オンデマンド・セルフサービス:クラウド消費者は、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を、必要に応じて自動的に、サービスのプロバイダとの人的やり取りの必要なく、一方的にプロビジョニングできる。
広範なネットワーク・アクセス:各能力はネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えばモバイル電話、ラップトップ、およびPDA(personal digital assistant:携帯情報端末))による使用を促進する標準のメカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用して複数の消費者にサービスを提供するようプールされ、種々の物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされる。消費者は一般に、提供されるリソースの正確な場所についての制御権または知識を有しないという点で、非場所依存の感覚があるが、より高い抽象化レベルでは場所(例えば国、州、またはデータセンター)を指定できることもある。
迅速な伸縮性:各能力は、場合によっては自動的に、迅速且つ伸縮自在にプロビジョニングされて、素早くスケール・アウトすること、および迅速に解放され素早くスケール・インすることができる。多くの場合、消費者には、プロビジョニングに利用可能な各能力は無制限であるように見え、任意の量をいつでも購入できる。
測定されるサービス:クラウド・システムは、サービスの種類(例えばストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した或る抽象化レベルでの計測能力を活用することによって、リソースの使用を自動的に制御および最適化する。リソース使用量は、監視、制御、およびレポート可能であり、利用されるサービスのプロバイダおよび消費者の両方に透明性が提供される。
【0014】
サービス・モデルは以下のとおりである。
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションの使用である。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である(例えばウェブ・ベースの電子メール)。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージを含む基礎をなすクラウド・インフラストラクチャも、個々のアプリケーションの能力さえも管理または制御しないが、限られたユーザ別のアプリケーション構成設定は例外とされる場合もある。
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または入手したアプリケーションの、クラウド・インフラストラクチャ上への展開である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎をなすクラウド・インフラストラクチャの管理または制御は行わないが、展開されたアプリケーション、さらに場合によってはアプリケーション・ホスティング環境の構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):消費者に提供される能力は、処理、ストレージ、ネットワーク、およびその他基本的なコンピューティング・リソースのプロビジョニングであり、消費者はそこで、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開し実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャの管理または制御は行わないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては一部のネットワーキング・コンポーネント(例えばホスト・ファイアウォール)を限定的に制御する。
【0015】
展開モデルは以下のとおりである。
プライベート・クラウド:クラウド・インフラストラクチャは、或る組織のみのために運用される。組織またはサード・パーティによって管理可能であり、オンプレミスまたはオフプレミスに存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心事(例えばミッション、セキュリティ要件、ポリシ、およびコンプライアンス意識)を有する特定のコミュニティをサポートする。組織またはサード・パーティによって管理可能であり、オンプレミスまたはオフプレミスに存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、公衆または大規模業界団体に利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合であり、各クラウドは固有のエンティティのままであるが、データおよびアプリケーションのポータビリティ(例えばクラウド間のロード・バランシングのためのクラウド・バースト)を実現する標準またはプロプライエタリの技術によってバインドされる。
【0016】
クラウド・コンピューティング環境は、サービス指向であり、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせる。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0017】
以下、図1を参照する。クラウド・コンピューティング・ノードの例の略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例でしかなく、本願明細書に記載される本発明の実施形態の用途または機能性の範囲についていかなる制限を意味することも目的としていない。いずれにせよ、クラウド・コンピューティング・ノード10は、上記に記載された機能性のいずれかの実装もしくは実行またはその両方が可能である。
【0018】
クラウド・コンピューティング・ノード10内には、コンピュータ・システム/サーバ12または通信デバイスなどの携帯用電子デバイスがあり、これは、他の多数の汎用または専用のコンピューティング・システム環境またはコンピューティング・システム構成とともに動作可能である。コンピュータ・システム/サーバ12とともに使用するのに適していると考えられる周知のコンピューティング・システム、環境、もしくは構成、またはその組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものがあるが、これらに限定はされない。
【0019】
コンピュータ・システム/サーバ12については、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において記載することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体に位置してもよい。
【0020】
図1に示されているように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つ以上のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18とを含んでもよいが、これらに限定はされない。
【0021】
バス18は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスを含む、いくつかの種類のバス構造の任意のもの1つ以上を表現する。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnect)バスがある。
【0022】
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体としてよく、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブルの媒体の両方を含む。
【0023】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30もしくはキャッシュ・メモリ32またはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12はさらに、リムーバブル/非リムーバブル、揮発性/不揮発性の他のコンピュータ・システム・ストレージ媒体を含んでもよい。単なる例として、非リムーバブルの不揮発性磁気媒体(図示はしておらず、典型的には「ハード・ドライブ」と呼ばれる)に対する読み取りおよび書き込みのためにストレージ・システム34を提供できる。図示してはいないが、リムーバブル不揮発性磁気ディスク(例えば「フレキシブル・ディスク」)に対する読み取りおよび書き込みのための磁気ディスク・ドライブ、ならびにCD-ROM(compact disc read-only memory:コンパクト・ディスク読み取り専用メモリ)、DVD-ROM、またはその他の光媒体などのリムーバブル不揮発性光ディスクに対する読み取りもしくは書き込みのための光ディスク・ドライブを提供できる。そのような場合には、それぞれを1つ以上のデータ媒体インターフェースによってバス18に接続できる。さらに図示し、後述するように、メモリ28は、本発明の実施形態の機能を実行するよう構成されたプログラム・モジュールのセット(例えば少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0024】
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例として、オペレーティング・システム、1つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様にメモリ28に格納されてもよい。オペレーティング・システム、1つ以上のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組み合わせはそれぞれ、ネットワーキング環境の実装を含んでもよい。プログラム・モジュール42は、概して、本願明細書に記載される本発明の実施形態の機能もしくは手順またはその両方を実行する。
【0025】
コンピュータ・システム/サーバ12はさらに、キーボード、ポインティング・デバイス、ディスプレイ24などの1つ以上の外部デバイス14、ユーザがコンピュータ・システム/サーバ12とやり取りできるようにする1つ以上のデバイス、もしくはコンピュータ・システム/サーバ12が他の1つ以上のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えばネットワーク・カード、モデムなど)、またはその組み合わせと通信してもよい。そのような通信は、入出力(I/O:Input/Output)インターフェース22を介して生じることができる。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的なワイド・エリア・ネットワーク(WAN:wide area network)、もしくはパブリック・ネットワーク(例えばインターネット)、またはその組み合わせなどの1つ以上のネットワークと、ネットワーク・アダプタ20を介して通信できる。図示されているように、ネットワーク・アダプタ20は、コンピュータ・システム/サーバ12の他のコンポーネントとバス18を介して通信する。図示されてはいないが、当然のことながら、他のハードウェアもしくはソフトウェアまたはその両方のコンポーネントを、コンピュータ・システム/サーバ12とともに使用できるであろう。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどがあるが、これらに限定はされない。
【0026】
以下、図2を参照する。例示のクラウド・コンピューティング環境50が示されている。図のように、クラウド・コンピューティング環境50は、1つ以上のクラウド・コンピューティング・ノード10を含み、例として携帯情報端末(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは自動車用コンピュータ・システム54N、またはその組み合わせなどのクラウド消費者により使用されるローカル・コンピューティング・デバイスが、クラウド・コンピューティング・ノード10と通信してもよい。ノード10は、互いに通信してもよい。ノード10は、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはその組み合わせなどの1つ以上のネットワークにおいて、物理的または仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境50は、インフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはその組み合わせをサービスとして提供することができ、それらのためにクラウド消費者がローカル・コンピューティング・デバイス上にリソースを保持する必要はない。当然のことながら、図2に示されているコンピューティング・デバイス54A~54Nの種類は、説明のみを目的としており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークもしくはネットワーク・アドレス指定可能な接続(例えばウェブ・ブラウザを使用)またはその両方によって、コンピュータ制御された任意の種類のデバイスと通信できる。
【0027】
以下、図3を参照する。クラウド・コンピューティング環境50(図2)によって提供される機能抽象化層のセットが示されている。図3に示されているコンポーネント、層、および機能は、例示のみを目的としており、本発明の実施形態はそれに限定されないことをあらかじめ理解されたい。図示されているように、以下の層および対応する機能が提供される。
【0028】
ハードウェアおよびソフトウェア層60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ(Reduced Instruction Set Computer))アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66がある。一部の実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0029】
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75を例とする仮想エンティティが提供され得る、抽象化層を提供する。
【0030】
一例において、管理層80は下記の機能を提供してもよい。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的な調達を提供する。計測および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されるときのコストの追跡と、こうしたリソースの消費に対する請求またはインボイスの作成とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド消費者およびタスクのアイデンティティ検証、ならびにデータおよびその他のリソースの保護を提供する。ユーザ・ポータル83は、消費者およびシステム管理者に、クラウド・コンピューティング環境に対するアクセスを提供する。サービス・レベル管理84は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA:Service Level Agreement)計画および達成85は、SLAに従い将来の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達を提供する。
【0031】
ワークロード層90は、クラウド・コンピューティング環境が利用される目的となり得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、および画像処理96がある。
【0032】
上述のように、欠陥セグメンテーションは、弱教師付きの画像レベルのアノテーションに基づいて実行できる必要がある。従来、完全畳み込みネットワーク(FCN:Fully Convolutional Network)をセマンティック・セグメンテーションのために使用できる。しかしながら、FCNは、画素の粒度での正確なオブジェクト・ポジショニングと、訓練データの準備におけるラベル付けの大きな労力とを必要とする。
【0033】
さらに、アテンション・ベースのアプローチを画素単位での分類に使用できる。アテンション・ベースのアプローチでは、オブジェクト・セグメンテーションが画像ラベルを用いて訓練される。事前訓練された畳み込みニューラル・ネットワーク(CNN:Convolutional Neural Network)分類モデルからの可視化法(クラス・アクティベーション・ヒートマップなど)を、画像内のどの領域が或るクラスに該当するかを示すために使用できる。しかしながら、ヒートマップは、そのクラスのオブジェクトをおおよそ覆うことしかできない。さらに、画像内に同じクラスのオブジェクトが多数現れる場合でも、ヒートマップでは1つまたは少数のオブジェクトしか示されない。
【0034】
上記の問題およびその他の潜在的な問題のうちの1つ以上を少なくとも部分的に解決するために、本開示の例示の実施形態は、画像処理のためのソリューションを提案する。
【0035】
概して、本開示の実施形態によれば、対象オブジェクトの画像(「第1の画像」と呼ばれる)を得ることができる。第1の画像は、特定のパターンまたは周期性の特徴を表すことができるが、これに限定はされない。例として、第1の画像は、LCD/PCBパネルの画像とすることができる。次に、画像を正常または異常であると分類する画像分類器に第1の画像を適用できる。正常な画像は、欠陥を含まない対象オブジェクトの画像を表現することができ、異常な画像は、少なくとも1つの欠陥を含む対象オブジェクトの画像を表現することができる。例として、欠陥としては、LCDパネルのデッドピクセル、ひっかき傷、気泡、もしくは同様のもの、またはPCBパネルのはんだ付け不良、コンポーネントの欠如、もしくは同様のものが考えられる。
【0036】
分類の結果が、第1の画像が欠陥を示すことを示している場合、第1の画像内の欠陥の位置を特定するためのヒートマップを生成でき、欠陥の少なくとも一部を覆うマスクをヒートマップに基づいて生成できる。次に、マスクにより覆われた欠陥の少なくとも一部を第1の画像から除去することによって、修復された画像を生成できる。例として、マスクを伴う修復される画像を、欠陥を修復するように訓練された敵対的生成ネットワーク(GAN:Generative Adversarial Network)ベースのモデルに適用することで、修復された画像を生成できる。
【0037】
修復された画像は、画像分類器に適用することができる。分類の結果が、修復された画像が欠陥を含まない、つまり修復された画像が完全に修復された正常な画像(「第2の画像」と呼ばれる)であることを示す場合、第1の画像内の欠陥を、第1の画像と第2の画像とを比較することにより特定できる。そうでない場合、第1の画像の欠陥を特定できるように、修復された画像は、完全に修復された正常な画像が得られるまで、反復してさらなる修復プロセスに通される。当然のことながら、本発明の好適な実施形態の文脈において、画像内の欠陥を特定するとは、画像に対して欠陥セグメンテーションが実行されることを意味する。
【0038】
このようにして、対象オブジェクトに関連する欠陥を画像から自動的且つ正確にセグメンテーションできる。欠陥セグメンテーションの画像分類および修復プロセスは、画像レベルで実行されるため、欠陥セグメンテーションは、弱教師付きまたは画像レベルのアノテーション・データセットに対して使用できる。この場合、画素レベルのセグメンテーション・ラベルは訓練のために必要とされず、従来のオブジェクト検出/画像セグメンテーション・タスクにおける位置ラベル付けの大幅な省力をもたらす。さらに、本発明の欠陥セグメンテーションは広く応用可能である。固定したパターンまたはテンプレートのある画像への応用に限定されず、様々な数またはサイズの欠陥を伴う画像に応用できる。さらに、欠陥セグメンテーションの結果は、セグメンテーション・アノテーションとしても使用できる。よって、提案されるソリューションは、欠陥セグメンテーションの精度、効率、および応用性を高め、欠陥検査におけるユーザ・エクスペリエンスを改善する。
【0039】
以下、いくつかの例示の実施形態について図4図7を参照して記載する。図4は、本発明の実施形態による画像処理の例示の方法400のフローチャートを示す。方法400は、コンピュータ・システム/サーバ12またはその他適切なシステムによって少なくとも部分的に実装されてもよい。図5は、本発明の実施形態による例示の欠陥セグメンテーション500の概略図を示す。検討のために、方法400について、図5に照らして記載する。
【0040】
410にて、コンピュータ・システム/サーバ12は、第1の画像が対象オブジェクトに関連する欠陥を示すかどうかを判断する。一部の実施形態において、第1の画像は、特定のパターンまたは周期性の特徴を表すことができる。例として、第1の画像は、LCD/PCBパネルの画像とすることができる。第1の画像の例が、図5に画像510として示されている。
【0041】
一部の実施形態において、コンピュータ・システム/サーバ12は、第1の画像を得て、第1の画像を、画像を正常であるまたは異常であると分類する画像分類器に適用することができる。正常な画像は、欠陥を含まない対象オブジェクトの画像を表現することができ、異常な画像は、欠陥を含む対象オブジェクトの画像を表現することができる。画像分類器は、任意の適切な画像分類器とすることができ、例としては二項分類器モデルが挙げられるが、これに限定はされない。二項分類器モデルは、画像が正常であるか、または異常であるかを特定するように訓練されるため、弱教師付きまたは画像レベルのアノテーション・データセットで十分である。
【0042】
例として、画像分類器の訓練段階では、画像分類器を訓練するために多数の画像を適用することができる。一部の画像は正常な画像としてラベル付けでき、他の画像は欠陥を示す異常な画像としてラベル付けできる。欠陥に関する位置情報が提供される必要はない。訓練プロセス後、画像分類器は高い分類精度を達成することができる。
【0043】
分類の結果が第1の画像は異常であると示す場合、コンピュータ・システム/サーバ12は、第1の画像は欠陥を示すと判断することができる。その他の場合、第1の画像は欠陥を示さないと判断される。
【0044】
420にて、第1の画像が欠陥を示す場合、コンピュータ・システム/サーバ12は、欠陥のない第2の画像を第1の画像に基づいて得る。第2の画像の例が、図5に画像540として示されている。
【0045】
一部の実施形態では、第2の画像を生成するために、コンピュータ・システム/サーバ12は、第1の画像内の画素のヒート値を示すヒートマップを生成することができる。具体的には、ヒートマップは、第1の画像内の欠陥の位置を特定するように訓練されているクラス・アクティベーション・ヒートマップ・モデルに第1の画像を適用することにより生成できる。概して、画素のヒート値が高いほど、その画素が欠陥に関係している可能性はより高い。この事例において、ヒートマップは第1の画像内の欠陥の位置を特定することができる。ヒートマップの例が、図5の画像520に示されている。
【0046】
しかしながら、図5に示されているように、ヒートマップは第1の画像内の欠陥の位置を粗くしか特定しない。この事例において、コンピュータ・システム/サーバ12は、欠陥の少なくとも一部を覆うマスクをヒートマップに基づいて生成することができる。マスクの例が、図5の画像530に示されている。
【0047】
マスクは通常、後からの欠陥の除去のために欠陥の位置をより正確に特定できるように、正方形または長方形などの所定の形状を有することができる。これは、マスクのサイズが欠陥除去または画像修復の性能に直接影響するためである。概して、マスクは小さいほどより優れた性能をもたらすことができる。
【0048】
一部の実施形態において、コンピュータ・システム/サーバ12は、所定の閾値を上回っている、第1の画像内の画素のセットのヒート値を判断し、その画素のセットを覆うマスクを生成することができる。このようにして、最も疑わしい欠陥領域をマスクにより覆うことができる。
【0049】
次にコンピュータ・システム/サーバ12は、マスクにより覆われた欠陥の少なくとも一部を第1の画像から除去することにより、第2の画像を生成することができる。欠陥は、画像内の覆われた領域の画素を、もっともらしい画素で埋めることにより除去できる。例として、欠陥の少なくとも一部を除去するように訓練されている敵対的生成ネットワーク(GAN)ベースのモデルに、マスクを伴う第1の画像を適用することにより、第2の画像を生成できる。
【0050】
GANベースのモデルの目的は、本物のように、自然に見え、マスクされていない元の画像に似ている、マスクされた領域を生成することである。この目的を達成するために、多数の正常な画像を使用してGANベースのモデルを訓練できる。訓練は、正常な画像内の領域を無作為にマスクすることにより実行できる。GANベースのモデルの損失関数は、画素単位の再構成損失と敵対的識別器損失との合計である。視覚的に、GANベースのモデルは多くの事例に対して機能し、十分なセグメンテーション結果につながる。さらに、GANベースのモデルは、正常な画像から訓練されるため、弱教師付きと考えることも、または教師なしと考えることさえもできる。
【0051】
GANベースのモデルのほか、マスクされた領域に背景パッチをマッチングおよびコピーすること、または、例えばデータベース内の対応する正常な画像にインデックス付けし、インデックス付けされた画像の対応する領域をマスクされた領域にコピーするなどにより画像インデックスを備えたデータベースからマスクされた領域のマッチングを行うことなど、欠陥を除去する他の画像修復技術も使用できる。
【0052】
さらに、様々な欠陥の数またはサイズが処理される必要があるため、一部の実施形態では、欠陥を一度で除去できない。例として、第1の画像は、複数の欠陥がある対象オブジェクトの画像であってもよく、または大きな欠陥がある対象オブジェクトの画像であってもよい。こうした実施形態においては、欠陥のない第2の画像を得るために、第1の画像が反復して修復される必要がある。
【0053】
例として、第1の画像から生成された修復された画像に欠陥がないかどうかを判断するために、コンピュータ・システム/サーバ12は、欠陥の少なくとも一部を第1の画像から除去することにより、修復された画像(「中間画像」と呼ばれる)を得ることができる。コンピュータ・システム/サーバ12は、中間画像から欠陥が完全に除去されたことを中間画像が示すかどうかを判断することができる。除去されていれば、コンピュータ・システム/サーバ12は、中間画像を第2の画像に直接決定することができる。
【0054】
その他の場合、中間画像から欠陥が完全に除去されておらず、例として欠陥の残存部分が中間画像にまだ存在すれば、コンピュータ・システム/サーバ12は、中間画像のヒートマップに基づいて欠陥の残存部分を中間画像から除去することができる。具体的には、コンピュータ・システム/サーバ12は、中間画像内の画素のヒート値を示すヒートマップを生成し、残存する欠陥の少なくとも一部を覆うマスクを、ヒートマップに基づいて生成することができる。次にコンピュータ・システム/サーバ12は、マスクにより覆われた、残存する欠陥の少なくとも一部を除去することにより、さらなる画像を生成することができる。コンピュータ・システム/サーバ12は、欠陥が完全に除去されたことをさらなる画像が示すかどうかを再び判断することができる。このように、画像修復プロセスは、欠陥のない第2の画像が得られるまで反復して繰り返される。このような反復的な修復により、セグメンテーションの完全性を確保することができる。
【0055】
大きな欠陥がある対象オブジェクトの画像および複数の欠陥がある対象オブジェクトの画像に関するより詳細な例については、図6および図7を参照して記載する。
【0056】
欠陥のない第2の画像を得た後、430にてコンピュータ・システム/サーバ12は、第1の画像と第2の画像とを比較することにより欠陥を特定することができる。このようにして、第1の画像から欠陥をセグメンテーションできる。例として、コンピュータ・システム/サーバ12は、単純な減算または数理形態学の手法を使用して、第2の画像を用いて第1の画像からセグメンテーション結果を得ることができる。さらに、セグメンテーション結果は、さらなる処理のためのセグメンテーション・アノテーションとしても使用できる。セグメンテーション結果の例として、図5の画像550がセグメンテーションされた欠陥を示す。
【0057】
このように、二項分類器モデルと、クラス・アクティベーション・ヒートマップ・モデルと、GANベースのモデルとを組み合わせることにより、弱教師付きまたは画像レベルのアノテーション・データセットに対して欠陥セグメンテーションを実行できる。さらに、かかる欠陥セグメンテーションは広く応用可能であり、様々な数またはサイズの欠陥に対して使用できる。よって、提案されるソリューションは、欠陥セグメンテーションの精度、効率、および応用性を高め、欠陥検査におけるユーザ・エクスペリエンスを改善する。
【0058】
図6は、本発明の実施形態による、大きな欠陥を含む画像に対する例示の欠陥セグメンテーション600の概略図を示す。欠陥セグメンテーション600は、コンピュータ・システム/サーバ12またはその他適切なシステムによって少なくとも部分的に実装されてもよい。
【0059】
図6に示されているように、第1の画像610は、対象デバイスに関連する、長く延びる欠陥を含む。コンピュータ・システム/サーバ12は、第1の画像610が少なくとも或る欠陥を示していると判断する。次にコンピュータ・システム/サーバ12は、第1の画像610内の欠陥の位置を特定するヒートマップ612を生成する。ヒートマップ612では、欠陥の一部のみが強調表示されていることが分かる。この事例において、コンピュータ・システム/サーバ12は、欠陥の上部のみを覆うマスク614を生成する。次にコンピュータ・システム/サーバ12は、マスク614により覆われた欠陥の上部を除去することにより中間画像620を生成する。
【0060】
しかしながら、欠陥の残存部分は中間画像620から除去されず、中間画像620は完全には修復されていない。この場合、コンピュータ・システム/サーバ12は、中間画像620が少なくとも或る欠陥を示していると判断し、その欠陥を除去するためにもう1回反復を実行する。すなわち、コンピュータ・システム/サーバ12は、残存する欠陥の位置を特定するヒートマップ622と、残存する欠陥の上部を覆うマスク624とを生成する。次にコンピュータ・システム/サーバ12は、マスク624により覆われた、残存する欠陥の上部を除去することにより、さらなる画像を生成する。欠陥を除去するための反復は、すべての欠陥を除いた第2の画像630が得られるまで繰り返す。
【0061】
コンピュータ・システム/サーバ12は、第1の画像610と第2の画像630とを比較することにより欠陥を特定またはセグメンテーションする。欠陥セグメンテーションの結果が、セグメンテーションされた長く延びる欠陥を示す画像640に示されている。このように、欠陥のある画像を修復し、元の画像と修復された画像とを比較することにより、画像内のサイズまたは長さの大きな欠陥を正確にセグメンテーションすることができる。
【0062】
図7は、本発明の実施形態による、複数の欠陥を含む画像に対する例示の欠陥セグメンテーション700の概略図を示す。欠陥セグメンテーション700は、コンピュータ・システム/サーバ12またはその他適切なシステムによって少なくとも部分的に実装されてもよい。
【0063】
図7に示されているように、第1の画像710は、対象デバイスに関連する2つの欠陥を含む。コンピュータ・システム/サーバ12は、第1の画像710が少なくとも或る欠陥を示していると判断する。次にコンピュータ・システム/サーバ12は、第1の画像710内の欠陥の位置を特定するヒートマップ712を生成する。ヒートマップ712はどちらの欠陥の位置も特定しているが、ヒートマップ712では下方の欠陥が強調表示されている。この事例において、コンピュータ・システム/サーバ12は、下方の欠陥のみを覆うマスク714を生成する。次にコンピュータ・システム/サーバ12は、マスク714により覆われた下方の欠陥を除去することにより中間画像720を生成する。
【0064】
しかしながら、上方の欠陥は中間画像720から除去されず、中間画像720は完全には修復されていない。この場合、コンピュータ・システム/サーバ12は、中間画像720が少なくとも或る欠陥を示していると判断し、その欠陥を除去するためにもう1回反復を実行する。すなわち、コンピュータ・システム/サーバ12は、上方の欠陥の位置を特定するヒートマップ722と、上方の欠陥を覆うマスク724とを生成する。次にコンピュータ・システム/サーバ12は、マスク724により覆われた上方の欠陥を除去することにより第2の画像730を生成する。
【0065】
最後に、コンピュータ・システム/サーバ12は、第2の画像730はいかなる欠陥も含まないと判断し、第1の画像710と第2の画像730とを比較することにより欠陥を特定またはセグメンテーションする。欠陥セグメンテーションの結果が、セグメンテーションされた2つの欠陥を示す画像740に示されている。このようにして、画像内の複数の欠陥を正確にセグメンテーションできる。
【0066】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせを任意の可能な技術詳細レベルで統合したものとすることができる。コンピュータ・プログラム製品は、本発明の各側面をプロセッサに実行させるコンピュータ可読プログラム命令を有する、1つまたは複数のコンピュータ可読ストレージ媒体を含んでもよい。
【0067】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保有および格納することができる有形のデバイスとすることができる。コンピュータ可読ストレージ媒体は、例として、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または前述のものの任意の適切な組み合わせとされ得るが、これらに限定はされない。コンピュータ可読ストレージ媒体のより具体的な例の網羅的でないリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM(erasable programmable read-only memory)またはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチ・カードまたは命令が記録された溝の中の隆起構造などの機械的にエンコードされたデバイス、および前述のものの任意の適切な組み合わせを含む。本願明細書で使用されるとき、コンピュータ可読ストレージ媒体は、電波もしくはその他自由に伝搬する電磁波、導波路もしくはその他伝送媒体を伝搬する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを介して伝送される電気信号など、本質的に一時的信号であるとは解釈されないものとする。
【0068】
本願明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング/処理デバイスに、または例としてインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータもしくは外部ストレージ・デバイスに、ダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を個々のコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体での格納のために転送する。
【0069】
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されても、部分的にユーザのコンピュータ上で実行されても、スタンドアロン・ソフトウェア・パッケージとして実行されても、部分的にユーザのコンピュータ上で且つ部分的にリモート・コンピュータ上で実行されても、または完全にリモート・コンピュータもしくはサーバ上で実行されてもよい。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または(例としてインターネット・サービス・プロバイダを使用しインターネットを介して)外部コンピュータに接続されてもよい。一部の実施形態において、本発明の各側面を実行するために、例としてプログラマブル論理回路構成、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル論理アレイ(PLA:programmable logic array)を含む電子回路構成が、電子回路構成をパーソナライズするためコンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行してもよい。
【0070】
本発明の各側面は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本願明細書に記載される。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ可読プログラム命令により実装可能である。
【0071】
マシンをもたらすよう、こうしたコンピュータ可読プログラム命令が、コンピュータのプロセッサ、またはその他プログラマブル・データ処理装置に提供されて、この命令が、コンピュータまたはその他プログラマブル・データ処理装置のプロセッサにより実行されて、フローチャートもしくはブロック図またはその両方の1つもしくは複数のブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。特定の形で機能するようコンピュータ、プログラマブル・データ処理装置、もしくはその他デバイス、またはその組み合わせに指示することができる当該コンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体に格納されて、命令を格納されたコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方の1つもしくは複数のブロックにおいて指定された機能/動作の各側面を実装する命令を含む製品を含むようにすることもできる。
【0072】
さらに、コンピュータ可読プログラム命令は、コンピュータ、その他プログラマブル・データ処理装置、またはその他デバイスにロードされて、コンピュータ、その他プログラマブル装置、またはその他デバイス上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスをもたらし、コンピュータ、その他プログラマブル装置、またはその他デバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方の1つもしくは複数のブロックにおいて指定された機能/動作を実装するようにすることもできる。
【0073】
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性、および動作を示す。この関連で、フローチャートまたはブロック図の中の各ブロックは、指定の論理機能(単数または複数)を実装する1つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表現し得る。一部の代わりの実装では、ブロックの中に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例として、関連する機能性次第で、連続して示されている2つのブロックが実際には、1つのステップとして実現されてもよく、同時に、事実上同時に、部分的もしくは全体的に時間的に重なる形で実行されてもよく、または各ブロックが逆順で実行されることがあってもよい。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する、または専用のハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェア・ベースのシステムにより実装できるということに留意されたい。
【0074】
本発明の様々な実施形態の記載は、説明のために示されたものであるが、包括的であることも、開示された実施形態に限定されることも目的としていない。当業者には、記載された実施形態の範囲および意図から逸脱することのない多数の変更および変形が明らかとなるであろう。本願明細書で使用された用語は、実施形態の原理、実際の応用、もしくは市場にある技術に比べた技術的改善を最もよく説明するよう、または当業者が本願明細書に開示された実施形態を理解できるよう選ばれた。
図1
図2
図3
図4
図5
図6
図7