本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、実施の形態に係るシステムの全体構成を示す概略図である。図1に例示されるシステムSYSは、製造ラインなどに組み込まれ、製品であるワークWの写る画像を利用して、ワークWの属性を判定する。ワークWの属性には、例えば、欠陥の有無、種別などが含まれる。図1に示されるように、システムSYSは、学習装置1と判定装置2とを備えている。
学習装置1は、ワークWの写る1以上の学習用画像101を含む学習用画像グループ11を用いた機械学習を行なうことにより学習モデル5を生成するように構成されたコンピュータである。学習モデル5は、ワークWの写る画像の入力を受け、当該ワークWの属性を判定するための出力情報を出力する。
学習装置1には、表示装置6および入力装置7が接続されている。表示装置6は、典型的には液晶ディスプレイからなり、各種画面を表示する。入力装置7は、例えばキーボードおよびマウスを含む。なお、表示装置6および入力装置7は、タッチパネルとして一体化されてもよい。
判定装置2は、学習装置1から転送された学習モデル5を用いて、ワークWの属性を判定するように構成されたコンピュータである。判定装置2にはカメラ3が接続されている。カメラ3は、ワークWが視野に含まれるように設置される。これにより、判定装置2は、ワークWの写る観測画像をカメラ3から取得する。判定装置2は、取得した観測画像を入力したときの学習モデル5の出力情報を用いて、ワークWの属性を判定する。
例えば、判定装置2は、ワークWに欠陥が含まれるか否かを判定する。欠陥は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等であってよい。
図1に例示される学習装置1および判定装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
学習装置1および判定装置2の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、学習装置1および判定装置2の間では、記憶媒体を利用して、データがやりとりされてよい。また、本実施形態では、学習装置1および判定装置2は互いに別個のコンピュータである。しかしながら、システムSYSの構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習装置1および判定装置2は一体のコンピュータであってもよい。また、例えば、学習装置1および判定装置2の少なくとも一方は、複数台のコンピュータにより構成されてよい。
図1に示されるように、学習装置1は、学習部13を備える。学習部13は、学習用画像グループ11を用いた機械学習を行なうことにより、ワークWの属性を判定するために利用される学習モデル5を生成する。学習用画像グループ11は、良品のワークWの写る1以上の学習用画像101を含む。
システムSYSの立ち上げ段階では、学習用画像グループ11は、予め準備された1以上の学習用画像101のみを含む。通常、予め準備される学習用画像101の数が不十分であり、立ち上げ段階における学習モデル5の性能は十分ではない。そのため、追加学習に関する操作が繰り返し行なわれ、学習モデル5の性能向上が図られる。ただし、上述したように、追加学習に関する操作を増やしても、必ずしも学習モデル5の性能が向上するわけではない。そのため、ユーザは、過去に実施された複数の操作それぞれに対応する学習モデル5のうち、どのタイミングの学習モデル5の性能が最も高いか容易に把握できない。その結果、学習モデル5の調整に手間がかかるという問題が生じる。
本実施の形態に係るシステムSYSの学習装置1は、このような問題を解決するために、評価部14と、受付部15と、記録部16と、出力部17とをさらに備える。
評価部14は、評価用画像グループ12に含まれる1以上の評価用画像102を学習モデル5に入力することにより、学習モデル5の性能の評価を行なう。各評価用画像102には、良品または不良品のワークWが写る。評価部14は、学習部13が学習モデル5を生成するたびに、生成された学習モデル5の性能を評価する。
受付部15は、学習用画像グループ11を更新する第1操作を受け付ける。第1操作は、例えば、判定装置2がカメラ3から取得した観測画像を学習用画像101として学習用画像グループ11に追加する操作である。受付部15は、第1操作に応じて、学習用画像グループ11を更新する。
受付部15によって学習用画像グループ11が更新されると、学習部13は、更新後の学習用画像グループ11を用いて学習モデル5を生成する。さらに、評価部14は、生成された学習モデル5の性能を評価する。
記録部16は、第1操作ごとに、第1操作の内容と、更新後の学習用画像グループ11を用いて生成された学習モデル5に対する評価の結果とを対応づけて記録する。
出力部17は、記録部16によって記録された履歴情報を出力する。例えば、出力部17は、履歴情報を表示装置6に表示する。
ユーザは、記録部16によって記録された履歴情報を確認することにより、過去に実施された複数の第1操作それぞれに対応する学習モデル5のうち、どのタイミングの学習モデル5の性能が最も高いか容易に把握できる。これにより、ユーザは、第1操作ごとの学習モデル5の性能を確認しながら、学習モデル5を適宜調整すればよい。典型的には、ユーザは、性能の最も高い学習モデル5を判定装置2に設定する。このように、本実施の形態によれば、学習モデル5の調整の手間を削減できる。
§2 具体例
<A.学習装置のハードウェア構成例>
学習装置1は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る各種処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して学習装置1にインストールされる。
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る各種処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
図2は、図1に示す学習装置のハードウェア構成の一例を示す概略図である。図2に示されるように、学習装置1は、CPU(Central Processing Unit)110と、RAM(Random Access Memory)111と、ROM(Read Only Memory)112と、通信インターフェース113と、入力インターフェース114と、表示コントローラ115と、ドライブ116と、記憶部120とを含む。これらの各部は、バスを介して、互いにデータ通信可能に接続される。
CPU110は、記憶部120にインストールされたプログラム(コード)をRAM111に展開して、これらを所定順序で実行することで、各種の演算を実施する。RAM111は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。
通信インターフェース113は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインターフェースである。学習装置1は、この通信インターフェース113を利用することで、他の情報処理装置(例えば、判定装置2)とデータ通信を行なうことができる。
入力インターフェース114は、CPU110と入力装置7との間のデータ伝送を仲介する。すなわち、入力インターフェース114は、ユーザが入力装置7に入力した入力情報を受け付ける。
表示コントローラ115は、表示装置6と接続され、CPU110における処理結果などをユーザに通知するように表示装置6の画面を制御する。
記憶部120は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部120は、学習プログラム122および評価プログラム124を記憶する。学習プログラム122は、学習モデル5を生成するための機械学習の処理を学習装置1に実行させるためのプログラムである。評価プログラム124は、学習モデル5の性能の評価および評価結果の記録を学習装置1に実行させるためのプログラムである。学習プログラム122および評価プログラム124の各々は、情報処理の一連の命令を含む。
記憶部120は、1以上の学習用画像101と、1以上の評価用画像102とを記憶する。図2に例示される記憶部120は、複数の学習用画像101と、複数の評価用画像102とを記憶する。学習用画像101は、学習モデル5を生成する機械学習に使用される。評価用画像102は、学習モデル5の性能の評価に使用される。
記憶部120には、学習プログラム122の実行によって生成された学習モデルを定義付けるモデルデータ123が保存される。さらに、記憶部120には、評価プログラム124の実行によって生成された評価結果の履歴を示す履歴情報125が保存される。
ドライブ116は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体130に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ116の種類は、記憶媒体130の種類に応じて適宜選択されてよい。学習プログラム122および評価プログラム124の少なくとも1つは、この記憶媒体130に記憶されていてもよい。
記憶媒体130は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体130から、学習プログラム122および評価プログラム124の少なくとも1つを取得してもよい。
ここで、図2では、記憶媒体130の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体130の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、学習装置1は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。通信インターフェース113及びドライブ116の少なくとも一方は省略されてもよい。学習装置1は、例えば、スピーカ等の表示装置6以外の出力装置に接続され、出力装置を制御するコントローラを備えてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)等であってもよい。
<B.判定装置のハードウェア構成例>
次に、図3を用いて、本実施形態に係る判定装置2のハードウェア構成の一例について説明する。図3は、図1に示す判定装置のハードウェア構成の一例を示す概略図である。
図3に示されるとおり、判定装置2は、CPU210と、RAM211と、ROM212と、通信インターフェース213と、外部インターフェース214と、入力インターフェース215と、表示コントローラ216と、ドライブ217と、記憶部220とを含む。これらの各部は、バスを介して互いにデータ通信可能に接続される。
CPU210は、記憶部220にインストールされたプログラム(コード)をRAM211に展開して、これらを所定順序で実行することで、各種の演算を実施する。RAM211は、典型的には、DRAMなどの揮発性の記憶装置である。
通信インターフェース213は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインターフェースである。判定装置2は、通信インターフェース213を利用することで、他の情報処理装置(例えば、学習装置1)とデータ通信を行なうことができる。
外部インターフェース214は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインターフェースである。外部インターフェース214の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、判定装置2は、外部インターフェース214を介して、カメラ3に接続される。
カメラ3は、外観検査の対象となるワークWを写した観測画像201を取得するのに利用される。カメラ3の種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラ3には、例えば、一般的なデジタルカメラ、深度カメラ、赤外線カメラ等が用いられてよい。また、カメラ3は、製造ラインにより搬送されるワークWを観測可能なように適宜配置されてよい。カメラ3は、例えば、ワークWを搬送する製造ラインの近傍に配置されてよい。なお、カメラ3が通信インターフェースを備える場合、判定装置2は、外部インターフェース214ではなく、通信インターフェース213を介して、カメラ3に接続されてもよい。
入力インターフェース215は、CPU210と入力装置8との間のデータ伝送を仲介する。すなわち、入力インターフェース215は、ユーザが入力装置8に入力した入力情報を受け付ける。
表示コントローラ216は、表示装置9と接続され、CPU210における処理結果などをユーザに通知するように表示装置9の画面を制御する。
入力装置8は、例えば、マウス、キーボード等の入力を行うための装置である。表示装置9は、出力装置の一例であり、例えば、ディスプレイである。オペレータは、入力装置8及び表示装置9を介して、判定装置2を操作することができる。入力装置8及び表示装置9はタッチパネルディスプレイに置き換えられてもよい。
記憶部220は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部220は、判定プログラム221、モデルデータ123等の各種情報を記憶する。
判定プログラム221は、学習装置1により訓練された学習モデル5を利用して、観測画像201に写るワークWの属性を判定する情報処理を判定装置2に実行させるためのプログラムである。本実施の形態では、ワークWの属性を判定する情報処理は、ワークWの良否を判定する情報処理である。判定プログラム221は、当該情報処理の一連の命令を含む。
ドライブ217は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体230に記憶されたプログラムを読み込むためのドライブ装置である。判定プログラム221およびモデルデータ123のうちの少なくともいずれかは、記憶媒体230に記憶されていてもよい。また、判定装置2は、記憶媒体230から、判定プログラム221およびモデルデータ123のうちの少なくともいずれかを取得してもよい。記憶媒体230の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
なお、判定装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、判定装置2は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部220は、RAM211およびROM212により構成されてもよい。通信インターフェース213、入力インターフェース215、表示コントローラ216、ドライブ217および外部インターフェース214の少なくともいずれかは省略されてもよい。判定装置2は、例えば、スピーカ等の表示装置9以外の出力装置を備えてもよい。判定装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、判定装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<C.学習装置のソフトウェア構成例>
次に、図4を用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図4は、学習装置のソフトウェア構成の一例を模式的に例示する図である。
図4に示されるように、学習装置1は、学習部13と、評価部14と、受付部15と、記録部16と、出力部17と、設定部18とをソフトウェアモジュールとして備える。学習部13は、CPU110が学習プログラム122に含まれる命令を解釈および実行することにより実現される。評価部14、受付部15、記録部16、出力部17および設定部18は、CPU110が評価プログラム124に含まれる命令を解釈および実行することにより実現される。以下、各ソフトウェアモジュールの具体的な処理について説明する。
(C-1.学習部)
学習部13は、学習用画像グループ11に含まれる1つ以上の学習用画像101を用いた機械学習を行なうことにより学習モデル5を生成する。各学習用画像101には良品のワークWが写る。本実施の形態において例示される学習モデル5は、画像が入力されると、入力された画像(以下、「入力画像」と称する。)を特徴量に変換し、変換により得られた特徴量から、入力画像を復元した画像(以下、「復元画像」と称する。)を生成するように構成される生成モデルである。学習部13は、機械学習により、1つ以上の学習用画像101が入力されると、入力された1つ以上の学習用画像101の各々に適合する復元画像を生成するように学習モデル5を訓練する。
具体的には、学習モデル5は、入力画像を特徴量に変換し、変換により得られた特徴量から復元画像を生成する演算処理に使用される演算パラメータを備えるモジュールにより構成される。機械学習では、学習用画像101が与えられると、学習用画像101に適合する復元画像を生成するように、演算パラメータの値が調整される。
学習部13は、予め設定されたパラメータ(以下、「モデル生成用パラメータ」と称する。)を用いて学習モデル5を生成する。モデル生成用パラメータは、学習モデル5の構造に応じて適宜設定される。
学習モデル5の構成は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、学習モデル5は、ニューラルネットワーク、主成分分析により導出される固有ベクトル等によって構成される。ニューラルネットワークとして、例えば、非特許文献1に開示されるオートエンコーダ、非特許文献2に開示されるGAN(Generative Adversarial Networks)等が挙げられる。固有ベクトルとして、例えば、非特許文献3に開示される部分空間の固有ベクトル等が挙げられる。
図5は、ニューラルネットワークにより構成される学習モデルの一例を模式的に示す図である。ニューラルネットワークの代表例としてオートエンコーダが挙げられる。オートエンコーダは、次元圧縮を目的としたニューラルネットワークである。図5には、オートエンコーダにより構成される学習モデル5が示される。
図5に例示される学習モデル5を構成するニューラルネットワークは、入力層51、中間(隠れ)層52、出力層53を備えている。ただし、ニューラルネットワークの構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、中間層の数は、1つに限定されなくてもよく、2つ以上であってもよい。
入力層51に含まれるニューロン(ノード)の数は、入力画像の画素数に対応する。中間層52に含まれるニューロンの数は、特徴量の次元数に対応する。出力層53に含まれるニューロンの数は、復元画像の画素数に対応する。中間層52に含まれるニューロンの数は、入力層51及び出力層53それぞれに含まれるニューロンの数よりも少なく設定される。これに応じて、特徴量の次元数が、入力画像及び復元画像の次元数よりも小さく設定される。
ニューラルネットワークでは、隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定される。図5に例示される学習モデル5では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。各層51~53に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、学習モデルの演算パラメータの一例である。
学習部13は、学習モデル5を構成するニューラルネットワークを用意する。ニューラルネットワークによって構成される学習モデル5を生成する場合、モデル作成パラメータとして、層の数、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値などが設定される。モデル作成パラメータは、テンプレートにより与えられてもよいし、ユーザの入力により与えられてもよい。
学習部13は、各学習用画像101を用いて、各ニューラルネットワークの学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。例えば、第1のステップでは、学習部13は、各ニューラルネットワークの入力層51に各学習用画像101を入力し、各ニューラルネットワークの演算処理を実行する。すなわち、学習部13は、各ニューラルネットワークの入力層51に各学習用画像101を入力し、入力側から順に各層51~53に含まれる各ニューロンの発火判定を行う。この演算処理により、学習部13は、各学習用画像101を特徴量に変換し、変換により得られた特徴量から各学習用画像101を復元した画像を生成した結果に対応する出力値を出力層53から取得する。この演算処理の過程で、中間層52から得られる出力は、入力画像を特徴量に変換した結果に対応する。
第2のステップでは、学習部13は、出力層53から得られた出力値と各学習用画像101との誤差を損失関数に基づいて算出する。損失関数の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。損失関数には、公知のものが採用されてよい。
第3のステップでは、学習部13は、誤差逆伝播(Back propagation)法により、算出された出力値の誤差を用いて、各ニューラルネットワークの演算パラメータ、すなわち、各層51~53における各ニューロン間の結合の重みおよび各ニューロンの閾値それぞれの誤差を算出する。
第4のステップでは、学習部13は、算出された各誤差に基づいて、各層51~53における各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値を更新する。
学習部13は、上記の第1~第4のステップを繰り返すことで、出力層53から出力される出力値(復元画像)と各学習用画像101との誤差の和が小さくなるように、演算パラメータの値を調整する。例えば、学習部13は、出力層53から出力される出力値と各学習用画像101との誤差の和が閾値以下になるまで、上記の第1~第4のステップによる演算パラメータの調整を繰り返してもよい。閾値は、実施の形態に応じて適宜設定されてよい。
これにより、学習部13は、各学習用画像101を入力層51に入力すると、各学習用画像101に適合する復元画像を出力層53から出力するように訓練されたニューラルネットワークを学習モデル5として構築できる。ニューラルネットワークにおいて、入力された各学習用画像101は、入力層51から中間層52までの演算の過程で特徴量に変換される。そして、中間層52から出力層53までの演算の過程により、得られた特徴量から復元画像が生成される。
各学習用画像101には良品のワークWが写る。そのため、学習モデル5は、学習用画像101に写る特徴については再現性が高く、学習用画像101に写る可能性の低い(例えば、可能性のない)欠陥については再現性の低い復元画像を生成する能力を獲得している。
学習部13は、最終的に構築された学習済みのニューラルネットワーク(学習モデル5)における演算パラメータの値を再現可能な情報をモデルデータ123として生成し、記憶部120に保存する。学習部13は、モデルデータ123を判定装置2に転送する。判定装置2は、この転送を受け付けることで、モデルデータ123を取得する。あるいは、判定装置2は、通信インターフェース213を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、モデルデータ123を取得してもよい。また、例えば、判定装置2は、記憶媒体230を介して、モデルデータ123を取得してもよい。
なお、学習モデル5を構成するニューラルネットワークの種類は、このような多層構造の全結合型ニューラルネットワークに限定されなくてもよい。学習モデル5には、畳み込み層及びプーリング層を備える畳み込みニューラルネットワークが用いられてもよい。
(C-2.評価部)
評価部14は、評価用画像グループ12に含まれる1以上の評価用画像102を学習モデル5に入力することにより、学習モデル5の性能の評価を行なう。以下、図6および図7を参照して、評価部14の具体的な処理の例について説明する。
図6は、評価部による学習モデルの性能の評価方法の一例を説明する図である。評価用画像グループ12は、1以上の第1評価用画像103と1以上の第2評価用画像104とを含む。図6に例示される評価用画像グループ12は、複数の第1評価用画像103と、複数の第2評価用画像104とを含む。各第1評価用画像103には、良品であるワークWが写る。各第2評価用画像104には、不良品であるワークWが写る。例えば、第2評価用画像104には、欠陥Lを含むワークWが写る。
評価部14は、複数の第1評価用画像103を学習モデル5に入力することにより、複数の第1評価用画像103をそれぞれ復元した複数の第1復元画像105を取得する。第1復元画像105は、学習モデル5の出力情報である。評価部14は、各第1復元画像105が判定条件を満たすか否かに応じて、対応する第1評価用画像103に写るワークWの良否を判定する。
具体的には、評価部14は、各第1評価用画像103と各第1復元画像105との差分を示す差分画像107を生成し、差分画像107と判定パラメータ56とを用いて、各第1評価用画像103に欠陥Lが写っているか否かを判定する。判定パラメータ56は、判定条件を定義付ける。欠陥Lが第1評価用画像103に写っている場合、評価部14は、第1評価用画像103に写るワークWが不良品であると判定する。
同様に、評価部14は、複数の第2評価用画像104を学習モデル5に入力することにより、複数の第2評価用画像104をそれぞれ復元した複数の第2復元画像106を取得する。第2復元画像106は、学習モデル5の出力情報である。評価部14は、各第2復元画像106が判定条件を満たすか否かに応じて、対応する第2評価用画像104に写るワークWの良否を判定する。
具体的には、評価部14は、各第2評価用画像104と各第2復元画像106との差分を示す差分画像108を生成し、差分画像108と判定条件を定義付ける判定パラメータ56とを用いて、各第2評価用画像104に欠陥Lが写っているか否かを判定する。欠陥Lが第2評価用画像104に写っている場合、評価部14は、第2評価用画像104に写るワークWが不良品であると判定する。
上述したように、評価部14には、各画像(103、104)に欠陥Lが写っているか否かを判定するための判定条件を定義付ける判定パラメータ56が与えられる。例えば、判定パラメータ56の値は、オペレータの入力により指定されてもよいし、プログラム内の設定値として与えられてよい。本実施形態では、複数の判定パラメータ候補55が与えられ、複数の判定パラメータ候補55のうちの1つが判定パラメータ56として決定される。各判定パラメータ候補55は、判定パラメータの候補の値を示す。各判定パラメータ候補55の値は適宜与えられてよい。
評価部14は、各判定パラメータ候補55を利用して、各第1評価用画像103に欠陥Lが写っているか否かの判定、および各第2評価用画像104に欠陥Lが写っているか否かの判定を実行する。
評価部14は、各判定の結果に基づいて、複数の第1評価用画像103のうち、ワークWが不良品と判定された第1評価用画像103(すなわち、欠陥Lが写っていると判定された第1評価用画像103)の第1割合に応じた第1評価値を算出する。第1評価値は、例えば第1割合を百分率で表した値(以下、「見過ぎ率」と称する。)である。なお、第1評価値は、見過ぎ率に限定されず、100から見過ぎ率を差し引いた値であってもよい。
さらに、評価部14は、各判定の結果に基づいて、複数の第2評価用画像104のうち、ワークWが良品と判定された第2評価用画像104(すなわち、欠陥Lが写っていないと判定された第2評価用画像104)の第2割合に応じた第2評価値を算出する。第2評価値は、例えば第2割合を百分率で表した値(以下、「見逃し率」と称する。)である。なお、第2評価値は、見逃し率に限定されず、100から見逃し率を差し引いた値であってもよい。
製造ラインにおいて、不良品が良品として出荷されることは、できるだけ回避されるべきである。そのため、評価部14は、複数の判定パラメータ候補55のうち、第2割合が予め定められた閾値(以下、「許容見逃し率」と称する。)以下となる1つの判定パラメータ候補を判定パラメータ56として決定する。許容見逃し率は、例えばユーザ入力等によって予め設定されている。許容見逃し率は、例えば0である。第2割合が許容見逃し率以下となる2以上の判定パラメータ候補が存在する場合、評価部14は、当該2以上の判定パラメータ候補のうち第1割合が最も小さい1つの判定パラメータ候補を判定パラメータ56として決定する。第2割合が許容見逃し率以下となる判定パラメータ候補が存在しない場合、評価部14は、複数の判定パラメータ候補55のうち第2割合が最も小さい1つの判定パラメータ候補を判定パラメータ56として決定する。これにより、評価部14は、ワークWの良否を判定するための判定条件を自動的に最適化する。
評価部14は、決定した判定パラメータ56を利用した判定において算出された第1評価値および第2評価値を、学習モデル5の性能の評価結果として出力する。
図7は、判定パラメータの一例を示す図である。図7において、画像I10は、図7に示す第1評価用画像103および第2評価用画像104の各々に対応する。復元画像I11は、図7に示す第1復元画像105および第2復元画像106の各々に対応する。
評価部14は、画像I10と復元画像I11との差分を算出することで、差分画像I12を生成する。差分画像I12は、図7に示す差分画像107,108の各々に対応する。画像I10と復元画像I11との間で差異が生じている画素ほど差分画像I12においてその画素値が大きくなる。一方、画像I10と復元画像I11との間で差異のない画素ほど差分画像I12における画素値は小さくなる。本実施形態では、説明の便宜のため、画像I10と復元画像I11との間の差異が大きい画素ほど差分画像I12内の対応画素の実際の画素値も大きくなり、差異が小さい画素ほど差分画像I12内の対応画素の実際の画素値も小さくなると仮定する。ただし、この「画素値が大きい」及び「画素値が小さい」はそれぞれ、画像I10と復元画像I11との間の差異との関係を示しており、差分画像I12内の画素の実際の画素値と対応していなくてもよい。例えば、差分画像I12は、差異の大きい画素ほど対応する画素の実際の画素値が小さくなり、差異の小さい画素ほど対応する画素の実際の画素値が大きくなるように算出されてよい。
図7の例では、画像I10と復元画像I11との間で差異が生じている画素ほど差分画像I12において白色になっており、そうではない画素ほど黒色になっている。例えば、各画素の値が256階調で表現される場合、差分画像I12の画素の画素値の最大値が「255」であってよく、最小値が「0」であってよい。この場合、差分画像I12の画素の画素値が大きいほど、画像I10と復元画像I11との間で差異が生じていることを示し、差分画像I12の画素の画素値が小さいほど、画像I10と復元画像I11との間で差異が生じていないことを示す。ただし、画像I10と復元画像I11との間で生じる差異と差分画像I12の画素値との間の関係は、このような例に限定されなくてよい。例えば、画像I10及び復元画像I11の間の差異の程度と差分画像I12の画素値との関係は、この反対であってもよい。
学習モデル5の機械学習に使用された学習用画像101に写っていない又は写る可能性の低い特徴(欠陥Lなど)が画像I10に写っている場合、復元画像I11においてその特徴の再現性が低い。そのため、画像I10と復元画像I11との間で比較的に大きな差異が生じ得る。ただし、画像I10と復元画像I11との間に生じる差異の原因は、このような欠陥Lが画像I10に写っていることに限られない。画像I10と復元画像I11との間で比較的に大きな差異を生じさせるその他の原因として、例えば、入力画像に写るワークWの様子が、機械学習に使用した学習用画像101に写るワークWの様子と異なっていることが挙げられる。この場合、画像I10に写るワークWの様子が復元画像I11では完全には再現されず、画像I10と復元画像I11との間で比較的に大きな差異を生じさせる可能性がある。
また、例えば、学習モデル5は、入力画像を低次元の特徴量に圧縮する。このときに、入力画像の情報が部分的に損失し得る。そのため、入力画像と復元画像との間で多少の誤差が生じ得る。この復元のノイズが、画像I10と復元画像I11との間に生じる差異の原因の一例となり得る。したがって、差分画像I12には、欠陥Lに起因する差異以外に、複数の要因に基づく差異が現れ得る。しかしながら、このノイズに起因する差異は、上記2つの要因に基づく差異よりも程度が低い。そのため、差分画像I12の画素値に基づいて、これらの差異を区別することができる。
評価部14は、閾値57を利用して、差分画像I12の各画素を二値化する。例えば、評価部14は、画素値が閾値57以上である画素の画素値を「255」に変換し、画素値が閾値57未満である画素の画素値を「0」に変換する。「以上」は、「超える」に置き換えられ、「未満」は、「以下」に置き換えられてよい。以下の説明においても同様である。これにより、評価部14は、二値化画像I13を生成することができる。閾値57を適切に設定することで、上記ノイズに起因する差異等の比較的に程度の低い差異が元の差分画像I12から除外された二値化画像I13を得ることができる。
二値化画像I13には、主に、欠陥Lに起因する差異、及び学習不足に起因する差異が現れ得る。これらの差異を生じさせる原因のうち、欠陥Lは、面積、幅、高さ、周囲の長さ、縦横比、円形度等の形状に関する属性を有し得る。つまり、画像I10に写るワークWに欠陥Lが存在する場合、二値化画像I13の対応する位置に、白色「255」の画素(以下、白色画素とも称する)の集まった領域であって、欠陥Lと同等の形状に関する属性を有する領域が現れる。そこで、形状に関する属性に対して閾値58を設定することで、二値化画像I13内に欠陥Lが写っているか否かを判定することができる。
処理の一例として、評価部14は、二値化画像I13内の連続する白色画素の領域を一つの領域と認定し、白色画素の各領域が閾値58を満たしているか否かを判定する。そして、評価部14は、閾値58を満たしている領域をそのままにし、閾値58を満たしていない領域内の画素の画素値を「0」に変換する。例えば、閾値58が面積に対して設定される場合、評価部14は、白色画素の各領域の面積が閾値58以上であるか否かを判定する。そして、評価部14は、面積が閾値58未満である領域内の画素の画素値を「0」に変換する。これにより、評価部14は、検出画像I14を生成することができる。閾値58を適切に設定することで、欠陥Lの属性を満たさない白色領域が二値化画像I13から除外された検出画像I14を得ることができる。
評価部14は、検出画像I14に白色画素の領域が存在するか否かに応じて、画像I10に欠陥Lが写っているか否かを判定する。具体的に、検出画像I14において白色画素の領域が存在する場合、評価部14は、画像I10の対応する領域に欠陥Lが写っていると判定する。一方、検出画像I14において白色画素の領域が存在しない場合、評価部14は、画像I10に欠陥Lが写っていないと判定する。
以上の欠陥Lの検出に関する処理手順において、閾値57,58が、判定パラメータの一例である。すなわち、本実施形態では、各判定パラメータ候補55は、閾値57,58の組み合わせにより構成される。ただし、欠陥Lを検出する方法及び判定パラメータはそれぞれ、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
(C-3.受付部)
上述したように、システムSYSの立ち上げ段階では、学習用画像グループ11に含まれる学習用画像101の個数は不十分であり、立ち上げ段階における学習モデル5の性能は十分ではない。
例えば、ワークWには個体差が生じ得る。また、例えば、撮影のタイミング等の撮影条件が変動し得る(一例として、ワークWの位置がずれたり、傾いたりすることがある)。これらの要因により、得られる画像内に表れるワークWの様子は異なり得る。システムSYSの立ち上げ段階では、学習モデル5が、学習用画像グループ11に含まれる学習用画像101に表れる範囲以外の範囲について、ワークWの写る画像を復元する能力を獲得しているか否かは不明である。
そのため、システムSYSでは、追加学習に関する操作が繰り返し行なわれ、学習モデル5の性能向上が図られる。
受付部15は、追加学習に関する操作を受け付ける。図6に例示される受付部15は、学習用画像グループ11を更新する第1操作と、評価用画像グループ12を更新する第2操作とを受け付ける。受付部15は、受け付けた第1操作に応じて、学習用画像グループ11を更新する。受付部15は、受け付けた第2操作に応じて、評価用画像グループ12を更新する。
受付部15は、学習用画像グループ11または評価用画像グループ12に追加する画像を記憶媒体130から読み込んでもよい。あるいは、受付部15は、学習用画像グループ11または評価用画像グループ12に追加する画像を外部の情報処理装置から取得してもよい。あるいは、受付部15は、判定装置2から複数の観測画像201を取得し、当該複数の観測画像201の一部を、学習用画像グループ11または評価用画像グループ12に追加する画像として取得してもよい。以下、観測画像201の一部を学習用画像グループ11または評価用画像グループ12に追加する例について説明する。
判定装置2から取得した複数の観測画像201には、学習効果の高い画像とそうでない画像とが含まれる。学習用画像グループ11には学習効果の高い画像を学習用画像101として追加することが好ましい。そのため、受付部15は、第1操作を支援するために、複数の観測画像201の各々について、学習効果を評価し、その評価結果をユーザに通知する。
図8は、学習効果の評価方法を説明する図である。受付部15は、取得された複数の観測画像201それぞれを学習モデル5に与えることで、複数の観測画像201それぞれを復元した複数の復元観測画像203を取得する。そして、受付部15は、各観測画像201と各復元観測画像203との間の差分に応じて、学習効果を評価する。具体的には、受付部15は、各復元観測画像203における各観測画像201の復元の程度に対する評価値(以下、「学習効果評価値」と称する。)を算出する。
学習効果評価値は、例えば、以下のようにして算出される。受付部15は、各観測画像201と各復元観測画像203との間の差分画像を生成する。差分画像内の画素値の大きい画素は、各観測画像201と各復元観測画像203との間で差異の大きい画素に対応する。差分画像内の画素値の小さい画素は、各観測画像201と各復元観測画像203との間で差異の小さい画素に対応する。受付部15は、差分画像における各画素の画素値に従って、画素値ごとの度数を算出する。「度数」は、同一の画素値の画素数を示す。続いて、受付部15は、差分画像において、画素値に従って降順に整列したときの最上位から所定の順位までの画素を抽出する。所定の順位は、オペレータの入力、プログラム内の設定値等により指定されてよい。そして、受付部15は、抽出された画素の画素値の平均値又は合計値を学習効果評価値として算出する。これにより、算出された学習効果評価値が大きいほど、観測画像201と復元観測画像203との間の差分が大きい、換言すると、復元観測画像203における観測画像201の復元の程度が低いことを示す。
ただし、学習効果評価値の算出方法は、このような例に限定されない。観測画像201と復元観測画像203との差分と学習効果評価値との間の関係は、学習効果評価値が、当該差分が大きいことに応じて復元の程度が低いことを示し、かつ当該差分が小さいことに応じて復元の程度が高いことを示すように、適宜決定されてよい。例えば、上記算出方法とは反対に、学習効果評価値は、復元の程度が低いほど小さく、復元の程度が高いほど大きくなるように算出されてよい。当該算出方法の一例として、受付部15は、上記の処理により抽出された画素の画素値の平均値又は合計値の逆数を学習効果評価値として算出してもよい。
観測画像201と復元観測画像203との間の差分が大きいほど、復元観測画像203における観測画像201の復元の程度が低い。観測画像201に写るワークWが良品である場合、この観測画像201に表れるワークWの様子を再現する学習モデル5の能力が不十分であることを示す。そのため、復元観測画像203との差分が大きい、換言すると、復元の程度の低い観測画像201は、ワークWの写る画像を再現する学習モデル5の能力の適切な向上に貢献する可能性が高い。
反対に、復元の程度が高い観測画像201は、学習モデル5の能力の適切な向上に貢献する可能性が低い。加えて、復元の程度が高い観測画像201を学習用画像101として学習用画像グループ11に追加することによって、ワークW以外のパターンを復元する能力を向上させてしまう可能性がある。その結果、あらゆるパターンを忠実に再現する能力を学習モデル5に獲得させてしまう可能性がある。
これらの点を考慮して、受付部15は、複数の観測画像201の中から学習用画像101として学習用画像グループ11に追加する画像を選択するための指標として、学習効果評価値をユーザに通知する。
また、複数の観測画像201には、不良品のワークWが写っている可能性がある。不良品のワークWの写る観測画像201を学習用画像101として学習用画像グループ11に追加してしまうと、学習モデル5の出力情報を用いてワークWの良否を精度良く判定できなくなる。そのため、受付部15は、複数の観測画像201の各々を表示装置6に表示させ、良品のワークWの写る観測画像201を学習用画像101としてユーザに選択させる。
図9は、第1操作を受け付けるための画面の一例を示す図である。図9に例示される画面60は、受付部15によって表示装置6に表示される。
画面60は、候補リスト61と、学習画像リスト62と、領域63と、追加ボタン64と、削除ボタン65と、学習実行ボタン66とを含む。
候補リスト61は、判定装置2から取得した複数の観測画像201のリストである。候補リスト61は、各観測画像201について、ファイル名と対応する学習効果評価値とを示す。
学習画像リスト62は、学習用画像グループ11に含まれる学習用画像101のリストである。学習画像リスト62は、各学習用画像101のファイル名を示す。
領域63には、候補リスト61および学習画像リスト62の中から選択された1つの画像が表示される。
ユーザは、候補リスト61の学習効果評価値を確認し、学習効果が高いと評価される観測画像201を選択する。ユーザは、領域63に表示される観測画像201を見て、観測画像201に写るワークWが良品か否かを確認する。これにより、ユーザは、良品のワークWが写り、かつ、学習効果の高い観測画像201を学習用画像101として選択できる。
追加ボタン64は、候補リスト61の中から選択された観測画像201を学習用画像101として学習用画像グループに追加する操作(第1操作の1つ)を受け付けるためのボタンである。追加ボタン64が操作されると、受付部15は、候補リスト61の中から選択された観測画像201を学習用画像101として学習用画像グループに追加する。これにより、学習画像リスト62も更新される。
削除ボタン65は、学習画像リスト62の中から選択された学習用画像101を学習用画像グループ11から削除する操作(第1操作の1つ)を受け付けるためのボタンである。例えば、ユーザは、領域63を見ながら、不要な学習用画像101を学習画像リスト62の中から選択し、削除ボタン65を操作する。削除ボタン65が操作されると、受付部15は、学習画像リスト62の中から選択された学習用画像101を学習用画像グループ11から削除する。これにより、学習画像リスト62も更新される。
学習実行ボタン66は、更新された学習用画像グループ11を用いた機械学習の実行を指示するためのボタンである。学習実行ボタン66が操作されると、学習部13は、更新された学習用画像グループ11を用いた機械学習を行なうことにより、学習モデル5を生成する。さらに、評価部14は、生成された学習モデル5の性能を評価する。生成された学習モデル5を示すモデルデータ123は判定装置2に転送される。さらに、評価部14によって決定された判定パラメータ56も判定装置2に転送される。
図10は、第2操作を受け付けるための画面の一例を示す図である。図10に例示される画面70は、受付部15によって表示装置6に表示される。
画面70は、候補リスト71と、良品画像リスト72と、不良品画像リスト73と、領域74と、追加ボタン75a,75bと、移動ボタン76と、削除ボタン77a,77bと、評価実行ボタン78とを含む。
候補リスト71は、図9に示す候補リスト61と同様に、判定装置2から取得した複数の観測画像201のリストである。良品画像リスト72は、評価用画像グループ12に含まれる第1評価用画像103のリストである。良品画像リスト72は、各第1評価用画像103のファイル名を示す。不良品画像リスト73は、評価用画像グループ12に含まれる第2評価用画像104のリストである。不良品画像リスト73は、各第2評価用画像104のファイル名を示す。領域74には、候補リスト71、良品画像リスト72および不良品画像リスト73の中から選択された1つの画像が表示される。
追加ボタン75aは、候補リスト71の中から選択された観測画像201を第1評価用画像103として評価用画像グループ12に追加する操作(第2操作の1つ)を受け付けるためのボタンである。ユーザは、領域74を見ながら、良品のワークWの写る観測画像201を候補リスト71の中から選択し、追加ボタン75aを操作する。追加ボタン75aが操作されると、受付部15は、候補リスト71の中から選択された観測画像201を第1評価用画像103として評価用画像グループ12に追加する。これにより、良品画像リスト72も更新される。
追加ボタン75bは、候補リスト71の中から選択された観測画像201を第2評価用画像104として評価用画像グループ12に追加する操作(第2操作の1つ)を受け付けるためのボタンである。ユーザは、領域74を見ながら、不良品のワークWの写る観測画像201を候補リスト71の中から選択し、追加ボタン75bを操作する。追加ボタン75bが操作されると、受付部15は、候補リスト71の中から選択された観測画像201を第2評価用画像104として評価用画像グループ12に追加する。これにより、不良品画像リスト73も更新される。
移動ボタン76は、良品画像リスト72および不良品画像リスト73の一方の中から選択された1つの画像を他方に移動する操作(第2操作の1つ)を受け付けるためのボタンである。例えば、ユーザは、領域74を見ながら、良品画像リスト72に含まれる第1評価用画像103に不良品のワークWが写っていることを確認すると、不良品のワークWの写る第1評価用画像103を選択し、移動ボタン76を操作する。あるいは、ユーザは、領域74を見ながら、不良品画像リスト73に含まれる第2評価用画像104に良品のワークWが写っていることを確認すると、良品のワークWの写る第2評価用画像104を選択し、移動ボタン76を操作する。
良品画像リスト72の中の1つの第1評価用画像103が選択された状態で移動ボタン76が操作されると、受付部15は、選択された第1評価用画像103を第2評価用画像104に変更する。不良品画像リスト73の中の1つの第2評価用画像104が選択された状態で移動ボタン76が操作されると、受付部15は、選択された第2評価用画像104を第1評価用画像103に変更する。これにより、良品画像リスト72および不良品画像リスト73も更新される。
削除ボタン77aは、良品画像リスト72の中から選択された第1評価用画像103を評価用画像グループ12から削除する操作(第2操作の1つ)を受け付けるためのボタンである。削除ボタン77aが操作されると、受付部15は、良品画像リスト72の中から選択された第1評価用画像103を評価用画像グループ12から削除する。これにより、良品画像リスト72も更新される。
削除ボタン77bは、不良品画像リスト73の中から選択された第2評価用画像104を評価用画像グループ12から削除する操作(第2操作の1つ)を受け付けるためのボタンである。削除ボタン77bが操作されると、受付部15は、不良品画像リスト73の中から選択された第2評価用画像104を評価用画像グループ12から削除する。これにより、不良品画像リスト73も更新される。
評価実行ボタン78は、更新された評価用画像グループ12を用いた評価の実行を指示するためのボタンである。評価実行ボタン78が押下されると、評価部14は、更新後の評価用画像グループを用いて学習モデル5の性能を再評価する。このとき評価部14によって決定された判定パラメータは、判定装置2に転送される。
(C-4.記録部)
記録部16は、受付部15が機械学習に関する操作(第1操作および第2操作)を受け付けるたびに、受け付けた操作の内容と、学習モデル5の性能の評価の結果とを対応付けて記録する。記録部16は、記憶部120に格納された履歴情報125に記録結果を追加する。
図11は、記録部によって生成される履歴情報の一例を示す図である。図11に示されるように、履歴情報125は、操作ごとに、操作内容と、学習モデル5の性能の評価結果と、学習モデル5を示すモデルデータ123と、学習用画像101の枚数と、評価部14によって決定された判定パラメータ56とを対応付けたテーブルである。図11に例示される履歴情報125では、評価結果として「見逃し率」および「見過ぎ率」が記録されている。また、判定パラメータとして、図7に示す閾値57,58の値が記録されている。なお、履歴情報125には、操作を受け付けた日時が含まれてもよい。
例えば受付部15が第1操作を受け付けると、記録部16は、学習用画像グループ11の更新内容と、更新後の学習用画像グループ11を用いて生成された学習モデル5の性能の評価結果と、当該学習モデル5を定義付けるモデルデータ123と、更新後の学習用画像グループ11に含まれる学習用画像101の枚数と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成する。記録部16は、作成したレコードを履歴情報125の末尾に追加する。
受付部15が第2操作を受け付けると、記録部16は、評価用画像グループ12の更新内容と、現状の学習モデル5に対する、更新後の評価用画像グループ12を用いた性能の評価結果と、現状の学習モデル5を定義付けるモデルデータ123と、現状の学習用画像グループ11に含まれる学習用画像101の枚数と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成する。記録部16は、作成したレコードを履歴情報125の末尾に追加する。
図12は、記録部によって生成される履歴情報の別の例を示す図である。図12に示されるように、履歴情報125は、操作ごとに、操作内容と、学習モデル5の性能の評価結果と、学習用画像グループ11に含まれる学習用画像101の一覧と、評価用画像グループ12に含まれる第1評価用画像103および第2評価用画像104それぞれの一覧と、評価部14によって決定された判定パラメータ56とを対応付けたテーブルである。なお、履歴情報125には、操作を受け付けた日時が含まれてもよい。
例えば受付部15が第1操作を受け付けると、記録部16は、学習用画像グループ11の更新内容と、更新後の学習用画像グループ11を用いて生成された学習モデル5の性能の評価結果と、更新後の学習用画像グループ11に含まれる学習用画像101の一覧と、現状の評価用画像グループ12に含まれる第1評価用画像103および第2評価用画像104それぞれの一覧と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成する。記録部16は、作成したレコードを履歴情報125の末尾に追加する。
受付部15が第2操作を受け付けると、記録部16は、評価用画像グループ12の更新内容と、現状の学習モデル5に対する、更新後の評価用画像グループ12を用いた性能の評価結果と、現状の学習用画像グループ11に含まれる学習用画像101の一覧と、更新後の評価用画像グループ12に含まれる第1評価用画像103および第2評価用画像104それぞれの一覧と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成する。記録部16は、作成したレコードを履歴情報125の末尾に追加する。
このようにして、受付部15が受け付けた操作に関する履歴が履歴情報125に蓄積される。
(C-5.出力部)
出力部17は、ユーザ入力に応じて、記録部16によって記録された履歴情報125を出力する。具体的には、出力部17は、入力装置7に履歴情報125の出力指示が入力されると、履歴情報125を示す画面を表示装置6に表示させる。
図13は、履歴情報を示す画面の一例を示す図である。図13に例示される画面80は、例えば図12に示す履歴情報125に基づいて作成される。画面80は、出力部17によって表示装置6に表示される。
画面80は、操作履歴テーブル81と、学習画像リスト83と、不良品画像リスト84と、良品画像リスト85と、領域86と、表示欄87とを含む。
操作履歴テーブル81は、操作ごとに、操作内容と、学習モデル5の性能の評価結果と、評価部14によって決定された判定パラメータ56とを示すテーブルである。操作履歴テーブル81は、例えば図12に示す履歴情報125を用いて作成される。
表示欄87には、判定パラメータ56を決定するために設定された許容見逃し率が表示される。
図13に例示される画面80では、学習モデル5の性能の評価結果として、「見逃し率」および「見過ぎ率」が表示されている。出力部17は、操作履歴テーブル81において、「見逃し率」が許容見逃し率を超えているレコードの表示形式を他のレコードと異ならせることが好ましい。これにより、ユーザに対して注意を促すことができる。
操作履歴テーブル81には、1つの操作(以下、「対象操作」と称する。)を選択するためのカーソル82が表示される。カーソル82は、入力装置7への入力に応じて移動する。
学習画像リスト83は、カーソル82によって選択されている対象操作が実行された直後の学習用画像グループ11に含まれる学習用画像101の一覧を示す。学習画像リスト83は、図12に示す履歴情報125における、対象操作に対応するレコードの「学習用画像グループ」のフィールドに基づいて作成される。
不良品画像リスト84は、カーソル82によって選択されている対象操作が実行された直後の評価用画像グループ12に含まれる第2評価用画像104の一覧を示す。不良品画像リスト84は、図12に示す履歴情報125における、対象操作に対応するレコードの「第2評価用画像」のフィールドに基づいて作成される。
良品画像リスト85は、カーソル82によって選択されている対象操作が実行された直後の評価用画像グループ12に含まれる第1評価用画像103の一覧を示す。良品画像リスト85は、図12に示す履歴情報125における、対象操作に対応するレコードの「第1評価用画像」のフィールドに基づいて作成される。
不良品画像リスト84および良品画像リスト85には、各画像について、当該画像に写るワークWの良否の判定結果が表示される。なお、不良品画像リスト84において、「OK」は、ワークWが不良品であると判定されたことを示し、「見逃し」は、ワークWが良品であると判定されたことを示す。良品画像リスト85において、「OK」は、ワークWが良品であると判定されたことを示し、「見過ぎ」は、ワークWが不良品であると判定されたことを示す。
領域86には、学習画像リスト83、不良品画像リスト84および良品画像リスト85から選択された1つの画像が表示される。
図14は、履歴情報を示す画面の別の例を示す図である。図14に例示される画面90は、例えば図11または図12に示す履歴情報125に基づいて作成される。画面90は、出力部17によって表示装置6に表示される。なお、入力装置7への入力に応じて、図13に示す画面80と図14に示す画面90とが切り替えられてもよい。
画面90は、操作履歴グラフ91と、表示欄93~95とを含む。操作履歴グラフ91は、学習モデル5の性能の評価結果と学習用画像グループ11に含まれる学習用画像101の枚数との変化を示すグラフである。
操作履歴グラフ91には、1つの操作(以下、「対象操作」と称する。)を選択するためのカーソル92が表示される。カーソル92は、入力装置7への入力に応じて移動する。
表示欄93には、カーソル92によって選択されている対象操作の内容が表示される。表示欄93に表示される内容は、図12または図13に示す履歴情報125における、対象操作に対応するレコードの「操作内容」のフィールドに対応する。
表示欄94には、カーソル92によって選択されている対象操作が実行された直後における、学習モデル5の性能の評価結果と学習用画像グループ11に含まれる学習用画像101の枚数とが表示される。表示欄94に表示される評価結果は、図12または図13に示す履歴情報125における、対象操作に対応するレコードの「性能の評価結果」のフィールドに対応する。表示欄94に表示される学習用画像101の枚数は、図12に示す履歴情報125における、対象操作に対応するレコードの「学習枚数」のフィールドに対応する。あるいは、表示欄94に表示される学習用画像101の枚数は、図13に示す履歴情報125における、対象操作に対応するレコードの「学習用画像グループ」フィールドに基づいて算出される。
表示欄95には、判定パラメータ56を決定するために設定される許容見逃し率が表示される。
ユーザは、図13に示す画面80または図14に示す画面90を見ることにより、過去に実行した操作による学習モデルの性能の評価結果の変化を把握できる。
なお、図13に示す画面80または図14に示す画面90には、画面を閉じるためのボタン89が含まれる。ボタン89が押下されると、出力部17は、画面を閉じる。
(C-6.設定部)
設定部18は、ユーザからの指示に応じて、指定された学習モデル5を判定装置2に設定する。
設定部18は、例えば図13に示す画面80または図14に示す画面90に含まれるロールバック実行ボタン88が押下されたことに応じて、指定された学習モデル5を示すモデルデータ123を判定装置2に転送する。具体的には、図13に示す画面80に含まれるロールバック実行ボタン88が押下された場合、設定部18は、カーソル82によって選択された対象操作が実行された直後の学習モデル5に対応するモデルデータ123を判定装置2に転送する。同様に、図14に示す画面90に含まれるロールバック実行ボタン88が押下された場合、設定部18は、カーソル92によって選択された対象操作が実行された直後の学習モデル5を定義付けるモデルデータ123を判定装置2に転送する。
記憶部120が図11に示す履歴情報125を記憶している場合、設定部18は、履歴情報125における、対象操作に対応するレコードの「学習モデル」フィールドに示されるモデルデータ123を判定装置2に転送すればよい。
記憶部120が図12に示す履歴情報125を記憶している場合、設定部18は、履歴情報125における、対象操作に対応するレコードの「学習用画像グループ」フィールドに示される学習用画像101を用いた機械学習を学習部13に指示する。設定部18は、学習部13によって生成された学習モデル5を定義付けるモデルデータ123を判定装置2に転送すればよい。
これにより、ユーザは、図13に示す画面80または図14に示す画面90を見ながら、性能の評価結果が優れている学習モデル5を判定装置2に設定できる。
<D.判定装置のソフトウェア構成例>
次に、図15を用いて、本実施形態に係る判定装置2のソフトウェア構成の一例について説明する。図15は、判定装置のソフトウェア構成の一例を模式的に例示する図である。
図15に示されるように、判定装置2は、取得部21と、生成部22と、判定部23と、出力部24とをソフトウェアモジュールとして備える。各ソフトウェアモジュールは、CPU210が判定プログラム221に含まれる命令を解釈および実行することにより実現される。
取得部21は、ワークWを観測することで得られた観測画像201を取得する。観測画像201にはワークWが写る。
生成部22は、学習装置1から転送されたモデルデータ123を参照して、学習モデル5の設定を行う。上述したように、学習モデル5は、画像が入力されると、入力された画像を特徴量に変換し、変換により得られた特徴量から入力された画像を復元した画像を生成するように構成されている。生成部22は、取得された観測画像201を学習モデル5に入力することで、観測画像201を復元した復元観測画像203を生成する。
判定部23は、観測画像201と復元観測画像203との間の差分に基づいて、観測画像201に写るワークWが良品か否かを判定する。本実施形態では、判定部23は、評価部14と同様の方法に従って、ワークWの良否判定を行なう。すなわち、判定部23は、観測画像201と復元観測画像203との差分を算出することで、観測画像201と復元観測画像203との間の差分を示す差分画像205を生成する。判定部23は、差分画像205に対して学習装置1から転送された判定パラメータ56(閾値57,58)を適用することにより、検出画像I14を生成する(図7参照)。そして、判定部23は、検出画像I14に白色画素の領域が存在するか否かに応じて、観測画像201に写るワークWに欠陥が存在するか否かを判定する。判定部23は、ワークWに欠陥が存在する場合にワークWを不良品と判定し、ワークWに欠陥が存在しない場合にワークWを良品と判定する。
出力部24は、判定部23の判定結果、すなわち、ワークWの良否を判定した結果に関する情報を出力する。
<E.学習装置の処理の流れ>
図16を参照して、学習装置1の処理の流れについて説明する。図16は、学習装置の処理の流れの一例を示すフローチャートである。
まず、学習装置1のCPU110は、機械学習に関する操作を受け付けたか否かを判定する(ステップS1)。操作を受け付けていない場合(ステップS1でNO)、処理はステップS1に戻る。
操作を受け付けた場合(ステップS1でYES)、CPU110は、受け付けた操作に応じてデータの更新を行なう(ステップS2)。例えば、第1操作を受け付けた場合、CPU110は、学習用画像グループ11を更新する。第2操作を受け付けた場合、CPU110は、評価用画像グループ12を更新する。
次に、CPU110は、学習用画像グループ11を用いた機械学習を行なうことにより、学習モデル5を生成する(ステップS3)。続けて、CPU110は、生成された学習モデル5の性能を評価する(ステップS4)。CPU110は、受け付けた操作の内容と、学習モデル5の性能の評価結果とを対応付けて記録する(ステップS5)。
次に、CPU110は、記録部16によって記録された履歴情報125の出力指示を受けたか否かを判定する(ステップS6)。出力指示を受けていない場合(ステップS6でNO)、処理はステップS1に戻る。
出力指示を受けた場合(ステップS6でYES)、CPU110は、履歴情報125を出力する(ステップS7)。具体的には、CPU110は、履歴情報125を示す画面を表示装置6に表示させる。
次に、CPU110は、画面表示の終了指示を受けたか否かを判定する(ステップS8)。終了指示を受けた場合(ステップS8でYES)、処理はステップS1に戻る。
終了指示を受けていない場合(ステップS8でNO)、CPU110は、ロールバック実行の指示を受けたか否かを判定する(ステップS9)。ロールバック実行の指示を受けていない場合(ステップS9でNO)、処理はステップS8に戻る。
ロールバック実行の指示を受けた場合(ステップS9でYES)、CPU110は、指定された対象操作が実行された直後の学習モデル5を判定装置2に設定する(ステップS10)。具体的には、CPU110は、学習モデル5に対応するモデルデータ123を判定装置2に転送する。ステップ10の後、処理はステップS1に戻る。
<F.実験例>
次に、本開示の実験例について説明する。汎用のコンピュータを利用して、以下の実験条件に従って、学習モデルを構築する実験を行った。
(実験条件)
・立ち上げ段階において学習用画像グループに含まれる学習用画像の数:10
・追加学習の回数:7回
・第1評価用画像の数:42
・第2評価用画像の数:3445
・各画像のサイズ:350×350
・各画像の画素値:256階調
・差分画像の画素値の範囲:0~255
・二値化の閾値(閾値57)の値:10~70
・面積に対する閾値(閾値58)の値(画素数):10~1000
・許容見逃し率:0%。
図17は、実験例により機械学習の処理を繰り返す過程で構築された学習モデルの性能の評価結果を示す図である。「追加学習した画像の学習効果評価値」のフィールドは、学習用画像グループに追加された学習用画像に対する学習効果評価値を示す。「性能評価値」のフィールドは、学習モデルの性能の評価結果である「見逃し率」および「見過ぎ率」を示す。「判定パラメータ」のフィールドは、評価部14によって決定された判定パラメータ(閾値57,58)の最適な値を示す。
図17に示されるとおり、第1回目から第5回目までは、学習用画像を追加することにより、学習モデルの性能が向上している。しかしながら、第6回目以降では、学習用画像を追加しても、必ずしも性能が向上するわけではない。そのため、複数回繰り返し機械学習を実行し、最も性能の高い学習モデルを採用することが好ましい。
本開示によれば、操作ごとに学習モデルの性能の評価結果が記録され、記録された履歴情報が出力される。これにより、ユーザは、どの操作のタイミングにおいて学習モデルが最適になったかを容易に把握できる。その結果、判定装置に設定すべき学習モデルを容易に調整することができる。
<G.作用・効果>
以上のように、本実施の形態の学習装置1は、学習部13と、評価部14と、受付部15と、記録部16と、出力部17とを備える。学習部13は、ワークWの写る1以上の学習用画像101を含む学習用画像グループ11を用いた機械学習を行なうことにより、ワークWの属性を判定するために利用される学習モデル5を生成する。評価部14は、評価用画像グループ12に含まれる1以上の評価用画像102を学習モデル5に入力することにより、学習モデル5の性能の評価を行なう。受付部15は、学習用画像グループ11を更新する第1操作を受け付ける。記録部16は、第1操作ごとに、第1操作の内容と、更新後の学習用画像グループ11を用いて生成された学習モデル5に対する評価結果とを対応付けて記録する。出力部17は、記録部16によって記録された履歴情報125を出力する。
上記の構成によれば、ユーザは、記録部16によって記録された履歴情報125を確認することにより、過去に実施された複数の第1操作それぞれに対応する学習モデル5のうち、どのタイミングの学習モデル5の性能が最も高いか容易に把握できる。これにより、ユーザは、第1操作ごとの学習モデル5の性能を確認しながら、学習モデル5を適宜調整できる。
学習モデル5は、ワークWの写る画像が入力され、ワークWの良否を判定するための出力情報を出力する。評価用画像グループ12は、良品であるワークWの写る1以上の第1評価用画像103と、不良品であるワークWの写る1以上の第2評価用画像104とを含む。評価部14は、評価結果として、第1評価値と第2評価値とを算出する。第1評価値は、1以上の第1評価用画像103のうち、学習モデル5に入力することにより得られる出力情報に基づいてワークWが不良品と判定された第1評価用画像103の第1割合に応じた値である。第2評価値は、1以上の第2評価用画像104のうち、学習モデル5に入力することにより得られる出力情報に基づいてワークWが良品と判定された第2評価用画像の第2割合に応じた値である。
上記の構成によれば、ユーザは、第1評価値を確認することにより第1割合を把握でき、第2評価値を確認することにより第2割合を把握できる。これにより、ユーザは、第1割合および第2割合が所望の範囲内になるように、学習モデル5を調整できる。
出力情報を用いたワークWの良否の判定は、出力情報が判定条件を満たすか否かに応じて実施される。評価部14は、第2割合が予め定められた許容見逃し率以下となるように判定条件を決定する。
製造ラインでは、不良品が良品として出荷されることをなるべく回避する必要がある。上記の構成によれば、第2割合が予め定められた許容見逃し率以下となるような判定条件の下で実施された良否の判定結果に基づいて、学習モデル5の性能の評価が行なわれる。これにより、第2割合が許容見逃し率以下となる判定条件下において、ユーザは、性能の高い学習モデル5に調整できる。
学習装置1は、ワークWの属性を判定する判定装置2に学習モデル5を設定する設定部18をさらに備える。記録部16は、第1操作ごとに、更新後の学習用画像グループ11をさらに記録する。設定部18は、履歴情報125の中から指定された第1操作に対応して記録された学習用画像グループ11を用いて生成された学習モデル5を、判定装置2に設定する。
あるいは、記録部16は、第1操作ごとに、更新後の学習用画像グループ11を用いて生成された学習モデル5をさらに記録する。設定部18は、履歴情報125の中から指定された第1操作に対応して記録された学習モデル5を判定装置2に設定する。
上記の構成によれば、ユーザは、履歴情報を見ながら、性能の高い学習モデル5を判定装置2に容易に設定できる。
受付部15は、評価用画像グループ12を更新する第2操作をさらに受け付ける。記録部16は、さらに、第2操作ごとに、第2操作の内容と、更新後の評価用画像グループ12を用いた評価の結果とを対応付けて記録する。
上記の構成によれば、ユーザは、評価用画像グループ12を更新したときの学習モデル5の性能の評価結果の変化を確認できる。その結果、ユーザは、評価結果を確認することで評価用画像グループ12の最適化を行なうことができる。
出力部17は、第1操作ごとの第1操作の内容と評価結果との一覧表を表示装置6に表示させる。これにより、ユーザは、一覧表を見ることにより、操作に応じた学習モデル5の性能の変化を確認できる。
あるいは、評価部14は、学習モデル5の性能を示す評価値(例えば、第1評価値および第2評価値)を評価結果として算出する。出力部17は、第1操作ごとの評価値の推移を示すグラフを表示装置6に表示させる。これにより、ユーザは、グラフを見ることにより、操作に応じた学習モデル5の性能の変化を確認しやすくなる。
<H.変形例>
(H-1.変形例1)
上記の説明では、受付部15は、第1操作および第2操作を受け付ける。受付部15は、さらに、学習モデル5を生成するために用いられるモデル生成用パラメータを更新する第3操作を受け付けてもよい。
受付部15が第3操作を受け付けると、記録部16は、モデル生成用パラメータの更新内容と、更新後のモデル生成用パラメータを用いて生成された学習モデル5の性能の評価結果と、当該学習モデル5を定義付けるモデルデータ123と、現状の学習用画像グループ11に含まれる学習用画像101の枚数と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成する。
あるいは、記録部16は、モデル生成用パラメータの更新内容と、更新後のモデル生成用パラメータのセットと、更新後のモデル生成用パラメータを用いて生成された学習モデル5の性能の評価結果と、現状の学習用画像グループ11に含まれる学習用画像101の一覧と、現状の評価用画像グループ12に含まれる第1評価用画像103および第2評価用画像104それぞれの一覧と、評価部14によって決定された判定パラメータ56とを対応付けたレコードを作成してもよい。
変形例1によれば、ユーザは、モデル生成用パラメータを更新したときの学習モデル5の性能の評価結果の変化を確認できる。その結果、ユーザは、評価結果を確認することでモデル生成用パラメータの最適化を行なうことができる。
(H-2.変形例2)
学習部13は、各学習用画像101を複数のパッチ画像に分割してもよい。分割方法及びパッチ画像の個数は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習部13は、縦方向及び横方向それぞれに指定された数で等分に学習用画像101を分割してもよい。
学習部13は、上記機械学習の処理により、パッチ画像ごとに学習モデル5を生成してもよい。すなわち、学習部13は、パッチ画像を特徴量に変換し、変換により得られた特徴量から対応するパッチ画像に適合する画像を復元するように訓練された学習モデル5を構築する。これにより、学習モデル5が、パッチ画像ごとに生成される。
パッチ画像ごとの学習モデル5が生成された場合、評価部14は、各評価用画像102を複数のパッチ画像に分割する。評価部14は、パッチ画像ごとに、対応する学習モデル5を利用して、パッチ画像に対応する復元画像を生成する。評価部14は、各評価用画像102について、複数のパッチ画像の各々と対応する復元画像との差分の程度に基づいて、当該評価用画像に写っているワークWの良否を判定する。評価部14は、判定結果に基づいて学習モデル5の性能の評価を行なう。
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
学習装置(1)であって、
対象物(W)の写る1以上の学習用画像(101)を含む学習用画像グループ(11)を用いた機械学習を行なうことにより、前記対象物(W)の属性を判定するために利用される学習モデル(5)を生成する学習部(13)と、
評価用画像グループ(12)に含まれる1以上の評価用画像(102,103,104)を前記学習モデル(5)に入力することにより、前記学習モデル(5)の性能の評価を行なう評価部(14)と、
前記学習用画像グループ(11)を更新する第1操作を受け付ける受付部(15)と、
前記第1操作ごとに、前記第1操作の内容と、更新後の前記学習用画像グループ(11)を用いて生成された前記学習モデル(5)に対する前記評価の結果とを対応付けて記録する記録部(16)と、
前記記録部(16)によって記録された履歴情報(125)を出力する出力部(17)とを備える、学習装置(1)。
(構成2)
前記学習モデル(5)は、前記対象物(W)の写る画像が入力され、前記対象物(W)の良否を判定するための出力情報を出力し、
前記評価用画像グループ(12)は、良品である前記対象物(W)の写る1以上の第1評価用画像(103)と、不良品である前記対象物(W)の写る1以上の第2評価用画像(104)とを含み、
前記評価部(14)は、前記評価の結果として、
前記1以上の第1評価用画像(103)のうち、前記学習モデル(5)に入力することにより得られる前記出力情報に基づいて前記対象物(W)が不良品と判定された第1評価用画像(103)の第1割合に応じた値と、
前記1以上の第2評価用画像(104)のうち、前記学習モデル(5)に入力することにより得られる前記出力情報に基づいて前記対象物(W)が良品と判定された第2評価用画像(104)の第2割合に応じた値とを算出する、構成1に記載の学習装置(1)。
(構成3)
前記出力情報を用いた前記対象物(W)の良否の判定は、前記出力情報が判定条件を満たすか否かに応じて実施され、
前記評価部(14)は、前記第2割合が予め定められた閾値以下となるように前記判定条件を決定する、構成2に記載の学習装置(1)。
(構成4)
前記対象物(W)の属性を判定する判定装置(2)に前記学習モデル(5)を設定する設定部(18)をさらに備え、
前記記録部(16)は、前記第1操作ごとに、更新後の前記学習用画像グループ(11)をさらに記録し、
前記設定部(18)は、前記履歴情報(125)の中から指定された第1操作に対応して記録された前記学習用画像グループ(11)を用いて生成された前記学習モデル(5)を前記判定装置(2)に設定する、構成1から3のいずれかに学習装置(1)。
(構成5)
前記対象物(W)の属性を判定する判定装置(2)に前記学習モデル(5)を設定する設定部(18)をさらに備え、
前記記録部(16)は、前記第1操作ごとに、更新後の前記学習用画像グループ(11)を用いて生成された前記学習モデル(5)をさらに記録し、
前記設定部(18)は、前記履歴情報(125)の中から指定された第1操作に対応して記録された前記学習モデル(5)を前記判定装置(2)に設定する、構成1から3のいずれかに記載の学習装置(1)。
(構成6)
前記受付部(15)は、前記評価用画像グループ(12)を更新する第2操作をさらに受け付け、
前記記録部(16)は、さらに、前記第2操作ごとに、前記第2操作の内容と、更新後の前記評価用画像グループ(12)を用いた前記評価の結果とを対応付けて記録する、構成1から5のいずれかに記載の学習装置(1)。
(構成7)
前記学習部(13)は、モデル生成用パラメータを用いて前記学習モデル(5)を生成し、
前記受付部(15)は、前記モデル生成用パラメータを更新する第3操作をさらに受け付け、
前記記録部(16)は、さらに、前記第3操作ごとに、前記第3操作の内容と、更新後の前記モデル生成用パラメータを用いて生成された前記学習モデル(5)に対する前記評価の結果とを対応付けて記録する、構成1から6のいずれかに記載の学習装置(1)。
(構成8)
前記出力部(17)は、前記第1操作ごとの前記第1操作の内容と前記評価の結果との一覧表を表示装置(6)に表示させる、構成1に記載の学習装置(1)。
(構成9)
前記評価部(14)は、前記学習モデル(5)の性能を示す評価値を前記評価の結果として算出し、
前記出力部(17)は、前記第1操作ごとの前記評価値の推移を示すグラフを表示装置(6)に表示させる、構成1に記載の学習装置。
(構成10)
対象物(W)の写る1以上の学習用画像(101)を含む学習用画像グループ(11)を用いた機械学習を行なうことにより、前記対象物(W)の属性を判定するために利用される学習モデル(5)を生成するステップと、
評価用画像グループ(12)に含まれる1以上の評価用画像(102)を前記学習モデル(5)に入力することにより、前記学習モデル(5)の性能の評価を行なうステップと、
前記学習用画像グループ(11)を更新する操作を受け付けるステップと、
前記操作ごとに、前記操作の内容と、更新後の前記学習用画像グループ(11)を用いて生成された前記学習モデル(5)に対する前記評価の結果とを対応付けて記録するステップと、
記録された履歴情報(125)を出力するステップとを備える、学習方法。
(構成11)
構成10に記載の学習方法をコンピュータに実行させるプログラム。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。