(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-29
(45)【発行日】2022-09-06
(54)【発明の名称】照明条件を設定する方法、装置、システム及びプログラム並びに記憶媒体
(51)【国際特許分類】
G01N 21/88 20060101AFI20220830BHJP
【FI】
G01N21/88 Z
(21)【出願番号】P 2020543616
(86)(22)【出願日】2018-03-06
(86)【国際出願番号】 IB2018051413
(87)【国際公開番号】W WO2019171124
(87)【国際公開日】2019-09-12
【審査請求日】2020-11-04
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100081961
【氏名又は名称】木内 光春
(74)【代理人】
【識別番号】100112564
【氏名又は名称】大熊 考一
(74)【代理人】
【識別番号】100163500
【氏名又は名称】片桐 貞典
(74)【代理人】
【識別番号】230115598
【氏名又は名称】木内 加奈子
(72)【発明者】
【氏名】成瀬 洋介
(72)【発明者】
【氏名】栗田 真嗣
【審査官】横尾 雅一
(56)【参考文献】
【文献】特開2012-189390(JP,A)
【文献】特開2004-191112(JP,A)
【文献】国際公開第2015/188275(WO,A1)
【文献】特開2001-343336(JP,A)
【文献】特開2017-122580(JP,A)
【文献】中国特許出願公開第107576618(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01N 21/84 - G01N 21/958
G01N 21/00 - G01N 21/61
(57)【特許請求の範囲】
【請求項1】
検査モジュールは、対象を検査するために使用する機械学習モデルを含み、前記機械学習モデルは、画像を含む学習データを使用することによって生成される方法において、前記対象が撮像される際の照明条件を規定する照明パラメータを変更できる光源によって前記対象を照明し、複数の照明パラメータでイメージセンサによって前記対象を撮像し、前記複数の照明パラメータに対応する撮像画像を取得し、前記対象は既知のラベルデータを 有することと、
前記対象の前記複数の照明パラメータに対応する前記撮像画像の一部または全て及び対応する前記ラベルデータを前記機械学習モデルの学習に適用し、前記機械学習モデルの推定結果と前記対象の前記ラベルデータの比較結果に基づいて、前記照明パラメータ及び検査アルゴリズムパラメータの両方を同時に最適化することで、前記機械学習モデルの前記照明条件と前記検査アルゴリズムパラメータの両方を同時に設定することと、
を含み、
前記検査モジュールを使用して前記対象を検査する際の前記照明条件の設定は、
前記比較結果を表す損失関数を最小化する、損失関数の変数である前記照明パラメータ を選択することを含み、
前記選択は、所定の
数値範囲の前記照明パラメータについて、前記損失関数の損失平均を最 小化する前記照明パラメータを選択することを含む、
ことを特徴とする対象を検査する際の照明条件を設定する方法。
【請求項2】
前記照明パラメータは、光源の発光位置と発光強度を含む、請求項1に記載の方法。
【請求項3】
検査モジュールは、対象を検査するために使用する機械学習モデルを含み、前記機械学習モデルは、画像を含む学習データを使用することによって生成される装置において、
前記対象に関する撮像画像を取得する取得ユニットであって、前記対象が撮像される際の前記照明条件を規定する照明パラメータを変更することができる光源によって照明し、複数の照明パラメータでイメージセンサによって前記対象を撮像し、前記複数の照明パラメータに対応する前記撮像画像を取得し、前記対象は既知のラベルデータを有する取得ユニットと、
前記対象の前記複数の照明パラメータに対応する前記撮像画像の一部または全て及び対応する前記ラベルデータを機械学習モデルの学習に適用し、前記機械学習モデルの推定結果と前記対象の前記ラベルデータの比較結果に基づいて、前記照明パラメータ及び検査アルゴリズムパラメータの両方を同時に最適化することで、前記機械学習モデルの前記照明条件と前記検査アルゴリズムパラメータの両方を設定する設定ユニットと、
を含み、
前記照明条件の設定において、前記設定ユニットは、
前記比較結果を表す損失関数を最小化する、損失関数の変数である前記照明パラメータを選択し、
前記選択は、所定の
数値範囲の前記照明パラメータについて、前記損失関数の損失平均を最小化する前記照明パラメータを選択することを含む、ことを特徴とする対象を検査する際の照明条件を設定する装置。
【請求項4】
前記照明条件を設定するとき、最適な照明条件を見つけるために既に学習を実行した機械学習モデルに適用される前記撮像画像の数は、前記機械学習モデルの学習に適用される前記撮像画像の数よりも少ない、請求項3に記載の装置。
【請求項5】
前記照明パラメータは、光源の発光位置と発光強度を含む、請求項3に記載の装置。
【請求項6】
請求項1または2に記載の方法を実行する処理部を備えることを特徴とする、対象を検査する際の照明条件を設定するシステム。
【請求項7】
実行されると、請求項1または2に記載の方法を実行することを特徴とするプログラム。
【請求項8】
プログラムを記憶し、前記プログラムが実行されると、請求項1または2に記載の方法を実行することを特徴とする、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、工業用検出中に照明条件を設定する方法、装置、システム及びプログラム並びに記憶媒体に関する。
【背景技術】
【0002】
生産現場での製品の外観検査は、人と機械の入れ替えが最も少ない分野の一つであり、今後の人員削減のための自動化は、解決しなければならない重要な技術的課題である。近年、深層学習に代表される人工知能や機械学習技術の発達に伴い、検査自動化技術が飛躍的に向上している。しかしながら、外観検査やマシンビジョン等において、検査システム構築時における最も煩わしいフローは、照明の最適設計を含めたイメージングシステムの設計である。オペレーターが最適な照明設計を手動で行う場合、ワークの個体差に対応するために、対象として決定されたワークを変更し、手動調整ベースでの照明の最適化と検査アルゴリズムの調整を同時に交互に繰り返し実行して、予期される検出パフォーマンスを達成する必要があり、非常に時間がかかるという問題が存在する。さらに、照明がオペレーターによって容易に監視できるように調整されている場合、最適な検査精度が常に達成されるとは限らないという問題も存在する。
【0003】
これらの問題を解決する従来技術として、撮像画像に基づいて評価基準を算出し、それを最大化/最小化する結像及び照明パラメータを繰り返し算出する方法が存在する(特許文献1)。しかしながら、この方法によれば、現在撮像されている1つのワークの撮像画像に基づいて算出された評価値の最適化を実施することしかできず、複数のワーク間の差異の学習等の機械学習に基づく認識器(recognizer)の最適化を実施できない場合がある。
【0004】
さらに、多数の組み合わせの結像及び照明パラメータが存在する可能性があり、同時に結像条件及び照明の条件の変更、結像及び最適化を実行すると、相対的に長い時間がかかる場合があるという問題も存在する。
【0005】
さらに、上記の問題は、生産現場での製品の外観検査中だけでなく、照明を当てた対象の撮像画像を入力として使用でき、機械学習によって様々な判定を行う他の判定装置(例えば、顔識別システム)にも存在する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、前述の問題の少なくとも一部または全てを解決するために採用される。
【課題を解決するための手段】
【0008】
本発明は、機械学習ベースでの検査アルゴリズムのパラメータが照明の設計パラメータを含むという条件下で検査アルゴリズムのパラメータを最適化する方法を開示する。したがって、使用者は、検査アルゴリズムの損失値(判定条件下での正確率)を最大化する方法で、照明の最適化と検査アルゴリズムの最適化を同時に直接行うことができる。
【0009】
(1)本発明の一態様によれば、対象を検査する際の照明条件を設定する方法であって、画像を含む学習データを使用することにより生成された機械学習モデルを含む検査モジュールを使用して対象を検査する方法において、対象が撮像される際の照明条件を規定する照明パラメータを変更できる光源によって対象を照明し、複数のそのような照明パラメータでイメージセンサによって対象を撮像し、複数の照明パラメータに対応する複数の撮像画像を取得し、対象は既知のラベルデータを有することと、前記対象の複数の照明パラメータに対応する複数の撮像画像の一部または全て及び対応するラベルデータを機械学習モデルの学習に適用し、機械学習モデルの推定結果と対象のラベルデータの比較結果に基づいて、照明パラメータ及び検査アルゴリズムパラメータの両方を同時に最適化することで、機械学習モデルの照明条件照明条件及び検査アルゴリズムパラメータの両方を同時に設定することを含む、ことを特徴とする方法を開示する。
【0010】
したがって、機械学習モデルの推定結果と対象のラベルデータの比較結果に基づいて、検査モジュールを用いて対象を検査する際に採用する照明条件を設定し、機械学習モデルの照明パラメータ及び検査アルゴリズムパラメータの最適化を同時に実行でき、操作も簡略化される。
【0011】
(2)本発明の別の態様によれば、対象を検査する際の照明条件を設定する方法であって、画像を含む学習データを使用することにより生成された機械学習モデルを含む検査モジュールを使用して対象を検査する方法において、対象が撮像される際の照明条件を規定する照明パラメータを変更できる光源によって対象を照明し、複数のそのような照明パラメータでイメージセンサによって対象を撮像し、複数の照明パラメータに対応する複数の撮像画像を取得し、対象は既知のラベルデータを有することと、複数の照明パラメータに対応する複数の撮像画像の一部または全てを、既に学習を実行した機械学習モデルに適用し、機械学習モデルの推定結果と対象のラベルデータとの比較結果に基づいて、所定の照明パラメータの選択のみを最適化して照明条件を設定することを含む、ことを特徴とする方法を開示する。
【0012】
前述の方法では、最初に検査アルゴリズムパラメータを決定し、次に検査照明パラメータを決定する方法で、機械学習モデルの学習中のシステム演算量を削減し、システム負荷を低減し、照明パラメータの設定操作を簡略化することができる。
【0013】
(3)前述の方法において、既に学習を実行した機械学習モデルに、複数の照明パラメータに対応する撮像画像の一部または全てを適用する操作は、機械学習モデルの検査アルゴリズムパラメータの一部または全てを更新するために、対象の撮像画像及び対応するラベルデータを含む学習データを機械学習モデルの追加学習に適用し、ラベルデータは対象の検査特徴を表すことと、機械学習モデルの推定結果がラベルデータと一致するように、機械学習モデルの照明パラメータと一部または全ての検査アルゴリズムパラメータの両者の選択を最適化することと、を含む。
【0014】
この方法により、方法の第2ステップで検査アルゴリズムパラメータ及び検査照明パラメータの一部または全てを同時に最適化するので、機械学習モデルはより良い学習結果を得ることができる。
【0015】
(4)前述の方法において、照明条件を設定するとき、最適な照明条件を見つけるために既に学習を実行した機械学習モデルに適用される撮像画像の数は、機械学習モデルの学習に適用される撮像画像の数よりも少ない。
【0016】
したがって、学習時間を短縮することができる。
【0017】
(5)前述の方法において、照明パラメータは、光源の発光位置及び発光強度を含む。
【0018】
したがって、光源の発光位置及び発光強度の両方を変更して、照明パラメータを変更することができる。
【0019】
(6)前述の方法において、検査モジュールを使用して対象を検査する際の照明条件の設定の操作は、比較結果を表す損失関数を最小化する、損失関数の変数である照明パラメータを選択することを含み、前記選択は、所定の範囲の照明パラメータについて、損失関数の損失平均を最小化する照明パラメータを選択することを含む。
【0020】
ここで、所定の範囲の照明パラメータを考慮することで、対象を検査する際の環境変化に対するロバスト性を向上させることができる。
【0021】
(7)本発明の他の態様によれば、前述した各方法に対応し、対象を検査する際の照明条件を設定する様々な装置がさらに開示され、前述した各方法と同じ効果を達成することができる。
【0022】
(8)本発明の別の態様によれば、対象を検査する際の照明条件を設定するシステムがさらに開示される。システムは、処理部を含んでも良く、前述した任意の方法を実行するように構成することができる。
【0023】
(9)本発明の別の態様によれば、前述した任意の方法を実行するために実行されるプログラムがさらに開示される。
【0024】
(10)本発明の別の態様によれば、前述した任意の方法を実行するために実行されるプログラムが記憶される記憶媒体がさらに開示される。
【0025】
システム、プログラム、及び記憶媒体も、前述した各方法と同じ効果を達成することができる。
【発明の効果】
【0026】
本発明の2つの効果を実質的に列挙する。まず、設計時間を短縮し、体系的な設計を得ることができ、パフォーマンスがスタッフのスキルに依存することで表れる個別化されたスキルを回避することができる。次に、性能の観点から、撮像システム全体及び画像処理システム全体の直接の最適化は、例えば、検査アルゴリズムに好適な照明設計や、そのような照明に最も適した検査アルゴリズム等、検査の精度(合格/不合格の製品判定または測定値)の角度のみから実現することができる。
【図面の簡単な説明】
【0027】
本明細書で説明される図面は、本発明のさらなる理解を提供するために使用され、本発明の一部を構成する。本発明の概略的な実施形態及びその説明は、本発明を説明するために使用され、本発明に対する不適切な限定を構成しない。
【0028】
【
図1】本発明の実施形態に係る検査システムのシステム構成例の概略図である。
【
図2】本発明の実施形態に係る欠陥検査装置のハードウェア構成の概略図である。
【
図3】は、本発明の実施形態による欠陥検査装置の機能モジュールの概略図である。
【
図4】
図4の(a)と(b)は、それぞれ、本発明の実施形態による照明条件を設定する方法における機械学習モデルの学習段階及び検査段階のフローチャートである。
【
図5】は、本発明の実施形態による照明条件を設定する方法のフローチャートである。
【
図6】
図4及び
図5に示す照明条件を設定する方法の概略的なフローチャートである。
【
図7】
図7の(a)と(b)は、それぞれ、本発明の別の実施形態による照明条件を設定する方法における機械学習モデルの学習段階及び検査段階のフローチャートである。
【
図8】
図8の(a)及び(b)は、それぞれ、
図7に示す照明条件の設定方法の一変化例における機械学習モデルの学習段階及び検査段階のフローチャートである。
【
図9】本発明の別の実施態様による照明条件を設定する方法のフローチャートである。
【
図10】は、本発明の別の実施形態による照明条件を設定する方法のフローチャートである。
【発明を実施するための形態】
【0029】
当業者が本発明をよりよく理解できるように、本発明の実施形態を、本発明の図面と組み合わせて、以下に明確かつ完全に説明する。明らかに、説明される実施形態は、実施形態の全てではなく、本発明の実施形態の一部にすぎない。本発明の実施形態に基づいて当業者によって創造的な努力なしに得られる他の全ての実施形態は、本発明の保護範囲に含まれるものとする。
【0030】
本発明では、例えば、採用可能な全ての結像条件で対象を事前に撮像し、所望の設定条件に応じて適切な画像を選択することができる。結像条件が離散化されている限り、制限がないという利点がある。照明パターンに加え、絞りやシャッター速度等を変更することができる。また、連続結像条件の場合は離散化することができる。さらに、ワーク数がM、結像条件数がNの場合、M×N枚の画像を取得することができ、ストレージ、サーバー側、またはクラウド側に保存することができる。
【0031】
本発明では、可変照明パラメータを有する複数の光源によって対象を照明する。照明パラメータは、例えば、光源の発光位置、発光強度及び色度(chromaticity)を含んでも良い。照明条件下で、イメージセンサ(例えば、カメラ)により対象を撮像し、撮像画像を取得する。対象の撮像画像、対応する照明パラメータ、及びラベルデータを使用して機械学習モデルを訓練し、機械学習モデルに対象を検査する能力を付与する。撮像画像は、照明パラメータに事前に関連付けることができるので、機械学習モデルを訓練するプロセスにおいて、照明パラメータ及び検査アルゴリズムパラメータを同時に調整することができる。ここで、「検査アルゴリズムパラメータ」とは、機械学習モデルで対象を検査する際の検査アルゴリズムのパラメータを指す。したがって、学習用の撮像画像を取得するために、照明パラメータ及び照明パラメータにより純粋に照明を調整する場合と比較して、本発明の対象を検査する方法では、操作が簡略化され、システム負荷が低減される。
【0032】
図面を参照し、本発明の実施形態を詳細に説明する。図面中、同一または対応する部分には同一の符号を付し、重複する説明は省略することに留意することが重要である。
【0033】
まず、本発明の実施形態に係る検査システム1のシステム構成例について説明する。実施形態に係る検査システム1は、被検査対象を撮像して生成した撮像画像に基づいて、被検査対象を検査する。被検査対象は、生産ライン上のワークであっても良い。検査は、例えば、ワークの外観検査または外観測定であっても良い。
【0034】
図1は、実施形態に係る検査システム1のシステム構成例の概略図である。
図1を参照すると、検査システム1は、撮像により取得した入力画像、例えばベルトコンベア2上を搬送される被検査対象、すなわちワーク4に対して画像解析処理を実行し、これにより、ワーク4の外観検査または外観測定を完了する。以下の説明では、画像解析処理の代表例として、ワーク4の表面に欠陥の有無を確認する応用例を説明する。ただし、これらに限定されるものではなく、検査システムは、欠陥の種類の特定や、外観形状の測定などにも適用できる。
【0035】
ベルトコンベア2の上部には、結像手段としてのカメラ102が設けられており、カメラ102のイメージングビュー6は、ベルトコンベア2を含む所定の領域を形成する。カメラ102の結像により生成された画像データ(以下「入力画像」という)は、欠陥検査装置100に送信される。カメラ102の結像は、周期やイベントに応じて実行される。
【0036】
欠陥検査装置100は、学習器を備えても良く、学習器は、畳み込みニューラルネットワーク(CNN)エンジンを備えても良い。CNNエンジンを介して、入力画像に基づき各レベルの特徴検出画像を生成する。生成した1枚または複数枚の特徴検出画像に基づき、対象ワークに欠陥があるか否かを判定する。あるいは、欠陥の大きさ、位置等を検出することもできる。
【0037】
欠陥検査装置100は、上位層ネットワーク8を介して、プログラマブルロジックコントローラ(PLC)10、データベース装置12等と接続されている。欠陥検査装置100における検出結果は、PLC10及び/またはデータベース装置12に送信されても良い。PLC10及びデータベース装置12に加え、任意の装置が上位層ネットワーク8に接続されても良いことに留意することが重要である。
【0038】
欠陥検査装置100には、処理状況や検出結果等を表示するディスプレイ104や、使用者の操作を受け付ける入力部としてのキーボード106やマウス108が接続されていても良い。
【0039】
次に、本発明の実施形態に係る検査システム1に含まれる欠陥検査装置100のハードウェア構成について説明する。
【0040】
図2は、実施形態に係る欠陥検査装置100のハードウェア構成の概略図である。欠陥検査装置100は、本発明における「対象を検査する際の照明条件を設定するシステム」の一例であってよい。
図2を参照すると、一例として、欠陥検査装置100は、汎用コンピュータアーキテクチャによって形成された汎用コンピュータに従って実現されても良い。欠陥検査装置100は、プロセッサ110、メインメモリ112、カメラインターフェース114、入力インターフェース116、ディスプレイインターフェース118、通信インターフェース120及びメモリ130を含む。通常、これらの部材は内部バス122を介して接続され、それによって互いに通信する。
【0041】
プロセッサ110は、メインメモリ112のメモリ130に格納されたプログラムを実行することにより、以下に説明する機能及び処理を実現する。メインメモリ112は不揮発性メモリからなり、プロセッサ110のプログラム実行に必要なワーキングメモリの機能を実現する。
【0042】
カメラインターフェース114は、カメラ102と接続され、カメラ102の結像により得られた入力画像を取得する。カメラインターフェース114は、さらに、カメラ102に結像タイミングなどを指示しても良い。
【0043】
入力インターフェース116は、キーボード106やマウス108等の入力部と接続されており、入力部等に対する使用者の操作により表される指示を受け取る。
【0044】
ディスプレイインターフェース118は、ディスプレイ104に接続されており、プロセッサ110のプログラム実行により生成された各種処理結果をディスプレイ104に出力する。
【0045】
通信インターフェース120は、上位層ネットワーク8を介して、PLC10、データベース装置12等との通信処理を担当する。
【0046】
画像処理プログラム132やオペレーティングシステム(OS)134等のコンピュータが欠陥検査装置100の機能を実現するためのプログラムは、メモリ130に格納される。以下で言及する画像検出処理を実行するように構成された学習器パラメータ136、カメラ102で取得した入力画像(すなわち、撮像画像138)及びワーク4が撮像される際の光源の照明パラメータ140を、さらにメモリ130に格納しても良い。学習器パラメータ136は、例えば、照明パラメータや検査アルゴリズムパラメータ等の機械学習モデルの学習段階及び検査段階に適用される様々なパラメータを含んでも良い。
【0047】
メモリ130に格納された画像処理プログラム132は、デジタルバーサタイルディスク(DVD)等の光記録媒体や、ユニバーサルシリアルバス(USB)メモリ等の半導体記録媒体を介して欠陥検査装置100にインストールしても良い。あるいは、画像処理プログラム132は、ネットワーク上のサーバ装置などからさらにダウンロードしてもよい。
【0048】
このような汎用コンピュータでの実装時には、OS134が提供するソフトウェアモジュールのうち、必要なソフトウェアモジュールを所定の順序及び/または機会に応じて呼び出すことにより処理を行い、実施形態に応じた機能の一部を実現する。つまり、実施形態に係る画像処理プログラム132は、実施形態に係る機能を実現するためのソフトウェアモジュールを全て備えているわけではなく、OSと連携して必要な機能を提供することができる。
【0049】
実施の形態に係る画像処理プログラム132は、さらに、他のプログラムの一部に組み込まれて提供されてもよい。このような状況下では、画像処理プログラム132は、組み合わされる他のプログラムに含まれるモジュールを含まず、他のプログラムと連携して処理を実行する。したがって、実施形態に係る画像処理プログラム132は、他のプログラムに組み合わせる方法をさらに採用しても良い。
【0050】
図2は、汎用コンピュータにより欠陥検査装置100を実現する例を示している。ただし、これに限定されない。機能の一部または全てを専用回路(例えば、特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA))により実現することもできる。また、ネットワークに接続された外部機器が処理の一部を担うこともできる。
【0051】
図3は、本発明の実施態様による欠陥検査装置100の機能モジュールの概略図である。
図3に示すように、欠陥検査装置100は、撮像部141と、設定部142と、検査部143と、記憶部144とを含んでも良い。
【0052】
欠陥検査装置100の撮像部141、設定部142及び検査部143は、1つまたは複数の汎用プロセッサにより実現されても良い。ただし、これらに限定されるものではない。一部または全ての機能は、専用回路(例えば、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA))を介して実現しても良い。また、ネットワークに接続された外部機器がこれらの部分の処理の一部を担うこともできる。
【0053】
ここで、撮像部141は、本発明における「取得部」の一具体例である。別の例として、欠陥検査装置100は撮像部141を備えていなくても良く、ワーク4の撮像画像を外部から受信することもできる。設定部142は、本発明における「設定部」の一具体例である。撮像部141と設定部142との組み合わせが、本発明における「対象を検査する際の照明条件を設定する装置」の一具体例である。
【0054】
加えて、検査部143は、本発明における「検査モジュール」の一具体例である。学習器1431は、本発明における「機械学習モデル」の実施形態の具体例であり、検査部143は、ワーク4の最終的な検査結果を出力する。例えば、学習器1431が画像から抽出された特徴を生成するように構成されたCNNであるという条件下で、検査部143は、例えば、学習器1431により抽出された特徴に判定基準を適用して最終的な検査結果を生成する判定装置をさらに含んでもよい。
【0055】
設定部142は、複数の照明パラメータ及び対応するラベルデータに対応するワーク4の複数の撮像画像の一部または全てを学習器1431の学習に適用し、学習器1431の推定結果とワークのラベルデータとの比較結果に基づいて、学習を実行した学習器1431により検査部143がワーク4を検査する際に用いる照明パラメータを設定する。設定方法の詳細は後述する。
【0056】
ここでの「ラベルデータ」は、ワーク4の検査特徴を表すように構成されている。例えば、ラベルデータは、ワーク4が合格品か不合格品かを表すデータであっても良いし、ワーク4の外観特徴(例えば、傷やサイズ等)を表すデータであっても良い。ラベルデータの内容は、ワーク4に予想される検査特徴が表される限り、特に限定されない。
【0057】
検査部143は、ベルトコンベア2上のワーク4を検査する。検査部143は、学習器1431を含んでも良く、これにより訓練された機械学習モデルを通じてワーク4を検査する。
【0058】
撮像部141は、イメージセンサを介してワーク4を撮像する。イメージセンサは、例えば、1つまたは複数のカメラを有するカメラであっても良く、さらに、絞りサイズやシャッター速度等の撮像パラメータは可変である。
【0059】
記憶部144は、欠陥検査装置100の作業に必要なプログラムやデータを記憶するように構成されている。欠陥検査装置100は、記憶部144を備えていなくても良い。
【0060】
以下、
図4を参照して、本発明の実施態様に係る照明条件の設定方法についてまとめる。
図4の(a)及び(b)は、それぞれ、本発明の実施形態による照明条件を設定する方法における機械学習モデルの学習段階及び検査段階のフローチャートである。
【0061】
図4(a)に示すように、ステップS410において、撮像部141は、ワークを撮像する。ワークは、異なる照明パラメータを用いた照明の条件下で何度も撮像され、それにより、ワークに関する複数の撮像画像が取得される。これらの撮像画像は、それぞれ一組の照明パラメータに対応し、例えば、各組の照明パラメータは、オンにされる光源及びオンにされる光源の輝度等のパラメータを含んでいても良い。
【0062】
例えば、ワークを識別するための指標を
【数01】
とし、候補となるN個の結像条件(照明パラメータ、カメラパラメータ)の集合を
【数02】
と表す。
これにより、全てのワークが全ての結像条件で撮像され、その画像は
記憶部144に記憶される。保存されたM×N個の画像を
【数03】
と表す。
【0063】
ここで、各光源の照明パラメータを変更しても良く、例えば、各光源の発光位置及び/または発光強度を変更して、ワーク4に異なる照明を提供してもよい。さらに、ワーク4は対応するラベルデータを有し、且つラベルデータはワーク4の検査特徴を表すように構成される。例えば、ラベルデータは、ワーク4が良品か不良品かを表すデータであっても良いし、ワーク4の外観特徴(例えば、傷やサイズ)を表すデータであっても良い。ラベルデータの内容は、ワーク4の予期される検査特徴である限り、特に限定されない。
【0064】
ステップS412において、学習器1431は、これらの撮像画像及び対応するラベルデータに基づいて学習を実行する。各撮像画像には照明パラメータが関連付けられているため、学習により、評価関数を最適化して、最適な照明パラメータ及び検査アルゴリズムパラメータを取得することができる。つまり、検査部143が出力する検査結果の正確率を最適化するように最適な照明パラメータ及び検査アルゴリズムパラメータを選択する。ここで、「照明パラメータ」とは、検査部143がワークを検査する際に使用する照明パラメータであり、「検査アルゴリズムパラメータ」とは、検査部143がワークを検査する際に使用する検査アルゴリズムのパラメータである。
【0065】
本発明では、検査アルゴリズムは、学習器1431により実現される。学習器1431の訓練評価基準は、通常、損失値と呼ばれ、合格/不合格の製品判定問題に関する場合、合格/不合格(PASS/FAIL)の正確率は、交差エントロピー(Cross Entropy)等によって表される。検査内容がワーク4の長さ等の測定の回帰問題である場合、エラー発生分布を多次元正規分布でモデル化し、その対数尤度関数が損失値として用いられる。
【0066】
通常の条件下では、機械学習ベースの検査アルゴリズムの学習中に、複数の教師データ(teacher data)(判定問題の場合は合格/不合格、回帰問題の場合は正確率)及び学習サンプル画像を事前に入力し、損失値を最小化するようにパラメータの最適化を実行する。ここで、損失値は、これらの学習サンプル画像が正確に推定されているかどうかの基準である。
【0067】
図4の(b)に示すように、ステップS420では、ステップS412で取得した最適化された照明パラメータで照明を行い、撮像部141がワーク4を撮像して撮像画像を取得する。ステップS422において、学習器1431は、これらの画像により、ワーク4の欠陥を確認する。
【0068】
図4に示す照明条件の設定方法では、検査照明パラメータ及び検査アルゴリズムパラメータを同時に調整する。つまり、照明パラメータは、調整が必要なアルゴリズムパラメータに同等に追加されるため、労働時間を短縮し、労働者への依存を軽減することができる。また、システム全体の計算負荷を軽減し、検査効率を向上させることができる。
【0069】
図5は、
図4(a)の照明条件の設定方法をさらに詳細にした、ステップS412の後に続く照明条件の設定方法のフローチャートである。
図6は、
図4及び
図5に示される照明条件を設定する方法の概略フローチャートである。
【0070】
図5を参照すると、ステップS50では、ワーク4の撮像画像及び対応するラベルデータとを含む学習データを学習器1431の学習に適用する。ここで、ラベルデータはワーク4の検査特徴を表す。
【0071】
ステップS52では、学習器1431の検査アルゴリズムパラメータを最適化して、学習器1431の推定結果をラベルデータと一致させる。
【0072】
外観検査中における、機械学習ベースの検査アルゴリズムの損失関数は通常L(u,v|θ
D)として表記され、ここで、θ
Dは検査アルゴリズムのパラメータベクトルであり、例えば、検査アルゴリズムには、深層学習中の接続線の全ての重みが含まれる。さらに、uは撮像画像、vは画像のラベルである。通常の条件下では、学習用のデータセットを
【数04】
と表すと、式(1)により最適な学習パラメータ
【数05】
が算出される。
【数06】
【0073】
そして、M×N枚の画像
【数07】
を用いて、下記式(2)により、最適な結像条件及び最適な検査アルゴリズムパラメータを算出することができる。
【数08】
【0074】
これらの結果から、最適な結像パラメータは
【数09】
であると判定できる。操作段階において、例えば、ステップS422において、算出した最適な結像パラメータをワークの検査に使用しても良い。
【0075】
図4における本発明の実施形態による照明パラメータの設定方法及び
図5における本発明の実施形態による照明パラメータの設定方法においては、検査照明パラメータ及び検査アルゴリズムパラメータが同時に最適化されるため、労働時間が短縮され得る。また、評価基準の直接最適化は、精度検査(製品の合否判定や測定値)の観点のみから実施できる。さらに、例えば、検査アルゴリズムのための優れた照明設計及びそのような照明に最も適した検査アルゴリズム等の全体としての目的のための撮像システム及び画像処理システムの直接最適化を実現することができる。
【0076】
さらに、照明条件の設定方法は、結像条件を離散化する方法でありさえすれば良く、また、「照明シミュレータ」等の照明パラメータに基づいて画像を推定する手段を設ける必要もない。
【0077】
本発明では、事前に全ての離散化された結像条件で各ワークが撮像されるため、撮像される画像の数が多い。さらに、結像条件が多くの独立した条件(照明パラメータ、シャッタースピードや絞り等)で構成されている場合は、組み合わせの数が多く、撮像数はさらに増加する。したがって、本発明の変化例として、複数の類似の結像条件を組み合わせて代表的な条件に置き換えてもよい。特に、ベクトル量子化圧縮により実現可能である。候補となる結像条件は、結像条件間の近接度を定義する関数を適切に定義し、k平均法(K-Means)等の任意のクラスタリング技術を用いて決定することができる。
【0078】
図6に示すように、例えば、学習器1431がニューラルネットワークを用いて深層学習を実行する場合、ニューラルネットワークの出力をラベルデータと一致させることにより、検査アルゴリズムパラメータ及び照明パラメータを同時に最適化し、これにより、既に学習を実行し、最適な照明パラメータを有するニューラルネットワークを得ることができる。学習済みの学習器1431は、照明パラメータを選択して、ワーク4の試験結果の正確率を向上させることができる。
【0079】
図7の(a)及び(b)は、それぞれ、本発明の別の実施形態による照明条件を設定する方法における機械学習モデルの学習段階及び検査段階のフローチャートである。この方法の原理を最初に以下に説明する。
【0080】
通常の条件下では、機械学習ベースの検査アルゴリズムの学習には、多数の訓練画像が必要である。この問題は、深層学習等の多数のパラメータを使用する方法で特に顕著であり、この方法ではM×N枚の画像を取得する必要があるという問題がある。Mの値が非常に大きい場合、多数の画像を取り込む必要がある。
【0081】
この問題の解決策として、多数の訓練画像を必要とする検査アルゴリズムに対してのみ、固定の撮影条件で取得した訓練画像から、事前に検査アルゴリズムパラメータを算出することができる。換言すると、j及びθDは、最適解を算出するために同時に変更されず、θDを算出した後に、より少ないワークの結像条件に用いる指標jを変更することによって結像条件を算出する。ここで、「結像条件」には、照明条件だけでなく、結像条件等も含まれる。通常の条件下では、照明パラメータの数が比較的小さいため、この方法は妥当と考えられる。
【0082】
具体的には、
【数10】
の2つのデータセットを用意し、2段階の最適化のために、式(3)と式(4)で最適な照明パラメータを算出する。
【数11】
【数12】
【0083】
前述した方法では、M1>N2と設定し、学習に必要な撮影画像数をM×NからM1+M2×Nに減らすことができる。前述の方法では、既存の固定の検査アルゴリズムパラメータも使用し、照明パラメータのみを算出することもできる。
【0084】
ここで、
図7を参照して、その方法のフローを詳細に説明する。
図7の(a)に示すように、ステップS710では、固定照明パラメータでM
1個のワークを撮像し、M
1個の撮像画像を取得する。ステップS712において、学習器1431は、M
1個の撮像画像による学習を実行して、検査アルゴリズムパラメータを最適化する。ステップS714では、Nタイプの照明パラメータのでM
1ワーク中のM
2ワークを撮像し、M
2×N枚の撮像画像を取得する。
【0085】
ステップS716では、M2×N枚の撮像画像を、既に学習を実行した学習器1431に適用し、学習器1431の推定結果とラベルデータの比較結果に基づいて、検査部143がワーク4を検査する際の照明条件を設定する。一比較例として、例えば、学習器1431が、N個の照明パラメータの下でワーク画像をテスト画像入力として使用して学習を実行した後、ワーク4を検査する際の照明パラメータとして、学習器1431の推定結果の正確率が最大となる照明パラメータを選択する。
【0086】
図7の(a)に示す学習段階の後、
図7の(b)に示すように、ステップS720において、検査照明パラメータの下でワークを撮像し、撮像画像を取得する。ステップS722において、検査部143は、撮像画像を解析して、ワークの検出結果を取得する。
【0087】
図7で説明した検査方法によれば、機械学習モデルの学習時のシステム計算量を削減でき、システム負荷を軽減できる。また、照明パラメータの設定操作を簡略化することができる。
【0088】
また、任意に、前述の方法では、学習に必要な撮像画像の数も減らすことができる。これにより、労働時間を削減し、パラメータ最適化手順を簡略化することができる。
【0089】
図7を参照して説明した照明条件の設定方法には、様々な変化例があり得る。以下、
図8を参照して、その変化例について詳細に説明する。
図8の(a)及び(b)は、それぞれ、
図7に示す照明条件の設定方法の一変化例における機械学習モデルの学習段階及び検査段階のフローチャートである。
図8において、
図7と同一または類似のステップには同一または類似の符号を付し、重複する説明は省略する。
【0090】
ステップS816の学習時には、式(5)及び式(6)に示すように、θ
Lの他に、検査アルゴリズムパラメータの一部(θ’
Dとして記録)も変数値に設定され、再調整される。したがって、いくつかのワークサンプルの撮像画像によってのみ追加学習を実行することができ、別の側面から言えば、照明に最も適した学習器を形成できないという問題は局所的に解決され得る。
【数13】
【数14】
【0091】
同様に、学習に必要な撮像画像の数を減らすことができ、また、ある程度照明に最適な学習器を形成することができる。
【0092】
また、
図8を参照して説明した検査方法において、ステップS816の学習中に、検査アルゴリズムの全てのパラメータを再度調整しても良い。このような条件の下で、ステップS712の学習は、事前学習機能を有する。
【0093】
図9は、本発明の別の実施形態による検査方法のフローチャートである。
図9を参照して説明する検査方法によれば、照明及びイメージングシステムの小さな変化に対するロバスト性が改善され得る。
【0094】
同一の検査を生産ラインで並行して行うと、照明を含めたイメージングシステム全体と全く同じ複製を製造することは困難である。一般的な条件下では、カメラや照明の取り付け位置のずれ等により、個体差が生じる場合がある。
【0095】
本発明の方法により算出された最適な照明パラメータを、撮影環境とは異なる複製環境に適用すると、イメージングシステムの個体差により性能が損なわれる場合がある。この問題を回避するために、照明パラメータにノイズを加えた後で、平均化を行う評価関数により、小さな変化に対して安定したパラメータを算出することができる。具体的には、前述の損失関数Lは、式(7)で定義されたLεに置き換えられる。これにより、照明パラメータと検査アルゴリズムパラメータを算出する。
【数15】
【0096】
ここで、
【数16】
に類似した結像条件の指標のセットである。ここで、「類似」は任意であり、例えば、離散化された結像条件内の隣接値、または特定のユークリッド距離を使用して定義することができる。これは、深層学習中の入力画像の「拡張(Augmentation)」の概念を照明パラメータに直接適用したものである。
【0097】
ここで、
図9を参照して方法のフローを詳細に説明する。
図9に示すように、ステップS90では、ワークを撮像して撮像画像を取得する。このステップはS410を参照することができる。ステップS92では、撮像画像を学習器1431に入力し、さらに照明の変化条件を入力して学習する。ここでいう「照明の変化条件」には、環境の小さな変化が含まれていても良いし、光源やイメージセンサの小さな変化がさらに含まれていても良い。ステップS94では、所定の範囲内の照明パラメータに対する学習器1431の損失関数の損失平均を最小化し、最適化された照明パラメータを取得する。ここで、照明パラメータは、損失関数の変数である。
【0098】
図9を参照して説明した検査方法では、環境への影響を考慮しているため、照明パラメータの小さな変化に対するロバスト性が向上し、検査システム全体の性能が向上する。
【0099】
図10は、本発明の別の実施形態による検査方法のフローチャートである。
図10を参照して説明した検査方法によれば、2つの評価関数に基づいて、ワークの変化に対するロバスト性を向上させることができる。
【0100】
ワークの変化に対する検査性能のロバスト性を確保するために、通常の条件下では、ワークのサンプル画像を追加したり、強化技術を適用してサンプル画像を追加したりする修正が存在する。
【0101】
本発明によれば、検査アルゴリズムの正確率(損失値)を直接最大化できるという利点がある。別の側面では、撮像画像を直接視覚的に評価するための基準は含んでいない。照明パラメータが、対象の欠陥を検査するための実際の照明の照明パラメータに変更されたか、または特定のワーク構成に最適化された異常な照明パラメータに変更されたかを区別することはできない。目視で検査画像の良し悪しを評価すると、検査アルゴリズムのパフォーマンスが直接最大化されない場合があるが、評価は人間の感情と経験の先験的知識に基づいて行われるため、ロバスト性を確保するという利点を達成できる。したがって、式(8)に示すように、最適化を行うために、人間ベース(human-based)の主観的な能力評価基準(subjective faculty evaluation reference)
h(u)(例えば、領域内のコントラスト)を損失関数に追加することができる。
【数17】
【0102】
ここで、λは、検査アルゴリズムのパフォーマンス(損失値)と能力評価基準に付加する必要がある、1つの重要性を決定するバランスパラメータである。
【0103】
ここで、
図10を参照して前記方法のフローを詳細に説明する。
図10に示すように、ステップS100では、ワークを撮像し、撮像画像を取得する。このステップは、S410を参照することができる。ステップS102では、撮影画像を学習器1431に入力し、さらに評価基準を入力して学習する。ここでいう「評価基準」には、人間の感情や経験に関する先験的知識に基づく前述の評価基準を含むことができ、また、画像分析等のための既存の数学的アルゴリズムに基づく評価基準を含むこともできる。ステップS104では、学習器1431の損失関数を最小化して、最適化された検査照明パラメータを取得する。
【0104】
この方法を適用する方法として、次のように変形させることができる。例えば、θDを計算した後にjを算出する簡略化された方法では、各パラメータを算出するステップで、異なるλ値または能力評価基準h(u)を採用する。例えば、正確率(λ=0)のみに基づいてθDを算出し、θLについては能力評価基準の重みを大きくする(λは相対的に大きな値を設定する)等を採用してもよい。
【0105】
図10を参照して説明した検査方法では、環境への影響を考慮しているため、ワークの違いに対するロバスト性が向上し、検査システム全体の性能が向上する。
【0106】
ソフトウェア機能ユニットの形で実装され、独立した製品として販売または使用される場合、対象またはその一部を検査する際の照明条件を設定する装置とシステムは、コンピュータ可読記憶媒体に記憶することができる。この理解に基づいて、本発明が課題を解決するための手段は、本質的に、または従来技術に寄与する部分は、または課題を解決するための手段の全てまたは一部は、ソフトウェア製品の形で実現することができ、コンピュータソフトウェア製品は、本発明の実施形態による方法のステップの全てまたは一部をコンピュータ機器(パソコン、サーバーまたはネットワーク機器等)に実行させるためのいくつかの命令を含む記憶媒体に格納される。前述の記憶媒体には、USBディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、リムーバブルハードディスク、磁気ディスク、または光ディスク等のプログラムコードを記憶することができる様々な媒体を含む。さらに、サーバーやクラウドからダウンロードされるデータストリームを含むこともできる。
【0107】
以上は、本発明の好ましい実施形態にすぎず、当業者は、本発明の原理から逸脱することなく、いくつかの改善及び修正を行うことができることに留意されたい。これらの改善及び修正は、本発明の保護の範囲内であると見なされるべきである。
【符号の説明】
【0108】
1:検査システム
2:ベルトコンベヤー
4:ワーク
6:イメージングビュー
8:上位層ネットワーク
10:PLC
12:データベース装置
100:欠陥検査装置
102:カメラ
104:ディスプレイ
106:キーボード
108:マウス
110:プロセッサ
112:メインメモリ
114:カメラインターフェース
116:入力インターフェース
118:ディスプレイインターフェース
120:通信インターフェース
122:内部バス
130:メモリ
132:画像処理プログラム
134:OS
136:学習器パラメータ
138:撮像画像
140:照明パラメータ
141:撮像部
142:設定部
143:検査部
144:記憶部
1431:学習器