以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、本発明の基本的な構成の一例について説明する。再学習又は追加学習により識別器を更新した場合、次のような問題が生じ得る。すなわち、収集した追加のデータにより識別器の再学習又は追加学習を実施することで、更新された識別器は、追加のデータにより学習した未知のケースに対する識別を実施することができるようになる。しかしながら、学習するデータの件数が増えると、過学習等が生じてしまうことにより、対象のデータに表れる特徴を識別器により識別する性能が悪化してしまう可能性がある。
そこで、本発明の一例では、対象データに表れる特徴の判定を行うために、再学習又は追加学習前の第1識別器と、再学習又は追加学習後の第2識別器との両方を保持する。第2識別器の第2判定基準の数値範囲は、第1識別器の第1判定基準の数値範囲よりも狭く設定される。つまり、第2判定基準の数値範囲には、第2識別器による特徴の識別を行わない範囲が設けられる。そして、本発明の一例では、第2識別器の第2出力値が第2判定基準の数値範囲に含まれる場合には、当該第2識別器の第2出力値に基づいて、対象データに表れる特徴を判定する。一方、第2識別器の第2出力値が第2判定基準の数値範囲に含まれない場合には、第1識別器の第1出力値に基づいて、対象データに表れる特徴を判定する。
したがって、本発明の一例では、第2識別器の第2出力値が特徴の識別結果を明確に示している場合には、第2識別器を信頼して特徴の判定を行い、そうでない場合には、第2識別器を利用せずに第1識別器により特徴の判定を行うようにすることができる。これにより、過学習による識別性能の悪化が生じ得る閾値の境界付近の範囲において、第2識別器を利用せずに第1識別器を利用することで、再学習又は追加学習前の判定結果を保証し、再学習又は追加学習による判定結果の変動を抑制することができる。したがって、本発明の一例によれば、再学習又は追加学習により識別器の識別性能が悪化してしまった場合でも、識別器を利用した判定の信頼性が損なわれてしまうのを防止することができる。
次に、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明を製品Rの外観検査に適用した場面の一例を模式的に例示する。ただし、本発明の適用範囲は、以下で例示する外観検査の例に限られる訳ではない。本発明は、再学習又は追加学習により識別器を更新するあらゆる場面に適用可能である。
図1に示されるとおり、本実施形態に係る検査装置1は、製品Rの良否を検査するように構成されたコンピュータである。具体的には、検査装置1は、検査の対象となる製品Rの写る対象画像データ121を取得する。本実施形態では、検査装置1は、カメラ31に接続されており、このカメラ31により製品Rを撮影することで、対象画像データ121を取得する。
次に、検査装置1は、再学習又は追加学習前の第1識別器5及び再学習又は追加学習後の第2識別器6を利用して、取得した対象画像データ121に写る製品Rの良否を判定する。なお、再学習又は追加学習「前」及び「後」は、第1識別器5及び第2識別器6の間の相対的な関係を示しているに過ぎない。第1識別器5は、第2識別器6以外の他の識別器との関係では、再学習又は追加学習後の識別器であってもよい。また、第2識別器6は、第1識別器5以外の他の識別器との関係では、再学習又は追加学習前の識別器であってもよい。
ここで、第1識別器5に対象画像データ121を入力することで第1識別器5から得られる第1出力値には、製品Rの良否を判定するための数値範囲が第1判定基準として設定されている。また、第2識別器6に対象画像データ121を入力することで第2識別器6から得られる第2出力値には、製品Rの良否を判定するための数値範囲が第2判定基準として設定されている。そして、第2判定基準の数値範囲は、第1判定基準の数値範囲よりも狭く設定されている。
本実施形態では、第2判定基準の数値範囲は、第2識別器6の出力に対して、製品Rは良品である(すなわち、欠陥がない)と判定する数値範囲、及び製品Rには欠陥がある(つまり、製品Rが不良品(欠陥品)である)と判定する数値範囲により構成される。また、第1判定基準の数値範囲は、第1識別器5の出力に対して、製品Rは良品であると判定する数値範囲、及び製品Rには欠陥があると判定する数値範囲により構成される。本実施形態では、第2判定基準の数値範囲は、例えば、第2識別器6を利用した判定が第1識別器5を利用した判定よりも厳しくなるように、第1判定基準の数値範囲よりも狭く設定される。
これにより、検査装置1は、第2識別器6に対象画像データ121を入力することで、第2識別器6から第2出力値を取得する。そして、取得した第2出力値が第2判定基準の数値範囲に含まれている場合には、検査装置1は、第2識別器6による良否の判定を採用する、すなわち、第2出力値に基づいて、製品Rの良否を判定する。一方、取得した第2出力値が第2判定基準の数値範囲に含まれていない場合には、検査装置1は、第2識別器6による良否の判定を採用せず、第1識別器5に対象画像データ121を入力することで、第1識別器5から第1出力値を取得する。そして、検査装置1は、第1識別器5から取得した第1出力値に基づいて、製品Rの良否を判定する。製品Rの良否を判定した後、検査装置1は、その結果を出力する。
一方、本実施形態に係る学習装置2は、検査装置1で利用する第1識別器5及び第2識別器6を構築するコンピュータである。具体的には、学習装置2は、製品の良否を学習するための画像データ222で構成された第1学習データ221を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。また、学習装置2は、第1学習データ221及び製品の良否を学習するための追加の画像データ227で構成された第2学習データ226を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。
これにより、学習装置2は、検査装置1で利用する第1識別器5及び第2識別器6を構築することができる。検査装置1は、例えば、ネットワークを介して、学習装置2により構築された学習済みの第1識別器5及び第2識別器6を取得することができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
以上のとおり、本実施形態に係る検査装置1では、第2識別器6による判定結果を採用するか否かを定める第2判定基準の数値範囲が、第1判定基準の数値範囲よりも狭く設定されている。これにより、第2識別器6を利用した良否の判定が第1識別器5を利用した良否の判定よりも厳しく行われる。すなわち、本実施形態に係る検査装置1は、第2識別器6の第2出力値が良否の識別結果を明確に示している場合には、第2識別器6により製品Rの良否を判定し、そうでない場合には、第2識別器6による判定結果を採用せずに第1識別器5により製品Rの良否を判定する。
これにより、過学習による識別性能の悪化が生じ得る閾値の境界付近の範囲において、第2識別器6を利用せずに第1識別器5を利用することで、再学習又は追加学習前の判定結果を保証し、再学習又は追加学習による判定結果の変動を抑制することができる。したがって、本実施形態によれば、再学習又は追加学習により第2識別器6の識別性能が第1識別器5よりも悪化してしまった場合でも、良否判定の信頼性が損なわれてしまうのを防止することができる。
なお、外観検査の対象となる製品Rは、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。製品Rは、例えば、電子部品、自動車部品等の製造ラインで搬送される物であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等である。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等である。また、良否の判定は、製品Rに欠陥があるか否かを単に判定することであってもよいし、製品Rに欠陥がある否かを判定することに加えて、その欠陥の種類を識別することを含んでもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、埃、バリ、色ムラ等である。
§2 構成例
[ハードウェア構成]
<検査装置>
次に、図2を用いて、本実施形態に係る検査装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る検査装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る検査装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図2では、通信インタフェース及び外部インタフェースをそれぞれ「通信I/F」及び「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、検査プログラム81、第1学習結果データ224、第2学習結果データ229等の各種情報を記憶する。
検査プログラム81は、第1識別器5及び第2識別器6を利用して、対象画像データ121に写る製品Rの良否を判定する後述する情報処理(図7)を検査装置1に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。第1学習結果データ224は、学習済みの第1識別器5の設定を行うためのデータである。第2学習結果データ229は、学習済みの第2識別器6の設定を行うためのデータである。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。検査装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置2)と行うことができる。
外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、検査装置1は、外部インタフェース14を介して、カメラ31に接続される。
カメラ31は、製品Rを撮影することで、対象画像データ121を取得するのに利用される。カメラ31の種類及び配置場所は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。カメラ31には、例えば、デジタルカメラ、ビデオカメラ等の公知のカメラが利用されてよい。カメラ31は、製品Rが搬送される生産ラインの近傍に配置されてよい。なお、カメラ31が通信インタフェースを備える場合、検査装置1は、外部インタフェース14ではなく、通信インタフェース13を介して、カメラ31に接続されてもよい。
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置15及び出力装置16を利用することで、検査装置1を操作することができる。
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ17の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記検査プログラム81、第1学習結果データ224、及び第2学習結果データ229の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が、記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。検査装置1は、この記憶媒体91から、上記検査プログラム81、第1学習結果データ224、及び第2学習結果データ229の少なくともいずれかを取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、検査装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。検査装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、検査装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のデスクトップPC(Personal Computer)、ノートPC、タブレットPC、スマートフォンを含む携帯電話等であってもよい。
<学習装置>
次に、図3を用いて、本実施形態に係る学習装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係る学習装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係る学習装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。なお、図3では、図2と同様に、通信インタフェースを「通信I/F」と記載している。
学習装置2の制御部21〜ドライブ26はそれぞれ、上記検査装置1の制御部11〜通信インタフェース13及び入力装置15〜ドライブ17それぞれと同様に構成されてよい。すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部22は、学習プログラム82、製品の良否を学習するための画像データ222、製品の良否を学習するための追加の画像データ227、第1学習結果データ224、第2学習結果データ229等の各種情報を記憶する。
学習プログラム82は、第1識別器5及び第2識別器6それぞれを構築する後述の機械学習の情報処理(図8)を学習装置2に実行させ、その結果として第1学習結果データ224及び第2学習結果データ229を生成させるためのプログラムである。学習プログラム82は、その情報処理の一連の命令を含む。画像データ222は、第1識別器5の機械学習に利用される第1学習データ221を構成する。第1学習データ221及び追加の画像データ227は、第2識別器6の機械学習に利用される第2学習データ226を構成する。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、検査装置1)と行うことができる。
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を利用することで、学習装置2を操作することができる。
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記学習プログラム82、画像データ222、及び追加の画像データ227のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、学習装置2は、記憶媒体92から、上記学習プログラム82、画像データ222、及び追加の画像データ227のうちの少なくともいずれかを取得してもよい。
なお、学習装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、出力装置25及びドライブ26の少なくともいずれかは省略されてもよい。学習装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
[ソフトウェア構成]
<検査装置>
次に、図4を用いて、本実施形態に係る検査装置1のソフトウェア構成の一例について説明する。図4は、本実施形態に係る検査装置1のソフトウェア構成の一例を模式的に例示する。
検査装置1の制御部11は、記憶部12に記憶された検査プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された検査プログラム81をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図4に示されるとおり、本実施形態に係る検査装置1は、データ取得部111、判定部112、及び出力部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、検査の対象となる製品Rの写る対象画像データ121を取得する。本実施形態では、データ取得部111は、カメラ31により製品Rを撮影することで、対象画像データ121を取得する。判定部112は、第1識別器5及び第2識別器6を含んでいる。判定部112は、第1識別器5及び第2識別器6を利用して、取得した対象画像データ121に写る製品Rの良否を判定する。出力部113は、製品Rの良否を判定した結果を出力する。
ここで、図5を更に用いて、第1識別器5及び第2識別器6それぞれに設定される判定基準について説明する。図5は、本実施形態に係る各識別器(5、6)に設定される各判定基準を模式的に例示する。本実施形態では、第1識別器5に対象画像データ121を入力することで第1識別器5から得られる第1出力値に対して、製品Rの良否を判定するための数値範囲が第1判定基準として設定される。また、第2識別器6に対象画像データ121を入力することで第2識別器6から得られる第2出力値に対して、製品Rの良否を判定するための数値範囲が第2判定基準として設定される。第2識別器6による良否の判定の結果を採用しない範囲を設けるため、第2判定基準の数値範囲は、第1判定基準の数値範囲よりも狭く設定される。
本実施形態に係る判定部112は、対象画像データ121を第2識別器6に入力することで、製品Rの良否を判定した結果に対応する第2出力値を第2識別器6から取得する。そして、取得した第2出力値が第2判定基準の数値範囲に含まれている場合には、判定部112は、第2識別器6による良否の判定を採用する、すなわち、第2出力値に基づいて、製品Rの良否を判定する。一方、取得した第2出力値が第2判定基準の数値範囲に含まれていない場合には、判定部112は、第2識別器6による良否の判定を採用せず、第1識別器5に対象画像データ121を入力することで、第1識別器5から第1出力値を取得する。そして、判定部112は、第1識別器5から取得した第1出力値に基づいて、製品Rの良否を判定する。
具体的に、図5で例示される本実施形態では、第1識別器5の第1出力値及び第2識別器6の第2出力値はそれぞれ、値が大きいほど製品Rに欠陥があることを示し、値が小さいほど製品Rは良品である(すなわち、欠陥がない)ことを示している。第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成される。一方、第2判定基準の数値範囲は、第2閾値以上の範囲、及び当該第2閾値よりも小さい第3閾値以下の範囲により構成される。
そこで、本実施形態では、判定部112は、対象画像データ121を第2識別器6に入力することで、製品Rの良否を判定した結果に対応する第2出力値を第2識別器6から取得する。次に、判定部112は、第2出力値と第2閾値とを比較する。そして、第2識別器6から取得した第2出力値が第2閾値より大きい場合には、判定部112は、第2判定基準の数値範囲に第2出力値が含まれるとして、製品Rには欠陥があると判定する。また、判定部112は、第2出力値と第3閾値とを比較する。そして、第2識別器6から取得した第2出力値が第3閾値よりも小さい場合には、第2判定基準の数値範囲に第2出力値が含まれるとして、判定部112は、製品Rは良品であると判定する。
一方、第2識別器6から取得した第2出力値が、第2閾値よりも小さく、第3閾値よりも大きい場合には、第2判定基準の数値範囲に第2出力値は含まれないとして、判定部112は、対象画像データ121を第1識別器5に入力することで、製品Rの良否を判定した結果である第1出力値を第1識別器5から取得する。次に、判定部112は、第1出力値と第1閾値とを比較する。そして、取得した第1出力値が第1閾値よりも大きい場合には、判定部112は、製品Rには欠陥があると判定する。他方、取得した第1出力値が第1閾値よりも小さい場合には、判定部112は、製品Rは良品であると判定する。
すなわち、本実施形態では、第2閾値以上の範囲及び第3閾値以下の範囲では、第2識別器6による良否の判定結果を採用し、第3閾値と第2閾値との間の範囲では、第2識別器6による良否の判定結果を採用しないようにする。これにより、判定部112は、第2識別器6を利用した良否の判定を、第1識別器5を利用した良否の判定よりも厳しく行う。つまり、判定部112は、第2識別器6の第2出力値が良否の識別結果を明確に示している場合には、第2識別器6を信頼して製品Rの良否を判定し、そうでない場合には、第2識別器6による判定結果を採用せずに第1識別器5により製品Rの良否を判定する。
なお、図5の例では、第1閾値は、第2閾値と第3閾値との間の値である。すなわち、第2閾値は、第1閾値よりも大きな値に設定され、第3閾値は、第1閾値よりも小さい値に設定されている。第1識別器5の機械学習に利用した画像データ222を第1識別器5に入力することで得られる第1出力値と画像データ222を第2識別器6に入力することで得られる第2出力値とがほぼ一致することが保証されている場合には、各閾値は、このような関係に設定されるのが好ましい。これにより、第2識別器6を利用した良否の判定の基準を、第1識別器5を利用した良否の判定の基準よりも厳しく設定することができる。ただし、各閾値の関係は、このような例に限定されなくてもよい。例えば、第1閾値は、第2閾値又は第3閾値と一致していてもよい。また、第1閾値は、第2閾値よりも大きくてもよいし、第3閾値よりも小さくてもよい。各閾値は、適宜決定されてよい。
(識別器)
次に、各識別器(5、6)の構成について説明する。図4に示されるとおり、第1識別器5は、ニューラルネットワークにより構成される。具体的には、第1識別器5は、いわゆる深層学習に用いられる多層構造のニューラルネットワークにより構成されており、入力層51、中間層(隠れ層)52、及び出力層53を備えている。
なお、図4の例では、第1識別器5を構成するニューラルネットワークは、1層の中間層52を備えており、入力層51の出力が中間層52に入力され、中間層52の出力が出力層53に入力されている。しかしながら、中間層52の数は、1層に限られなくてもよい。第1識別器5は、2層以上の中間層52を備えてもよい。
各層51〜53は、1又は複数のニューロンを備えている。例えば、入力層51のニューロンの数は、対象画像データ121に応じて設定されてよい。中間層52のニューロンの数は、実施の形態に応じて適宜設定されてよい。また、出力層53のニューロンの数は、良否の判定結果の出力形式に応じて設定されてよい。具体例として、入力層51のニューロンの数は、対象画像データ121の画素数に応じて設定されてよい。この場合、入力層51の各ニューロンには、対象画像データ121の対応する各画素の画素値が入力されてよい。
隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。図4の例では、各ニューロンは、隣接する層の全てのニューロンと結合されている。しかしながら、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。判定部112は、第1識別器5の入力層51に対象画像データ121を入力し、ニューラルネットワークの演算処理として、各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、判定部112は、入力した対象画像データ121に写る製品Rの良否を判定した結果に対応する第1出力値を出力層53から取得することができる。
また、図4に示されるとおり、第2識別器6も、第1識別器5と同様に、ニューラルネットワークにより構成されている。第2識別器6は、第1識別器5と同様に構成されてよい。すなわち、入力層61、中間層(隠れ層)62、及び出力層63は、第1識別器5の各層51〜53と同様に構成されてよい。ただし、第2識別器6のニューラルネットワークの構造は、第1識別器5と一致していなくてもよい。例えば、第2識別器6を構成するニューラルネットワークの層の数、各層におけるニューロンの個数、及びニューロン同士の結合関係は、第1識別器5を構成するニューラルネットワークと異なっていてもよい。
判定部112は、第2識別器6の入力層61に対象画像データ121を入力し、ニューラルネットワークの演算処理として、各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、判定部112は、入力した対象画像データ121に写る製品Rの良否を判定した結果に対応する第2出力値を出力層63から取得することができる。
なお、第1識別器5(ニューラルネットワーク)の構成(例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、第1学習結果データ224に含まれている。同様に、第2識別器6(ニューラルネットワーク)の構成(例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数)、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、第2学習結果データ229に含まれている。判定部112は、第1学習結果データ224を参照して第1識別器5の設定を行い、第2学習結果データ229を参照して第2識別器6の設定を行う。
<学習装置>
次に、図6を用いて、本実施形態に係る学習装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係る学習装置2のソフトウェア構成の一例を模式的に例示する。
学習装置2の制御部21は、記憶部22に記憶された学習プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された学習プログラム82をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係る学習装置2は、学習データ取得部211、及び学習処理部212をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部21(CPU)により実現される。
学習データ取得部211は、製品の良否を学習するための画像データ222で構成された第1学習データ221を取得する。学習処理部212は、取得した第1学習データ221を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。
また、学習データ取得部211は、第1学習データ221と、製品の良否を学習するための追加の画像データ227とで構成された第2学習データ226を取得する。学習処理部212は、取得した第2学習データ226を利用した機械学習を実施することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。すなわち、第2識別器6は、第1識別器5との関係で、再学習又は追加学習後の識別器である。
本実施形態では、各識別器(5、6)の学習モデルは、ニューラルネットワークにより構成されている。そのため、画像データ222には、画像データ222に写る製品の良否の判定に対する正解を示す正解データ223が付与されている。追加の画像データ227には、追加の画像データ227に写る製品の良否の判定に対する正解を示す正解データ228が付与されている。すなわち、第1学習データ221は、それぞれ画像データ222及び正解データ223の組み合わせを含む複数件のデータセットにより構成される。また、第2学習データ226は、それぞれ追加の画像データ227及び正解データ228の組み合わせを含む複数件のデータセット並びに第1学習データ221により構成される。
学習処理部212は、第1学習データ221に含まれる各件のデータセットについて、画像データ222を入力層51に入力すると、入力した画像データ222に関連付けられた正解データ223に対応する出力値を出力層53から出力するように第1識別器5の機械学習を行う。これにより、学習処理部212は、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。そして、学習処理部212は、学習済みの第1識別器5の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第1学習結果データ224として記憶部22に格納する。
また、学習処理部212は、第2学習データ226に含まれる各件のデータセットについて、画像データ(222、227)を入力層61に入力すると、入力した画像データ(222、227)に関連付けられた正解データ(223、228)に対応する出力値を出力層63から出力するように第2識別器6の機械学習を行う。これにより、学習処理部212は、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。そして、学習処理部212は、学習済みの第2識別器6の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第2学習結果データ229として記憶部22に格納する。
<その他>
検査装置1及び学習装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、検査装置1及び学習装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、検査装置1及び学習装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[検査装置]
次に、図7を用いて、本実施形態に係る検査装置1の動作例について説明する。図7は、本実施形態に係る検査装置1の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の検査方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、検査の対象となる製品Rの写る対象画像データ121を取得する。本実施形態では、検査装置1は、外部インタフェース14を介してカメラ31に接続されている。そのため、制御部11は、対象画像データ121をカメラ31から取得する。この対象画像データ121は、動画像データであってもよいし、静止画像データであってもよい。この対象画像データ121を取得すると、制御部11は、次のステップS102に処理を進める。
ただし、対象画像データ121を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、検査装置1とは異なる他の情報処理装置が、カメラ31に接続されていてもよい。この場合、検査装置1は、他の情報処理装置から対象画像データ121の送信を受け付けることで、対象画像データ121を取得してもよい。
(ステップS102〜S108)
ステップS102〜S108では、制御部11は、判定部112として動作し、第1識別器5及び第2識別器6を利用して、対象画像データ121に写る製品Rの良否を判定する。
上記のとおり、本実施形態では、第1識別器5に対象画像データ121を入力することで第1識別器5から得られる第1出力値に対して、製品Rの良否を判定するための数値範囲が第1判定基準として設定されている。また、第2識別器6に対象画像データ121を入力することで第2識別器6から得られる第2出力値に対して、製品Rの良否を判定するための数値範囲が第2判定基準として設定されている。第2識別器6による良否の判定の結果を採用しない範囲を設けるため、第2判定基準の数値範囲は、第1判定基準の数値範囲よりも狭く設定されている。
具体的には、第1識別器5の第1出力値及び第2識別器6の第2出力値はそれぞれ、値が大きいほど製品Rに欠陥があることを示し、値が小さいほど製品Rは良品である(すなわち、欠陥がない)ことを示している。第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されている。一方、第2判定基準の数値範囲は、第2閾値以上の範囲、及び当該第2閾値よりも小さい第3閾値以下の範囲により構成されている。
(A)ステップS102
そこで、ステップS102では、制御部11は、取得した対象画像データ121を第2識別器6に入力して、当該第2識別器6の演算処理を実行する。これにより、制御部11は、対象画像データ121に写る製品Rの良否を判定した結果に対応する第2出力値を第2識別器6から取得する。
詳細には、制御部11は、第2学習結果データ229を参照して、学習済みの第2識別器6の設定を行う。続いて、制御部11は、対象画像データ121を第2識別器6の入力層61に入力し、入力側から順に各層61〜63に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、第2識別器6の出力層63から第2出力値を取得する。第2出力値を取得すると、制御部11は、次のステップS103に処理を進める。
(B)ステップS103及びS104
ステップS103では、制御部11は、第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定する。第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS104に処理を進めて、製品Rには欠陥があると判定する。
この良否の判定は、上記のとおり、製品Rに欠陥があるか否かを単に判定することであってもよいし、製品Rに欠陥がある否かを判定することに加えて、その欠陥の種類を識別することを含んでもよい。欠陥は、例えば、傷、汚れ、クラック、打痕、埃、バリ、色ムラ等である。欠陥の種類を識別する方法は、実施の形態に応じて適宜決定されてよい。例えば、第2識別器6は、それぞれ欠陥の種類に対応する複数の第2出力値を出力するように構成されてよい。この場合、複数の第2出力値のうちから第2閾値よりも大きい第2出力値を特定することで、制御部11は、製品Rに存在する欠陥の種類を識別することができる。なお、各第2閾値(各第3閾値)は、各第2出力値に応じて適宜設定されてよい。また、各第2閾値(各第3閾値)は、他の第2閾値(他の第3閾値)と一致していてもよいし、他の第2閾値(他の第3閾値)と異なっていてもよい。後述するステップS106及びS108における良否の判定についても同様である。製品Rには欠陥があると判定した後、制御部11は、次のステップS109に処理を進める。
一方、第2識別器6から取得した第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、次のステップS105に処理を進める。なお、第2出力値と第2閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。すなわち、第2出力値と第2閾値とが等しいケースは、第2出力値が第2閾値よりも大きいケース及び第2出力値が第2閾値よりも小さいケースのいずれに含まれてもよい。
(C)ステップS105及びS106
ステップS105では、制御部11は、第2出力値と第3閾値とを比較することで、第2出力値が第3閾値よりも小さいか否かを判定する。第2出力値が第3閾値よりも小さいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS106に処理を進めて、製品Rは良品であると判定する。製品Rは良品であると判定した後、制御部11は、次のステップS109に処理を進める。
一方、第2識別器6から取得した第2出力値が第3閾値よりも大きいと判定した場合には、制御部11は、次のステップS107に処理を進める。なお、上記ステップS103と同様に、第2出力値と第3閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。すなわち、第2出力値と第3閾値とが等しいケースは、第2出力値が第3閾値よりも小さいケース及び第2出力値が第3閾値よりも大きいケースのいずれに含まれてもよい。
(D)ステップS107及びS108
第2識別器6から取得した第2出力値が、第2閾値よりも小さく、第3閾値よりも大きいと判定した場合に、制御部11は、第2判定基準の数値範囲に第2出力値は含まれないとして、ステップS107及びS108の処理を実行する。
ステップS107では、制御部11は、取得した対象画像データ121を第1識別器5に入力して、当該第1識別器5の演算処理を実行する。これにより、制御部11は、対象画像データ121に写る製品Rの良否を判定した結果に対応する第1出力値を第1識別器5から取得する。
詳細には、制御部11は、第1学習結果データ224を参照して、学習済みの第1識別器5の設定を行う。続いて、制御部11は、対象画像データ121を第1識別器5の入力層51に入力し、入力側から順に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、制御部11は、第1識別器5の出力層53から第1出力値を取得する。第1出力値を取得すると、制御部11は、次のステップS108に処理を進める。
ステップS108では、制御部11は、第1出力値と第1閾値とを比較することで、取得した第1出力値が第1閾値よりも大きいか否かを判定する。取得した第1出力値が第1閾値よりも大きいと判定した場合には、制御部11は、製品Rには欠陥があると判定する。他方、取得した第1出力値が第1閾値よりも小さいと判定した場合には、制御部11は、製品Rは良品であると判定する。これらにより、製品Rの良否を判定した後、制御部11は、次のステップS109に処理を進める。
なお、第1出力値と第1閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。すなわち、第1出力値と第1閾値とが等しいケースは、第1出力値が第1閾値よりも大きいケース及び第1出力値が第1閾値よりも小さいケースのいずれに含まれてもよい。
また、上記のとおり、この良否の判定も、ステップS104及びS106と同様に、製品Rに欠陥があるか否かを単に判定することであってもよいし、製品Rに欠陥がある否かを判定することに加えて、その欠陥の種類を識別することを含んでもよい。欠陥の種類を識別する方法は、実施の形態に応じて適宜決定されてよい。例えば、第1識別器5は、第2識別器6と同様に、それぞれ欠陥の種類に対応する複数の第1出力値を出力するように構成されてよい。この場合、複数の第1出力値のうちから第1閾値よりも大きい第1出力値を特定することで、制御部11は、製品Rに存在する欠陥の種類を識別することができる。なお、各第1閾値は、各第1出力値に応じて適宜設定されてよい。また、各第1閾値は、他の第1閾値と一致していてもよいし、他の第1閾値と異なっていてもよい。
以上により、制御部11は、対象画像データ121を第2識別器6に入力することで、製品Rの良否を判定した結果に対応する第2出力値を第2識別器6から取得する(ステップS102)。そして、取得した第2出力値が第2判定基準の数値範囲に含まれている場合には、制御部11は、第2識別器6による良否の判定を採用する、すなわち、第2出力値に基づいて、製品Rの良否を判定する(ステップS103〜S106)。一方、取得した第2出力値が第2判定基準の数値範囲に含まれていない場合には、制御部11は、第2識別器6による良否の判定を採用せず、第1識別器5に対象画像データ121を入力することで、第1識別器5から第1出力値を取得する(ステップS107)。そして、制御部11は、第1識別器5から取得した第1出力値に基づいて、製品Rの良否を判定する(ステップS108)。
(ステップS109)
ステップS109では、制御部11は、出力部113として動作し、製品Rの良否を判定した結果を出力する。
製品Rの良否を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、製品Rの良否を判定した結果をそのまま出力装置16に出力してもよい。また、例えば、ステップS104又はS108において、製品Rに欠陥があると判定した場合、制御部11は、欠陥を発見したことを知らせるための警告を本ステップS109の出力処理として行ってもよい。警告の送信先は、出力装置16であってもよいし、管理者の携帯端末等の他の情報処理装置であってもよい。また、例えば、製品Rの搬送を行う製造ラインに検査装置1が接続されている場合、製品Rに欠陥があると判定したときに、制御部11は、欠陥のある製品Rを欠陥のない製品とは異なる経路で搬送する指令を製造ラインに送信する処理を本ステップS109の出力処理として行ってもよい。
製品Rの良否を判定した結果の出力処理が完了すると、制御部11は、本動作例に係る処理を終了する。なお、制御部11は、製造ライン上を搬送される製品Rがカメラ31の撮影範囲に入る度に、ステップS101〜S109の一連の処理を実行してもよい。これにより、検査装置1は、製造ライン上を搬送される製品Rの外観検査を行うことができる。
[学習装置]
次に、図8を用いて、本実施形態に係る学習装置2の動作例について説明する。図8は、本実施形態に係る学習装置2の処理手順の一例を例示するフローチャートである。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。なお、学習装置2は、利用する学習データが異なる点を除き、同様の処理手順により、第1識別器5及び第2識別器6を構築することができる。以下では、まず、第1識別器5を構築する際の処理手順について説明する。
(I)第1識別器の構築
(ステップS201)
ステップS201では、制御部21は、学習データ取得部211として動作し、製品の良否を学習するための画像データ222で構成された第1学習データ221を取得する。本実施形態では、第1識別器5の学習モデルがニューラルネットワークにより構成されているため、制御部21は、それぞれ画像データ222及び正解データ223の組み合わせを含む複数件のデータセットにより構成された第1学習データ221を取得する。
第1学習データ221を取得する方法は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、カメラを用意し、検査対象となる製品Rと同種の製品であって、欠陥のある製品(不良品)及び欠陥のない製品(良品)それぞれを、用意したカメラにより様々な条件で撮影することで、良否の表れた製品の写る画像データ222を取得することができる。そして、得られた画像データ222に対して、その画像データ222に写る製品に表れた良否(正解)を示す正解データ223を組み合わせることで、学習用のデータセットを作成することができる。正解データ223の具体的な内容は、値が大きいほど製品に欠陥があることを示し、値が小さいほど製品は良品である(すなわち、欠陥がない)ことを示すように適宜決定されてよい。この学習用のデータセットの作成を繰り返すことで、複数件のデータセットで構成された第1学習データ221を作成することができる。
この第1学習データ221の作成は、学習装置2により行われてもよい。この場合、制御部21は、オペレータによる入力装置24の操作に応じて、第1学習データ221を作成してもよい。また、制御部21は、学習プログラム82の処理により、第1学習データ221を自動的に作成してもよい。この作成処理を実行することで、本ステップS201では、制御部21は、第1学習データ221を取得することができる。
あるいは、第1学習データ221の作成は、学習装置2以外の他の情報処理装置により行われてもよい。他の情報処理装置では、第1学習データ221は、オペレータにより手動で作成されてもよいし、プログラムの処理により自動的に作成されてもよい。この場合、本ステップS201では、制御部21は、ネットワーク、記憶媒体92等を介して、他の情報処理装置により作成された第1学習データ221を取得してもよい。
第1学習データ221を構成するデータセットの件数は、特に限定されなくてもよく、例えば、第1識別器5の機械学習を実施可能な程度に適宜決定されてよい。これにより、第1学習データ221を取得すると、制御部21は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部21は、学習処理部212として動作し、ステップS201で取得した第1学習データ221を利用した機械学習を実行することで、製品の良否を判定する能力を習得した学習済みの第1識別器5を構築する。本実施形態では、制御部21は、第1学習データ221を構成する各件のデータセットを用いて、画像データ222を入力層51に入力すると、正解データ223に対応する出力値を出力層53から出力するようにニューラルネットワークの機械学習を実施する。
具体的には、まず、制御部21は、学習処理を行う対象となるニューラルネットワーク(学習前の第1識別器5)を用意する。用意するニューラルネットワークの構成、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値等の各パラメータは、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。他の識別器の再学習又は追加学習を行うことで第1識別器5を構成する場合、制御部21は、他の識別器の学習結果データに基づいて、学習前のニューラルネットワークを用意してもよい。
次に、制御部21は、ステップS201で取得した第1学習データ221の各件のデータセットに含まれる画像データ222を入力データとして用い、正解データ223を教師データとして用いて、ニューラルネットワークの学習処理を実行する。このニューラルネットワークの学習処理には、確率的勾配降下法等が用いられてよい。
例えば、制御部21は、画像データ222を入力層51に入力し、入力側から順に各層51〜53に含まれる各ニューロンの発火判定を行う。これにより、制御部21は、出力層53から出力値を得る。次に、制御部21は、出力層53から得た出力値と正解データ223により示される正解に対応する値との誤差を算出する。続いて、制御部21は、誤差逆伝搬(Back propagation)法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部21は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
第1学習データ221を構成する各件のデータセットについて、画像データ222を入力層51に入力することにより出力層53から得られる出力値が、入力した画像データ222に関連付けられた正解データ223により示される正解に対応する値と一致するまで、制御部21は、この一連の処理を繰り返す。これにより、制御部21は、画像データ222を入力すると、正解データ223により示される正解に対応する出力値を出力する学習済みのニューラルネットワーク(すなわち、第1識別器5)を構築することができる。第1識別器5の学習処理が完了すると、制御部21は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部21は、学習処理部212として動作し、機械学習により構築された第1識別器5の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第1学習結果データ224として記憶部22に格納する。これにより、制御部21は、本動作例に係る処理を終了する。
(II)第2識別器の構築
次に、第2識別器6を構築する際の処理手順について説明する。学習装置2は、利用する学習データが第1識別器5と異なる点を除き、第1識別器5と同様に第2識別器6を構築することができる。
(ステップS201)
すなわち、ステップS201では、制御部21は、学習データ取得部211として動作し、第1学習データ221及び製品の良否を学習するための追加の画像データ227で構成された第2学習データ226を取得する。本実施形態では、第2識別器6の学習モデルがニューラルネットワークにより構成されているため、制御部21は、それぞれ追加の画像データ227及び正解データ228の組み合わせを含む複数件のデータセット並びに第1学習データ221により構成された第2学習データ226を取得する。
第2学習データ226の追加の画像データ227及び正解データ228は、上記第1学習データ221と同様の方法により取得されてよい。制御部21は、上記データセットの作成処理を実行することで、第2学習データ226を取得することができる。あるいは、第2学習データ226が他の情報処理装置により作成される場合、制御部21は、ネットワーク、記憶媒体92等を介して、他の情報処理装置により作成された第2学習データ226を取得することができる。第2学習データ226を取得すると、制御部21は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部21は、学習処理部212として動作し、ステップS202で取得した第2学習データ226を利用した機械学習を実行することで、製品の良否を判定する能力を習得した学習済みの第2識別器6を構築する。制御部21は、第2学習データ226を構成する各件のデータセットを用いて、画像データ(222、227)を入力層61に入力すると、正解データ(223、228)に対応する出力値を出力層63から出力するようにニューラルネットワークの機械学習を実施する。
このとき、用意するニューラルネットワーク(学習前の第2識別器6)の構成、各ニューロン間の結合の重みの初期値、各ニューロンの閾値の初期値等の各パラメータは、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、第1識別器5の再学習又は追加学習を行う場合、制御部21は、第1学習結果データ224に基づいて、学習前のニューラルネットワークを用意してもよい。
次に、制御部21は、ステップS201で取得した第2学習データ226の各件のデータセットに含まれる画像データ(222、227)を入力データとして用い、正解データ(223、228)を教師データとして用いて、ニューラルネットワークの上記学習処理を実行する。なお、第1学習結果データ224に基づいて用意した学習前のニューラルネットワークに対して追加学習のみを行う場合、制御部21は、第1学習データ221(画像データ222及び正解データ223)の機械学習を省略してもよい。これにより、制御部21は、画像データ(222、227)を入力すると、入力した画像データ(222、227)に関連付けられた正解データ(223、228)により示される正解に対応する出力値を出力する学習済みのニューラルネットワーク(すなわち、第2識別器6)を構築することができる。第2識別器6の学習処理が完了すると、制御部21は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部21は、学習処理部212として動作し、機械学習により構築された第2識別器6の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を第2学習結果データ229として記憶部22に格納する。これにより、制御部21は、本動作例に係る処理を終了する。
(III)その他
なお、制御部21は、上記ステップS203の処理が完了した後、作成した第1学習結果データ224及び第2学習結果データ229を検査装置1に転送してもよい。また、例えば、制御部21は、作成した第1学習結果データ224及び第2学習結果データ229をNAS(Network Attached Storage)等のデータサーバに保管してもよい。この場合、検査装置1は、第1学習結果データ224及び第2学習結果データ229をこのデータサーバから取得してもよい。また、第1学習結果データ224及び第2学習結果データ229は、検査装置1に予め組み込まれていてもよい。
[特徴]
以上のとおり、本実施形態に係る学習装置2は、ステップS201〜S203の一連の処理により、第1学習データ221を利用した機械学習を実行することで、第1識別器5を構築する。これに対して、学習装置2は、第1学習データ221及び追加の画像データ227により構成される第2学習データ226を利用した機械学習を実行することで、第2識別器6を構築する。この第2識別器6の構築の過程で、第1学習データ221には含まれていない未知のケースを追加の画像データ227として用意することで、学習装置2は、製品Rの良否の判定が第1識別器5では不能なケースに対して対応可能な第2識別器6を構築することができる。これにより、検査装置1では、第1識別器5では良否の判定が不能なケースについて、第2識別器6を利用することで、製品Rの良否を判定することができるようになる。
加えて、本実施形態に係る検査装置1では、第2識別器6による判定結果を採用するか否かを定める第2判定基準の数値範囲が、第1判定基準の数値範囲よりも狭く設定されている。これによって、本実施形態に係る検査装置1は、第2識別器6から得られる第2出力値が良否の識別結果を明確に示している場合には、ステップS104及びS106により、第2出力値に基づいて製品Rの良否を判定することができる。一方、そうでない場合には、検査装置1は、第2識別器による判定結果を採用せずに、ステップS107及びS108により、第1識別器5から得られる第1出力値に基づいて製品Rの良否を判定することができる。
これにより、過学習による識別性能の悪化が生じ得る閾値の境界付近の範囲において、再学習又は追加学習前の判定結果を保証し、再学習又は追加学習による判定結果の変動を抑制することができる。特に、本実施形態では、第2閾値を第1閾値よりも大きな値に設定し、第3閾値を第1閾値よりも小さな値に設定することで、過学習による識別性能の悪化が生じ得る閾値の境界付近の範囲において、再学習又は追加学習前の判定結果を適切に保証することができる。したがって、本実施形態によれば、再学習又は追加学習により第2識別器6の識別性能が第1識別器5よりも悪化してしまった場合でも、良否判定の信頼性が損なわれてしまうのを防止することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態では、各識別器(5、6)は、多層構造の全結合ニューラルネットワークにより構成されている。しかしながら、各識別器(5、6)の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各識別器(5、6)は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。
<4.2>
上記実施形態では、各識別器(5、6)の学習モデルとして、ニューラルネットワークを採用している。しかしながら、各識別器(5、6)の学習モデルは、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各識別器(5、6)の学習モデルとして、例えば、サポートベクタマシン、自己組織化マップ、強化学習により機械学習を行う学習モデル等が採用されてよい。なお、機械学習として教師あり学習を採用しない場合には、各学習データ(221、226)において、各正解データ(223、228)は省略されてもよい。
<4.3>
上記実施形態では、各学習結果データ(224、229)は、ニューラルネットワークの構成を示す情報を含んでいる。しかしながら、各学習結果データ(224、229)の構成は、このような例に限定されなくてもよく、学習済みの各識別器(5、6)の設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合には、各学習結果データ(224、229)は、ニューラルネットワークの構成を示す情報を含んでいなくてもよい。
<4.4>
上記実施形態ではステップS103及びS105により、第2識別器6による判定結果を採用しないと判定した場合に限り、制御部11は、ステップS107により、第1識別器5の演算処理を実行して、第1識別器5による良否の判定結果に対応する第1出力値を取得している。しかしながら、検査装置1の処理手順は、このような例に限定されなくてもよい。制御部11は、第2識別器6による判定結果を採用するか否かに関わらず、第1識別器5の演算処理を実行して、第1識別器5による良否の判定結果に対応する第1出力値を取得してもよい。
<4.5>
上記実施形態では、第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ、値が大きいほど製品Rに欠陥があることを示し、値が小さいほど製品Rは良品であることを示している。しかしながら、第1出力値及び第2出力値と製品Rの良否との対応関係は、このような例に限定されなくてもよい。
例えば、第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ、値が大きいほど製品Rは良品であることを示し、値が小さいほど製品Rには欠陥があることを示すように設定されてよい。この場合、上記実施形態と同様に、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されてよく、第2判定基準の数値範囲は、第2閾値以上の範囲、及び当該第2閾値よりも小さい第3閾値以下の範囲により構成されてよい。
検査装置1の制御部11は、ステップS103において、第2識別器6から取得した第2出力値が第2閾値よりも大きいと判定した場合に、第2出力値が第2判定基準の数値範囲に含まれるとして、ステップS104において、製品Rは良品であると判定してもよい。また、制御部11は、ステップS105において、第2識別器6から取得した第2出力値が第3閾値よりも小さいと判定した場合に、第2出力値が第2判定基準の数値範囲に含まれるとして、ステップS106において、製品Rには欠陥があると判定してもよい。
一方、第2識別器6から取得した第2出力値が、第2閾値よりも小さく、第3閾値よりも大きいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれないとして、上記ステップS107の処理を実行し、第1識別器5から第1出力値を取得してもよい。そして、制御部11は、ステップS108において、第1出力値と第1閾値とを比較することで、第1出力値が第1閾値よりも大きいか否かを判定してもよい。取得した第1出力値が第1閾値よりも大きいと判定した場合に、制御部11は、製品Rは良品であると判定してもよい。他方、取得した第1出力値が第1閾値よりも小さいと判定した場合には、制御部11は、製品Rには欠陥があると判定してもよい。
<4.6>
上記実施形態及び<4.5>の変形例では、第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ、値の大小に応じて欠陥の有無を表している。しかしながら、第1出力値及び第2出力値の形式は、このような例に限定されなくてもよい。
例えば、図9に例示されるとおり、第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ、製品Rに欠陥がある確率(欠陥率)又は製品Rが良品である確率(良品率)を示してもよい。図9は、各識別器(5、6)の判定基準のその他の例を例示する。図9の例では、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されている。これに対して、第2判定基準の数値範囲は、第2閾値以上の範囲により構成されている。
なお、図9の例では、第2閾値は、第1閾値よりも大きな値に設定されている。第1識別器5の機械学習に利用した画像データ222を第1識別器5に入力することで得られる第1出力値と画像データ222を第2識別器6に入力することで得られる第2出力値とがほぼ一致することが保証されている場合には、各閾値は、このような関係に設定されるのが好ましい。ただし、各閾値の関係は、このような例に限定されなくてもよい。例えば、第1閾値と第2閾値とは一致していてもよいし、第2閾値は、第1閾値よりも小さくてもよい。各閾値は、適宜決定されてよい。
第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ製品Rに欠陥がある確率を示している場合、制御部11は、上記ステップS103〜S106の処理に代えて、次のように製品Rの良否を判定する。すなわち、制御部11は、第2識別器6から取得した第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定する。第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれるとして、製品Rには欠陥があると判定し、次のステップS109に処理を進める。
一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれないとして、ステップS107に処理を進める。ステップS107では、制御部11は、上記のとおり、対象画像データ121を第1識別器5に入力することで、第1識別器5から第1出力値を取得する。そして、ステップS108では、制御部11は、取得した第1出力値と第1閾値とを比較し、取得した第1出力値が第1閾値よりも大きいか否かを判定する。第1出力値が第1閾値よりも大きいと判定した場合、制御部11は、製品Rには欠陥があると判定する。他方、第1出力値が第1閾値よりも小さいと判定した場合、制御部11は、製品Rは良品であると判定してもよいし、製品Rの良否は不明であると判定してもよい。これにより、製品Rの良否の判定が完了すると、制御部11は、次のステップS109に処理を進める。
なお、第2出力値と第2閾値とが等しいケース及び第1出力値と第1閾値とが等しいケースの取り扱いはそれぞれ、実施の形態に応じて適宜決定されてよい。すなわち、第2出力値と第2閾値とが等しいケースは、第2出力値が第2閾値よりも大きいケース及び第2出力値が第2閾値よりも小さいケースのいずれに含まれてもよい。また、第1出力値と第1閾値とが等しいケースは、第1出力値が第1閾値よりも大きいケース及び第1出力値が第1閾値よりも小さいケースのいずれに含まれてもよい。
また、第1識別器5から得られる第1出力値及び第2識別器6から得られる第2出力値はそれぞれ製品Rが良品である確率を示している場合も、制御部11は、上記と同様に、製品Rの良否を判定することができる。すなわち、第2識別器6から取得した第2出力値が第2閾値よりも大きいと判定した場合に、制御部11は、第2出力値が第2判定基準の数値範囲に含まれるとして、製品Rは良品であると判定する。一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれないとして、対象画像データ121を第1識別器5に入力することで、第1識別器5から第1出力値を取得する。そして、取得した第1出力値が第1閾値よりも大きいと判定した場合には、制御部11は、製品Rは良品であると判定する。他方、取得した第1出力値が第1閾値よりも小さいと判定した場合には、制御部11は、製品Rには欠陥があると判定してもよいし、製品Rの良否は不明であると判定してもよい。
なお、各識別器(5、6)は、複数の出力値を出力するように構成されてもよい。この場合、各識別器(5、6)から出力される複数の出力値のうち、製品Rが良品である確率をいずれかの出力値が示し、製品Rに欠陥がある(又は、製品Rに特定の欠陥がある)確率をその他の出力値が示してもよい。この場合も、上記と同様に、制御部11は、各識別器(5、6)の各出力値に基づいて、製品Rの良否を判定することができる。
<4.7>
上記実施形態では、製品Rの外観検査を行う場面に本発明を適用した例を示している。しかしながら、本発明の適用範囲は、このような外観検査の場面に限られなくてもよい。本発明は、画像データから何らかの特徴、すなわち、被写体の状態を判定する場面に広く適用可能である。
図10及び図11は、本変形例に係る画像識別装置1Aのハードウェア構成及びソフトウェア構成の一例を模式的に例示する。処理対象となるデータが、製品の写る画像データから何らかの被写体の写る画像データに置き換わる点を除き、本変形例に係る画像識別装置1Aは、上記検査装置1と同様に構成されてよい。すなわち、図10及び図11に示されるとおり、画像識別装置1Aのハードウェア構成及びソフトウェア構成はそれぞれ、上記検査装置1のハードウェア構成及びソフトウェア構成それぞれと同じであってよい。
本変形例において、被写体、及び識別の対象となる被写体の状態はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。被写体は、例えば、対象者の顔、対象者の身体、作業対象のワーク等であってもよい。また、被写体が対象者の顔である場合、識別の対象となる状態は、例えば、表情の種別、顔のパーツの状態、その顔を所有する個人等であってもよい。顔を所有する個人の識別は、顔認証を実施するために行われてよい。被写体が対象者の身体である場合には、識別の対象となる状態は、例えば、身体のポーズ等であってもよい。被写体が作業対象のワークである場合、識別の対象となる状態は、例えば、ワークの位置、姿勢等であってもよい。
具体的に、図10に示されるとおり、画像識別装置1Aの記憶部12は、画像識別プログラム81A、第1学習結果データ224A、第2学習結果データ229A等の各種情報を記憶する。画像識別プログラム81Aは、上記検査装置1と同様の処理手順により、被写体の状態を判定する情報処理を画像識別装置1Aに実行させるためのプログラムであり、当該情報処理の一連の命令を含む。第1学習結果データ224Aは、学習済みの第1識別器5Aの設定を行うためのデータである。第2学習結果データ229Aは、学習済みの第2識別器6Aの設定を行うためのデータである。
第1識別器5Aは、被写体の状態を識別する学習を行うための画像データで構成された第1学習データを利用した機械学習により構築される。第2識別器6Aは、被写体の状態を識別する学習を行うための追加の画像データ及び第1学習データで構成された第2学習データを利用した機械学習により構築される。各識別器(5A、6A)は、対象の画像データに写る被写体の状態を識別する能力を習得するように構築される。各識別器(5A、6A)の機械学習は、上記学習装置2により、上記実施形態と同様に実行されてよい。被写体が対象者の顔である場合、第1識別器5Aは、例えば、顔の写る画像データ及び画像データに写る顔の状態の識別に対する正解を示す正解データで構成された第1学習データを利用した機械学習により構築される。また、第2識別器6Aは、例えば、顔の写る追加の画像データ及び追加の画像データに写る顔の状態の識別に対する正解を示す正解データ並びに第1学習データで構成された第2学習データを利用した機械学習により構築される。
なお、画像識別装置1Aは、上記実施形態と同様に、外部インタフェース14を介してカメラ31に接続されている。カメラ31は、状態を判定する対象となる被写体を撮影可能な場所に適宜配置される。例えば、被写体が対象者の顔又は身体である場合、カメラ31は、被写体となる対象者の存在し得る場所に配置されてよい。また、例えば、被写体が作業対象のワークである場合、カメラ31は、ワークの存在し得る場所に向けて配置されてよい。
また、図11に示されるとおり、画像識別装置1Aは、制御部11により画像識別プログラム81Aを実行することで、データ取得部111、判定部112、及び出力部113をソフトウェアモジュールとして備えるコンピュータとして動作する。データ取得部111は、状態を識別する対象となる被写体の写る対象画像データ121Aを取得する。判定部112は、第1識別器5A及び第2識別器6Aを含んでおり、第1識別器5A及び第2識別器6Aを利用して、取得した対象画像データ121Aに写る被写体の状態を判定する。出力部113は、被写体の状態を判定した結果を出力する。
上記実施形態と同様に、本変形例においても、第1識別器5Aに対象画像データ121Aを入力することで当該第1識別器5Aから得られる第1出力値には、被写体の状態を判定するための数値範囲が第1判定基準として設定される。また、第2識別器6Aに対象画像データ121Aを入力することで第2識別器6Aから得られる第2出力値には、被写体の状態を判定するための数値範囲が第2判定基準として設定される。そして、第2判定基準の数値範囲は、第1判定基準の数値範囲よりも狭く設定される。
そこで、判定部112は、第2識別器6Aに対象画像データ121Aを入力することで、第2識別器6Aから第2出力値を取得する。取得した第2出力値が第2判定基準の数値範囲に含まれる場合には、判定部112は、第2出力値に基づいて、被写体の状態を判定する。一方、取得した第2出力値が第2判定基準の数値範囲に含まれない場合には、判定部112は、第1識別器5Aに対象画像データ121Aを入力することで、第1識別器5Aから第1出力値を取得する。そして、判定部112は、取得した第1出力値に基づいて、被写体の状態を判定する。
本変形例に係る画像識別装置1Aは、上記検査装置1とほぼ同様の処理手順により、被写体の状態を判定することができる。
具体的には、ステップS101では、制御部11は、データ取得部111として動作し、状態を判定する対象となる被写体の写る対象画像データ121Aを取得する。
次のステップS102〜S108では、制御部11は、判定部112として動作し、第1識別器5A及び第2識別器6Aを利用して、被写体の状態を判定する。本変形例において、第1識別器5Aの第1出力値及び第2識別器6Aの第2出力値はそれぞれ、値が大きいほど被写体が第1状態であることを示し、値が小さいほど被写体が第2状態であることを示してもよい。これに応じて、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されてよい。また、第2判定基準の数値範囲は、第2閾値以上の範囲、及び当該第2閾値よりも小さい第3閾値以下の範囲により構成されてよい。
なお、第1状態及び第2状態は、実施の形態に応じて適宜決定されてよい。例えば、被写体が対象者の顔である場合には、第1状態は、特定の表情である(例えば、笑顔である)ことに対応し、第2状態は、特定の表情ではないことに対応していてもよい。その他の例についても同様である。
ステップS102では、制御部11は、第2学習結果データ229Aを参照して、学習済みの第2識別器6Aの設定を行う。続いて、制御部11は、対象画像データ121Aを第2識別器6Aに入力し、当該第2識別器6Aの演算処理を実行する。これにより、制御部11は、対象画像データ121Aに写る被写体の状態を判定した結果に対応する第2出力値を第2識別器6Aから取得する。
ステップS103では、制御部11は、第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定する。第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS104に処理を進めて、対象画像データ121Aに写る被写体は第1状態であると判定する。一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、次のステップS105に処理を進める。第2出力値と第2閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。
ステップS105では、制御部11は、第2出力値と第3閾値とを比較することで、第2出力値が第3閾値よりも小さいか否かを判定する。第2出力値が第3閾値よりも小さいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS106に処理を進めて、対象画像データ121Aに写る被写体は第2状態であると判定する。一方、第2出力値が第3閾値よりも大きいと判定した場合には、制御部11は、次のステップS107に処理を進める。なお、第2出力値と第3閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。
第2識別器6Aから取得した第2出力値が、第2閾値よりも小さく、第3閾値よりも大きいと判定した場合に、制御部11は、第2判定基準の数値範囲に第2出力値は含まれないとして、ステップS107及びS108の処理を実行する。ステップS107では、制御部11は、第1学習結果データ224Aを参照して、学習済みの第1識別器5Aの設定を行う。続いて、制御部11は、対象画像データ121Aを第1識別器5Aに入力し、当該第1識別器5Aの演算処理を実行する。これにより、制御部11は、対象画像データ121Aに写る被写体の状態を判定した結果に対応する第1出力値を第1識別器5Aから取得する。
ステップS108では、制御部11は、第1出力値と第1閾値とを比較することで、取得した第1出力値が第1閾値よりも大きいか否かを判定する。取得した第1出力値が第1閾値よりも大きいと判定した場合には、制御部11は、対象画像データ121Aに写る被写体は第1状態であると判定する。他方、取得した第1出力値が第1閾値よりも小さいと判定した場合には、制御部11は、対象画像データ121Aに写る被写体は第2状態であると判定する。なお、第1出力値と第1閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。
ステップS109では、制御部11は、出力部113として動作し、被写体の状態を判定した結果を出力する。被写体の状態を判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、被写体の状態を判定した結果をそのまま出力装置16に出力してもよい。また、例えば、被写体の状態を判定した結果に応じて所定の出力処理が対応付けられていてもよい。具体例として、被写体の状態として対象者の表情の種別を判定するケースでは、対象者の顔が笑顔ではない(第2状態である)と判定したときに、制御部11は、対象者の関連者の携帯端末にそのことを通知する電子メールの送信を当該出力処理として行ってもよい。
以上により、本変形例では、再学習又は追加学習により第2識別器6Aの識別性能が第1識別器5Aよりも悪化してしまった場合でも、被写体の状態を判定する処理の信頼性が損なわれてしまうのを防止することができる。
なお、本変形例において、上記<4.6>と同様に、第1識別器5Aの第1出力値及び第2識別器6Aの第2出力値はそれぞれ、対象画像データ121Aに写る被写体が所定の状態である確率を示してもよい。これに応じて、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されてよく、第2判定基準の数値範囲は、第2閾値以上の範囲により構成されてよい。
この場合、画像識別装置1Aの制御部11は、上記ステップS103〜S106の処理に代えて、第2識別器6Aから取得した第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定してもよい。そして、第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれるとして、対象画像データ121Aに写る被写体は所定の状態であると判定してもよい。一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれないとして、ステップS107に処理を進めてもよい。第2出力値と第2閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。
ステップS107では、制御部11は、対象画像データ121Aを第1識別器5Aに入力することで、第1識別器5Aから第1出力値を取得してもよい。そして、ステップS108では、制御部11は、取得した第1出力値と第1閾値とを比較し、取得した第1出力値が第1閾値よりも大きいか否かを判定してもよい。第1出力値が第1閾値よりも大きいと判定した場合、制御部11は、対象画像データ121Aに写る被写体は所定の状態であると判定してもよい。他方、第1出力値が第1閾値よりも小さいと判定した場合、制御部11は、対象画像データ121Aに写る被写体は所定の状態ではないと判定してもよいし、当該被写体の状態は不明であると判定してもよい。第1出力値と第1閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。
<4.8>
上記実施形態及び変形例では、画像データから何らかの特徴(被写体の状態)を判定する場面に本発明を提供した例を示している。しかしながら、本発明の適用可能な範囲は、このような画像データから特徴を判定する場面に限られなくてもよい。本発明は、画像データ以外のデータ又は複数種類のデータから何らかの特徴を識別する場面に広く適用可能である。
図12及び図13は、本変形例に係る識別装置1Bのハードウェア構成及びソフトウェア構成の一例を模式的に例示する。処理対象となるデータが、製品の写る画像データから何らかの特徴を含む他種のデータに置き換わる点を除き、本変形例に係る識別装置1Bは、上記検査装置1と同様に構成されてよい。すなわち、図12及び図13に示されるとおり、識別装置1Bのハードウェア構成及びソフトウェア構成はそれぞれ、上記検査装置1のハードウェア構成及びソフトウェア構成それぞれと同じであってよい。
具体的に、図12に示されるとおり、識別装置1Bの記憶部12は、識別プログラム81B、第1学習結果データ224B、第2学習結果データ229B等の各種情報を記憶する。識別プログラム81Bは、上記検査装置1と同様の処理手順により、データの特徴を判定する情報処理を識別装置1Bに実行させるためのプログラムであり、当該情報処理の一連の命令を含む。第1学習結果データ224Bは、学習済みの第1識別器5Bの設定を行うためのデータである。第2学習結果データ229Bは、学習済みの第2識別器6Bの設定を行うためのデータである。
本変形例において、処理対象となるデータは、識別器による解析の対象となり得るあらゆる種類のデータを含んでもよく、例えば、画像データの他、音データ(音声データ)、数値データ、テキストデータ等であってよい。また、対象のデータから識別される特徴は、データから識別可能なあらゆる特徴を含んでもよい。対象のデータが音データである場合、識別される特徴は、例えば、特定の音(例えば、機械の異音)が含まれているか否か等であってもよい。対象のデータが、活動量等の生体データに関する数値データ又はテキストデータである場合、識別される特徴は、例えば、対象者の状態(例えば、健康であるか否か)等であってもよい。対象のデータが、機械の駆動量等の数値データ又はテキストデータである場合、識別される特徴は、例えば、機械の状態(例えば、機械が所定の状態にあるか否か)等であってもよい。
第1識別器5Bは、特徴を識別する学習を行うためのデータで構成された第1学習データを利用した機械学習により構築される。第2識別器6Bは、第1学習データ及び特徴を識別する学習を行うための追加のデータで構成された第2学習データを利用した機械学習により構築される。各識別器(5B、6B)は、対象のデータに含まれる特徴を識別する能力を習得するように構築される。各識別器(5B、6B)の機械学習は、上記学習装置2により、上記実施形態と同様に実行されてよい。処理対象のデータが音データである場合、第1識別器5Bは、例えば、音データ及び音データに含まれる特徴の識別に対する正解を示す正解データで構成された第1学習データを利用した機械学習により構築される。また、第2識別器6Bは、例えば、追加の音データ及び追加の音データに含まれる特徴の識別に対する正解を示す正解データ並びに第1学習データで構成された第2学習データを利用した機械学習により構築される。
なお、本変形例では、識別装置1Bは、外部インタフェース14を介して、計測装置31Bと接続されている。計測装置31Bは、対象のデータを取得可能に適宜構成される。計測装置31Bの種類は、処理対象のデータに応じて適宜決定されてよい。処理対象のデータが音データである場合、計測装置31Bは、例えば、マイクロフォン等である。処理対象のデータが生体データである場合、計測装置31Bは、例えば、活動量計、血圧計等の、生体情報を計測可能に構成された装置である。また、処理対象のデータが、機械の駆動量等の数値データ又はテキストデータである場合、計測装置31Bは、例えば、エンコーダ等の対象の物理量を測定可能に構成された装置である。計測装置31Bの配置は、実施の形態に応じて適宜決定されてよい。
また、図13に示されるとおり、識別装置1Bは、制御部11により識別プログラム81Bを実行することで、データ取得部111、判定部112、及び出力部113をソフトウェアモジュールとして備えるコンピュータとして動作する。データ取得部111は、識別する対象となる特徴を含む対象データ121Bを取得する。判定部112は、第1識別器5B及び第2識別器6Bを含んでおり、第1識別器5B及び第2識別器6Bを利用して、取得した対象データ121Bに表れる特徴を判定する。出力部113は、被写体の状態を判定した結果を出力する。
上記実施形態と同様に、本変形例においても、第1識別器5Bに対象データ121Bを入力することで当該第1識別器5Bから得られる第1出力値には、特徴を判定するための数値範囲が第1判定基準として設定される。また、第2識別器6Bに対象データ121Bを入力することで第2識別器6Bから得られる第2出力値には、状態を判定するための数値範囲が第2判定基準として設定される。そして、第2判定基準の数値範囲は、第1判定基準の数値範囲よりも狭く設定される。
そこで、判定部112は、第2識別器6Bに対象データ121Bを入力することで、第2識別器6Bから第2出力値を取得する。取得した第2出力値が第2判定基準の数値範囲に含まれる場合には、判定部112は、第2出力値に基づいて、対象データ121Bに表れる特徴を判定する。一方、取得した第2出力値が第2判定基準の数値範囲に含まれない場合には、判定部112は、第1識別器5Bに対象データ121Bを入力することで、第1識別器5Bから第1出力値を取得する。そして、判定部112は、取得した第1出力値に基づいて、対象データ121Bに表れる特徴を判定する。
本変形例に係る識別装置1Bは、上記検査装置1とほぼ同様の処理手順により、対象データ121Bに表れる特徴を判定することができる。
具体的には、ステップS101では、制御部11は、データ取得部111として動作し、判定する対象となる特徴を含む対象データ121Bを取得する。本変形例では、制御部11は、外部インタフェース14を介して計測装置31Bから対象データ121Bを取得する。ただし、対象データ121Bを取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
次のステップS102〜S108では、制御部11は、判定部112として動作し、第1識別器5B及び第2識別器6Bを利用して、対象データ121Bに表れる特徴を判定する。本変形例において、第1識別器5Bの第1出力値及び第2識別器6Bの第2出力値はそれぞれ、値が大きいほど対象データ121Bには第1特徴が表れていることを示し、値が小さいほど対象データ121Bには第2特徴が表れていることを示してもよい。これに応じて、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されてよい。また、第2判定基準の数値範囲は、第2閾値以上の範囲、及び当該第2閾値よりも小さい第3閾値以下の範囲により構成されてよい。
なお、第1特徴及び第2特徴は、実施の形態に応じて適宜決定されてよい。例えば、対象データ121Bが音データである場合、第1特徴は、機械の異音が含まれていることに対応し、第2特徴は、機械の異音が含まれていないことに対応していてもよい。同様に、例えば、対象データ121Bが生体データに関する数値データ又はテキストデータである場合、第1特徴は、対象者が健康であることに対応し、第2特徴は、対象者に異常があることに対応していてもよい。その他の例についても同様である。
ステップS102では、制御部11は、第2学習結果データ229Bを参照して、学習済みの第2識別器6Bの設定を行う。続いて、制御部11は、対象データ121Bを第2識別器6Bに入力し、当該第2識別器6Bの演算処理を実行する。これにより、制御部11は、対象データ121Bに表れる特徴を判定した結果に対応する第2出力値を第2識別器6Bから取得する。
ステップS103では、制御部11は、第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定する。第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS104に処理を進めて、対象データ121Bには第1特徴が表れていると判定する。一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、次のステップS105に処理を進める。第2出力値と第2閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。
ステップS105では、制御部11は、第2出力値と第3閾値とを比較することで、第2出力値が第3閾値よりも小さいか否かを判定する。第2出力値が第3閾値よりも小さいと判定した場合には、制御部11は、第2判定基準の数値範囲に第2出力値が含まれるとして、次のステップS106に処理を進めて、対象データ121Bには第2特徴が表れていると判定する。一方、第2出力値が第3閾値よりも大きいと判定した場合には、制御部11は、次のステップS107に処理を進める。なお、第2出力値と第3閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。
第2識別器6Bから取得した第2出力値が、第2閾値よりも小さく、第3閾値よりも大きいと判定した場合に、制御部11は、第2判定基準の数値範囲に第2出力値は含まれないとして、ステップS107及びS108の処理を実行する。ステップS107では、制御部11は、第1学習結果データ224Bを参照して、学習済みの第1識別器5Bの設定を行う。続いて、制御部11は、対象データ121Bを第1識別器5Bに入力し、当該第1識別器5Bの演算処理を実行する。これにより、制御部11は、対象データ121Bに表れる特徴を判定した結果に対応する第1出力値を第1識別器5Bから取得する。
ステップS108では、制御部11は、第1出力値と第1閾値とを比較することで、取得した第1出力値が第1閾値よりも大きいか否かを判定する。取得した第1出力値が第1閾値よりも大きいと判定した場合には、制御部11は、対象データ121Bには第1特徴が表れていると判定する。他方、取得した第1出力値が第1閾値よりも小さいと判定した場合には、制御部11は、対象データ121Bには第2特徴が表れていると判定する。なお、第1出力値と第1閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜決定されてよい。
ステップS109では、制御部11は、出力部113として動作し、対象データ121Bに含まれる特徴を判定した結果を出力する。判定した結果の出力形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、対象データ121Bに含まれる特徴を判定した結果をそのまま出力装置16に出力してもよい。また、例えば、制御部11は、判定結果に応じて所定の出力処理を実行してもよい。具体例として、対象データ121Bが音データであり、音データの特徴として機械の異音が含まれるか否かを判定するケースでは、対象データ121Bに機械の異音が含まれると判定したときに、制御部11は、その機械の管理者の携帯端末にそのことを警告する電子メールの送信を当該出力処理として行ってもよい。
以上により、本変形例では、再学習又は追加学習により第2識別器6Bの識別性能が第1識別器5Bよりも悪化してしまった場合でも、対象のデータに表れる特徴を判定する処理の信頼性が損なわれてしまうのを防止することができる。
なお、本変形例において、上記<4.6>と同様に、第1識別器5Bの第1出力値及び第2識別器6Bの第2出力値はそれぞれ、対象データ121Bに所定の特徴が表れている確率を示してもよい。これに応じて、第1判定基準の数値範囲は、第1閾値以上の範囲及び第1閾値未満の範囲により構成されてよく、第2判定基準の数値範囲は、第2閾値以上の範囲により構成されてよい。
この場合、識別装置1Bの制御部11は上記ステップS103〜S106の処理に代えて、第2識別器6Bから取得した第2出力値と第2閾値とを比較することで、第2出力値が第2閾値よりも大きいか否かを判定してもよい。そして、第2出力値が第2閾値よりも大きいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれるとして、対象データ121Bには所定の特徴が表れていると判定してもよい。一方、第2出力値が第2閾値よりも小さいと判定した場合には、制御部11は、第2出力値は第2判定基準の数値範囲に含まれないとして、ステップS107に処理を進めてもよい。第2出力値と第2閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。
ステップS107では、制御部11は、対象データ121Bを第1識別器5Bに入力することで、第1識別器5Bから第1出力値を取得してもよい。そして、ステップS108では、制御部11は、取得した第1出力値と第1閾値とを比較し、取得した第1出力値が第1閾値よりも大きいか否かを判定してもよい。第1出力値が第1閾値よりも大きいと判定した場合、制御部11は、対象データ121Bには所定の特徴が表れていると判定してもよい。他方、第1出力値が第1閾値よりも小さいと判定した場合、制御部11は、対象データ121Bには所定の特徴が表れていないと判定してもよいし、対象データ121Bに所定の特徴が表れているか否か不明であると判定してもよい。第1出力値と第1閾値とが等しいケースの取り扱いは、実施の形態に応じて適宜選択されてよい。