(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023077051
(43)【公開日】2023-06-05
(54)【発明の名称】設定装置及び設定方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20230529BHJP
G06N 20/00 20190101ALI20230529BHJP
【FI】
G06T7/00 350C
G06N20/00 130
G06T7/00 610B
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021190169
(22)【出願日】2021-11-24
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】趙 新亮
(72)【発明者】
【氏名】俵 京佑
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA03
5L096DA01
5L096EA35
5L096HA11
5L096KA04
5L096KA13
(57)【要約】
【課題】機械学習ネットワークの学習時におけるユーザの手間を削減するとともに、属人性を排除しながらも、高い検出性能を持った機械学習ネットワークが得られるようにする。
【解決手段】設定装置は、機械学習ネットワークに学習させるための画像を表示部に表示させる表示制御部と、表示部に表示された画像に対し、良品画像または不良品画像であることを示すラベルを付与する第1アノテーション方式と、表示部に表示された画像が不良品画像である場合に不良箇所を指定する第2アノテーション方式とのいずれかの方式で入力された不良情報を受け付ける入力部と、第1アノテーション方式でラベルが付与された良品画像または不良品画像と、第2アノテーション方式で入力された不良情報を有する不良品画像との両方を機械学習ネットワークに学習させるプロセッサとを備えている。
【選択図】
図3
【特許請求の範囲】
【請求項1】
良品に対応する良品画像と、不良品に対応する不良品画像とを学習することにより生成された機械学習ネットワークに、検査対象のワークを撮像したワーク画像を入力し、当該ワーク画像の良否判定を行う外観検査装置の設定を行う設定装置であって、
前記機械学習ネットワークに学習させるための画像を表示部に表示させる表示制御部と、
前記表示部に表示された画像に対し、良品画像または不良品画像であることを示すラベルを付与する第1アノテーション方式と、前記表示部に表示された画像が不良品画像である場合に不良箇所を指定する第2アノテーション方式とのいずれかの方式で入力された不良情報を受け付ける入力部と、
前記第1アノテーション方式でラベルが付与された良品画像または不良品画像と、前記第2アノテーション方式で入力された不良情報を有する不良品画像との両方を前記機械学習ネットワークに学習させて、当該機械学習ネットワークのパラメータを調整するプロセッサとを備える、外観検査装置の設定装置。
【請求項2】
請求項1に記載の設定装置において、
前記入力部は、前記第2アノテーション方式として、不良品画像の不良箇所を囲むことで当該不良箇所を指定する領域指定方式と、不良品画像の不良箇所をなぞることで当該不良箇所を自由形状で指定する精密指定方式とが選択可能に構成されている、外観検査装置の設定装置。
【請求項3】
請求項1に記載の設定装置において、
前記入力部は、前記第2アノテーション方式として、不良品画像の不良箇所と当該不良箇所の周囲とを囲むことによって指定された領域内で当該不良箇所を自動抽出する自動抽出方式を実行可能に構成されている、外観検査装置の設定装置。
【請求項4】
請求項3に記載の設定装置において、
前記入力部は、前記第2アノテーション方式として、前記自動抽出方式の実行後、当該自動抽出方式で自動抽出された領域の形状の修正を受け付ける、外観検査装置の設定装置。
【請求項5】
請求項1から4のいずれか1つに記載の設定装置において、
前記プロセッサは、前記第1アノテーション方式でラベルが付与された良品画像または不良品画像と、前記第2アノテーション方式で不良箇所が指定された不良品画像とを単一の前記機械学習ネットワークに入力し、当該機械学習ネットワークのパラメータを調整する、外観検査装置の設定装置。
【請求項6】
請求項1から5のいずれか1つに記載の設定装置において、
前記プロセッサは、
前記第1アノテーション方式で良品画像または不良品画像であることを示すラベルが付与された良品画像または不良品画像を学習することにより生成された前記機械学習ネットワークに、検証用画像データを入力して当該検証用画像データの良否判定を実行する検証処理と、
前記検証処理での前記良否判定の結果、不良品に対応する前記検証用画像データであるにも関わらず不良として判定されなかった場合、不良箇所が前記第2アノテーション方式により指定された前記検証用画像データを前記機械学習ネットワークに学習させて当該機械学習ネットワークのパラメータを更新する更新処理とを実行可能に構成されている、外観検査装置の設定装置。
【請求項7】
請求項1から6のいずれか1つに記載の設定装置において、
前記表示制御部は、前記第1アノテーション方式で不良品画像のラベルが付与された画像の中で、不良として判定されなかった画像の一覧を前記表示部に表示させ、
前記入力部は、前記表示部に一覧表示された画像の中から前記第2アノテーション方式で不良箇所の指定を行う画像の選択入力を受け付け、選択された画像に対して前記第2アノテーション方式で不良箇所の指定を受け付ける、外観検査装置の設定装置。
【請求項8】
請求項1から6のいずれか1つに記載の設定装置において、
前記プロセッサは、前記第1アノテーション方式で不良品画像であることを示すラベルが付与された不良品画像を学習することにより生成された前記機械学習ネットワークに、複数の互いに異なる検証用画像データを入力して当該各検証用画像データの良否判定を実行することによって判定結果を取得し、
前記表示制御部は、前記プロセッサが取得した前記判定結果を前記表示部に表示させる、外観検査装置の設定装置。
【請求項9】
請求項8に記載の設定装置において、
前記プロセッサは、前記判定結果として、良品画像であると判定された度数と不良品画像であると判定された度数とを取得し、良品画像であると判定された度数と不良品画像であると判定された度数とに基づく累積ヒストグラムを生成し、
前記表示制御部は、前記プロセッサが生成した前記累積ヒストグラムを前記表示部に表示させる、外観検査装置の設定装置。
【請求項10】
請求項1から9のいずれか1つに記載の設定装置において、
前記プロセッサは、
前記第1アノテーション方式で入力された良品情報を有する良品画像と不良品情報を有する不良品画像との両方を含み、かつ互いに異なる少なくとも3枚の画像を前記機械学習ネットワークに入力して異常度マップを生成し、
良品情報を有する画像の異常度マップと不良品情報を有する画像の異常度マップとの距離を所定以上離す処理を実行可能に構成されている、外観検査装置の設定装置。
【請求項11】
請求項10に記載の設定装置において、
前記プロセッサは、良品情報を有する画像同士の異常度マップ間の距離を近づける処理と、不良品情報を有する画像同士の異常度マップ間の距離を近づける処理との少なくとも一方を実行可能に構成されている、外観検査装置の設定装置。
【請求項12】
請求項10または11に記載の設定装置において、
前記プロセッサは、前記第1アノテーション方式で入力された良品情報を有する良品画像を前記機械学習ネットワークに入力して生成された異常度マップ内の各画素値が0となるように当該機械学習ネットワークのパラメータを調整する、外観検査装置の設定装置。
【請求項13】
請求項12に記載の設定装置において、
前記プロセッサは、前記第2アノテーション方式で入力された不良品情報を有する不良品画像を前記機械学習ネットワークに入力して生成された異常度マップ内において、前記第2アノテーション方式で指定された不良箇所以外に対応する部分の画素値が0となるように当該機械学習ネットワークのパラメータを調整する、外観検査装置の設定装置。
【請求項14】
良品に対応する良品画像と、不良品に対応する不良品画像とを学習することにより生成された機械学習ネットワークに、検査対象のワークを撮像したワーク画像を入力し、当該ワーク画像の良否判定を行う外観検査装置の設定方法であって、
前記機械学習ネットワークに学習させるための画像を表示部に表示させる表示ステップと、
前記表示ステップで前記表示部に表示された画像に対し、良品画像または不良品画像であることを示すラベルを付与する第1アノテーション方式と、前記表示部に表示された画像が不良品画像である場合に不良箇所を指定する第2アノテーション方式とのいずれかの方式で入力された不良情報を受け付ける入力ステップと、
前記第1アノテーション方式でラベルが付与された良品画像または不良品画像と、前記第2アノテーション方式で入力された不良情報を有する不良品画像との両方を前記機械学習ネットワークに学習させて、当該機械学習ネットワークのパラメータを調整する調整ステップとを備える、外観検査装置の設定方法。
【請求項15】
請求項14に記載の設定方法において、
前記第1アノテーション方式で不良品画像であることを示すラベルが付与された不良品画像を前記機械学習ネットワークに学習させた後、検証用画像データを前記機械学習ネットワークに入力して当該検証用画像データの良否判定を実行する検証ステップと、
前記検証ステップでの前記良否判定の結果、不良品に対応する前記検証用画像データであるにも関わらず不良として判定されなかった場合、不良箇所を前記第2アノテーション方式により指定した後、当該第2アノテーション方式により不良箇所が指定された前記検証用画像データを前記機械学習ネットワークに学習させて当該機械学習ネットワークのパラメータを更新する更新ステップとをさらに備える、外観検査装置の設定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、外観検査装置の設定装置及び設定方法に関する。
【背景技術】
【0002】
例えば特許文献1には、コンピュータによる機械学習を用いて、ワークが良品であるか不良品であるかの判定を行う処理装置が開示されている。特許文献1の処理装置は、良品データを対象とした教師ありの機械学習を行って良品学習モデルを生成するとともに、不良品データを対象とした教師ありの機械学習を行って不良品学習モデルを生成した後、判定対象となるワークのデータを入力し、良品学習モデル及び不良品学習モデルによってワークが良品であるか不良品であるかの判定が行えるように構成されており、このような装置はワークの外観検査装置とも呼ばれている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、不良品データを対象とした教師あり学習を行う場合、そのワークのどこが不良箇所であるかをユーザ自身が明示する作業、いわゆるアノテーションが必要になる。不良品学習によって生成された不良品学習モデルによる判定性能は、アノテーションを詳細に行うほど向上する傾向にあるので、アノテーションをより詳細に行いたい。
【0005】
しかしながら、不良箇所は単純な形状であるとは限らず、様々な形状であったり、ワークの様々な位置にあることが多く、そのような不良箇所に対応する領域を不良品画像上で正確に指定する作業は難しい。不良箇所に対応する領域の指定が不正確であった場合には、不良品学習モデルによる判定性能の低下を招く結果となる。また、人間がアノテーションを行っている以上、不良箇所としてアノテーションするべき領域であるか否かを不良品画像上で判断に迷う場合や、不良箇所に対応する領域よりも大きな領域をアノテーションしてしまう場合、反対に、不良箇所に対応する領域よりも小さな領域をアノテーションしてしまう場合等も考えられる。このようなユーザによるアノテーションの違いは、最終的に生成された不良品学習モデルの性能に差を生じさせる結果となり得る。つまり、アノテーションを詳細にするのが理想であるが、詳細にすればするほど属人性が現れてしまい、結果として良好な判定性能を持った不良品学習モデルが得られなくなるおそれがある。
【0006】
また、不良品学習モデルを生成するに当たっては、例えば数十枚、数百枚の不良品画像が必要になるが、これほどの枚数の不良品画像の全てに正確にアノテーションを行おうとすると、ユーザに大きな時間的負担を強いることになり、このことも問題であった。
【0007】
本開示は、かかる点に鑑みたものであり、その目的とするところは、機械学習ネットワークの学習時におけるユーザの手間を削減するとともに、属人性を排除しながらも、高い検出性能を持った機械学習ネットワークが得られるようにすることにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示の一態様では、良品に対応する良品画像と、不良品に対応する不良品画像とを学習することにより生成された機械学習ネットワークに、検査対象のワークを撮像したワーク画像を入力し、当該ワーク画像の良否判定を行う外観検査装置の設定を行う設定装置を前提とすることができる。設定装置は、前記機械学習ネットワークに学習させるための画像を表示部に表示させる表示制御部と、前記表示部に表示された画像に対し、良品画像または不良品画像であることを示すラベルを付与する第1アノテーション方式と、前記表示部に表示された画像が不良品画像である場合に不良箇所を指定する第2アノテーション方式とのいずれかの方式で入力された不良情報を受け付ける入力部と、プロセッサとを備えている。プロセッサは、前記第1アノテーション方式でラベルが付与された良品画像または不良品画像と、前記第2アノテーション方式で入力された不良情報を有する不良品画像との両方を前記機械学習ネットワークに学習させて、当該機械学習ネットワークのパラメータを調整することができる。
【0009】
この構成によれば、第1アノテーション方式では、表示部に表示された画像をラベル指定によって良品画像と不良品画像に振り分けることができるので、全体的に不良であると判定すべき不良品画像のアノテーションが可能になる。一方、第2アノテーション方式では、不良品画像上で不良箇所を指定できるので、第1アノテーション方式に比べて不良箇所を詳細に指定するアノテーションが可能になる。つまり、不良品画像には、ラベルを付与するだけで不良であると判定が可能な不良品画像と、不良箇所を明確に指定しないと不良であると判定ができない不良品画像とが含まれている場合があり、前者の場合は、ユーザの手間をかけずに容易にアノテーションが行え、一方、後者の場合はユーザが詳細にアノテーションすることが可能になる。
【0010】
他の態様に係る入力部は、前記第2アノテーション方式として、不良品画像の不良箇所を囲むことで当該不良箇所を指定する領域指定方式と、不良品画像の不良箇所をなぞることで当該不良箇所を自由形状で指定する精密指定方式とが選択可能に構成されている。
【0011】
この構成によれば、領域指定方式を選択した場合には、不良箇所を囲む枠を例えばポインティングデバイス等によって生成することで、不良箇所を容易に指定することができる。また、不良箇所が例えば自由形状である場合には、精密指定方式を選択することで、自由形状の不良箇所を精密に指定することができる。つまり、不良箇所の大まかな指定と精密な指定とを必要に応じて切り替えることができるので、ユーザの手間を削減しながら、不良品画像を用いた機械学習ネットワークの学習を効果的に行うことができる。
【0012】
他の態様に係る入力部は、不良品画像の不良箇所と当該不良箇所の周囲とを囲むことによって指定された領域内で当該不良箇所を自動抽出する自動抽出方式を実行できるものである。
【0013】
この構成によれば、ユーザが不良箇所とその周囲を大まかに囲むだけで、自動的に不良箇所が抽出されるので、ユーザの手間をより一層削減できる。
【0014】
他の態様に係る入力部は、前記自動抽出方式の実行後、当該自動抽出方式で自動抽出された領域の形状の修正を受け付けることができるので、例えば、自動抽出された領域が不良箇所の形状から外れていた場合に、自動抽出された領域の形状が不良箇所の形状と一致するように、自動抽出された領域の形状をユーザが修正することで、より精密なアノテーションが可能になる。
【0015】
他の態様に係るプロセッサは、前記第1アノテーション方式でラベルが付与された良品画像または不良品画像と、前記第2アノテーション方式で不良箇所が指定された不良品画像とを単一の前記機械学習ネットワークに入力し、当該機械学習ネットワークのパラメータを調整することができるので、異なる方式でアノテーションが実行された複数の不良品画像で単一の機械学習ネットワークの学習が行える。
【0016】
他の態様に係るプロセッサは、不良品画像を学習することにより生成された前記機械学習ネットワークに、検証用画像データを入力して当該検証用画像データの良否判定を実行する検証処理が行える。プロセッサは、前記検証処理後、不良品に対応する前記検証用画像データであるにも関わらず不良として判定されなかった場合、不良箇所が前記第2アノテーション方式により指定された前記検証用画像データを前記機械学習ネットワークに学習させて当該機械学習ネットワークのパラメータを更新する更新処理を実行することができる。
【0017】
すなわち、不良品に対応する検証用画像データを不良として判定しない機械学習ネットワークは更なる学習の余地があるということである。このような機械学習ネットワークに対して、不良箇所が第2アノテーション方式により精密に指定された検証用画像データを学習させることで、機械学習ネットワークの判定性能をより一層向上させることができる。
【0018】
他の態様では、前記表示制御部は、前記第1アノテーション方式で不良品画像のラベルが付与された画像の中で、不良として判定されなかった画像の一覧を前記表示部に表示させることができる。前記入力部は、前記表示部に一覧表示された画像の中から前記第2アノテーション方式で不良箇所の指定を行う画像の選択入力を受け付け、選択された画像に対して前記第2アノテーション方式で不良箇所の指定を受け付ける。
【0019】
すなわち、不良品画像のラベルが付与された画像の中で、不良として判定されなかった画像があるということは、機械学習ネットワークに更なる学習の余地があるということである。このような場合、不良として判定されなかった画像を機械学習ネットワークに学習させることが考えられるが、そのまま学習させたのでは学習効果は殆ど向上しない。本構成では、不良品画像のラベルが付与された画像であるにも関わらず、不良として判定されなかった画像を表示部に表示させることでユーザに提示することができ、ユーザは、その画像の中から、第2アノテーション方式により精密に不良箇所を指定するのに適した画像を選択し、精密に不良箇所を指定した画像で機械学習ネットワークを学習させることができ、学習効果が向上する。
【0020】
他の態様では、前記プロセッサは、機械学習ネットワークに、複数の互いに異なる検証用画像データを入力して当該各検証用画像データの良否判定を実行し、表示制御部は、前記プロセッサが取得した前記判定結果を前記表示部に表示してユーザに提示することができる。
【0021】
この構成によれば、複数の検証用画像データの良否判定を機械学習ネットワークに実行させることでプロセッサは判定結果を取得できる。この判定結果が表示部に表示されるので、ユーザは、良品、不良品と指定されている画像が分離できているかを把握できる。良品画像であると判定された判定結果と、不良品画像であると判定された判定結果とが分離できている場合には、機械学習ネットワークの学習が十分に行われているとユーザ側で判断でき、また、きれいに分離できていない場合には、機械学習ネットワークの学習が不十分であって更なる学習が必要であるとユーザ側で判断できる。
【0022】
他の態様では、良品画像であると判定された度数と不良品画像であると判定された度数とに基づく累積ヒストグラムを生成して表示部に表示させるものである。
【0023】
この構成によれば、検証用画像データを機械学習ネットワークで良否判定した結果として、良品画像であると判定された度数と不良品画像であると判定された度数とに基づくヒストグラムをユーザに提示することができる。これにより、良品、不良品と指定されている画像が分離できているか否かをユーザが容易に判断できる。
【0024】
他の態様に係るプロセッサは、良品情報を有する画像の異常度マップと不良品情報を有する画像の異常度マップとの距離を所定以上離す処理を実行可能に構成されている。
【0025】
この構成によれば、良品情報を有する画像と、不良品情報を有する画像とを用いた学習効果がより一層向上する。
【0026】
他の態様に係るプロセッサは、良品情報を有する画像同士の異常度マップ間の距離を近づける処理と、不良品情報を有する画像同士の異常度マップ間の距離を近づける処理との少なくとも一方を実行可能に構成されている。
【0027】
この構成によれば、良品情報を有する複数の画像を用いた学習効果、不良品情報を有する複数の画像を用いた学習効果がより一層向上する。
【0028】
他の態様に係るプロセッサは、第1アノテーション方式で入力された良品情報を有する良品画像を前記機械学習ネットワークに入力して生成された異常度マップ内の各画素値が0となるように当該機械学習ネットワークのパラメータを調整することができる。
【0029】
他の態様に係るプロセッサは、前記第2アノテーション方式で入力された不良品情報を有する不良品画像を前記機械学習ネットワークに入力して生成された異常度マップ内において、前記第2アノテーション方式で指定された不良箇所以外に対応する部分の画素値が0となるように当該機械学習ネットワークのパラメータを調整することができる。
【発明の効果】
【0030】
以上説明したように、良品画像または不良品画像であることを示すラベルを付与する第1アノテーション方式と、不良品画像の不良箇所を指定する第2アノテーション方式とのいずれかの方式で不良情報を入力し、その不良情報に基づいて機械学習ネットワークのパラメータを調整することができるので、学習時におけるユーザの手間を削減するとともに、属人性を排除しながらも、高い検出性能を持った機械学習ネットワークを得ることができる。
【図面の簡単な説明】
【0031】
【
図1】本発明の実施形態に係る外観検査装置の設定装置の構成を示す模式図である。
【
図2】前記設定装置のハードウエア構成を示すブロック図である。
【
図3】アノテーションの手順の一例を示すフローチャートである。
【
図4】FIG.4Aは第1アノテーション方式で不良品画像にラベルを付与する場合を示し、FIG.4Bは第1アノテーション方式で良品画像にラベルを付与する場合を示している。
【
図5】第2アノテーション方式で不良品画像の不良箇所を指定した例を示す図である。
【
図6】FIG.6Aは、3つの点を通る円形状の枠で不良箇所を囲む例を示し、FIG.6Bは、中心点の指定によって生成した円形状の枠で不良箇所を囲む例を示し、FIG.6Cは、ポリゴンで不良箇所を囲む例を示し、FIG.6Dは、フリーハンドツールによって生成した枠で不良箇所を囲む例を示す図である。
【
図7】第2アノテーション方式の詳細を説明する図である。
【
図8】一の例に係る不良箇所を第1アノテーション方式及び第2アノテーション方式で指定する場合を説明する図である。
【
図9】別の例に係る不良箇所を第1アノテーション方式及び第2アノテーション方式で指定する場合を説明する図である。
【
図10】機械学習ネットワークのパラメータ調整手順の第1の例を示すフローチャートである。
【
図11】学習パラメータ分析の結果を表示したユーザーインターフェース画面の一例を示す図である。
【
図12】不良として判定されなかった不良品画像を表示したユーザーインターフェース画面の一例を示す図である。
【
図13】第2アノテーション方式を実行するユーザーインターフェース画面の一例を示す図である。
【
図14】パラメータ更新後のユーザーインターフェース画面の一例を示す図である。
【
図15】機械学習ネットワークのパラメータ調整手順の第2の例を示すフローチャートである。
【
図16】異常抽出用のニューラルネットワークから出力される出力画像の例を示す図である。
【発明を実施するための形態】
【0032】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0033】
図1は、本発明の実施形態に係る外観検査装置の設定装置(以下、単に設定装置という)1の構成を示す模式図である。設定装置1は、外観検査装置の各種設定(詳細は後述する)をユーザが行えるようにするための装置である。外観検査装置は、例えば各種部品や製品等のような検査対象であるワークを撮像して取得されたワーク画像の良否判定を行うための装置であり、工場等の生産現場等で使用することができる。具体的には、外観検査装置の内部には機械学習ネットワークが構築されており、この機械学習ネットワークは、良品に対応する良品画像と、不良品に対応する不良品画像とを学習することにより生成されている。生成された機械学習ネットワークに、検査対象のワークを撮像したワーク画像を入力し、当該ワーク画像の良否判定を機械学習ネットワークによって行うことができるようになっている。
【0034】
ワークは、それ全体が検査対象であってもよいし、ワークの一部のみが検査対象であってもよい。また、1つのワークに複数の検査対象が含まれていてもよい。また、ワーク画像には、複数のワークが含まれていてもよい。
【0035】
設定装置1は、装置本体となる制御ユニット2と、撮像ユニット3と、表示装置(表示部)4と、パーソナルコンピュータ5とを備えている。パーソナルコンピュータ5は、必須なものではなく、省略することもできる。表示装置4の代わりにパーソナルコンピュータ5を使用して各種情報や画像を表示させることもできるし、パーソナルコンピュータ5の機能を制御ユニット2に組み込むことや、表示装置4に組み込むことができる。
【0036】
図1では、設定装置1の構成例の一例として、制御ユニット2、撮像ユニット3、表示装置4及びパーソナルコンピュータ5を記載しているが、これらのうち、任意の複数を組み合わせて一体化することもできる。例えば、制御ユニット2と撮像ユニット3を一体化することや、制御ユニット2と表示装置4を一体化することもできる。また、制御ユニット2を複数のユニットに分割して一部を撮像ユニット3や表示装置4に組み込むことや、撮像ユニット3を複数のユニットに分割して一部を他のユニットに組み込むこともできる。
【0037】
また、設定装置1のハードウエアと、外観検査装置のハードウエアとは共通する部分が多いので、設定装置1に外観検査装置の各機能を実現するためのプログラムを組み込んで外観検査機能を有する設定装置1としてもよいし、外観検査装置に設定装置1の各機能を実現するためのプログラムを組み込んで後述する設定機能を有する外観検査装置としてもよい。また、設定装置1と、外観検査装置とは互いに分離された装置であってもよく、この場合、設定装置1と外観検査装置とを相互に通信可能に接続して使用することができる。
【0038】
(撮像ユニット3の構成)
図2に示すように、撮像ユニット3は、カメラモジュール(撮像部)14と、照明モジュール(照明部)15とを備えており、ワーク画像の取得を実行するユニットである。カメラモジュール14は、撮像光学系を駆動するAF用モータ141と、撮像基板142とを備えている。AF用モータ141は、撮像光学系のレンズを駆動することにより、自動でピント調整を実行する部分であり、従来から周知のコントラストオートフォーカス等の手法によってピント調整を行うことができる。撮像基板142は、撮像光学系から入射した光を受光する受光素子としてCMOSセンサ143を備えている。CMOSセンサ143は、カラー画像を取得することができるように構成された撮像センサである。CMOSセンサ143の代わりに、例えばCCDセンサ等の受光素子を用いることもできる。
【0039】
照明モジュール15は、ワークを含む撮像領域を照明する発光体としてのLED(発光ダイオード)151と、LED151を制御するLEDドライバ152とを備えている。LED151による発光タイミング、発光時間、発光量は、LEDドライバ152によって任意に制御することができる。LED151は、撮像ユニット3に一体に設けてもよいし、撮像ユニット3とは別体として外部照明ユニットとして設けてもよい。
【0040】
(表示装置4の構成)
表示装置4は、例えば液晶パネルや有機ELパネル等からなる表示パネルを有している。制御ユニット2から出力されたワーク画像やユーザーインターフェース画像等は表示装置4に表示される。また、パーソナルコンピュータ5が表示パネルを有している場合、パーソナルコンピュータ5の表示パネルを表示装置4の代わりとして利用することができる。
【0041】
(操作機器)
設定装置1をユーザが操作するための操作機器としては、例えば、パーソナルコンピュータ5が有するキーボード51やマウス52等を挙げることができるが、これらに限られるものではなく、ユーザによる各種操作を受付可能に構成された機器であればよい。例えば、表示装置4が有するタッチパネル41のようなポインティングデバイスも操作機器に含まれる。
【0042】
キーボード51やマウス52のユーザによる操作は制御ユニット2で検出可能になっている。また、タッチパネル41は、例えば感圧センサを搭載した従来から周知のタッチ式操作パネルであり、ユーザのタッチ操作は制御ユニット2で検出可能になっている。他のポインティングデバイスを用いた場合も同様である。
【0043】
(制御ユニット2の構成)
制御ユニット2は、メイン基板13と、コネクタ基板16と、通信基板17と、電源基板18とを備えている。メイン基板13には、表示制御部13aと、画像の不良情報を受け付ける入力部13bと、プロセッサ13cとが設けられている。表示制御部13a及び入力部13bは、例えば、メイン基板13に実装された演算処理装置によって構成することができる。また、1つの演算処理装置によって表示制御部13a、入力部13b及びプロセッサ13cが構成されていてもよいし、別々の演算処理装置によって表示制御部13a、入力部13b及びプロセッサ13cが構成されていてもよい。
【0044】
表示制御部13a、入力部13b及びプロセッサ13cは、接続されている各基板及びモジュールの動作を制御する。例えば、プロセッサ13cは、照明モジュール15のLEDドライバ152に対してLED151の点灯/消灯を制御する照明制御信号を出力する。LEDドライバ152は、プロセッサ13cからの照明制御信号に応じて、LED151の点灯/消灯の切替及び点灯時間の調整を行うとともに、LED151の光量等を調整する。
【0045】
また、プロセッサ13cは、カメラモジュール14の撮像基板142に、CMOSセンサ143を制御する撮像制御信号を出力する。CMOSセンサ143は、プロセッサ13cからの撮像制御信号に応じて、撮像を開始するとともに、露光時間を任意の時間に調整して撮像を行う。すなわち、撮像ユニット3は、プロセッサ13cから出力される撮像制御信号に応じてCMOSセンサ143の視野範囲内を撮像し、視野範囲内にワークがあれば、ワークを撮像することになるが、ワーク以外の物が視野範囲内にあれば、それも撮像することができる。例えば、設定装置1は、機械学習ネットワークの学習用の画像として、撮像ユニット3により、良品に対応する良品画像と不良品に対応する不良品画像とを撮像することができる。学習用の画像は、撮像ユニット3で撮像された画像でなくてもよく、他のカメラ等で撮像された画像であってもよい。
【0046】
一方、外観検査装置の運用時には、撮像ユニット3により、ワークを撮像することができる。また、CMOSセンサ143は、ライブ画像、即ち現在の撮像された画像を短いフレームレートで随時出力することができるように構成されている。
【0047】
CMOSセンサ143による撮像が終わると、撮像ユニット3から出力された画像信号は、メイン基板13のプロセッサ13cに入力されて処理されるとともに、メイン基板13のメモリ13dに記憶されるようになっている。メイン基板13のプロセッサ13cによる具体的な処理内容の詳細については後述する。尚、メイン基板13には、FPGAやDSP等の処理装置が設けられていてもよい。FPGAやDSP等の処理装置が統合されたプロセッサ13cであってもよい。
【0048】
コネクタ基板16は、電源インターフェース161に設けてある電源コネクタ(図示せず)を介して外部から電力の供給を受ける部分である。電源基板18は、コネクタ基板16で受けた電力を各基板及びモジュール等に分配する部分であり、具体的には、照明モジュール15、カメラモジュール14、メイン基板13、及び通信基板17に電力を分配する。電源基板18は、AF用モータドライバ181を備えている。AF用モータドライバ181は、カメラモジュール14のAF用モータ141に駆動電力を供給し、オートフォーカスを実現している。AF用モータドライバ181は、メイン基板13のプロセッサ13cからのAF制御信号に応じて、AF用モータ141に供給する電力を調整する。
【0049】
通信基板17は、メイン基板13と表示装置4及びパーソナルコンピュータ5との通信、メイン基板13と外部制御機器(図示せず)との通信等を実行する部分である。外部制御機器は、例えばプログラマブルロジックコントローラ等を挙げることができる。通信は、有線であってもよいし、無線であってもよく、いずれの通信形態も、従来から周知の通信モジュールによって実現することができる。
【0050】
制御ユニット2には、例えばソリッドステートドライブ、ハードディスクドライブ等からなる記憶装置(記憶部)19が設けられている。記憶装置19には、後述する各制御及び処理を上記ハードウエアによって実行可能にするためのプログラムファイル80や設定ファイル等(ソフトウエア)が記憶されている。プログラムファイル80や設定ファイルは、例えば光ディスク等の記憶媒体90に格納しておき、この記憶媒体90に格納されたプログラムファイル80や設定ファイルを制御ユニット2にインストールすることができる。プログラムファイル80は、外部サーバから通信回線を利用してダウンロードされるものであってもよい。また、記憶装置19には、例えば、上記画像データや、外観検査装置の機械学習ネットワークを構築するためのパラメータ等を記憶させておくこともできる。
【0051】
(アノテーション)
設定装置1は、外観検査装置の機械学習ネットワークに、良品に対応する良品画像と不良品に対応する不良品画像とを入力して学習させることにより、当該機械学習ネットワークのパラメータを調整する。例えば、機械学習ネットワークのパラメータの初期値を無作為に決定しておき、機械学習ネットワークから出力される画像認識の誤差をフィードバックしながらパラメータを調整していく手法を採用できる。
【0052】
ユーザは、機械学習ワークの学習に先立ち、機械学習ネットワークに入力する画像が良品画像であるか、不良品画像であるか、また、機械学習ネットワークに入力する画像が不良品画像である場合にどこが不良箇所であるかを指定する必要がある。これがユーザ自身によるアノテーションであり、本実施形態では、第1アノテーション方式と、第2アノテーション方式を含む複数の方式でアノテーションの実行が可能になっている。
【0053】
図3に示すように、ユーザによるアノテーションの実行開始操作が行われると、ステップSA1に進み、アノテーションを行う画像をユーザが選択する。例えば
図4に示すようなワークWを含む画像を設定装置1に複数記憶させておき、その中からユーザが所望の画像を選択する。その後、ステップSA2に進むと、
図4のFIG.4A及びFIG.4Bにそれぞれ示すように、表示制御部13aは、アノテーション実行用ユーザーインターフェース画面200を生成し、表示装置4に表示させる。アノテーション実行用ユーザーインターフェース画面200には、機械学習ネットワークに学習させるための画像を表示するための画像表示領域201が設けられている。FIG.4Aには、画像表示領域201に不良品画像202が表示されている場合を示しており、黒丸の部分が不良箇所202aである。またFIG.4Bには、画像表示領域201に良品画像203が表示されている場合を示している。これが表示ステップである。つまり、ユーザがアノテーションを実行する前段階で、表示制御部13aが機械学習ネットワークに学習させるための画像を表示装置4に表示させることで、ユーザは表示装置4に表示されている画像を見ながら、アノテーションを実行することができる。
【0054】
次いでステップSA3に進み、第1アノテーション方式によるアノテーションをユーザが行う。第1アノテーション方式では、表示装置4に表示された画像に対し、良品画像または不良品画像であることを示すラベルを付与する。具体的には、
図4のFIG.4Aでは、不良品画像202が表示されているので、その不良品画像202には、右側に示すように不良品画像であることを示すラベルとして例えば「NG」等と記載された不良品ラベルA1を付与する。この不良品ラベルA1が第1アノテーション方式で入力された不良情報である。
【0055】
一方、
図4のFIG.4Bでは、良品画像203が表示されているので、その画像203には、右側に示すように良品画像であることを示すラベルとして例えば「OK」等と記載された良品ラベルA2を付与する。この良品ラベルA2が第1アノテーション方式で入力された良品情報である。ユーザによるラベルの付与方法はどのような方法であってもよく、例えば「NG」と表示されたボタン及び「OK」と表示されたボタンをアノテーション実行用ユーザーインターフェース画面200に設けておき、このボタンの操作によって所望のラベルA1、A2を付与するようにしてもよい。
【0056】
第1アノテーション方式によるラベルの付与方法としては、画像に1枚ずつ付与してもよいし、例えば複数の不良品画像を特定のフォルダに保存しておき、そのフォルダ内の不良品画像に対して一括して不良品ラベルA1を付与してもよい。また、良品画像についても同様に複数の良品画像を特定のフォルダに保存しておき、そのフォルダ内の良品画像に対して一括して良品ラベルA2を付与してもよい。
【0057】
良品画像203の場合は、
図3に示すフローチャートのステップSA4及びSA5を省略してステップSA6に進む。ステップSA6では、入力部13bが、第1アノテーション方式で入力された良品情報を受け付ける。入力部13bは、表示装置4に表示されている良品画像203と、良品情報(ラベルA2)とを関連付けた状態で、記憶装置19に記憶させておくことができる。
【0058】
不良品画像202の場合は、
図3に示すフローチャートのステップSA4及びSA5を省略してステップSA6に進んでもよいし、ステップSA4及びSA5を実行してステップSA6に進んでもよい。ステップSA4及びSA5を省略する場合、ステップSA6では、入力部13bが、第1アノテーション方式で入力された不良情報を受け付ける。入力部13bは、表示装置4に表示されている不良品画像202と、不良情報(不良品ラベルA1)とを関連付けた状態で、記憶装置19に記憶させておくことができる。
【0059】
ステップSA4及びステップSA5は、表示装置4に表示された画像が不良品画像202である場合に不良箇所を指定する第2アノテーション方式の例である。ステップSA4及びステップSA5の一方のみ実行してもよいし、両方を実行してもよい。ステップSA3からステップSA4またはステップSA5に進む場合には、ユーザが所定の操作を行うようにしてもよいし、不良ラベルA2が付与されたことを検知し、自動で進むようにしてもよい。
【0060】
ステップSA4は、表示装置4に表示された不良品画像202の不良箇所202aを囲むことで当該不良箇所202aを指定する領域指定方式の例であり、またステップSA5は、表示装置4に表示された不良品画像202の不良箇所202aをなぞることで当該不良箇所202aを自由形状で指定する精密指定方式の例である。ユーザは、領域指定方式と、精密指定方式のどちらでも選択することができる。
【0061】
ステップSA3の後、
図5に示すように、表示制御部13aは、アノテーション実行用ユーザーインターフェース画面200を表示装置4に表示させ、画像表示領域201には不良品ラベルA1が付与された不良品画像202を表示させる。アノテーション実行用ユーザーインターフェース画面200には、指定方式選択ウインドウ204が表示される。指定方式選択ウインドウ204には、領域指定方式を選択するための第1ボタン204aと、精密指定方式を選択するための第2ボタン204bと、消しゴムツールを選択するための第3ボタン204cとが設けられている。第1ボタン204aがユーザによって操作されたことを検出すると
図3に示すフローチャートのステップSA4に進み、第2ボタン204bがユーザによって操作されたことを検出するとステップSA5に進む。尚、第3ボタン204cを操作すると、領域指定方式や精密指定方式による指定操作の少なくとも一部を取り消したり、指定した領域の一部を消したりすることができる。
【0062】
ステップSA4では、表示装置4に表示されているマウス52のポインタ205(
図5に示す)やマウス52のクリックボタン(図示せず)をユーザが操作して不良品画像202の不良箇所202aを囲む。
図5に示す例では、ユーザがマウス52のポインタ205及びクリックボタンを操作し、不良箇所202aを囲む大きさの矩形状の枠206を生成した例である。矩形状の枠206を生成する際には、例えば左上の頂点に対応する位置にポインタ205を置いて斜め右下にドラッグすることで、所望の位置に所望の大きさ及び形状の枠206を生成できる。枠206の大きさや位置はマウス52の操作によって変更可能になっている。
【0063】
また、
図6のFIG.6Aに示すように、不良品画像202上でポインタ205によって3つの点207を指定し、これら3つの点207を通る円形の枠208を生成し、この枠208で不良箇所202aを囲むようにしてもよい。また、
図6のFIG.6Bに示すように、不良品画像202上でポインタ205によって点210を指定し、この点210を中心とする円形の枠211を生成し、この枠211で不良箇所202aを囲むようにしてもよい。
【0064】
また、
図6のFIG.6Cに示すように、不良品画像202上でポインタ205によって複数の点212を指定し、この点212を繋ぐ形状の枠213を生成し、この枠213で不良箇所202aを囲むようにしてもよい。また、
図6のFIG.6Dに示すように、不良品画像202上で不良箇所202aを囲むようにポインタ205を動かして自由形状の枠214を生成し、この枠214で不良箇所202aを囲むようにしてもよい。FIG.6Dに示す例では、いわゆるフリーハンドツールによる自由描画によって領域を指定する方法である。どの指定方法にするかは、不良箇所202aの形状や大きさによって決定すればよい。
【0065】
以上のようにしてステップSA4では、不良情報として不良箇所202aを囲む枠206、208、211、213、214の位置、形状及び大きさが取得される。例えば、
図5に示す枠206の中心座標と、縦辺及び横辺の長さとを取得することで、不良品画像202における不良箇所202aを特定することができる。
図6に示す場合も同様に枠208、211、213、214の情報を取得することで、不良品画像202における不良箇所202aを特定することができる。この不良箇所202aを特定する情報が不良情報である。
【0066】
ステップSA4でユーザが不良箇所202aを指定すると、ステップSA6に進む。ステップSA6では、入力部13bが、ステップSA4で入力された不良情報を受け付ける。入力部13bは、表示装置4に表示されている不良品画像202と、ステップSA4で入力された不良情報とを関連付けた状態で、記憶装置19に記憶させておくことができる。
【0067】
図5に示すアノテーション実行用ユーザーインターフェース画面200上の指定方式選択ウインドウ204でユーザが第2ボタン204bを操作してステップSA5に進むと、
図7のFIG.7Aに示すように、塗り潰しツール220がアノテーション実行用ユーザーインターフェース画面200に表示される。ユーザがマウス52を操作することによって塗り潰しツール220を自由に動かすことができる。ユーザは、不良品画像202における不良箇所202aをなぞるように塗り潰しツール220を動かすことで、不良箇所202aを自由形状で指定することができる。塗り潰しツール220によって不良箇所202aをなぞることで、不良箇所202a以外の部分が含まれにくくなるので、ステップSA4の領域指定方式に比べて精密なアノテーションが可能になる。塗り潰しツール220によって塗りつぶされた領域の位置及び形状、大きさを取得することで、不良品画像202における不良箇所202aを特定することができる。この不良箇所202aを特定する情報が不良情報である。
【0068】
図3に示すフローチャートのステップSA5でユーザが塗り潰しツール220によって不良箇所202aを指定すると、ステップSA6に進む。ステップSA6では、入力部13bが、ステップSA5で入力された不良情報を受け付ける。入力部13bは、表示装置4に表示されている不良品画像202と、ステップSA5で入力された不良情報とを関連付けた状態で、記憶装置19に記憶させておくことができる。
【0069】
ステップSA5では、上述した塗り潰しツール220以外にも、例えば
図7のFIG.7Bに示すようなマグネットツール221で不良箇所202aを指定してもよい。マグネットツール221は、マウス52の操作で移動させることができ、不良箇所202aの近傍まで移動させると、不良箇所202aへ自動的に吸い付けられるように移動する。複数のマグネットツール221を繋ぐ枠222内に不良箇所202aが入るので、ユーザの負担を軽減しながら不良箇所202aの精密な指定を行うことができる。枠222の位置及び形状、大きさが不良情報である。
【0070】
また、ステップSA5では、例えば
図7のFIG.7Cに示すようなGrabCutツール223で不良箇所202aを指定してもよい。GrabCutツール223によって不良箇所202aと当該不良箇所202aの周囲とを囲むと、その領域が指定され、指定された領域内で当該不良箇所202aを自動抽出する自動抽出方式を実行する。自動抽出方式では、不良箇所202aのみが指定され、不良箇所202aの周囲の領域が指定されないので、右に白丸で示すように不良箇所202aの精密指定が自動的に行われる。これにより、ユーザの負担を軽減できる。
【0071】
ただし、GrabCutツール223の場合、不良箇所202aの精密指定が失敗する場合があり、この場合、不良箇所202aの周囲の領域まで含まれてしまう。精密指定が失敗した場合をFIG.7Cの下に示しており、この例では円形の不良箇所202aが矩形に近い形状であると誤って指定されている。このような場合、自動抽出方式の実行後、ストローク修正を行うか、クリック修正を行うことにより、前景背景をユーザが細かく指定していき、GrabCutツール223によって自動抽出された領域の形状の修正を入力部13bが受け付ける。
【0072】
また、AI Assisted指定によって不良箇所202aを指定してもよい。AI Assisted指定の場合、不良箇所202aの輪郭を大まかに指定して抽出した後、その抽出箇所の内部をFillツール等で指定する。これにより、不良箇所202aを自動抽出することができる。不良箇所202aを自動抽出した後、微修正することも可能である。
【0073】
ステップSA6の後、ステップSA7に進み、アノテーションを行った画像の数が必要数に達したか否かを判定する。NOと判定されて必要数に満たない場合にはステップSA1に進む。一方、YESと判定されて必要数のアノテーションが完了すると、アノテーションを終了する。ステップSA1~SA7は、第1アノテーション方式と第2アノテーション方式とのいずれかの方式で入力された不良情報を受け付ける入力ステップである。
【0074】
(アノテーションの具体例)
図8のFIG.8Aは、不良品画像202に1本の線状の不良箇所202aが存在する場合を示している。FIG.8Bは、ステップSA3の第1アノテーション方式によって不良品ラベルA1が付与された状態を示している。FIG.8Cは、ステップSA4の領域指定方式で矩形状の枠206を生成し、生成した枠206で不良箇所202aを囲むことによって当該不良箇所202aを指定した場合を示している。FIG.8Dは、ステップSA4の領域指定方式で複数の点を繋ぐ枠213を生成し、生成した枠213で不良箇所202aを囲むことによって当該不良箇所202aを指定した場合を示している。FIG.8Eは、ステップSA5の精密指定方式でフリーハンドツールを使用して不良箇所202aを囲む枠230を生成し、この枠230によって不良箇所202aを指定した場合を示している。ユーザは、第1アノテーション方式の後、領域指定方式によるアノテーションを行ってもよいし、精密指定方式によるアノテーションを行ってもよい。領域指定方式によるアノテーション後、当該領域指定方式によるアノテーションを取り消してから、精密指定方式によるアノテーションを行ってもよい。
【0075】
図9のFIG.9Aは、不良品画像202に、互いに交わる2本の線状の不良箇所202aが存在する場合を示している。FIG.9Bは、ステップSA3の第1アノテーション方式によって不良品ラベルA1が付与された状態を示している。FIG.9Cは、ステップSA4の領域指定方式で矩形状の枠206を生成し、生成した枠206で不良箇所202aを囲むことによって当該不良箇所202aを指定した場合を示している。FIG.9Dは、ステップSA4の領域指定方式で複数の点を繋ぐ枠213を生成し、生成した枠213で不良箇所202aを囲むことによって当該不良箇所202aを指定した場合を示している。FIG.9Eは、ステップSA5の精密指定方式でフリーハンドツールを使用して不良箇所202aを囲む枠230を生成し、この枠230によって不良箇所202aを指定した場合を示している。FIG.9D及びFIG.9Eに示す例では、FIG.9Cに示す例に比べて不良箇所202aの精密指定が可能になる。
【0076】
FIG.9Fは、ステップSA4の領域指定方式で矩形状の枠206を2つ生成し、2つの枠206で不良箇所202aを指定した場合を示している。FIG.9Gは、ステップSA4の領域指定方式で矩形状の枠206と、複数の点を繋ぐ枠213とを生成し、枠206、213で不良箇所202aを指定した場合を示している。このように、複数種の枠206、213を組み合わせて不良箇所202aを指定してもよい。
【0077】
(機械学習ネットワークのパラメータ調整手順の第1の例)
プロセッサ13cは、第1アノテーション方式で入力された不良情報を有する不良品画像202と、第2アノテーション方式で入力された不良情報を有する不良品画像202との両方を機械学習ネットワークに学習させる。すなわち、第1アノテーション方式で不良品画像202であることを示す不良品ラベルA1が付与された不良品画像202と、第2アノテーション方式で不良箇所202aが指定された不良品画像202とを単一の前記機械学習ネットワークに入力し、各不良品画像202の不良情報に基づいて当該機械学習ネットワークのパラメータを調整するように構成されている。
【0078】
以下、
図10に示すフローチャートに基づいて、機械学習ネットワークのパラメータ調整手順の第1の例について具体的に説明する。機械学習ネットワークのパラメータ調整は、ユーザが行ってもよいし、設定装置1を製造するメーカが行ってもよいし、クラウド上でおこなってもよい。
【0079】
スタート後のステップSB1では、第1アノテーション方式によるアノテーションを行う。ステップSB2では、プロセッサ13cが、第1アノテーション方式で良品ラベルA2が付与された良品画像203と、第1アノテーション方式で不良品ラベルA1が付与された不良品画像202を機械学習ネットワークに学習させる。すなわち、プロセッサ13cは、各良品画像203の良品情報と、各不良品画像202の不良情報とに基づいて機械学習ネットワークのパラメータを調整する。ステップSB2で機械学習ネットワークに学習させる良品画像203及び不良品画像202の枚数は任意の枚数に設定することができる。ステップSB2は、不良品画像の不良情報に基づいて機械学習ネットワークのパラメータを調整する調整ステップである。
【0080】
その後、ステップSB3に進み、プロセッサ13cが検証処理を実行する。具体的には、第1アノテーション方式で不良品画像202であることを示す不良品ラベルA1が付与された不良品画像202を学習することにより生成された機械学習ネットワークに、プロセッサ13cが複数の互いに異なる検証用画像データを入力して当該検証用画像データの良否判定を機械学習ネットワークに実行させる。ステップSB3では、プロセッサ13cが
図11に示すようなユーザーインターフェース画面300を生成し、表示制御部13aが表示装置4に表示させる。ステップSB3は、パラメータが調整された後の機械学習ネットワークに検証用画像データを入力して当該検証用画像データの良否判定を実行する検証ステップである。
【0081】
ユーザーインターフェース画面300には、検証用画像データを表示する検証用画像データ表示領域301が設けられている。検証用画像データ表示領域301には、プロセッサ13cが機械学習ネットワークに入力した検証用画像データが一覧形式で表示される。「OK」と付されている検証用画像データは良品画像であり、「NG」と付されている検証用画像データは不良品画像である。
【0082】
ユーザーインターフェース画面300には、拡大画像表示領域302が設けられている。検証用画像データ表示領域301に表示されている検証用画像データのうち、ユーザが選択した検証用画像データが拡大画像表示領域302に拡大表示される。
【0083】
ユーザーインターフェース画面300には、学習パラメータ分析領域303が設けられている。すなわち、プロセッサ13cは、複数の検証用画像データの良否判定を機械学習ネットワークに実行させることにより、複数の判定結果を取得する。表示制御部13aは、プロセッサ13cが取得した複数の判定結果を表示装置4に学習パラメータ分析領域303として表示させることで、ユーザは機械学習ネットワークの推論性能がどの程度であるかを把握できる。
【0084】
本例では、判定結果の表示形態として累積ヒストグラムを表示させる場合について説明する。この場合、例えば、プロセッサ13cは、判定結果として、良品画像であると判定された度数と、不良品画像であると判定された度数とを取得する。プロセッサ13cは、良品画像であると判定された度数と、不良品画像であると判定された度数とに基づく累積ヒストグラムを生成する。表示制御部13aは、プロセッサ13cが生成した累積ヒストグラムを表示装置4に表示させる。
図11に示す学習パラメータ分析領域303には、良品画像の度数分布と、不良品画像の度数分布とがグラフ形式で表示される。
図11に示すグラフでは、良品画像の領域(図中にOKと記載された領域)と不良品画像の領域(図中にNGと記載された領域)とが分離できていない。このような場合には、機械学習ネットワークの推論性能が不十分であると考えられるので、ステップSB4において、ステップSB2のパラメータ調整で望ましい結果が得られていないと判断する。一方、ステップSB4で望ましい結果が得られたと判断される場合には、ステップSB5に進む。「望ましい結果が得られたと判断される場合」については後述する。ステップSB5の「運用」とは、外観検査装置を運用可能な状態することであり、直ちに運用を開始してもよいし、待機状態であってもよい。
【0085】
ステップSB4でNOと判定されて進んだステップSB6では、ユーザに対して第2アノテーションの実行を促す。すなわち、
図11に示すユーザーインターフェース画面300には、メッセージ表示領域304が設けられている。この例では、良品画像の領域と不良品画像の領域とが分離できておらず、機械学習ネットワークの推論性能が不十分であると考えられるので、メッセージ表示領域304には、機械学習ネットワークの推論性能を向上させる方法をプロセッサ13cが生成し、表示制御部13aが表示装置4に表示させる。機械学習ネットワークの推論性能を向上させる方法としては、例えば「特徴サイズを見直す」、「画像の変動を考慮する」、「アノテーションを詳細化する」等である。
【0086】
上述したように第2アノテーション方式は第1アノテーション方式に比べて詳細なアノテーションが可能である。よって、「アノテーションを詳細化する」という表示をメッセージ表示領域304に表示することは、ユーザに対して第2アノテーション方式の実行を促すこと、または機械学習ネットワークの推論性能の向上させる方法の選択肢として第2アノテーションがあることをユーザに提示することである。
【0087】
図11に示すユーザーインターフェース画面300には、画像数表示領域305が設けられている。画像数表示領域305には、表が表示されており、その表には「ラベル指定」の欄が設けられている。「ラベル指定」の欄には、第1アノテーション方式で不良品ラベルA1が付与された不良品画像202のうち、不良品画像として検出できた画像数と、不良品画像として検出できなかった画像数とが表示される。本例では、不良品画像として検出できた画像数が「80」であり、不良品画像として検出できなかった画像数が「6」である。つまり、検証処理での良否判定の結果、不良品に対応する検証用画像データであるにも関わらず不良として判定されなかった画像が6枚あるということは、機械学習ネットワークの推論性能が不十分であると判断できる。尚、仮に、不良品画像として検出できなかった画像数が「0」であった場合、機械学習ネットワークの推論性能が十分であると判断できるので、その機械学習ネットワークで運用を開始すればよい。
【0088】
ユーザは、画像数表示領域305に表示されている表のうち、不良品画像として検出できなかった画像数を示している数字「6」をマウス52でクリックすることが可能である。数字「6」をマウス52でクリックすると、
図12に示すように、表示制御部13aは、不良品に対応する検証用画像データであるにも関わらず不良として判定されなかった6枚の画像を表示装置4に表示させる。具体的には、上記6枚の画像をユーザーインターフェース画面300の検証用画像データ表示領域301に一覧で表示する。画像の枚数が多い場合には、上下や左右のスクロールを利用して全ての画像をユーザが閲覧可能にしておく。
【0089】
ユーザが第2アノテーションを実行する場合には、
図12に示すユーザーインターフェース画面300の検証用画像データ表示領域301に表示されている上記6枚の画像の中から所望の画像を選択する。この選択操作は、例えばマウス52等の操作機器によって可能である。つまり、入力部13bは、表示装置4に一覧表示された画像の中から第2アノテーション方式で不良箇所の指定を行う画像の選択入力を受け付ける。
【0090】
入力部13bが画像の選択入力を受け付けると、
図13に示すように、表示制御部13aは、選択された画像をユーザーインターフェース画面300の拡大画像表示領域302に表示させるとともに、上述した指定方式選択ウインドウ204も表示させる。ユーザは、指定方式選択ウインドウ204のツールを使用して、領域指定方式によるアノテーションや、精密指定方式によるアノテーションを実行する。このようにして、入力部13bは、選択された画像に対して第2アノテーション方式で不良箇所の指定を受け付け、受け付けた結果は、画像と共に記憶装置19に記憶される。1枚の画像に対する第2アノテーション方式での指定が終わると、別の画像を選択し、その別の画像に対して第2アノテーション方式で不良箇所の指定をおこなってもよい。以上が
図10に示すフローチャートのステップSB6の処理である。
【0091】
ステップSB6の後、ステップSB7に進む。ステップSB7では、ステップSB6において不良箇所が第2アノテーション方式により指定された検証用画像データを機械学習ネットワークに学習させて当該機械学習ネットワークのパラメータを更新する更新処理を実行する。学習を実行する際には、ユーザがユーザーインターフェース画面300の実行ボタン306を操作すればよい。すなわち、第1アノテーション方式よりも詳細な第2アノテーション方式によって不良箇所を指定した画像を機械学習ネットワークに学習させることで、機械学習ネットワークのパラメータが変更される。これにより、機械学習ネットワークの推論性能が向上する。
【0092】
機械学習ネットワークの推論性能が十分であるか否か、即ち、望ましい結果が得られたと判断される場合であるか否かは、
図14に示すユーザーインターフェース画面300の学習パラメータ分析領域303に表示されているグラフを見ることで確認できる。
図14に示すグラフでは、良品画像の領域と不良品画像の領域とが完全に分離できており、良品画像と不良品画像とを明確に判別可能な推論性能を機械学習ネットワークが持っていることが分かる。
【0093】
また、
図14に示すように、画像数表示領域305に表示されている表には「四角領域指定」の欄と、「詳細指定」の欄とが設けられている。「四角領域指定」とは、領域指定方式によるアノテーションを行った後に不良品画像として検出できた画像数と、不良品画像として検出できなかった画像数とを示す欄である。不良品画像として検出できた画像数が「87」となっているので、不良品画像として検出すべき画像の全てを、不良品画像として検出できていることが分かる。また、「詳細指定」とは、精密指定方式によるアノテーションを行った後に不良品画像として検出できた画像数と、不良品画像として検出できなかった画像数とを示す欄である。例えば、「四角領域指定」の欄で、不良品画像として検出できなかった画像数が「0」以外である場合には、ユーザが精密指定方式によるアノテーションを行えばよい。「詳細指定」の欄で、不良品画像として検出できなかった画像数を「0」にすることができる。
【0094】
以上が設定装置1を使用した設定方法の説明である。第1アノテーション方式のみで十分な推論性能が得られる場合には、第2アノテーション方式を実行することなく、運用に移行することができるので、ユーザに無用な負担を強いることはない。また、第1アノテーション方式のみで十分な推論性能が得られない場合には、第2アノテーション方式のうち、比較的負担の少ない領域指定方式でアノテーションを行って推論性能を確認することができる。その結果、十分な推論性能が得られていない場合には、必要な画像についてのみ、精密指定方式によるアノテーションを実行すればよいので、ユーザの負担が軽減される。
【0095】
(機械学習ネットワークのパラメータ調整手順の第2の例)
図15に示すフローチャートに基づいて、機械学習ネットワークのパラメータ調整手順の第2の例について具体的に説明する。スタート後のステップSC1は
図10に示すフローチャートのステップSB1と同じである。その後、ステップSC2では、第2アノテーション方式によるアノテーションを行う。ステップSC3では、プロセッサ13cが、第1アノテーション方式で良品ラベルA2が付与された良品画像203と、第1アノテーション方式で不良品ラベルA1が付与された不良品画像202と、第2アノテーション方式で不良箇所が指定された画像とを機械学習ネットワークに学習させる。すなわち、プロセッサ13cは、各良品画像203の良品情報と、各不良品画像202の不良情報とに基づいて機械学習ネットワークのパラメータを調整する。
【0096】
その後、ステップSC4に進み、プロセッサ13cが検証処理を実行する。具体的には、ステップSC3で生成された機械学習ネットワークに、プロセッサ13cが複数の互いに異なる検証用画像データを入力して当該検証用画像データの良否判定を機械学習ネットワークに実行させる。ステップSC5、SC6は
図10に示すフローチャートのステップSB4、SB5と同じである。
【0097】
ステップSC5でNOと判定されて進んだステップSC7では、ユーザに対して再アノテーションの実行を促す。例えば、ある画像に対して第2アノテーション方式で領域指定方式しか実行していない場合には、その画像に対して精密指定方式によるアノテーションを実行するように促す。また、精密指定方式によるアノテーションをより精密に実行するように促してもよい。
【0098】
ステップSC7の後、ステップSC8に進む。ステップSC8では、ステップSC7において再アノテーションされた検証用画像データを機械学習ネットワークに学習させて当該機械学習ネットワークのパラメータを更新する更新処理を実行する。再アノテーションによって不良箇所を指定した画像を機械学習ネットワークに学習させることで、機械学習ネットワークのパラメータが変更される。これにより、機械学習ネットワークの推論性能が向上する。
【0099】
(異常抽出用のニューラルネットワークの詳細)
上記機械学習ネットワークは、例えば
図16に概念図として示すような異常抽出用のニューラルネットワークで構成されている。異常抽出用のニューラルネットワークは、入力画像を構成している各画素が異常であるかを表す異常度をヒートマップ(異常度マップ)として出力する。このヒートマップが出力画像になる。したがって、良品画像を入力画像とした場合、出力画像は全てが同じ画素値の画素で構成された異常度マップとなる一方、不良品画像を入力画像とした場合、出力画像は不良箇所(異常箇所)の画素だけ他の画素と画素値が異なる異常度マップとなる。
【0100】
本実施形態では、第2アノテーション方式による精密指定でなくても、さらに、第1アノテーション方式と第2アノテーション方式のように複数アノテーション方式が混在している状態でも、不良箇所だけを抽出可能な学習方法を採用している。すなわち、
図17に示すように、プロセッサ13cは、第1アノテーション方式で入力された良品情報を有する良品画像と不良品情報を有する不良品画像との両方を含み、かつ互いに異なる少なくとも3枚の画像を機械学習ネットワークに入力して異常度マップを生成する。
図17に示す例では、第1入力画像、第2入力画像及び第3入力画像を1つのグループとして同一の機械学習ネットワークに入力している。第1入力画像及び第2入力画像は良品画像であり、第3入力画像は不良品画像である。第1入力画像、第2入力画像及び第3入力画像には、第1アノテーション方式によってラベルA1、A2が付与されている。
【0101】
プロセッサ13cは、第1アノテーション方式で入力された良品情報を有する良品画像を機械学習ネットワークに入力して生成された異常度マップ内の各画素値が0となるように当該機械学習ネットワークのパラメータを調整する。本例では、第1入力画像及び第2入力画像が良品画像であることから、第1出力画像及び第2出力画像内の各画素値が0となるように制限をかける。
【0102】
また、プロセッサ13cは、良品情報を有する画像同士の異常度マップ間の距離を近づける処理と、不良品情報を有する画像同士の異常度マップ間の距離を近づける処理との少なくとも一方を実行可能に構成されている。本例では、第1入力画像及び第2入力画像が良品画像であることから、第1出力画像及び第2出力画像の異常度マップ間の距離を近づける処理を行う。尚、第1入力画像及び第2入力画像が不良品画像であった場合には、第1出力画像及び第2出力画像の異常度マップ間の距離を近づける処理を行う。
【0103】
また、プロセッサ13cは、良品情報を有する画像の異常度マップと、不良品情報を有する画像の異常度マップとの距離を所定以上離す処理を実行可能に構成されている。本例では、第2入力画像が良品画像であり、第3入力画像が不良品画像であることから、第2出力画像と第3出力画像の異常度マップを所定以上離す処理を行う。
【0104】
具体的には、以下の計算式及び考え方(例えば下記演算方法1、2)を適用することができる。まず、Loss関数の定義を行う。各入力画像の対応異常度マップの画素値平均は以下の式で計算できる。
【0105】
【0106】
尚、nは異常度マップHの画素数、x、yは異常度マップHの画素座標値である。
【0107】
異常度マップの画素値平均を使用し、異常度マップ間の距離を画素値平均の差の絶対値に定義する。
【0108】
【0109】
演算方法1(異常度マップ間距離を直接に制限する方法)
【数3】
【0110】
αは距離マージンを表すハイパーパラメータであり、λは異常度マップの良品対応部分のLoss制限の強さを表すハイパーパラメータである。
【0111】
演算方法2(異常度マップ間距離を間接に制限する方法)
【数4】
【0112】
尚、異常度マップ間の距離は異常度マップを一次元ベクトルにし、ベクトル間のユークリッド距離として定義することも可能である。また、Loss関数を最小化することで学習が行える。
【0113】
以上は、第1アノテーション方式によってラベルが付与されている画像を学習する場合であるが、第2アノテーション方式によって不良箇所が指定されている画像についても学習できる。すなわち、プロセッサ13cは、第2アノテーション方式で入力された不良品情報を有する不良品画像を機械学習ネットワークに入力して生成された異常度マップ内において、第2アノテーション方式で指定された不良箇所以外に対応する部分の画素値が0となるように当該機械学習ネットワークのパラメータを調整する。
【0114】
図18に基づいて具体的に説明する。
図18は、第3入力画像に対して第2アノテーション方式により不良箇所が指定されている場合を示している。本例では、領域指定方式で不良箇所を囲む枠206を生成した場合を示しているが、精密指定方式で不良箇所を指定してもよい。第3入力画像の下にマスク画像として示すように、枠206外に対応する領域の画素値を0にする。第3出力画像では、不良箇所として指定された領域以外の部分の画素値を0にする。
【0115】
Loss関数の定義については上述したとおりであるが、第3入力画像に対して、アノテーション領域内外の画素平均値をそれぞれ計算する。
【0116】
【0117】
また、異常度マップの画素値平均を使用し、マップ間距離を画素値平均の差の絶対値に定義する。
【0118】
【0119】
演算方法1(異常度マップ間距離を直接に制限する方法)
【数7】
【0120】
演算方法2(異常度マップ間距離を間接に制限する方法)
【数8】
【0121】
(実施形態の作用効果)
以上説明したように、本実施形態によれば、第1アノテーション方式では、表示装置4に表示された画像をラベル指定によって良品画像と不良品画像に振り分けることができるので、全体的に不良であると判定すべき不良品画像のアノテーションが可能になる。一方、第2アノテーション方式では、不良品画像上で不良箇所の位置や形状を具体的に指定できるので、第1アノテーション方式に比べて不良箇所を明確に指定することが可能になる。これにより、全体的に不良であると判定すべき不良品画像はユーザの手間をかけずにアノテーションを行いつつ、不良箇所を明確に指定すべき不良品画像についてはユーザが詳細にアノテーションを行うことができる。これにより、機械学習ネットワークの学習時におけるユーザの手間を削減しながら、属人性を排除し、高い検出性能を持った機械学習ネットワークを得ることができる。
【0122】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0123】
以上説明したように、本発明は、例えばワークの外観を検査する外観検査装置の設定を行う場合に利用できる。
【符号の説明】
【0124】
1 設定装置
13a 表示制御部
13b 入力部
13c プロセッサ