(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024126356
(43)【公開日】2024-09-20
(54)【発明の名称】画像処理装置及び画像処理方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20240912BHJP
G06V 10/776 20220101ALI20240912BHJP
G06N 20/00 20190101ALI20240912BHJP
G01N 21/88 20060101ALI20240912BHJP
【FI】
G06T7/00 350B
G06T7/00 610
G06V10/776
G06N20/00 130
G01N21/88 J
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023034675
(22)【出願日】2023-03-07
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】生嶋 靖久
【テーマコード(参考)】
2G051
5L096
【Fターム(参考)】
2G051AC04
2G051CA04
2G051EB10
2G051FA01
5L096BA03
5L096JA11
5L096KA04
(57)【要約】
【課題】ユーザの負担を軽減しながら、機械学習モデルの分類処理の精度を十分に高める。
【解決手段】プロセッサは、第1クラスに属する画像により学習させた機械学習モデルに複数の検証用画像を入力して判定処理を実行し、複数の検証用画像の判定処理の精度を評価した結果に基づいて、機械学習モデルの再学習が必要であるか否か評価し、機械学習モデルの再学習が必要であると評価した場合は、第2クラスに属する画像を機械学習モデルに入力して再学習させる。機械学習モデルの再学習が不要であると評価した場合は、機械学習モデルの学習処理を完了する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
機械学習モデルに画像を入力し、当該画像を第1クラスと第2クラスのいずれのクラスに属するかを判定する判定処理を実行するプロセッサを備える画像処理装置であって、
前記プロセッサは、
(1)前記第1クラスに属する画像を前記機械学習モデルに学習させて、当該第1クラスに属する画像とは異なる特徴を有する画像を前記第2クラスに属する画像として判定する機械学習モデルを生成し、
(2)前記第1クラスに属する画像により学習させた前記機械学習モデルに複数の検証用画像を入力して、当該複数の検証用画像を前記第1クラスと前記第2クラスのいずれのクラスに属するかを判定する判定処理を実行し、
(3)前記複数の検証用画像の判定処理の精度を評価し、
(4)前記複数の検証用画像の判定処理の精度を評価した結果に基づいて、前記機械学習モデルの再学習が必要であるか否か評価し、前記機械学習モデルの再学習が必要であると評価した場合は、前記第2クラスに属する画像を前記機械学習モデルに入力して再学習させて、当該第2クラスに属する画像と類似する特徴を有する画像を当該第2クラスに属する画像として判定するように前記機械学習モデルを生成し、前記機械学習モデルの再学習が不要であると評価した場合は、前記機械学習モデルの学習処理を完了する、
画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記第1クラスに属する画像は、良品を撮像した良品画像であり、
前記第2クラスに属する画像は、不良品を撮像した不良品画像であり、
前記プロセッサは、
前記複数の検証用画像の中から、前記機械学習モデルに再学習させる画像として前記不良品画像を抽出した後、ユーザから当該不良品画像中の不良箇所の指定を受け付けるための表示画面を生成して表示部に表示させ、
前記表示画面を介して前記不良箇所が特定された前記不良品画像を前記機械学習モデルに再学習させて、当該不良箇所と類似する特徴を有する画像を前記第2クラスに属する画像として判定するように前記機械学習モデルを生成する、
画像処理装置。
【請求項3】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記複数の検証用画像の中から、前記機械学習モデルに再学習させるために抽出した不良品画像に対して、前記学習させた良品画像と異なる特徴部分を特定し、
前記抽出した不良品画像における当該特定した異なる特徴部分を強調した画像を含む表示画面を生成して前記表示部に表示させる、
画像処理装置。
【請求項4】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの再学習が必要であると評価した場合は、前記複数の検証用画像の中から、判定結果が誤っている可能性が相対的に高い不良品画像を自動的に抽出し、前記機械学習モデルに自動的に再学習させる、
画像処理装置。
【請求項5】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの再学習が必要であると評価した場合は、前記判定処理の精度の評価結果に基づいて、再学習に用いる不良品画像の枚数を自動的に算出し、
前記複数の検証用画像の中から、判定結果が誤っている可能性が相対的に高い不良品画像を前記枚数だけ抽出し、当該枚数の不良品画像を前記機械学習モデルに自動的に再学習させる、
画像処理装置。
【請求項6】
請求項5に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの再学習が必要であると評価した場合は、前記複数の検証用画像の中から、判定結果が誤っている可能性が相対的に高い順に前記算出した枚数の不良品画像を抽出し、当該枚数の不良品画像を前記機械学習モデルに自動的に再学習させる、
画像処理装置。
【請求項7】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの再学習が必要であると評価した場合は、前記機械学習モデルに不良品画像だけでなく、良品画像も併せて再学習させて、当該不良品画像と類似する特徴および当該良品画像と異なる特徴を不良箇所として判定するように前記機械学習モデルを生成する、
画像処理装置。
【請求項8】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記複数の検証用画像の良品画像に対する誤判定率及び不良品画像に対する誤判定率を算出し、算出した良品画像に対する誤判定率及び不良品画像に対する誤判定率に基づいて、前記機械学習モデルの再学習に用いる良品画像及び不良品画像の各枚数を決定する、
画像処理装置。
【請求項9】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記判定処理において、前記複数の検証用画像のそれぞれに対して不良品度合いを示す評価値を算出し、
前記機械学習モデルの再学習が必要であると評価した場合は、前記良品画像の前記評価値と、前記不良品画像の前記評価値とを比較することで、前記機械学習モデルに良否画像と不良品画像のどちらを学習させるかを自動的に判断する、
画像処理装置。
【請求項10】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの判定処理の精度が所定の精度を獲得していると評価された場合に、前記機械学習モデルの学習処理を終了するとの判断を自動的に行う、
画像処理装置。
【請求項11】
請求項2に記載の画像処理装置において、
前記プロセッサは、
前記機械学習モデルの判定処理の精度を示す数値または前記機械学習モデルの判定処理の精度を示すグラフを表示するための表示画面を自動的に生成して前記表示部に表示させる、
画像処理装置。
【請求項12】
請求項11に記載の画像処理装置において、
前記機械学習モデルの判定処理の精度を示す数値または前記機械学習モデルの判定処理の精度を示すグラフを表示するための前記表示画面には、当該機械学習モデルに学習させた良品画像の枚数および不良品画像の枚数、ならびに、前記複数の検証用画像に対して誤判定した枚数が含まれている、
画像処理装置。
【請求項13】
機械学習モデルに画像を入力し、当該画像を第1クラスと第2クラスのいずれのクラスに属するかを判定する判定処理を実行する画像処理方法であって、
(1)前記第1クラスに属する画像を前記機械学習モデルに学習させて、当該第1クラスに属する画像とは異なる特徴を有する画像を前記第2クラスに属する画像として判定する機械学習モデルを生成するステップと、
(2)前記第1クラスに属する画像により学習させた前記機械学習モデルに複数の検証用画像を入力して、当該複数の検証用画像を前記第1クラスと前記第2クラスのいずれのクラスに属するかを判定する判定処理を実行するステップと、
(3)前記複数の検証用画像の判定処理の精度を評価するステップと、
(4)前記複数の検証用画像の判定処理の精度を評価した結果に基づいて、前記機械学習モデルの再学習が必要であるか否か評価し、前記機械学習モデルの再学習が必要であると評価した場合は、前記第2クラスに属する画像を前記機械学習モデルに入力して再学習させて、当該第2クラスに属する画像と類似する特徴を有する画像を当該第2クラスに属する画像として判定するように前記機械学習モデルを生成し、前記機械学習モデルの再学習が不要であると評価した場合は、前記機械学習モデルの学習処理を完了するステップと、
を備えている画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習モデルによる画像処理を実行するプロセッサを備えた画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
例えば工業製品の外観検査を行う際に、機械学習モデルを用いて良品と不良品のいずれのグループに属するかを判定する分類処理を実行するように構成された装置が知られている(例えば特許文献1参照)。特許文献1の処理装置では、良品学習モデルと不良品学習モデルを別々に生成し、撮像部によって取得された製品データを良品学習モデルに入力して得られた結果と、当該製品データを不良品学習モデルに入力して得られた結果とに基づいて良否判定を実行している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、機械学習モデルの学習方法として、良品画像だけを機械学習モデルに学習させる良品学習(教師無し学習)と、良品画像だけでなく、不良品画像も機械学習モデルに学習させる不良品学習(教師有り学習)とに大別される。
【0005】
良品学習は、不良品学習と比較すると、学習データの収集が比較的容易であるものの、判定精度は低くなりやすい傾向にある。一方、不良品学習は、良品学習と比較すると、判定精度は高くなりやすいものの、十分な数の不良品画像を収集するのが困難であるとともに、未知欠陥への対応力が低いという問題もある。
【0006】
この点、特許文献1では、製品データを良品学習モデルに入力して得られた結果と、不良品学習モデルに入力して得られた結果とに基づいて良否判定を実行しているが、良品学習モデルと不良品学習モデルの2つのモデルのそれぞれで学習が必要になるため、ユーザの負担が大きい。
【0007】
本開示は、かかる点に鑑みたものであり、その目的とするところは、ユーザの負担を軽減しながら、機械学習モデルの分類処理の精度を十分に高めることにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本態様では、機械学習モデルに画像を入力し、当該画像を第1クラスと第2クラスのいずれのクラスに属するかを判定する判定処理を実行するプロセッサを備える画像処理装置を前提とすることができる。前記プロセッサは、前記第1クラスに属する画像を前記機械学習モデルに学習させて、当該第1クラスに属する画像とは異なる特徴を有する画像を前記第2クラスに属する画像として判定する機械学習モデルを生成し、前記第1クラスに属する画像により学習させた前記機械学習モデルに複数の検証用画像を入力して、当該複数の検証用画像を前記第1クラスと前記第2クラスのいずれのクラスに属するかを判定する判定処理を実行する。前記プロセッサは、前記複数の検証用画像の判定処理の精度を評価し、前記複数の検証用画像の判定処理の精度を評価した結果に基づいて、前記機械学習モデルの再学習が必要であるか否か評価し、前記機械学習モデルの再学習が必要であると評価した場合は、前記第2クラスに属する画像を前記機械学習モデルに入力して再学習させて、当該第2クラスに属する画像と類似する特徴を有する画像を当該第2クラスに属する画像として判定するように前記機械学習モデルを生成し、前記機械学習モデルの再学習が不要であると評価した場合は、前記機械学習モデルの学習処理を完了する。
【0009】
この構成によれば、第1クラスに属する画像により機械学習モデルを学習させた後に、機械学習モデルに複数の検証用画像を入力して第1クラスと第2クラスのいずれのクラスに属するかを判定する判定処理を実行することで、機械学習モデルの検証を行うことができる。検証によって得られた判定処理の精度が不十分である場合には、第2クラスに属する画像を機械学習モデルに入力して再学習させる。一方、検証によって得られた判定処理の精度が十分であり、機械学習モデルの再学習が不要である場合には、機械学習モデルの学習処理を完了する。要するに、本構成によれば、第1クラスに属する画像のみの学習で機械学習モデルが所望の精度を獲得できていれば、第1クラスに属する画像のみで学習した機械学習モデルを運用し、また、第1クラスに属する画像のみの学習で所望の精度が獲得できていなければ、第2クラスに属する画像を用いて再学習させることで、所望の精度を獲得させることができる。機械学習モデルの再学習が必要であるか否かの評価、第2クラスに属する画像を用いて再学習させるか否かの判断を画像処理装置が実行するので、ユーザの負担が軽減される。
【0010】
また、前記第1クラスに属する画像が良品を撮像した良品画像であり、前記第2クラスに属する画像が不良品を撮像した不良品画像であってもよい。この場合、前記プロセッサは、再学習させる画像として前記不良品画像を抽出した後、ユーザから当該不良品画像中の不良箇所の指定を受け付けるための表示画面を生成して表示部に表示させ、前記表示画面を介して前記不良箇所が特定された前記不良品画像を前記機械学習モデルに再学習させて、当該不良箇所と類似する特徴を有する画像を前記第2クラスに属する画像として判定するように前記機械学習モデルを生成することができる。
【0011】
この構成によれば、不良箇所を特定した不良品画像、即ちアノテーションした不良品画像を機械学習モデルに再学習させる場合に、学習効果の相対的に高い不良品画像を抽出し、当該画像に対してアノテーションを受け付ける表示画面をプロセッサが自動で生成するため、ユーザは提示された不良品画像に対してアノテーションするだけで良く、ユーザの負担をより一層軽減させることができる。
【0012】
また、前記プロセッサは、前記機械学習モデルに再学習させるために抽出した不良品画像に対して、前記学習させた良品画像と異なる特徴部分を特定し、当該特定した部分を強調した画像を含む表示画面を前記表示部に表示させることもできる。すなわち、機械学習モデルが不良箇所と判定すべき部分なのに、不良箇所と判定しなかった部分を不良箇所として判定できるように機械学習モデルに学習させることで、判定処理の精度が向上する。強調表示する方法としては、例えばヒートマップ表示を挙げることができ、ヒートマップ表示によりアノテーションを補助することで、ユーザの負担をさらに軽減させることができる。
【0013】
また、前記プロセッサは、前記機械学習モデルの再学習が必要であると評価した場合は、前記複数の検証用画像の中から、判定結果が誤っている可能性が相対的に高い不良品画像を自動的に抽出し、前記機械学習モデルに自動的に再学習させることもできる。判定結果が誤っている可能性が相対的に高い不良品画像は、不良品度合の低い不良品画像であり、このような不良品画像を用いることで、効率の良い学習が行える。
【0014】
また、前記プロセッサは、前記機械学習モデルの再学習が必要であると評価した場合は、前記判定処理の精度の評価結果に基づいて、再学習に用いる不良品画像の枚数を自動的に算出し、前記複数の検証用画像の中から、判定結果が誤っている可能性が相対的に高い不良品画像を前記枚数だけ抽出し、当該枚数の不良品画像を前記機械学習モデルに自動的に再学習させることもできる。すなわち、判定結果の精度に応じて、再学習させる際に追加すべき枚数も画像処理装置が自動的に決定するため、ユーザの作業負担を減らすことができる。
【0015】
また、前記プロセッサは、判定結果が誤っている可能性が相対的に高い順に前記算出した枚数の不良品画像を抽出して機械学習モデルに自動的に再学習させてもよい。すなわち、再学習に用いる不良品画像の枚数を自動的に算出するだけでなく、算出した枚数の不良品画像をどのような基準で選択するかも画像処理装置に任せることができるので、ユーザの作業負担を減らすことができる。
【0016】
また、前記プロセッサは、前記機械学習モデルの再学習が必要であると評価した場合は、前記機械学習モデルに不良品画像と良品画像を再学習させて、当該不良品画像と類似する特徴および当該良品画像と異なる特徴を不良箇所として判定するように前記機械学習モデルを生成することもできる。これにより、不良品画像の学習により不良部分の特徴を学習させつつ、良品画像の学習により良品と判定する際の境界の精度も向上させることができる。
【0017】
また、前記プロセッサは、良品画像に対する誤判定率及び不良品画像に対する誤判定率に基づいて、前記機械学習モデルの再学習に用いる良品画像及び不良品画像の各枚数を決定することもできる。これにより、良品画像と不良品画像とで、それぞれ何枚ずつ学習すべきかを画像処理装置が自動的に判断するため、ユーザの負担をより一層軽減できる。
【0018】
また、前記プロセッサは、前記複数の検証用画像のそれぞれに対して不良品度合いを示す評価値を算出することもできる。この場合、前記機械学習モデルの再学習が必要であると評価した場合は、前記良品画像の前記評価値と、前記不良品画像の前記評価値とを比較することで、前記機械学習モデルに良否画像と不良品画像のどちらを学習させるかを自動的に判断できる。
【0019】
また、前記プロセッサは、前記機械学習モデルの判定処理の精度が所定の精度を獲得していると評価された場合に、前記機械学習モデルの学習処理を終了するとの判断を自動的に行うこともできるので、ユーザが学習処理の終了を判断せずに済む。
【0020】
また、前記プロセッサは、前記機械学習モデルの判定処理の精度を示す数値または前記機械学習モデルの判定処理の精度を示すグラフを表示するための表示画面を自動的に生成して前記表示部に表示させることができる。これにより、学習処理によって獲得した判定処理の精度をユーザに提示できる。
【0021】
また、前記表示画面には、当該機械学習モデルに学習させた良品画像の枚数および不良品画像の枚数、ならびに、前記複数の検証用画像に対して誤判定した枚数が含まれていてもよい。
【発明の効果】
【0022】
以上説明したように、第1クラスに属する画像で学習した機械学習モデルの再学習が必要であるか否かを評価し、再学習が必要な場合には、第2クラスに属する画像で機械学習モデルを再学習させることができる。これにより、ユーザの負担を軽減しながら、機械学習モデルの分類処理の精度を十分に高めることができる。
【図面の簡単な説明】
【0023】
【
図1】本発明の実施形態に係る画像処理装置の構成を示す模式図である。
【
図2】画像処理装置のハードウエア構成を示すブロック図である。
【
図3】ワーク画像を機械学習モデルで処理する例を説明する図である。
【
図4】自動学習処理のステップ1の第1の例を示すフローチャートである。
【
図5】画像表示用ユーザインターフェース画面の例を示す図である。
【
図6】1回目の学習が終了した学習結果表示用ユーザインターフェース画面の例を示す図である。
【
図7】2回目の学習が終了した状態を示す
図6相当図である。
【
図8】3回目の学習が終了した状態を示す
図6相当図である。
【
図9】自動学習処理のステップ2の第1の例を示すフローチャートである。
【
図10】自動学習処理のステップ1の第2の例を示すフローチャートである。
【
図11】自動学習処理のステップ2の第2の例を示すフローチャートである。
【
図12】不良品学習の一例を示すフローチャートである。
【
図15】3クラス分類の場合の学習結果表示領域の例を示す図である。
【
図16】3クラス分類の場合の自動学習の例を示すフローチャートである。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0025】
図1は、本発明の実施形態に係る画像処理装置1の構成を示す模式図である。画像処理装置1は、例えば各種部品や製品等のような検査対象であるワークを撮像して取得されたワーク画像の良否判定を行うための装置であり、工場等の生産現場等で使用することができる。具体的には、画像処理装置1の内部には機械学習モデルが構築されており、この機械学習モデルは、複数の学習用画像を学習させることにより生成されている。
【0026】
図2にも示すように、画像処理装置1は、装置本体となる制御ユニット2と、撮像ユニット3と、表示装置(表示部)4と、パーソナルコンピュータ5とを備えている。パーソナルコンピュータ5は、必須なものではなく、省略することもできる。表示装置4の代わりにパーソナルコンピュータ5を使用して各種情報や画像を表示させることもできるし、パーソナルコンピュータ5の機能を制御ユニット2に組み込むことや、表示装置4に組み込むことができる。
【0027】
図1では、画像処理装置1の構成例の一例として、制御ユニット2、撮像ユニット3、表示装置4及びパーソナルコンピュータ5を記載しているが、これらのうち、任意の複数を組み合わせて一体化することもできる。例えば、制御ユニット2と撮像ユニット3を一体化することや、制御ユニット2と表示装置4を一体化することもできる。また、制御ユニット2を複数のユニットに分割して一部を撮像ユニット3や表示装置4に組み込むことや、撮像ユニット3を複数のユニットに分割して一部を他のユニットに組み込むこともできる。画像処理装置1を用いることにより、本発明に係る画像処理方法の全てのステップを実行できる。
【0028】
(撮像ユニット3の構成)
図2に示すように、撮像ユニット3は、カメラモジュール(撮像部)14と、照明モジュール(照明部)15とを備えており、ワーク画像の取得を実行するユニットである。カメラモジュール14は、撮像光学系を駆動するAF用モータ14aと、撮像基板14bとを備えている。AF用モータ14aは、撮像光学系のレンズを駆動することにより、自動でピント調整を実行する部分であり、従来から周知のコントラストオートフォーカス等の手法によってピント調整を行うことができる。撮像基板14bは、撮像光学系から入射した光を受光する受光素子としてCMOSセンサ14cを備えている。CMOSセンサ14cは、カラー画像を取得することができるように構成された撮像センサである。CMOSセンサ14cの代わりに、例えばCCDセンサ等の受光素子を用いることもできる。
【0029】
照明モジュール15は、ワークを含む撮像領域を照明する発光体としてのLED(発光ダイオード)15aと、LED15aを制御するLEDドライバ15bとを備えている。LED15aによる発光タイミング、発光時間、発光量は、LEDドライバ15bによって任意に制御することができる。LED15aは、撮像ユニット3に一体に設けてもよいし、撮像ユニット3とは別体として外部照明ユニットとして設けてもよい。
【0030】
(表示装置4の構成)
表示装置4は、例えば液晶パネルや有機ELパネル等からなる表示パネルを有しており、後述する制御ユニット2のプロセッサ13cによって制御される。制御ユニット2から出力されたワーク画像やユーザインターフェース画像等は表示装置4に表示される。また、パーソナルコンピュータ5が表示パネルを有している場合、パーソナルコンピュータ5の表示パネルを表示装置4の代わりとして利用することができる。
【0031】
(操作機器)
画像処理装置1をユーザが操作するための操作機器としては、例えば、パーソナルコンピュータ5が有するキーボード51やマウス52等を挙げることができるが、これらに限られるものではなく、ユーザによる各種操作を受付可能に構成された機器であればよい。例えば、表示装置4が有するタッチパネル41のようなポインティングデバイスも操作機器に含まれる。
【0032】
キーボード51やマウス52のユーザによる操作は制御ユニット2で検出可能になっている。また、タッチパネル41は、例えば感圧センサを搭載した従来から周知のタッチ式操作パネルであり、ユーザのタッチ操作は制御ユニット2で検出可能になっている。他のポインティングデバイスを用いた場合も同様である。
【0033】
(制御ユニット2の構成)
制御ユニット2は、メイン基板13と、コネクタ基板16と、通信基板17と、電源基板18とを備えている。メイン基板13には、表示制御部13aと、入力部13bと、プロセッサ13cとが設けられている。表示制御部13a及び入力部13bは、例えば、メイン基板13に実装された演算処理装置によって構成することができる。また、1つの演算処理装置によって表示制御部13a、入力部13b及びプロセッサ13cが構成されていてもよいし、別々の演算処理装置によって表示制御部13a、入力部13b及びプロセッサ13cが構成されていてもよい。
【0034】
表示制御部13a、入力部13b及びプロセッサ13cは、接続されている各基板及びモジュールの動作を制御する。例えば、プロセッサ13cは、照明モジュール15のLEDドライバ15bに対してLED15aの点灯/消灯を制御する照明制御信号を出力する。LEDドライバ15bは、プロセッサ13cからの照明制御信号に応じて、LED15aの点灯/消灯の切替及び点灯時間の調整を行うとともに、LED15aの光量等を調整する。
【0035】
また、プロセッサ13cは、カメラモジュール14の撮像基板14bに、CMOSセンサ14cを制御する撮像制御信号を出力する。CMOSセンサ14cは、プロセッサ13cからの撮像制御信号に応じて、撮像を開始するとともに、露光時間を任意の時間に調整して撮像を行う。すなわち、撮像ユニット3は、プロセッサ13cから出力される撮像制御信号に応じてCMOSセンサ14cの視野範囲内を撮像し、視野範囲内にワークがあれば、ワークを撮像することになるが、ワーク以外の物が視野範囲内にあれば、それも撮像することができる。例えば、画像処理装置1は、機械学習モデルの学習用画像として、撮像ユニット3により、良品に対応する良品画像と不良品に対応する不良品画像とを撮像することができる。学習用画像は、撮像ユニット3で撮像された画像でなくてもよく、他のカメラ等で撮像された画像であってもよい。
【0036】
一方、画像処理装置1の運用時には、撮像ユニット3により、ワークを撮像することができる。また、CMOSセンサ14cは、ライブ画像、即ち現在の撮像された画像を短いフレームレートで随時出力することができるように構成されている。
【0037】
CMOSセンサ14cによる撮像が終わると、撮像ユニット3から出力された画像信号は、メイン基板13のプロセッサ13cに入力されて処理されるとともに、メイン基板13のメモリ13dに記憶されるようになっている。メイン基板13のプロセッサ13cによる具体的な処理内容の詳細については後述する。尚、メイン基板13には、FPGAやDSP等の処理装置が設けられていてもよい。また、FPGAやDSP等の処理装置が統合されたプロセッサ13cであってもよい。
【0038】
コネクタ基板16は、電源インターフェース161に設けてある電源コネクタ(図示せず)を介して外部から電力の供給を受ける部分である。電源基板18は、コネクタ基板16で受けた電力を各基板及びモジュール等に分配する部分であり、具体的には、照明モジュール15、カメラモジュール14、メイン基板13、及び通信基板17に電力を分配する。電源基板18は、AF用モータドライバ181を備えている。AF用モータドライバ181は、カメラモジュール14のAF用モータ14aに駆動電力を供給し、オートフォーカスを実現している。AF用モータドライバ181は、メイン基板13のプロセッサ13cからのAF制御信号に応じて、AF用モータ14aに供給する電力を調整する。
【0039】
通信基板17は、メイン基板13と表示装置4及びパーソナルコンピュータ5との通信、メイン基板13と外部制御機器(図示せず)との通信等を実行する部分である。外部制御機器は、例えばプログラマブルロジックコントローラ等を挙げることができる。通信は、有線であってもよいし、無線であってもよく、いずれの通信形態も、従来から周知の通信モジュールによって実現することができる。
【0040】
制御ユニット2には、例えばソリッドステートドライブ、ハードディスクドライブ等からなる記憶装置(記憶部)19が設けられている。記憶装置19には、後述する各制御及び処理を上記ハードウエアによって実行可能にするためのプログラムファイル80や設定ファイル等(ソフトウエア)が記憶されている。プログラムファイル80や設定ファイルは、例えば光ディスク等の記憶媒体90に格納しておき、この記憶媒体90に格納されたプログラムファイル80や設定ファイルを制御ユニット2にインストールすることができる。プログラムファイル80は、外部サーバから通信回線を利用してダウンロードされるものであってもよい。また、記憶装置19には、例えば、上記画像データや、画像処理装置1の機械学習モデルを構築するためのパラメータ等を記憶させておくこともできる。
【0041】
(画像処理装置1の運用時)
画像処理装置1の運用時には、記憶装置19に記憶しているパラメータをプロセッサ13cが読み込んで、学習済みの機械学習モデルをプロセッサ13cが構築する。
図3に示すように、機械学習モデルには、ニューラルネットワーク、オートエンコーダ、SVM(サポートベクターマシン)等が含まれている。プロセッサ13cは、上述のようにして構築されたニューラルネットワークに、検査対象のワークを撮像したワーク画像を入力する。これが前段処理であり、ワーク画像をニューラルネットワークに入力すると、ニューラルネットワークが特徴抽出を行い、抽出された特徴量は、後段処理を実行するオートエンコーダ及び/またはサポートベクターマシンに入力される。前段処理で特徴抽出を行うニューラルネットワークは、事前学習済みの畳み込みニューラルネットワークであっても良いし、後述する自動学習を用いて追加で学習できるように構成された畳み込みニューラルネットワークであっても良い。また、
図3に示す機械学習モデルにおいて、畳み込みニューラルネットワークの複数の階層からスケールの異なる複数の特徴量(特徴マップ)が抽出され、当該複数の特徴量がそれぞれ、オートエンコーダ及び/またはサポートベクターマシンに入力されるように構成しても良い。
【0042】
オートエンコーダでは、入力された特徴量に基づいて異常度マップ(ヒートマップ)を生成して出力する。プロセッサ13cは、オートエンコーダから出力された異常度マップに基づいて、ワーク画像を第1クラスと第2クラスのいずれのクラスに属するかを判定する判定処理を実行する。例えば、第1クラスを良品クラスとし、第1クラスに属する画像は、良品を撮像した良品画像とすることができ、また、第2クラスを不良品クラスとし、第2クラスに属する画像は、不良品を撮像した不良品画像とすることができる。
【0043】
一方、サポートベクターマシンでは、入力された特徴量に基づいて、ワーク画像を複数のクラスに分類する分類処理を実行する。複数のクラスには、前記第1クラスと前記第2クラスとが含まれており、これにより、プロセッサ13cは、ワーク画像を良品クラスと不良品クラスに分類することができる。複数のクラスには、第3クラスや第4クラス等が含まれていてもよく、クラスの数は特に限定されない。
【0044】
本実施形態に係る機械学習モデルは、オートエンコーダやSVMに限定されるものではなく、他の機械学習モデルを用いても良い。
【0045】
画像処理装置1のプロセッサ13cが上記判定処理や上記分類処理を実行することで、ワークが良品であるか不良品であるかを判断できる。このような機能を有する画像処理装置1は、ワークの外観を検査することができるので、外観検査装置等と呼ぶこともできる。画像処理装置1が検査対象とするワークは、それ全体が検査対象であってもよいし、ワークの一部のみが検査対象であってもよい。また、1つのワークに複数の検査対象が含まれていてもよい。また、ワーク画像には、複数のワークが含まれていてもよい。
【0046】
(自動学習)
機械学習モデルを学習させるためには、複数の学習用画像を機械学習モデルに入力する。学習用画像をユーザが用意することはできるものの、どの画像を機械学習モデルに入力して学習させればよいのかをユーザが的確に判断することは難しく、試行錯誤になってしまう場合が多い。また、良品と不良品を分類する機械学習モデルを生成するために使用する学習用画像は、枚数が多すぎても学習時間の長時間化及び過学習の観点から好ましくない一方で、枚数が少なすぎても汎化性能が低下してしまうため、適切な枚数の判断が難しい。さらに、良品と不良品を分類するだけではなく、良品と判定する場合の評価値と、不良品と判定する場合の評価値との差が大きいことが望まれる。要するに、学習用画像の選定に当たっては、様々な要件を満たす必要があり、これまでは豊富なノウハウを持ったエキスパートがそのノウハウに基づいて学習用画像を選定し、あるいは、ノウハウが無い場合は、過学習のリスクがあるものの、大量の画像を学習に使用することで性能を上げるようにしていた。このため、経験の少ない者が分類処理の精度、判定処理の精度の高い機械学習モデルを生成するのは困難であった。またこれまでは、機械学習モデルを生成する人が学習画像を選択していたため、学習画像を選択する人によって、生成した機械学習モデルの精度が異なってしまうという課題もあった。このため、経験の少ない者が分類処理の精度、判定処理の精度の高い機械学習モデルを生成するのは困難であった。またこれまでは、機械学習モデルを生成する人が学習画像を選択していたため、学習画像を選択する人によって、生成した機械学習モデルの精度が異なってしまうという課題もあった。本実施形態の画像処理装置1は、経験の少ない者であっても、負担を軽減しながら、エキスパートと同様に分類処理の精度、判定処理の精度の高い機械学習モデルを自動的に生成可能にする、自動学習処理を実行することができる。以下、自動学習処理の例について説明する。
【0047】
自動学習処理は、大きく2つのステップに分けることができ、ステップ1とステップ2で構成されている。ステップ1は、良品学習のみで、良品と不良品を分類する、または良品クラスと不良品クラスのいずれのクラスに属するかを判定する機械学習モデルを生成する。本明細書において、入力画像の良品クラスまたは不良品クラスへの分類は、良否判定ともいえる。ステップ2は、ステップ1で良品と不良品を分類できた場合や判定できた場合に、不良品学習により、良品と判定する場合の評価値と、不良品と判定する場合の評価値との差を拡大する。また、ステップ2は、ステップ1で良品と不良品を分類できなかった場合や判定できなかった場合に、不良品学習により、良品と不良品を分類する、または判定する機械学習モデルを生成し、さらに良品と判定する場合の評価値と、不良品と判定する場合の評価値との差を拡大する。尚、教師有り学習の場合はステップ1を省略してステップ2のみ実行する。
【0048】
(ステップ1の第1の例)
図4は、自動学習処理のステップ1の例を示すフローチャートである。自動学習処理を開始する前に、ユーザは学習用画像を複数枚準備しておく。学習用画像には、良品であることが特定できている良品画像と、不良品であることが特定できている不良品画像とが含まれている。第1クラスが良品クラスであり、第2クラスが不良品クラスであるため、良品画像は、第1クラスを示すラベルが付与された第1クラス画像と呼ぶことができ、また、不良品画像は、第2クラスを示すラベルが付与された第2クラス画像と呼ぶことができる。
【0049】
良品画像と不良品画像の両方を複数枚準備しておく。学習用画像は良品画像だけでもよいが、機械学習モデルの精度を検証するための検証用画像として、良品画像と不良品画像の両方が必須であるため、ユーザは両方の画像を準備しておく必要がある。また、自動学習処理で生成した機械学習モデルの汎化性能を評価するため、学習用画像及び検証用画像とは異なる複数の評価用画像を準備しておいてもよい。評価用画像とは、学習用画像と検証用画像を用いて生成した機械学習モデルが、未知の画像である評価用画像に対しても、正しく分類処理を実行できるか否かをテストするための画像である。機械学習モデルが評価用画像の分類処理を誤った場合、ユーザは当該機械学習モデルの信頼度が低いと判断することができる。
【0050】
良品画像には、良品ラベルが付与されており、また、不良品画像には、不良品ラベルが付与されている。良品ラベル及び不良品ラベルは、ユーザが各画像に対して付与する。学習用画像、検証用画像及び評価用画像は、ユーザが所定のフォルダに保存しておく。検証用画像には、学習用画像を含めてもよいし、含めなくてもよい。
【0051】
ステップSA1では、機械学習モデルに学習させるための学習用画像として良品画像を登録する。登録する学習用画像の枚数は1枚であってもよいし、複数枚であってもよい。ステップSA1では、プロセッサ13cが、
図5に示す画像表示用ユーザインターフェース画面100を生成して表示装置4に表示させる。画像表示用ユーザインターフェース画面100には、画像追加ボタン101と、学習用画像がサムネイル形式で表示される学習用画像表示領域102と、検証用画像がサムネイル形式で表示される検証用画像表示領域103とが設けられている。ユーザがマウス52を操作して画像追加ボタン101を押すと、プロセッサ13cはフォルダ選択ウインドウ(図示せず)を生成して表示装置4に表示させる。フォルダ選択ウインドウ内で、ユーザが上記所定のフォルダを選択すると、当該フォルダ内の学習用画像が全て学習用画像として読み込まれて学習用画像表示領域102に表示される。読み込まれた学習用画像に、良品クラスに属する良品画像と、不良品クラスに属する不良品画像とが含まれている場合には、ステップSA1で良品画像のみが学習に使用される画像として選択する。この選択操作は、例えばユーザがマウス52を操作して行うことができ、選択された学習用画像が機械学習モデルに入力される画像として登録される。学習用画像を複数枚登録する場合には、互いの類似性の低い画像を選択するのが好ましい。学習用画像の登録は、上述したようにユーザが実行してもよいし、プロセッサ13cが自動で登録してもよい。例えば、プロセッサ13cが、ファイルの最初に表示される画像を自動的に選択して登録してもよいし、更新日によって自動的に選択して登録してもよい。尚、ステップSA1で不良品画像を学習用画像として登録することもできる。この場合、後述するステップ2の自動学習に移行する。
【0052】
学習用画像の登録後、ステップSA2に進む。画像表示用ユーザインターフェース画面100には、自動学習を開始するための自動学習ボタン113が設けられており、ユーザがマウス52を操作して自動学習ボタン113を押すと、プロセッサ13cは自動学習を開始する。具体的には、プロセッサ13cが、ステップSA1で登録された学習用画像を機械学習モデルに入力して学習を実行する。これが機械学習モデルに学習用画像を学習させる学習ステップである。良品画像を用いた学習ステップを行うことにより、良品クラスに属する良品画像とは異なる特徴を有する画像を不良品クラスに属する不良品画像として判定する機械学習モデルが生成される。
【0053】
学習ステップの後、プロセッサ13cは、学習ステップで学習させた機械学習モデルに複数の検証用画像を入力して、当該複数の検証用画像を良品クラスと不良品クラスに分類する分類処理を実行する。このとき、プロセッサ13cは、学習ステップで学習させた機械学習モデルに複数の検証用画像を入力して、当該複数の検証用画像を良品クラスと不良品クラスのいずれに属するかを判定する判定処理も実行する。これが検証ステップである。検証ステップでは、プロセッサ13cが、複数の検証用画像の分類処理により良品クラスと不良品クラスの分離度を得ることができる。
【0054】
検証ステップでは、プロセッサ13cが、
図6に示すような学習結果表示用ユーザインターフェース画面150を生成して表示装置4に表示させる。学習結果表示用ユーザインターフェース画面150には、1回目の検証ステップで得られた機械学習モデルの学習結果を表示する第1学習結果表示領域151と、検証中であることを、学習開始からの経過時間と共に示す検証中表示領域152とが設けられている。また、学習結果表示用ユーザインターフェース画面150には、学習停止ボタン153も設けられており、ユーザが学習停止ボタン153を操作すると、プロセッサ13cは、機械学習モデルの学習が途中であっても強制的に終了する。さらに、学習結果表示用ユーザインターフェース画面150には、2回目の検証ステップで得られた機械学習モデルの学習結果を表示するための領域154Aと、3回目の検証ステップで得られた機械学習モデルの学習結果を表示するための領域154Bとが示されている。
【0055】
第1学習結果表示領域151には、1回目の学習に使用された学習用画像の数及び検証ステップで使用された検証用画像の数が表示される画像枚数表示領域151aと、パレート図表示領域151bと、推論結果表示領域151cとが設けられている。
【0056】
パレート図表示領域151bには、プロセッサ13cが生成したパレート図が表示される。パレート図は、良品クラスと不良品クラスの分離度を示した分離グラフであり、機械学習モデルの判定処理の精度を示すグラフでもある。このグラフの横軸はスコア(第1評価軸)、縦軸は画像枚数の累積である。スコアが大きければ大きいほど不良品クラスに属する度合いが高く、反対に、小さければ小さいほど良品クラスに属する度合いが高くなる。スコアは、良品クラスに属する度合いを示す第1評価値と呼ぶこともできる。すなわち、プロセッサ13cは、複数の検証用画像を良品クラスと不良品クラスに分類する分類処理において、複数の検証用画像のそれぞれに対して良品クラスに属する度合いを示す第1評価値を算出する。また、上述したようにスコアは不良の度合いを示す評価値でもあることから、プロセッサ13cは、複数の検証用画像のそれぞれに対して不良の度合いを示す評価値を算出することもでき、この評価値は、不良品クラスに属する度合いを示す第2評価値と呼ぶこともできる。
【0057】
推論結果表示領域151cには、検証ステップで検証した機械学習モデルによる推論結果が表形式で表示される。推論結果表示領域151cに表示される表は、コンフュージョンマトリクスとも呼ばれており、検証用画像の良品画像の枚数及び不良品画像の枚数が表示されるとともに、機械学習モデルによって推論された良品画像の枚数及び不良品画像の枚数が表示される。プロセッサ13cは、良品画像を不良品画像として検出した割合を示す誤判定率と、不良品画像を良品画像として判定した割合を示す見逃し率を算出し、推論結果表示領域151cに表示させる。また、プロセッサ13cは、良品と不良品のスコアの差も算出して推論結果表示領域151cに表示させる。なお、
図6~
図8に示す例では、各回の検証用画像には、機械学習モデルの学習に使用した学習用画像も含まれている。
【0058】
次に、
図4に示すフローチャートのステップSA3に進む。ステップSA3では、ステップSA2の検証ステップで、良品画像と不良品画像とが分離できたか否かを所定の基準に従って判定するステップであり、検証用画像の分類処理の精度を評価すること、及び検証用画像の判定処理の精度を評価する。すなわち、ステップSA2で算出したスコアは、検証用画像中の不良度合いとして、例えば欠陥の大きさなどを示す数値である。ステップSA3では、プロセッサ13cが、良品と判定した場合の最大スコア(不良度:高)と、不良品と判定した場合の最小スコア(不良度:低)との差分を求め、この差分が所定の数値以上であるか否かを判定する。差分が所定の数値以上であれば、良品画像と不良品画像とが分離できたと判定し、一方、差分が所定の数値未満であれば、良品画像と不良品画像とが分離できていないと判定する。
【0059】
ステップSA3で良品画像と不良品画像とが分離できていると判定された場合には、ステップSA7に進み、上記ステップ1のみを実行する設定となっているか否かを判定する。すなわち、ユーザは、上記ステップ1のみで自動学習を終了する第1のモードと、上記ステップ1と上記ステップ2を実行する第2のモードとのいずれで自動学習するか設定することができる。このユーザの設定は、入力部13bによって受け付けられる。上記ステップ1のみを実行する設定となっている場合には、自動学習を終了する。一方、上記ステップ1及び上記ステップ2を実行する設定となっている場合には、
図9に示すステップ2のフローチャートに進む。
【0060】
ステップSA3で良品画像と不良品画像とが分離できていないと判定された場合にはステップSA4に進む。ステップSA4では、プロセッサ13cが、検証用画像に良品画像が1枚以上残っているか否かを判定する。検証用画像に良品画像が1枚以上残っている場合にはステップSA5に進む。ステップSA5では、検証用画像の中に誤検出している良品画像があるか否かを判定する。
【0061】
ステップSA5で検証用画像の中に誤検出している良品画像がない場合にはステップSA6に進む。ステップSA6では、プロセッサ13cが、検証用画像の中に、誤判定している不良品画像よりもスコアの高い良品画像があるか否かを判定する。ステップSA6で誤判定している不良品画像よりもスコアの高い良品画像がない場合にはステップSA7に進む。
【0062】
ステップSA5で検証用画像の中に誤検出している良品画像がある場合にはステップSA8に進む。ステップSA8では、プロセッサ13cが、検証用画像の中から誤検出している良品画像をスコアの高い方から順にn枚抽出する。nは、1以上の整数であり、よって、ステップSA8で抽出する良品画像は1枚であってもよいし、2枚以上であってもよい。また、ステップSA8で抽出する枚数は、後述する第2の例で説明する枚数とすることができる。
【0063】
ステップSA8で良品画像をスコアの高い方から順にn枚抽出した後、ステップSA2に進み、ステップSA8で抽出したn枚の良品画像を機械学習モデルに入力して自動的に再学習させる。このとき、画像を回転させたり、画像の明るさを変化させる、いわゆるデータ拡張(オーギュメンテーション)をプロセッサ13cが実行してもよい。例えば、ステップSA8で抽出した画像に対して明るさを5%変化させた画像をプロセッサ13cが自動生成して機械学習モデルに入力して学習させる。学習効果が低ければ、段階的に、または動的に明るさを10%変化させた画像もプロセッサ13cが生成して機械学習モデルに入力して学習させる。
【0064】
ステップSA6で誤判定している不良品画像よりもスコアの高い良品画像がある場合にはステップSA9に進む。ステップSA9では、誤判定している不良品画像よりもスコアの高い良品画像をスコアの低い方から順にn枚抽出する。nは、1以上の整数であり、よって、ステップSA9で抽出する良品画像は1枚であってもよいし、2枚以上であってもよい。このように、プロセッサ13cは、複数の検証用画像の良品画像の評価値であるスコアと、不良品画像の評価値であるスコアとを比較し、比較した結果に基づいて、機械学習モデルに再学習させる画像として、評価値が相対的に高い良品画像、又は評価値が相対的に低い不良品画像のどちらを抽出するかを自動的に決定する。
【0065】
尚、誤判定している不良品画像のうち、スコアの低い不良品画像を抽出する考え方もあるが、良品以外を検出することが画像検査の目的であるため、良品の範囲を明確にするため、できるだけ良品学習を継続する。仮に不良品学習を行う場合には、良品と不良品の境界を明確にするために不良品画像が大量に必要になるが、そもそも不良品自体が少ないので、不良品画像を大量に準備するのは困難であるという問題もある。
【0066】
ステップSA9で良品画像をスコアの低い方から順にn枚抽出した後、ステップSA2に進み、ステップSA9で抽出したn枚の良品画像を機械学習モデルに入力して自動的に再学習させる。このとき、画像を回転させたり、画像の明るさを変化させる、いわゆるデータ拡張(オーギュメンテーション)をプロセッサ13cが実行してもよい。
【0067】
ステップSA2では、再学習後の機械学習モデルに複数の検証用画像を入力して、複数の検証用画像を前記複数のクラスに分類する分類処理を実行する。その後、ステップSA3~SA7、必要に応じてステップSA8、SA9を実行する。
【0068】
図7は、2回目の学習(1回目の再学習)が終了した後、2回目の検証ステップで得られた機械学習モデルの学習結果を表示する第2学習結果表示領域154が表示された学習結果表示用ユーザインターフェース画面150を示している。第2学習結果表示領域154は、第1学習結果表示領域151と同様にプロセッサ13cが生成して表示させる。第2学習結果表示領域154には、2回目の学習に使用された学習用画像の数及び検証ステップで使用された検証用画像の数が表示される画像枚数表示領域154aと、2回目の検証ステップで得られた分離度を示すパレート図表示領域154bと、2回目の検証ステップで得られた推論結果表示領域154cとが設けられている。
図7に示すように、3回目の検証ステップで得られた機械学習モデルの学習結果を表示するための領域154Bが示されている。
【0069】
図8は、3回目の学習(2回目の再学習)が終了した後、3回目の検証ステップで得られた機械学習モデルの学習結果を表示する第3学習結果表示領域155が表示された学習結果表示用ユーザインターフェース画面150を示している。第3学習結果表示領域155は、第1学習結果表示領域151と同様にプロセッサ13cが生成して表示させる。第3学習結果表示領域155には、3回目の学習に使用された学習用画像の数及び検証ステップで使用された検証用画像の数が表示される画像枚数表示領域155aと、3回目の検証ステップで得られた分離度を示すパレート図表示領域155bと、3回目の検証ステップで得られた推論結果表示領域155cとが設けられている。プロセッサ13cは、機械学習モデルの再学習を繰り返し実行するたびに、パレート図として示す分離グラフを、再学習後の機械学習モデルで得られた分離グラフに更新する。
図7及び
図8に示すように、プロセッサ13cは、更新により得られた最新の分離グラフを過去の分離グラフと比較可能に表示する表示画面として学習結果表示用ユーザインターフェース画面150を生成して表示装置4に表示させることができる。
【0070】
各回で学習用画像は重複している。例えば、2回目の学習用画像の枚数が4枚であった場合、その4枚の学習用画像は3回目の学習用画像の5枚に包含される。つまり、学習の回数が増えるごとに学習用画像が追加されていく。
【0071】
図8に示すように、学習回数が増加するにつれて良品と不良品のスコアを差が大きくなっていき、良品画像と不良品画像との分離が明確になっている。3回目の学習が完了した機械学習モデルでは、良品画像と不良品画像の分離、及び、良品クラスと不良品クラスのいずれに属するかの判定が明確に行えるようになっているので、3回目の学習が完了した時点で自動学習を終了している。このように、プロセッサ13cは、機械学習モデルの再学習が不要であると評価するまで、学習した機械学習モデルによって複数の検証用画像を分類する分類処理と、分類処理の精度の評価と、機械学習モデルの再学習が必要であるか否かの評価と、機械学習モデルの再学習が必要であると評価した場合に複数の検証用画像の中から、分類結果が誤っている可能性が相対的に高い検証用画像を抽出して機械学習モデルに自動的に再学習させる処理とを自動的に繰り返し実行する。これにより、機械学習モデルの精度が向上していき、その進捗状況が
図8に示すようにユーザに提示される。
【0072】
また、ステップSA2の検証ステップにより良品クラスと不良品クラスの分離度を得た後、ステップSA3~SA6を経ることで、プロセッサ13cは、ステップSA2で得られた良品クラスと不良品クラスの分離度に基づいて、複数の検証用画像の分類処理の精度を評価し、さらに、複数の検証用画像の分類処理の精度の評価結果に基づいて、機械学習モデルの再学習が必要であるか否か評価する。プロセッサ13cは、機械学習モデルの再学習が必要であると評価した場合は、複数の検証用画像の中から、分類結果が誤っている可能性が相対的に高い検証用画像を抽出して機械学習モデルに自動的に再学習させ、一方、機械学習モデルの再学習が不要であると評価した場合は、機械学習モデルの学習処理を完了する。
【0073】
プロセッサ13cは、機械学習モデルの再学習が必要であると評価した場合は、第1評価値が相対的に高い不良品画像、又は第1評価値が相対的に低い良品画像を抽出して機械学習モデルに自動的に再学習させる。また、プロセッサ13cは、不良の度合いを示す評価値が相対的に高い良品画像、又は不良の度合いを示す評価値が相対的に低い不良品画像を抽出し、機械学習モデルに自動的に再学習させる。そして、プロセッサ13cは、
図8に示すように、パレート図の横軸(第1評価値)上における良品画像と不良品画像の分布の分離度を求める。プロセッサ13cは、求めた分離度に基づいて機械学習モデルの再学習が不要であると評価するまで、学習した機械学習モデルによって複数の検証用画像を分類する分類処理と、分類処理の精度の評価と、機械学習モデルの再学習が必要であるか否かの評価と、機械学習モデルの再学習が必要であると評価した場合に複数の検証用画像の中から、分類結果が誤っている可能性が相対的に高い検証用画像を抽出して機械学習モデルに自動的に再学習させる処理とを自動的に繰り返し実行する。この繰り返しの処理は、プロセッサ13cが、パレート図の横軸上における良品画像と不良品画像の分布の分離度が所定値以上となるまでプロセッサ13cが実行する。なお、機械学習モデルの再学習が不要であると評価する基準は、前述した分離度により決定される仕様に限らない。つまり、分離度が所定値以上とならない場合も想定して、上記処理を繰り返し実行する回数または所要時間が、ユーザにより予め指定された回数または時間、あるいは装置側で予め規定された回数または時間に到達した場合に、機械学習モデルの再学習が不要であると評価してもよい。前述した分離度と、回数または時間を適宜組み合わせた基準により、再学習が不要であるか否か評価してもよい。
【0074】
また、複数の評価用画像を準備している場合、プロセッサ13cは、機械学習モデルの再学習が不要であると評価し、機械学習モデルの学習処理を完了した後、複数の学習用画像及び複数の検証用画像とは異なる複数の評価用画像を機械学習モデルに入力して、複数の評価用画像を複数のクラス(良品クラスまたは不良品クラス)に分類する分類処理を実行し、分類処理の精度を評価してもよい。プロセッサ13cは、複数の評価用画像の分類処理の精度として、正解率を表示装置4に表示しても良い。
【0075】
また、複数の検証用画像のそれぞれに対して不良品クラスに属する度合いを示す第2評価値を算出した場合、プロセッサ13cが、機械学習モデルの再学習が必要であると評価した際に、第2評価値が相対的に高い良品画像、又は第2評価値が相対的に低い不良品画像を抽出して機械学習モデルに自動的に再学習させる。そして、プロセッサ13cは、第2評価値軸上における良品画像と不良品画像の分布の分離度を求め、当該分離度に基づいて機械学習モデルの再学習が不要であると評価するまで、学習した機械学習モデルによって複数の検証用画像を分類する分類処理と、分類処理の精度の評価と、機械学習モデルの再学習が必要であるか否かの評価と、機械学習モデルの再学習が必要であると評価した場合に複数の検証用画像の中から、分類結果が誤っている可能性が相対的に高い検証用画像を抽出して機械学習モデルに自動的に再学習させる処理とを自動的に繰り返し実行する。
【0076】
(ステップ2の第1の例)
次に、上記ステップ2の処理について
図9に示すフローチャートに基づいて説明する。ステップSB1では、パレート図で良品クラスと不良品クラスを比較し、勾配がなだらかな方の画像を追加する。プロセッサ13cは、例えば、良品クラスに分類された画像のうち、スコアの一番高い画像と、2番目に高い画像のスコアの差を算出するとともに、不良品クラスに分類された画像のうち、スコアの一番低い画像と、2番目に低い画像のスコアの差を算出する。これら2つのスコアの差が同じであった場合には、良品クラスに分類された画像のうち、スコアの一番高い画像と、3番目に高い画像のスコアの差を算出するとともに、不良品クラスに分類された画像のうち、スコアの一番低い画像と、3番目に低い画像のスコアの差を算出する。
【0077】
ステップSB2では、プロセッサ13cが、ステップSB1で算出した2つのスコアの差のうち、どちらのスコアの差が大きいか判定する。良品クラスに分類された画像のスコアの差の方が大きければ、ステップSB3に進む一方、不良品クラスに分類された画像のスコアの差の方が大きければ、ステップSB4に進む。
【0078】
ステップSB3では、プロセッサ13cが、検証用画像のうちの良品画像の中でスコアが一番高い画像から順にn枚までの良品画像を追加する。ステップSB4では、プロセッサ13cが、検証用画像のうちの不良品画像の中でスコアが一番低い画像から順にn枚までの不良品画像を追加する。ステップSB3及びステップSB4の後、ステップSB5に進む。
【0079】
ステップSB5では、ステップSB3またはステップSB4で追加した枚数が0よりも多いか否かをプロセッサ13cが判定する。ステップSB5でYESと判定された場合には、ステップSB6に進み、プロセッサ13cが、
図4に示すフローチャートのステップSA2と同様に再学習を実行し、検証用画像による検証を行い、パレート図を生成する。なお、ステップSB4を経てステップSB6に進んだ場合、プロセッサ13cは、不良品クラスに属する画像を機械学習モデルに入力して再学習させて、当該不良品クラスに属する画像と類似する特徴を有する画像を当該不良品クラスに属する画像として判定するように機械学習モデルを生成する。その後、ステップSB7に進み、終了条件を満たしているか否かを判定する。終了条件については、後述するステップ2の第2の例で説明する。
【0080】
(ステップ1の第2の例)
図10は、自動学習処理のステップ1の第2の例を示すフローチャートである。ステップSC1では、プロセッサ13cがカウント数を0にする。ステップSC2では、追加学習がONになっているかをプロセッサ13cが判定する。例えば画像処理装置1の運用が始まってワークを撮像すると、新たなワーク画像を収集することができる。新たなワーク画像を収集した場合に、運用中の機械学習モデルの学習に用いた既存の学習用画像及び検証用画像の分類に関する各ラベルを保持しておき、運用開始後に取得された新たな画像を既存の学習用画像に加えることによって学習用画像を追加していく処理(追加学習処理)と、運用中の機械学習モデルの学習に用いた既存の学習用画像及び検証用画像の分類に関する各ラベルを初期化して、運用開始後に取得された新たな画像を含めた全画像で機械学習モデルを学習させる処理(全画像学習処理)との選択が可能に構成されている。ラベルは、良品画像に付与されている良品ラベルと、不良品画像に付与されている不良品ラベルとがある。運用中の機械学習モデルの精度が高ければ初期化せずにワーク画像を追加していき、精度が低ければ初期化して一から学習させた方が高い精度を得ることができる場合があり、状況によって使い分けることができるようになっている。
【0081】
図5に示す画像表示用ユーザインターフェース画面100には、追加学習処理を有効にするか否かを選択する選択領域104が設けられている。ユーザがマウス52を操作して選択領域104にチェックを入れると、プロセッサ13cは追加学習処理を実行する。一方、選択領域104にチェックが入っていないと、プロセッサ13cは全画像学習処理を実行する。追加学習処理を選択するか、全画像学習処理を選択するかは、ユーザによるマウス52の操作を入力部13bが受け付けることでプロセッサ13cが判定する。つまり、画像処理装置1は、追加学習処理のユーザによる選択または全画像学習処理のユーザによる選択を受付可能に構成されている。
【0082】
ステップSC2でNOと判定されて追加学習処理が選択されていない場合には、ステップSC3に進む。ステップSC3では、プロセッサ13cが、既存の学習用画像及び検証用画像の分類に関する各ラベルを初期化する。ステップSC4では、プロセッサ13cが、良品画像を1枚だけ学習用画像として登録する。このとき、先頭に位置する良品画像を選択して登録してもよいし、別の良品画像を登録してもよい。
【0083】
ステップSC5及びステップSC6では、それぞれ、
図4に示すフローチャートのステップSA2及びステップSA3の処理を実行する。ステップSC6で良品画像と不良品画像とが分離できていると判定された場合には判定処理の精度が十分に高く、所定の精度を獲得しているということであり、この場合には、このフローを終了する。すなわち、プロセッサ13cは、機械学習モデルの判定処理の精度が所定の精度を獲得していると評価された場合に、機械学習モデルの学習処理を終了するとの判断を自動的に行う。
【0084】
プロセッサ13cは、機械学習モデルの学習処理を終了すると判断した場合に、
図6~
図8に示す学習結果表示用ユーザインターフェース画面150におけるパレート図のグラフを自動的に生成して表示装置4に表示させる。また、プロセッサ13cは、機械学習モデルの学習処理を終了すると判断した場合に、機械学習モデルの判定処理の精度を示す数値、例えば、良品と不良品のスコアの差を自動的に生成して表示装置4に表示させる。これにより、学習処理を終了する際に獲得している判定処理の精度をユーザに提示できる。
【0085】
また、
図6~
図8に示すように、学習結果表示用ユーザインターフェース画面150には、機械学習モデルに学習させた良品画像の枚数および不良品画像の枚数を表示する画像枚数表示領域151a、154a、155aが含まれているとともに、複数の検証用画像に対して誤判定した枚数を表示する推論結果表示領域151c、154c、155cが含まれている。これにより、ユーザに対して学習枚数の提示と、誤判定した枚数の提示が可能になる。
【0086】
ステップSC6で良品画像と不良品画像とが分離できていないと判定された場合にはステップSC7に進む。ステップSC7では、プロセッサ13cが、検証用画像の中で最もスコアの高い良品画像を学習用画像として登録する。その後、ステップSC8に進み、ステップSC5と同様な処理を実行する。
【0087】
ステップSC9では、プロセッサ13cが、全良品画像の枚数が所定数(例えば20枚)以下であるか、または上記ステップ1のみを実行する設定となっているか否かを判定する。全良品画像の枚数が所定数を超えていればステップSC10に進み、また、上記ステップ1及び上記ステップ2を実行する設定となっている場合には、ステップSC10に進む。一方、全良品画像の枚数が所定数以下であればステップSC11に進み、また、上記ステップ1のみを実行する設定となっている場合には、ステップSC11に進む。
【0088】
ステップSC10では、プロセッサ13cが、学習用画像の合計枚数が良品画像の半分以上であるか否かを判定する。学習用画像の合計枚数が良品画像の半分以上である場合にはステップSC12に進む。ステップSC12では、
図4に示すフローチャートのステップSA7と同様に、上記ステップ1のみを実行する設定となっているか否かを判定する。上記ステップ1のみを実行する設定となっている場合には、自動学習を終了する。一方、上記ステップ1及び上記ステップ2を実行する設定となっている場合には、
図11に示すステップ2のフローチャートに進む。
【0089】
ステップSC10で学習用画像の合計枚数が良品画像の半分未満であると判定された場合には、ステップSC11に進む。ステップSC11では、
図4に示すフローチャートのステップSA3と同様に良品画像と不良品画像とが分離できたか否かを所定の基準に従って判定する。ステップSA3で良品画像と不良品画像とが分離できていると判定された場合には、自動学習を自動的に終了する。
【0090】
ステップSC11で良品画像と不良品画像とが分離できていないと判定された場合にはステップSC13に進む。ステップSC13では、プロセッサ13cが、カウント数が所定値(例えば5)よりも小さいか否かを判定する。カウント数が所定値以上の場合には、ステップSC12に進む一方、カウント数が所定値よりも小さい場合にはステップSC14に進む。
【0091】
ステップSC14及びステップSC15では、
図4に示すフローチャートのステップSA4及びステップSA5と同様に判定を行う。ステップSC14でNOと判定された場合にはステップSC12に進む。また、ステップSC15でNOと判定された場合にはステップSC16に進む。ステップSC15でYESと判定されて検証用画像の中に誤検出している良品画像がある場合にはステップSC17に進む。ステップSC17では、誤判定率を算出する。誤判定率は、複数の検証用画像の良品画像に対する誤判定率であり、以下の式で計算することができる。
【0092】
誤判定率=(検証用画像と学習用画像の中で不良品画像と判定された良品画像の枚数/良品画像の全枚数)×100
【0093】
ステップSC17で誤判定率を算出した後、ステップSC18に進む。ステップSC18では、
図4に示すフローチャートのステップSA8と同様に検証用画像の中から誤検出している良品画像をスコアの高い方から順にn枚抽出する。抽出する枚数は、誤判定率に応じて変えてもよい。例えば、誤判定率が大きくなればなるほど、ステップSC18で抽出する枚数が増えるように設定することができる。ステップSC18で抽出する枚数は、例えば全良品画像に対して例えば5%、10%、15%に相当する枚数のように、割合によって決定することもできる。このように、プロセッサ13cは、複数の検証用画像の良品画像に対する誤判定率に基づいて、機械学習モデルの再学習に用いる良品画像枚数を決定する。
【0094】
ステップSC18で良品画像をスコアの高い方から順にn枚抽出した後、ステップSC8に進み、ステップSC18で抽出したn枚の良品画像を機械学習モデルに入力して自動的に再学習させる。
【0095】
ステップSC16でYESと判定されて進んだステップSC19では、見逃し率を算出する。見逃し率は、複数の検証用画像の不良品画像に対する誤判定率であり、以下の式で計算することができる。
【0096】
見逃し率=(検証用画像と学習用画像の中で良品画像と判定された不良品画像の枚数/不良品画像の全枚数)×100
【0097】
ステップSC19で見逃し率を算出した後、ステップSC20に進む。ステップSC20では、
図4に示すフローチャートのステップSA9と同様に誤判定している不良品画像よりもスコアの高い良品画像をスコアの低い方から順にn枚抽出する。抽出する枚数は、見逃し率に応じて変えてもよい。例えば、見逃し率が大きくなればなるほど、ステップSC20で抽出する枚数が増えるように設定することができる。ステップSC20で抽出する枚数は、例えば全良品画像に対して例えば5%、10%、15%に相当する枚数のように、割合によって決定することもできる。このように、プロセッサ13cは、複数の検証用画像の不良品画像に対する誤判定率である見逃し率に基づいて、機械学習モデルの再学習に用いる不良品画像の枚数を決定する。尚、ステップSC18で抽出する枚数よりもステップSC20で抽出する枚数の方が多くなるように設定してもよい。
【0098】
ステップSC20の後、ステップSC21に進み、プロセッサ13cが、カウント数に1を加える処理を行う。このカウント数は、次のステップSC13の判定で用いられる。ステップSC16~SC20を複数回経ることで再学習が複数回行われると、ステップSC13でNOと判定されてステップSC12に進み、上記ステップ2が開始される。つまり、良品画像による再学習を複数回繰り返した後、機械学習モデルの再学習がさらに必要であるとプロセッサ13cが評価した場合には、上記ステップ2が自動的に実行される。尚、プロセッサ13cがステップ1のみで学習を終了してもよいし、ユーザが任意のタイミングで上記ステップ2に移行可能にしてもよい。
【0099】
ステップSC21の後、ステップSC8に進み、ステップSC20で抽出したn枚の不良品画像を機械学習モデルに入力して自動的に再学習させる。
【0100】
このように、プロセッサ13cは、ステップSC15で機械学習モデルの再学習が必要であると評価した場合は、ステップSC18及びステップSC20において、分類処理の精度の評価結果に基づいて、再学習に用いる検証用画像の枚数を自動的に算出するとともに、複数の検証用画像の中から、分類結果が誤っている可能性が相対的に高い検証用画像を前記算出した枚数だけ抽出する。プロセッサ13cは、分類結果が誤っている可能性が相対的に高い検証用画像を抽出した後、その枚数の検証用画像を機械学習モデルに自動的に再学習させることができる。よって、ユーザの負担を軽減できる。
【0101】
(ステップ2の第2の例)
図11は、自動学習処理のステップ2の第2の例を示すフローチャートである。ステップSD1及びSD2では、
図9に示すフローチャートのステップSB1及びSB2と同様な処理を実行する。良品クラスに分類された画像のスコアの差の方が大きければ、ステップSD3に進む。ステップSD3では、所定の基準に従って良品画像を抽出する。具体的には、プロセッサ13cが、まず、検証用画像のうちの良品画像の中でスコアが一番高い画像を特定する。次いで、プロセッサ13cが、特定した画像のスコアから当該スコアの10%を引いたスコアを算出する。しかる後、プロセッサ13cが、算出したスコア以上のスコアを有する良品画像を最大追加可能枚数(例えば5枚)まで追加する。
【0102】
ステップSD4では、プロセッサ13cが、ステップSD3で追加した良品画像の枚数が1枚以上あるか否かを判定する。ステップSD3で追加した良品画像の枚数が1枚以上ある場合にはステップSD5に進み、プロセッサ13cが、
図9に示すフローチャートのステップSB6と同様に再学習を実行し、検証用画像による検証を行い、パレート図を生成する。一方、ステップSD3で追加した良品画像の枚数が0である場合には、再学習が行えないので、ステップSD5を経ることなく、ステップSD6に進む。
【0103】
ステップSD6では、プロセッサ13cが、検証用画像の不良品画像の枚数が1であるか否か、または検証用画像の良品画像の枚数が0であるか否かを判定する。ステップSD6の判定の結果、検証用画像の不良品画像の枚数が1であれば学習を自動的に終了し、また、検証用画像の良品画像の枚数が0であれば学習を自動的に終了する。一方、ステップSD6の判定の結果、検証用画像の不良品画像の枚数が1以外の枚数である場合にはステップSD7に進み、また、検証用画像の良品画像の枚数が1枚以上ある場合にはステップSD7に進む。
【0104】
ステップSD7では、
図4に示すフローチャートのステップSA3の処理を実行する。ステップSD7で良品画像と不良品画像とが分離できていると判定された場合には、学習を自動的に終了する。ステップSD7で良品画像と不良品画像とが分離できていないと判定された場合にはステップSD8に進む。ステップSD8では、プロセッサ13cが、検証用画像の不良品画像の中でスコアが一番低い画像を1枚抽出する。
【0105】
ステップSD9では、ステップSD8で追加した不良品画像の枚数が1枚以上あるか否かを判定する。ステップSD8で追加した不良品画像の枚数が1枚以上ある場合にはステップSD10に進み、後述する不良品学習を実行する。
【0106】
ステップSD8で追加した不良品画像の枚数が0である場合には、ステップSD11に進み、ステップSD6と同様な判定を行う。ステップSD11の判定の結果、検証用画像の不良品画像の枚数が1であれば学習を自動的に終了し、また、検証用画像の良品画像の枚数が0であれば学習を自動的に終了する。一方、ステップSD11の判定の結果、検証用画像の不良品画像の枚数が1以外の枚数である場合にはステップSD12に進み、また、検証用画像の良品画像の枚数が1枚以上ある場合にはステップSD12に進む。ステップSD12では、ステップSD7と同様な処理を実行する。
【0107】
ステップSD2の判定の結果、不良品クラスに分類された画像のスコアの差の方が大きければ、ステップSD13に進む。ステップSD13では、所定の基準に従って不良品画像を抽出する。具体的には、プロセッサ13cが、まず、検証用画像のうちの不良品画像の中でスコアが一番低い画像を特定する。次いで、プロセッサ13cが、特定した画像のスコアに当該スコアの10%を加えたスコアを算出する。しかる後、プロセッサ13cが、算出したスコア以下のスコアを有する不良品画像を最大追加可能枚数(例えば5枚)まで抽出する。ただし、検証用画像の不良品画像が5枚以下の場合には、全てを不良品学習に使用することなく、1枚だけ残しておく。
【0108】
ステップSD14では、プロセッサ13cが、ステップSD13で抽出した不良品画像の枚数が1枚以上あるか否かを判定する。ステップSD13で抽出した不良品画像の枚数が1枚以上ある場合にはステップSD15に進んで後述する不良品学習を実行する。一方、ステップSD13で抽出した不良品画像の枚数が0である場合には、ステップSD15を経ることなく、ステップSD16に進む。
【0109】
ステップSD16及びSD17では、それぞれステップSD6及びSD7と同様な判定を行う。その後のステップSD18では、プロセッサ13cが、検証用画像の良品画像の中でスコアが一番高い画像を1枚追加する。
【0110】
ステップSD19では、ステップSD18で追加した良品画像の枚数が1枚以上あるか否かを判定する。ステップSD18で追加した良品画像の枚数が1枚以上ある場合にはステップSD20に進み、ステップSD5と同様な処理を実行する。
【0111】
ステップSD18で追加した良品画像の枚数が0である場合には、ステップSD20に進み、ステップSD5と同様な処理を実行する。その後、ステップSD11、SD12に進む。
【0112】
図11に示すフローチャートに従うことで、プロセッサ13cは、機械学習モデルの再学習が必要であると評価した場合は、ステップSD10、SD15で機械学習モデルに不良品画像を学習させるだけでなく、ステップSD5、SD20で良品画像も併せて再学習させる。これにより、ステップSD10、SD15で機械学習モデルに学習させた不良品画像と類似する特徴、及びステップSD5、SD20で学習させた良品画像と異なる特徴を不良箇所として判定するように機械学習モデルを生成することができる。
【0113】
また、
図11に示すフローチャートに従うことで、プロセッサ13cは、いずれにクラスに属するか判定する判定処理において、機械学習モデルの再学習が必要であると評価した場合は、良品画像の評価値と、不良品画像の評価値とを比較することで、機械学習モデルに良否画像と不良品画像のどちらを学習させるかを自動的に判断し、学習効果の高い方の画像を機械学習モデルに学習させることができる。
【0114】
(不良品学習)
図12は、不良品学習の一例を示すフローチャートである。このフローは、
図11に示すフローチャートのステップSD10、SD15で実行され、ステップSE1~SE3は、抽出された不良品画像の枚数分だけ繰り返される。
【0115】
ステップSE1では、上記ステップ2でユーザが不良品画像に領域指定を選択しているか否か、即ち、ユーザが不良品画像に対して不良箇所の指定を行うか否か(アノテーションするか否か)を判定する。ユーザが領域指定を選択している場合にはステップSE2に進んでユーザによるアノテーションの操作を入力部13bが受け付ける。
【0116】
具体的には、プロセッサ13cは、複数の検証用画像の中から、機械学習モデルに再学習させる画像として不良品画像を抽出した後、ユーザから当該不良品画像中の不良箇所の指定を受け付けるための表示画面として
図13に示すアノテーション画面200を生成して表示装置4に表示させる。アノテーション画面200の表示は、ステップSE2に進むと自動的に実行される。
【0117】
アノテーション画面200には、機械学習モデルに入力された入力画像が表示される入力画像表示領域201と、機械学習モデルから出力されたヒートマップが表示されるヒートマップ表示領域202と、領域指定部203とが設けられている。入力画像表示領域201に表示される入力画像と、ヒートマップ表示領域202に表示されるヒートマップとは対応しており、入力画像とヒートマップのスケールが同一、かつ、同一領域が表示されるようになっている。図示しているように、入力画像とヒートマップとを並べて表示可能なユーザインターフェースとすることで、両者の対応する部分を把握し易くなる。尚、ヒートマップ表示領域202は必要に応じて表示させればよく、省略してもよい。
【0118】
ヒートマップは、良品画像と異なる特徴部分を、色彩や明るさの相違によって他の部分よりも強調した画像である。すなわち、プロセッサ13cは、複数の検証用画像の中から、機械学習モデルに再学習させるために抽出した不良品画像に対して、既に学習させた良品画像と異なる特徴部分を特定した後、抽出した不良品画像における当該特定した異なる特徴部分を強調した画像としてヒートマップを含むアノテーション画面200を生成して表示装置4に表示させることができる。
【0119】
入力画像表示領域201に表示される入力画像は、複数の検証用画像の中から、機械学習モデルに再学習させるために抽出した不良品画像である。ところが、入力画像表示領域201に表示される入力画像のみでは、機械学習モデルがどの領域に対して反応しているのか把握できない場合がある。本例では、特定した異なる特徴部分を強調したヒートマップも同時に表示しているので、ユーザはヒートマップを見ることで、機械学習モデルが不良箇所であると反応している領域、及びその反応の強さを把握できる。
【0120】
領域指定部203では、複数の領域として例えば「領域0」、「領域1」、「領域2」、「領域3」等の指定が可能になっている。「領域0」としてマスク領域を指定する場合、指定する領域の形状を選択が可能になっている。その形状としては、例えば矩形、円、多角形等があり、ユーザがマウス52等を操作することで選択できる。選択された形状は、入力部13bで受け付けられ、プロセッサ13cが選択された形状と同じ形状の枠204を入力画像上及びヒートマップ上にそれぞれ重畳表示させる。
【0121】
枠204は、不良箇所の指定を行うためのものである。枠204の位置、大きさ、角度、縦横比等はユーザがマウス52等を操作することで変更可能になっている。ユーザが不良箇所を囲むように枠204を移動させたり、枠204の大きさを変えたりすることで、枠204で囲まれた領域を不良箇所として指定できる。入力画像上の枠204と、ヒートマップ上の枠204のいずれも操作可能になっており、入力画像上の枠204を操作するとその操作がヒートマップ上の枠204にも反映させて2つの枠204が同じ大きさになるとともに、位置に配置される。ヒートマップ上の枠204を操作した場合には、その操作が入力画像上の枠204に反映される。
【0122】
良品と不良品のスコアの差を大きくするために、複数枚の不良品画像が必要な場合がある。複数枚の不良品画像が必要な場合であれば、それら不良品画像を順番に表示し、各不良品画像に対して順次アノテーションすることができる。例えば1番目の不良品画像が表示された状態でアノテーションを実行し、終了すると、2番目の不良品画像が自動的に表示され、アノテーションの受け付けが可能な状態になる。
【0123】
不良箇所の指定は入力部13bで受け付けられる。不良箇所の指定が入力部13bで受け付けられると、プロセッサ13cは枠204で囲まれた領域が不良箇所であると特定し、例えば記憶装置19等に保存する。ステップSE3では、プロセッサ13cは、アノテーション画面200を介して不良箇所が特定された不良品画像を学習用画像に追加する。ステップSE4では、機械学習モデルに再学習させて、当該不良箇所と類似する特徴を有する画像を不良品クラスに属する画像として判定するように機械学習モデルを生成する。
【0124】
プロセッサ13cは、機械学習モデルの学習処理を完了した後も、ユーザ指示により当該機械学習モデルの再学習を再開可能に構成されている。例えば、
図5に示す学習結果表示用ユーザインターフェース画面150には、学習実行ボタン105が設けられている。ユーザによる学習実行ボタン105の操作は、機械学習モデルの再学習を再開するユーザ指示であり、このユーザ指示をプロセッサ13cが受け付ける。
【0125】
プロセッサ13cは、機械学習モデルの再学習の指示を受け付けると、既存の検証用画像とは異なる、新たな検証用画像を機械学習モデルに入力して、当該新たな検証用画像を複数のクラスに分類する処理を実行する。例えば、画像処理装置1の運用を開始した後、複数のワーク画像を取得することができ、これらワーク画像は新たな検証用画像となり得る。プロセッサ13cは、新たな検証用画像に対する分類処理により得られた複数のクラスの分離度に基づいて、分類処理の精度を評価し、分類処理の精度の評価結果に基づいて、機械学習モデルの再学習が必要であると評価した場合は、新たな検証用画像の中から、分類結果が誤っている可能性が高い検証用画像を抽出して機械学習モデルに自動的に再学習させ、一方、機械学習モデルの再学習が不要であると評価した場合は、機械学習モデルの学習処理を完了する。これにより、学習処理を一旦、完了した後に新たな画像を取得した場合でも、ユーザ指示により既存の機械学習モデルを再学習させることができるので、機械学習モデルの継続的な精度向上を図ることができる。
【0126】
(学習モデルの選択機能)
機械学習モデルの再学習を繰り返し実行することにより、機械学習モデルの精度は変化する。
図6では1回目の学習が終了した機械学習モデルの精度を示しており、学習回数が2回目、3回目と増えるに従って、
図8に示すように機械学習モデルの精度が向上している。3回目の学習を終えた時点を基準にすると、3回目の学習が直近の再学習であり、直近の再学習で得られた分離ブラフは、
図8のパレート図表示領域155bに表示される。直近の分離グラフが得られた学習段階よりも前の学習段階は、1回目の学習段階及び2回目の学習段階であり、1回目の学習段階で得られた分離グラフ及び2回目の学習段階で得られた分離グラフは、3回目の学習で得られた分離グラフを基準とすると、過去の分離グラフとなる。すなわち、プロセッサ13cは、機械学習モデルの再学習を繰り返し実行することにより得られた直近の分離グラフと、当該直近の分離グラフが得られた学習段階よりも前の学習段階で得られた過去の分離グラフとを比較可能に表示した表示画面として、
図7や
図8に示す学習結果表示用ユーザインターフェース画面150を生成して表示装置4に表示させる。尚、
図8では3回目の学習までしか示していないが、学習回数は特に制限されるものではなく、所望の精度が得られるまで学習を繰り返し行えばよい。
【0127】
図14は、機械学習モデルの精度の推移を提示するための学習推移表示画面250の例を示している。学習推移表示画面250は、
図6~
図8に示す学習結果表示用ユーザインターフェース画面150に組み込んでパレート図等と一緒に表示させることもできる。学習推移グラフには機械学習モデルの学習の進み具合が示されるので、ユーザが学習推移グラフを見ることで、何回目の学習で所望の精度を持った機械学習モデルが得られるかの予測を立てることもできる。
【0128】
学習推移表示画面250には、学習推移グラフが表示されるグラフ表示領域251が設けられている。学習推移グラフの横軸は学習回数であり、この例では学習回数を15回まで示している。左側の縦軸は学習した画像の枚数であり、右側の縦軸は機械学習モデルが誤判定した画像の枚数である。学習推移グラフに示すように、1回目~4回目の学習までは機械学習モデルの精度向上が著しいが、5回目以降は精度向上の程度が低くなり、12回目の機械学習モデルは11回目及び13回目に比べて誤判定の数が突出して多くなっている。このように、学習回数を増やせば精度が必ず向上するというものではなく、学習に用いた画像によっては、突然、精度の低下を招く場合がある。学習推移グラフを表示することで、突然の精度の低下をユーザが把握することができ、その回の機械学習モデルを避けて、他の回の精度が高い機械学習モデルを選択して運用時に使用することができる。この機能を、学習モデルの選択機能と呼ぶ。
【0129】
具体的に説明すると、プロセッサ13cは、運用時に用いる機械学習モデルとして、直近の分離グラフに対応する直近の機械学習モデルの他に、過去の分離グラフに対応する過去の機械学習モデルの選択をユーザから受け付け可能に構成されている。例えば、
図14に示す学習推移グラフの横軸上の数値(学習回数)をマウス52等で指定すると、指定した学習回数の分離グラフに対応する機械学習モデルの選択がプロセッサ13cで受け付けられる。「指定した学習回数の分離グラフに対応する機械学習モデル」とは、指定した学習回数の分離グラフを得た時の機械学習モデルのことである。
【0130】
プロセッサ13cは、過去の機械学習モデルの選択を受け付けると、当該選択された過去の機械学習モデルに学習させた全ての学習用画像を特定する。過去の機械学習モデルにどの学習用画像を学習させたかについては、学習情報として記憶装置19等に記憶させておくことができ、学習情報を読み込むことで、プロセッサ13cは、どの回にどの学習用画像を機械学習モデルに学習させたかを取得できる。
【0131】
プロセッサ13cは、選択された過去の機械学習モデルに学習させた全ての学習用画像を特定した後、学習開始前の初期状態の機械学習モデルに当該特定した全ての学習用画像を学習させることで、当該選択された過去の機械学習モデルを再現する。これにより、再学習を繰り返し実行した直近の機械学習モデルよりも前の学習段階にある過去の機械学習モデルの方が分類処理の精度が高い場合に、過去の機械学習モデルを簡単に再現して運用に用いることができる。
【0132】
過去の機械学習モデルを再現する場合には、これまで学習した機械学習モデルを引き継がない方法と、これまで学習した機械学習モデルを引き継ぐ方法とがあり、いずれの方法であってもよい。これまで学習した機械学習モデルを引き継がない場合、特定した全ての学習用画像を初期状態の機械学習モデルに学習させる。例えば、
図8に示す3回目の機械学習モデルを再現したい場合、2回目の学習で得られた機械学習モデルは引き継がず、累積5枚の学習用画像を初期状態の機械学習モデルに入力して学習させる。
【0133】
一方、これまで学習した機械学習モデルを引き継ぐ場合、前回の学習で得られたモデルに、前回から新たに追加された画像だけを学習させる。例えば、
図8に示す3回目の機械学習モデルを再現したい場合、2回目の学習で得られた機械学習モデルに対して、2回目から3回目にかけて追加された学習画像1枚のみを学習させる。これまで学習した機械学習モデルを引き継ぐ場合、初期状態から学習しないので、自動学習完了までの合計学習時間を短くすることができる。
【0134】
(3クラス分類)
図15は、機械学習モデルにより、3クラス分類を行う場合の学習結果表示領域の例を示す図である。画像枚数表示領域151aには、ラベル1が付与された画像の枚数、ラベル2が付与された画像の枚数、ラベル3が付与された画像の枚数がそれぞれ表示される。推論結果表示領域151cには、実際と予測のそれぞれについてラベル1、ラベル2、ラベル3の欄が設けられている。これにより、3クラス分類を行う場合の学習結果もユーザに提示できる。
【0135】
具体的には、
図16のフローチャートに示している。ステップSF1では、各クラスの先頭の1枚(ファイル名順)の画像を、それぞれ学習用画像に追加する。クラスの数だけ繰り返した後、ステップSF2では、追加した画像を機械学習モデルに入力して学習させてから検証する。検証の結果、分離できている場合にはステップSF3でYESと判定されて終了する。分離できていない場合にはステップSF3でNOと判定されてステップSF4に進む。ステップSF4では検証用画像が1枚以上残っているか否かを判定する。検証用画像が1枚以上残っていない場合には終了し、検証用画像が1枚以上残っている場合にはステップSF5に進む。ステップSF5では、誤判定されている画像があるか否かを全てのクラスについて判定する。誤判定されていたクラスがあれば、そのクラスにおいて、最もスコアの高い画像を1枚だけ学習用画像に追加する。誤判定されていたクラスが複数あれば、各クラスで、最もスコアの高い画像を1枚だけ学習用画像に追加する(ステップSF6)。誤判定されていないクラスについては追加しない。その後、ステップSF2に進み、追加した画像を機械学習モデルに入力して学習させてから検証する。
【0136】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0137】
以上説明したように、本開示に係る画像処理装置及び画像処理方法は、例えば工業製品の外観検査を行う場合に利用できる。
【符号の説明】
【0138】
1 画像処理装置
2 制御ユニット
3 撮像ユニット
4 表示装置(表示部)
13c プロセッサ