図面 (/)
課題
解決手段
概要
背景
概要
識別器を使った物体の外観の状態において、異なる環境における推定結果の差を低減する 上記課題を解決する本発明にかかる情報処理装置は、物体の特徴を識別器に入力し、該物体の外観の状態を推定する情報処理装置であって、第1環境における前記物体の第1特徴と、第2環境における前記物体と同種の物体の第2特徴と、を取得する取得手段と、前記第1特徴を前記識別器に入力した第1推定結果と、前記第2特徴を前記識別器に入力した第2推定結果とが同様の外観の状態を出力するように、前記識別器のパラメータを設定する学習手段と、を有することを特徴とする。
目的
本発明はこのような問題点に鑑みなされたもので、識別器を使った物体の外観の状態において、異なる環境における推定結果の差を低減することを目的とする
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
物体の特徴を入力された識別器に基づいて該物体の外観の状態を推定する情報処理装置であって、第1環境における前記物体の第1特徴と、第2環境における前記物体と同種の物体の第2特徴と、を取得する取得手段と、前記第1特徴を前記識別器に入力した第1推定結果と、前記第2特徴を前記識別器に入力した第2推定結果とが同様の外観の状態を出力するように、前記識別器のパラメータを調整する学習手段と、を有することを特徴とする情報処理装置。
請求項2
前記第2環境は、前記第1環境の所定の時間後の環境であることを特徴とする請求項1に記載の情報処理装置。
請求項3
前記第1環境は、前記情報処理装置である第1装置において前記物体の外観を推定したときの環境を示し、前記第2環境は、前記第1装置と同種であって異なる装置である第2装置において前記物体と同種の物体の外観を推定したときの環境であることを特徴とする請求項1に記載の情報処理装置。
請求項4
前記第1特徴と前記第2特徴とに基づいて、前記第1特徴と前記第2特徴が異なることを検知する検知手段を更に有し、前記学習手段は、前記検知手段によって前記第1特徴と前記第2特徴との差が所定の値より大きい場合に、前記識別器のパラメータを設定することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
請求項5
前記検知手段は、前記第1特徴と前記第2特徴とに基づいて、前記第1環境と前記第2環境が異なることを検知し、前記学習手段は、前記第1特徴を前記識別器に入力した第1推定結果と、前記第2特徴を前記識別器に入力した第2推定結果とが同様の外観の状態を出力するように、前記第1物体の特徴に基づいて学習された前記識別器のパラメータを設定することを特徴とする請求項4に記載の情報処理装置。
請求項6
前記取得手段は、前記第1環境において外観の状態についての情報が付与された物体群の少なくとも1つである第1物体の前記第1特徴と、前記第1環境とは異なる前記第2環境における前記第1物体と同種の物体群の少なくとも1つである前記第2物体の前記第2特徴とを取得することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
請求項7
前記第1物体を計測した第1計測結果または前記第2物体を計測した第2計測結果からそれぞれ前記第1特徴と前記第2特徴とを抽出する抽出手段をさらに有し、前記検知手段は、前記抽出手段によって抽出された特徴に基づいて、前記第1特徴と前記第2特徴とを比較することによって前記第1特徴と前記第2特徴との差を検知することを特徴とする請求項4乃至6のいずれか1項に記載の情報処理装置。
請求項8
前記学習手段によって設定された前記識別器のパラメータを用いて、前記第2環境における前記物体と同種の物体の外観の状態を推定する推定手段をさらに有することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
請求項9
前記第1物体の特徴を前記学習手段によって設定された前記パラメータを用いた前記識別器に入力した第3推定結果を出力する出力手段を更に有し、前記第3推定結果をユーザによって確認した後に、前記パラメータを変更する指示を受け付ける受付手段をさらに有することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
請求項10
前記第1特徴と前記第2特徴との変化を検知する所定の条件を設定する設定手段をさらに有し、前記検知手段は、前記所定の条件に基づいて前記第1特徴と前記第2特徴との変化を検知することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
請求項11
前記検知手段は、前記第1特徴うち外観が正常な状態の特徴と、前記第2特徴のうち正常な状態の特徴とが前記所定の条件を満たさない場合、前記第1特徴と前記第2特徴との変化を検知する請求項10に記載の情報処理装置。
請求項12
前記学習手段によりパラメータが調整された前記識別器が識別した外観の状態の確からしさが不十分であると判断された場合、前記学習手段は、前記第2特徴を入力したときに出力されるべき外観の状態を与えて、前記識別器のパラメータを調整することを特徴とする請求項1に記載の情報処理手段。
請求項13
請求項14
技術分野
背景技術
0002
近年、生産現場における外観検査工程等において、外観検査の自動化のニーズが高まっている。自動化の技術としては、例えば、予め設定された照明系による環境下、エリアセンサ等による信号取り込みによって得られた映像・画像データに対して事前に定義された識別器により良品か不良品かについての物体の外観の状態を推定する技術が知られている。例えば特許文献1には、外観検査において検査対象を撮影した画像から特徴抽出し、異常データを正常データから推定する特徴量や識別器の設定を機械学習によって探索し、検出する方法が開示されている。
先行技術
0003
特開2010−102690号公報
発明が解決しようとする課題
0004
外観検査では、撮影条件や製品の製造・加工法の僅かな違いによって異常領域の撮像画像が変わることが多い。特許文献1の方法では、上記の変化が発生した場合、また改めて学習を行う必要があり、手間がかかる。
0005
本発明はこのような問題点に鑑みなされたもので、識別器を使った物体の外観の状態において、異なる環境における推定結果の差を低減することを目的とする。
課題を解決するための手段
0006
上記課題を解決する本発明にかかる情報処理装置は、物体の特徴を識別器に入力し、該物体の外観の状態を推定する情報処理装置であって、第1環境における前記物体の第1特徴と、第2環境における前記物体と同種の物体の第2特徴と、を取得する取得手段と、前記第1特徴を前記識別器に入力した第1推定結果と、前記第2特徴を前記識別器に入力した第2推定結果とが同様の外観の状態を出力するように、前記識別器のパラメータを設定する学習手段と、を有することを特徴とする。
発明の効果
0007
本発明によれば、識別器を使った物体の外観の状態において、異なる環境における推定結果の差を低減できる。
図面の簡単な説明
0008
ハードウェア構成の一例を示す図
情報処理装置の機能構成例を示すブロック図
情報処理装置が実行する処理の流れを示すフローチャート
情報処理装置が実行する処理の流れを示すフローチャート
情報処理装置が実行する処理の流れを示すフローチャート
本発明の実施形態に関する2つの分布を比較する例を模式的に表した図である。
本発明の第1および第2の実施形態に関する外観検査における撮影条件設定パラメータと対象サンプル可視化の対応関係を模式的に表した図である。
GUIの一例
検査の工程を説明する図
情報処理装置が実行する処理の流れを示すフローチャート
実施例
0009
以下、本発明の実施形態について図面に基づいて説明する。
0010
(第1の実施形態)
自動化された外観検査では、検査対象を撮像した際に異常領域の有るサンプルでは異常領域が可能な限り明瞭に撮影されるよう、ユーザが事前に厳密に照明条件やエリアセンサの設定を調整しなければならないことが多い。よって、この撮影に関する設定の一部が微小に変化しただけで撮影画像の性質が変わり、自動検査時の判定結果を誤る原因になりうる。照明条件は時間の経過と共に光源の特性が変わることにより劣化することが多く、その場合は撮像環境が徐々に変動する。そのほか、エリアセンサの角度が緩やかに変わる等の微小な変化が起こったとしても、撮影画像の性質は変わる可能性が有る。該撮影画像の性質の変動は人が目視で確認して感知できるレベルの変化ではないことも有り、さらに撮像画像から抽出した特徴量を単独で評価するだけでは差異を検知できないことも有る。しかし、特徴抽出を実施して特徴空間内で複数のデータの分布を評価してみると分布の中心やバラつきが以前と比べて変わってきているといった差が生じていることも有りうる。このような場合、検査装置立ち上げ時の設定では正しく検査を継続できなくなる。特に、検査装置立ち上げ時には存在しなかったような画像が入力され続けることにより、入力画像の多くを異常であると判定する、といった不都合が起こる。
0011
上記したような変化による検査性能の劣化に対応する場合、従来はユーザが検査ラインを自ら止めて調整を行うことにより対応してきた。具体的には、識別器のパラメータを微調整し、新しい撮影環境に判定結果が合うように対応するか、検査対象の撮影条件を微調整し、立ち上げ時と同等の画像が撮影できるように修正して対応してきた。なお、ここで扱う識別器は、物体の外観の状態を識別する学習を行った学習済みモデルであるとする。例えば、ニューラルネットワークやサポートベクターマシン等である。しかし、識別器を定義するパラメータが高次元の場合は人手による調整に時間がかかるため、頻繁に調整しなければならない現場ではメンテナンスコストが膨大にかかってしまう。その上、入力画像の性質を合わせるための撮影条件の調整は人が目視で確認しながら微調整するなどの工程も必要となるため調整に係る作業量はさらに増加する。そのため、ユーザの意図しない変化については可能な限り自動的に判定結果を誤らせないように調整することのできる技術が望まれてきた。微小な環境変化が有ったとしても、検査性能が劣化しない限りは自動調整で対応し、人手による調整は自動調整では対応できない状態になった場合のみにするだけで大きなコスト削減になる。
0012
そのほか、検査ライン立ち上げ時、同種の対象物体を検査する検査装置が複数あり、各検査装置のほとんどの設定が同様であるとする。それにも関わらず、各々の装置における照明・撮影条件が微小に違うことに起因して、識別器の設定を完全に一致させて運用できないことがある。検査ライン立ち上げ毎に撮影される画像の性質が違うというだけで、各々別個に機械学習による識別器等の設定を実施する場合、正常/異常のラベルの付いたサンプルを充分数用意して新規に画像を撮影するところから着手しなければならない。こういった立ち上げに係る作業コストを減らしたいというユーザニーズも存在する。
0013
つまり、類似した環境で運用される識別器の場合は、既に学習済の識別器の設定を利用して微調整するだけで利用可能な識別器を生成する技術が望まれている。尚、上記説明で環境変動の主な要因を検査対象の撮影環境の変化として説明したが、その他にも製造プロセスの微小な変化であっても同様のことが起こり得る。ここで言う製造プロセスの微小な変化とは、例えば検査対象物を製造するのに用いられる材料の混合率を微小に変えた場合や、検査対象物の表面加工法を変えた等による変化のことである。該製造プロセスの変化によっても、対象物体表面から反射する光の性質が変わることによって撮影画像に変化が生まれる。
0014
以上で述べた、同一の検査装置の撮影に関わる設定が時間の経過により微小に変化する問題に対し新しい環境での識別器に簡易に更新できることと、類似した撮影設定の検査装置で僅かに異なる設定の違いに簡易に対応できることは同質の課題である。なお、同一の検査装置は、識別器の学習時の検査装置(第1装置)と、所定の時間後の検査装置とを含む検査装置(第2装置)とみなせる。両者共、ほとんど類似した環境で正しく識別処理を実行するための調整を簡易に行う処理によって対応することができる。
0015
同一の識別器を用いた認識において、同一の認識対象であっても装置の違いや環境の違いによって入力情報に微差が存在し、認識結果に差が生じてしまう。このように、入力情報に差異があっても、識別基準の変化に対応することのできる学習方式として転移学習が有る。抽出された特徴量の分布から学習したクラスに属するか否かを判断するタスクを、類似した環境で取得された特徴量の情報を用いて解決する、という課題に転移学習は適用できる。転移学習を適用することで、訓練データを一から作り直す手間が省ける。転移学習は、訓練データから特徴を学習して識別器のパラメータを調整するよりも、処理負荷が小さい。
0016
第1の実施形態は、複数のデータの中から異常データを検出する異常検出タスクに関する。該異常検出タスクでは対象から特徴抽出を行い該抽出特徴を判断基準として事前に設定した識別器によって異常検知を行う。この際、何らかの理由で上記抽出特徴の性質が僅かに変化した場合に、性能を維持するためには識別器の設定をこの変異に合わせて修正しなければならない。該実施形態はこれら手続きに関する。ここではより具体的な説明をするため、異常検出の一例として生産現場での画像による自動化された外観検査を挙げる。さらに該外観検査は、事前にいくつかの実サンプルを計測した結果を用いて検査用の撮影パラメータや検査装置の設定パラメータが調整されているものとする。該調整方法はいかなる方法であっても良いが、本実施形態では次に示す方法によって調整されているものとして説明する。
0017
事前に収集した複数の検査対象サンプルが有り、該サンプルには全て正常/異常のラベルが付与されている。該サンプルをエリアセンサ等により撮影して画像信号を取得、またはその他の方法によって計測して信号を取得し、そのうち少なくとも正常サンプルから得られた信号から特徴量を抽出する。該特徴量の中で正常サンプルの分布を定義するのに有効な特徴量を機械学習における特徴選択手法によって複数選択する。正常の特徴分布を低次元のパラメータ組み合わせで表現することにより識別器として用いるものとする。このように定義された識別器を学習する方法としては、具体的な手法として例えば特許文献1に示される方法がある。
0018
このときの情報処理システムの概念図を図1に示した。73の破線で囲われた構成物全てで情報処理システムが構成されている。情報処理システムで検査する検査対象物15は、ベルトコンベア16によって搬送され、情報処理装置12によって良品であるか不良品であるかが判定される。検査対象物15の例として、金属部品、ゴム成型品、プラスチック成型品、レンズ等ガラス成型品、プリント基盤等が挙げられる。検査対象物15の表面に、加工工程の変化等によって良品に見られないキズやムラ等が生じた場合、不良品として検出される。照明装置14は、検査対象物15の表面状態がよくわかるように、適切な照明条件を提供する。撮像装置13は、検査対象物15の表面の映像を取得可能なビデオカメラなどから構成され、撮影した映像を情報処理装置12に送信する。表示装置10はモニタなどから構成され、各サンプルの判定結果や特定の時間間隔に計測されたテストサンプルから抽出された特徴量の分布を視覚化した情報(例えばヒストグラム等)が表示される。入力装置11はキーボードやマウス等から構成され、表示装置10に表示された情報やメッセージに対してユーザが特定のプログラムを実行させる等の指令を受ける。
0019
次に図1を用いて、本実施形態で示す情報処理装置12が実装されるハードウェア構成について説明する。バス120に接続する各デバイスをCPU121が総括的に制御する。読み出し専用メモリ(ROM)123では、本実施形態にかかる各処理プログラム、オペレーティングシステム(OS)、デバイスドライバなどが記録される。ランダムアクセスメモリ(RAM)122では、CPU121処理時に先述したプログラムが一次記録される。また、入力I/F125は、外部の操作装置などから入力した情報を12で処理可能な形式に変換する。また、出力I/F124は、出力する情報を外部の表示装置などが処理可能な形式に変換する。CPU121は、ROM123で記録された処理ステップやプログラムを読み出して、RAM122に一次記録し、後述する各フローチャートに従って処理を実行する。また、CPU121を用いたソフトウェア処理の代替として、後述する各機能部の処理に対応させた演算部や回路から構成されるハードウェアで処理してもよい。
0020
また、通常の検査では使用しないが、撮影環境等が変わったことにより検査精度が落ちることを修正するために、71のサンプル保持部に実サンプル72および抽出特徴が関連付けて保存されている。この実サンプル72は検査対象物そのものであるため、対象の外観が時間経過に伴って変質することのないように可能な限り外界からの影響を受けないように保存することが望ましい。
0021
図2は、本実施形態にかかる情報処理装置の機能構成例を示す。これらの各機能構成について、簡単に説明する。情報処理装置12は、対象物体の状態を識別する装置であって、具体的にはコンピュータである。保持部100は、Sourceサンプル(第1物体群の各物体)を撮像した画像と正常か異常かを示すラベルとを対応付けたSourceデータ(第1訓練データ)を保持する。ここで、識別器による推定結果をラベルとして付与された計測データを訓練データと呼ぶ。第1取得部101は、保持部100から、サンプルを計測したSourceデータ(第1計測データ)を取得する。さらに、第1取得部101は、第1計測データに正常品か不良品かを識別する2値のラベルを付与した第1訓練データを取得する。ラベル付はここではユーザによって行う。なお、識別器の種類や、検査内容によってラベルの種類は可変である。学習部102は、第1訓練データに基づいて、識別器のパラメータを学習(第1の学習)する。この学習によって生成される識別器のパラメータを第1パラメータと呼ぶ。学習された識別器は、Targetサンプル(第2物体群の各物体)を撮像した入力画像に対して、対象物体が正常品であるか異常品であるか識別し、識別結果をラベルとして入力画像に与えたデータを出力する。また、状態遷移が発生した後に、第1訓練データと、追加された第2(推定)データとに基づいて、識別器のパラメータを更新する。第2推定データは、第2観測データを第1パラメータが設定された識別器に入力した(第2)推定結果であって、ここでは第2観測データと、それに対応する物体が正常か異常かの推定結果を含む。尚、本実施形態において撮影環境等が変わったことにより入力画像の見え方が変わるような入力データに関する性質が変わる場合を、状態遷移と呼ぶ。詳しい説明は後述する。
0022
受付部103は、ユーザによって入力された設定情報を受け付ける。設定部104は、設定情報に基づいて、状態遷移が発生した可能性を示す状態遷移度について所定の閾値を設定する。判定部105は、設定情報に含まれる所定の時間Tが経過したか否かを判定する。
0023
第2取得部106は、所定の時間Tの間に検査された物体群(各Targetサンプル)を撮像した画像データ(第2計測データ)を取得する。所定の時間Tとは、識別器を学習させた環境において、識別器を学習させた後から、第2取得部による処理が開始されるまでの時間である。
0024
抽出部107は、第1訓練(計測)データまたは第2計測データのそれぞれから、各データに含まれる特徴(群)を抽出する。以降、第1訓練(計測)データから抽出された特徴を第1特徴、第2計測データから抽出された特徴を第2特徴と呼ぶ。推定部108は、第1特徴と第2特徴とに基づいて、状態遷移度を推定する。詳しい処理は後述する。検知部109は、時間Tの間に状態遷移が発生したことを、状態遷移度と所定の閾値に基づいて、検知する。すなわち、第1特徴と第2特徴とに基づいて、第1特徴と第2特徴との変化を検知する。出力部110は、検知結果やユーザに対するメッセージ等の表示を表示装置に出力する。画面表示に限らず、音声によるアナウンスを出力しても良い。
0025
以下、図3に示した情報処理装置が実行する処理を説明するフローチャートを用いて本実施形態の処理方法の概要について説明する。以下の説明では、各工程(ステップ)について先頭にSを付けて表記することで、工程(ステップ)の表記を省略する。ただし、情報処理装置は必ずしもこのフローチャートで説明するすべてのステップを行わなくても良い。以下、フローチャートは、コンピュータである図1のCPU(121)が外部メモリで格納されているコンピュータプログラムを実行することにより実現されるものとする。
0026
各処理についての詳細な説明の前に、本実施形態で説明する処理の概略を説明する。まず、S300からS303においては識別器を予め学習させるための処理である。すなわち、第1物体(実サンプル)を計測した計測結果に対して、物体の外観の状態を示す情報(例えば物体の外観の状態が正常か異常か)を付与した訓練データを用意し、その訓練データを用いて識別器の初期パラメータ(第1パラメータ)を設定する。S303までで検査装置の初期設定を終えると、S304からS311において実際の外観検査を実行する。検査を開始して一定時間が経過したタイミングで、SourceデータとTargetデータのそれぞれの特徴を比較することによって、物体を計測した計測結果から抽出された特徴に変化があったかを調べる(S304からS308)。この変化が一定割合で発生していた場合は、識別器のパラメータを調整する必要があるため、S309において転移学習(第2学習)を実施する。S309においては、Sourceデータを識別器に入力した第1推定結果と、Targetデータを識別器に入力した第2推定結果とが対応するように、Sourceデータの特徴に基づいて学習された識別器のパラメータを更新する。つまり、学習部102が、第1特徴を識別器に入力した第1推定結果と、第2特徴を識別器に入力した第2推定結果とが同様の外観の状態を出力するように、更新された識別器のパラメータを設定する。これは、Sourceデータの基となる第1物体と、Targetデータの基となる第2物体とは、母集団が共通するサンプルであり、正常品と異常品の発生率はある程度一定であるという性質から成立する処理である。S310では、予め用意した第1パラメータまたは転移学習で更新した第2パラメータを用いて識別器による物体の外観の状態を推定する。以上が、本実施形態のおける処理の概要である。
0027
まず、S300では、第1取得部101が、物体が正常か異常かのラベルが付与されたSourceデータ(第1訓練データ)を取得する。次に、S301では、学習部102が、第1の訓練データに基づいて識別器のパラメータを生成する。すなわち、推定部108で用いられる識別器のパラメータが学習される。これを、Sourceデータ(第1計測データ)による第1の学習と呼ぶ。第1の学習において生成されたパラメータを第1パラメータとする。本学習ステップはあらゆる機械学習によって実施可能であるし、人の手による調整で実施されても構わない。本提案では特定の学習法に限定しないが、特徴抽出、特徴選択、識別モデル学習が行われたものとする。また、ここで用いたSourceサンプルを計測した第1計測データをSourceデータと呼ぶことにする。つまり、72に保持されている実サンプル72を撮像または計測した画像(または計測値)をSourceデータと呼ぶ。ここでは、入力データは画像データであり、Sourceデータはサンプルを撮像した画像とその画像に対するラベルを含むものとする。さらに、Sourceデータに対して、正常/異常ラベルが画像(計測値)に与えられたデータを第1訓練データと呼ぶ。また、ここで用いた異常ラベルが付与された第1訓練データに対応するサンプル(異常であると推定された物体)は後段の状態遷移検知時の識別器修正のために利用するため、実サンプル72ごと保持される。さらに、ここで学習のために抽出した第1計測データの(画像)特徴についても、後段の状態遷移検知時の識別器修正で利用するため、保持部100に保持される。そして撮影条件を変更すべき場合は通常の検査対象ではなく71のサンプル保持部に保持された72のサンプルが搬送部16を流れて74の再撮影済サンプル保持部に保持されるように動作する。なお、S300の処理は、前以て実サンプル71を使った第1訓練データで学習されている識別器とその(第1の)パラメータが予め用意されてあれば、第1の学習処理を省略しても良い。その場合は、学習部102に、前もって学習された識別器とそのパラメータを設定する。
0028
S302では、受付部103が、ユーザから入力された設定情報を受け付ける。具体的には、受付部103はS302にてユーザからオンライン検査実行時に状態遷移を検知するための設定情報を受け付ける。S302でユーザ入力から受け付ける設定情報はS205で利用する所定の時間間隔Tを含む。また、設定情報は、S306およびS310で利用することのある、生産ラインでの異常の発生頻度の上限および下限値を含む。さらに、設定情報は、正常判定データ基準で計算可能な状態遷移度がどの値になったときに状態遷移が起きたことを知らせるアラートメッセージを出すかを決定する閾値を含む。S303では、設定部104が、設定情報に基づいて状態遷移を判定する為の設定を設定する。具体的には、設定部104は、入力画像の見え方が変わるような入力データに関する性質が変わる状態遷移が発生したか否かを判断するための、状態遷移の程度に対する所定の閾値を設定する。
0029
先述した時間間隔Tの設定は、運用上でユーザが状態遷移をどのタイミングで知りたいか、環境変動の可能性が高いか低いかによって設定する。1時間毎に検知しなければならないのか、24時間毎に検知すれば充分であるかなど工程の性質等で決めることができる。
0030
先述した異常の発生頻度とは、生産現場において製造される製品/部品の欠陥品が製造される頻度のことであり、単位時間当たりに製造される製品/部品のうち何個が欠陥品であったかによって算出される。この値は、生産ラインの生産能力によって決定され、数値が低い方が良いことは言うまでもない。ただし、この数値を限りなく0に近づけるような製造能力を持つ生産ラインを目的とした設計のラインにすると製造工程が極端に複雑化するなどコストが膨れ上がることも多い。通常はある程度の欠陥品が製造されることを許容したラインが組まれ、検査工程で欠陥品を除去するようになっている。
0031
先述した異常発生頻度の上限および下限値について補足する。従来、生産ラインではライン設計時および試用時に異常がどの程度発生するかデータを取っておき、実運用時の異常発生頻度を予測してきた。そして予測値を基に閾値を設定しておき、異常発生頻度が閾値を超えるとアラートメッセージを出し、工程異常を検知して対応する、というのが一般的に行われてきた。先述した異常発生頻度上限値も従来の閾値と同様の意味であり、同様に設定することを前提としている。実運用では異常発生頻度が5%程度のときに異常発生頻度上限値を5%にしておくと不要なアラート(誤報)が頻繁に発生するため、ある程度のマージンを取って(例えば8%等)設定することが多い。先述したアラートは通常、異常発生頻度が増加したことを知らせることを目的とするものであるため上限値のみを設定することが多いが、本実施形態では状態遷移を精度良く求めるために下限値も設定する。これは予測される異常発生頻度が極端に低くなった場合も、状態遷移が起こっている可能性が有るため、これを検出する目的で設定する。設定の仕方は上限値と同様である。
0032
また、状態遷移度とは学習済み正常クラスの分布のズレをスコア化するために定義する値で、後述の数1に例示される確率分布間距離の差の累積値で表すことができる。正常の分布のズレを計算する際、異常の発生頻度によって推定精度が変わるが、通常は異常の発生頻度は少ないため異常の存在を無視しても良い推定精度を得ることができる。状態遷移度は0以上の値になるが、状態遷移度の閾値を極端に小さな値を設定しておくと誤報が増加する。初期設定の閾値は適当な値にして運用開始後、より良い値は実際に運用しながら決定することが望ましい。状態遷移が起こっていない通常状態では状態遷移度はある一定の範囲の値で安定する。そのため、良好な閾値を決定する方法としては実運用開始し、工程異常を含めた環境変動が起こっていないことを確認して例えば100回状態遷移度を算出する。所定の確率分布密度、例えばポアソン分布や所定の正規分布を導入する等により、適当なタイミングで状態遷移を検知したアラート(通知)を出すことができるようになる。
0033
S304では、判定部105が、設定情報に含まれる所定の時間Tに従って、ある環境において識別器を学習させた後から現時点までに所定の時間Tが経過したか否かを判断する。S302で(例えば、識別器の第1の学習がされた時点から、または最後に識別器のパラメータが更新された時点)ユーザによって指定された所定の時間Tが経過したかどうか判断する。状態遷移は入力データ全体の分布の変動による微小な変化であることが多いため、単一の入力データの計測値のみによって検知することは難しい。よって、所定の時間Tが経過していなければS310に進む。所定の時間Tが経過していた場合、状態遷移が発生している可能性があるため、S305に進む。
0034
S305では、第2取得部106が、最後に識別器の学習を行ってから所定の時間後に検査された複数のサンプル(第2物体群;以降、Targetサンプルと呼ぶ)を計測した第2計測データ(画像または計測値)を取得する。第2計測データは、Targtサンプルを撮像した画像とその撮像時刻を対応付けたデータを含む(Targetデータ)。S306では、抽出部107が、第1訓練(計測)データまたは第2計測データのそれぞれから、各データに含まれる特徴(群)を抽出する。なお、第1特徴(群)は、第1の訓練データ、第1計測データまたは第1推定結果の少なくとも1つから抽出された特徴である。同様に、第2特徴(群)は、第2計測データ、第2訓練データまたは第2推定結果のうち少なくとも1つから抽出された特徴である。なお、第1特徴と第2特徴は同じ特徴空間で表せるものとする。
0035
S307では、検知部109が、第1の特徴と第2の特徴とに基づいて、第1計測データと第2計測データとの差を検知する。第1計測データと第2計測データとの差は、対象となる物体群を計測する際の環境の変化の有無を示す。これを状態遷移度として取得し、設定された所定の条件と比較する。所定の条件を満たす(例えば、差が所定の閾値より大きい)場合は、状態遷移があったとして処理を進める。すなわち、検知部109が、Sourceデータと、Targetデータの分布とに基づいて、対象物体を計測したデータの傾向の差を示す状態遷移度を推定する。ここで言う状態遷移度として利用できるスコアの例を数1に示す。先述した状態遷移度はSourceサンプルから抽出されたSourceデータの分布とTargetサンプルから抽出されたTargetデータの分布の分布間距離の差を基に定義された損失関数の累積スコアである。
0036
Sourceデータの特徴空間内の分布およびTargetデータの特徴空間内の分布を定義する真の関数についてもし事前に知っている場合はこれらを各々Ps、Ptとして表し、この二つの分布の差を求めれば良い。しかし、通常、真の分布関数を事前に知ることはできないため、計測データから推定する。このとき推定された分布関数を真の分布関数と区別するためにPに^(ハット)を付与して区別する。
0037
0038
また、このとき各々の推定された分布の関数はSourceおよびTargetで収集されたサンプルから抽出された特徴量xとパラメータθによってモデル化される。この関数は対象とする分布を表現するのに適したレベルの関数形であれば良い。例えばSource側の推定された分布を推定した関数を数2、Target側の推定された分布を推定した関数を数3のように表せる。ここで各々のθs、θtは各々のカーネルの係数となる。
0039
0040
0042
Targetサンプルのサンプル数は確率分布を安定して推定するのに十分な数存在することが望ましい。ここでいう十分な数とは特徴空間内でのデータ分布のバラつきを表現するのに十分な数という意味であり、課題の難しさ依存となる。このとき、状態遷移度はSourceサンプルで学習され定義された特徴空間内で2つの分布を比較するため、少なくとも該特徴空間が定義する空間内で分布が推定できないほど疎にならない数量を目安にする。このときの分布間距離を定義する損失関数は、例えば数4に示すような二乗誤差で良い。
0043
0044
尚、二乗誤差以外の例としては、カルバックライブラー情報量やピアソン距離など、目的によって適した関数を設定すると良い。数2および3に示した分布形状を推定する最も一般的な方法はKDE(Kernel Density Estimation)である。よって、数2および3のようなモデル化によって推定されるSourceとTargetの分布同士の分布間距離を数1で定義すれば、この値が所定の閾値より大きくなった場合に状態が遷移したと判断することができる。
0045
以上から、数1に示したSourceとTargetの2種の分布の推定関数の差Eを同じXの値域における差を累積して求めることにより状態遷移度として用いることができる。理想的には、SourceデータとTargetデータの真の分布を推定することができたとき、状態遷移が全く起こっていない場合、確率分布間距離は0になる。
0046
各々の分布関数を推定する際、該推定を容易にするための方法として、正常ラベルが付与されたデータのみで推定する方法も有る。この場合は、Sourceの分布は正常サンプルのみを用いて推定する。なぜなら、異常検出タスクの多くのケースでは異常信号はバリエーションが多い上、収集できるサンプル数は正常に比べてずっと少ないため、それら偏りの有る少ないデータで良い推定をすることが難しい為である。確実に正常であるというデータのみで分布を推定した方が安定して推定することが可能である。この場合も、数1に示した状態遷移度においてPsの意味が正常ラベルの付与されたSourceデータのみを表す分布になるだけであり、他は同じである。尚、ここでもし、Targetサンプルに対して識別器が判定した正常/異常ラベルを利用する。正常判定されたTargetデータとSourseの正常データを用いて数1に示した状態遷移度を算出することにすると、算出された状態遷移度は期待する通りに利用できない可能性が高い。それは、Targetサンプルについては、識別器が判定した正常/異常ラベルのみしか存在しない。ゆえに真のラベルは分からないため、真のラベルは正常であるにも関わらず状態遷移に対応する前の識別器での判定で異常と判定されたものを除外して状態遷移度を求めると、本来算出すべき遷移度より小さい値になってしまうためである。
0047
よって、最も期待する状態遷移度を求めるためには、Sourceデータ側は正常ラベルを与えたデータのみで、Targetデータ側は全てのデータを使って求める場合が良い結果を得ることが多い。
0048
Sourceデータ全てを使う、または正常のみ使う、どちらの方法も先述した数1では異常の発生頻度は通常の正常頻度に比べて僅かであるという前提を暗黙に利用し、混入した異常事例が状態遷移度に与える影響は微小であるために成立する。先述した分布間距離に基づく状態遷移度は、識別器を更新するかどうかの目安にする値であるため、多少の異常データが混入した状態の値であっても運用上問題となることは無い。ただし、異常データの頻度が無視できないほど多く、Targetサンプル全てを正常とみなして分布を推定することができない場合などは、以下のようにして事前に前処理的に異常らしいデータを排除してから求めると良い。
0049
異常らしいデータを特定する方法は、クロスバリデーション(交差検定)によって分布を推定するために用いるデータと、それ以外のデータに分割して尤度を根拠に異常らしいデータを特定する処理を繰り返すことによって求めることができる。
0050
例えばTargetサンプルを分布推定用のサンプルとそれ以外のサンプルに分割し、分布推定用のサンプルでKDE等のアルゴリズムによって分布推定し、残りのサンプルの正常らしさ(尤度)を求める。そして分布推定用のサンプルを別のサンプルの組み合わせにして残りのサンプルの正常らしさ(尤度)を求める…これらの処理を繰り返し、全サンプルの平均的な尤度を求める。該平均尤度に基づいて、全Targetサンプルに平均尤度の低い順でランクを付与する。そして、既にS202でユーザによって与えられた異常の発生頻度の上限と下限から、全Targetサンプル数と該発生頻度によって含まれる異常サンプルの上限数と下限数を求める。先述した平均尤度の低い順から先述した上限数番目から下限数番目の間で適当な個数を求め、これらを除去すべき異常サンプルとして排除すれば良い。そして、残ったTargetデータとSourceの正常データを用いて数1の式に則り、分布間距離を求めることができる。
0051
S308では、検知部109が、第2取得部107で推定された状態遷移度が、設定情報に含まれる所定の閾値より大きいか否かを判定し、状態遷移を検知する。状態遷移度が所定の閾値より大きく、状態遷移が発生したと検知された場合は、S309に進む。状態遷移度が所定の閾値未満である場合は、状態遷移は発生していないものとしてS310に進む。すなわち、先述の関数から求めた状態遷移度に基づき、ユーザがS302にて設定した閾値以上であるかどうかS307にて判定し、ここで閾値を超えなかった場合はそのままの識別器のまま検査を継続して良いものと判断され、S310の通常検査へ移行する。
0052
また、ここで閾値以上であった場合は、S309にて転移学習(第2の学習)を行う。修正候補となる識別器の計算ステップに移る。S309では、学習部102が、第1特徴を識別器に入力した第1推定結果と、第2特徴を識別器に入力した第2推定結果とが同様の基準を満たすように、識別器のパラメータを設定する。転移学習を行うことによって、識別器のパラメータを更新する。詳しい処理について図4のフローチャートで説明する。
0053
S3090では、出力部110が、識別器が修正を必要とするレベルに達したということをユーザに知らせるためのメッセージを表示装置10の画面に表示させる。このとき画面に表示される該メッセージの内容には、例えば先述した識別器の修正が必要と判断された(撮影画像の性質が変わった)理由が含まれるとユーザの判断の助けになる。ここで表示する理由としては、本メッセージを出す条件としてユーザがS302にて設定した値によって、異常検出率が上限閾値を超えたとき、下限閾値未満の値を示したとき、または数1で示した状態遷移度が閾値を超えた等である。このときの表示メッセージの例を図8(A)に示した。尚、図8(A)の表示例では、本識別器の修正処理が自動で開始し、以降で説明する更新手続きが既に始まっていることを60のプログレスバーで表現している。
0054
そして、S3091では、学習部102が、第1訓練データのうち正常ラベルを含むデータと、第2訓練データとに基づいて、識別器のパラメータを更新する。S300にて学習時に保存しておいた正常ラベルの付与されたSourceデータから抽出された特徴量の特徴空間における分布と、先述した最新のTargetサンプルから抽出された特徴量の特徴空間における分布を基にして識別器の修正処理を実施する。
0055
ここで、識別器の修正処理アルゴリズムについて説明する。まず、具体的な説明の前に各表記と意味について説明する。既にSourceサンプルによって学習済の識別器の関数を数5のように表記する。
0056
0057
この関数はSourceデータの特徴ベクトルXが入力された場合に、異常度スコア/正常度スコアを出力するように学習された関数であれば何でも良い。そして、状態遷移したクラスに対応するTargetサンプルの識別器の関数を数6のように表記することにする。本実施形態では数6に表記するTargetデータの入力に対する異常度スコア/正常度スコアの出力関数を求める方法であるため、現時点ではこの関数の中身は分からないものとする。
0058
0059
数5、数6はどちらも同じ識別モデルで定義され、入力される特徴量を定義する特徴空間は基本的に同じであることを前提としている。尚、ここで利用する識別モデルの例としては、SVM(サポートベクターマシン)や、ニューラルネットワーク、k−NN、部分空間法によるモデル化など何でも良い。
0060
さらに、Xsの正常データを基に数2および数3に示された式で推定されたガウスカーネルモデルの出力値そのものを数5の出力値として用いても問題無い。つまり、数5で表記される関数は特徴量Xが入力されれば、正常らしさ/異常らしさをスコアで返す形式であればどのような関数でも用いることができる。また、既に数5に示した識別器の関数を定義するのに用いたサンプルから抽出した特徴量を数7のように表記し、各々のサンプル識別IDを添字iで表す。
0061
0062
基本的に、数7で表される特徴量は正常サンプルのみから成るものとする。同様に、Target側のサンプルから抽出された特徴量を数8のように表記し、各々のサンプル識別IDを添字jで表す。
0063
0065
図6は横軸が特徴量X、縦軸が各々関数の出力する正常らしさスコアYを表している。つまりスコアYが低いものほど異常らしさスコアが高くなる。運用上は特定の閾値を設定することで、そのスコア以下のYを示した対象を異常として検知するというようにして検査を実施する。特徴量Xは1次元以上のベクトルを想定しており、実線がSourceデータの入力された場合の数5で表されるスコア、破線がTargetデータの入力された場合の数6で表されるスコアのイメージである。Yがラベルの場合は例えば正常または異常となるため2値で表されるが、Yが表す属性がスコアであってもラベルであっても連続値か離散値になるだけであるため大差ない。この図が示しているのは、例えば撮影条件が変わったなどの状態遷移が起こることによって入力ベクトルの値域が変わるだけでなく、入力ベクトルの増減に伴うスコアYの変動パターンも変わっている。
0066
Sourceデータの属性(ラベル/スコア)のみが分かっていて、Targetデータの属性が分からない場合の転移学習はトランスダクティブ転移学習(Transductive Transfer Learning)がよい。または共変量シフト適応によって解くのが一般的である。
0067
これらの方法によると、SourceデータとTargetデータでの入力の分布が変わっている対象について良く推定することができる。ただし、入力が与えられたときの出力の分布は両ドメインで等しいという前提を利用して解くため、その前提が成り立たない場合は推定することができない。例えば、撮影条件の変動により、全体的に画像が暗くなってしまったような場合を想定する。変動前は、変動後の環境で撮影したような暗い画像が入力された場合、欠陥と判定しなければならなかったものが、変動後の場合は正常と判定しなければならなくなるような状況が発生する。この場合、同じ入力に対して、数5と数6で異なる結果を出力しなければならず、そのような場合には、上記の方法は適用できない。
0069
しかし、外観検査における状態遷移を転移学習で解決する場合、同一のサンプル由来の出力値Yは不変であるという制約を与えて解くことが可能である。つまり、もし同一のサンプルを、Sourceデータが取得された環境と、Targetデータが取得された環境のそれぞれ異なる条件で画像を取り込み、特徴抽出した場合。入力Xは変動するがサンプルは同一であるため正常/異常ラベルや正常らしさ/異常らしさスコアが変わらないように出力されなければならない。図6ではSourceデータが取得された環境で撮影した3つの実サンプルをs1、s2、s3とし、各々をTargetデータが取得された環境で撮影した際の対応する実サンプルをt1、t2、t3として表している。同一のサンプルのスコアは一致すべきであるので、各々の3サンプルが示すYが一致している。
0070
よって、このような環境ではSourceドメインでのXの分布と各々に付与された属性(ラベル/スコア)を取得する。そしてSourceドメインの各々のXがTargetドメインになると特徴空間内でどこへ遷移するかを取得すれば、求めるべき数6に示した関数を求めることができる。
0071
しかし、実際にはSourceで用いた正常サンプルと同一のサンプルではないサンプルがTargetドメインで取り込まれ、状態遷移判定された時点で数6に示した関数を求めなければならない。
0073
以下、学習部102が実施する処理をフローチャートに基づいて説明する。まず、入力として与えられるものは状態遷移前のサンプルで学習された学習済クラス識別器の関数(数5)、状態遷移前の正常サンプルから抽出された特徴量(数7)そして状態遷移後のサンプルから抽出された特徴量(数8)である。上述した通り、学習済識別器の関数(数5)はいかなる方法で定義されていても良い。この関数による識別器の性能に関わらず、本アルゴリズムでは与えられた学習済識別器の関数の出力に近い出力となる状態遷移後の関数(数6)が出力される。
0074
まず、S30910で、学習部102が、上記した学習済クラス識別器の関数(数5)、状態遷移前の第1計測データから抽出された特徴(数7)そして状態遷移後の第2計測データから抽出された特徴量(数8)を入力する。続いてS30911では、学習部102が、Source正常データ(第1訓練データのうち正常事例のラベルがついたデータまたはそれに対応する第1計測データ)の特徴分布を推定し、これを学習済クラスとする。推定する方法は様々有るが、ここでは例えばKDE等アルゴリズムよって数2および数3に例示したようなガウスカーネルモデルによって推定されるものとする。
0075
次に、S30912では学習部102が、Targetデータ(第2計測データ)の(特徴の)分布を推定する。Targetサンプルはオンラインで検査した際のサンプルであるため真のラベルは不明であり異常が混入している可能性が有る。一般的な異常検出タスクでは異常の発生頻度は僅かであるため、混入した異常をそのままにして状態遷移度を算出しても問題ない。しかし、S302でユーザ入力された異常の発生頻度が高い場合は、既に状態遷移度算出で説明した通り、異常らしいサンプルをTargetデータの分布から特定して排除する方法によってできるだけ正常らしいデータに絞っておけば良い。
0076
そして、S30913にて、学習部102が、以降で推定するSourceデータ(第1計測データ)からTargetデータへ(第2計測データ)の変換行列を所定の値で初期化する。初期値として適した例として数9に例示する式などが挙げられる。
0077
0078
数9では入力ベクトルがD次元だとすると、初期値はSourceとTargetで全く変動しない場合としてαはD×Dの単位行列、βはD次元列ベクトルで全次元が0としている。尚、ここでは一次関数で定義しているが、より複雑な変換が必要な場合は二次以上の関数を選択しても良い。ただし、通常は微小な変動のうちに実施するため、この変換を必要以上に複雑にしなくても良い。
0079
そしてS30914で、学習部102が、Sourceデータ(第1計測データ)の特徴からTargetデータ(第2計測データ)の特徴へのXの変換行列を推定する。ここで推定する式は数10に示す通りである。
0080
0081
数10に示す式により数9で初期化されたαとβを微小に変化させながら最適値が求まる。該式の第一項はSourceデータのXから推定される確率分布と、該XがTargetドメインでは分布内でどこに位置するか暫定で求め、その差を最小化することによって変換行列を求める項になっている。そして第二項は同一サンプル由来のXのドメイン間の変動が大きくなることを抑制するための正則化項であり、定数εによって正則化の強度を調節することができる。
0082
最終的にS30915では、学習部102が、S304で求まったSourceデータ(第1推定結果)からTargetデータ(第2推定結果)へのXの変換行列から逆変換する行列を求める。さらに、これとSourceデータのスコア関数によってTargetのスコア関数を求める。つまり、Target側で計測される特徴ベクトルxを示すサンプルがSource側で計測されていた場合のxを求める。これを入力とした際のSource側の識別器によって算出される異常度を出力する関数をTarget側の識別関数としてセットしている。このような学習を行うことによって、訓練データの数が少なくても新しい環境に適応した識別器のパラメータを更新できる。また、人がラベル付けする必要がないので手間が省ける。
0083
以上で、正常データを基準にして修正された識別器の(第2)パラメータが獲得された。上記処理が終了した時点で、図8(A)の60で示したプログレスバーは100%を示す。次にS3092にて修正された識別器の第2パラメータに更新するかどうかをユーザに問う図8(B)に例示したメッセージを表示装置10に表示する。このときユーザに提示される情報の内容は、S3090で表示されたメッセージに含まれる、識別器の修正が必要と判断された根拠の他、今回の識別器の修正によってどの程度それらの値が回復見込みであるか、の値を表示する。特に、正常データの分布基準の識別器更新処理を実施することによって、更新前では正常であるにも関わらず異常と判定していた事例の件数が削減される。よって、ここで自動更新することによって得られる性能向上の見込みを表示することによってユーザに識別器を更新する意義を示すことができる。
0084
尚、ここで更新対象の識別器のパラメータが妥当なものであるか、入力画像の変化はどのようなものであったかを直感的に知らせるための表示として、先述した処理によって求めたSourceとTarget間の関係性を画像で表示する方法が有る。上記で求めた変換行列により、Source側で入力された画像で表された対象がTarget側でどのような画像として計測されるか、見た目の近い画像を対応付けて図8(D)に示したようにユーザに提示する。
0085
もし、SourceとTargetで同一のサンプルを撮影している場合は完全に一致したサンプルの画像を表示すれば良い。しかし、本件ではSourceとTargetで一致した正事例サンプルを使わなくても実行できる方法として説明しているため、特徴空間内で上記変換行列により遷移させた座標の近傍に存在する画像を表示することにより実現する。
0086
ここで対応付けてペアにして表示する画像セットの事例選択を図6の分布の遷移のイメージ図で説明する。なお、x軸は特徴量、y軸は正常らしさのスコアを示す。図6のような分布の遷移をした対象で、s1が新しい環境ではt1になると推測される。しかし、撮影した実サンプルにt1と一致する画像が存在することは稀であるため、特徴空間内でt1に最も近い座標に位置する画像をペアとして選択することで対応する。同様に、s2に対応するペアはt2に特徴空間内で最も近い画像、といった具合にして対応付けて画像のペアを作る。
0088
以上のようにしてSourceとTarget間の遷移ペアをいくつか作成し、GUI上に表示した例が図8(D)である。該図では左側がSourceサンプル、そしてそれらに対応するTargetサンプルの画像がその右に表示されている。つまりSource環境で撮影されたサンプルIDS6801を、Target環境で撮影すると、サンプルIDT6905に近い外観として計測される。または、サンプルIDS6807を現在の環境で撮影したらIDT6921のような外観として計測される、ということを示している。
0089
この対応関係がユーザにとって納得できるものであるかどうか、によって次の識別器修正に関する選択(61〜63)の判断に利用できる。全く関係のなさそうな2枚の画像がペアとして表示されている場合や、一連の組み合わせの間に共通する関係性が無いと思われる場合は、修正された識別器が誤っている可能性がある。
0090
次に、上記した一連の情報を確認したユーザが最終的に判断を下し、入力する。そしてユーザの入力を受信しS3093で識別器を更新するかどうか決定する。S3093では、受付部がユーザから識別器の更新を行わない趣旨の入力を受け付けた場合は、S3091に進む。つまり、図8(B)で63をユーザが選択しマウスポインタ等によりクリックした場合は、識別器は更新されることなく、S204に進む。
0091
S3093では、図8(B)に例示したGUI上で61を選択しマウスポインタ等によりクリックした場合、つまり、受付部がユーザから識別器の更新を行う趣旨の入力を受け付けた場合は、S3094に進む。S3094では、出力部110が、正常データ基準で修正された識別器によって修正前は検出できていた異常データで検出できなくなったものはないかチェックを促すメッセージを表示させる。
0092
通常、正常系の1クラスを学習し、異常検知するタスクにおける転移学習を実施する場合、大量に存在する正常データを基準にした転移学習で期待する効果を充分満たすことが多い。なぜなら、正常系データの特徴空間内での遷移パターンと異常系データの特徴空間内での遷移パターンは類似するためである。
0093
しかし、外観検査における異常検知では、精度良く異常を検出するために対象を撮影した際に異常領域が正常領域に対して際立って異なる性質を持つ領域として撮影されなければならない。このとき各々の異常種によって良好な撮影条件が限られているが、検査工程を短時間で実施するために、できるだけ少ない撮影条件で多くの異常種の異常領域を正常領域に対して際立たせて撮影(可視化)できるよう調整して利用することが望ましい。ここで可視化できていると判断するための必要最低限の基準としては、正常系のデータの持つノイズ成分よりも安定して信号レベルが大きく特徴抽出できる条件のことである。さらに各々の異常種によって撮影条件に関わるパラメータが変動した際の信号レベルの変動パターンが異なるため、これらを正常事例ベースで修正された識別器で検出できるかどうかは推測できないことが多い。
0094
この異常信号の可視化の様子が正常事例の特徴空間内での遷移パターンだけでは予測が難しいという状態を図5に模式的に表した。図7は検査対象のサンプル3つ(正常、異常type A、異常type B)を撮影条件設定パラメータに変動を与えながら撮影した様子を表している。撮影条件パラメータは様々考えられるが、図7は特定のパラメータを意図したものではなく、簡単のため該撮影パラメータを−4〜4まで変動させた例として表しており、場合によってはこれらが照明の明るさや撮影角度等を表す値を想定している。
0095
このとき、Source状態(学習時の第1の環境)では撮影条件パラメータが0に設定されていたが、現在は状態遷移(第2の環境)が発生しており、撮影条件パラメータが異なるパラメータになっている。状態遷移後の正常データが充分数有れば、図7の正常パターンはパラメータの増減に合わせて規則的に信号レベルが変動しているため状態遷移後の分布推定は容易であると考えられる。しかし、異常type Aはもし撮影条件パラメータが2に有れば検出不可、異常type Bは−1〜1以外の場合は検出不可であると分かる。このような異常種の状態遷移後の信号レベルをSourceデータのみから予測することはできない。
0096
よって、S3091において正常系データ群を基準にして修正された識別モデルによって状態遷移後の正常を異常と誤判定することは抑制できても、各々の異常種が安定して検出できる状態に有るかどうかが不明である。そのため、Source環境における信号レベルと比較してレベルが下がっているものが無いか確認する必要が有る。
0097
S3095では、受付部103が、異常検知度をチェックするか否かの指示入力を受け付ける。S3094のメッセージに対し、S3095にてユーザが「異常検知精度チェックを実施する」を選択した場合、S3096に進む。S3095において、ユーザが「異常検知精度チェックを実施しない」を選択した場合、S3190に進む。
0098
S3096では、推定部108が、Source学習用で用いたNGサンプル72を、再度現在の撮影環境で撮影したNGサンプル画像データを、パラメータ更新後の識別器に入力する。そうすることによって、正常らしさ/異常らしさスコアを推定する。ここのSource学習用で用いたNGサンプルは、可能な限り発生しうるNGの多様な種類を含むものであると、各々の種類でどの程度環境変化による影響を受けるか知ることができるため、多くのNG種を集めておくことが望ましい。
0099
再撮影するNGサンプルはSource環境で取得したスコアと同一サンプル同士の値を比較することが必要であることから、各サンプルで対応が取れなければならない。
0100
そのため、例えば図9(A)に示すように検査対象76が搬送系75によって搬送され、検査装置73で撮像、検査をされるという検査ラインを考える。このとき、既にSource環境における検査装置にて撮像済のNGサンプル72を71のサンプル保持部にて保存しておくようにしておくと良い。このとき、図8(B)にて61を選択、マウスポインタ等クリックにより先述したNGサンプル再撮影工程が開始すると、検査ラインは図9(B)に示す状態になる。搬送系75が止まり通常の検査工程が一時停止、検査対象78は再撮影が終了するまでは搬送系の上で運搬されずに一時停止状態になる。一方で、実NGサンプル72が保持されていたサンプル保持部71から実サンプルが77のように再撮影用ラインを搬送されてきてTarget環境で撮影が実施され撮影後のサンプルを74の再撮影済サンプル保持部にて保持する。保持されたサンプルの格納順は搬送された順であるため71に保持されていた順と完全に一致する。そのため、次の機会に再度同様の撮影を実施する場合も全く同じ順で比較するように74に保持されたサンプルセットをそのまま71に移動させておくと良い。
0101
そして、S3097では、判定部105が、認識精度が低下したNGサンプルデータの有無を判定する。つまり、これら再撮影を実施した全てのNGサンプルの中で、異常信号レベルが事前にユーザが設定した値以上に異常度スコアが低下した(正常らしさスコアが上昇した)サンプルが有るかを判定する。もし、異常信号レベルが閾値以上落ちたものが無ければ、S3190に進む。S215では、学習部が、識別器のパラメータを更新する。しかし、S3097で、再撮影されたNGサンプルの中で少なくとも1つでも異常信号が、設定した閾値より低下したものが存在すると判定された場合、S3098に進む。今まで検出できていた同種のNGが検出できなくなる可能性が有るためである。S3098では、出力部110が、具体的に異常検知レベルが下がったサンプルIDと対応する画像を表示させる。可視化レベルがどの程度になっているかを見せることによってどのような調整をすべきヒントとなるメッセージを表示する。このときのメッセージの例を図8(C)に示した。図8(C)には同一NGサンプルをSource環境で撮影された画像と今回撮影した場合を同時に表示しているため、これらを比較してユーザが以下の判断を実施することができる。
0102
例えば、明らかに可視化不十分になったことによって異常度スコアが低下した場合は、S3099で、学習部102が、ユーザによってラベルが修正された第2訓練データを用いて、識別器のパラメータを更新する。つまり、該NGサンプルを調整対象にして撮影条件調整を実施(図8(C)64を選択、クリックする)する。もしNG領域の可視化レベルは下がっていないにも関わらず異常度スコアが低下した場合は、撮影条件を変える必要は無いがSourceデータで学習した内容を基にした転移では不十分と判断することができる(例えば定義された特徴空間では表現しきれない)。そのため、初めから学習を実行すれば良いと判断できる(図8(C)65を選択、クリックする)。初めから学習を実行する場合は、第2環境における物体の特徴(すなわち第2特徴)について、外観の状態がOKかNGかを示すラベルを付与し、識別器に与えることで学習(識別器のパラメータを調整)を行う。勿論、ここまでの結果を見て、撮影条件更新もせず、学習もせず修正された識別モデルに更新(図8(C)66を選択、クリックする)しても良いし、何も更新しない(図8(C)67を選択、クリックする)選択もできる。これらは全てS3099でユーザの選択により処理が決定する。
0103
以上、S3095でユーザが実サンプルを使った異常検知精度チェックをする場合の説明をしたが、検査対象の異常種の性質によって撮影環境の変化を大きく受けないことが分かっている場合が有る。その場合は図8(B)のGUI上で62を選択してマウスポインタ等でクリックすることによりS3095で異常検知精度チェックしない選択をする。このようにすることによって、実サンプルを使った精度チェックプロセスはスキップされ、S3190にて自動的に修正された識別器に更新される。
0104
以上、転移学習(第2の学習)が終了すると、S310の通常検査ステップに移行する。S310では、推定部108が、更新された識別器に物体の計測データを入力することによって物体の状態を推定する。そしてS311で、受付部103が、検査の終了の指示を受けたか否かを判断する。終了指示があった場合は、処理を終える。終了指示がない場合は、処理を継続し、S304に戻る。オンライン検査終了するまでで、S304の状態遷移検知とS310の通常検査が繰り返される。
0105
これによって、識別器を使った物体の外観の状態において、異なる環境における推定結果の差を低減できる。検査実行中に状態遷移が起こったとしても、撮影条件の再調整や再学習等の回数を極力減らし、通常検査を継続することができる。
0106
尚、本実施形態では環境変動の要因を撮影環境の変化として説明したが、その他にも製造プロセスの微小な変化であっても同様である。ここで言う製造プロセスの微小な変化とは、例えば検査対象物を製造するのに用いられる材料の混合率を微小に変えた場合や、検査対象物の表面加工法を変えた等による変化等である。
0107
なお、図6において、6000で示した範囲に含まれる特徴は第1パラメータを設定した識別器と更新後の第2パラメータを設定した識別器とで、正常らしさのスコアが異なって出力される。この範囲については、第2パラメータを設定した識別器の結果を優先的に出力してもよい。また、信頼度に基づいて好ましいパラメータを選択してもよい。また、ユーザによって好ましい推定結果(スコア)を選んでもよい。
0108
また、本実施形態は検査対象を撮影し、取得された画像によって検査する方法として説明したが、異音検査など入力が音声でかつ受音部と対象との関係が変動した場合であっても同様の方法によって対応できることは明らかである。つまり、識別対象および対象の性質を取得するセンサが何であっても、学習済のクラスに属するかどうかを識別するというタスクにおいて識別対象とセンサの関係性が学習時と比較して微小に変化するという問題は全て本実施形態に示した方法により解決される。
0109
以上で説明した方法では正常事例同士の分布間距離によってSourceとTargetの差異を数値化し、これらを基準に識別器を更新して両者の判定結果を近付ける処理を説明したが、簡易に以下のように行っても良い。
0110
通常、状態遷移することによって最もユーザに認識されやすい不都合は、識別器の設定時と撮影条件が変わってしまったことによって本来なら正常であるサンプルを正常と判定することができず、異常判定率が上昇してしまうことである。よって、図3に表したフローチャートであればS302でユーザによって与えられた異常の発生頻度も同様にできる。また、Targetサンプルに対して現識別器で判定したラベル基準で求めたオンラインにおける異常の発生頻度の差分をS306で状態遷移度として求めても同様にできる。ただし、通常は異常の発生頻度はごく僅かであることが多いことから、僅かな状態遷移でもできるだけ早期に検知したいという場合はやはり正常事例同士の分布間距離を基準にした方が良い。
0111
(第2の実施形態)
第2の実施形態は、複数のデータの中から異常データを検出する異常検出タスクであって、異常検出タスクの中で対象から特徴抽出を行い、その抽出特徴を判断基準として事前に設定した識別器によって異常を検知するタスクに関する。該異常検知タスクで類似するタスクが同時に複数存在し、これら複数のタスクを処理する異なる識別器同士の判断結果の差を低減させる。
0112
ここではより具体的な説明をするため、異常検出の一例として生産現場での画像による自動化された外観検査を挙げる。
0113
例えば、同一製品/部品を製造するラインが複数存在する生産現場では、自動外観検査装置も各ラインに設置しなければならない。検査装置ごとに個別の学習や調整を実施する場合、各々の検査装置で学習用サンプルを用意して撮影して学習しなければならず、生産ラインの数だけ毎回立ち上げ時に同じ手間がかかるため、人手によるコストが大きくなってしまう。そこで、同一製品に対する検査基準は同じはずなので、1つの検査工程で学習された識別器の設定を流用して動作させることがある。しかし、実際は撮影環境等設定に僅かな違いが存在することによって、異なる装置で撮影される画像に図7に示されるような撮像画像の差が発生する傾向が表れる。このとき、流用した設定のままでは正しい識別ができず結局、全ての装置に対して人手による調整が必要となることが多い。
0114
そこで、検査装置ごとに個別の学習/調整を実施することなく最低限のコストで設定を行えるよう、1つの識別器で学習/調整されたパラメータ設定をその他の識別器の設定値の初期値としてコピーした後、各々で精度良く使えるように微修正する方法を説明する。
0115
本実施形態における外観検査のシステムの概念図も実施形態1で既に説明したシステムと同様図1に示される。上述した通り、本実施形態では図1同様の外観検査システムが複数存在している。1つの外観検査装置のみで正常/異常のラベル付きサンプルを用いて特許文献1等の方法によって充分に調整された識別器のパラメータセットのみが有り、その他の外観検査装置は調整されていないものとする。そして、調整前の識別器に該パラメータセットを初期設定として与え、以降説明する処理によって調整する。
0116
尚、本実施形態ではSourceデータを先述した充分に調整された外観検査装置で撮像された画像から得られたデータである。Targetデータが未調整の外観検査装置で撮像された画像から得られたデータである。Sourceの設定をTargetにコピーした後Target側で利用できるように調整する方法である。よって、第1の実施形態とは調整対象が特定の時間経過した後の識別器自身であるか、類似した環境にある異なる識別器であるかの違いしかないため、ほぼ同様のアルゴリズムによって解決される。
0117
以下、図10に示したフローチャートを用いて本実施形態の処理方法の概要について説明する。まず、S800にて、第1取得部101が、Sourceデータ(第1訓練データ)の特徴量を取得する。これから調整する外観検査装置の識別器(以降、便宜上Target検査装置/識別器と呼ぶ)に、正常/異常のラベルを付与された学習サンプルからSource検査装置にて抽出された特徴量セットが入力される。さらに、既に学習済の外観検査装置の識別器(Source検査装置/識別器と呼ぶ)設定パラメータセットも入力する。これはユーザによってSourceからTargetへ設定をコピーする指示を出すことによって達成される。次にS801において、抽出部107が、Target検査装置における検査対象サンプルを撮影した画像(第2計測データ)から特徴抽出する。これは、単純に生産ラインで発生する充分数のサンプルをそのまま外観検査装置に流して撮影、特徴抽出するもので有り、真の正常/異常のラベルは不明であって良い。該サンプルから抽出した特徴量データセットをTargetデータとする。S802において、学習部102が、SourceデータとTargetデータの差異を実施形態1の数1に示した式で算出される2つの分布間距離を最小化するように転移学習を実施する。数1におけるSourceデータとTargetデータの分布は実施形態1と同様にKDE等によって推定して用いれば良い。そして、上記したSourceデータとTargetデータの分布同士の分布間距離を最小化するプロセスについても、第1の実施形態と同様であるため図4に例示したフローチャートによって求めることができる。図4のフローチャートの各ステップについては既に説明済であるためここでは説明を省略する。一連の処理によってSourceデータの分布からTargetデータの分布への変換行列を求め、Source識別器を定義するパラメータセットを用いることによりTarget検査装置に適するように修正された識別器を獲得することができる。
0118
ただし、微小な撮影条件の変化によって異常領域の可視化状態が変わる問題は本実施形態においても同様に発生しうる問題であり、任意の撮影パラメータにおいて異常に関わる信号の推移は図7に示される通り予測することは難しい。そこで、S803では、出力部110が、現段階で得られている修正済識別器による異常検知精度チェックを実施するか否かをユーザに問うメッセージを表示する。また、この際、第一の実施形態と同様にSource画像とTarget画像の関係を正しく算出できているかどうか判断する際の根拠となる図8(D)のような表示をしても良い。
0119
このメッセージに対してユーザが検出精度チェックを実施しなければ、S805にて、学習部102が、先述した修正された識別器に更新し、処理は終了する。もし、S804にてユーザが学習用NGサンプルを用いた検出精度チェックを実施する、を選んだ場合はS806に移行する。S806では、推定部108が、Source識別器を学習する際に用いたNGサンプルを調整用に利用する処理が実行される。Target識別器の存在する生産ラインにおいて図1のサンプル保持部71に先述したNGサンプル72をセットし、図9(B)のようにTarget検査装置73で再度撮影、特徴抽出が実施される。これによって、Target側で新しく抽出された特徴量は各々対応するサンプルについてSource側で抽出された特徴量と対応付けて保存され、先述した修正された識別器による異常度スコアが算出される。続いてS807にて、検知部109が、Source識別器で算出した異常度スコアと比較して異常度スコアが大きく減少したデータがあるか検知する。無ければS805にて、学習部102が、修正された識別器のパラメータを更新する。検知精度が落ちた対象が有れば、S808にて出力部110が、メッセージを表示する。このときのメッセージは図8(C)同様であり、スコアの変動と画像の可視化状態を基にして撮影条件の修正を実施するか、学習を実施するかの入力をユーザから受け付ける。そして、S809にて、学習部102が、初めから識別器のパラメータを更新する、または撮影条件の調整が実施されるなどして入力画像が調整されることによって識別器のパラメータをさらに更新する。
0120
尚、本実施形態ではSource検査装置とTarget検査装置の2つの装置の異なる環境の要因を微小な撮影環境の違いとして説明したが、その他にも製造プロセスの微小な違いであっても同様である。ここで言う製造プロセスの微小な違いとは、例えば検査対象物を製造するのに用いられる材料の混合率が微小に異なる場合や、検査対象物の表面加工法が僅かに異なる等による差異である。例えば、特定の部品を製造している生産ラインが存在し、後から先述した部品をマイナーチェンジさせたような部品として先述したように表面の加工状態を多少変えた物や材料の配合率を僅かに変えた部品を製造する生産ラインは多く存在する。しかしそれらの設定を探索する際、完全に全パラメータ空間から新規に良条件を探索するより、以前の似た状況に近い条件と近い設定で探索し調整することによって低コストで探索することができる。
0121
また、本実施形態は検査対象を撮影し、取得された画像によって検査する方法として説明したが、異音検査など入力が音声でかつ受音部と対象との関係に差異が有る場合であっても同様の方法によって対応できることは明らかである。つまり、対象および対象を計測するセンサが何であっても、学習済のクラスに属するかどうかを識別するというタスクにおいて識別対象とセンサの関係性がSource側とTarget側で微小に異なるという問題は本実施形態に示した方法により解決される。
0122
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
0123
12情報処理装置
10表示装置
11入力装置
13撮像装置
14照明装置
100 保持部
101 第1取得部
102 学習部
103 受付部
104 設定部
105 判定部
106 第2取得部
107 抽出部
108推定部
109 検知部
110 出力部