(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156354
(43)【公開日】2024-11-06
(54)【発明の名称】コンピュータシステム、外観検査方法、及び外観検査プログラム
(51)【国際特許分類】
G01N 21/88 20060101AFI20241029BHJP
G06T 7/00 20170101ALI20241029BHJP
【FI】
G01N21/88 Z
G06T7/00 610
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023070747
(22)【出願日】2023-04-24
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000198
【氏名又は名称】弁理士法人湘洋特許事務所
(72)【発明者】
【氏名】近藤 直明
(72)【発明者】
【氏名】宮本 敦
【テーマコード(参考)】
2G051
5L096
【Fターム(参考)】
2G051AB01
2G051AB02
2G051AC04
2G051AC21
2G051CA04
2G051EA08
2G051EB01
2G051EC01
5L096BA03
5L096CA22
5L096FA17
5L096FA19
5L096JA22
5L096KA04
(57)【要約】
【課題】過検出率や不良検出率に基づいて不良検出パラメータを最適化する。
【解決手段】コンピュータシステムは、対象物の画像を取得する画像取得ステップと、前記画像中の不良部位を検出するためのパラメータを最適化するパラメータ最適化ステップとを実行し、前記パラメータ最適化ステップは、前記画像中の前記不良部位を示す不良部位情報を取得する不良部位取得ステップと、過検出率及び/又は不良検出率から前記不良部位を検出する性能を評価する評価値を算出する第1関数を取得する第1関数取得ステップと、前記対象物の前記画像及び前記パラメータを用いて前記対象物の前記不良部位を検出する不良検出ステップと、前記過検出率及び/又は前記不良検出率に対して前記第1関数がとる前記評価値を算出する評価値算出ステップと、前記評価値が最大となるように前記パラメータを更新するパラメータ更新ステップを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1以上のプロセッサと、1以上のメモリリソースと、を有するコンピュータシステムであって、
前記1以上のプロセッサは、
対象物の画像を取得する画像取得ステップと、
前記対象物の前記画像中の不良部位を検出するためのパラメータを最適化するパラメータ最適化ステップと、を実行し、
前記パラメータ最適化ステップは、
前記対象物の前記画像中の前記不良部位を示す不良部位情報を取得する不良部位取得ステップと、
過検出率及び/又は不良検出率から前記不良部位を検出する性能を評価する評価値を算出する第1関数を取得する第1関数取得ステップと、
前記対象物の前記画像及び前記パラメータを用いて、前記対象物の前記不良部位を検出する不良検出ステップと、
前記不良検出ステップにおける検出結果と前記不良部位情報とに基づき得られる少なくとも1つ以上の前記過検出率及び/又は前記不良検出率に対して前記第1関数がとる前記評価値を算出する評価値算出ステップと、
前記評価値が最大となるように前記パラメータを更新するパラメータ更新ステップと、を含む、
コンピュータシステム。
【請求項2】
請求項1に記載のコンピュータシステムであって、
前記第1関数から得られる前記評価値は、前記過検出率が低い領域及び/又は前記不良検出率が高い領域ほど大きい、
コンピュータシステム。
【請求項3】
請求項1に記載のコンピュータシステムであって、
前記1以上のプロセッサは、前記第1関数取得ステップにおいて、前記第1関数を設定するためのGUI(Graphical User Interface)をGUI装置に表示する、
コンピュータシステム。
【請求項4】
請求項1に記載のコンピュータシステムであって、
前記パラメータは、入力画像から不良部位を特定する不良部位特定エンジンのネットワーク構造に関するハイパーパラメータ、及び/又は、前記不良部位特定エンジンのネットワークの重み係数であり、
前記1以上のプロセッサは、前記パラメータ最適化ステップにおいて、前記対象物の前記画像と前記不良部位情報とを用いて前記パラメータを最適化する、
コンピュータシステム。
【請求項5】
請求項1に記載のコンピュータシステムであって、
前記1以上のプロセッサは、前記対象物の良品画像を用いて、入力画像から疑似良品画像を推定する疑似良品画像推定エンジンに学習させる疑似良品画像推定エンジン学習ステップを更に実行し、
前記不良検出ステップは、
前記疑似良品画像推定エンジンを用いて、前記対象物の前記画像から前記疑似良品画像を推定する疑似良品画像推定ステップと、
前記対象物の前記画像と前記疑似良品画像を比較することで、前記対象物の前記不良部位を検出する画像比較ステップとを含み、
前記パラメータ最適化ステップで最適化する前記パラメータは、前記画像比較ステップで用いるパラメータである、
コンピュータシステム。
【請求項6】
請求項1に記載のコンピュータシステムであって、
前記パラメータ最適化ステップは、
前記対象物の前記画像を不良カテゴリごとに分類する分類ステップと、
前記第1関数の前記不良カテゴリごとの要素である第2関数であって、前記過検出率及び/又は前記不良検出率から前記評価値の要素である要素評価値を算出する第2関数を取得する第2関数取得ステップと、を含み、
前記1以上のプロセッサは、前記評価値算出ステップにおいて、前記不良検出ステップにおける検出結果から前記不良カテゴリごとに得られる少なくとも1つ以上の前記過検出率及び/又は前記不良検出率に対して前記第2関数がとる前記要素評価値に基づいて前記評価値を算出する、
コンピュータシステム。
【請求項7】
請求項6に記載のコンピュータシステムであって、
前記1以上のプロセッサは、前記評価値算出ステップにおいて、前記不良カテゴリごとの重要度と前記要素評価値とに基づいて前記評価値を算出する、
コンピュータシステム。
【請求項8】
請求項6に記載のコンピュータシステムであって、
前記1以上のプロセッサは、前記分類ステップにおいて、不良による致命性の程度に基づいて前記対象物の前記画像を異なる前記不良カテゴリに分類する、
コンピュータシステム。
【請求項9】
請求項1に記載のコンピュータシステムであって、
前記1以上のプロセッサは、更新された前記パラメータを用いて、製品の画像中の不良部位を検出するステップを更に実行する、
コンピュータシステム。
【請求項10】
1以上のプロセッサと、1以上のメモリリソースと、を有するコンピュータシステムが実行する外観検査方法であって、
対象物の画像を取得する画像取得ステップと、
前記対象物の前記画像中の不良部位を検出するためのパラメータを最適化するパラメータ最適化ステップと、を含み、
前記パラメータ最適化ステップは、
前記対象物の前記画像中の前記不良部位を示す不良部位情報を取得する不良部位取得ステップと、
過検出率及び/又は不良検出率から前記不良部位を検出する性能を評価する評価値を算出する第1関数を取得する第1関数取得ステップと、
前記対象物の前記画像及び前記パラメータを用いて、前記対象物の前記不良部位を検出する不良検出ステップと、
前記不良検出ステップにおける検出結果と前記不良部位情報とに基づき得られる少なくとも1つ以上の前記過検出率及び/又は前記不良検出率に対して前記第1関数がとる前記評価値を算出する評価値算出ステップと、
前記評価値が最大となるように前記パラメータを更新するパラメータ更新ステップと、を含む、
外観検査方法。
【請求項11】
請求項10に記載の外観検査方法であって、
前記第1関数から得られる前記評価値は、前記過検出率が低い領域及び/又は前記不良検出率が高い領域ほど大きい、
外観検査方法。
【請求項12】
請求項10に記載の外観検査方法であって、
前記第1関数取得ステップにおいて、前記第1関数を設定するためのGUIをGUI装置に表示する、
外観検査方法。
【請求項13】
請求項10に記載の外観検査方法であって、
前記パラメータは、入力画像から不良部位を特定する不良部位特定エンジンのネットワーク構造に関するハイパーパラメータ、及び/又は、前記不良部位特定エンジンのネットワークの重み係数であり、
前記パラメータ最適化ステップにおいて、前記対象物の前記画像と前記不良部位情報とを用いて前記パラメータを最適化する、
外観検査方法。
【請求項14】
請求項10に記載の外観検査方法であって、
前記対象物の良品画像を用いて、入力画像から疑似良品画像を推定する疑似良品画像推定エンジンを学習する疑似良品画像推定エンジン学習ステップを更に含み、
前記不良検出ステップは、
前記疑似良品画像推定エンジンを用いて、前記対象物の前記画像から前記疑似良品画像を推定する疑似良品画像推定ステップと、
前記対象物の前記画像と前記疑似良品画像を比較することで、前記対象物の前記不良部位を検出する画像比較ステップと、を含み、
前記パラメータは、前記画像比較ステップで用いるパラメータである、
外観検査方法。
【請求項15】
請求項10乃至請求項14のいずれか1項に記載の外観検査方法をコンピュータシステムに実行させる
外観検査プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム、外観検査方法、及び外観検査プログラムに関する。
【背景技術】
【0002】
機械、金属、化学、食品、及び繊維等を含む工業製品においては、検査対象物である製品を撮像して得られた画像を基にして、製品が良品か不良品かを検査する外観検査が広く行われている。外観検査では、例えば、形状不良、組立不良、異物の付着、内部の欠損や致命度、表面の傷や斑、及び汚れ等が検査される。
【0003】
これらの外観検査の多くは検査員の目視判断により行われている。一方、大量生産や品質向上への要求増大に伴い、検査コストや検査員の負荷が増大している。また、人間の感覚に基づく官能検査では特に高い経験やスキルが求められる。検査員によって評価値が異なったり、検査の度に結果が異なったりするといった属人性や再現性も課題となる。このような検査のコスト、スキル、及び属人性等の課題に対し、検査の自動化が強く求められている。
【0004】
自動外観検査は、対象物を撮像して得られた画像に基づいて、対象物が不良品(陽性)か良品(陰性)を自動で判別するものであり、自動外観検査の性能は主に過検出率と不良検出率で定義される。過検出率は、良品を不良品として誤って判別した割合であり、偽陽性率(False Positive Rate)とも呼ばれる。不良検出率は、不良品を不良品として正しく判別した割合であり、真陽性率(True Positive Rate)とも呼ばれる。
【0005】
検査対象物を不良品か良品に判別する良否判別しきい値ごとに過検出率と不良検出率を算出し、過検出率を横軸(x軸)、不良検出率を縦軸(y軸)としてプロットした曲線がROC (Receiver Operating Characteristic)曲線である。このROC曲線とx軸及びx=1.0の直線とで囲まれた部分の面積がAUROC (Area Under ROC)である。AUROCは、1に近いほど自動外観検査の性能が高いことを示す指標である。そのため、このAUROCに基づいて自動外観検査で用いる不良検出パラメータを自動で最適化する技術が検討されている。例えば、特許文献1では、ROC曲線により囲まれた領域の面積をROC評価値として算出し、このROC評価値が最良となるアルゴリズムを保存する方法が開示されている。実運用においては、過検出率が低い(0.0~0.1程度)領域での不良検出率の高さや、不良検出率が高い(0.9~1.0程度)領域での過検出率の低さが重視される。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、AUROCの値が同じであっても、過検出率が低い領域での不良検出率や不良検出率が高い領域での過検出率が異なる場合があり、AUROCを基準に不良検出パラメータを最適化しても、実運用に適した不良検出パラメータが得られない場合がある。これについて
図12A、12Bを参照して説明する。
【0008】
図12Aは、第1不良検出パラメータを用いて得られる従来例に係るROC曲線の一例である。また、
図12Bは、第2不良検出パラメータを用いて得られる従来例に係るROC曲線の一例である。
【0009】
図12Aに示すように、第1不良検出パラメータを用いて得られるROC曲線1201に対して、斜線で示す領域1202の面積(AUROC)は0.8となる。また、
図12Bに示すように、第2不良検出パラメータを用いて得られるROC曲線1203に対して、斜線で示す領域1204のAUROCも0.8となる。
【0010】
しかし、過検出率が低い領域、特に過検出率が0.0~0.1の領域では第1不良検出パラメータでのROC曲線の方が不良検出率が高く、更に不良検出率が高い領域、特に不良検出率が0.9~1.0の領域では第1不良検出パラメータでのROC曲線の方が過検出率が低い。そのため、実運用には第1不良検出パラメータの方が適していると考えられるが、AUROCに基づく最適化では、第1不良検出パラメータと第2不良検出パラメータのどちらが最適か判断できないため、実運用に適した不良検出パラメータが得られない場合がある。
【0011】
以上のように、従来の方法では、不良検出パラメータを最適化する際に用いる評価値において、過検出率が低い領域での不良検出率の高さや、不良検出率が高い領域での過検出率の低さを考慮していないため、実運用に適するように不良検出パラメータを最適化することができない。
【0012】
本発明は、このような状況に鑑みてなされたものであり、過検出率や不良検出率に基づいて不良検出パラメータを最適化することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するため、本発明一態様に係るコンピュータシステムは、1以上のプロセッサと、1以上のメモリリソースと、を有するコンピュータシステムであって、前記1以上のプロセッサは、対象物の画像を取得する画像取得ステップと、前記対象物の前記画像中の不良部位を検出するためのパラメータを最適化するパラメータ最適化ステップと、を実行し、前記パラメータ最適化ステップは、前記対象物の前記画像中の前記不良部位を示す不良部位情報を取得する不良部位取得ステップと、過検出率及び/又は不良検出率から前記不良部位を検出する性能を評価する評価値を算出する第1関数を取得する第1関数取得ステップと、前記対象物の前記画像及び前記パラメータを用いて、前記対象物の前記不良部位を検出する不良検出ステップと、前記不良検出ステップにおける検出結果と前記不良部位情報とに基づき得られる少なくとも1つ以上の前記過検出率及び/又は前記不良検出率に対して前記第1関数がとる前記評価値を算出する評価値算出ステップと、前記評価値が最大となるように前記パラメータを更新するパラメータ更新ステップと、を含む。
【発明の効果】
【0014】
本発明によれば、過検出率や不良検出率に基づいて不良検出パラメータを最適化することができる。
【0015】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0016】
【
図1】
図1は、第1実施形態に係る外観検査方法の全体の処理シーケンスの一例を示す図である。
【
図2】
図2は、対象物が実際に不良品(陽性)であるか良品(陰性)であるかと、第1実施形態の不良検出ステップにおいて不良品と判別されたか良品と判別されたかの関係を示す表の一例を示す模式図である。
【
図3】
図3は、第1実施形態における第1関数の一例を示す模式図である。
【
図4】
図4は、第1実施形態の第1関数取得ステップにおいて第1関数を取得するためのGUI (Graphical User Interface)の一例の模式図である。
【
図5】
図5は、第1実施形態で使用するニューラルネットワークの一例を示す模式図である。
【
図6】
図6は、第2実施形態におけるパラメータ最適化フェーズの処理シーケンスの一例を示す図である。
【
図7】
図7は、第2実施形態における画像比較ステップの処理シーケンスの一例を示す図である。
【
図8】
図8は、第3実施形態に係る外見検査方法の処理シーケンスの一例を示す図である。
【
図9】
図9は、第3実施形態の第2関数取得ステップにおいて第2関数を取得するためのGUIの例を示す模式図である。
【
図10】
図10は、第3実施形態の分類ステップS803において、対象物の画像を致命性の高さによって分類するためのGUIの例を示す模式図である。
【
図11】
図11は、第1~第3実施形態における外観検査方法を実行するコンピュータシステムのハードウェア構成の一例を示す図である。
【
図12A】
図12Aは、第1不良検出パラメータを用いて得られる従来例に係るROC曲線の一例である。
【
図12B】
図12Bは、第2不良検出パラメータを用いて得られる従来例に係るROC曲線の一例である。
【発明を実施するための形態】
【0017】
以下、本発明に係る一実施形態を図面に基づいて説明する。なお、実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は適宜省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似又は類似するもの等を含む。更に、実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素、及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0018】
<第1実施形態>
[外観検査方法の全体の処理シーケンス]
図1~
図4を用いて、第1実施形態における外観検査方法について説明する。
図1は、第1実施形態に係る外観検査方法の全体の処理シーケンスの一例を示す図である。
【0019】
図1に示すように、本実施形態に係る外観検査方法は、対象物101の画像103を取得する画像取得ステップS102と、対象物の画像103中の不良部位を検出するためのパラメータ(不良検出パラメータ105)を最適化するパラメータ最適化ステップS104とを有する。パラメータ最適化ステップS104は、対象物の画像103の不良部位を示す不良部位情報107を取得する不良部位取得ステップS106と、過検出率x及び/又は不良検出率yから不良部位を検出する性能を評価する評価値e(113)を算出する第1関数w(109)を取得する第1関数取得ステップS108と、対象物の画像103及び不良検出パラメータ105を用いて、対象物の不良部位を検出する不良検出ステップS110と、不良検出ステップS110における検出結果111と不良部位情報107から得られる少なくとも1つ以上の過検出率x及び/又は不良検出率yに対して第1関数w(109)がとる評価値e(113)を算出する評価値算出ステップS112と、評価値e(113)が最大となるように不良検出パラメータ105を更新するパラメータ更新ステップS114とを有する。
【0020】
従来の方法では、不良検出パラメータを最適化する際に用いる評価値において、過検出率が低い領域での不良検出率の高さや、不良検出率が高い領域での過検出率の低さを考慮していないため、実運用に適するように不良検出パラメータを最適化することができない。
【0021】
これに対して、不良検出パラメータの最適化に用いる評価値を、過検出率の低い領域と不良検出率の高い領域を重視して算出できれば、評価値が最大となるように最適化することで、実運用に適した不良検出パラメータを得られることが期待できる。そこで本実施形態では、過検出率xと不良検出率yに対する第1関数w(x,y)を用いて、過検出率や不良検出率の値に応じて重視する度合いを変更することで、実運用に適した不良検出パラメータを得ることができる。
【0022】
図1に示すように、本実施形態における処理シーケンスは、パラメータ最適化フェーズ121と検査フェーズ122とに分かれる。
【0023】
パラメータ最適化フェーズ121では、まず、対象物101を撮像して最適化用画像103を取得する(ステップS102)。最適化用画像103は、CCD(Charge Coupled Device)カメラ、光学顕微鏡、荷電粒子顕微鏡、超音波検査装置、及びX線検査装置等の撮像装置で学習用の対象物の表面又は内部をデジタル映像として撮像することで取得できる。
【0024】
次に、最適化用画像103を用いて、対象物の画像中の不良部位を検出するための不良検出パラメータ105を最適化する(ステップS104)。ステップS104の詳細については後述する。
【0025】
検査フェーズ122では、パラメータ最適化フェーズ121と同様に、実際の製品等の対象物115を撮像して検査画像117を取得する(ステップS116)。次に、ステップS104で最適化した不良検出パラメータ105を用いて検査画像117中の不良部位を検出し、検出結果119を得る(ステップS118)。最後に、不良部位が検出された検査画像117を検査員が確認し(ステップS120)、不良等があれば対策を製造プロセスにフィードバックする。
【0026】
不良検出パラメータ最適化ステップS104の詳細について説明する。このステップでは、事前に、最適化用画像103中の不良部位を示す不良部位情報107の取得(ステップS106)を複数の最適化用画像103ごとに行う。また、第1関数109の取得(ステップS108)も行う。ステップS108の詳細については後述する。
【0027】
不良部位情報107は、最適化用画像103における不良部位を示す情報である。例えば、検査員が、目視により最適化用画像103中の不良部位を確認することで不良部位情報107を生成してもよい。また、最適化用画像103を入力として、事前に設定したルールに基づいて、自動で不良部位を検出し、検出結果を不良部位情報107としてもよい。
【0028】
その後は、不良検出パラメータ105を用いて、複数の最適化用画像103の各々から不良部位を検出し、複数の最適化用画像103ごとに検出結果111を得る(ステップS110)。
【0029】
更に、検出結果111と不良部位情報107と第1関数109とに基づいて評価値113を算出し(ステップS112)、評価値113が最大となるように不良検出パラメータ105を更新する(ステップS114)ことを繰り返すことで、不良検出パラメータ105を最適化する。なお、ステップS112の詳細については後述する。
【0030】
不良検出ステップS110において不良部位が検出された場合、その対象物は不良品と判別し、それ以外の(不良部位が検出されなかった)場合、その対象物は良品と判別し、その判別結果を検出結果111とする。
【0031】
評価値算出ステップS112では、まず、検出結果111と不良部位情報107とに基づいて過検出率xと不良検出率yを算出する。過検出率xと不良検出率yの算出方法について
図2を用いて説明する。
【0032】
図2は、対象物が実際に不良品(陽性)であるか良品(陰性)であるかと、本実施形態の不良検出ステップS110において不良品と判別されたか良品と判別されたかの関係を示す表201の一例を示す模式図である。対象物が実際に不良品(陽性)であるか良品(陰性)であるかについては、不良部位情報107から特定することができる。
【0033】
不良品を正しく不良品と判別することを真陽性(True Positive)、良品を誤って不良品と判別することを偽陽性(False Positive)、不良品を誤って良品と判別することを偽陰性(False Negative)、良品を正しく良品と判別することを真陰性(True Negative)と呼び、
図2の表201では、真陽性の数をTP、偽陽性の数をFP、偽陰性の数をFN、真陰性の数をTNで表す。
【0034】
真陽性の数TPは、不良部位情報107において不良部位が示されており、かつ検出結果111において不良であることが示されている最適化用画像103の枚数である。
【0035】
偽陽性の数FPは、不良部位情報107において不良部位が示されておらず、かつ検出結果111において不良であることが示されている最適化用画像103の枚数である。
【0036】
偽陰性の数FNは、不良部位情報107において不良部位が示されており、かつ検出結果111において不良であることが示されていない最適化用画像103の枚数である。
【0037】
真陰性の数TNは、不良部位情報107において不良部位が示されておらず、かつ検出結果111において不良であることが示されていない最適化用画像103の枚数である。
【0038】
評価値算出ステップS112で算出する過検出率xは、良品を不良品として誤って判別した割合であり、FP/(TN+FP)で表される。また、不良検出率yは、不良品を不良品として正しく判別した割合であり、TP/(TP+FN)で表される。
【0039】
評価値算出ステップS112で算出する値は過検出率xと不良検出率yのいずれか1つであってもよい。過検出率xのみを算出する場合は第1関数はw(x)となり、不良検出率yのみを算出する場合は第1関数はw(y)となる。評価値算出ステップS112において過検出率xと不良検出率yの両方を算出する場合、第1関数はw(x,y)となる。
【0040】
また、過検出率xと不良検出率y以外の指標値を算出してもよい。例えば、過検出率xの代わりに、不良品と判別された対象物が実際に不良品である割合を表す適合率(TP/(TP+FP))等を算出してもよい。また、不良検出率yの代わりに、不良品を良品として誤って判別した(不良を見逃した)割合である見逃し率(FN/(TP+FN))等を算出してもよい。以降の説明では、過検出率xと不良検出率yの両方を算出する方法で説明する。
【0041】
評価値算出ステップS112の説明に戻る。過検出率xと不良検出率yを算出した後、過検出率xと不良検出率yと第1関数w(x,y)とを用いて評価値eを算出する。評価値eは、過検出率x及び/又は不良検出率yから不良部位を検出する性能を評価する値であって、例えば式(1)で算出される。
【0042】
【0043】
なお、不良検出ステップS110において検査対象物を不良品か良品に判別する良否判別しきい値{T_i (iは1からNまでの正の整数; Nはしきい値の数)}ごとに異なる検出結果を出力してもよい。但し、{T_i}は、良否判定しきい値の集合である。以下では、ある要素の集合をこのように括弧「{}」で表す。
【0044】
この場合、評価値算出ステップS112において、しきい値ごとの検出結果から過検出率{x_i}と不良検出率{y_i}とをしきい値ごとに算出し、過検出率{x_i}と不良検出率{y_i}と第1関数w(x,y)とを用いて評価値eを算出してもよい。その場合、評価値eは、例えば式(2)で算出される。
【0045】
【0046】
また、良否判別しきい値ごとに算出した過検出率{x_i}と不良検出率{y_i}を用いてROC曲線を描き、ROC曲線に対して第1関数w(x,y)で重み付けした評価値eを算出しても良い。その場合、評価値eは、例えば式(3)で算出される。
【0047】
【0048】
ここで、式(3)におけるROC(x)は、ROC曲線(過検出率xに対する不良検出率を表す関数)である。
【0049】
[第1関数w]
第1関数wについて詳細を説明する。本実施形態における第1関数wは、過検出率xが低い領域及び/又は不良検出率yが高い領域ほど値が大きい。
【0050】
前述した通り、第1関数wは、過検出率xの低い領域や不良検出率yの高い領域を重視した評価値eを算出するための関数である。第1関数wは任意の関数であるが、過検出率xの低い領域や不良検出率yの高い領域を重視し、過検出率xの低い領域と不良検出率yの高い領域において値の大きくすることで、実運用に適した不良検出パラメータを得ることができる。
【0051】
図3は、本実施形態における第1関数w(x,y)(301)の一例を示す模式図である。
図3において、白色の領域302(過検出率xの低い領域と不良検出率yの高い領域)がw(x,y)=1.0の領域であり、斜線の領域303がw(x,y)=0.0の領域である。
【0052】
図3の例のように過検出率xの低い領域と不良検出率yの高い領域において値の大きくなる第1関数wを用い、
図12A、12Bに示した第1不良検出パラメータと第2不良検出パラメータそれぞれのROC曲線に対して、式(3)で示した式で評価値eを算出すると、第1不良検出パラメータでの評価値は0.58、第2不良検出パラメータでの評価値は0.45となる。これにより、評価値の大きい結果を示す第1不良検出パラメータが実運用に適していることが分かる。
【0053】
[第1関数wの設定画面]
第1関数取得ステップS108において第1関数wを取得する方法について説明する。本実施形態では、第1関数取得ステップS108において、第1関数wを設定するためのGUI (Graphical User Interface)をGUI装置に表示する。
【0054】
基本的に第1関数wは任意の関数であるが、過検出率の低い領域と不良検出率の高い領域において値の大きくなるものが望ましい。
【0055】
しかし、検査の目的に応じて、過検出率が低いとする領域や不良検出率が高いとする領域は異なる。例えば、対象物が完成に近い場合は、不良品を出荷することは望ましくないため、不良検出率が0.98~1.0程度の領域が重視される可能性が高い。また、製造の初期過程で不良を見逃しても影響が比較的小さい場合は、検査員による確認の頻度を減らすために、過検出率が0.0~0.03程度の領域が重視される可能性が高い。
【0056】
そこで、本実施形態では第1関数wを設定するためのGUIを表示する。これにより、検査の目的に応じて第1関数wを変更でき、設定された第1関数wに基づいて評価値eを算出し、不良検出パラメータを最適化することができる。
【0057】
図4は、本実施形態の第1関数取得ステップS108において第1関数wを取得するためのGUIの一例の模式図である。このGUIを表示するGUI装置としては、例えばディスプレイやプロジェクタがある。また、GUIを見ながらユーザがボタンの押下等の入力操作を行う入力装置としては、キーボード、マウス、及びタッチパネル等がある。
【0058】
図4に示すように、GUIは、第1関数wを、事前に決められたプリセットから選択して設定するか、数式を入力して設定するかを選択するためのボタン401、402、プリセットを選択するための領域403、数式を入力するための領域404、第1関数wの値を示す領域405、第1関数wの設定を完了するためのボタン406、第1関数wの設定をキャンセルするボタン407を有している。
【0059】
プリセットから選択するボタン401をクリックし、領域403においてプリセットを選択すると、領域403に表示された関数の値が領域405に表示される。領域405においては、関数の値が大きい領域ほど白色に近い色で表示され、関数の値が小さい領域ほど黒色に近い色で表示される。
【0060】
数式を入力するボタン402をクリックし、領域404に数式を入力すると、領域404に表示された関数の値が領域405に表示される。ユーザは、領域405に表示された第1関数wの値を確認しながら、検査の目的に応じた第1関数wを設定できる。ボタン406を押すことで第1関数wの設定を終了し、ボタン407を押すことで第1関数wの設定をキャンセルすることができる。
【0061】
[不良検出パラメータ]
不良検出パラメータ105について詳細を説明する。本実施形態における不良検出パラメータ105は、入力画像から不良部位を特定する不良部位特定エンジンのネットワーク構造に関するハイパーパラメータ、及び/又は、前記不良部位特定エンジンのネットワークの重み係数である。また、本実施形態は、パラメータ最適化ステップS104において、対象物101の画像103と不良部位情報107とを用いて不良検出パラメータ105を最適化する。
【0062】
近年、深層ネットワークモデルの提案により、機械学習の性能は飛躍的に向上している。機械学習に基づく不良検出では、事前に対象物の画像を検査員が目視で不良部位を教示し、対象物の画像とその教示結果との対応を学習しておく。しかし、検査員により正確に教示していても、ネットワークモデルの構造やネットワークの重み係数の最適化が不十分な場合には、対象物の画像に対して、高い精度で、不良部位を特定できない。
【0063】
そこで本実施形態では、入力画像から不良部位を特定する不良部位特定エンジンにおけるネットワーク構造に関するハイパーパラメータやネットワークの重み係数を不良検出パラメータ105として最適化する。これにより、実運用に適した不良部位特定エンジンを得ることができる。
【0064】
図5は、本実施形態で使用するニューラルネットワークの一例を示す模式図である。本実施形態における不良部位特定エンジンとしては、
図5に示すような3層構造を持つニューラルネットワークを用いれば良い。ここで、Yは入力画像、F1(Y)、F2(Y)は中間データを示し、F(Y)が不良部位の特定結果である。なお、中間データと推定結果は以下の式(4)~(6)により算出される。
【0065】
【0066】
【0067】
【0068】
ただし,“*”は畳み込み演算を表す。ここで、U1はA1個のA0×f1×f1サイズのフィルタであり、A0は入力画像のチャネル数、f1は空間フィルタのサイズを表す。入力画像にA0×f1×f1サイズのフィルタをA1回畳み込むことでA1次元の特徴マップが得られる。B1はA1次元のベクトルでありA1個のフィルタに対応したバイアス成分である。同様に、U2はA2個のA1×f2×f2サイズのフィルタ、B2はA2次元のベクトル、U3はA0個のA2×f3×f3サイズのフィルタ、B3はA0次元のベクトルである。前述したA0は入力画像のチャネル数により決まる値である。また、f1やf2、A1、A2が不良部位特定エンジンのネットワーク構造に関するハイパーパラメータであり、U1、U2、U3、B1、B2、B3が不良部位特定エンジンのネットワークの重み係数である。これらが本実施形態におけるパラメータ最適化ステップS104において、不良検出パラメータ105として最適化する対象である。
【0069】
不良部位特定エンジンのネットワーク構造として、
図5のような構造以外にも、例えば、以下の論文(Ronneberger et al.)に記載されているネットワーク構造を用いてもよい。
【0070】
Olaf Ronneberger, Philipp Fischer, Thomas Brox, “U-Net: Convolutional Networks for Biomedical Image Segmentation”, arXiv preprint arXiv:1505.04597 (2015)
【0071】
このネットワークモデルにおける層の数、畳み込みフィルタの数やサイズ、活性化関数の種類が不良部位特定エンジンのネットワーク構造に関するハイパーパラメータであり、ノード間の重み係数が不良部位特定エンジンのネットワークの重み係数であり、これらが本実施形態におけるパラメータ最適化ステップS104において、不良検出パラメータ105として最適化する対象である。
【0072】
以上説明した本実施形態では、
図1に示したように、パラメータ最適化フェーズ121と検査フェーズ122とが含まれる。同一の事業者がパラメータ最適化フェーズ121と検査フェーズ122を行ってもよい。また、それぞれ別の事業者がパラメータ最適化フェーズ121と検査フェーズ122とを行ってもよい。この場合、例えばある事業者がパラメータ最適化フェーズ121を行うことで、評価値eが最大となるように不良検出パラメータを更新する。そして、パラメータ最適化フェーズ121を行ったのとは別の事業者が、更新されたパラメータを用いて検査フェーズを実行してもよい。これにより、実運用に適するように最適化された不良検出パラメータを用いて、実際の製品等の対象物115の検査を行うことができる。
【0073】
<第2実施形態>
図6~
図7を用いて、第2実施形態における外観検査方法について説明する。第1実施形態では、過検出率及び/又は不良検出率に対する第1関数を用いて不良検出パラメータを最適化することにより、実運用に適した不良検出パラメータを得る方法について説明した。特に、不良検出パラメータとして、入力画像から不良部位を特定する不良部位特定エンジンにおけるネットワーク構造に関するハイパーパラメータやネットワークの重み係数を最適化する方法について説明した。
【0074】
第2実施形態では、入力画像と対応する疑似良品画像を推定する疑似良品画像推定エンジンを用いて対象物の画像から疑似良品画像を推定し、対象物の画像と疑似良品画像を比較する際のパラメータを不良検出パラメータとして最適化する方法について説明する。
【0075】
なお、第2実施形態における外観検査方法の処理シーケンスにおいて、パラメータ最適化フェーズ121における画像取得ステップS102、不良部位取得ステップS106、及び第1関数取得ステップ(S108)と、検査フェーズ122は第1実施形態の
図1におけるのと同様であるため、説明を省略する。
【0076】
第2実施形態における外観検査方法は、対象物の最適化用良品画像601を用いて、入力画像から疑似良品画像を推定する疑似良品画像推定エンジン603に学習させる疑似良品画像推定エンジン学習ステップS602を更に実行する。不良検出ステップS608は、疑似良品画像推定エンジン603を用いて、対象物の画像103から疑似良品画像605を推定する疑似良品画像推定ステップS604と、対象物の画像103と疑似良品画像605を比較することで、対象物の不良部位を検出する画像比較ステップS606とを有する。パラメータ最適化ステップS104で最適化するパラメータは、画像比較ステップS606で用いるパラメータである。
【0077】
機械学習に基づく不良検出において、学習時には良品の画像と不良品の画像を大量に用意することが望ましいが、工業製品の製造ラインにおいて、少量の不良品の画像を収集することは比較的容易だが、不良品の画像を大量に収集するのは困難もしくは膨大な時間を要する場合が多い。そこで、本実施形態では、良品の画像のみを用いて学習しておき、不良検出パラメータを最適化する際には、良品の画像及び不良品の画像を用いて評価値を算出する。不良品の画像を大量に収集せずに、良品の画像のみで不良検出パラメータを最適化することができる。
【0078】
図6は、本実施形態におけるパラメータ最適化フェーズの処理シーケンスの一例を示す図である。なお、
図6において、
図1と共通する対象物101、ステップS102、S106、S108は省略する。
【0079】
まず、最適化用画像103のうち良品の画像である複数の最適化用良品画像601を用いて、疑似良品画像推定エンジン603に学習させる(ステップS702)。疑似良品画像推定エンジン603の詳細は後述するが、対象物の画像を疑似良品画像推定エンジン603に入力すると、疑似良品画像推定エンジン603は、入力画像と対応する疑似的な良品画像を推定して出力する。不良品の画像については疑似良品画像推定エンジン603に学習させない。そのため、不良品の画像を疑似良品画像推定エンジン603に入力すると、入力した不良品の画像とは異なる画像が出力される。そのため、入力画像と出力された画像を比較することで、不良部位の検出が可能となる。
【0080】
次に、複数の最適化用画像103を疑似良品画像推定エンジン603に入力し、最適化用画像103に対応した疑似良品画像605を最適化用画像103ごとに推定する(ステップS604)。
【0081】
その後、不良検出パラメータ607を用いて、最適化用画像103とそれに対応した疑似良品画像605とを比較する(ステップS606)。このような比較を全ての最適化用画像103に対して行うことで、各々の最適化用画像103中の不良部位を検出し、不良部位を示す検出結果111を最適化用画像103ごとに得る(ステップS608)。
【0082】
次いで、第1実施形態と同様に不良部位情報107、検出結果111、及び第1関数109から過検出率xと不良検出率yを求め、過検出率xと不良検出率yに基づいて評価値113を算出する(ステップS112)。
【0083】
そして、評価値113が最大となるように不良検出パラメータ607を更新する(ステップS114)ことを繰り返すことで、不良検出パラメータを最適化する。
【0084】
画像比較ステップS606の詳細について
図7を用いて説明する。
図7は、本実施形態における画像比較ステップS606の処理シーケンスの一例を示す図である。
【0085】
画像比較ステップS606では、例えば、最適化用画像103と、これから推定された疑似良品画像605の画素ごとの差分値を画素値として有する差分画像702を算出する(ステップS701)。
【0086】
次いで、差分画像702の画素値が差分しきい値708よりも大きい箇所(不良候補部位)704を検出し(ステップS703)、不良候補部位704において異常度スコア706を算出する(ステップS705)。
【0087】
次に、異常度スコア706が良否判別しきい値709よりも大きい場合には対象物が不良品であると判別し、良品か不良品かを示す検出結果111を得る(ステップS707)。
【0088】
上述した差分しきい値708や良否判別しきい値709が、本実施形態におけるパラメータ最適化ステップS104において不良検出パラメータ607として最適化する対象である。異常度スコア706としては、例えば、不良候補部位704における差分画像の画素値の総和を用いれば良い。
【0089】
疑似良品画像推定エンジン603の詳細について説明する。疑似良品画像推定エンジン603としては、例えば、不良部位特定エンジン同様に、
図5に示すような3層構造を持つニューラルネットワークや前述の論文(Ronneberger et al.)に記載されているネットワーク構造を用いればよい。
【0090】
疑似良品画像推定エンジンの学習ステップS602においては、最適化用良品画像601を入力として推定画像が入力画像と同じになるように疑似良品画像推定エンジンにおけるノード間の重み係数を最適化する。論文(Ronneberger et al.)に記載されているネットワーク構造は、画像の高次元の特徴量を一度低次元の特徴量に圧縮(エンコード)した後に、再度高次元の特徴量に復元(デコード)するエンコーダー・デコーダーモデルと呼ばれるものである。推定画像が入力の良品画像と一致するように学習することで、良品画像が入力された際には元の良品画像を復元し、不良品画像が入力された際には不良部位を復元できないため、入力画像と推定画像を比較することで不良部位において差分が大きくなることが期待できる。
【0091】
<第3実施形態>
図8~
図10を用いて、第3実施形態における外観検査方法について説明する。
図8は、第3実施形態に係る外見検査方法の処理シーケンスの一例を示す図である。なお、
図8において、
図1と共通する対象物101、ステップS102、S106は省略する。
【0092】
第1実施形態及び第2実施形態では、過検出率及び/又は不良検出率に対する第1関数を用いて不良検出パラメータを最適化することにより、実運用に適した不良検出パラメータを得る方法について説明した。第3実施形態では、不良の種類(カテゴリ)ごとに、過検出率及び/又は不良検出率に対する第2関数を用いて最適化することにより、実運用に適した不良検出パラメータを得る方法について説明する。
【0093】
なお、第3実施形態における外観検査方法の処理シーケンスにおいて、パラメータ最適化フェーズ121における画像取得ステップS102及び不良部位取得ステップS106と、検査フェーズ122は第1実施形態の
図1と同様であるため、説明を省略する。
【0094】
第3実施形態の外観検査方法において、パラメータ最適化ステップS104は、対象物の画像103を不良カテゴリc(cは1からMまでの正の整数;Mはカテゴリ数)ごとに分類する分類ステップS803と、第1関数の不良カテゴリcごとの要素である第2関数v_c(802)であって、過検出率x及び/又は不良検出率yから評価値e(213)の要素である要素評価値d_cを算出する第2関数v_c(802)を取得する第2関数取得ステップS801とを有する。評価値算出ステップS805において、不良検出ステップS110における検出結果111から不良カテゴリcごとに得られる少なくとも1つ以上の過検出率x及び/又は不良検出率yに対して第2関数v_c(802)がとる要素評価値d_cに基づいて評価値e(213)を算出する。
【0095】
工業製品の製造ラインにおいて発生する不良は多種多様であり、不良の種類(カテゴリ)によって対象物に与える影響は異なるため、一般的に、不良カテゴリごとに要求される過検出率や不良検出率も異なる。例えば、本来は穴をあける場所に穴があいていない加工漏れのような不良は、対象物の性能への悪影響が大きいため、非常に高い不良検出率(0.98~1.0程度)が求められる。一方、切削加工の痕などの微細な傷は、対象物の性能への影響は小さい場合が多いため、低い過検出率が求められる。
【0096】
しかし、従来は、不良のカテゴリによって重視する項目が異なる場合に、適切な不良検出パラメータを得ることができない。そこで、本実施形態では、第1実施形態及び第2実施形態における第1関数を構成する要素として、不良カテゴリごとの第2関数を用いる。これにより、不良のカテゴリによって重視する項目が異なる場合でも適切な不良検出パラメータを得ることができる。
【0097】
本実施形態では、まず不良カテゴリc(cは1からMまでの正の整数;Mはカテゴリ数)ごとの第2関数v_c(802)を取得する(ステップS801)。
【0098】
次いで、複数の最適化用画像103を不良カテゴリごとに分類し(S803)、その分類結果を示す分類結果804を得る。
【0099】
そして、不良検出パラメータ105を用いて、複数の最適化用画像103の各々の不良部位を検出し、その検出結果111を最適化用画像103ごとに得る(ステップS110)。
【0100】
次に、検出結果111、不良部位情報107、分類結果804、及び第2関数v_c(802)に基づいて、不良カテゴリcごとに要素評価値d_c(807)を算出する(ステップS806)。なお、ステップS806の詳細については後述する。
【0101】
次に、要素評価値{d_c}を用いて評価値e(113)を算出し(ステップS808)、評価値e(113)が最大となるように不良検出パラメータ105を更新する(ステップS114)。そして、ステップS806、S808、S114を繰り返すことで、不良検出パラメータを最適化する。
【0102】
要素評価値算出ステップS806では、不良カテゴリc(cは1からMまでの正の整数;Mはカテゴリ数)ごとに、検出結果111及び不良部位情報107に基づいて過検出率{x_(i, c) (iは1からNまでの正の整数; Nはしきい値の数)}と不良検出率{y_(i, c)}とを算出し、第1実施形態の式(1)~(3)においてeをd_cに置き換えた式で要素評価値d_cを算出する。
【0103】
なお、式(2)を用いて要素評価値d_cを算出する場合、x_iとy_iをそれぞれx_(i, c)とy_(i, c)に置き換える。また、式(3)を用いて要素評価値d_cを算出する場合、不良カテゴリc及び良否判別しきい値T_iごとに算出した過検出率{x_(i, c)}と不良検出率{y_(i, c)}を用いて、不良カテゴリcごとのROC曲線を描き、ROC曲線に対して第2関数v_c(x,y)で重み付けすることで要素評価値d_cを算出する。
【0104】
[不良カテゴリcごとの重要度p_c]
評価値算出ステップS805において、要素評価値を用いて評価値を算出する方法について詳細を説明する。本実施形態における評価値算出ステップS805は、不良カテゴリcごとの重要度p_c(810)と要素評価値d_cとに基づいて評価値e(113)を算出する。
【0105】
前述したように、工業製品の製造ラインにおいて発生する不良は多種多様である。実運用において、不良カテゴリごとに重要度は異なり、重要度の高い不良カテゴリは重要度の低い不良カテゴリよりも優先して検出・対策することが重要となる。例えば、発生頻度の多い不良カテゴリを、発生頻度の少ない不良カテゴリより優先して対策することで、不良率を早期に低減することができる。
【0106】
しかし、従来は、重要度の高い不良カテゴリを優先して検出することは困難である。そこで、本実施形態では、不良カテゴリcごとの重要度p_cを用いて、要素評価値d_cに対して重み付けして評価値を算出する。これにより、評価値の算出において重要度の高い不良カテゴリの寄与率を高めることができ、結果として、重要度の高い不良カテゴリを優先した検出が可能となる。
【0107】
本実施形態におけるパラメータ最適化フェーズ121では、不良カテゴリcごとの重要度p_c(810)を取得し(ステップS809)、重要度{p_c}及び要素評価値{d_c}を用いて評価値eを算出する(ステップS808)。評価値eは例えば、式(7)で算出される。
【0108】
【0109】
重要度p_cは、不良カテゴリごとに事前に決められた値を用いても良く、GUIなどを用いてユーザの入力によって決定しても良い。
【0110】
[不良カテゴリcごとの第2関数v_cの設定画面]
図9は、本実施形態の第2関数取得ステップS801において第2関数を取得するためのGUIの例を示す模式図である。このGUIを表示するGUI装置としては、例えばディスプレイやプロジェクタがある。また、GUIを見ながらユーザがボタンの押下等の操作を行う入力装置としては、キーボード、マウス、及びタッチパネル等がある。
【0111】
GUIは、不良カテゴリを選択する領域901、領域901で選択された不良カテゴリに関して、第2関数を事前に決められたプリセットから選択して設定するか、数式を入力して設定するか選択するためのボタン902、903、プリセットを選択するための領域904、数式を入力するための領域905、第2関数の値を示す領域906、第2関数の設定を完了するためのボタン907、第2関数の設定をキャンセルするボタン908を有している。
【0112】
領域901において不良カテゴリを選択すると、選択した不良カテゴリに対する第2関数を設定できるようになる。プリセットから選択するボタン902をクリックし、領域904においてプリセットを選択すると、領域904に表示された関数の値が領域906に表示される。領域906においては、関数の値が大きい領域ほど白色に近い色で表示され、関数の値が小さい領域ほど黒色に近い色で表示される。
【0113】
数式を入力するボタン903をクリックし、領域905に数式を入力すると、領域905に表示された関数の値が領域906に表示される。ユーザは、領域906に表示される第2関数の値を確認しながら、不良カテゴリに応じて第2関数を設定できる。ボタン907を押すことで第2関数の設定を終了し、ボタン908を押すことで第2関数の設定をキャンセルすることができる。
【0114】
なお、
図9の例では、第2関数をラベル「v」で表示しているが、上記のようにカテゴリcごとに異なるラベル「v_c」で第2関数を表してもよい。
【0115】
[不良カテゴリ]
分類ステップにおいて分類する不良カテゴリについて説明する。本実施形態における分類ステップS803は、不良による致命性の程度に基づいて対象物の画像103を異なる不良カテゴリに分類する。
【0116】
前述したように、工業製品の製造ラインにおいて発生する不良は多種多様である。実運用においては、その不良が発生した場合に、製造ラインや対象物の性能に対する悪影響が大きい不良を致命性の高い不良として扱い、致命性の高い不良には高い不良検出率(0.98~1.0程度)が求められる。一方、致命性の低い不良には低い過検出率が求められる。
【0117】
しかし、従来の外観検査方法では、致命性の高い不良と致命性の低い不良が混在している場合に、実運用に適した不良検出パラメータを得ることができない。そこで、本実施形態では、対象物の画像を、致命性の程度によって異なる不良カテゴリに分類し、不良カテゴリごとに異なる第2関数を用いて評価値を算出し、不良検出パラメータを最適化する。これにより、例えば、致命性の高い不良に対しては不良検出率の高さを重視し、致命性の低い不良に対しては過検出率の低さを重視した不良検出パラメータを得ることができる。
【0118】
図10は、本実施形態の分類ステップS803において、対象物の画像を致命性の程度によって分類するためのGUIの例を示す模式図である。
【0119】
GUIは、対象物の画像1001~1004ごとに、不良カテゴリを分類する領域1005~1008、分類を完了するためのボタン1012、分類をキャンセルするボタン1013を有している。
【0120】
図10の例では、画像1001には欠け不良1009が含まれ、画像1002には傷不良1010が含まれ、画像1014には異物不良1011が含まれる。対象物の画像ごとに領域1005~1008において、不良カテゴリを選択することで分類を行い、ボタン1012を押すことで不良カテゴリの分類を終了し、ボタン1013を押すことで分類をキャンセルすることができる。
【0121】
図10の例においては、画像1001は致命性の高い不良であることを示す致命不良に分類されており、画像1002は致命性の低い不良であることを示す非致命不良に分類されている。また、画像1003は対象物が不良品ではないことを示す良品に分類されており、画像1004はいずれの不良カテゴリ又は良品に分類されていな状態を示す未分類となっている。
【0122】
図10では、不良カテゴリとして、致命不良と非致命不良の2カテゴリに分類する例について説明したが、これらのカテゴリ以外の不良カテゴリ、例えば不良のサイズによって異なる不良カテゴリに分類しても良い。また、3つ以上の不良カテゴリに分類できるようにしても良い。GUIにより対象物の画像を分類する例を説明したが、畳み込みニューラルネットワークなどにより入力画像を自動で分類する分類エンジンを用いてもよい。また、対象物の画像を入力として、事前に設定したルールに基づいて、自動で分類してもよい。
【0123】
[コンピュータシステム]
図11は、第1~第3実施形態における外観検査方法を実行するコンピュータシステムのハードウェア構成の一例を示す図である。
【0124】
コンピュータシステムは、撮像装置1101とコンピュータ1102により構成される。撮像装置1101の例は、第1実施形態で説明したように、CCDカメラ、光学顕微鏡、荷電粒子顕微鏡、超音波検査装置、及びX線検査装置等である。
【0125】
コンピュータ1102は、本実施形態で説明した外観検査方法を処理する構成物であり、以下を有する。
【0126】
プロセッサ1103:プロセッサ1103の例としてはCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)が考えられるが、外管検査方法を処理できるのであれば、ほかの構成物であってもよい。プロセッサ1103は、コンピュータ1102に1以上含まれてもよい。
【0127】
メモリリソース1104:メモリリソース1104の例としてはRAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、不揮発メモリ(フラッシュメモリ等)が考えられる。当該メモリリソースは、第1~第3実施形態で説明した外観検査方法をプロセッサに実行させるプログラム(外観検査プログラムと呼ぶ)を格納してもよい。メモリリソース1104は、コンピュータ1102に1以上含まれてもよい。
【0128】
GUI装置1105:GUI装置1105の例としては、前述のようにディスプレイやプロジェクタ等が考えられるが、GUIを表示ができるのであれば、ほかの装置でもよい。
【0129】
入力装置1106:入力装置1106の例としては、前述のようにキーボード、マウス、タッチパネルが考えられるが、ユーザからの操作を受け付けられる構成物であれば他の装置でもよい。また、入力装置1106とGUI装置1105とは一体の装置であってもよい。
【0130】
通信インターフェース1107: 通信インターフェース1107の例としては、USB(Universal Serial Bus)、ETHERNET(登録商標)、Wi-Fiといった例が考えられる、撮像装置1101から画像を直接受信できたり、又はユーザが当該画像をコンピュータ1102に送信できたりするインターフェースであれば、ほかのインターフェース装置であってもよい。また、当該通信インターフェース1107に、当該画像を格納した可搬不揮発記憶媒体(例えばフラッシュメモリ、DVD(Digital Versatile Disc)、CD(Comact Disk)-ROM、ブルーレイディスク等の)を接続し、コンピュータ1102に当該画像を格納してもよい。
【0131】
以上が計算機のハードウェア構成である。なお、コンピュータシステムを構成するコンピュータ1102は複数であってもよく、撮像装置1101が複数であってもよい。
【0132】
なお、前述の外観検査プログラムは、以下の経路でコンピュータ1102に格納されてもよい。
【0133】
外観検査プログラムを不揮発性の可搬不揮発記憶媒体に格納し、当該媒体を通信インターフェース1107に接続することで、当該プログラムをコンピュータ1102に配布する。
【0134】
プログラム配信サーバにより外観検査プログラムをコンピュータ1102に配信する。なお、プログラム配信サーバは、外観検査プログラムを格納したメモリリソースと、外観検査プログラムを配信する配信処理を行うプロセッサと、コンピュータの通信インターフェースと通信可能である通信インターフェース、とを有する。
【0135】
以上で実施形態の説明を終える。前述の通り、これまで説明した実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0136】
例えば、以上に説明したコンピュータシステムの各構成、機能、処理手段、及び各部等は、それらの一部または全部を、外観検査プログラムをプロセッサ1103で実行することで実現することが例である。しかし、これらの一部又は全てを集積回路で設計する等によりハードウェアで実現してもよい。また、コンピュータシステムは、各プログラムにより実現される機能や処理の一部又は全部をユーザ(オペレータ)が実施することで、システムを実現してもよい 。
【0137】
なお、コンピュータシステムがGUI装置1105を持たず、代わりにシステム外部のスマートフォンやタブレット等のプロセッサシステム(外部プロセッサシステムと呼ぶ)に、ユーザへの出力処理や、ユーザからの入力処理の一部を任せる場合がある。このような場合、コンピュータシステム(又はプロセッサ1103、外観検査プログラム)は、以上に説明に説明の通りの処理やプログラムの他の部分を実行するために、以下を行ってもよい。
【0138】
以上に説明のGUI装置1105を用いたユーザへの出力の代わりとして、通信インターフェース1107を介して外部プロセッサシステムに、ユーザへの出力に必要なデータの送信をする。当該データの例としては、出力するデータそのもの、出力データを別プロセッサシステムで生成するためのデータが考えられるが、外部プロセッサシステムでユーザ出力を行う処理が記述されたプログラムやWebデータであってもよい。
【0139】
以上に説明の入力装置1106を用いたユーザからの入力又は操作受信の代わりとして、通信インターフェース1107を介して外部プロセッサシステムから、ユーザ入力又は操作を示すデータを受信する。
【0140】
別な視点では、ユーザへのデータ出力の意味は、コンピュータシステム自身が行うことも含む以外に、コンピュータシステム以外の別の存在に当該データ出力をさせる(使役)ことを含めてもよい。また、ユーザからの入力又は操作受信の意味は、コンピュータシステムの入力装置1106でユーザが直接入力をする以外に、コンピュータシステムが間接的に入力の受信をすることを含めてもよい。
【符号の説明】
【0141】
101、115…対象物、103…最適化用画像、105…不良検出パラメータ、107…不良部位情報、109…第1関数、111、119…検出結果、113…評価値、117…検査画像、121…パラメータ最適化フェーズ、122…検査フェーズ、302、303、403~405、901、904~906、1005~1008…領域、401、402、406、407、902、903、907、908、1012、1013…ボタン、601…良品画像、601…最適化用良品画像、603…疑似良品画像推定エンジン、605…疑似良品画像、607…不良検出パラメータ、702…差分画像、704…不良候補部位、706…異常度スコア、708…差分しきい値、709…良否判別しきい値、804…分類結果、1001~1004、1014…画像、1009…欠け不良、1010…傷不良、1011…異物不良、1101…撮像装置、1102…コンピュータ、1103…プロセッサ、1104…メモリリソース、1105…GUI装置、1106…入力装置、1107…通信インターフェース、1201、1203…ROC曲線、1202、1204…領域。