(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077055
(43)【公開日】2023-06-05
(54)【発明の名称】外観検査装置及び外観検査方法
(51)【国際特許分類】
G01N 21/88 20060101AFI20230529BHJP
G06N 3/08 20230101ALI20230529BHJP
【FI】
G01N21/88 J
G06N3/08
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021190173
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】俵 京佑
【テーマコード(参考)】
2G051
【Fターム(参考)】
2G051AB02
2G051CA04
2G051EA14
2G051EB10
(57)【要約】
【課題】不良品学習が必要に応じてスムーズに行えるようにする。
【解決手段】外観検査装置は、不良箇所である可能性が高い領域を検出する検出処理と、検出された領域に基づいて不良箇所を自動的に特定し、特定した不良箇所をユーザに提示するとともに、不良箇所のユーザによる登録を受け付ける受付処理と、不良品画像を機械学習ネットワークに入力するとともに、受付処理で登録を受け付けた不良箇所が抽出されるように機械学習ネットワークのパラメータを調整する調整処理とを実行する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
機械学習ネットワークを記憶する記憶部と、前記機械学習ネットワークに検査対象のワークを撮影したワーク画像を入力し、入力された前記ワーク画像に基づいてワークの良否判定を行うプロセッサとを備える外観検査装置であって、
前記プロセッサは、
不良箇所を有する不良品に対応する不良品画像を抽出するとともに、前記不良箇所である可能性が高い領域を検出する検出処理と、
前記検出処理により検出された前記領域に基づいて、前記不良品画像内の前記不良箇所を自動的に特定し、特定した前記不良箇所をユーザに提示するとともに、前記不良箇所のユーザによる登録を受け付ける受付処理と、
前記不良品画像を前記機械学習ネットワークに入力するとともに、前記受付処理で登録を受け付けた前記不良箇所が抽出されるように前記機械学習ネットワークのパラメータを調整する調整処理と、
前記調整処理でパラメータが調整された前記機械学習ネットワークに前記ワーク画像を入力し、前記不良箇所が抽出されるか否かに基づいて、前記ワークの良否判定を行う検査処理とを実行可能に構成された外観検査装置。
【請求項2】
請求項1に記載の外観検査装置において、
前記プロセッサは、前記検出処理の前に、良品に対応する良品画像を前記機械学習ネットワークに入力することにより、前記機械学習ネットワークのパラメータを調整する良品学習処理を実行可能に構成された外観検査装置。
【請求項3】
請求項1または2に記載の外観検査装置において、
前記プロセッサは、前記受付処理において、前記不良箇所である可能性が高い領域を示すマップ画像を生成して表示部に表示させる外観検査装置。
【請求項4】
請求項3に記載の外観検査装置において、
前記プロセッサは、前記受付処理において、前記表示部に表示された前記マップ画像上の前記領域を自動的に特定し、特定した前記領域の調整指示をユーザから受け付ける外観検査装置。
【請求項5】
請求項1から4のいずれか1つに記載の外観検査装置において、
前記プロセッサは、
前記検出処理で複数の不良品画像が抽出された場合、抽出された複数の不良品画像に対して、前記受付処理で一括してアノテーションを実行し、
前記調整処理において、前記アノテーションが実行された不良品画像が抽出されるように前記機械学習ネットワークのパラメータを調整する外観検査装置。
【請求項6】
請求項5に記載の外観検査装置において、
前記プロセッサは、前記検出処理で複数の不良品画像が抽出された場合、抽出された複数の不良品画像を表示部に一覧表示させる外観検査装置。
【請求項7】
請求項1から6のいずれか1つに記載の外観検査装置において、
前記プロセッサは、前記検出処理において、不良品に対応する不良品画像であることを示すラベルが付与されているにも関わらず不良として判定されなかった場合、当該不良として判定されなかった画像を前記調整処理で前記機械学習ネットワークに入力する外観検査装置。
【請求項8】
請求項1から7のいずれか1つに記載の外観検査装置において、
前記プロセッサは、
前記受付処理において、前記不良箇所のユーザによる登録を受け付けると、前記不良箇所である可能性が高い領域を抽出し、抽出した前記不良箇所である可能性が高い領域を囲む枠を生成するとともに、前記不良箇所である可能性が高い領域に対して領域抽出アルゴリズムを用いて詳細に抽出した領域をアノテーション領域とし、前記不良画像、前記不良箇所である可能性が高い領域、抽出した前記不良箇所である可能性が高い領域を囲む枠及び前記詳細に抽出した領域を表示装置に表示させてユーザによる登録を受け付け、
前記調整処理において、前記アノテーション領域が抽出されるように前記機械学習ネットワークのパラメータを調整する外観検査装置。
【請求項9】
機械学習ネットワークに検査対象のワークを撮影したワーク画像を入力し、入力された前記ワーク画像に基づいてワークの良否判定を行う外観検査方法であって、
不良箇所を有する不良品に対応する不良品画像を抽出するとともに、前記不良箇所である可能性が高い領域を検出する検出ステップと、
前記検出ステップで検出された前記領域に基づいて、前記不良品画像内の前記不良箇所を自動的に特定し、特定した前記不良箇所をユーザに提示するとともに、前記不良箇所のユーザによる登録を受け付ける受付ステップと、
前記不良品画像を前記機械学習ネットワークに入力するとともに、前記受付ステップで登録を受け付けた前記不良箇所が抽出されるように前記機械学習ネットワークのパラメータを調整する調整ステップと、
前記調整ステップでパラメータが調整された前記機械学習ネットワークに前記ワーク画像を入力し、前記不良箇所が抽出されるか否かに基づいて、前記ワークの良否判定を行う検査ステップとを備えている外観検査方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークの外観を検査する外観検査装置及び外観検査方法に関する。
【背景技術】
【0002】
例えば特許文献1には、コンピュータによる機械学習を用いて、ワークが良品であるか不良品であるかの判定を行う処理装置が開示されている。特許文献1の処理装置は、良品データを対象とした教師ありの機械学習を行って良品学習モデルを生成するとともに、不良品データを対象とした教師ありの機械学習を行って不良品学習モデルを生成した後、判定対象となるワークのデータを入力し、良品学習モデル及び不良品学習モデルによってワークが良品であるか不良品であるかの判定が行えるように構成されており、このような装置はワークの外観検査装置とも呼ばれている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、不良品データを対象とした教師あり学習を行う場合、そのワークのどこが不良箇所であるかをユーザ自身が明示する作業、いわゆるアノテーションが必要になる。不良品学習によって生成された不良品学習モデルによる判定性能は、アノテーションを詳細に行うほど向上する傾向にあるので、アノテーションをより詳細に行いたい。
【0005】
しかしながら、ワークの生産現場では不良品が殆ど発生しないので、不良品データを収集するのは難しい。また、収集した不良品データに対するアノテーションには手間がかかるので、不良品データの数が多ければ多いほどユーザの負担が増加する。
【0006】
本開示は、かかる点に鑑みたものであり、その目的とするところは、不良品学習が必要に応じてスムーズに行えるようにすることにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本開示の一態様では、機械学習ネットワークを記憶する記憶部と、前記機械学習ネットワークに検査対象のワークを撮影したワーク画像を入力し、入力された前記ワーク画像に基づいてワークの良否判定を行うプロセッサとを備える外観検査装置を前提とすることができる。前記プロセッサは、不良箇所を有する不良品に対応する不良品画像を抽出するとともに、前記不良箇所である可能性が高い領域を検出する検出処理を実行する。また、前記プロセッサは、前記検出処理により検出された前記領域に基づいて、前記不良品画像内の前記不良箇所を自動的に特定し、特定した前記不良箇所をユーザに提示するとともに、前記不良箇所のユーザによる登録を受け付ける受付処理を実行する。また、前記プロセッサは、前記不良品画像を前記機械学習ネットワークに入力するとともに、前記受付処理で登録を受け付けた前記不良箇所が抽出されるように前記機械学習ネットワークのパラメータを調整する調整処理を実行する。さらに、前記プロセッサは、前記調整処理でパラメータが調整された前記機械学習ネットワークに前記ワーク画像を入力し、前記不良箇所が抽出されるか否かに基づいて、前記ワークの良否判定を行う検査処理とを実行する。
【0008】
この構成によれば、検出処理において、不良品画像を抽出するとともに、前記不良箇所である可能性が高い領域を検出することができ、この検出処理は、例えば機械学習ネットワークを使用して実行してもよいし、機械学習ネットワークではない、いわゆるルールベースで実行してもよい。検出処理後、不良箇所である可能性が高い領域に基づいて、不良品画像内の不良箇所が自動的に特定されるので、ユーザが不良品画像の抽出及び不良箇所の特定を行わずに済む。特定された不良箇所はユーザに提示されるので、ユーザは不良箇所を確認しながら、必要に応じて不良箇所を登録でき、このとき仮に不良箇所が誤検出されている場合、すなわち不良箇所でないのに不良箇所であると検出されている場合には誤検出されている不良箇所を登録せずに済ませることができる。
【0009】
不良箇所がユーザによって登録されると、その不良箇所が抽出されるように、不良品学習によって機械学習ネットワークのパラメータが調整されるので、機械学習ネットワークの検出能力がより一層高まる。従って、ユーザの手間が増加するのを抑えながら、不良品の取り逃がしが極めて少ない機械学習ネットワークが得られる。
【0010】
他の態様に係るプロセッサは、前記検出処理の前に、良品に対応する良品画像を前記機械学習ネットワークに入力することにより、前記機械学習ネットワークのパラメータを調整する良品学習処理を実行することができる。
【0011】
この構成によれば、良品学習処理によってパラメータが調整された機械学習ネットワークを用いてワークの良否判定を行っているときに不良品画像が抽出されると、不良品画像内の不良箇所を自動的に特定してユーザに提示することができる。これにより、不良品学習によって機械学習ネットワークのパラメータを再度調整して検出能力を高めることができる。
【0012】
他の態様に係るプロセッサは、前記受付処理において、前記不良箇所である可能性が高い領域を示すマップ画像を生成して表示部に表示させることができる。
【0013】
この構成によれば、ユーザにマップ画像を提示することができるので、不良箇所である可能性の高い領域の位置や大きさ、形状等をユーザが具体的に把握できる。
【0014】
他の態様に係るプロセッサは、前記受付処理において、前記表示部に表示された前記マップ画像上の前記領域を自動的に特定し、特定した前記領域の調整指示をユーザから受け付けることができる。
【0015】
この構成によれば、不良箇所である可能性の高い領域をマップ画像上で自動的に特定するので、ユーザの手間を軽減できる。この場合、前記領域が正確なものでないときには、ユーザが前記領域の位置や大きさ、形状等を調整することで、前記領域を実際の不良箇所に対応したものにすることができる。これにより、調整処理において機械学習ネットワークのパラメータを適切に調整できる。
【0016】
他の態様に係るプロセッサは、前記検出処理で複数の不良品画像が抽出された場合、抽出された複数の不良品画像に対して、前記受付処理で一括してアノテーションを実行し、前記調整処理において、前記アノテーションが実行された不良品画像が抽出されるように前記機械学習ネットワークのパラメータを調整することができるので、ユーザの手間を軽減できる。
【0017】
他の態様に係るプロセッサは、前記検出処理で複数の不良品画像が抽出された場合、抽出された複数の不良品画像を表示部に一覧表示させることができるので、各不良品画像に対してアノテーションが正しく行われているか否かをユーザが容易に確認できる。
【0018】
他の態様に係るプロセッサは、前記検出処理において、不良品に対応する不良品画像であることを示すラベルが付与されているにも関わらず不良として判定されなかった場合、当該不良として判定されなかった画像を前記調整処理で前記機械学習ネットワークに入力するものである。この構成によれば、不良品の取り逃がしが起こらないように機械学習ネットワークの検出能力をさらに高めることができる。
【0019】
他の態様に係るプロセッサは、前記受付処理において、前記不良箇所のユーザによる登録を受け付けると、前記不良箇所である可能性が高い領域を抽出し、抽出した前記不良箇所である可能性が高い領域を囲む枠を生成するとともに、前記不良箇所である可能性が高い領域に対して領域抽出アルゴリズムを用いて詳細に抽出した領域をアノテーション領域とし、前記不良画像、前記不良箇所である可能性が高い領域、抽出した前記不良箇所である可能性が高い領域を囲む枠及び前記詳細に抽出した領域を表示装置に表示させてユーザによる登録を受け付け、前記調整処理において、前記アノテーション領域が抽出されるように前記機械学習ネットワークのパラメータを調整することができる。この構成によれば、領域抽出アルゴリズムを用いることで、自動的にアノテーションを実行することができる。
【発明の効果】
【0020】
以上説明したように、抽出した不良品画像の不良箇所である可能性が高い領域に基づいて自動的に特定した不良箇所をユーザに提示して不良箇所のユーザによる登録を受け付け、登録を受け付けた不良箇所が抽出されるように機械学習ネットワークのパラメータを調整することができるので、例えば良品学習後に不良品学習へ移行する際にその移行をスムーズに行うことができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施形態に係る外観検査装置の構成を示す模式図である。
【
図2】前記外観検査装置のハードウエア構成を示すブロック図である。
【
図3】前記外観検査装置が実行する処理の一例を示す制御フローチャートである。
【
図5】前記外観検査装置に表示されるユーザーインターフェースの一例を示す図である。
【
図7】マップ画像、不良箇所の抽出画像、調整後画像及びアノテーション後画像の遷移を示す図である。
【
図8】外観検査装置の運用時の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0023】
図1は、本発明の実施形態に係る外観検査装置1の構成を示す模式図である。外観検査装置1は、例えば各種部品や製品等のような検査対象であるワークを撮像して取得されたワーク画像の良否判定を行うための装置であり、工場等の生産現場等で使用することができる。具体的には、外観検査装置1の内部には機械学習ネットワークが構築されており、この機械学習ネットワークは、良品に対応する良品画像と、不良品に対応する不良品画像とを学習することにより生成されている。生成された機械学習ネットワークに、検査対象のワークを撮像したワーク画像を入力し、当該ワーク画像の良否判定を機械学習ネットワークによって行うことができるようになっている。
【0024】
ワークは、それ全体が検査対象であってもよいし、ワークの一部のみが検査対象であってもよい。また、1つのワークに複数の検査対象が含まれていてもよい。また、ワーク画像には、複数のワークが含まれていてもよい。
【0025】
外観検査装置1は、装置本体となる制御ユニット2と、撮像ユニット3と、表示装置(表示部)4と、パーソナルコンピュータ5とを備えている。パーソナルコンピュータ5は、必須なものではなく、省略することもできる。表示装置4の代わりにパーソナルコンピュータ5を使用して各種情報や画像を表示させることもできるし、パーソナルコンピュータ5の機能を制御ユニット2に組み込むことや、表示装置4に組み込むことができる。
【0026】
図1では、外観検査装置1の構成例の一例として、制御ユニット2、撮像ユニット3、表示装置4及びパーソナルコンピュータ5を記載しているが、これらのうち、任意の複数を組み合わせて一体化することもできる。例えば、制御ユニット2と撮像ユニット3を一体化することや、制御ユニット2と表示装置4を一体化することもできる。また、制御ユニット2を複数のユニットに分割して一部を撮像ユニット3や表示装置4に組み込むことや、撮像ユニット3を複数のユニットに分割して一部を他のユニットに組み込むこともできる。
【0027】
(撮像ユニット3の構成)
図2に示すように、撮像ユニット3は、カメラモジュール(撮像部)14と、照明モジュール(照明部)15とを備えており、ワーク画像の取得を実行するユニットである。カメラモジュール14は、撮像光学系を駆動するAF用モータ141と、撮像基板142とを備えている。AF用モータ141は、撮像光学系のレンズを駆動することにより、自動でピント調整を実行する部分であり、従来から周知のコントラストオートフォーカス等の手法によってピント調整を行うことができる。撮像基板142は、撮像光学系から入射した光を受光する受光素子としてCMOSセンサ143を備えている。CMOSセンサ143は、カラー画像を取得することができるように構成された撮像センサである。CMOSセンサ143の代わりに、例えばCCDセンサ等の受光素子を用いることもできる。
【0028】
照明モジュール15は、ワークを含む撮像領域を照明する発光体としてのLED(発光ダイオード)151と、LED151を制御するLEDドライバ152とを備えている。LED151による発光タイミング、発光時間、発光量は、LEDドライバ152によって任意に制御することができる。LED151は、撮像ユニット3に一体に設けてもよいし、撮像ユニット3とは別体として外部照明ユニットとして設けてもよい。
【0029】
(表示装置4の構成)
表示装置4は、例えば液晶パネルや有機ELパネル等からなる表示パネルを有している。制御ユニット2から出力されたワーク画像やユーザーインターフェース画像等は表示装置4に表示される。また、パーソナルコンピュータ5が表示パネルを有している場合、パーソナルコンピュータ5の表示パネルを表示装置4の代わりとして利用することができる。
【0030】
(操作機器)
外観検査装置1をユーザが操作するための操作機器としては、例えば、パーソナルコンピュータ5が有するキーボード51やマウス52等を挙げることができるが、これらに限られるものではなく、ユーザによる各種操作を受付可能に構成された機器であればよい。例えば、表示装置4が有するタッチパネル41のようなポインティングデバイスも操作機器に含まれる。
【0031】
キーボード51やマウス52のユーザによる操作は制御ユニット2で検出可能になっている。また、タッチパネル41は、例えば感圧センサを搭載した従来から周知のタッチ式操作パネルであり、ユーザのタッチ操作は制御ユニット2で検出可能になっている。他のポインティングデバイスを用いた場合も同様である。
【0032】
(制御ユニット2の構成)
制御ユニット2は、メイン基板13と、コネクタ基板16と、通信基板17と、電源基板18とを備えている。メイン基板13には、プロセッサ13aが設けられている。プロセッサ13aは、接続されている各基板及びモジュールの動作を制御する。例えば、プロセッサ13aは、照明モジュール15のLEDドライバ152に対してLED151の点灯/消灯を制御する照明制御信号を出力する。LEDドライバ152は、プロセッサ13aからの照明制御信号に応じて、LED151の点灯/消灯の切替及び点灯時間の調整を行うとともに、LED151の光量等を調整する。
【0033】
また、プロセッサ13aは、カメラモジュール14の撮像基板142に、CMOSセンサ143を制御する撮像制御信号を出力する。CMOSセンサ143は、プロセッサ13aからの撮像制御信号に応じて、撮像を開始するとともに、露光時間を任意の時間に調整して撮像を行う。すなわち、撮像ユニット3は、プロセッサ13aから出力される撮像制御信号に応じてCMOSセンサ143の視野範囲内を撮像し、視野範囲内にワークがあれば、ワークを撮像することになるが、ワーク以外の物が視野範囲内にあれば、それも撮像することができる。例えば、外観検査装置1は、機械学習ネットワークの学習用の画像として、撮像ユニット3により、良品に対応する良品画像と不良品に対応する不良品画像とを撮像することができる。学習用の画像は、撮像ユニット3で撮像された画像でなくてもよく、他のカメラ等で撮像された画像であってもよい。
【0034】
一方、外観検査装置の運用時には、撮像ユニット3により、ワークを撮像することができる。また、CMOSセンサ143は、ライブ画像、即ち現在の撮像された画像を短いフレームレートで随時出力することができるように構成されている。
【0035】
CMOSセンサ143による撮像が終わると、撮像ユニット3から出力された画像信号は、メイン基板13のプロセッサ13aに入力されて処理されるとともに、メイン基板13のメモリ13bに記憶されるようになっている。メイン基板13のプロセッサ13aによる具体的な処理内容の詳細については後述する。尚、メイン基板13には、FPGAやDSP等の処理装置が設けられていてもよい。FPGAやDSP等の処理装置が統合されたプロセッサ13aであってもよい。
【0036】
コネクタ基板16は、電源インターフェース161に設けてある電源コネクタ(図示せず)を介して外部から電力の供給を受ける部分である。電源基板18は、コネクタ基板16で受けた電力を各基板及びモジュール等に分配する部分であり、具体的には、照明モジュール15、カメラモジュール14、メイン基板13、及び通信基板17に電力を分配する。電源基板18は、AF用モータドライバ181を備えている。AF用モータドライバ181は、カメラモジュール14のAF用モータ141に駆動電力を供給し、オートフォーカスを実現している。AF用モータドライバ181は、メイン基板13のプロセッサ13aからのAF制御信号に応じて、AF用モータ141に供給する電力を調整する。
【0037】
通信基板17は、メイン基板13と表示装置4及びパーソナルコンピュータ5との通信、メイン基板13と外部制御機器(図示せず)との通信等を実行する部分である。外部制御機器は、例えばプログラマブルロジックコントローラ等を挙げることができる。通信は、有線であってもよいし、無線であってもよく、いずれの通信形態も、従来から周知の通信モジュールによって実現することができる。
【0038】
制御ユニット2には、例えばソリッドステートドライブ、ハードディスクドライブ等からなる記憶装置(記憶部)19が設けられている。記憶装置19には、後述する各制御及び処理を上記ハードウエアによって実行可能にするためのプログラムファイル80や設定ファイル等(ソフトウエア)が記憶されている。プログラムファイル80や設定ファイルは、例えば光ディスク等の記憶媒体90に格納しておき、この記憶媒体90に格納されたプログラムファイル80や設定ファイルを制御ユニット2にインストールすることができる。プログラムファイル80は、外部サーバから通信回線を利用してダウンロードされるものであってもよい。また、記憶装置19には、例えば、上記画像データや、外観検査装置1の機械学習ネットワークを構築するためのパラメータ等を記憶させておくこともできる。
【0039】
すなわち、外観検査装置1のプロセッサ13aは、記憶装置19に記憶されたパラメータ等を読み出して機械学習ネットワークを構築し、構築した機械学習ネットワークに検査対象のワークを撮影したワーク画像を入力し、入力されたワーク画像に基づいてワークの良否判定を行うように構成されている。この外観検査装置1を使用することで、ワーク画像に基づいてワークの良否判定を行う外観検査方法を実行できる。
【0040】
(制御フローチャート)
次に、
図3に示すフローチャートに基づいて外観検査装置1が実行する処理について説明する。スタート後のステップSA1では、未学習の機械学習ネットワークを用意する。未学習の機械学習ネットワークは、例えば、パラメータの初期値が無作為に決定されたものである。ステップSA2では、プロセッサ13aが良品に対応する良品画像を取得する。ここで取得する良品画像は、
図4に示すように良品のワークWを含む良品画像200であり、カラー画像であってもよいし、白黒画像であってもよい。例えば、撮像ユニット3のカメラモジュール14で良品のワークWを撮像することで、良品画像200を取得することができる。良品画像200は、1枚だけ取得してもよいし、異なる良品を撮像することによって複数枚取得してもよい。取得した良品画像200は、例えば記憶装置19に記憶しておく。
【0041】
その後、
図3に示すフローチャートのステップSA3に進んでプロセッサ13aが良品学習処理を実行する。
図4に示すように、良品学習処理では、良品に対応する良品画像200を機械学習ネットワークに入力することにより、機械学習ネットワークのパラメータを調整する。良品学習処理では、複数の良品画像200を機械学習ネットワークに入力し、機械学習ネットワークから出力される出力画像に基づいた判定結果が良品となるように、機械学習ネットワークのパラメータを調整していく。判定結果がある程度の正確性を持つようなった段階で良品学習処理を終了する。
【0042】
このように、アノテーションが不要かつ簡単に多くの枚数を収集可能な良品画像200を使用した良品学習から始めるユーザが多い。その理由は、ステップSA3の良品学習のみで外観検査を始めても全く対応できないケースは少なく、大部分の不良品判定が正確に行えるからである。しかし、取り逃がしてしまう僅かな不良品に対しても取り逃がさないように、機械学習ネットワークの検出能力を向上させたい場合には、不良品学習が必要になる。以下、不良品学習への移行について詳しく説明する。
【0043】
ステップSA3で良品学習処理が終了するとステップSA4に進む。尚、ステップSA3の良品学習処理を実行することなく、ステップSA1からSA4へ直接移行してもよい。ステップSA4では、プロセッサ13aがワーク画像を機械学習ネットワークに入力する。具体的には、検査対象のワークを撮像ユニット3で撮像してワーク画像を取得した後、取得したワーク画像を、ステップSA3で良品学習処理が終了した機械学習ネットワーク、または良品学習処理を行っていない機械学習ネットワークに入力する。
【0044】
ワーク画像は、例えば記憶装置19に記憶しておいてもよく、この場合、記憶装置19から読み出したワーク画像を機械学習ネットワークに入力する。ワーク画像には、良品を撮像した画像、即ち良品に対応する良品画像と、不良品を撮像した不良品画像との両方が含まれている。不良品画像は、不良箇所を有する不良品に対応する画像であることから、良否画像とは異なる特徴を有している。
【0045】
ステップSA3では、プロセッサ13aが、例えば
図5に一例として示すようなユーザーインターフェース300を生成して表示装置4に表示させる。ユーザーインターフェース300は表示装置4に表示されるものであることから、ユーザーインターフェース300に表示される各種画像等はそのまま表示装置4に表示されることになる。
【0046】
ユーザーインターフェース300には良品画像表示領域301が設けられている。良品画像表示領域301には、複数の良品画像200の表示が可能になっている。例えば、記憶装置19に記憶されている複数の良品画像200を読み込んで良品画像表示領域301に表示させることができる。さらに、良品画像表示領域301には、表示されている各良品画像200に対応して選択部301aが設けられている。選択部301aは、チェックボックスのようにユーザによって操作可能な部分である。ユーザが選択部301aを操作すると、対応する良品画像200が選択されたことを示す目印が当該選択部301aに表示される。プロセッサ13aは、選択された良品画像200のみ機械学習ネットワークに入力する。尚、良品画像表示領域301に表示されている良品画像200の全てを一括して選択可能な選択部(図示せず)が設けられていてもよいし、良品画像表示領域301に表示されている良品画像200の一部を無作為に選択可能な選択部(図示せず)が設けられていてもよい。また、ユーザの選択操作によらず、良品画像表示領域301に表示されている良品画像200の全てを機械学習ネットワークに入力してもよい。
【0047】
その後、ステップSA5に進む。ステップSA5では、プロセッサ13aが、不良箇所を有する不良品に対応する不良品画像を抽出するとともに、不良箇所である可能性が高い領域を検出する検出処理を実行する。この検出処理は、外観検査方法の検出ステップに相当する。検出処理は、機械学習ネットワークを使用して実行することもできるし、機械学習ネットワークを使用しないで実行することもできる。機械学習ネットワークを使用しないで検出処理を実行する場合、例えば各種ルールベースの方法であってもよく、ルールベースの方法であっても、不良箇所である可能性が高い領域を検出することができる。
【0048】
例えば、色抽出アルゴリズム等を用いて不良箇所と類似している色の箇所のみを、不良箇所である可能性が高い領域として抽出することができる。この場合、ノイズとなる細かい領域は所定の面積閾値を予め設定しておき、当該閾値以下の面積を持つ部分は除外する。そして、残った領域に対して例えばGrabCut等のアルゴリズムを用いてアノテーション領域を抽出する。また、色抽出アルゴリズム以外にも、例えばエッジやコントラスト等の特徴量を用いた不良箇所の抽出手法を用いることができる。これらの特徴量が周囲と大きく異なる部分を異常があるとし、不良箇所である可能性が高い領域として抽出できる。
【0049】
以下の説明では、機械学習ネットワークを使用して検出処理を実行する場合について説明する。
【0050】
具体的には、
図4に示すような良品画像200がワーク画像として機械学習ネットワークに入力されると、当該ワーク画像は良品であると判定するが、
図6に示すような不良品ワークW1を撮像した不良品画像201が入力されると、不良品ワークW1が有する不良箇所Waが、不良箇所である可能性が高い領域として検出される。不良箇所である可能性が高い領域は、説明の便宜上、符号210で示す長円形状の枠で囲んだ領域として示している。具体的には、プロセッサ13aが、不良箇所である可能性が高い領域を抽出した後、その不良箇所である可能性が高い領域を囲む枠210を生成する。
【0051】
詳細は後述するが、不良箇所である可能性が高い領域に対して領域抽出アルゴリズムを用いて詳細に抽出した領域をアノテーション領域とする。アノテーション領域を取得した後、プロセッサ13aは、不良画像、不良箇所である可能性が高い領域、枠210及び領域抽出アルゴリズムで詳細に抽出した領域を表示装置4に表示させてユーザによる登録を受け付けることができる。
【0052】
以下、符号210で示す長円形状の枠で囲んだ領域を第1領域210aと呼ぶ。第1領域210aが検出されると、そのワーク画像は不良品画像201であるとしてプロセッサ13aが抽出する。
【0053】
機械学習ネットワークは、不良品画像201の不良箇所Waに対しては強く反応し、不良箇所Waの近傍に対しては相対的に弱く反応する特性を持っている。第1領域210aは、不良箇所Waに対して強く反応した領域である。第1領域210aの外側でかつ不良箇所Waに対して相対的に弱く反応した領域も、不良箇所である可能性が高い領域として含まれてもよく、この場合、説明の便宜上、符号211で示す長円形状の枠で囲んだ領域として示している。以下、符号211で示す長円形状の枠で囲んだ領域(相対的に弱く反応した領域)を第2領域211aと呼ぶ。尚、第2領域211aは、不良箇所である可能性が高い領域として含まれなくてもよい。
【0054】
図5に示すユーザーインターフェース300には、不良品画像表示領域302が設けられている。プロセッサ13aは、不良箇所である可能性が高い領域を有する画像は不良品画像201であるとして、不良品画像表示領域302に表示させる。複数の不良品画像201が抽出された場合、プロセッサ13aは、抽出された複数の不良品画像201を不良品画像表示領域302に表示する。
【0055】
図6に示す不良品画像201では、第1領域210aと第2領域211aとが互いに異なる色で着色されている。例えば、第1領域210aを赤色に着色した場合には、第2領域211aを黄色等に着色して第1領域210aと第2領域211aとを明確に区別できるようにする。このようにして、プロセッサ13aは、ステップSA6において、不良箇所である可能性が高い領域(第1領域210a及び第2領域211a)を示すマップ画像202を生成する。生成されたマップ画像の例を
図7に「マップ画像」として示す。
図7では、不良箇所である可能性が高い領域として3つの領域が示されている。
【0056】
図5に示すユーザーインターフェース300には、マップ画像表示領域303が設けられている。プロセッサ13aは、マップ画像202を生成した後、マップ画像表示領域303にマップ画像202を表示させる。プロセッサ13aは、ステップSA7において、機械学習ネットワークが抽出した第1領域210a及び第2領域211aに基づいて、不良品画像201内の不良箇所Waを自動的に特定できる。マップ画像202には、プロセッサ13aが自動的に特定した不良箇所Waが第1領域210a及び第2領域211aとして表示されている。これにより、プロセッサ13aは、ステップSA8において、特定した不良箇所Waを、表示装置4を介してユーザに提示する。
図7では、「不良箇所の抽出」の画像として示しており、不良箇所である可能性が高い3つの領域をそれぞれ矩形の枠で囲んで示している。
【0057】
次いで、ステップSA9では、ユーザがユーザーインターフェース300のマップ画像表示領域303に表示されているマップ画像202を見て、不良箇所Waを確認するか否か判定する。ユーザが不良箇所Waを確認する場合にはYESであるため、ステップSA10に進む一方、ユーザが不良箇所Waを確認しない場合にはNOであるため、ステップSA11に進む。ユーザが不良箇所Waを確認するか否かは、ユーザによる設定操作や選択操作に基づいて判定でき、例えば、ユーザが不良箇所Waを確認するという設定操作や選択操作が行われている場合には、プロセッサ13aがYESと判定する一方、ユーザが不良箇所Waを確認しないという設定操作や選択操作が行われている場合には、プロセッサ13aがNOと判定する。
【0058】
ステップSA9でYESと判定された場合、ユーザはマップ画像202に基づいて不良箇所Waの位置や形状を把握できるので、不良品ワークW1のどこに、どのような不良箇所Waがあるかを容易に確認できる。尚、機械学習ネットワークが不良箇所Waであると抽出している部分が実際には不良箇所でない場合、即ち誤検出の場合もあり得るので、ユーザによる確認を行うことで、誤検出の有無も判断できる。誤検出の場合には、良品画像200として機械学習ネットワークに入力し、学習に使用してもよい。
【0059】
ユーザが不良箇所Waを確認する場合、ステップSA10に進むと、プロセッサ13aは、不良箇所である可能性が高いとして特定した領域の調整指示をユーザから受け付ける。例えば、不良箇所である可能性が高いとして特定した領域が実際の不良箇所よりも大きな場合、当該領域を実際の不良箇所と同程度の大きさとなるまで縮小する。
図7の「不良箇所の調整」の画像として示す例は、不良箇所である可能性が高いとして特定した領域が実際の不良箇所よりも大きかったので、枠を縮小している。また、他の2つの領域については、不良箇所ではなかったので、枠を削除している。
【0060】
また、不良箇所である可能性が高いとして特定した領域が実際の不良箇所の一部を含んでいない場合、当該領域を実際の不良箇所の全てが含まれる形状及び大きさとなるまで修正する。また、不良箇所である可能性が高いとして特定した領域が実際の不良箇所よりも小さな場合、当該領域を実際の不良箇所と同程度の大きさとなるまで拡大する。また、不良箇所である可能性が高いとして特定した領域の位置が実際の不良箇所からずれている場合、当該領域の位置を変更する。また、不良箇所である可能性が高いとして特定した領域が、実際には不良箇所でない場合には、当該領域を削除する。削除するか否かの判断はユーザが行うことになるが、機械学習ネットワークで不良箇所として抽出された各領域の反応の強さは数値化されているので、プロセッサ13aは、複数の領域が抽出された場合に、当該複数の領域を反応の弱い順または強い順に並べてユーザに提示できる。これにより、削除するか否かの判断が容易に行えるようになる。
【0061】
本明細書では、上述した領域の縮小、拡大、修正、変更、削除等を「領域の調整」というものとする。尚、領域の調整の必要が無ければ、ステップSA10を省略すればよい。
【0062】
ステップSA4~SA9は、ループ処理によって複数回行うことができる。複数回行う際、不良品画像が抽出される都度、ステップSA9でユーザが確認してステップSA10において領域の調整指示を受け付ける。つまり、ユーザは、不良品画像201を1枚1枚確認し、必要に応じて調整指示を行えばよいので、全ての不良品画像201をユーザ自身が初めからアノテーションする場合に比べて負担を軽減できる。
図7には、「アノテーション完了」の画像として詳細に抽出した領域をアノテーション領域とした画像が示されている。
【0063】
このようにして、複数の不良品画像が収集された場合には、プロセッサ13aが、
図5に示すユーザーインターフェース300の不良品画像表示領域302に複数の不良品画像201を表示させる。このとき、複数の不良品画像201が一覧表示されるので、ユーザは複数の不良品画像201を容易に確認できる。尚、不良品画像201の数が多く、全ての不良品画像201を不良品画像表示領域302に一度に表示できない場合には、一部の不良品画像201のみ表示しておき、スクロールによって他の不良品画像201を閲覧可能にしてもよい。
【0064】
ステップSA12では、不良品画像表示領域302に表示されている不良品画像201の不良箇所の登録をユーザから受け付ける。具体的には、プロセッサ13aが、
図5に示すユーザーインターフェース300に一括アノテーションボタン304を表示させておく。ユーザが一括アノテーションボタン304を操作したことを、プロセッサ13aが検出すると、不良品画像表示領域302に表示されている複数の不良品画像201の不良箇所が登録される。つまり、抽出された複数の不良品画像201に対して、一括してアノテーションを実行することができる。尚、抽出された複数の不良品画像201のうち、一部の不良品画像201の不良箇所のみ登録してもよく、この場合は、図示しないが個別にアノテーション可能なボタン等をユーザーインターフェース300に設けておけばよい。
【0065】
ステップSA11では、アノテーションを完了させる。その手法について一例を説明すると、まず、
図6に示すように、不良箇所である可能性が高い第1領域201a及び第2領域211aを囲む枠310を生成する。枠310の形状は矩形状に限られるものではなく、第1領域201a及び第2領域211aを囲む形状であればどのような形状であってもよく、第2領域211aの外形に沿った形状であってもよい。
【0066】
枠310を生成した後、枠310内の領域に対して領域抽出アルゴリズムを用いて領域抽出を実行する。領域抽出アルゴリズムは、どのようなアルゴリズムを用いてもよいが、例えばGrabCut等のアルゴリズムを用いることができる。GrabCutアルゴリズムによって抽出された領域は、不良箇所のみであり、不良箇所の周囲の領域が抽出されないので、不良箇所の精密指定が自動的に行われる。これにより、ユーザの負担を軽減できる。
【0067】
ただし、GrabCutアルゴリズムの場合、不良箇所の精密指定が失敗する場合があり、この場合、不良箇所の周囲の領域まで含まれてしまう。このような場合、GrabCutアルゴリズムの実行後、ストローク修正を行うか、クリック修正を行うことにより、前景背景をユーザが細かく指定していき、GrabCutによって自動抽出された領域の形状の修正を受け付けることができるようにしてもよい。領域抽出アルゴリズムを用いて抽出した領域は、プロセッサ13aがアノテーション領域として登録しておく。尚、枠310の生成、領域抽出アルゴリズムの実行、アノテーション領域の登録は、ユーザによるストローク修正やクリック修正を伴わない場合には、バックグラウンドで行うことができる。
【0068】
尚、第1領域201a及び第2領域211aを囲む枠310をユーザが生成してもよい。一例として、矩形状の枠310を生成する際には、例えば左上の頂点に対応する位置にマウス52のポインタを置いて斜め右下にドラッグすることで、所望の位置に所望の大きさ及び形状の枠310を生成できる。枠310の大きさや位置はマウス52の操作によって変更可能になっている。また、図示しないが、3つの点を指定して円形の枠を生成してもよいし、任意の複数の点を指定し、この点を繋ぐ形状の枠を生成してもよいし、自由形状の枠を生成してもよい。上記ステップSA6~SA12で構成される処理が受付処理である。この受付処理は、外観検査方法の受付ステップに相当する。
【0069】
アノテーション領域の登録後、ステップSA13に進む。ステップSA13では、アノテーション領域が登録された不良品画像201を機械学習ネットワークに入力するとともに、登録を受け付けた不良箇所が抽出されるように機械学習ネットワークのパラメータを調整する調整処理を実行する。この調整処理は、不良品画像201を使用した不良品学習処理であり、外観検査方法の調整ステップに相当する。調整処理では、プロセッサ13aが、アノテーション領域が抽出されるように、即ちステップSA11でアノテーションが実行された不良品画像201が抽出されるように機械学習ネットワークのパラメータを調整する。
【0070】
調整処理の後、ステップSA14に進み、ステップSA13で調整されたパラメータを記憶装置19に記憶する。
【0071】
図5に示すように、ユーザーインターフェース300には、学習結果表示領域305が設けられている。学習結果表示領域305には、プロセッサ13aが生成した累積ヒストグラムを表示する。プロセッサ13aは、判定結果として、良品画像であると判定された度数と不良品画像であると判定された度数とを取得する。良品画像であると判定された度数と不良品画像であると判定された度数とに基づいて上記累積ヒストグラムを生成する。ユーザは、累積ヒストグラムにおいて良品画像の領域(図中にOKと記載された領域)と不良品画像の領域(図中にNGと記載された領域)とが分離できているか否かを判断できる。良品画像の領域と不良品画像の領域とが分離できていない場合には、機械学習ネットワークの推論性能が不十分であると考えられるので、不良品学習処理を実行することで、機械学習ネットワークの推論性能を向上させる。一方、良品画像の領域と不良品画像の領域とが分離できている場合には、機械学習ネットワークの推論性能が十分であると考えられる。
【0072】
その後、ステップSA15の検査処理に移行する。検査処理は、外観検査方法の検査ステップに相当しており、ステップSA13の調整処理でパラメータが調整された機械学習ネットワークにワーク画像を入力し、不良箇所が抽出されるか否かに基づいて、ワークの良否判定を行う。不良箇所が抽出されなければ、そのワーク画像のワークは良品であると判定する一方、不良箇所が抽出されれば、そのワーク画像のワークは不良品であると判定する。良否判定の結果は、プロセッサ13aが表示装置4に表示させるとともに、記憶装置19に記憶させる。
【0073】
検査処理は、外観検査装置1の運用時に行ってもよいし、外観検査装置1の設定時に行ってもよい。外観検査装置1の運用時に検査処理を行う場合には、外観検査装置1の運用時に取得されるワーク画像を機械学習ネットワークに入力すればよい。また、外観検査装置1の設定時に検査処理を行う場合には、予め用意している検査用画像を機械学習ネットワークに入力すればよい。
【0074】
プロセッサ13aは、検出処理において、不良品に対応する不良品画像201であることを示すラベルが付与されているにも関わらず、その不良品画像201が不良として判定されなかった場合、当該不良として判定されなかった不良品画像201を調整処理で機械学習ネットワークに入力する。すなわち、機械学習ネットワークの学習を行う際には、良品画像200には良品であることを示す良品ラベルが、不良品画像201には不良品であることを示す不良品ラベルがそれぞれ付与されている。不良品ラベルが付与されている不良品画像201を機械学習ネットワークに入力したとき、第1領域210aや第2領域211aが抽出されないケースがあり得る。このような不良品画像201は、良品学習では抽出できない不良箇所を有する不良品画像201である。良品学習では抽出できない不良箇所を有する不良品画像201は、表示装置4に表示させることで、ユーザにアノテーションを促すことができる。ユーザがアノテーションを実行した後、ステップSA13に進んで機械学習ネットワークの当該画像を入力し、機械学習ネットワークのパラメータを調整する。
【0075】
(機械学習ネットワークの学習の具体的な方法)
次に、機械学習ネットワークの学習の具体的な方法の一例について説明する。例えば、Loss関数を最小化することで機械学習ネットワークの学習を行うことができる。Lossの定義は様々であるが、Mean Square Error(MSE)を例して挙げることができる。
【0076】
【0077】
ここで、Tは目標異常度マップ、0は出力画像(異常度マップ)、nは画像Tが0の画素数、x、yは画素位置である。尚、Binary Cross EntropyなどのLoss関数も使用可能である。以上はあくまでも例示であり、機械学習ネットワークの学習方法は、これらの方法に限られるものではない。
【0078】
(外観検査装置1の運用時)
次に、外観検査装置1の運用時について、
図8に示すフローチャートに基づいて説明する。スタート後のステップSC1では、プロセッサ13aが、記憶装置19に記憶されているパラメータ等を読み込んで学習済みの機械学習ネットワークを用意する。ステップSC2では、検査対象のワークを撮像ユニット3で撮像してワーク画像を取得する。その後、ステップSC3に進み、ステップSC2で取得したワーク画像をステップSC1で用意した機械学習ネットワークに入力する。
【0079】
次いで、ステップSC4では、機械学習ネットワークがステップSC3で入力されたワーク画像の推論処理を実行する。その後、ステップSC5では、機械学習ネットワークが推論処理の結果としてマップ画像を出力する。
【0080】
しかる後、ステップSC6では、ステップSC5で出力されたマップ画像に基づいてワークの良否判定を行う。ステップSC2~SC6は、ワークが変わる都度、実行することができる。
【0081】
(実施形態の作用効果)
以上説明したように、この実施形態によれば、プロセッサ13aがワーク画像を機械学習ネットワークに入力すると不良品画像201を抽出することができ、
図6に示すように、不良品画像201中、不良箇所である可能性が高い領域210a、211aが検出される。不良箇所である可能性が高い領域210a、211aに基づいて、不良品画像201内の不良箇所Waが自動的に特定されるので、ユーザが不良品画像201の抽出及び不良箇所Waの特定を行わずに済む。特定された不良箇所Waは表示装置4によってユーザに提示されるので、ユーザは不良箇所Waを確認しながら、必要に応じて不良箇所Waを登録できる。不良箇所Waが登録されると、その不良箇所Waが抽出されるように、不良品学習によって機械学習ネットワークのパラメータが調整されるので、良品学習のみで学習した場合に比べて検出能力がより一層高まる。従って、ユーザの手間が増加するのを抑えながら、不良品の取り逃がしが極めて少ない機械学習ネットワークが得られる。
【0082】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0083】
以上説明したように、本発明は、ワークの外観を検査する場合に利用できる。
【符号の説明】
【0084】
1 外観検査装置
13a プロセッサ