実行する処理を説明する図である。
〔実施形態1〕
本発明の一実施形態について図1〜図9に基づいて説明する。
〔システム構成〕
まず、本実施形態に係る情報処理システム500の構成を図2に基づいて説明する。図2は、情報処理システム500の構成例を示す図である。情報処理システム500は、所定の対象物を撮影した画像から、その対象物の正否判定を行う機能を備えている。図示のように、情報処理システム500は、情報処理装置1と目視検査端末2と端末装置3を含む。
情報処理装置1は、上記対象物を撮影した画像から、当該対象物を所定のアルゴリズムにより所定の複数の分類カテゴリの何れかに自動で分類する。そして、情報処理装置1は、その分類結果が所定の分類カテゴリと一致するか否かによって、当該対象物の正否判定を行う。つまり、情報処理装置1は、分類結果が所定の分類カテゴリと一致すれば正(対象物に問題なし)と判定し、一致しなければ否(対象物に問題あり)と判定する。
目視検査端末2は、情報処理装置1では良と判定されなかった対象物の目視判定を行うための装置である。また、目視検査端末2は、情報処理装置1での分類が困難であった画像も目視判定の対象とする。情報処理システム500は、情報処理装置1による自動判定と、目視検査端末2による目視判定を併用することにより、判定の効率化と判定の信頼性を両立させている。
端末装置3は、対象物を撮影した画像を取得して情報処理装置1に送信し、その画像に基づく判定結果を情報処理装置から受信する。端末装置3は、判定結果を画像や音声等によって出力する機能を備えていてもよい。
図2では、製造工場で製造された製品Pの良否判定を、監視室に配置された情報処理システム500によって行う例を示している。このため、端末装置3は、製品Pを撮影した画像201を取得して情報処理装置1に送信している。そして、画像201を受信した情報処理装置1は、判定の対象物である製品Pの良否判定を行う。
ここで良品と判定された場合には、その判定結果が情報処理装置1から端末装置3に通知され、これにより、製造工場において、製品Pが良品であることが認識される。一方、不良品と判定された場合には、判定結果がNG(不良)の画像201が情報処理装置1から目視検査端末2に送信される。
目視検査端末2は画像201を表示し、目視検査員は表示された画像201を目視して製品Pの良否判定を行い、その結果を目視検査端末2に入力する。そして、目視検査端末2は、入力された目視判定の結果を情報処理装置1に通知する。これにより、情報処理装置1は、自機の不良判定の結果が誤りであった場合にそれを検出することができる。
なお、情報処理装置1および目視検査端末2は、対象物がある施設(図示の例では製造工場内)に配置されていてもよい。この場合、情報処理システム500の構成要素から端末装置3を省略してもよいし、情報処理装置1が目視検査端末2と一体の装置として構成されていてもよい。また、情報処理システム500に含まれる各装置は、据え置き型の装置であってもよいし、携帯型の装置であってもよい。また、目視検査端末2の数、端末装置3の数、および目視検査員の数は、複数であってもよい。
〔装置構成〕
情報処理装置1のより詳細な構成について図1に基づいて説明する。図1は、情報処理装置1の要部構成の一例を示すブロック図である。図示のように、情報処理装置1は、情報処理装置1の各部を統括して制御する制御部10と、情報処理装置1が使用する各種データを記憶する記憶部20を備えている。また、情報処理装置1は、情報処理装置1に対するデータの入力を受け付ける入力部30、情報処理装置1が他の装置と通信するための通信部40、および情報処理装置1がデータを出力するための出力部50を備えている。
また、制御部10には、画像取得部101、分類部102、分類成否判定部103、正否判定部(判定部)104、判定結果管理部(区分部)105、目視判定部(目視判定結果取得部)106、訓練データ生成部107、誤判定数算出部108、および再学習時期決定部109が含まれる。また、記憶部20には、画像201と訓練データ202が記憶されている。
画像取得部101は、情報処理装置1による判定の対象物を撮影した画像を取得する。本実施形態では、対象物を撮影した画像は、入力部30を介して情報処理装置1に入力されて、記憶部20に画像201として記憶される。このため、画像取得部101は、記憶部20から画像201を取得する。無論、画像取得部101が画像201を取得する方法は特に限定されない。例えば、画像取得部101は、撮像装置を制御して対象物を撮像させ、当該撮像装置から画像201を取得してもよい。
分類部102は、上記対象物を複数の所定の分類カテゴリの何れかに分類する。この分類は、画像と該画像に写る対象物の分類カテゴリとの対応関係を機械学習した結果に基づいて行われる。分類部102として適用可能なアルゴリズムは特に限定されないが、高い判定精度が望まれる場合、ニューラルネットワーク等の機械学習アルゴリズムを利用することが好ましく、特に深層学習したニューラルネットワーク(例えばResNet:Residual Network等)により判定を行うものとすることがより好ましい。本実施形態では分類部102が、対象物を撮影した画像を入力データとして、所定の複数の分類カテゴリのそれぞれのスコアを出力するResNetである例を説明する。このスコアは、画像に写る対象物が各分類カテゴリに該当する確度(確からしさ)を示す数値であり、スコアが最も高い分類カテゴリが、対象物の分類カテゴリとして最も確からしいということになる。したがって、スコアが最も高い分類カテゴリが分類部102の分類結果ということになる。
分類成否判定部103は、分類部102の分類結果が所定の評価基準を満たしているか否かを判定する。具体的には、分類成否判定部103は、分類部102が出力するスコアと閾値とを比較することで評価基準を満たしているか否かを判定する。そして、分類成否判定部103は、分類部102が各分類カテゴリについて出力したスコアの何れもが評価基準を満たしていなければ分類部102の分類は失敗と判定し、評価基準を満たしているスコアがあれば分類成功と判定する。
正否判定部104は、対象物が所定の分類カテゴリに属するか否かを判定する。具体的には、正否判定部104は、分類部102の分類結果と、画像201に本来写っているべき対象物の分類カテゴリを示す情報を照合して、画像201に写る対象物の正否を判定する。例えば、製品Aの製造ラインで製造された製品を撮影した画像201に基づく正否判定を行う場合、正否判定部104は、画像201に写る製品が製品Aに分類されていれば正しい製品であると判定し、他の製品に分類されていれば誤った製品であると判定する。
判定結果管理部105は、分類部102の分類結果を所定のパターンに区分して管理する。詳細は後述するが、分類部102による分類済みの対象物について行われた目視判定において、(1)対象物の所定の分類への属否、および(2)分類部102による分類結果の正否が判定される。判定結果管理部105は、目視判定結果における上記(1)(2)の組み合わせに応じて、分類部102の分類結果を所定のパターンに区分する。
目視判定部106は、目視検査端末2に画像201を表示させて、目視検査員による目視判定を行わせ、その目視判定結果を、目視検査端末2を介して取得する。詳細は後述するが、目視判定部106は、目視により、(1)対象物の所定の分類への属否、および(2)分類部102の分類結果の正否、が判定された結果である目視判定結果を取得する。上述のようにこれらの目視判定結果は、判定結果管理部105による上記区分に用いられる。
訓練データ生成部107は、画像201に対して、その画像201に写る対象物の分類カテゴリを正解データとして対応付けて、分類部102の機械学習に用いる訓練データを生成する。詳細は後述するが、訓練データ生成部107は、判定結果管理部105による上記区分に応じて、画像201に応じた適切な正解データを用いることにより、自動で正しい訓練データを生成することができる。
誤判定数算出部108は、正否判定部104により所定の分類に属すると判定されたが、実際には対象物は所定の分類に属しておらず、分類部102が所定の分類に属すると誤分類した回数(誤判定数)を算出する。なお、誤判定数算出部108については、実施形態2で説明する。誤判定数の算出が不要であれば、誤判定数算出部108は省略してもよい。
再学習時期決定部109は、分類部102の再学習を行う時期を決定する。なお、再学習時期決定部109については、実施形態3で説明する。再学習時期の決定が不要であれば、再学習時期決定部109は省略してもよい。
画像201は、上述のとおり、判定の対象物を撮影した画像であり、訓練データ202は、分類部102の機械学習に用いる訓練データである。情報処理装置1の判定の対象となった画像201から訓練データ生成部107が訓練データを生成し、その訓練データは訓練データ202として記憶され、分類部102の再学習に用いられる。なお、訓練データ202には、訓練データ生成部107が生成していない訓練データ(例えば訓練データ生成部107が生成した訓練データを加工した訓練データや、ユーザが手作業で作成した訓練データなど)が含まれていてもよい。
なお、上述した情報処理装置1の構成要素のうち、少なくとも分類部102と正否判定部104により、画像中の対象物を分類することにより当該対象物が所定の分類に属するか否かを判定する判定システムが構築されている。これらの構成要素は情報処理装置1とは別の装置に設けられていてもよい。この場合、判定結果管理部105は、分類部102の分類結果と正否判定部104の判定結果を取得して上述の区分を行う。
〔情報処理システムの用途一例〕
情報処理システム500の用途(判定対象)は特に限定されないが、例えば食品生産工場の品質管理に利用することができる。これについて図3に基づいて説明する。図3は、食品生産工場において生産された食品を情報処理システム500の判定対象物として撮影した例を示す図である。
図3の(a)には、食品の生産ライン600の一部を示している。生産ライン600には、食品601を同図の白抜き矢印の方向に搬送する搬送部602が含まれている。また、搬送部602には、搬送部602の上方に撮像装置603を保持する撮像台604が設けられている。これにより、搬送部602にて搬送されている食品601を真上から撮影することができる。
図3の(b)には、同図の(a)の撮像装置603で撮影された画像201の例を示している。この画像201には、パック詰めされた食肉である食品601が写っている。また、画像201には、食品601のパックに貼られたラベル6011と値札シール6012も写っている。
情報処理システム500により、生産ライン600上の食品601の分類カテゴリ(豚肉であるか牛肉であるか、焼き肉用であるか、こま切れであるか等)を判定することにより、生産ライン600にて正しい食品601が搬送されているかを確認することができる。食品生産工場の品質管理には高い精度が求められるため、極めて信頼性の高い判定結果を出力する情報処理システム500の適用が好適である。
〔判定結果のパターン〕
情報処理装置1の判定結果は、5つのパターンに区分できる。そして、判定結果管理部105は、情報処理装置1の判定結果が何れのパターンに該当するかを判定する。これについて、図4に基づいて説明する。図4は、情報処理装置1の判定結果のパターン区分を示す図である。なお、ここでは、情報処理装置1が、工場で製造された製品が正しい製品(製造すべき製品)であるか、正しくない製品(製造すべき製品とは異なる製品)であるかを判定する例を想定している。
図4の例では、正しい製品の製品IDが「ID_A」である。工場では、「ID_A」の製品を製造することになっているが、異なる製品が誤って製造されることがある。誤って製造された製品の製品IDを「ID_B」としている。分類部102は、製造された製品の画像から、その製品の分類カテゴリ(製品ID)を判定する。そして、正否判定部104は、分類部102の分類結果が「ID_A」であればその製品が正しいと判定し、分類部102の分類結果が「ID_A」以外であればその製品は誤っていると判定する。
したがって、図4の(a)の1行目のレコードに示すように、「ID_A」の製品が製造され、かつ分類部102の分類結果も「ID_A」の製品であれば、正しい製品が製造され、分類部102は正しく分類できたということになる。図4では、このパターンの名称を「T_OK」としている。「T_OK」のパターンでは、分類部102の分類結果が「ID_A」であるから、正否判定部104はその製品を正しいと判定する。
一方、図4の(a)の2行目のレコードに示すように、「ID_B」の製品が製造され、かつ分類部102の分類結果も「ID_B」の製品であれば、誤った製品が製造されたが、分類部102は正しく分類できたということになる。図4では、このパターンの名称を「T_NG」としている。「T_NG」のパターンでは、分類部102の分類結果が「ID_B」であるから、正否判定部104はその製品を誤りであると判定する。
ここで、図4の(a)の3行目のレコードに示すように、「ID_B」の製品が製造された場合に、分類部102の分類結果が「ID_A」の製品となることもあり得る。この場合、誤った製品が製造され、分類部102の分類も誤りであったが、分類結果が正しい製品と一致したことになる。図4では、このパターンの名称を「F_OK」としている。「F_OK」のパターンでは、分類部102の分類結果が「ID_A」であるから、正否判定部104はその製品を正しいと判定するが、実際には正しい製品は製造されていない。つまり、正否判定部104の判定結果は誤判定ということになる。
また、図4の(a)の4行目のレコードに示すように、「ID_A」の製品が製造され、かつ分類部102の分類結果が「ID_B」の製品であれば、正しい製品が製造されたが、分類部102の分類が誤りであったということになる。図4では、このパターンの名称を「F_NG1」としている。「F_NG1」のパターンでは、分類部102の分類結果が「ID_B」であるから、正否判定部104はその製品を誤りであると判定する。この場合、目視判定が行われるので、目視判定により正しい製品が製造されたことが確認される。
また、図4の(a)の5行目のレコードに示すように、「ID_B」の製品が製造され、かつ分類部102の分類結果が「ID_C」(「ID_A」以外)の製品であれば、誤った製品が製造され、分類部102の分類も誤りであり、分類結果は正しい製品と不一致となる。図4では、このパターンの名称を「F_NG2」としている。「F_NG2」のパターンでは、分類部102の分類結果が「ID_C」であるから、正否判定部104はその製品を誤りであると判定する。この場合、目視判定が行われるので、目視判定により誤った製品が製造されたことが確認される。
判定結果管理部105は、目視判定結果を利用して、分類部102の分類結果、あるいは当該分類に用いられた画像201を、上述のようなパターンに区分して管理する。具体的には、図4の(b)に示すように、目視判定では、正しい製品が製造されているか、および分類部102により正しい分類がなされているか、について目視検査員に判定させる。
具体的には、目視判定により、正しい製品が製造され、分類部102の分類も正しいと判定された場合には、「T_OK」のパターンに該当する。また、目視判定により、正しい製品が製造されたが、分類部102の分類は誤りであったと判定された場合には、「F_NG1」のパターンに該当する。また、目視判定により、誤った製品が製造されたが、分類部102の分類は正しかったと判定された場合には「T_NG」のパターンに該当する。そして、目視判定により、誤った製品が製造され、分類部102の分類も誤りであったと判定された場合には「F_NG2」または「F_OK」のパターンに該当する。
このように、判定結果管理部105は、目視判定結果を利用することにより、分類部102の分類結果、あるいは当該分類に用いられた画像201を、上述のようなパターンに区分して管理することができる。また、目視判定において、目視検査員は、正しい製品が製造されているか、および正しい分類がなされているかの2点について確認すればよいので、目視判定に係る負荷を最小限に抑えることができ、これにより迅速な目視判定が実現できる。
〔目視判定におけるUI画面例〕
目視判定におけるUI(User Interface)画面例について図5に基づいて説明する。図5は、目視判定におけるUI画面例を示す図である。同図の(a)の画面例では、正しい製品の画像と、撮影された画像が表示されている。また、この画面例では、質問1として、上記2つの画像に写る製品が一致しているかを問う質問文と、その回答の選択肢(YES/NO)が表示されている。
このような画面を目視検査端末2が表示した場合、目視検査員は、画面上の画像を見比べて、YESまたはNOの何れかを目視検査端末2に入力することができる。また、目視検査端末2は、目視検査員の入力内容を情報処理装置1に通知し、これにより情報処理装置1の判定結果管理部105は正しい製品が製造されたか否かを特定することができる。
また、図5の(b)の画面例では、撮影された画像と、分類部102の分類結果が表示されている。また、この画面例では、質問2として、分類結果が正しいかを問う質問文と、その回答の選択肢(YES/NO)が表示されている。
このような画面を目視検査端末2が表示した場合、目視検査員は、画面上の画像と分類結果を見比べて、YESまたはNOの何れかを目視検査端末2に入力することができる。そして、目視検査端末2は、目視検査員の入力内容を情報処理装置1に通知し、これにより情報処理装置1の判定結果管理部105は分類結果の正否を特定することができる。
したがって、図5の(a)(b)のようなUI画面を目視検査端末2に順次表示させることにより、判定結果管理部105は、正しい製品が製造されたか否か、および分類結果の正否を特定することができる。これにより、判定結果管理部105は、図4の(b)に示したように、正しい製品が製造されたか否かと、分類の正否の組み合わせから、パターンを判定することができる。
〔他のパターンについて〕
画像201に写る製品が、分類部102がその分類カテゴリを学習していない製品である場合等には、分類部102による分類を行うことができないため、目視判定が必要になる。そして、目視判定結果に基づくパターンの区分は、分類部102による分類ができていないことにより、図4の例よりも単純なものとなる。これについて、図6に基づいて説明する。図6は、分類部102による分類を行うことができなかった場合の判定結果のパターン区分を示す図である。
図6の(a)に示すように、分類部102による分類を行うことができなかった場合には、製造された製品が正しい製品であるパターン「OK」と、製造された製品が誤った製品であるパターン「NG」の2通りのパターンが存在する。
この場合、同図の(b)に示すように、目視判定においては、正しい製品が製造されているか否かが判定される。この目視判定では、例えば図5の(a)のようなUI画面を表示してもよい。正しい製品が製造されていればパターン「OK」となり、製造された製品が誤った製品であればパターン「NG」となる。
〔処理の流れ(製品の正否判定とパターン区分)〕
情報処理装置1が実行する処理の流れを図7に基づいて説明する。図7は、情報処理装置1が実行する処理(情報処理方法)の一例を示すフローチャートである。なお、以下では、情報処理装置1が、製造された製品(具体的には図3の食品601)が正しいか否かの判定を行う例を説明する。
S1では、画像取得部101が、記憶部20に記憶されている画像201を取得する。この画像201は、例えば撮像装置603で撮影した食品601の画像であってもよい(図3参照)。また、正否判定部104は、画像201に写る製品の製品IDを取得する。なお、図3のような生産ライン600では、所定の食品601を製造し、搬送するので、搬送されている食品601の製品IDを取得することができる。ただし、本来製造すべきではない食品601が誤って製造されて生産ライン600に乗ることがあり得るので、情報処理装置1による判定を行って、誤って生産ライン600に乗った食品601を検出する。
S2では、分類部102が、S1で取得された画像201に写っている製品を分類する。具体的には、分類部102は、予め設定された複数の分類カテゴリ(それぞれが異なる製品IDに対応)のそれぞれについて、当該分類カテゴリに該当する確度を示すスコアを算出する。なお、この判定における演算処理は、処理負荷が大きくなる場合がある。このため、分類部102は、この演算処理を外部のサーバに行わせて、演算結果であるスコアを当該サーバから取得してもよい。
S3では、分類成否判定部103は、S2の判定結果に閾値以上のスコアが含まれているか否かを判定する。分類成否判定部103は、含まれていると判定した場合(S3でYES)、スコアが閾値を超えた分類カテゴリを正否判定部104に通知し、処理はS4に進む。一方、分類成否判定部103は、閾値以上のスコアが含まれていないと判定した場合(S3でNO)、判定結果を不明とし、S1で取得された画像201を目視判定部106に送信し、処理はS12に進む。なお、分類成否判定部103は、不明との判定結果を、出力部50等を介して出力してもよいし、その判定結果を端末装置3に通知して出力させてもよい。
S4では、正否判定部104が、分類結果と製品IDが一致するか否かを判定する。具体的には、正否判定部104は、分類成否判定部103から通知された分類カテゴリと、S1で取得した製品IDの示す製品の分類カテゴリとが一致するか否かを判定する。また、正否判定部104は、判定結果を出力部50に出力させてもよいし、その判定結果を端末装置3に通知して出力させてもよい。ここで正否判定部104が一致すると判定した場合(S4でYES)には処理はS5に進む。一方、正否判定部104が一致しないと判定した場合(S4でNO)には処理はS6に進む。
なお、判定結果の出力の態様は任意である。例えば、製品の正否を示す画像を表示させてもよい。また、分類カテゴリのスコアを表示してもよい。また、表示以外の態様で出力を行ってもよい。例えば製品が誤りである場合には端末装置3にブザー等の音を出力させることにより、誤って生産ライン600に乗った食品601があることを報知してもよい。また、例えば生産ライン600に搬送中の食品601の搬送経路を分岐させる機構が設けられている場合には、端末装置3は、その機構を制御して、誤りであると判定された食品601を生産ライン600から除外してもよい。
S5では、判定結果管理部105が、区分は「T_OK」であると判定する。そして、判定結果管理部105は、この判定結果をS1で取得された画像201と対応付けて記憶しておく。例えば、判定結果管理部105は、S1で取得された画像201の識別情報(ID)と判定結果とを対応付けて記憶してもよいし、画像201の付加情報として、例えば画像201のヘッダ等に判定結果を記憶してもよい。S5の処理の終了により、情報処理システム500の処理は終了する。
S6(目視判定結果取得ステップ)では、目視判定部106が目視判定を行う。具体的には、目視判定部106は、S1で取得された画像201を目視検査端末2に送信すると共に、S1で取得された製品IDとS2の分類結果を目視検査端末2に通知する。そして、目視判定部106は、目視検査端末2から目視検査員による目視判定の結果を取得し、その結果を判定結果管理部105に通知する。そして、判定結果管理部105は、取得した目視判定結果に基づいて、以下説明するS7〜S11の処理(区分ステップ)により、S2の分類結果を区分する。
なお、目視判定において、目視検査端末2は、例えば図5に示したような画面を表示させて目視判定結果の入力を受け付けてもよい。また、このような画面は、目視検査端末2が生成する構成としてもよいし、目視判定部106が生成して目視検査端末2に送信する構成としてもよい。
S7では、判定結果管理部105が、分類は正しいが製品が誤りであるか否かを判定する。ここで分類は正しいが製品が誤りであると判定された場合(S7でYES)にはS8に進む。一方、製品が正しいと判定されるか、または分類が誤りであると判定された場合(S7でNO)にはS9に進む。なお、製品が正しいとは、画像201に写る製品が正しい製品(S1で取得した製品IDの製品)であることを意味する。また、分類が正しいとは、分類部102が正しく分類している(S1で取得した画像に写る製品が、S3で閾値以上となったスコアの分類カテゴリに属する)ことを意味する。つまり、判定結果管理部105は、S6の目視判定における質問1(図5の(a)参照)の回答がNOであり、かつ、質問2(図5の(b)参照)の回答がYESであれば、S7でYESと判定する。一方、質問1の回答がYESであるか、質問2の回答がNOであれば、判定結果管理部105はS7でNOと判定する。
S8では、判定結果管理部105が、区分は「T_NG」であると判定する。そして、判定結果管理部105は、この判定結果をS1で取得された画像201と対応付けて記憶しておく。S8の処理の終了により、情報処理システム500の処理は終了する。
S9では、判定結果管理部105が、製品は正しいが分類が誤りであるか否かを判定する。ここで製品は正しいが分類が誤りであると判定された場合(S9でYES)にはS10に進む。一方、製品も分類も誤りであると判定された場合(S9でNO)にはS11に進む。具体的には、判定結果管理部105は、S6の目視判定における質問1の回答がYESであり、かつ質問2の回答がNOであればS9でYESと判定し、質問1、2の回答が何れもNOであればS9でNOと判定する。
S10では、判定結果管理部105が、区分は「F_NG1」であると判定する。そして、判定結果管理部105は、この判定結果をS1で取得された画像201と対応付けて記憶しておく。S10の処理の終了により、情報処理システム500の処理は終了する。なお、「F_NG1」のパターンでは、分類が誤りであるために、正否判定部104の判定結果が誤りとなっているが、実際には製造された製品は正しい(図4参照)から、判定結果管理部105は、正否判定の結果を訂正してもよい。例えば、判定結果管理部105は、訂正後の判定結果を端末装置3に通知して出力させることにより、当該製品が良品扱いとなるようにしてもよい。
S11では、判定結果管理部105が、区分は「F_NG2」であると判定する。そして、判定結果管理部105は、この判定結果をS1で取得された画像201と対応付けて記憶しておく。S11の処理の終了により、情報処理システム500の処理は終了する。
S12では、S6と同様に、目視判定部106が目視判定を行う。具体的には、目視判定部106は、S1で取得された画像201を目視検査端末2に送信すると共に、S1で取得された製品IDとS2の分類結果(最もスコアが高かった分類カテゴリ)を目視検査端末2に通知する。そして、目視判定部106は、目視検査端末2から目視検査員による目視判定の結果を取得し、その結果を判定結果管理部105に通知する。
S13では、判定結果管理部105が区分処理を行う。詳細は図8に基づいて後述するが、S13の処理により分類部102の分類結果が複数のパターンに区分され、S12の判定結果とS13の区分とがS1で取得された画像201と対応付けて記憶される。S13の処理の終了により、情報処理システム500の処理は終了する。また、判定結果管理部105は、S12の目視判定の判定結果を出力部50に出力させてもよいし、端末装置3に通知して出力させてもよい。
以上のように、目視判定部106は、分類部102が分類済みの対象物についての目視判定(S6、S12)において、(1)対象物の上記分類カテゴリへの属否、および(2)分類部102の分類結果の正否、が判定された結果である目視判定結果を取得する。そして、判定結果管理部105は、目視判定結果における上記(1)(2)の組み合わせに応じて分類部102の分類結果を区分する(S7〜S11、S13)。
これにより、目視判定結果の活用の範囲を広げることができる。例えば、以下説明する訓練データの自動生成、実施形態2で説明するパターン「F_OK」の発生件数の予測値算出、あるいは実施形態3で説明する分類部102の適切な再学習時期の決定などに活用することができる。
〔処理の流れ(区分処理)〕
図7のS13で行われる区分処理の詳細を図8に基づいて説明する。図8は、判定結果区分処理の一例を示すフローチャートである。図8のS131〜S137の処理では、図7のS4、S5、S7〜S11と同様に、目視判定結果に基づいて分類部102の分類結果が複数のパターンに区分される。
S131では、正否判定部104が、図7のS12の目視判定結果に基づいて、分類と製品の何れもが正しいか否かを判定する。ここで正否判定部104が分類と製品の何れも正しいと判定した場合(S131でYES)には処理はS132に進む。一方、正否判定部104が分類および製品の少なくとも何れかが誤りであると判定した場合(S131でNO)には処理はS133に進む。
S132では、判定結果管理部105が区分は「T_OK」であると判定する。そして、判定結果管理部105は、この判定結果を図7のS1で取得された画像201と対応付けて記憶し、区分処理は終了する。なお、ここで画像201を記憶する際には、図7のS5で「T_OK」に該当するとして記憶された画像201と区別できるように記憶しておくことが好ましい。図7のS5で「T_OK」に該当するとして記憶された画像201には、実際には「F_OK」であるものが含まれている可能性がゼロではないためである。
S133では、判定結果管理部105が、分類は正しいが製品が誤りであるか否かを判定する。ここで分類は正しいが製品が誤りであると判定された場合(S133でYES)にはS134に進む。一方、製品が正しいと判定されるか、または分類が誤りであると判定された場合(S134でNO)にはS135に進む。
S134では、判定結果管理部105が区分は「T_NG」であると判定する。そして、判定結果管理部105は、この判定結果を図7のS1で取得された画像201と対応付けて記憶し、区分処理は終了する。なお、ここで画像201を記憶する際には、図7のS8で「T_NG」に該当するとして記憶された画像201と区別できるように記憶しておくことが好ましい。以下で説明するS136、S137についても同様である。
S135では、判定結果管理部105が、製品は正しいが分類が誤りであるか否かを判定する。ここで製品は正しいが分類が誤りであると判定された場合(S135でYES)にはS136に進む。一方、製品も分類も誤りであると判定された場合(S135でNO)にはS137に進む。
S136では、判定結果管理部105が区分は「F_NG1」であると判定する。そして、判定結果管理部105は、この判定結果を図7のS1で取得された画像201と対応付けて記憶し、区分処理は終了する。
S137では、判定結果管理部105が区分は「F_NG2」であると判定する。そして、判定結果管理部105は、この判定結果を図7のS1で取得された画像201と対応付けて記憶し、区分処理は終了する。なお、S137において区分が「F_NG2」であると判定されたものの中には、実際には「F_OK」に該当するものも含まれ得る。
〔処理の流れ(訓練データ生成)〕
本実施形態の情報処理装置1は、上述のパターンの区分に基づいて訓練データを生成する。これについて図9に基づいて説明する。図9は、情報処理装置1がパターンの区分に基づいて訓練データを生成する処理(情報処理方法)の一例を示すフローチャートである。
S21では、訓練データ生成部107は、判定結果管理部105によるパターン判定済みの画像201を取得する。そして、S22では、訓練データ生成部107は、S21で取得した画像201のパターンが「T_OK」に該当するか否かを判定する。該当すると判定された場合(S22でYES)にはS23に進み、該当しないと判定された場合(S22でNO)にはS24に進む。
S23では、訓練データ生成部107は、S21で取得した画像201に対し、その画像201に対する分類部102の分類結果を正解データとして対応付けて訓練データとする。そして、訓練データ生成部107は、この訓練データを記憶部20に記憶し、処理を終了する。なお、この処理および後述のS26、S28で記憶されるデータが図1の訓練データ202である。
S24では、訓練データ生成部107は、S21で取得した画像201のパターンが「T_NG」に該当するか否かを判定する。該当すると判定された場合(S24でYES)にはS23に進み、上述のようにして訓練データが生成され、記憶される。一方、S24で該当しないと判定された場合(S24でNO)にはS25に進む。
S25では、訓練データ生成部107は、S21で取得した画像201のパターンが「F_NG1」に該当するか否かを判定する。該当すると判定された場合(S25でYES)にはS26に進み、該当しないと判定された場合、すなわち画像201のパターンが「F_NG2」または「F_OK」に該当する場合(S25でNO)にはS27に進む。
S26では、訓練データ生成部107は、S21で取得した画像201に対し、図7のS1で取得された製品IDに対応する分類カテゴリを正解データとして対応付けて訓練データとする。そして、訓練データ生成部107は、この訓練データを記憶部20に記憶し、処理を終了する。
S27では、目視判定部106が目視判定を行う。目視判定部106は、S21で取得された画像201を目視検査端末2に送信して表示させ、この画像201に写る対象物の分類カテゴリを目視検査員に入力させる。そして、目視検査端末2から目視検査員による目視判定の結果を受信し、その結果を訓練データ生成部107に通知する。
S28では、訓練データ生成部107は、S21で取得した画像201に対し、S28の目視判定で入力された分類カテゴリを正解データとして対応付けて訓練データとする。そして、訓練データ生成部107は、この訓練データを記憶部20に記憶し、処理を終了する。
以上のように、訓練データ生成部107は、パターン「T_OK」および「T_NG」の何れかに区分された判定に用いられた画像201に対して、分類部102の分類結果を正解データとして対応付けて訓練データとする(S23)。パターン「T_OK」は、正否判定部104が、対象物が正しい(所定の分類に属する)と判定したパターンである。また、パターン「T_NG」は、図4の(b)に示すように、分類部102の分類が正しいとの目視判定がなされたパターンである。よって、この構成によれば適切な訓練データを自動的に生成することができる。なお、パターン「T_OK」に区分された判定に用いられた画像201については、図7のS1で取得された製品IDの製品の分類カテゴリ(所定の分類)を正解データとして対応付けてもよい。
また、パターン「T_OK」および「T_NG」は、図7のS5およびS8で判定された区分であってもよいし、図8のS132およびS134で判定された区分であってもよい。特に図7のS5でパターン「T_OK」と区分されたものの中には、実際には「F_OK」であるものが含まれている可能性がゼロではない。このため、「F_OK」ではないことが目視検査によって確認されている、図8のS132で「T_OK」と判定されて記憶された画像201から訓練データを生成することが好ましい。
また、図8のS132およびS134の区分判定に基づいて記憶された画像201は、分類部102の分類結果の確度が閾値未満の画像、つまり、分類部102による分類が困難であった画像である。よって、このような画像201から訓練データを生成し、その訓練データを用いて分類部102を再学習させることにより、そのような分類困難な画像についても分類部102で分類できるようにすることができる。
また、訓練データ生成部107は、パターン「F_NG1」に区分された判定に用いられた画像201に対して、製品IDに対応する分類カテゴリ(所定の分類)を正解データとして対応付けて訓練データとする(S26)。パターン「F_NG1」は、図4の(b)に示すように、正しい製品が製造されている(対象物が所定の分類に属する)との目視判定がなされたパターンであるから、この構成によれば適切な訓練データを自動的に生成することができる。特に、パターン「F_NG1」では、分類部102が誤分類しているので、そのような誤分類が繰り返されないようにするために、パターン「F_NG1」に区分された判定に用いられた画像201を訓練データとすることの意義が大きい。なお、パターン「F_NG1」および「F_NG2」は、図7のS10およびS11で判定された区分であってもよいし、図8のS136およびS137で判定された区分であってもよい。図8のS136およびS137の区分判定に基づいて記憶された画像201から訓練データを生成し、その訓練データを用いて分類部102を再学習させることにより、分類部102の分類結果が不明となるケースを減らすことができる。
なお、図7のS11および図8のS137でパターン「F_NG2」の区分が対応付けて記憶された画像201から訓練データを生成する際には、S27の目視判定が必要になるが、正否判定部104による判定が行われた件数のうちパターン「F_NG2」に該当する割合は少ない。このため、訓練データ生成部107によれば、目視判定にかかる労力を最小限に抑えつつ、多数の適切な訓練データを自動で生成することができる。
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。実施形態3以降も同様である。
本実施形態の情報処理装置1は、複数の異なる対象物を撮影した複数の画像201のそれぞれについて正否判定部104による判定結果が出された場合に、上述のパターンの区分に基づいて、その判定結果に含まれる誤判定の件数(予測値)を算出する。算出した件数は、例えば、正否判定部104の判定結果の信頼性を示す指標として利用することができる。なお、誤判定の件数(誤判定数)とは、正否判定部104が正しいとした判定が誤りであった件数、すなわちパターン「F_OK」に該当する判定が行われた件数である。
予測値の算出は、図1に示す誤判定数算出部108が行う。なお、予測値を算出する場合、判定結果管理部105は、下記(A)〜(D)をカウントしておく。例えば、下記(A)〜(D)の各値は、図7のS3でYESと判定された回数、S10の処理が行われた回数、S8の処理が行われた回数、S11の処理が行われた回数をそれぞれカウントしたものであってもよい。
(A)分類部102が分類成功した画像201の総数(正否判定部104の総判定回数):N
(B)パターン「F_NG1」のカウント数:n_fng1
(C)パターン「T_NG」のカウント数:n_tng
(D)パターン「F_NG2」のカウント数:n_fng2
〔予測値の算出原理〕
本実施形態では、正しい製品が製造される確率pと、分類部102が正しく分類する確率qが何れも一定の値であると仮定して、パターン「F_OK」に該当する判定が行われた件数の予測値(計算値)n_fokを算出する。この算出原理について、図4の(b)を参照しながら以下説明する。
正しい製品が製造される事象と、分類部102が正しく分類する事象とは、互いに独立した事象である。また、正しい製品が製造される確率がpであれば、誤った製品が製造される確率は(1−p)と表され、正しく分類される確率がqであれば、誤った分類がなされる確率は(1−q)と表される。
したがって、正否判定部104が正否判定を行った場合に、その判定が図4の(b)に示される各パターンに該当する確率は下記のように表現できる。
(「T_OK」に該当する確率)=p×q
(「F_NG1」に該当する確率)=p×(1−q)
(「T_NG」に該当する確率)=(1−p)×q
(「F_NG2」または「F_OK」に該当する確率)=(1−p)×(1−q)
また、「F_NG1」に該当する確率はn_fng1/Nと表される。同様に、「T_NG」に該当する確率はn_tng/Nと表され、「F_NG2」に該当する確率はn_fng2/Nと表される。よって、下記の数式(1)、(2)が成り立つ。
p×(1−q)=n_fng1/N 数式(1)
(1−p)×q=n_tng/N 数式(2)
また、上記(「F_NG2」または「F_OK」に該当する確率)について、n_fng2とn_fokの和をNで除した値が(1−p)×(1−q)に等しくなるため、下記の数式(3)が成り立つ。
n_fok=N×(1−p)×(1−q)−n_fng2 数式(3)
したがって、上記数式(1)、(2)から確率p、qを算出し、算出した確率p、qを数式(3)に代入することにより、パターン「F_OK」に該当する判定が行われた件数の予測値n_fokを算出することができる。
〔処理の流れ(誤判定数の算出)〕
情報処理装置1が誤判定数を算出する処理の流れを図10に基づいて説明する。図10は、情報処理装置1が誤判定数を算出する処理(情報処理方法)の一例を示すフローチャートである。
S41では、誤判定数算出部108は、パターン「F_NG1」のカウント数n_fng1と、パターン「T_NG」のカウント数n_tngから、製品が正しい確率pと、分類部102の分類が正しい確率qを算出する。具体的には、誤判定数算出部108は、確率p、qを上述の数式(1)(2)を用いて算出する。
S42では、誤判定数算出部108は、S41で算出した確率p、qとパターン「F_NG2」のカウント数n_fng2から、パターン「F_OK」の数の予測値であるn_fokを算出する。具体的には、誤判定数算出部108は、確率p、qを上述の数式(3)に代入することにより、n_fokを算出する。
S43では、誤判定数算出部108は、S42で算出したパターン「F_OK」の数、すなわち正否判定部104が正しいと判定したが、実際には製品が正しくなかった件数を出力部50に出力させ、これにより処理を終了する。なお、誤判定数算出部108は、S42で算出したパターン「F_OK」の数をNで除して、パターン「F_OK」の発生確率を算出することもできる。
以上のように、本実施形態の判定結果管理部105は、複数の異なる製品(対象物)を撮影した複数の画像201のそれぞれについて正否判定部104による判定結果が出された場合(情報処理システム500による判定が行われた場合)に、その判定における分類部102の分類結果を上述のパターンの区分ごとにカウントする。そして、誤判定数算出部108は、正否判定部104が対象物は正しいとした判定のうち、実際には対象物が誤りであり、分類部102の誤分類により対象物が正しいとされた件数を、上記カウントの結果に基づいて算出する。
ここで、上述のパターンには、「F_NG1」(製品は正しく、分類部102の分類が誤りのパターン)と、「T_NG」(製品が誤りであり、分類部102の分類は正しいパターン)が含まれている。このため、確率p、qが一定であると仮定すれば、これらのパターンの件数と正否判定部104の総判定回数から、上述の数式(1)(2)を用いて当該確率p、qを算出することができる。
また、パターン「F_OK」は、「F_NG2」と同じく、製品は誤りであり、分類部102の分類も誤りのパターンに該当するから、パターン「F_OK」と「F_NG2」の合計件数は、N×(1−p)×(1−q)と表される。よって、この合計件数からパターン「F_NG2」のカウント数を減算することにより、パターン「F_OK」の件数を算出することができる(数式(3))。このように、誤判定数算出部108によれば、判定結果管理部105によるパターンの区分ごとのカウント数を利用して、パターン「F_OK」の件数を算出することができる。
なお、図8のS132、S134、S136、およびS137で判定された各区分のカウント数からパターン「F_OK」の件数を算出することもできる。この場合、上記数式(1)(2)の代わりに下記数式(1)’〜(3)’のうち何れか2つを用いて確率p、qを算出し、下記数式(4)’を用いてパターン「F_OK」の件数を算出する。下記数式(1)’〜(4)’において、N’は図7のS3でNOと判定された回数(図7のS3でNOと判定された画像201の数)である。また、下記数式(3)’において、n_tokは、パターン「T_OK」のカウント数である。
p×(1−q)=n_fng1/N’ 数式(1)’
(1−p)×q=n_tng/N’ 数式(2)’
p×q=n_tok/N’ 数式(3)’
n_fok=N’×(1−p)×(1−q)−n_fng2 数式(4)’
〔実施形態3〕
本実施形態の情報処理装置1は、実施形態1で説明したパターンの区分に基づいて、分類部102の再学習のタイミングを決定する。再学習のタイミングは、図1に示す再学習時期決定部109が決定する。なお、再学習のタイミングを決定する場合、判定結果管理部105は、下記(A)〜(C)をカウントしておく。
(A)分類部102が分類成功した画像201の総数(正否判定部104の総判定回数):N
(B)パターン「F_NG1」のカウント数:n_fng1
(C)パターン「T_NG」のカウント数:n_tng
〔再学習のタイミングについて〕
上述の5つのパターン区分のうち「F_OK」は、実際には誤った製品が製造されているのに、正否判定部104が正しいと判定してしまうパターンであり、このようなパターンが発生することは極力避ける必要がある。例えば、正しい製品Xと類似した新製品Yが新たに追加されたが、分類部102は新製品Yについて未学習であったとする。この場合、新製品Yの画像201を分類部102に入力すると、製品Xの分類カテゴリのスコアが閾値以上となる可能性がある。そして、スコアが閾値以上となった場合には、分類部102の分類結果が正しい製品と一致するので、実際には誤って新製品Yが製造されているにもかかわらず、正否判定部104が正しいと判定してしまう。これにより、新製品Yが、製品Xとして出荷されてしまうといった事態も生じ得る。
ここで、「F_OK」の発生リスクを減らす方法の一つとして、最新の訓練データ202を用いて分類部102の再学習を行うという方法がある。再学習を行うことにより、上述のような未学習の製品についても分類することが可能になり、分類部102が誤分類する確率を下げることができるので、その結果として「F_OK」の発生確率も下げることができる。ただし、再学習に要する労力、時間、費用などを考慮すれば、頻繁に再学習を行うことは必ずしも得策ではない。
そこで、再学習時期決定部109は、実施形態1で説明したパターンの区分に基づいて、分類部102の適切な再学習タイミング(分類部102の分類精度の劣化が許容できなくなる直前のタイミング)を決定する。
例えば、再学習時期決定部109は、誤判定数算出部108が算出したパターン「F_OK」の件数が所定の閾値に達するまでの期間内で、分類部102の再学習の時期を決定してもよい。これにより、パターン「F_OK」が発生しない可能性を高めることができる。特に、上記閾値は1未満とすることが好ましい。これにより、パターン「F_OK」が1回以上発生する可能性を低減することができる。例えば、再学習時期決定部109は、正否判定部104による判定が所定回数行われる毎に、誤判定数算出部108にパターン「F_OK」の件数を算出させてもよい。そして、算出された件数が閾値以上となったときに、分類部102の再学習時期であると決定してもよい。
〔「F_OK」の発生回数の予測について〕
再学習時期決定部109は、パターン「F_OK」の発生回数の予測値が閾値未満である範囲で再学習タイミングを決定してもよい。パターン「F_OK」の発生回数の予測値は、例えば下記の数式(4)で表すことができる。数式(4)において、mは製品の種類数であり、Nは成否判定の総回数である。なお、数式(4)におけるNは、上記(A)でカウントした数ではなく変数である。p、qの定義は実施形態2と同じである。
(パターン「F_OK」の発生回数)=N×(1−p)×(1−q)/m 数式(4)
なお、上記数式(4)は、確率p、qが一定であり、かつm種類の製品の何れについても確率p、qが同一の値であるとの前提に基づいている。この前提において、上記数式(4)が成立する理由について以下説明する。
図4の(b)に示すように、製品が誤りであり、かつ、分類も誤りであるという事象は、パターン「F_NG2」または「F_OK」に該当する。そして、このパターンが発生する確率は、(1−p)×(1−q)となる。よって、N回の判定が行われた場合、パターン「F_NG2」と「F_OK」の合計発生回数は、N×(1−p)×(1−q)と算出される。なお、上述のように、ここでは確率p、qが一定であることを前提としている。このため、正否判定部104による判定が所定回数行われるまでの期間(例えば図11の(b)のグラフにおける破線部分の期間)にカウントした上記(A)〜(C)の値から算出した確率p、qは、それ以降の期間にも適用できる。
また、製品がm種類であり、何れの製品についても確率p、qが同一の値であるから、パターン「F_OK」の1回の発生に対し、パターン「F_NG2」は(m−1)回発生する。よって、n_fng2とn_fokの比は(m−1):1である。したがって、パターン「F_NG2」と「F_OK」の合計発生回数のうち、1/mが「F_OK」の発生回数ということになる。よって、N回の正否判定を行った場合のパターン「F_OK」の発生回数は、上記数式(4)で表すことができる。
〔処理の流れ〕
本実施形態の情報処理装置1が実行する処理の流れを図11に基づいて説明する。図11の(b)は、情報処理装置1がパターン「F_OK」の発生回数の予測値を算出する処理(情報処理方法)の一例を示すフローチャートである。また、図11の(b)には、パターン「F_OK」の発生回数とNとの関係を示すグラフを示している。
S61では、再学習時期決定部109は、パターン「F_NG1」のカウント数n_fng1と、パターン「T_NG」のカウント数n_tngから、製品が正しい確率pと、分類部102の分類が正しい確率qを算出する。確率p、qの算出には、実施形態2に記載した数式(1)、(2)を用いる。
S62では、再学習時期決定部109は、S61で算出した確率p、qと製品の種類数mから、パターン「F_OK」の発生回数を算出する。具体的には、再学習時期決定部109は、上述の数式(4)を用いて上記発生回数を算出する。
S63では、再学習時期決定部109は、S62で算出したパターン「F_OK」の発生回数が閾値未満となる範囲で再学習のタイミングを決定する。具体的には、再学習時期決定部109は、パターン「F_OK」の発生回数が閾値付近(ただし閾値を超えない)となるNを算出する。そして、再学習時期決定部109は、正否判定部104の判定回数が該算出した判定回数Nに達する時期を、分類部102の再学習のタイミング(時期)と決定する。これにより、図11の処理は終了となる。
なお、S62で算出される発生回数は、Nを変数とする一次関数で表される。よって、パターン「F_OK」の発生回数とNとの関係をグラフにすると同図の(b)のようになる。図示のように、分類部102が分類する画像201の総数Nが増加するのに比例して、縦軸の値である発生回数が増加する。再学習時期決定部109は、このグラフ上で閾値付近となるNを算出すればよい。
以上のように、再学習時期決定部109は、数式(4)の値が所定の閾値に達しないNの値を算出し、正否判定部104の判定回数が該算出したNの値に達する時期を、分類部102の再学習の時期と決定する。なお、数式(4)において、Nは正否判定部104の判定回数、すなわち分類部102の分類回数のうち、図7のS3でYESと判定された回数である。また、(1−p)×(1−q)は製品(対象物)が誤りであり(所定の分類に属しておらず)、かつ分類部102が誤分類する、という事象が発生する確率を表している。そして、1/mは、上記事象が発生する場合のうち分類部102の分類結果が正しい製品の分類カテゴリと一致する割合を表している。
従って、再学習時期決定部109によれば、「F_OK」の発生回数が許容範囲を超えないような適切な再学習時期を決定することができる。例えば、図11の(b)の例では、閾値を0.75に設定している。この場合、再学習時期決定部109は、例えば上記数式(4)の値が0.75となるNの値を求め、その値から正否判定部104の判定回数の上限値を求めてもよい。この場合、再学習時期は、正否判定部104の判定回数が上記決定した上限に達するまでの時期となる。上記閾値は0.75に限られないが、1未満とすることが好ましい。これにより、「F_OK」が1回以上発生する可能性を低減することができる。
なお、図8のS132、S134、S136、およびS137で判定された各区分のカウント数から再学習時期を決定することもできる。この場合、再学習時期決定部109は、下記数式(5)’の値が所定の閾値に達しないN’(分類部102の分類回数のうち、図7のS3でNOと判定された回数)を算出する。そして、図7のS3でNOと判定された回数が、上記算出したN’の値に達する時期を、分類部102の再学習の時期と決定する。
(パターン「F_OK」の発生回数)=N’×(1−p)×(1−q)/m 数式(5)’
また、上記の例では、確率p、qが何れも一定であるとして再学習時期を決定しているが、確率p、q、特に確率qの変動を考慮して再学習時期を決定してもよい。これにより、より適切な再学習時期を決定することが可能になる。例えば、N0≦N<N1の区間ではq1、N1≦N<N2の区間ではq2のように、Nの区間ごとに異なる値のqを用いて上記発生確率を算出してもよい(N2>N1>N0)。
また、上記の例では、製品が誤りであり、かつ分類部102が誤分類する、という事象が発生する場合のうち分類部102の分類結果が正しい製品の分類カテゴリと一致する割合を1/mとしているが、この例に限られない。例えば、製品ごとに異なる確率p、qを用いて上記割合を算出してもよい。
また、再学習時期決定部109は、分類部102の不明判定の回数(最後に学習を行ってから後の累積回数)、あるいは不明判定の頻度が上限値に達したときに、再学習時期であると決定してもよい。これにより、不明判定となる画像201の数を少なく抑えることができるので、目視判定が行われる回数も少なく抑えることができる。
〔実施形態4〕
本実施形態の情報処理装置1は、実施形態1で説明したパターンの区分に基づいて、分類部102の分類成否判定に用いる閾値を決定する。また、本実施形態の情報処理装置1は、実施形態3で説明した方法で決定した再学習タイミングに分類部102の再学習を行う。これについて、図12および図13に基づいて説明する。
図12は、本実施形態の情報処理装置1の制御部10の構成例を示すブロック図である。本実施形態の情報処理装置1の制御部10には、閾値決定部121と学習部122が含まれている点で、図1の情報処理装置1と相違している。閾値決定部121と学習部122の詳細は以下説明する。
図13は、本実施形態の情報処理装置1が実行する処理を説明する図である。同図の(a)には分類部102の分類結果のスコアScと、分類部102の分類が正しい確率qとの相関関係の一例を示すグラフを記載している。なお、確率qは、分類部102の分類結果のうち正しい分類結果の割合であり、分類成功率と表現することもできる。また、同図の(b)には、本実施形態の情報処理装置1が実行する処理の流れを示すフローチャートを記載している。
図13の(a)に示すように、分類部102が分類結果と共に出力したスコアScが大きいほどその分類が正しい分類である確率qは高くなる。このため、閾値を大きく設定するほど分類部102の誤分類を減らすことができる。ただし、閾値Tが大きいほど不明判定となる場合が増える。また、スコアScの最大値付近(図13の例では100%付近)では、スコアScの増加率に対する確率qの増加率が低下する。このため、必要以上に閾値Tを大きく設定しても確率qの大幅な増加は期待できない上、不明判定が増えて情報処理システム500の処理効率が落ちてしまう。そこで、閾値決定部121は、以下説明するようにして妥当な閾値を決定する。
図13の(b)に示すように、閾値決定部121は、まず閾値の初期値T0を決定する(S81)。T0をどのような値に設定するかは予め決めておいてもよいし、入力部30を介した操作等によりユーザが指定してもよい。この後、情報処理システム500は、S81で決定された閾値T0を用いて図7に示した処理を繰り返し実行する。そして、これにより、判定結果管理部105によってパターンの区分結果、すなわち各パターンのカウント数が記録・更新されていく。
パターンの区分結果がある程度蓄積された段階(例えば、区分結果の総数が所定数に達した段階)で、閾値決定部121は、確率qとスコアScの相関関係を示す関係式を求める(S82)。なお、上記関係式を求めるため、図7のS2で行われた分類において分類部102が出力したスコアを記憶しておく。
関係式の導出は、(1)スコアを複数の数値範囲で区分し、(2)各区分について確率qを算出し、(3)区分ごとの確率qの値から、近似曲線すなわちスコアと確率qの関係式を求める、という手順で行ってもよい。なお、確率qの算出方法は、実施形態2、3で説明したとおりであるからここでは説明を繰り返さない。
例えば、図7のS2で行われた分類のうち、分類結果のスコアが80%以上90%未満であった件数が100件であれば、それら100件の区分結果から確率qを算出する。これにより、スコアが80%以上90%未満であった場合に分類部102が正しく分類する確率qを算出することができる。そして、他の数値範囲のスコアについても同様にして確率qを算出し、各数値範囲における確率qの値から近似曲線を導出することにより、図13の(a)のグラフのような関係式を得ることができる。
次に、閾値決定部121は、S82で求めた関係式を用いて新たな閾値T1を決定する(S83)。ここで、閾値決定部121は、その閾値T1を適用した場合に確率qが所定の下限値以上となるように閾値T1を決定する。例えば、図13の(a)の例では、所定の下限値を0.75としている。この場合、例えば、図13の(a)の関係式(グラフ)に0.75を代入することにより算出した値を閾値T1と決定してもよい。また、確率qが確実に0.75以上となるように、0.75よりも大きな値(ただしT0よりは小さい値であることが好ましい)を上記関係式に代入することにより算出した値を閾値T1と決定してもよい。
この後、情報処理システム500は、S83で決定された閾値T1を用いて図7に示した処理を繰り返し実行し、これにより判定結果管理部105によるパターンの区分結果が蓄積されていく。パターンの区分結果がある程度蓄積された段階(例えば、区分結果の総数が所定数に達した段階)で、再学習時期決定部109は、パターン「F_OK」の発生回数の予測値を算出する(S84)。また、再学習時期決定部109は、S84で算出したパターン「F_OK」の発生回数が閾値未満となる範囲で再学習のタイミングを決定する(S85)。なお、S84、S85の処理は、図11のS62、S63と同様であるからここでは説明を繰り返さない。
そして、学習部122は、S85で決定されたタイミングに分類部102の再学習を行う(S86)。再学習は、例えば記憶部20に記憶されている訓練データ202を用いて行うことができる。この再学習により分類部102が分類に用いる学習済みモデルが更新される。
従ってS86の処理により、確率qとスコアScの関係式も変化するので、S86の終了後、処理はS81に戻り、閾値決定部121が閾値の初期値T0を決定する。なお、再学習後に決定する閾値は、T0と異なる値に設定してもよい。この後は、上記と同様に、S82〜S83で閾値T1が決定され、S84〜S85で再学習タイミングが決定されて、S86で再学習が行われる。このように、図13の(b)の処理によれば、閾値T1の決定と再学習が繰り返し行われる。
以上のように、分類部102と正否判定部104を含む判定システムでは、分類部102の分類結果のスコアが閾値以上であった場合に、当該分類結果に基づいて対象物が所定の分類に属するか否かを判定する。また、閾値決定部121は、分類部102による分類結果のスコアと、当該スコアの分類結果のうち正しい分類結果の割合である確率q(分類成功率)との相関関係に基づき、確率qが所定の下限値以上となる閾値T1を決定する。これにより、確率qに対する要求水準を満たす範囲で妥当な閾値T1を決定することができる。なお、閾値T1の決定に用いるスコアは、上記閾値以上のスコアに限られない。例えば、閾値決定部121は、分類部102が出力したスコアのうち、目視判定により分類結果の成否が確認されたスコアの全てを用いて閾値T1を決定してもよい。
また、閾値決定部121は、分類部102が出力したスコアと、判定結果管理部105が区分した各パターンのカウント数から算出した確率qに基づいて閾値T1を決定するから、分類部102の学習状態に応じた閾値T1を決定することができる。例えば、図13の(b)の例のように、閾値決定部121は、分類部102の再学習が行われる度に、再学習後における、分類部102が出力したスコアと、当該スコアの分類結果における確率qとの相関関係に基づいて閾値T1を決定してもよい。これにより、再学習により分類部102の分類精度を維持または向上しつつ、閾値T1も適切な値に維持することができる。
〔システムによる実現例〕
情報処理装置1の機能は、相互に通信可能な複数の装置からなるシステムで実現することもできる。この場合、上述の各処理は、該システムを構成する複数の装置の何れかが行う。例えば、判定結果管理部105を備えた第1の情報処理装置と、誤判定数算出部108を備えた第2の情報処理装置とを設けてもよい。この場合、第2の情報処理装置は、第1の情報処理装置でカウントされた各パターンのカウント数などの情報を用いて誤判定数を算出する。また、例えば、再学習時期決定部109を備えた第3の情報処理装置を設けてもよく、この場合、第3の情報処理装置は、第1の情報処理装置でカウントされた各パターンのカウント数などの情報を用いて再学習時期を決定する。
〔ソフトウェアによる実現例〕
情報処理装置1の制御ブロック(特に制御部10に含まれる各部)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。これは、目視検査端末2および端末装置3の制御ブロックについても同様である。
後者の場合、情報処理装置1は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一態様にかかる情報処理装置は、画像中の対象物を機械学習済みの分類部で分類することにより当該対象物が所定の分類に属するか否かを判定する判定システムにおける上記分類部の分類結果を区分する情報処理装置であって、上記分類部による分類済みの対象物について行われた目視判定において、(1)上記対象物の上記所定の分類への属否、および(2)上記分類部による分類結果の正否、が判定された結果である目視判定結果を取得する目視判定結果取得部と、上記目視判定結果における上記(1)、(2)の組み合わせに応じて上記分類部の分類結果を区分する区分部と、を備えている。
上記情報処理装置は、上記(1)、(2)の組み合わせに応じた区分のうち、上記(2)の目視判定結果が上記分類結果は正しいとの結果である区分に係る分類に用いられた上記画像に対して、上記分類部の分類結果を正解データとして対応付けて、上記分類部の再学習に用いる訓練データとする訓練データ生成部を備えていてもよい。
上記情報処理装置は、上記(1)、(2)の組み合わせに応じた区分のうち、上記(1)の目視判定結果が上記対象物は上記所定の分類に属するとの結果である区分に係る分類に用いられた上記画像に対して、上記所定の分類を正解データとして対応付けて、上記分類部の再学習に用いる訓練データとする訓練データ生成部を備えていてもよい。
上記訓練データ生成部は、上記分類部の分類結果の確度が閾値未満であった上記画像から上記訓練データを生成するものであってもよい。
上記情報処理装置は、上記判定システムの判定結果が上記対象物は上記所定の分類に属するとの結果であった判定に用いられた上記画像に対して、上記分類部の分類結果または上記所定の分類を正解データとして対応付けて、上記分類部の再学習に用いる訓練データとする訓練データ生成部を備えていてもよい。
上記情報処理装置では、複数の異なる対象物を撮影した複数の画像のそれぞれについて上記判定システムによる判定が行われた場合に、上記区分部は上記各区分に該当する分類結果の件数をカウントし、上記複数の異なる対象物についての判定のうち、上記判定システムにより上記対象物は上記所定の分類に属すると判定されたが、実際には上記対象物は上記所定の分類に属しておらず、上記分類部が上記所定の分類に属すると誤分類した件数を、上記カウントの結果に基づいて算出する誤判定数算出部を備えていてもよい。
上記情報処理装置は、上記誤判定数算出部が算出した上記件数が所定の閾値に達するまでの期間内で、上記分類部の再学習の時期を決定する再学習時期決定部を備えていてもよい。
上記情報処理装置は、(上記対象物が上記所定の分類に属しておらず、かつ上記分類部が誤分類する事象が発生する確率)×(上記分類部の分類回数)×(上記事象が発生する場合のうち上記分類部の分類結果が上記所定の分類となる割合)<(所定の閾値)
との数式を満たす上記分類部の分類回数を算出し、上記分類部の分類回数が該算出した分類回数に達する時期を、上記分類部の再学習の時期と決定する再学習時期決定部を備えていてもよい。
本発明の一態様にかかる情報処理方法は、画像中の対象物を機械学習済みの分類部で分類することにより当該対象物が所定の分類に属するか否かを判定する判定システムにおける上記分類部の分類結果を区分する情報処理装置による情報処理方法であって、上記分類部による分類済みの対象物について行われた目視判定において、(1)上記対象物の上記所定の分類への属否、および(2)上記分類結果の正否、が判定された結果である目視判定結果を取得する目視判定結果取得ステップと、上記目視判定結果における上記(1)、(2)の組み合わせに応じて上記分類部の分類結果を区分する区分ステップと、を含む。
上記情報処理装置としてコンピュータを機能させるための情報処理プログラムであって、上記目視判定結果取得部および上記区分部としてコンピュータを機能させるための情報処理プログラムも本発明の範疇に含まれる。