(57)【特許請求の範囲】
【請求項１】
複数のセンサを備える作業装置が正常動作する場合の前記複数のセンサの測定データ群を正常データ群として記憶し、前記作業装置が異常動作する場合の前記複数のセンサの測定データ群を異常データ群として記憶する記憶部と、
前記正常データ群を用いて第１重み係数を算出し、前記異常データ群を用いて第２重み係数を算出する係数算出部と、
前記複数のセンサの測定データを取得する取得部と、
前記取得部が取得した各測定データの、基準に対する判断結果を異常スコアとして算出するスコア算出部と、
前記正常データ群の分布範囲および前記異常データ群の分布範囲のうち前記各測定データが位置する分布範囲の重み係数を選択し、選択された重み係数を対応する異常スコアに乗じ、得られた各値に基づいて異常判断を行う判断部と、を備えることを特徴とする判定装置。
【請求項２】
前記正常データ群は、訓練用正常データ群と正常テストデータ群とを含み、
前記異常データ群は、訓練用異常データ群と異常テストデータ群とを含み、
前記訓練用正常データ群と前記訓練用異常データ群とから前記基準を作成する基準作成部を備え、
前記係数算出部は、前記基準に対する前記正常テストデータ群のエラー率から前記第１重み係数を算出し、前記基準に対する前記異常テストデータ群のエラー率から前記第２重み係数を算出し、
前記正常データ群の分布範囲は、前記正常テストデータ群の分布範囲であり、
前記異常データ群の分布範囲は、前記異常テストデータ群の分布範囲であることを特徴とする請求項１記載の判定装置。
【請求項３】
前記正常データ群の分布範囲は、前記正常データ群の統計値から得られる範囲であることを特徴とする請求項１または２記載の判定装置。
【請求項４】
前記取得部が取得する測定データを、前記作業装置が作業を行う動的区間と作業を行わない定常区間とに弁別する弁別部を備え、
前記取得部は、前記動的区間および前記定常区間ごとに測定データを取得することを特徴とする請求項１〜３のいずれか一項に記載の判定装置。
【請求項５】
前記係数算出部は、機械学習により、前記正常データ群および前記異常データ群から重み係数を算出することを特徴とする請求項１〜４のいずれか一項に記載の判定装置。
【請求項６】
記憶部が、複数のセンサを備える作業装置が正常動作する場合の前記複数のセンサの測定データ群を正常データ群として記憶し、前記作業装置が異常動作する場合の前記複数のセンサの測定データ群を異常データ群として記憶し、
係数算出部が、前記正常データ群を用いて第１重み係数を算出し、前記異常データ群を用いて第２重み係数を算出し、
取得部が、前記複数のセンサの測定データを取得し、
スコア算出部が、前記取得部が取得した各測定データの、基準に対する判断結果を異常スコアとして算出し、
判断部が、前記正常データ群の分布範囲および前記異常データ群の分布範囲のうち前記各測定データが位置する分布範囲の重み係数を選択し、選択された重み係数を対応する異常スコアに乗じ、得られた各値に基づいて異常判断を行う、ことを特徴とする判定方法。
【請求項７】
コンピュータに、
複数のセンサを備える作業装置が正常動作する場合の前記複数のセンサの測定データ群を正常データ群として記憶し、前記作業装置が異常動作する場合の前記複数のセンサの測定データ群を異常データ群として記憶する処理と、
前記正常データ群を用いて第１重み係数を算出し、前記異常データ群を用いて第２重み係数を算出する処理と、
前記複数のセンサの測定データを取得する処理と、
取得された各測定データの、基準に対する判断結果を異常スコアとして算出する処理と、
前記正常データ群の分布範囲および前記異常データ群の分布範囲のうち前記各測定データが位置する分布範囲の重み係数を選択し、選択された重み係数を対応する異常スコアに乗じ、得られた各値に基づいて異常判断を行う処理と、を実行させることを特徴とする判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、判定装置、判定方法、および判定プログラムに関する。
【背景技術】
【０００２】
作業装置に備わる各センサの測定データの、異常判断の基準に対する判断結果に重み付けを行ったうえで合成することで、判定を行う技術が開示されている（例えば、特許文献１〜３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２５０３１４号公報
【特許文献２】特開平６−３３１４００号公報
【特許文献３】特開２０１６−８９２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
各センサの出力から異常判断を行うためには、作業が正常に行われている場合の正常データと作業に異常が生じた場合の異常データとから異常判断の基準が作成されることになる。異常判断の精度を高めるためには、正常データの標本数と異常データの標本数との間に偏りが無いことが好ましい。しかしながら、現実には、正常データの標本数と比較して、異常データの標本数が少ないことが多い。この場合、重み付けを行う場合の精度が得られず、高い判定精度が得られないおそれがある。
【０００５】
１つの側面では、本発明は、判定精度を向上させることができる判定装置、判定方法および判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、判定装置は、複数のセンサを備える作業装置が正常動作する場合の前記複数のセンサの測定データ群を正常データ群として記憶し、前記作業装置が異常動作する場合の前記複数のセンサの測定データ群を異常データ群として記憶する記憶部と、前記正常データ群を用いて第１重み係数を算出し、前記異常データ群を用いて第２重み係数を算出する係数算出部と、前記複数のセンサの測定データを取得する取得部と、前記取得部が取得した各測定データの、基準に対する判断結果を異常スコアとして算出するスコア算出部と、前記正常データ群の分布範囲および前記異常データ群の分布範囲のうち前記各測定データが位置する分布範囲の重み係数を選択し、選択された重み係数を対応する異常スコアに乗じ、得られた各値に基づいて異常判断を行う判断部と、を備える。
【発明の効果】
【０００７】
判定精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る作業装置の全体構成を説明するための図である。
【図２】（ａ）〜（ｄ）は作業ロボットの一連の動作の一例を例示する図である。
【図３】（ａ）〜（ｃ）は作業ロボットの一連の動作の一例を例示する図である。
【図４】（ａ）〜（ｃ）は動的指標の作成手順を例示する図である。
【図５】重み付けを例示する図である。
【図６】（ａ）および（ｂ）は重み係数の有効範囲を例示する図である。
【図７】正常であるが異常と誤判定される過剰検知測定データを例示する図である。
【図８】判定装置の処理を表すフローチャートを例示する図である。
【図９】異常検知処理のフローチャート例示する図である。
【図１０】判定装置の処理を表すフローチャートを例示する図である。
【図１１】異常検知処理のフローチャート例示する図である。
【図１２】（ａ）は判定装置のハードウェア構成を説明するためのブロック図であり、（ｂ）は作業システムのブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１０】
図１は、実施例１に係る作業装置１００の全体構成を説明するための図である。図１で例示するように、作業装置１００は、作業ロボット１０、コントローラ２０、カメラ３０、判定装置４０などを備える。
【００１１】
作業ロボット１０は、ロボットハンド１１、センサ１２などを備える。ロボットハンド１１は、対象物に対して所定の作業を行う装置である。センサ１２は、ロボットハンド１１の力、変位等を検出するセンサであり、一例として、歪ゲージ、力覚センサ、加速度センサなどである。本実施例においては、複数のセンサ１２が備わっている。コントローラ２０は、所定のタイミングで作業ロボット１０に作業指示を行う制御装置である。カメラ３０は、作業ロボット１０の作業を撮像する装置である。本実施例においては、複数のカメラ３０が備わっている。
【００１２】
図２（ａ）〜図２（ｄ）および図３（ａ）〜図３（ｃ）は、作業ロボット１０の一連の動作の一例を例示する図である。図２（ａ）で例示するように、作業ロボット１０は、ロボットハンド１１として１組のロボットハンド１１ａ，１１ｂを備え、複数のセンサ１２として歪ゲージ１２ａ，１２ｂを備えている。例えば、ロボットハンド１１ａの先端部分に歪ゲージ１２ａが設けられ、ロボットハンド１１ｂの先端部分に歪ゲージ１２ｂが設けられている。まず、ロボットハンド１１ａ，１１ｂは、コネクタ１３に勘合するケーブルコネクタ１４に向かって移動する（第１移動工程）。
【００１３】
次に、図２（ｂ）で例示するように、ロボットハンド１１ａ，１１ｂは、ケーブルコネクタ１４を把持する（把持工程）。次に、図２（ｃ）で例示するように、ロボットハンド１１ａ，１１ｂは、ケーブルコネクタ１４を持ち上げることによって、コネクタ１３から離し、他のコネクタに向かってケーブルコネクタ１４を移動させる（第２移動工程）。次に、図２（ｄ）で例示するように、ロボットハンド１１ａ，１１ｂは、他のコネクタ１５にケーブルコネクタ１４を差し込む（差込工程）。
【００１４】
次に、図３（ａ）で例示するように、ロボットハンド１１ａ，１１ｂは、ケーブルコネクタ１４の把持を解除する（解除工程）。次に、図３（ｂ）で例示するように、ロボットハンド１１ａ，１１ｂは、ケーブルコネクタ１４から離れる方向に移動する（第３移動工程）。最後に、図３（ｃ）で例示するように、ロボットハンド１１ａ，１１ｂは、ケーブルコネクタ１４をコネクタ１５に押し込む（押込工程）。図３（ｃ）の例では、ロボットハンド１１ｂがケーブルコネクタ１４をコネクタ１５に押し込んでいる。以上の工程によって、作業が完了する。
【００１５】
再度図１を参照し、判定装置４０は、各センサ１２の測定データ、ロボットハンド１１の座標位置、カメラ３０が取得した画像データなどに基づいて、作業ロボット１０の作業状況の良否（正常／異常）を判定する。判定装置４０は、データベース４１、学習部４２、測定値取得部４３、区間弁別部４４、個別認識部４５、画像判定部４６、判断結果値算出部４７、および異常判断処理部４８を備える。
【００１６】
データベース４１には、訓練用正常データ群、訓練用異常データ群、およびテストデータ群が格納されている。訓練用正常データ群には、予め作業ロボット１０に作業を行わせ、目視等で作業状況が「正常」と判定された場合の各センサ１２の出力値波形（測定データ）が含まれている。訓練用異常データ群には、予め作業ロボット１０に作業を行わせ、目視で作業状況が「異常」と判定された場合の各センサ１２の出力値波形（測定データ）が含まれている。訓練用正常データ群および訓練用異常データ群は、学習部４２が機械学習により、測定データの異常判断を行うための基準（基準範囲）を作成するための訓練データ群である。機械学習とは、訓練データ群を基にして、未知の測定データのラベル（正常／異常）を推定することである。
【００１７】
テストデータ群は、学習部４２が作成した基準範囲の性能を検査するために、予め作成しておいたデータ群である。テストデータ群は、「正常」のラベルが付いたテストデータ（正常テストデータ群）と、「異常」のラベルが付いたテストデータ（異常テストデータ群）とを含む。正常テストデータ群には、予め作業ロボット１０に作業を行わせ、目視等で作業状況が「正常」と判定された場合の各センサ１２の出力値波形（測定データ）が含まれている。異常テストデータ群には、予め作業ロボット１０に作業を行わせ、目視で作業状況が「異常」と判定された場合の各センサ１２の出力値波形（測定データ）が含まれている。訓練用正常データ群および訓練用異常データ群と、テストデータ群とは、一部が重複していてもよい。
【００１８】
測定値取得部４３は、各センサ１２の出力値を測定データとして取得して一時的に格納する。次に、区間弁別部４４は、測定データを複数の時間区間に弁別する。本実施例においては、区間弁別部４４は、測定データを、ロボットハンド１１が作業を行う動的区間とロボットハンド１１が作業を行わない定常区間とに弁別する。まず、図４（ａ）で例示するように、区間弁別部４４は、いずれかのセンサ１２の測定データに対して注目点を設定し、当該注目点に対して予め決定した固定幅（ｗｉｎｄｏｗ）を設定する。次に、図４（ｂ）で例示するように、設定されたｗｉｎｄｏｗ内において、注目点よりも前（過去）の出力値の平均値μ１および標準偏差σ１を算出し、注目点よりも後（未来）の出力値の平均値μ２および標準偏差σ２を算出する。
【００１９】
次に、区間弁別部４４は、標準偏差σ１，σ２から動的指標値εを算出する。一例として、区間弁別部４４は、平均値μ１，μ２および標準偏差σ１，σ２から動的指標値εを算出する。動的指標値εは、一例として、下記式（１）で表すことができる。また、ΔμおよびΔσは、下記式（２）および下記式（３）で表すことができる。
ε＝（Δμ２＋Δσ２）０．５    （１）
Δμ＝｜μ２−μ１｜    （２）
Δσ＝｜σ２−σ１｜    （３）
【００２０】
次に、区間弁別部４４は、図４（ｃ）で例示するように、所定の時間間隔後の時刻を次の注目点に設定し、図４（ａ）および図４（ｂ）で説明した手順で次の動的指標εを算出する。図４（ａ）〜図４（ｃ）の手順を繰り返すことにより、動的指標εの時系列データを得ることができる。一例として、区間弁別部４４は、動的指標εが所定の閾値を超える区間を動的区間として弁別する。
【００２１】
次に、個別認識部４５は、各センサ１２の測定データが時間区間ごとに基準範囲から外れたか否かを判定する。定常区間においては、基準範囲は、一例としてロボットハンド１１によって複数回の正常作業が行われた場合の事前測定データの平均値±３σの範囲である。基準範囲は、データベース４１に格納されている訓練データ群に基づいて、学習部４２によって予め算出しておくことができる。
【００２２】
個別認識部４５は、動的区間において各センサ１２の出力について、識別器を備える。識別器とは、各動的区間内の作業状況の良否を判定する個別の主体のことであり、例えば、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）識別器である。識別器を設けることは、各動的区間の作業良否を判定するための個別の基準（基準範囲）を作成することと同義である。各識別器は、例えば、各動的区間におけるセンサ１２の事前測定データから抽出される複数の特徴量の相関関係に対して個別の基準を有している。特徴量として、例えば、振幅値、微分波形、積分波形、周波数などが挙げられる。識別器は、データベース４１に格納されている訓練データ群に基づいて、学習部４２が予め作成しておくことができる。例えば、識別器は、基準に対するセンサ１２の出力波形に対する正解率などを用いて作業状況の良否を判定し、作業状況が否と判断されると、それに応じた値を出力する。なお、動的区間の各々について識別器を設けることによって、全データを特定の識別器に投入することなく、リアルタイムに良否判定を行うことができる。
【００２３】
画像判定部４６は、例えば、各カメラ３０が取得する映像について、識別器を備えている。例えば、画像判定部４６がカメラ３０の取得するロボットハンド１１の作業状況の動画から特徴量を抽出し、識別器が当該特徴量に基づいて上記動画の正解率などを用いて作業状況の良否を判断してもよい。例えば、識別器が作業状況を異常と判断すると、それに応じて値が出力される。識別器は、データベース４１に格納されている訓練データ群に基づいて、学習部４２によって予め作成しておくことができる。例えば、映像に対する識別器の作成に際して、立体高次局所自己相関（ＣＨＬＡＣ（Cubic Higher-order Local Auto Correlation）を用いることができる。
【００２４】
次に、判断結果値算出部４７は、個別認識部４５および画像判定部４６から出力された値を用いて異常スコアを算出する。例えば、判断結果値算出部４７は、個別認識部４５および画像判定部４６の出力値の、基準範囲に対する判断結果を異常スコアに変換する。判断結果値算出部４７は、例えば、下記式（４）を用いて異常スコアを得る。下記式（４）において、「ｉ」はセンサ１２およびカメラ３０の識別番号を示し、「ｊ」は時刻を示し、「Ｎ」は入力したデータ点数を示し、「Ｌ」は基準範囲の閾値からの逸脱距離（逸脱度合い）を示す。
Ｓｉｊ（ｊ）＝＋Ｎ×Ｌ  （基準範囲外）
Ｓｉｊ（ｊ）＝０  （基準範囲内）          （４）
【００２５】
取得された個別認識部４５および画像判定部４６の判断結果値をリアルタイムに累積した累積値Ｊは、例えば下記式（５）のように表すことができる。なお、下記式（５）において、αｉｋは重み係数を示し、「ｉ」はセンサ１２およびカメラ３０の識別番号を示し、「ｋ」は区間番号（定常区間、動的区間を区別）を示し、「ｊ」は時刻を示し、Ｓｉｊ（ｊ）は判断結果値を示す。重み係数αｉｋは、センサ１２およびカメラ３０の識別番号および区間番号の関数である。異常判断処理部４８は、累積値Ｊが閾値を超えた場合に作業ロボット１０の異常と判断し、異常に係る信号を出力する。
【数１】
0006688962.tif 000002
【００２６】
このように、異常判断処理部４８は、各センサ１２、各カメラ３０などの複数の情報源から複数のアルゴリズムを用いて異常スコアを検出する。複数のアルゴリズムとは、上述したように、定常区間におけるセンサ１２の検出結果の基準範囲との比較、動的区間におけるセンサ１２の基準範囲との比較、カメラ３０の検出結果の基準範囲との比較などが相当する。さらに、異常判断処理部４８は、検出した異常スコアに対して重み付けを行った上で１つの結果に統合し、最終的に異常か否かを判断する。例えば、図５で例示するように、複数のセンサ１２として、歪ゲージ１〜４、ＸＹＺ軸力センサ、ＸＹＺ軸モーメントセンサなどを用いる。また、複数のカメラ３０として、ＰＴＺ（Ｐａｎ−Ｔｉｌｔ  Ｚｏｏｍ）カメラ１〜６を用いる。なお、図５で例示するように、歪ゲージ１〜４のそれぞれの結果、ＸＹＺ軸力センサのそれぞれの結果、ＸＹＺ軸モーメントセンサのそれぞれの結果の異常スコアを、統合化識別器で１つの異常スコアに統合してから重み付けを行ってもよい。
【００２７】
重み付けに用いる重み係数は、訓練用データ群から作成された識別器に正常テストデータ群および異常テストデータ群を入力した場合のエラー率などから決定される。訓練用データ群に十分な数の訓練用正常データ群および十分な数の訓練用異常データ群が含まれていれば、識別器の精度が向上する。それにより、過剰検知および見逃しの両方を抑制することができる。過剰検知とは、本来は正常と判断されるべき測定データが異常と判断されることである。見逃しとは、本来は異常と判断されるべき測定データが正常と判断されることである。したがって、識別器の精度を向上させるためには、訓練データ群の訓練用正常データ群と訓練用異常データ群の標本数との間に偏りが無いことが好ましい。しかしながら、現実には訓練用異常データ群の標本数が少ないことから、訓練用正常データ群の標本数と訓練用異常データ群の標本数との間に偏りがある（Ｉｍｂａｒａｎｃｅｄ  Ｄａｔａ問題）。
【００２８】
例えば、ＡｄａＢｏｏｓｔ（Ａｄａｐｔｉｖｅ  Ｂｏｏｓｔｉｎｇ）と呼ばれるアルゴリズムにおいては、重み係数αｔは下記式（６）に従って決定されている。ここで、εｔは、識別器ｈｔのエラー率を表す。識別器の統合は、下記式（７）で表される。ＡｄａＢｏｏｓｔにおける重み係数αｔはエラー率から算出されるため、エラー率が正確であることが好ましい。そのためには、訓練用正常データ群の標本数と訓練用異常データ群の標本数との間に偏りが無いことが前提条件となる。
【数２】
0006688962.tif 000003
【数３】
0006688962.tif 000004
【００２９】
別の例として、例えば国際公開ＷＯ２００９／０７５１２８号において、重み係数は、偽陽性率（Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅ  Ｒａｔｅ，過剰検知）または偽陰性率（Ｆａｌｓｅ  Ｎｅｇａｔｉｖｅ  Ｒａｔｅ，見逃し）が選択されている。しかしながら、この選択を自動的に行う方法については記載されていない。また、２つのどちらかを選択することになるため、偽陽性を重み係数とした場合は、過剰検知するセンサを抑制できるが見逃しをするセンサを抑制できない（または異常検知するセンサを評価できない）。
【００３０】
さらに別の例として、サンプル数を調整するオーバーサンプリング法、アンダーサンプリング法、ＳＭＯＴＥ法などのデータ数を調整ないしは疑似データを追加する方法がある。または。標本数に応じてペナルティをエラー率や識別器の出力結果に付加する方法もある（コスト考慮型学習，Ｃｏｓt  Ｓｅｎｓｉｔｉｖｅ  Ｌｅａｒｎｉｎｇ）。しかしながら、前者は標本数を小さいクラスに合わせることによる性能悪化や、疑似データを用いることによる性能悪化などがリスクとして存在する。後者のコスト考慮型学習の場合は、標本数を考慮しているものの、この場合も実際のデータが存在しないことによる性能悪化のリスクやコストの決め方といったパラメータチューニングの問題などがある。
【００３１】
そこで、本実施例においては、訓練用正常データ群の標本数と訓練用異常データ群の標本数との間に偏りがある場合においても判定精度を向上させることができる判定装置、判定方法および判定プログラムについて説明する。
【００３２】
まず、学習部４２は、機械学習により、正常テストデータ群および異常テストデータ群からそれぞれ独立に重み係数を作成し、それぞれの重み係数に有効範囲を設定する。正常テストデータ群から作成した重み係数は過剰検知に対応し、異常テストデータ群から作成した重み係数は見逃しに対応する。識別器の作成にデータの分布をしばしば用いるのと同様に、テストデータ群で識別器を評価する際にもテストデータ群のバラツキ（分布）が存在するため、学習部４２は、この分布から重み係数の有効範囲を決定する。学習部４２は、これらの有効範囲の境界を係数変化点として設定する。
【００３３】
図６（ａ）は、正常テストデータ群および異常テストデータ群を例示する図である。図６（ａ）では、特徴量１と特徴量２との相関関係が例示されている。実線の四角形が正常テストデータ群を表している。実線の三角形が異常テストデータ群を表している。図６（ｂ）で例示するように、学習部４２は、正常テストデータ群の分布範囲を、正常テストデータ群から作成した重み係数の有効範囲に定める。また、学習部４２異常テストデータ群の分布範囲を、異常テストデータ群から作成した重み係数の有効範囲に定める。また、学習部４２は、正常テストデータ群の分布範囲と異常テストデータ群の分布範囲との間に、係数変化点を設定する。
【００３４】
図７は、正常であるが異常と誤判定される過剰検知測定データを例示する図である。図７においては、点線の四角形が、過剰検知測定データを表している。図７で例示するように、測定データが正常テストデータ群の分布範囲に位置する場合は、正常テストデータ群から作成した重み係数が用いられる。一方、測定データが異常テストデータ群の分布範囲に位置する場合は、異常テストデータ群から作成した重み係数が用いられる。それにより、過剰検知および見逃しを抑制しつつ、異常検知が可能となる。すなわち、異常の判定精度が向上する。
【００３５】
正常テストデータ群の有効範囲と異常テストデータ群の有効範囲とが一部において重複する場合には、学習部４２は、当該重複する領域を棄却領域として、重み係数を１としてもよい。または、学習部４２は、データ数の豊富な正常テストデータ群に有効範囲を設定し、正常テストデータ群の有効範囲外を全て異常テストデータ群の有効範囲としてもよい。
【００３６】
図８は、判定装置４０の処理を表すフローチャートを例示する図である。図８で例示するように、学習部４２は、学習データ群（訓練用データ群およびテストデータ群）を取得する（ステップＳ１）。次に、学習部４２は、訓練用データ群から、異常検知のための識別器を作成する（ステップＳ２）。
【００３７】
次に、学習部４２は、作成した識別器に対して、正常テストデータ群を入力し、過剰検知率（エラー率）を計算し、得られた値を重み係数１とする（ステップＳ３）。次に、学習部４２は、重み係数１の有効範囲を設定するために、正常テストデータ群の分布を考え、この分布の±３σを係数１の有効範囲とする（ステップＳ４）。
【００３８】
次に、学習部４２は、作成した識別器に対して、異常テストデータ群を入力し、見逃し率（エラー率）を計算し、得られた値を重み係数２とする（ステップＳ５）。次に、学習部４２は、重み係数２の有効範囲を設定するために、異常テストデータ群の分布を考え、この分布の±３σを係数２の有効範囲とする（ステップＳ６）。ここで、異常テストデータ群の数が分布を推定するほど多くない場合には、係数１の有効範囲外を係数２の有効範囲としてもよい。
【００３９】
図９は、異常検知処理のフローチャート例示する図である。図９で例示するように、測定値取得部４３は、ｋ＝０とし、測定データの取得を開始する（ステップＳ１１）。ｋは、時刻を表すパラメータである。次に、異常判断処理部４８は、ｋ＜Ｎであるか否かを判定する（ステップＳ１２）。ステップＳ１２で「Ｎｏ」と判定された場合、フローチャートの実行が終了する。ステップＳ１２で「Ｙｅｓ」と判定された場合、判断結果値算出部４７は、測定データｘｊｋを取得する（ステップＳ１３）。次に、判断結果値算出部４７は、測定データｘｊｋが位置する有効範囲の重み係数を、重み係数αｊｋとして選択する（ステップＳ１４）。
【００４０】
次に、判断結果値算出部４７は、当該測定データに対して異常スコアｓｊｋを計算する（ステップＳ１５）。次に、異常判断処理部４８は、上記式（５）に従って累積値Ｊを算出する（ステップＳ１６）。次に、異常判断処理部４８は、累積値Ｊが閾値ｔｈｋを上回ったか否かを判定する（ステップＳ１７）。ステップＳ１７で「Ｎｏ」と判定された場合、ステップＳ１２から再度実行される。ステップＳ１７で「Ｙｅｓ」と判定された場合、異常判断処理部４８は、異常検知に係る信号を出力する（ステップＳ１８）。その後、フローチャートの実行が終了する。
【００４１】
図１０は、判定装置４０の他の処理を表すフローチャートを例示する図である。図１０で例示するように、学習部４２は、学習データ群（訓練用データ群およびテストデータ群）を取得する（ステップＳ２１）。次に、学習部４２は、訓練用データ群から、異常検知のための識別器を作成する（ステップＳ２２）。
【００４２】
次に、学習部４２は、作成した識別器に対して、正常テストデータ群を入力し、異常スコア値の平均値を計算し、その逆数を重み係数１とする（ステップＳ２３）。次に、学習部４２は、重み係数１の有効範囲を設定するために、正常テストデータ群の異常スコア値の最大値を計算し、係数変化点とし、有効範囲とする（ステップＳ２４）。
【００４３】
次に、学習部４２は、作成した識別器に対して、異常テストデータ群を入力し、異常スコア値の平均値を計算し、得られた値を重み係数２とする（ステップＳ２５）。次に、学習部４２は、重み係数２の有効範囲を設定するために、異常テストデータ群の異常スコア値の最小値を計算し、係数変化点とし、有効範囲とする（ステップＳ２６）。ここで、異常テストデータ群の数が分布を推定するほど多くない場合には、係数１の有効範囲外を係数２の有効範囲としてもよい。
【００４４】
図１１は、異常検知処理のフローチャート例示する図である。図１１で例示するように、測定値取得部４３は、ｋ＝０とし、測定データの取得を開始する（ステップＳ３１）。ｋは、時刻を表すパラメータである。次に、異常判断処理部４８は、ｋ＜Ｎであるか否かを判定する（ステップＳ３２）。ステップＳ３２で「Ｎｏ」と判定された場合、フローチャートの実行が終了する。ステップＳ３２で「Ｙｅｓ」と判定された場合、判断結果値算出部４７は、測定データｘｊｋを取得する（ステップＳ３３）。次に、判断結果値算出部４７は、当該測定データに対して異常スコアｓｊｋを計算する（ステップＳ３４）。
【００４５】
次に、判断結果値算出部４７は、測定データｘｊｋが位置する有効範囲の重み係数を、重み係数αｊｋとして選択する（ステップＳ３５）。次に、異常判断処理部４８は、上記式（５）に従って累積値Ｊを算出する（ステップＳ３６）。次に、異常判断処理部４８は、累積値Ｊが閾値ｔｈｋを上回ったか否かを判定する（ステップＳ３７）。ステップＳ３７で「Ｎｏ」と判定された場合、ステップＳ３２から再度実行される。ステップＳ３７で「Ｙｅｓ」と判定された場合、異常判断処理部４８は、異常検知に係る信号を出力する（ステップＳ３８）。その後、フローチャートの実行が終了する。
【００４６】
本実施例によれば、正常テストデータ群と異常テストデータ群とからそれぞれ独立に重み係数が作成され、それぞれの重み係数に有効範囲が設定される。正常テストデータ群から作成した重み係数は過剰検知に対応し、異常テストデータ群から作成した重み係数は見逃しに対応する。測定データが正常テストデータ群の分布範囲に位置する場合は、正常テストデータ群から作成した重み係数が用いられる。一方、測定データが異常テストデータ群の分布範囲に位置する場合は、異常テストデータ群から作成した重み係数が用いられる。この場合、過剰検知および見逃しを抑制しつつ、異常検知が可能となる。すなわち、異常の判定精度が向上する。
【００４７】
図１２（ａ）は、判定装置４０のハードウェア構成を説明するためのブロック図である。図１２（ａ）を参照して、判定装置４０は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、表示装置１０４等を備える。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。
【００４８】
ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、判定プログラムを記憶している。表示装置１０４は、液晶ディスプレイ、エレクトロルミネッセンスパネルなどであり、判定結果を表示する。なお、本実施例においては判定装置４０の各部は、プログラムの実行によって実現されているが、専用の回路などのハードウェアを用いてもよい。
【００４９】
（変形例１）
図１２（ｂ）は、変形例にかかる作業システムについて例示する図である。上記各例においては、判定装置４０は、センサ１２から測定データを取得し、カメラ３０から画像データを取得している。これに対して、判定装置４０の機能を有するサーバ２０２が、インターネットなどの電気通信回線２０１を通じてセンサ１２およびカメラ３０からデータを取得してもよい。
【００５０】
（変形例２）
上記各例では、センサ１２について訓練用データ群およびテストデータ群が作成され、重み係数および当該重み係数の有効範囲が設定されていたが、それに限られない。例えば、カメラ３０などの他の情報源について訓練用データ群およびテストデータ群が作成され、重み係数および当該重み係数の有効範囲が設定されていてもよい。
【００５１】
上記各例において、データベース４１が、複数のセンサを備える作業装置が正常動作する場合の複数のセンサの測定データ群を正常データ群として記憶し、作業装置が異常動作する場合の複数のセンサの測定データ群を異常データ群として記憶する記憶部の一例として機能する。学習部４２が、正常データ群を用いて第１重み係数を算出し、異常データ群を用いて第２重み係数を算出する係数算出部の一例として機能する。測定値取得部４３が、複数のセンサの測定データを取得する取得部の一例として機能する。判断結果値算出部４７が、取得部が取得した各測定データの、基準に対する判断結果を異常スコアとして算出するスコア算出部の一例として機能する。異常判断処理部４８が、正常データ群の分布範囲および異常データ群の分布範囲のうち各測定データが位置する分布範囲の重み係数を選択し、選択された重み係数を対応する異常スコアに乗じ、得られた各値に基づいて異常判断を行う判断部の一例として機能する。また、学習部４２が、訓練用正常データ群と訓練用異常データ群とから各測定データの基準を作成する基準作成部の一例としても機能する。
【００５２】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５３】
１０  作業ロボット
２０  コントローラ
３０  カメラ
４０  判定装置
４１  データベース
４２  学習部
４３  測定値取得部
４４  区間弁別部
４５  個別認識部
４６  画像判定部
４７  判断結果値算出部
４８  異常判断処理部
１００  作業装置
【図１】
0006688962.tif 000005
【図２】
0006688962.tif 000006
【図３】
0006688962.tif 000007
【図４】
0006688962.tif 000008
【図５】
0006688962.tif 000009
【図６】
0006688962.tif 000010
【図７】
0006688962.tif 000011
【図８】
0006688962.tif 000012
【図９】
0006688962.tif 000013
【図１０】
0006688962.tif 000014
【図１１】
0006688962.tif 000015
【図１２】
0006688962.tif 000016