(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-05
(54)【発明の名称】自動欠陥分類検査装置を訓練する方法及びシステム
(51)【国際特許分類】
G06T 7/00 20170101AFI20230628BHJP
G01N 21/88 20060101ALI20230628BHJP
G01N 21/956 20060101ALN20230628BHJP
【FI】
G06T7/00 350C
G01N21/88 J
G06T7/00 610B
G01N21/956 B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023515224
(86)(22)【出願日】2021-05-17
(85)【翻訳文提出日】2023-01-18
(86)【国際出願番号】 CA2021050672
(87)【国際公開番号】W WO2021232149
(87)【国際公開日】2021-11-25
(32)【優先日】2020-05-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】323002749
【氏名又は名称】ニデック アドバンステクノロジー カナダ コーポレーション
(71)【出願人】
【識別番号】392019709
【氏名又は名称】ニデックアドバンステクノロジー株式会社
(74)【代理人】
【識別番号】100138689
【氏名又は名称】梶原 慶
(72)【発明者】
【氏名】ダルヴィッシュ ザデス ヴァルシェー パリサ
(72)【発明者】
【氏名】マセ ルイ・フィリップ
【テーマコード(参考)】
2G051
5L096
【Fターム(参考)】
2G051AA51
2G051AA61
2G051AA65
2G051AB01
2G051AB02
2G051EB05
2G051EC01
5L096BA03
5L096DA02
5L096EA39
5L096GA34
5L096HA09
5L096HA11
5L096KA04
5L096KA15
(57)【要約】
半導体部品及び/又はプリント基板(PCB)部品を検査するために、機械学習を用いて欠陥分類モデルを自動的に生成するためのコンピュータ実施方法、検査システム及び非一時的記憶媒体が提供される。欠陥分類モデルは、学習済みのニューラルネットワークバイナリ分類器とオプティマイザとの第1の組合せと、学習済みのニューラルネットワーク多クラス分類器とオプティマイザとの第2の組合せとから自動的に構築される。
【特許請求の範囲】
【請求項1】
半導体部品及び/又はプリント基板(PCB)部品を検査するために、自動検査装置で使用することを目的とした、機械学習を用いて欠陥分類モデルを自動的に生成するコンピュータ実施方法であって、前記方法は、
前記検査装置によって撮像された部品の検査画像を取得するステップであって、前記検査画像には、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、前記検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられている、ステップと、
前記検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、前記検査画像の第1のサブセットを使用してバイナリ分類器を訓練するステップであって、前記バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用しており、前記バイナリ分類器は、前記バイナリ分類器のノードと関連付けられた重みを反復的に更新することによって訓練されている、ステップと、
前記バイナリ分類器によって欠陥品に該当すると従前に判定された前記検査画像内の欠陥タイプを特定するように、欠陥品に該当する前記検査画像の第2のサブセットを使用して多クラス分類器を訓練するステップであって、前記多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用しており、前記多クラス分類器は、前記多クラス分類器のノードと関連付けられた重みを反復的に更新することによって訓練されている、ステップと、
前記学習済みのバイナリ分類器と前記多クラス分類器とから、前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第1の組合せ及び前記第2の組合せのパラメータ、並びに各前記ニューラルネットワークアーキテクチャのノードの更新済みの重みを含む構成ファイルによって定義される、欠陥分類モデルを構築するステップであって、その結果、前記自動欠陥分類モデルは、欠陥品を検出し、検査対象の前記部品の欠陥タイプを特定する前記自動検査装置によって使用可能となる、ステップと、を含む、
コンピュータ実施方法。
【請求項2】
前記バイナリ分類器を訓練する前記ステップが、前記検査画像の探索サブセット上で、ニューラルネットワークアーキテクチャとオプティマイザとの異なる組合せを自動的に探索する初期ステップをさらに含み、前記バイナリ分類器を対象に選択された前記第1の組合せが、所与のエポック数において欠陥品から良品を識別する際に、最高精度を実現する前記組合せに該当する、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記多クラス分類器を訓練する前記ステップが、前記検査画像の第2のサブセットにおける別の探索サブセット上で、前記ニューラルネットワークとオプティマイザとの異なる組合せを自動的に探索する初期ステップをさらに含み、前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第2の組合せが、所与のエポック数において前記異なる欠陥タイプを特定する際に、最高精度を実現する前記組合せに該当する、請求項1又は2に記載のコンピュータ実施方法。
【請求項4】
前記バイナリ分類器を訓練する前記ステップが、異なる損失関数と異なる学習率スケジューラとを自動的に探索するステップをさらに含み、前記第1の組合せが、前記所与のエポック数において欠陥品から良品を見極める際に、前記ニューラルネットワークアーキテクチャ及びオプティマイザと共に最高精度を実現する損失関数と学習率スケジューラとを自動的に選択することによってさらに定義され、前記欠陥分類モデルの前記構成ファイルが、前記バイナリ分類器において前記選択された損失関数及び学習率スケジューラからのパラメータをさらに含む、請求項3に記載のコンピュータ実施方法。
【請求項5】
前記多クラス分類器を訓練する前記ステップが、前記異なる損失関数と前記異なる学習率スケジューラとを自動的に探索するステップをさらに含み、前記第2の組合せが、前記所与のエポック数において前記欠陥タイプを特定する際に、前記ニューラルネットワークアーキテクチャ及び前記オプティマイザと共に最高精度を実現する損失関数と学習率スケジューラとを自動的に選択することによってさらに定義され、前記欠陥分類モデルの前記構成ファイルが、前記多クラス分類器において前記選択された損失関数及び学習率スケジューラからのパラメータをさらに含む、請求項4に記載のコンピュータ実施方法。
【請求項6】
前記選択されたニューラルネットワークアーキテクチャ、オプティマイザ、損失関数、及び学習率スケジューラの前記更新済みの重みと前記パラメータとが、前記自動検査装置によってロード可能な前記構成ファイルにパッケージ化されている、請求項4又は5に記載のコンピュータ実施方法。
【請求項7】
前記異なるニューラルネットワークアーキテクチャが、ResNet34、NesNet50、ResNet101、ResNet152、WideResNet50、WideResNet101、IncptionV3、又はInceptionResNetのうちの少なくとも1つを含む、請求項1から6のいずれか一項に記載のコンピュータ実施方法。
【請求項8】
前記異なるオプティマイザが、Adamオプティマイザ又はSGDオプティマイザのうちの少なくとも一方を含む、請求項1から7のいずれか一項に記載のコンピュータ実施方法。
【請求項9】
前記異なる損失関数が、交差エントロピー損失関数又は負の対数尤度損失関数のうちの少なくとも一方を含む、請求項1から8のいずれか一項に記載のコンピュータ実施方法。
【請求項10】
前記異なる率学習スケジューラが、減衰学習率スケジューラ又は循環学習率スケジューラのうちの少なくとも一方を含む、請求項1から9のいずれか一項に記載のコンピュータ実施方法。
【請求項11】
前記部品が、半導体パッケージ、ウェハ、片面PCB、両面PCB、多層PCB、又は基板のうちの少なくとも1つを含む、請求項1から10のいずれか一項に記載のコンピュータ実施方法。
【請求項12】
前記多クラス分類器が、めっきの潜り込み、異物混入、未完成品、亀裂、汚れ、異常回路、レジスト残渣、変形、スクラッチ、クラスタ、又は金属膜の残渣のうちの少なくとも1つを含む欠陥タイプを検出するように訓練されている、請求項1から11のいずれか一項に記載のコンピュータ実施方法。
【請求項13】
前記検査画像を取得する前記ステップが、グラフィカル・ユーザ・インターフェースを介して、前記検査画像が格納される1つ又は複数の画像フォルダを選択したものを取り込むステップを含む、請求項1から12のいずれか一項に記載のコンピュータ実施方法。
【請求項14】
前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップが、グラフィカル・ユーザ・インターフェースを介して入力が行われたことに応答して開始される、請求項13に記載のコンピュータ実施方法。
【請求項15】
前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップが、前記グラフィカル・ユーザ・インターフェースを介して入力が取り込まれて、前記訓練を一時停止したり、終了したり、又は再開したりするように制御されている、請求項14に記載のコンピュータ実施方法。
【請求項16】
前記検査画像の総数が前記バイナリ分類器を訓練する前記ステップを開始するのに十分であるかどうかを検証し、前記総数が十分である場合、各前記欠陥タイプと関連付けられた前記検査画像の数が、前記多クラス分類器を訓練する前記ステップを開始するのに十分であるかどうかを検証するステップを含み、その結果、前記多クラス分類器を訓練する前記ステップが、前記検査画像の数が十分にある欠陥タイプに対してのみ開始される、請求項1から15のいずれか一項に記載のコンピュータ実施方法。
【請求項17】
所与の欠陥タイプと関連付けられた前記検査画像の数が不十分である場合に、データ拡張アルゴリズムを使用して、前記所与の欠陥タイプの前記検査画像の数を増加させるステップを含む、請求項16に記載のコンピュータ実施方法。
【請求項18】
前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップの前に、前記第1のサブセット及び前記第2のサブセットの各々において、前記検査画像を少なくとも学習用データセットと検証用データセットとへと自動的に分割するステップを含み、訓練中に前記学習用データセットを使用して、前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第1の組合せ及び前記第2の組合せの初期パラメータを設定し、前記検証用データセットを使用して、前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップ中に前記ノードの重みを調整する、請求項1から17のいずれか一項に記載のコンピュータ実施方法。
【請求項19】
前記バイナリ分類器及び前記多クラス分類器がひとたび訓練されると、前記検査画像をテスト用データセットへと自動的に分割して、前記第1の組合せ及び前記第2の組合せの前記パラメータと前記調整済みの重みとを確認するステップをさらに含む、請求項18に記載のコンピュータ実施方法。
【請求項20】
各学習イテレーションにおいて前記バイナリ分類器及び前記多クラス分類器を訓練するために使用される前記検査画像の数が、前記訓練するステップを実行するプロセッサの利用可能な物理リソースの関数として動的に適合される、請求項1から19のいずれか一項に記載のコンピュータ実施方法。
【請求項21】
前記プロセッサによって処理できる許容可能なバッチサイズとなるまで、前記バイナリ分類器及び前記多クラス分類器を各前記イテレーションで通過する前記検査画像の数が、テスト対象の所定のバッチサイズでバンドルされる、請求項1から20のいずれか一項に記載のコンピュータ実施方法。
【請求項22】
前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップが、前記検査画像を後続のバッチの前記分類器に供給することによって実行され、各バッチの前記検査画像の数が、処理リソースの利用可能性の関数として動的に調整される、請求項21に記載のコンピュータ実施方法。
【請求項23】
前記検査画像を取得する前記ステップが、画像サーバをスキャンして、ユーザが選択できるように機械識別子、顧客識別子、レシピ識別子、及びロット識別子又はデバイス識別子を含むフォルダアーキテクチャの表現をグラフィカル・ユーザ・インターフェース上に表示するステップを含む、請求項1から22のいずれか一項に記載のコンピュータ実施方法。
【請求項24】
前記検査画像を学習用サーバにコピーする前に、前記検査画像が前記学習用サーバ上に既に格納されているかどうかを検証するステップを含む、請求項1から23のいずれか一項に記載のコンピュータ実施方法。
【請求項25】
半導体部品及び/又はプリント基板(PCB)部品を検査するために、機械学習を用いて自動欠陥分類モデルを生成する自動検査システムであって、前記システムは、
1つ又は複数のプロセッサ及びデータ記憶装置を含む1つ又は複数の専用サーバであって、前記データ記憶装置は前記専用サーバ上に格納されている、専用サーバと、
前記半導体部品及び/又はプリント基板(PCB)部品の検査画像を取得する取得モジュールであって、前記検査画像には、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、さらには、前記検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられている、取得モジュールと、
自身のノードの重みを反復的に更新することによって、前記検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、前記検査画像の第1のサブセットを使用して訓練できるバイナリ分類器であって、前記バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用している、バイナリ分類器と、
自身のノードの重みを反復的に更新することによって、前記バイナリ分類器によって欠陥品に該当すると従前に判定された前記検査画像内の前記欠陥タイプを特定するように、欠陥品に該当する前記検査画像の第2のサブセットを使用して訓練できる多クラス分類器であって、前記多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用している、多クラス分類器と
を含む学習用アプリケーションであって、
前記学習用アプリケーションは、前記学習済みのバイナリ分類器と、前記学習済みの多クラス分類器とから、前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第1の組合せ及び前記第2の組合せのパラメータ、並びに各前記ニューラルネットワークアーキテクチャのノードの前記更新済みの重みを含む構成ファイルによって定義された、欠陥分類モデルを生成するアルゴリズムを含み、前記自動欠陥分類モデルは、検査対象の部品が追加された場合に、前記欠陥を検出する前記自動検査システムによって使用可能となる、学習用アプリケーションと、を備える、
自動検査システム。
【請求項26】
前記データ記憶装置が、探索モジュール、異なるニューラルネットワークアーキテクチャの第1のセット、及びオプティマイザの第2のセットをさらに格納しており、前記探索モジュールが、前記バイナリ分類器を訓練するための前記検査画像の探索サブセット上で、ニューラルネットワークアーキテクチャとオプティマイザとの異なる組合せを探索するように構成されており、前記探索モジュールが、所与のエポック数において欠陥品から良品を見極める際に、最高精度を実現する前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第1の組合せを、前記バイナリ分類器を対象に選択するようにさらに構成されている、請求項25に記載の自動検査システム。
【請求項27】
前記探索モジュールが、前記多クラス分類器を訓練するための前記検査画像の前記探索サブセット上で、ニューラルとオプティマイザとの異なる組合せを探索するようにさらに構成されており、前記探索モジュールが、所与のエポック数において欠陥タイプを特定する際に、最高精度を実現する前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第2の組合せを、前記多クラス分類器を対象に選択するようにさらに構成されている、請求項26に記載の自動検査システム。
【請求項28】
前記検査画像が格納されている1つ又は複数の画像フォルダをユーザが選択できるようにし、かつ自身を介して入力が行われたことに応答して、前記自動欠陥分類モデルの生成を開始できるようにする、グラフィカル・ユーザ・インターフェースを備える、請求項25から27のいずれか一項に記載の自動検査システム。
【請求項29】
前記検査装置によって撮像された部品の前記検査画像を格納し、かつ所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、前記検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報を格納するデータベースを備える、請求項25から28のいずれか一項に記載の自動検査システム。
【請求項30】
前記1つ又は複数の専用サーバの前記データ記憶装置が、前記検査画像の総数が前記バイナリ分類器及び前記多クラス分類器を訓練する前記ステップを開始するのに十分であるかどうかを検証し、次いでデータ拡張アルゴリズムを使用するなどして、前記画像を前記データベースにコピーし、かつ前記画像を処理する前処理モジュールをさらに格納している、請求項25から29のいずれか一項に記載の自動検査システム。
【請求項31】
プロセッサに対し、
前記検査装置によって撮像された部品の検査画像を取得させ、前記検査画像には、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、さらには、前記検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられており、
前記検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、前記検査画像の第1のサブセットを使用してバイナリ分類器を訓練させ、前記バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用しており、
前記バイナリ分類器によって欠陥品に該当すると従前に判定された前記検査画像内の前記欠陥タイプを特定するように、前記欠陥品に該当する前記検査画像の第2のサブセットを使用して多クラス分類器を訓練させ、前記多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用しており、かつ
前記学習済みのバイナリ分類器と前記多クラス分類器とから、前記ニューラルネットワークアーキテクチャとオプティマイザとの前記第1の組合せ及び前記第2の組合せの構成設定を含む欠陥分類モデルを生成させ、前記自動欠陥分類モデルは、検査対象の部品が追加された場合に、前記欠陥を検出する前記自動検査システムによって使用可能となる、
コンピュータ可読命令を自身に格納している、非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本技術分野は、概して、自動欠陥検査を行う検査装置及び方法に関し、より詳細には、検査対象の製品の欠陥を自動的に分類する方法及びシステムに関する。以下に提示している方法及びシステムは、とりわけ半導体製品の検査に適合している。
【背景技術】
【0002】
製造プロセスは、一般に、プロセス中の個々のマイルストーンで、典型的には少なくとも製造プロセスの最後に、製造された部品を自動で検査することを含む。検査は、製造された部品を光学的に分析して、欠陥品を検出する検査装置を用いて行われてもよい。カメラをレーザ三角測量及び/又はレーザ干渉測定と組み合わせたものなど、様々な技術が使用され得る。自動検査装置は、製造された部品が期待される品質基準を確実に満たし、また検出された欠陥のタイプに応じて、製造ツール、製造装置及び/又は製造部品に必要とされ得る調整に関する有用な情報を提供する。
【0003】
半導体産業では、対象顧客が同一であっても異なっていても、異なるタイプの部品に対して、同一の製造ラインを有することが一般的である。そのため、検査装置では、欠陥品から良品を見極めたり、検出された欠陥品に含まれる欠陥のタイプを見分けたりする必要がある。欠陥を分類することは労力を要する場合が多いため、欠陥を適切に検出するように装置を調整かつ構成することができるように、検査装置や製造プロセスの専門家の関与を必要とする。既存のタイプの欠陥を調整したり、新たなタイプの欠陥を検出したりする検査装置を構成するには、ほとんどの場合、装置をオフラインにする必要がある。半導体産業における周知の欠陥検出方法は、撮像された画像と「マスク」又は「最適な部品レイアウト」とを比較することを含むが、この方法では、多くの未検出の欠陥を見逃してしまう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
製品を自動的に検査するときに欠陥を分類するプロセスを改良又は容易にする助けとなり得る、検査装置及び方法が必要とされている。
【課題を解決するための手段】
【0005】
一態様によれば、製造された部品を検査するために、自動検査装置で使用することを目的とした、機械学習を用いて欠陥分類モデルを自動的に生成するコンピュータ実施方法が提供される。本方法は、検査装置によって撮像された部品の検査画像を取得するステップを含む。検査画像には、半導体部品及び/又はプリント基板(PCB)部品などの欠陥品に該当する検査画像について、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、当該検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられている。
【0006】
本方法は、検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、検査画像の第1のサブセットを使用してバイナリ分類器を訓練するステップをさらに含む。バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用している。バイナリ分類器は、第1の組合せで使用されるニューラルネットワークアーキテクチャの異なる層のノードの重みを反復的に更新することによって訓練されている。
【0007】
本方法は、バイナリ分類器によって欠陥品に該当すると従前に判定された検査画像内の欠陥タイプを特定するように、欠陥品に該当する検査画像の第2のサブセットを使用して多クラス分類器を訓練するステップをさらに含む。多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用している。多クラス分類器は、第2の組合せにおけるニューラルアーキテクチャの異なる層のノードの重みを反復的に更新することによって訓練されている。
【0008】
バイナリ分類器と多クラス分類器とがひとたび訓練されると、欠陥分類モデルが構築又は生成され、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せと、それらのパラメータとを構成ファイルが定義する。構成ファイルは、バイナリ分類器及び多クラス分類器からのニューラルネットワークアーキテクチャそれぞれのノードの、最終更新済みの重みをさらに含む。その結果、自動欠陥分類モデルは、欠陥品を検出し、検査対象の製造部品の欠陥タイプを特定する自動検査装置によって使用可能となる。
【0009】
本方法の有効な一実施態様では、バイナリ分類器を訓練するステップは、検査画像の探索サブセット上で、ニューラルネットワークアーキテクチャとオプティマイザとの異なる組合せを自動的に探索する初期ステップをさらに含む。バイナリ分類器を対象に選択された第1の組合せは、探索するステップ中に、所与のエポック数において欠陥品から良品を識別する際に、最高精度を実現する組合せに該当する。
【0010】
本方法の有効な一実施態様では、多クラス分類器を訓練するステップは、検査画像の別の探索サブセットを使用して、ニューラルネットワークアーキテクチャとオプティマイザとの異なる組合せを自動的に探索する初期ステップをさらに含む。多クラス分類器を対象に選択されたニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せは、探索するステップ中に、所与のエポック数において異なる欠陥タイプを特定する際に、最高精度を実現する組合せに該当する。
【0011】
本方法の有効な一実施態様では、バイナリ分類器を訓練するステップは、異なる損失関数と異なる学習率スケジューラとを自動的に探索するステップをさらに含む。第1の組合せは、探索段階中に、所与のエポック数において欠陥品から良品を見極める際に、ニューラルネットワークアーキテクチャ及びオプティマイザと共に最高精度を実現する損失関数と学習率スケジューラとによって、さらに定義される。損失関数及び学習率の選択は、自動的に行われる。欠陥分類モデルの構成ファイルは、バイナリ分類器を対象に選択された損失関数及び学習率スケジューラからのパラメータをさらに含む。
【0012】
本方法の有効な一実施態様では、多クラス分類器を訓練するステップは、異なる損失関数と異なる学習率スケジューラとを自動的に探索するステップをさらに含む。第2の組合せは、探索段階中に、所与のエポック数において欠陥タイプを特定する際に、ニューラルネットワークアーキテクチャ及びオプティマイザと共に最高精度を実現する損失関数と学習率スケジューラとによってさらに定義される。欠陥分類モデルの構成ファイルは、多クラス分類器において選択された損失関数及び学習率スケジューラからのパラメータをさらに含む。
【0013】
本方法の有効な一実施態様では、選択されたニューラルネットワークアーキテクチャ、オプティマイザ、損失関数、及び学習率スケジューラの更新済みの重みとパラメータとは、自動検査装置によってロード可能な構成ファイルにパッケージ化されている。
【0014】
本方法の有効な一実施態様では、異なるニューラルネットワークアーキテクチャは、以下のニューラルネットワークアーキテクチャ、即ち、ResNet34、NesNet50、ResNet101、ResNet152、WideResNet50、WideResNet101、IncptionV3、又はInceptionResNetのうちの少なくとも1つを含む。
【0015】
本方法の有効な一実施態様では、異なるオプティマイザは、Adamオプティマイザ又はSGDオプティマイザのうちの少なくとも一方を含む。
【0016】
本方法の有効な一実施態様では、異なる損失関数は、交差エントロピー損失関数又は負の対数尤度損失関数のうちの少なくとも一方を含む。
【0017】
本方法の有効な一実施態様では、異なる率学習スケジューラは、減衰学習率スケジューラ又は循環学習率スケジューラのうちの少なくとも一方を含む。
【0018】
本方法の有効な一実施態様では、自動検査装置は、以下の製品のうちの少なくとも1つ、即ち半導体パッケージ、ウェハ、片面PCB、両面PCB、多層PCB、又は基板のうちの少なくとも1つにおける異なる欠陥タイプを検出するように訓練されている。
【0019】
本方法の有効な一実施態様では、欠陥タイプは、めっきの潜り込み、異物混入、未完成品、亀裂、汚れ、異常回路、レジスト残渣、変形、スクラッチ、クラスタ、又は金属膜の残渣のうちの1つ又は複数を含む。
【0020】
本方法の有効な一実施態様では、検査画像を取得するステップは、グラフィカル・ユーザ・インターフェースを介して、検査画像が格納される1つ又は複数の画像フォルダを選択したものを取り込むステップを含む。
【0021】
本方法の有効な一実施態様では、バイナリ分類器及び多クラス分類器を訓練するステップは、グラフィカル・ユーザ・インターフェースを介して入力が行われたことに応答して開始される。
【0022】
本方法の有効な一実施態様では、バイナリ分類器及び多クラス分類器を訓練するステップは、グラフィカル・ユーザ・インターフェースを介して入力が取り込まれて、当該訓練を一時停止したり、終了したり、又は再開したりするように制御されている。
【0023】
有効な一実施態様では、本方法は、検査画像の総数がバイナリ分類器を訓練するステップを開始するのに十分であるかどうかを検証し、総数が十分である場合、各欠陥タイプと関連付けられた検査画像の数が、多クラス分類器を訓練するステップを開始するのに十分であるかどうかを検証するステップを含み、その結果、多クラス分類器を訓練するステップが、欠陥タイプごとの検査画像の数が十分にある欠陥タイプに対してのみ開始される。
【0024】
有効な一実施態様では、本方法は、所与の欠陥タイプと関連付けられた検査画像の数が不十分である場合に、データ拡張アルゴリズムを使用して、所与の欠陥タイプの検査画像の数を増加させるステップを含む。
【0025】
有効な一実施態様では、本方法は、バイナリ分類器及び多クラス分類器を訓練するステップの前に、第1のサブセット及び第2のサブセットの各々において、検査画像を少なくとも学習用データセットと検証用データセットとへと自動的に分割するステップを含む。訓練中、学習用データセットを使用して、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せの初期パラメータを設定する。検証用データセットを使用して、バイナリ分類器及び多クラス分類器を訓練するステップ中にノードの重みを検証し、さらに調整する。
【0026】
有効な一実施態様では、本方法は、バイナリ分類器及び多クラス分類器がひとたび訓練されると、検査画像をテスト用データセットへと自動的に分割して、第1の組合せ及び第2の組合せのパラメータと重みとを確認するステップを含む。
【0027】
本方法の有効な一実施態様では、各学習イテレーションにおいてバイナリ分類器及び多クラス分類器を訓練するために使用される検査画像の数は、訓練するステップを実行するプロセッサの利用可能な物理リソースの関数として動的に適合される。
【0028】
本方法の有効な一実施態様では、プロセッサによって処理できる許容可能なバッチサイズとなるまで、バイナリ分類器及び多クラス分類器を各イテレーションで通過する検査画像の数が、テスト対象の所定のバッチサイズでバンドルされる。
【0029】
本方法の有効な一実施態様では、バイナリ分類器及び多クラス分類器を訓練するステップは、検査画像を後続のバッチの分類器に供給することによって実行され、各バッチの検査画像の数は、処理リソースの利用可能性の関数として動的に調整される。
【0030】
本方法の有効な一実施態様では、検査画像を取得するステップは、画像サーバをスキャンして、ユーザが選択できるように機械識別子、顧客識別子、レシピ識別子、及びロット識別子又はデバイス識別子を含むフォルダ構造の表現をグラフィカル・ユーザ・インターフェース上に表示するステップを含む。
【0031】
有効な一実施態様では、本方法は、検査画像を学習用サーバにコピーする前に、検査画像が学習用サーバ上に既に格納されているかどうかを検証するステップを含む。
【0032】
別の態様によれば、機械学習を介して、欠陥分類モデルを自動的に生成する自動検査システムが提供され、各モデルは、特定の部品タイプの検査に適合されている。これらの異なる欠陥分類モデルを使用して、半導体部品及び/又はプリント基板(PCB)部品などの異なるタイプの製造部品を検査することができる。本システムは、1つ又は複数のプロセッサ及びデータ記憶装置を含む1つ又は複数の専用サーバを備え、データ記憶装置は当該専用サーバ上に格納されている。本システムは、検査装置によって撮像された部品の検査画像を取得する取得モジュールをさらに備え、検査画像には、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、当該検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられている。
【0033】
本システムは、バイナリ分類器を対象に使用されるニューラルネットワークアーキテクチャのノードの重みを反復的に更新することによって、検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、検査画像の第1のサブセットを使用して訓練できるバイナリ分類器を含む、学習用アプリケーションをさらに備える。バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用している。学習用アプリケーションは、バイナリ分類器によって欠陥品に該当すると従前に判定された検査画像内の欠陥タイプを特定するように、欠陥品に該当する検査画像の第2のサブセットを使用して訓練できる、多クラス分類器をさらに含む。多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用している。多クラス分類器は、多クラス分類器を対象に使用されるニューラルネットワークアーキテクチャのノードの重みを反復的に更新することによって訓練されている。
【0034】
学習用アプリケーションは、学習済みのバイナリ分類器と、学習済みの多クラス分類器とから、構成ファイルによって定義された欠陥分類モデルを生成するアルゴリズムを含む。構成ファイルは、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せのパラメータ、並びに各ニューラルネットワークアーキテクチャのノードの更新済みの重みを含む。その結果、自動欠陥分類モデルは、検査対象の部品が追加された場合に、その欠陥を検出する自動検査装置によって使用可能となる。
【0035】
本システムの有効な一実施態様では、データ記憶装置は、探索モジュール、異なるニューラルネットワークアーキテクチャの第1のセット、及びオプティマイザの第2のセットをさらに格納している。探索モジュールは、バイナリ分類器を訓練するための検査画像の探索サブセット上で、ニューラルネットワークアーキテクチャとオプティマイザとの異なる組合せを探索するように構成されている。探索モジュールは、所与のエポック数において欠陥品から良品を見極める際に、最高精度を実現するニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを、バイナリ分類器を対象に自動的に選択するようにさらに構成されている。
【0036】
本システムの有効な一実施態様では、探索モジュールは、多クラス分類器を訓練するための検査画像の探索サブセット上で、ニューラルとオプティマイザとの異なる組合せを探索するようにさらに構成されている。探索モジュールは、所与のエポック数において欠陥タイプを特定する際に、最高精度を実現するニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを、多クラス分類器を対象に自動的に選択するようにさらに構成されている。
【0037】
有効な一実施態様では、本システムは、検査画像が格納されている1つ又は複数の画像フォルダをユーザが選択できるようにし、かつ自身を介して入力が行われたことに応答して、自動欠陥分類モデルの生成を開始できるようにする、グラフィカル・ユーザ・インターフェースを備える。
【0038】
有効な一実施態様では、本システムは、検査装置によって撮像された部品の検査画像を格納し、かつ所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、当該検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報を格納するデータベースを備える。
【0039】
本システムの有効な一実施態様では、1つ又は複数の専用サーバのデータ記憶装置は、検査画像の総数がバイナリ分類器及び多クラス分類器を訓練するステップを開始するのに十分であるかどうかを検証し、次いでデータ拡張アルゴリズムを使用するなどして、画像をデータベースにコピーし、かつ画像を処理する前処理モジュールをさらに格納している。
【0040】
さらに別の態様によれば、非一時的記憶媒体が提供される。非一時的記憶媒体は、プロセッサに対し、検査装置によって撮像された部品の検査画像を取得させ、検査画像には、所与の画像が良品に該当するか又は欠陥品に該当するかを示し、そしてさらには、当該検査画像が欠陥品に該当する場合に欠陥タイプをも示すラベル情報が関連付けられており、検査画像が良品に該当するか又は欠陥品に該当するかを判定するように、検査画像の第1のサブセットを使用してバイナリ分類器を訓練させ、バイナリ分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを使用しており、バイナリ分類器によって欠陥品に該当すると従前に判定された検査画像内の欠陥タイプを特定するように、欠陥品に該当する検査画像の第2のサブセットを使用して多クラス分類器を訓練させ、多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用しており、かつ 学習済みのバイナリ分類器と多クラス分類器とから、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せの構成設定を含む欠陥分類モデルを生成させ、その結果、自動欠陥分類モデルは、検査対象の部品が追加された場合に、その欠陥を検出する自動検査装置によって使用可能となる、コンピュータ可読命令を自身に格納している。
【0041】
本発明の実施形態の他の特徴及び利点は、添付の図面を参照してその好ましい実施形態を読解することにより、より良好に理解されるであろう。
【図面の簡単な説明】
【0042】
【
図1】自動検査装置によって使用される欠陥分類モデルを自動的に生成する方法及びシステムの有効な一実施形態による、前処理モジュールによって実行されるステップのフローチャートである。
【0043】
【
図2】本方法及びシステムの有効な一実施形態による、学習用アプリケーションによって実行されるステップのフローチャートである。
【0044】
【
図3】本方法及びシステムの有効な一実施形態による、後処理モジュールによって実行されるステップのフローチャートである。
【0045】
【
図4】有効な一実施形態による、学習用アプリケーションによって使用される学習用画像を含む画像フォルダを選択したものを取り込む、グラフィカル・ユーザ・インターフェース(GUI)である。
【0046】
【
図5】例えば訓練を一時停止したり、終了したり、又は再開したりするように、学習プロセスを監視かつ制御するグラフィカル・ユーザ・インターフェース(GUI)である。
【0047】
【
図6】有効な一実施形態による、製造部品の自動検査装置で使用する、欠陥分類モデルを自動的に生成するシステムの概略図である。
【0048】
【
図7】有効な一実施形態による、コンピュータ又はサーバ、及びデータ記憶装置を含み、自動部品検査装置の一部であるか、又は自動部品検査装置にリンクされたコンピュータネットワークの概略図である。
【0049】
なお、添付の図面は本発明の典型的な実施形態のみを示しており、したがって、本発明が他の等しく有効な実施形態を認めることができるため、その範囲を限定するものと解釈されるべきではない。
【発明を実施するための形態】
【0050】
以下の説明では、図面中の同様の特徴には同様の参照番号が付与されており、図面を過度に煩雑にしないように、いくつかの要素が先行する図で既に示されている場合、それらが一部の図に示されない場合がある。本明細書では、これらの要素及び要素間の相互作用を明確に示すことに重点が置かれているため、図面中の要素が必ずしも縮尺通りに描かれてはいないことを理解されたい。
【0051】
本出願に記載の自動欠陥分類システム、方法及びソフトウェアアプリケーションは、二次元形状及び/又は三次元形状自動検査並びに計測装置に関する。本出願人は、半導体パッケージ検査装置(GATS-2128、GATS-6163などである)、プリント基板検査装置(STAR REC、NRFEIDである)、光学式外観検査装置(ウェハ又は基板バンプ検査装置である)などの様々な検査装置を既に商品化しており、提案している1つ又は複数の欠陥分類モデルを自動的に生成する本システムは、これらと共に使用され得る。
図1~
図6を参照しながら説明する典型的なシステム及びプロセスは、とりわけ半導体製品及びPCB製品の検査に適合しているが、提案しているシステム及び方法は、他の用途、及び単なる例示としてのみであるが、自動車産業などの部品の自動検査を要する他の産業で使用され得る。提案している欠陥分類システムはまた、レーザ三角測量以外の異なる自動外観検査装置にも適合され得る。
【0052】
半導体検査に関して、既存の光学検査システムは、オフラインの欠陥検出段階を含むことが多く、検出された欠陥を製品固有又はクライアント固有のクラスへと分類する作業は、人間のオペレータによって手動で行われている。検査カメラによって生成された画像を分析し、当該欠陥をリアルタイムで所定のクラスへと割り当てる自動AI/機械学習(ML)分類器を備えたシステムも存在する。しかしながら、これらのシステムを構築するのは困難であり、分類器を適切に調整できるようなデータ専門家及び/又はAI専門家を要する場合が多い。その上、通常は事前定義されたMLモデルが使用され、検出する必要のある欠陥のタイプによっては、これらが必ずしも最適なモデルであるとは言えない。
【0053】
本発明の一態様によれば、人工知能(AI)ベースの自動欠陥分類システムが提供される。以下により詳述するように、自動欠陥分類モデルと組み合わせると、検査装置はより高い測定精度を実現することができるため、検査プロセス全体を通して検査コストを削減し、ヒューマンエラーを低減することができる。
【0054】
提案しているシステム及び方法により、自動部品検査装置で使用する、1つ又は複数の欠陥分類モデルを自動的に生成できるようになる。AIに関する知識を有しないか、又はその知識が限られている機械オペレータなどのユーザが、提案しているシステム及び方法を使用して、検査装置がインラインで作動するかオフラインで作動するかにかかわらず、新規の検出-分類器モデルを構築するか、又は既存の検出-分類器モデルを更新することができる。提案しているシステム及び方法では、ウェハ、個別ダイ、基板又はICパッケージなどの異なる製品タイプの分類モデルを構築又は更新することができる。その結果、提案しているシステム及び方法において、異なる製品を対象に、欠陥タイプを検出する際の検査装置の訓練が大幅に単純化される。いくつかの実施態様では、提案している分類-訓練システムにおいて、提示された部品及び/又は欠陥のタイプの変化を検出することができ、ユーザの介入なしに、又はユーザの介入が制限されて、その欠陥分類モデルを調整することができる。インライン検査装置へと推し進められる前に、人間のオペレータ(例えば、プロセスエンジニアである)が当該モデルを検証する必要が依然としてあり得るが、学習プロセスは大幅に簡素化される。新規分類モデルの作成、又は既存の分類モデルに対する調整をトリガする条件は複数あり、
i.不足している欠陥クラス(即ち、分類モデルを適切に調整又は構成するのに十分な画像が存在しないクラス)からの欠陥を対象に、新たな画像が取り込まれた場合、
ii.クラスラベルに変更があった場合(ラベルは、欠陥品若しくは良品、又は欠陥のタイプに対応し得る)、
iii.新たに検査対象の製品が発生した場合(新規分類モデルを構築する必要が生じる)、
iv.再訓練が予定される場合、及び
v.品質保証メカニズムによって、分類モデルのドリフトが検出された場合を含む。
【0055】
有効な一実施形態では、提案しているシステム及び方法において、既存の機械学習(ML)モデルのリストから、使用すべき最適なモデルを自動的に選択することができ、また当該モデルと関連付けられたハイパーパラメータの調整は、単純なグリッド検索手法を用いて実現することができる。
【0056】
好ましい実施形態では、提案しているシステム及び方法が専用サーバで実施されるという利点をさらに有する。即ち、提案しているシステム及び方法は、AIクラウドベースのプラットフォームにアクセスする必要なく、閉鎖環境で実施され得る。したがって、提案している自動分類訓練は、インターネットアクセスが存在しないか、又は制限されている工場などの隔離環境で実施され得る。
【0057】
「処理装置」という用語は、ラベル付き画像及び機械学習モデルなどのデータを受信し、格納し、処理し、かつ/又は送信するように構成かつ適合されたコンピュータ、ノード、サーバ及び/又は専用電子装置を包含している。「処理装置」は単なる例示として、マイクロコントローラ並びに/又はマイクロプロセッサ、CPU及びGPUなどのプロセッサを含む。これらのプロセッサは、「メモリ」又は「記憶媒体」とも呼ばれるデータ記憶装置と組み合わせて使用されている。データ記憶装置は命令、アルゴリズム、規則及び/又は処理される画像データを格納することができる。記憶媒体は、単なる例示として、レジスタ、キャッシュ、RAM、フラッシュメモリ、ROMなどの揮発性又は不揮発性/永続性メモリを包含している。メモリのタイプが、命令を保持すべきか、あるいはデータを一時的に格納すべきか、保持すべきか、又は更新すべきかにかかわらず、所望の用途に従って選択されることは言うまでもない。自動検査装置の一部であるか、又は自動検査装置にリンクされたアーキテクチャの概略図が
図7に示されており、当該アーキテクチャは、そのような処理装置及びデータ記憶装置を含む。
【0058】
「分類器」とは、その機能がデジタル画像などのデータが属するクラス又はラベルを分類又は予測することである、機械学習アルゴリズムを指す。「分類器」は、特別なタイプの機械学習モデルである。場合によっては、分類器は、データ点にクラスラベルを割り当てる離散値関数である。本出願では、データ点はデジタル検査画像から導出されている。「バイナリ分類器」は、所与のデータセットが属する2つの「クラス」もまた、所与の精度及び確信度で予測する。製造部品検査の場合、クラスは「合格」又は「不合格」であり得る。「多クラス」分類器は、所与のデータセットが属する複数のクラスのうちの1つもまた、所与の精度及び確信度で予測する。
【0059】
「欠陥分類モデル」又は「モデル」とは、機械学習モデルを同様に指す。本明細書では、欠陥分類モデルは学習済みの分類器を組み合わせたものであり、オプティマイザ、損失関数、及び学習率スケジューラと組み合わせて使用され、そのパラメータも分類器の訓練中に調整されている。
【0060】
単に「ニューラルネットワーク」とも呼ばれる「ニューラルネットワークアーキテクチャ」とは、層で構造化された接続ノード(「人工ニューロン」又は「パーセプトロン」とも呼ばれる)の集合に基づく、特定のタイプの機械学習モデル(又はアルゴリズム)を指す。所与の層のノードは隣接する層のノードに相互接続され、ノード間の接続に重みが割り当てられる。バイアスは、ある予測が目的の値からどれだけ乖離しているかを表す。バイアスは、ノードの入力とノードの出力との差として見ることができる。畳み込みニューラルネットワーク、再帰型ニューラルネットワークなどを含む、様々なニューラルネットワークアーキテクチャが存在する。ニューラルネットワークアーキテクチャのより具体的な例には、ResNetアーキテクチャ及びInceptionアーキテクチャが含まれる。
【0061】
「損失関数」とは、モデル又は分類器によって行われた予測が、実際の値からどれだけ乖離しているかを測定するアルゴリズム関数を指す。損失関数によって返される数が小さいほど、分類器の予測はより正確となる。
【0062】
「オプティマイザ」とは、損失関数を分類器のパラメータに結び付けて、損失関数の出力があったことに応答して分類器のノードの重みを更新するアルゴリズムを指す。即ち、オプティマイザは、損失関数を最小化するために、ニューラルネットワークアーキテクチャのノードの重みを更新する。
【0063】
「学習率スケジューラ」とは、所定のスケジュールに従って学習率を低下させることによって、機械学習分類器を訓練するステップ中に学習率を調整するアルゴリズムを指す。学習率は、推定誤差に応じて(重みを調整することによって)、分類器を変更する必要のある程度を制御するハイパーパラメータである。
【0064】
「エポック」とは、データセット全体が機械学習モデル又はアーキテクチャを通過するパス又はサイクルの数を指す。「エポック」とは、機械学習アルゴリズムに対してデータセットを一通り提示することである。
【0065】
図1~
図7を参照しながら、提案しているシステム600(
図6に示されている)について説明する。本システムは、概して、欠陥分類モデル(
図1に示す)を構築又は調整するために使用される検査画像を調整する前処理モジュールと、バイナリ分類器及び多クラス分類器を訓練することによって、ラベル付けされ、かつ処理された学習用画像(
図2)に基づいて欠陥分類モデルを作成又は構築する、学習用アプリケーション・プログラミング・インターフェース(API)を介してアクセス可能な学習用アプリケーションと、作成された分類モデルを管理し、かつ新たに作成/調整された分類モデルで検査装置606を更新する、後処理モジュール(
図3)と、を備える。
【0066】
システム600の有効な実施態様が
図6に示されている。システム600は、二次元カメラ又は三次元カメラのいずれかを用いて、検査装置606によって撮像された検査画像を取得する取得モジュール610を備える。検査装置606は、検査装置アプリケーションを実行し、検査画像を格納するデータベース又はデータ記憶装置を含むサーバ604を介して動作する。したがって検査画像は、まず検査装置データベース608に格納され、次いで欠陥分類アプリケーション618を使用して、当該部品が欠陥品に該当するか否かを示すラベル情報、そして欠陥品に該当する場合に欠陥タイプを示すラベル情報で、検査画像が分類又はラベル付けされる。別のコンピュータ又はサーバ602は学習用アプリケーション614を実行し、検査装置606によってアクセスすることができる学習用APIを提供する。サーバ602は、学習用アプリケーション614を実行する1つ又は複数のプロセッサを含む。サーバ602は、アプリケーションのコンピュータ可読命令を格納する非一時的データ記憶装置を含む。分類器の異なる組合せを探索できるようにする探索モジュール612が、学習用アプリケーション614の一部として設けられている。システム600が、好ましくは欠陥分類モデルを構築又は更新するときに使用できる異なる分類器、オプティマイザ、損失関数及び率スケジューラ、並びにこれらの機械学習アルゴリズムの構成設定及びパラメータを格納する、自身の学習用データベース616を備える。
前処理
【0067】
図1は、提案しているシステムの一部である、有効な前処理モジュール10を概略的に示す図である。前処理モジュールは通常、学習用アプリケーションによって使用される学習用データセットを作成している。学習用データセットは概して、ラベル付けされた検査画像、即ち、「欠陥なし」若しくは「欠陥あり」などの検査情報、又は特定の「欠陥タイプ」でタグ付け若しくはラベル付けされた画像を含む。ステップ104で、提案しているシステムをトリガ又は起動して、検査装置のカメラによって撮像された検査画像を取得し、検査画像及びそれらと関連付けられたラベル情報又はクラス情報を格納する、1つ又は複数のサーバをスキャンすることができる。クラス又はラベルを、例えばn個の異なるタイプの欠陥を対象に良品については0、また番号1~nとして、めっきの潜り込みによる欠陥については1、異物混入による欠陥については2、未完成品については3、ポリイミド(PI)亀裂などについては4とすることができる。5~100個の異なるタイプの欠陥など、任意の数の欠陥タイプとすることができる。したがって、ラベルを、当該画像が欠陥品に該当するか、又は良品に該当するか、そして当該検査画像が欠陥品に該当する場合の欠陥のタイプなど、画像コンテンツの表示をタグ付け又は提供するために使用される、任意の英数字インジケータとすることができる。通常、光学検査で撮像される検査画像は、製造プロセスに問題がない限り、その大部分が良品に該当する。したがって、光学検査システムによって生成される検査画像の大部分は、良品又は欠陥なしのラベル(又はクラス)にラベル付けされるか、若しくはこれと関連付けられる。通常は、単なる例示として0.01%~10%など、検査画像のごく一部が欠陥品に該当する。この場合、欠陥タイプに応じて検査画像を具体的にラベル付け又は分類する必要がある。
図6に示すように、検査画像を格納する1つ又は複数のサーバ(参照番号604)は、検査装置(
図6の参照番号606)の一部であるか、又は検査装置にリンクされている。1つ又は複数のコンピュータ又はサーバ604の有効なアーキテクチャの概略図が
図7にさらに詳記されており、当該アーキテクチャは、処理装置(例えば、機器フロントエンドモジュール(Equipment Front End Module:EFEM)を介してグラフィカル・ユーザ・インターフェースを提供する二次元PC、三次元処理用PC、及び三次元GPU搭載PCなどである)及びデータ記憶装置608を含む。二次元カメラ及び三次元カメラは、二次元又は三次元フレームグラバを用いて検査画像を取り込み、当該画像は、コンピュータ又はサーバ604のCPU及び/又はGPUによって処理され、次いで検査装置データベース608に格納される。なお、
図6及び
図7に示されているアーキテクチャは単なる例示であり、他の構成も可能である。例えば、画像を管理かつ格納するサーバ604と学習用サーバ602とは、検査装置のサーバにも対応することができる単一のサーバとして、組み合わせることができる。画像の格納及び管理、訓練及び部品検査を含む様々な機能並びにアプリケーションは、1つ又は複数のサーバ/コンピュータから実行され得る。
【0068】
図1~
図7に示す典型的な実施形態では、検査画像は、半導体パッケージ、シリコンウェハ又は他の材料のウェハ、片面PCB、両面PCB、多層PCB、及び基板などの半導体部品又はPCB部品の画像である。欠陥タイプは単なる例示として、めっきの潜り込み、異物混入、未完成品、亀裂、汚れ、異常回路、レジスト残渣、変形、スクラッチ、パッシベーション膜異常、クラスタ、又は金属膜の残渣を含む。欠陥の数及びタイプは検査対象の部品のタイプに応じて異なり得るので、この欠陥リストは当然包括的なものではない。
【0069】
典型的な実施形態では、1つ又は複数のサーバ604は、機械名、顧客名、レシピ又は部品及びロットなどの異なるフォルダレベルで、所与のフォルダ構造に従って編成されたフォルダに検査画像を格納する。フォルダ構造の典型的な一実施形態が、
図4に関連して示されており、サーバのフォルダ構造408が、グラフィカル・ユーザ・インターフェース(GUI)400を介して提示されている。GUIは、1つ又は複数のサーバのフォルダ構造と一致するフォルダ構造を示しており、新規欠陥分類モデルを再訓練又は作成/構築するために、学習用アプリケーションによって使用される学習用画像を選択できるようにしている。したがって、画像フォルダ構造又は分岐構造が、好ましくはステップ102のように周期的にスキャンされる。GUIを介してユーザに提示されるフォルダ構造408は、ステップ106(
図1)で、サーバ604の最新のフォルダ構造及びコンテンツに対応するように、本システムによって動的に更新されてもよい。提案しているシステム及び方法により、新規分類モデルを構築し、かつ/又は既存の分類モデルを調整することができるので、検査装置が(インラインで)作動している間、GUIを介して提示されるフォルダ構造が、画像格納サーバの現在の状態を反映すると好ましく、これはなぜなら、1つ又は複数の分類モデルを訓練するために、新たな検査画像が継続的に撮像され得る一方で、GUIを介して検査画像が選択され、かつ取り込まれているためである。
【0070】
引き続き
図1を参照すると、ステップ108で、検査画像を含むフォルダを選択して再訓練が行われ得、かつ/又は新規分類モデルが作成され得、当該選択はGUIを介して取り込まれ、訓練するステップに使用される画像をフェッチかつロードするために、本システムによって使用される。したがって、本システムは
図4に示すように、GUIを介して、訓練に使用される検査画像を含む1つ又は複数のフォルダを選択したものを受信する。有効な実施形態では、当該選択は、すべての下位レベルのフォルダ、即ちすべての「ロット」フォルダを選択する手段として、「部品」フォルダなどの1つ又は複数の上位レベルのフォルダを含み得る。
【0071】
分類モデルを訓練するステップは、
図1のステップ112に対応する
図4のボタン404を使用するなどして、GUIを介して入力が行われることによって開始され得る。GUIにより、訓練するステップを必要に応じて停止又は再開することによって(
図4のボタン406)、さらに学習プロセスを制御することができる。始動/開始するステップ112では、選択された検査画像の総数が好ましくは計算又は集計され、GUIに表示される(
図4のペイン402を参照されたい)。分類モデルを再訓練又は作成するには、学習用検査画像が最小数必要になる。同じ理由から、即ち適切な訓練を行い、かつ/又は個々の欠陥タイプごとの欠陥分類器を作成するために、最小必要数の画像が収集されたことを確認するように、各欠陥タイプを対象に選択された検査画像の数を、本システムがさらに計算すると好ましい。以下でより詳細に説明するように、分類モデルにおけるバイアスを防止するためには、欠陥タイプごとの画像が最小数必要になる。所与の欠陥について画像の最小必要数に達していない場合、分類モデルの構築を開始する前に、当該欠陥に対応する検査画像が選択から破棄されることが好ましい。破棄された欠陥タイプと関連付けられた検査画像は、最終的に、画像の最小必要数に達したときに(上記4ページのi)項にあるように)、訓練に使用されてもよい。したがって、前処理モジュールは、検査画像の総数がバイナリ分類器(合格又は不合格(即ち、欠陥品対良品である)を検出するために使用される)を訓練するステップを開始するのに十分であるかどうかを検証し、総数が十分である場合、各欠陥タイプと関連付けられた検査画像の数が、多クラス分類器(異なる欠陥タイプを検出するために使用される)を訓練するステップを開始するのに十分であるかどうかを検証し、その結果、多クラス分類器を訓練するステップが、検査画像の数が十分にある欠陥タイプに対してのみ開始される。
【0072】
引き続き
図1を参照すると、上述した理由により、好ましくはステップ110が実行されてから、ステップ112が実行される。本システムは、選択された検査画像の総数を計算し、さらには欠陥タイプごとに選択された検査画像の総数を示し、GUIを介して、当該結果をユーザに表示することができる。選択された検査画像の数が最小必要学習要件を満たすことを確認した後、
図4に示すように、ボタン402を使用するなどしてGUIを介して行われる入力を介して、ステップ112がユーザによってトリガされてもよい。学習用検査画像の数が不十分である場合には、ユーザに検査画像を新たに選択するように求めるメッセージが表示されてもよい。
【0073】
ステップ114で、選択された検査画像が、好ましくは、
図6に示される学習用サーバ602に転送され記憶される前に前処理される。画像を前処理するステップは、検査画像から関連情報を抽出し、画像トリミング、コントラスト調整、ヒストグラム均等化、二値化、画像正規化及び/又は画像標準化などの当技術分野で周知の技術に従って、画像を変換するステップを含んでいてもよい。なお、典型的な実施形態では、検査装置と関連付けられた1つ又は複数のサーバ604、及び学習用アプリケーションと関連付けられた学習用サーバ602など、異なるサーバが使用されている。このため、学習用に選択された検査画像がコピーされ、サーバ604からサーバ602へと転送される。しかしながら、他の実施形態では、同一のサーバを使用することが考えられ、そのメモリは、インライン検査画像を格納するために、かつ選択された学習用画像を格納するために分割されている。
【0074】
引き続き
図1を参照すると、本システムはステップ116で検査画像情報を格納し、学習用サーバ602と関連付けられているか、又はその一部のデータベース内でチェックサム検証を実行する。当該検証するステップにより、学習用サーバ上で画像が重複することを回避でき、これにより、データベース内で新たな画像をコピーする前に、各画像の一意性が検証される。ステップ120で識別された、学習用サーバ上にまだ格納されていない検査画像は、ステップ118に従って学習用サーバ上に更新されるか、又はコピーされる。
【0075】
好ましくは、学習用サーバ602にひとたび転送されると、検査画像が、少なくとも学習用データセットと検証用データセットとに分割又は分解される。したがって、本システムは、バイナリ分類器及び多クラス分類器を訓練するステップの前に、第1のサブセット及び第2のサブセットの各々において、検査画像を少なくとも学習用データセットと検証用データセットとへと自動的に分割するように構成されている。第1のサブセットはバイナリ分類器を訓練するための画像を含み(即ち、第1のサブセットは、欠陥ありとしてラベル付けされた画像と、欠陥なしとしてラベル付けされた画像とを含む)、第2のサブセットは、欠陥品としてラベル付けされ、さらに欠陥タイプでラベル付けされた第1のサブセットの画像を含むことになる。学習用データセット内の画像は訓練中、損失関数の出力を低減又は最小化するように、オプティマイザを用いて、ニューラルネットワークアーキテクチャの異なる層のノードの重みを調整又は変更するために使用される。次いで検証用データセットが、バイナリ分類器及び多クラス分類器の訓練中に定められた調整済みの重みを用いて、モデルの精度を測定するために使用される。
【0076】
学習用データセット及び検証用データセットは、分類器のノードの重みを訓練かつ調整するために、選択的に使用される。より好ましくは、検査画像は、前述したように学習用データセット及び検証用データセット、及び学習した後の分類モデルの最終状態を検証するために使用される第3の「テスト用」データセット又は「最終検証用」データセットの3つのデータセットへと分割される。即ち、テスト用データセットは、学習した後のバイナリ分類器及び多クラス分類器のニューラルネットワークアーキテクチャの最終重みを確認するために、本システムによって使用される。
訓練
【0077】
図2は、欠陥分類モデルを自動的に構築するために、学習用アプリケーション(又は学習用モジュール)によって実行される学習プロセスのステップを概略的に示した図であり、各モデルは、特定の製造プロセス、部品モデル、又はクライアント要件に適合されている。学習用アプリケーションは、異なるサブモジュールを備える、サーバ602(
図6に示される)上に格納されたソフトウェアプログラムである。学習用モジュールは、終了、初期化、訓練、一時停止、成功又は失敗/例外などのアクションを含む、呼び出し元アクションが所与の瞬間に許可されているか否かを検証するステートマシンによって管理されている。学習用モジュールは、学習セッションを管理するためのプログラミング関数を含む、学習用APIを備える。学習用API cab関数は、単なる例示として、初期化関数、再開関数、開始関数、一時停止関数、終了関数、評価関数、getStatus(状態取得)関数、getPerformance(パフォーマンス取得)関数及びgetTrainingPerformance(学習パフォーマンス取得)関数を含む。初期化関数は、例えば、すべてのクラスが十分なサンプル画像を有すること、即ち各クラスの画像数が所与の閾値を上回ることと、各分類器を訓練するステップを行うための探索、訓練、検証、及びテスト画像のサブセットが所定のサイズを有することとを確認することを含む、第1のデータセット及び第2のデータセットのコンテンツを検証することによって、各学習サイクルを調整する。初期化モジュールはまた、構築対象の欠陥分類モデルを、構築済みの従前のモデルのパラメータを用いて、又は分類器ごとに予め定義されたか、若しくはランダムな重みを用いて初期化する。このため、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せの初期パラメータを含む構成ファイルは、訓練を開始するときにロードされる。構成ファイルは、例えば一例としてJSON形式などの異なるフォーマットを取ることができる。初期構成ファイルは、単なる例示として、訓練中にロードされる分類器モデル、使用される学習率減衰係数を含む、訓練中にロードされるオプティマイザ、クラスサンプルが不均衡である場合に使用されるデータ拡張アルゴリズム、安定した精度を維持する必要のあるエポックの数などのフィールドを含み得る。開始関数は学習プロセスを開始するものであり、学習作業は、初期構成ファイルの個々のフィールド部分のパラメータを使用して開始される。評価関数は、検査画像の評価データセットに対して学習済みの欠陥分類モデルを評価するものであり、パーセンテージ、即ち正確に行われた予測のパーセンテージとして表される平均精度を返す。
【0078】
したがって、学習用アプリケーションは、学習用APIを介して検査装置によって呼び出され得、検査画像が良品に該当するか又は欠陥品に該当するかを判定する(
図2の左側にあるステップ208及びステップ214によって表される)ように訓練できるバイナリ分類器と、バイナリ分類器によって欠陥があると判定された検査画像内の欠陥タイプを特定するように訓練できる多クラス分類器(当該分類器は「欠陥タイプ分類器」とも呼ばれ、
図2の右側にあるステップ210及びステップ216によって表される)とを最初にロードするか、又はこれらを備える。
【0079】
分類器を「訓練する」とは、分類器(バイナリ又は多クラスである)を形成する異なる層のノードの重みが、所与の回数の試行(又はエポック)において、分類器の予測の精度を最大化するために反復的に調整されることを意味する。ニューラルネットワークアーキテクチャとの組合せで選択されたオプティマイザは、ノードの重みを反復的に調整するために訓練中に使用される。ひとたび訓練されると、分類器の複数のノードと関連付けられた重みが設定され、自動部品検査に使用できる分類モデルを定義する。
【0080】
したがって、新規分類モデルを作成し、かつ/又は既存のモデルを調整するために選択された検査画像は、バイナリ分類器を訓練するための第1のサブセット(学習用サブセット、検証用サブセット及びテスト用サブセット、並びに必要に応じて探索用サブセットへと分割する)を形成し、欠陥があると判定された検査画像は、多クラス分類器を訓練するために使用される検査画像の第2のサブセットを形成する。
【0081】
ニューラルネットワークアルゴリズムとオプティマイザアルゴリズムとの異なる組合せをバイナリ分類器及び多クラス分類器に使用できるという点で、提案しているシステム及び方法はとりわけ有利である。さらに、以下でより詳細に説明するように、バイナリ分類器及び多クラス分類器に対するニューラルネットワークアーキテクチャとオプティマイザとの最良の組合せを決定するステップは、探索段階を通して行われ得る。
【0082】
したがって、バイナリ分類器は、ニューラルネットワーク(NN)アーキテクチャとオプティマイザとの第1の組合せを使用してもよく、その一方で多クラス分類器は、ニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せを使用してもよい。なお、バイナリ分類器を、例えば決定木、サポートベクターマシン、又は単純ベイズ分類器などの別のタイプの分類器とすることができる。好ましくは、第1の組合せ及び第2の組合せが、損失関数アルゴリズムと、関連する学習率係数とを選択したものをさらに含んでいてもよい。第1の組合せと第2の組合せとは同一であってもなくてもよいが、ニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ及び第2の組合せがバイナリ分類器と多クラス分類器とで異なっている場合に、概ねより良好な結果が得られることが、実験により明らかになっている。一実施例として、バイナリ分類器を対象としたニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せを、ResNet34アーキテクチャ及びAdamオプティマイザとすることができる一方、多クラス分類器を対象としたニューラルネットワークとオプティマイザとは、ResNet152アーキテクチャ及びSGDオプティマイザとすることができる。
【0083】
引き続き
図2を参照すると、ステップ202で、同一の欠陥タイプと関連付けられた検査画像の数が、欠陥分類モデルを訓練するには不十分であるか、又は他の欠陥クラスと比較して僅少であるため、当該検査画像に対してデータ拡張が実行されてもよい。当該ステップは、欠陥タイプの各々の画像数の均衡を取って学習精度を向上させ、他の欠陥タイプと比較してはるかに多数の検査画像を有する欠陥タイプに対して、通常なら生じ得るバイアスを回避する役割を果たす。データ拡張アルゴリズムは、所与の学習用検査画像にランダム変換を適用し、これにより、新たな画像を作成して、所与のクラスの画像数を増加させる。変換は空間変換(画像の回転又は反転などである)であり得るが、単なる例示として、ピクセルの赤緑青(RGB)値の変更を含む他のタイプの変換も可能である。
【0084】
ステップ204で、学習用APIは初期構成ファイル(又は学習用初期設定)を動的にロードし、当該ファイルは例えば、バイナリ分類器を訓練するために使用されるニューラルネットワークアーキテクチャとオプティマイザとの第1の組合せ(ステップ214)、及び多クラス分類器を訓練するために使用されるニューラルネットワークアーキテクチャとオプティマイザとの第2の組合せ(ステップ216)などの様々な学習パラメータを含んでいてもよい。構成ファイル及び/又は学習設定は、バイナリ分類器及び多クラス分類器の訓練に使用すべき損失関数アルゴリズムの提示(2つの分類器に対して異なっていても、異なっていなくてもよい)、並びにバイナリ分類器及び多クラス分類器の訓練に使用すべき学習率スケジューラアルゴリズム(及び係数)の提示(2つの分類器に対して異なっていても、異なっていなくてもよい)をさらに含んでいてもよい。単なる例示として、バイナリ分類器及び/又は多クラス分類器によって使用され得る異なるニューラルネットワークアーキテクチャは、NesNet50、ResNet101、ResNet152、WideResNet50、WideResNet101、IncptionV3及びInceptionResNetを含み得る。バイナリ分類器及び/又は多クラス分類器を訓練するために使用できるオプティマイザアルゴリズムの例としては、Adamオプティマイザ及び確率的勾配降下(Stochastic Gradient Descent:SGD)オプティマイザが挙げられる。損失関数アルゴリズムの例としては、交差エントロピー損失関数及び負の対数尤度損失関数が挙げられ、また学習率スケジューラアルゴリズムの例としては、減衰学習率スケジューラ及び循環学習率スケジューラが挙げられる。初期構成ファイルは、必要に応じて、分類器の各ノードの重みをさらに含み得る。
【0085】
ニューラルネットワークアーキテクチャ、オプティマイザ、損失関数、及び学習率スケジューラの上記の例は網羅的ではないため、本発明が異なるタイプのアーキテクチャ、オプティマイザ、損失関数、及び学習率スケジューラと共に使用されてもよい。学習パラメータ及び設定値の第1の組合せ及び第2の組合せは、上述したものに加えて、エポック数などの他のタイプのパラメータをさらに含んでいてもよい。任意の数のニューラルネットワークアーキテクチャ、オプティマイザ、損失関数、及び学習率スケジューラを追加又は削除するように、構成ファイル(又は学習設定)を更新することができると好ましい。
【0086】
有効な実施態様において、所与の製品タイプ又は製造部品タイプに対してアーキテクチャとオプティマイザとの最良又はより正確な組合せを選択するように、異なるタイプのニューラルネットワークアーキテクチャとオプティマイザとを試行又は探索してからバイナリ分類器及び多クラス分類器を十分に訓練することができるという点で、提案している方法及びシステムはさらに有利である。換言すれば、提案している方法及びシステムは、バイナリ分類器及び多クラス分類器を十分に訓練するための「最良の」又は「最適な」組合せ、即ち、最高精度を実現する組合せを選択するように、バイナリ分類器を訓練するための、また多クラス分類器を訓練するための、ニューラルネットワークとオプティマイザとの(また、場合によっては損失関数と学習率スケジューラとの)異なる組合せが試行かつ探索されるステップを含んでいてもよい。引き続き
図2を参照すると、探索するステップ又は試行するステップ206が実行されてから、訓練するステップ212が実行される。本システムは、ステップ208で、バイナリ分類器と多クラス分類器との両方を対象に、所与のエポック数において、学習用検査画像の縮小サブセット上で、ニューラルネットワークとオプティマイザとの異なる組合せ、さらに好ましくは損失関数と学習率スケジューラとの異なる組合せをテストする(又は探索/試行する)。探索段階に続いて、最高の分類精度を有する第1の組合せがバイナリ分類器に対して選択される。
【0087】
ニューラルネットワークとオプティマイザとの異なる組合せを探索する初期ステップの目的は、検査画像の所与のサブセットに対して最高精度を実現するニューラルネットワークとオプティマイザとのペアを特定かつ選択することである。より具体的には、ニューラルネットワークとオプティマイザとの異なる組合せを探索するステップは、ニューラルネットワークとオプティマイザとの異なるペアを使用して、いくつかの短縮学習セッションを開始するステップと、縮小データセット(即ち、探索データセットである)で試行された各ペアのパフォーマンス(即ち精度である)を記録するステップとを含み得る。例えば、バイナリ分類器とオプティマイザとの所与の組合せを使用して欠陥分類モデルを構築する前に、ニューラルネットワークとしてのResNet34とオプティマイザとしてのAdam、ニューラルネットワークとしてのInsceptionResNetとオプティマイザとしての確率的勾配降下、ニューラルネットワークとしてのResNet34とオプティマイザとしてのSDGなど、n個の異なるニューラルネットワークとオプティマイザとのペアが試みられる。各ペアの精度は、検証画像の縮小データセットを使用して判定され、最高精度を有するペアが選択され、次いで訓練するステップに使用される。
【0088】
同様に、ニューラルネットワークとオプティマイザとのペアを探索するときに、異なる損失関数と学習率スケジューラ係数とが試行又は探索され得る。したがって、所与のエポック数において、画像の探索サブセット上で、欠陥品から良品を見極める際の最高精度(行われた予測の総数に対する正確に行われた予測のパーセンテージとして表される)を、NNアーキテクチャ及びオプティマイザと共に実現した損失関数及び学習率スケジューラは、バイナリ分類器を訓練するステップのために特定され、かつ保持される。
【0089】
同様に、ステップ210で、多クラス分類器を十分に訓練するために使用すべき最良の組合せを決定するように、学習用検査画像の縮小サブセット上で、ニューラルネットワークとオプティマイザとの(また、場合によっては損失関数と学習率スケジューラとの)異なる組合せが試行(又は探索)される。探索するステップはまた、所与のエポック数において実行される。最高の分類精度を有する組合せが多クラス分類器に対して選択される。
【0090】
前述したように、エポック数は、本訓練システムのパラメータであってもよい。このため、有効な実施形態では、探索訓練段階は、バイナリ分類器と多クラス分類器とが各組合せにつき所定のエポック数に達すると、自動的に停止することができる。好ましくは、探索して訓練するステップは、探索段階中の任意の時点で、GUIを介してユーザによって制御、例えば停止、再開、かつ終了されてもよい。
【0091】
本システムの有効な実施形態では、バイナリ分類器と関連付けられた初期パラメータ、及び多クラス分類器と関連付けられた初期パラメータを含む構成ファイルをロードすることによって、探索して訓練するステップが迂回され得る。その場合、ステップ206、ステップ208及びステップ210が迂回される。
【0092】
引き続き
図2を参照すると、探索段階が完了するか、又は迂回された後、バイナリ分類器及び多クラス分類器を訓練するステップが開始され得る。バイナリ分類器の訓練は、有効な一実施形態では、ステップ208の探索段階中に決定されたニューラルネットワークアルゴリズムとオプティマイザアルゴリズムとの組合せを使用して、ステップ214で開始される。第1の画像サブセットを形成する検査画像は、バイナリ分類器を訓練するために使用される。選択された画像のすべてが、第1のサブセット、又は選択された画像の一部のみを形成することができる。
【0093】
多クラス分類器の訓練が、好ましくはバイナリ分類器と同様に、ステップ210で探索段階中に最も効率的かつ/又は正確であると判定されたニューラルネットワークとオプティマイザとの組合せを使用して、ステップ216で開始される。この場合、多クラス分類器を訓練するために使用される検査画像のサブセットは、第1のサブセットのサブセットで構成されており、即ち、この第2のサブセットは、バイナリ分類器によって「欠陥あり」と分類された検査画像を含む。
【0094】
バイナリ分類器及び多クラス分類器を訓練するステップ中、学習用画像データセット及び検証用画像データセットを使用して、例えば各エポックの後に、オプティマイザのパラメータに基づいて、バイナリ分類器及び多クラス分類器のノードの重みが反復的に調整される。ニューラルネットワークパラメータの調整は、選択されたオプティマイザ、損失関数、及び学習率係数を使用して、各学習パスの実際の結果と予測された結果との差が十分に小さくなるまで、ニューラルネットワーク層の異なる層のノードに適用される重みを自動的に調整することを含み得る。したがって、検証用サブセットは、予測した部品状態の実際の結果を表すもの(欠陥なし又は欠陥あり、及び欠陥のタイプである)として使用されている。オプティマイザの調整は、学習プロセスを制御するために使用される、オプティマイザのハイパーパラメータを反復的に調整することを含み得る。なお、学習プロセスは完全に自動化されており、学習用APIに初期構成ファイルを提供することにより、自律的に実行される。
【0095】
本システム及び方法の有効な実施形態では、ユーザが当該訓練を一時停止することが可能であってもよい。一時停止命令又は停止命令を受信した場合、本システムは、現在の構成設定、及び実行されたエポックの数など、当該訓練に関連するすべての情報を学習用サーバ上のデータベースに保存する。訓練するステップが再開されると、本システムはデータベースのすべての情報を再開点として取り込む。
図5は、欠陥分類モデルの構築プロセスの状態を(ウィンドウ500)、当該訓練の現在のイテレーション及び進行状況を示すことによって(ウィンドウ500の下部セクション506を参照されたい)監視することができる、利用可能なGUIを示す。GUIは必要に応じて、学習プロセスをさらに一時停止(502)又は終了(504)できるようにしている。
【0096】
本システムの有効な一実施形態では、学習プロセス中、各学習イテレーションにおいてバイナリ分類器及び多クラス分類器を訓練するために使用される検査画像の数は、訓練するステップを実行するプロセッサの利用可能な物理リソースの関数として動的に適合される。より具体的には、各イテレーションにおいてバイナリ分類器及び多クラス分類器を通過する画像の数として定義されるバッチサイズは、ステップ218によって示されるように、動的に変更され得る。有利には、当該ステップにより、訓練するステップを実行するために利用可能な物理的/処理リソースの関数として、学習プロセスをリアルタイムで調整できるようになる。有効な実施形態では、バッチサイズは予め定義された値を有してもよく、処理リソース(GPUなどである)が完全に使用されているという警告又は指示(メモリエラーなどである)が本訓練システムによって検出されるまで、異なるバッチサイズが試行され得る。この場合、プロセッサ(典型的にはGPUである)によって処理できる許容可能なバッチサイズとなるまで、一段下の小さいバッチサイズが試行される。換言すれば、分類器に投入された検査画像のサブセットは後続のバッチへと供給され、各バッチ内の検査画像の数は、処理リソース(即ち、利用可能な処理能力又はプロセッサ稼働率である)の利用可能性の関数として、動的に調整される。本訓練システムの当該特徴又はオプションにより、ハードウェア仕様、又は学習モデル要件若しくはパラメータサイズを事前に把握する必要性が解消される。また、製造工場が異なる場合、サーバ/処理装置要件及び/又は仕様が異なる可能性があることから、当該特徴により、本訓練システムを可搬性の高いシステムにすることもできる。
【0097】
バイナリ分類器及び多クラス分類器を訓練するステップは、分類器の精度が所与のエポック数において所与の精度閾値に達する(95%を超えるなどして)ことによって完了する。したがって、欠陥分類モデルは、学習済みのバイナリ分類器及び多クラス分類器から構築されており、また学習セッションの終了時に、ニューラルネットワークとオプティマイザとの第1の組合せ及び第2の組合せの最終更新済みのパラメータを含む構成ファイルによって定義されている。選択されたニューラルネットワーク、オプティマイザ、損失関数、及び学習率スケジューラは、自動検査装置によってロード可能な構成ファイルにパッケージ化されている。構成ファイルは、バイナリ分類器のニューラルネットワークアーキテクチャ(例えば、ResNet34である)のユーザ、バイナリ分類器のソースモデル(重み設定を含む)、多クラス分類器のニューラルネットワークアーキテクチャ(例えば、InceptionResNetである)のユーザ、多クラス分類器のソースモデル(重み設定を含む)、バイナリ分類器及び多クラス分類器を対象としたオプティマイザ(例えば、Adamである)、学習率(例えば、0.03である)及び学習率減衰係数(例えば、1.0である)などのパラメータを含み得る。その結果、自動欠陥分類モデルは、欠陥品を検出し、検査対象の製造部品の欠陥タイプを特定する自動検査装置によって使用可能となる。
前処理
【0098】
図3に示されている後処理モジュールは、欠陥分類モデルがひとたび構築されると、これを格納するステップ(ステップ304)、学習結果を用いて検査装置のGUIを更新するステップ(ステップ306)、及び/又は作成された新規モデル若しくは更新済みの既存のモデルを用いて、訓練及び/又は検査装置のデータベースを更新するステップ(308)に関与する、様々なモジュールを備える。好ましくは、欠陥分類モデルのビルドを検査装置に転送する前に、テスト用データセットを使用して、オプティマイザとバイナリ/多クラス分類器との第1の組合せ及び第2の組合せの精度が実証されている。
【0099】
したがって、ステップ310で、結果として得られる欠陥分類モデルが生成され、当該モデルは、その構成ファイル内にバイナリ分類器及び多クラス分類器のタイプ並びにパラメータを含む。例えば、新たな半導体部品の欠陥分類モデルは、構成ファイルの形態で、バイナリ分類器に使用されるニューラルネットワークアーキテクチャと、オプティマイザと、損失関数と、学習率スケジューラとの第1の組合せ、及びそれらのアルゴリズムの各々に対する関連パラメータ設定、並びに多クラス分類器に使用されるニューラルネットワークアーキテクチャと、オプティマイザと、損失関数と、学習率スケジューラとの第2の組合せ、及びそれらのアルゴリズムの各々に対する関連パラメータ設定を含んでいてもよい。
【0100】
欠陥分類モデルは、学習用サーバ及び/又は検査装置のサーバ上に配置されたデータベースに格納されてもよい。選択された第1の組合せ及び第2の組合せ、並びに対応する第1の精度及び第2の精度などの学習プロセスから得られた結果は、GUIに表示されてもよい。一実施形態では、当該結果がパフォーマンスレポートにエクスポートされてもよい(ステップ312)。
【0101】
自動欠陥分類アプリケーションは使用時、GUIを介して、オペレータによって選択された部品タイプに従って適切な欠陥分類モデルをロードする。このため、各部品タイプがそれ自体の欠陥分類モデルに関連付けられ得、各モデルが、所与の部品タイプ又はクライアント要件に対してその精度を最適化するように調整かつ訓練されている。自動欠陥分類では、新規/未知の欠陥を「未知の」カテゴリ又はラベルに分類することなどによって、光学システムによって捕捉された新たな欠陥を有利に検出することができる。所与のロットの「未知の」欠陥数が所与の閾値を上回る場合、分類モデルを更新する必要があるという警告を生成するようにアプリケーションが構成され得、いくつかの有効な実施態様では、提案しているシステム及び方法において、分類モデルを自動的に更新(又は再訓練)することができる。
【0102】
自動検査装置で使用するための、機械学習を介して自動欠陥分類モデルを生成する提案中の方法及びシステムは、クラウドベースのサーバに機密データをアップロードする必要なく、顧客サイトの1つ又は複数のサーバ(ここで、「顧客」とは典型的には製造会社である)上に効果的に配備され得る。さらに、提案している方法及びシステムは、ユーザがこれらを制御し、事前のAI知識なしで欠陥分類モデルを作成できるようにしている。提案している方法及びシステムはまた、複雑なリレーショナルデータセットに依存する必要なく、検査画像と直接連動することができる。
学習用アプリケーションは、新たなニューラルネットワークアーキテクチャ、新たなオプティマイザ、損失関数及び学習率スケジューラを追加することによって拡張され得る。学習用アプリケーションは、新たに追加されたニューラルネットワークアーキテクチャの出力の数が引数として渡された出力の数と一致することを保証する、層リサイズ関数(層のリサイズ処理)を含む。学習用アプリケーションは、引数として渡されたテンソルを当該モデルの入力層に代入して、出力を集計する前方関数をさらに含む。同様のプロセスを実行して、新たなオプティマイザ、損失関数、及び学習率スケジューラを追加することができる。
実験結果
【0103】
本出願の利点の1つは、バイナリ分類器と多クラス分類器と、これらの分類器と共に使用されるオプティマイザとを異なる組合せでテストできることである。上記で詳述され、また
図2のステップ206、208及び210で定義された当該探索は、実験において実施かつテストされた。この実験の結果を表1に示しており、表1は、すべての組合せ及び関連結果を含む元の表からの抜粋である。
【0104】
表1は、各組合せで使用される異なる学習パラメータ、テストが実行されたエポック数、及び検査画像を分類する際の精度結果を含み、表中、太字になっている組合せは、分類精度の点で最良の組合せとして本システムによって選択されたものである。
【0105】
使用された元の検査画像データセットが含んでいたのは、159,087枚の画像を144,255枚の画像からなる第1のデータセットへと分割したものであって、これらの画像のうち80%がさらに学習用データセットへと分割され、また20%が検証用データセットへとさらに分割された画像、及びテスト用データセットを構成している14,832枚の画像からなる第2のデータセットであった。これらの検査画像は、欠陥タイプと合格タイプとを含む、合計23のクラスと関連付けられたものである。
【0106】
本方法によって3つのクラスと295枚の関連画像とを除外してから、訓練するステップを開始した。これら3つのクラスの各々は、そのクラスに対応するラベル情報を有する検査画像の最小必要数を遵守しておらず、最小必要数を120としていた。結果として、訓練するステップは、115,160枚の画像からなる学習用データセットと、28,800枚の画像からなる検証用データセットとに対して実行された。
【0107】
バイナリ分類器と多クラス分類器との両方に対して異なる組合せ間で行うと有意な変動となるため、分類器の複数の組合せをテストすると、バイナリ分類器と多クラス分類器との両方の組合せを選択するときに有利となることが、表1から分かる。特定のオプティマイザと関連付けられた損失関数を選択することも、組合せの精度に大きな影響を与える。
【0108】
本訓練システムがバイナリ分類器を対象に常にResNet34モデル及びSGDオプティマイザを選択し、また多クラス分類器を対象にSGDオプティマイザと組み合わせたResNet152及びInceptionResNetなど、さらに深層のモデルを選択することにより、同一の検査画像に対して個々の実行が行われ、これにより、バイナリ分類器と多クラス分類器との両方の分類精度の点で最良の組合せを選択する際の本システムの精度が裏付けられた。
【0109】
エポック数が5から10に増加すると、バイナリ分類器の組合せの精度は約77%~92%の範囲となり、多クラス分類器の組合せの精度は約64%~82%の範囲となり、異なる組合せにすることで分類精度に生じる影響がさらに裏付けられた。
【表1】
【0110】
本開示の範囲から逸脱することなく、上記の実施形態に多くの変更が加えられ得ることは、言うまでもない。
【国際調査報告】