(57)【特許請求の範囲】
【請求項１】
被写体の正常な作業動作を撮像した動画データに含まれる各第１フレームと、該第１フレームの特徴を示す第１特徴量とを対応付けて記憶部に記憶し、被写体のある作業動作を撮像した動画データに含まれる各第２フレームと、該第２フレームの特徴を示す第２特徴量とを対応付けて記憶部に記憶する特徴量抽出部と、
前記第２フレームに含まれる被写体の作業段階を基にして、前記被写体の作業段階と時刻とを定義したティーチデータに含まれる作業段階のうち、終了した作業段階の時刻と、終了していない作業段階の時刻とを特定し、特定した作業段階の時刻と、終了していない作業段階の時刻とを基にして、所定の時間範囲を特定し、前記第２フレームの第２特徴量と比較する各第１フレームの第１特徴量を、前記第２フレームの時刻を基準とした前記所定の時間範囲に含まれる第１フレームの第１特徴量から取得し、前記第２フレームの第２特徴量と、取得した各第１フレームの第１特徴量とを比較して、前記第２特徴量に最も近い第１特徴量を特定し、特定した第１特徴量と前記第２特徴量とを基にして異常値を算出する処理を、前記第２フレームの各時刻においてそれぞれ実行することで、各時刻の異常値を特定し、各時刻の異常値を基にして、前記ある作業動作が異常であるか否かを判定する判定部と
を有することを特徴とする異常検出装置。
【請求項２】
前記特徴量抽出部は、異なる場所に設置された複数の撮像装置により撮像された同一の被写体を含む各第１フレームの第１特徴量を平均化、あるいは、撮像装置の被写体に対する向きにより、被写体の動き量がより大きく観測される時間帯の撮像装置の各第１フレームの第１特徴量を選択して、前記第１フレームの第１特徴量を抽出し、前記複数の撮像装置により撮像された同一の被写体を含む各第２フレームの第２特徴量を平均化、あるいは、撮像装置の被写体に対する向きにより、被写体の動き量がより大きく観測される時間帯の撮像装置の各第２フレームの第２特徴量を選択して、前記第２フレームの第２特徴量を抽出することを特徴とする請求項１に記載の異常検出装置。
【請求項３】
コンピュータが実行する異常検出方法であって、
被写体の正常な作業動作を撮像した動画データに含まれる各第１フレームと、該第１フレームの特徴を示す第１特徴量とを対応付けて記憶装置に記憶し、
被写体のある作業動作を撮像した動画データに含まれる各第２フレームと、該第２フレームの特徴を示す第２特徴量とを対応付けて記憶装置に記憶し、
前記第２フレームに含まれる被写体の作業段階を基にして、前記被写体の作業段階と時刻とを定義したティーチデータに含まれる作業段階のうち、終了した作業段階の時刻と、終了していない作業段階の時刻とを特定し、特定した作業段階の時刻と、終了していない作業段階の時刻とを基にして、所定の時間範囲を特定し、
前記第２フレームの第２特徴量と比較する各第１フレームの第１特徴量を、前記第２フレームの時刻を基準とした前記所定の時間範囲に含まれる第１フレームの第１特徴量から取得し、
前記第２フレームの第２特徴量と、取得した各第１フレームの第１特徴量とを比較して、前記第２特徴量に最も近い第１特徴量を特定し、特定した第１特徴量と前記第２特徴量とを基にして異常値を算出する処理を、前記第２フレームの各時刻においてそれぞれ実行することで、各時刻の異常値を特定し、各時刻の異常値を基にして、前記ある作業動作が異常であるか否かを判定する
処理を実行することを特徴とする異常検出方法。
【請求項４】
コンピュータに、
被写体の正常な作業動作を撮像した動画データに含まれる各第１フレームと、該第１フレームの特徴を示す第１特徴量とを対応付けて記憶装置に記憶し、
被写体のある作業動作を撮像した動画データに含まれる各第２フレームと、該第２フレームの特徴を示す第２特徴量とを対応付けて記憶装置に記憶し、
前記第２フレームに含まれる被写体の作業段階を基にして、前記被写体の作業段階と時刻とを定義したティーチデータに含まれる作業段階のうち、終了した作業段階の時刻と、終了していない作業段階の時刻とを特定し、特定した作業段階の時刻と、終了していない作業段階の時刻とを基にして、所定の時間範囲を特定し、
前記第２フレームの第２特徴量と比較する各第１フレームの第１特徴量を、前記第２フレームの時刻を基準とした前記所定の時間範囲に含まれる第１フレームの第１特徴量から取得し、
前記第２フレームの第２特徴量と、取得した各第１フレームの第１特徴量とを比較して、前記第２特徴量に最も近い第１特徴量を特定し、特定した第１特徴量と前記第２特徴量とを基にして異常値を算出する処理を、前記第２フレームの各時刻においてそれぞれ実行することで、各時刻の異常値を特定し、各時刻の異常値を基にして、前記ある作業動作が異常であるか否かを判定する
処理を実行させることを特徴とする異常検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出装置等に関する。
【背景技術】
【０００２】
産業用のロボットを利用して、従来作業員によって行われていた作業を無人化することで、作業員による作業ミスの削減、作業効率、作業員に対する安全生の向上を図るＦＡ（Factory  Automation）システムが多くの作業現場に適用されている。【０００３】
ここで、ＦＡシステムでは、ロボットの繰り返し作業による組立工程において、例えば、組立部品の設置位置やロボットによるハンドリング姿勢のわずかな違いの影響がその後の組立作業に波及して、ＮＧ品を発生させる要因となる場合がある。【０００４】
このため、ＦＡシステムの管理者は、各ロボットの動作や、組立部品の設置位置等を定期的に点検することで、ＮＧ部品を発生させないような対策を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３３４７５６号公報
【特許文献２】特開２００６−７９２７２号公報
【特許文献３】特開２００６−１７８７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、ＮＧ品を発生させるようなロボットの作業変動の異常を精度よく検出することができないという問題がある。【０００７】
例えば、従来のＦＡシステムでは、管理者が各ロボットの動作や、組立部品の設置位置等を定期的に点検することで、対策を行っているが、人手によってわずかな作業変動を見つけることは難しい。作業変動による異常は、組立中の製品に影響を及ぼすため、作業変動をその場で検知できることが望ましいが、上述のようにその検知が困難であるため、従来は製品の組立が終わったあとに、その製品がＯＫ品かＮＧ品かを検査した結果から作業変動の有無を推測するしかなかった。上記問題は、ロボットに限られるものではなく、所定の動作を行う対象物の異常を検出する場合も同様に発生する。【０００８】
１つの側面では、対象物の作業変動の異常を精度よく検出することができる異常検出装置、異常検出方法および異常検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、異常検出装置は、特徴量抽出部および判定部を有する。特徴量抽出部は、被写体の正常な作業動作を撮像した動画データに含まれる各第１フレームと、該第１フレームの特徴を示す第１特徴量とを対応付けて記憶部に記憶する。特徴量抽出部は、被写体のある作業動作を撮像した動画データに含まれる各第２フレームと、該第２フレームの特徴を示す第２特徴量とを対応付けて記憶部に記憶する。判定部は、第２フレームの第２特徴量と、各第１フレームの第１特徴量とを比較して、第２特徴量に最も近い第１特徴量を特定する。判定部は、特定した第１特徴量と第２特徴量とを基にして、ある作業動作が異常であるか否かを判定する。
【発明の効果】
【００１０】
本発明の１実施態様によれば、対象物の作業変動の異常を精度よく検出することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、参考例のシステムを示す図である。
【図２】図２は、参考例の異常値の推移の一例を示す図（１）である。
【図３】図３は、参考例の異常値の推移の一例を示す図（２）である。
【図４】図４は、参考例のシステムの処理手順を示すフローチャートである。
【図５】図５は、本実施例１に係るシステムの構成を示す図である。
【図６】図６は、本実施例１に係る異常検出装置の構成を示す機能ブロック図である。
【図７】図７は、各第１フレームから抽出した各第１特徴量の一例を示す図である。
【図８】図８は、各第２フレームから抽出した各第２特徴量の一例を示す図である。
【図９】図９は、本実施例１に係る判定部の処理を説明するための図である。
【図１０】図１０は、本実施例１に係る異常検出装置の処理手順を示すフローチャートである。
【図１１】図１１は、本実施例１の効果を説明するための図である。
【図１２】図１２は、本実施例２に係るシステムの構成を示す図である。
【図１３】図１３は、本実施例２に係る異常検出装置の構成を示す機能ブロック図である。
【図１４】図１４は、ティーチデータのデータ構造の一例を示す図である。
【図１５】図１５は、本実施例２に係る判定部の処理を説明するための図である。
【図１６】図１６は、本実施例２に係る異常検出装置の処理手順を示すフローチャートである。
【図１７】図１７は、異常検出プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる異常検出装置、異常検出方法および異常検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
まず、本実施例の説明を行う前に、本実施例の前提となる参考例について説明する。この参考例は、従来技術に対応するものではない。図１は、参考例のシステムを示す図である。図１に示すように、参考例のシステムは、ロボット５と、撮像素子１０ａ，１０ｂと、照明１１ａ，１１ｂと、撮像素子コントローラ２０と、照明コントローラ３０と、異常検出装置４０を有する。【００１４】
ロボット５は、ティーチデータに基づいて、所定の組立作業を行うロボットである。ティーチデータは、動作を開始してからの時刻と、ロボット５の作業内容とを対応付けたデータである。【００１５】
撮像素子１０ａ，１０ｂは、撮像素子コントローラ２０からの制御信号に応じて、被写体となるロボット５を撮像する装置である。以下の説明では、撮像素子１０ａ，１０ｂをまとめて、撮像素子１０と表記する。撮像素子１０は、撮像したロボット５の動画データを、撮像素子コントローラ２０に出力する。【００１６】
照明１１ａ，１１ｂは、照明コントローラ３０からの制御信号に応じて、ロボット５を照らす照明である。以下の説明では、照明１１ａ，１１ｂをまとめて、照明１１と表記する。【００１７】
撮像素子コントローラ２０は、制御信号を撮像素子１０に出力して、撮像素子１０を動作させ、撮像素子１０からロボット５の動画データを取得する装置である。撮像素子コントローラ２０は、動画データを異常検出装置４０に出力する。【００１８】
照明コントローラ３０は、制御信号を照明１１に出力して、照明１１を動作させる処理部である。【００１９】
異常検出装置４０は、ロボット５の動作に異常があるか否かを検出する装置である。異常検出装置４０は、準備段階において、ロボット５の正常な作業動作を撮像した動画データに含まれるフレームと、このフレームの特徴量とを対応付けて記憶部に記憶する。また、異常検出装置４０は、異常検出段階において、ロボット５の作業動作を撮像した動画データに含まれるフレームと、このフレームの特徴量とを対応付けて記憶部に記憶する。【００２０】
以下の説明において、準備段階におけるロボット５の正常な作業動作を撮像した動画データに含まれるフレームを、第１フレームと表記する。第１フレームの特徴量を第１特徴量と表記する。異常検出段階におけるロボット５の作業動作を撮像した動画データに含まれるフレームを、第２フレームと表記する。第２フレームの特徴量を第２特徴量と表記する。【００２１】
異常検出装置４０は、第１フレームの第１特徴量と、第２フレームの第２特徴量との組をそれぞれ先頭から順番に比較する。例えば、異常検出装置４０は、時刻ｔｎの第１フレームの第１特徴量と、時刻ｔｎの第２フレームの第２特徴量とを、順に比較していく。ｎは、１以上の自然数である。異常検出装置４０は、各特徴量の距離を示す異常値が、閾値以上となる第１フレームおよび第２フレームの組が存在する場合に、ロボット５の作業動作に異常があると判定する。【００２２】
図２および図３は、参考例の異常値の推移の一例を示す図である。図２および図３において、縦軸は異常値を示す軸であり、横軸は時刻を示す軸である。図２は、参考例の異常検出段階において、異常が検出されない異常値の推移を示す。図３は、参考例の異常検出段階において、異常が検出される異常値の推移を示す。【００２３】
図２について説明する。図２の線分１ａは、正常空間の平均値を示す線分である。正常空間の平均値は、例えば、準備段階において、ロボット５の正常な作業動作を繰り返し撮像し、複数の動画データを用いて、複数の第１特徴量の距離を平均化した値である。線分１ｂは、第１特徴量と、第２特徴量との距離を示す線分である。以下の説明では、適宜、第１特徴量と、第２特徴量との距離を、異常値と表記する。異常検出装置４０は、線分１ｂの異常値が閾値以上とならないので、異常検出段階において、ロボット５の作業に異常はないと判定する。【００２４】
図３について説明する。図３の線分１ａは、図２の線分１ａに対応するものである。線分１ｃは、第１特徴量と第２特徴量との距離を示す異常値である。異常検出装置４０は、線分１ｃの異常値が閾値以上となるので、異常検出段階において、ロボット５の作業に異常があると判定する。【００２５】
次に、参考例のシステムの処理手順の一例について説明する。図４は、参考例のシステムの処理手順を示すフローチャートである。図４に示すように、異常検出装置４０は、ティーチデータを受け付け、受け付けたティーチデータを、ロボット５にアップロードする（ステップＳ１０）。撮像素子１０は、ロボットの正常動作を撮像し（ステップＳ１１）、異常検出装置４０は、正常作業の第１フレームから、第１フレーム毎に第１特徴量を算出する（ステップＳ１２）。【００２６】
異常検出装置４０は、複数の正常作業から第１フレーム毎の正常空間を生成する（ステップＳ１３）。異常検出装置４０は、正常空間の平均値をフレーム軸で算出する（ステップＳ１４）。【００２７】
撮像素子１０は、異常検出段階において、ロボット５の対象作業を撮像する（ステップＳ１５）。異常検出装置４０は、対象作業の第２フレームから、第２フレーム毎に第２特徴量を算出する（ステップＳ１６）。異常検出装置４０は、対象作業の第２フレームの第２特徴量と、正常作業の第１フレームの第１特徴量との異常値を、フレーム毎に算出する（ステップＳ１７）。異常検出装置４０は、フレーム毎の異常値に基づいて、作業の異常を検出する（ステップＳ１８）。【００２８】
上記のように、参考例の異常検出装置４０は、正常動作の第１特徴量と、異常検出段階の第２特徴量との異常値を算出し、異常値が閾値を超えた場合に、ロボット５の作業に異常があると判定する。これによって、参考例では、管理者が定期的にロボット５の点検を行わなくても、自動的にロボット５の異常を検出することが可能になる。【００２９】
しかしながら、上記の参考例では、組立作業に悪影響を及ぼさない作業変動が発生した場合でも、ロボット５の作業に異常が発生したと誤検出するという問題がある。組立作業に悪影響を及ぼさない作業変動は、例えば、部品の位置決めなどによる作業時間の変動や、ロボット５の移動速度や距離に依存した、制御の困難な作業時間の微少変動に対応する。【００３０】
次に、本実施例１に係るシステムの構成について説明する。図５は、本実施例１に係るシステムの構成を示す図である。図５に示すように、このシステムは、ロボット５と、撮像素子１０ａ，１０ｂと、照明１１ａ，１１ｂと、撮像素子コントローラ２０と、照明コントローラ３０と、異常検出装置１００とを有する。【００３１】
図５において、ロボット５、撮像素子１０ａ，１０ｂ、照明１１ａ，１１ｂ、撮像素子コントローラ２０、照明コントローラ３０に関する説明は、図１で説明したものと同様であるため、ここでは説明を省略する。【００３２】
異常検出装置１００は、ロボット５の動作に異常があるか否かを検出する装置である。図６は、本実施例１に係る異常検出装置の構成を示す機能ブロック図である。図６に示すように、この異常検出装置１００は、インタフェース部１１０と、入力部１２０と、表示部１３０と、記憶部１４０と、制御部１５０とを有する。【００３３】
インタフェース部１１０は、撮像素子コントローラ２０、照明コントローラ３０とデータ通信を実行する処理部である。後述する制御部１５０は、インタフェース部１１０を介して、撮像素子コントローラ２０、照明コントローラ３０との間でデータをやり取りする。【００３４】
入力部１２０は、各種の情報を異常検出装置１００に入力する入力装置である。入力部１２０は、例えば、キーボードやマウスに対応する。表示部１３０は、制御部１５０から出力される各種の情報を表示する表示装置であり、液晶ディスプレイやモニタ等に対応する。【００３５】
記憶部１４０は、第１動画データ１４０ａと、第２動画データ１４０ｂと、第１特徴量テーブル１４０ｃと、第２特徴量テーブル１４０ｄとを有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００３６】
第１動画データ１４０ａは、準備段階におけるロボット５の正常な作業動作を撮像した動画データに対応するデータである。第１動画データ１４０ａは、時刻と、この時刻に対応する動画データの第１フレームとを対応付ける。【００３７】
第２動画データ１４０ｂは、異常検出段階におけるロボット５の作業動作を撮像した動画データに対応するデータである。第２動画データ１４０ｂは、時刻と、この時刻に対応する動画データの第２フレームとを対応付ける。【００３８】
第１特徴量テーブル１４０ｃは、各時刻の第１フレームから抽出された第１特徴量を有するデータである。第１特徴量テーブル１４０ｃは、時刻と、この時刻に対応する第１フレームから抽出された第１特徴量とを対応付ける。【００３９】
第２特徴量テーブル１４０ｄは、各時刻の第２フレームから抽出された第２特徴量を有するデータである。第２特徴量テーブル１４０ｄは、時刻と、この時刻に対応する第２フレームから抽出された第２特徴量とを対応付ける。【００４０】
制御部１５０は、通信制御部１５０ａと、特徴量抽出部１５０ｂと、判定部１５０ｃとを有する。制御部１５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００４１】
通信制御部１５０ａは、撮像素子コントローラ２０とデータ通信を行って、動画データを取得する処理部である。例えば、通信制御部１５０ａは、準備段階におけるロボット５の正常な作業動作を撮像した動画データを、撮像素子コントローラ２０から取得する。通信制御部１５０ａは、準備段階において、撮像素子コントローラ２０から取得した動画データを、第１動画データ１４０ａとして、記憶部１４０に格納する。【００４２】
通信制御部１５０ａは、異常検出段階におけるロボット５の作業動作を撮像した動画データを、撮像素子コントローラ２０から取得する。通信制御部１５０ａは、異常検出段階において、撮像素子コントローラ２０から取得した動画データを、第２動画データ１４０ｂとして、記憶部１４０に格納する。【００４３】
通信制御部１５０ａは、準備段階および異常検出段階において、撮像素子１０が撮像する間、照明コントローラ３０に対して、照明を作動させる制御命令を出力する。【００４４】
特徴量抽出部１５０ｂは、第１動画データ１４０ａの各第１フレームから第１特徴量を抽出し、抽出した第１特徴量を、抽出元の第１フレームに対応する時刻と対応付けて第１特徴量テーブル１４０ｃに登録する。また、特徴量抽出部１５０ｂは、第２動画データ１４０ｂの各第２フレームから第２特徴量を抽出し、抽出した第２特徴量を、抽出元の第２フレームに対応する時刻と対応付けて第２特徴量テーブル１４０ｄに格納する。【００４５】
ここで、特徴量抽出部１５０ｂが、第１フレームまたは第２フレームから特徴量を抽出する処理の一例について説明する。第１フレームから特徴量を抽出する処理と、第２フレームから特徴量を抽出する処理は同じであるため、ここでは、第１フレームと第２フレームとをまとめて、フレームと表記する。【００４６】
特徴量抽出部１５０ｂは、フレームに対する動画特徴、例えば式（１）に示したＮ次の自己相関関数を基に、Ｎ個の変位ａｉを空間方向と時間方向に拡張した立体高次自己相関特徴（CHLAC:Cubic Higher-order Local AutoCorrelation 特徴）などを、特徴量として抽出する。【００４７】
【数１】
0006504180.tif 000002
【００４８】
式（１）において、ｆは時系列画素値（差分値）であり、参照点（注目画素）ｒおよび参照点からみたＮ個の変位ａｉ（ｉ＝１，・・・Ｎ）は差分フレーム内の二次元座標および時間も成分として持つ三次元のベクトルである。式（１）において、時間方向の積分範囲は、どの程度の時間方向の相関を取るのか任意のパラメータである。【００４９】
図７は、各第１フレームから抽出した各第１特徴量の一例を示す図である。各第１特徴量の縦軸は、頻度（ベクトル）に対応し、横軸は、ベクトルの次数に対応する。図７では一例として、第１特徴量５０ａ，５０ｂ，５０ｃ，５０ｄ，５０ｅ，５０ｆを示す。【００５０】
図７において、第１特徴量５０ａは、時刻ｔ１の第１フレームから抽出された第１特徴量である。第１特徴量５０ｂは、時刻ｔ２の第１フレームから抽出された第１特徴量である。第１特徴量５０ｃは、時刻ｔ３の第１フレームから抽出された第１特徴量である。第１特徴量５０ｄは、時刻ｔ４の第１フレームから抽出された第１特徴量である。第１特徴量５０ｅは、時刻ｔ５の第１フレームから抽出された第１特徴量である。第１特徴量５０ｆは、時刻ｔ６の第１フレームから抽出された第１特徴量である。【００５１】
特徴量抽出部１５０ｂは、各第１特徴量を、抽出元の第１フレームに対応する時刻と対応付けて第１特徴量テーブル１４０ｃに登録する。例えば、第１特徴量テーブル１４０ｃの各時刻ｔ１〜ｔｎは、準備段階において、ロボット５に対する撮像を開始した時刻を起点とする相対時刻であるものとする。【００５２】
図８は、各第２フレームから抽出した各第２特徴量の一例を示す図である。各第２特徴量の縦軸は、頻度（ベクトル）に対応し、横軸は、ベクトルの次数に対応する。図８では一例として、第２特徴量６０ａ，６０ｂ，６０ｃ，６０ｄ，６０ｅを示す。【００５３】
図８において、第２特徴量６０ａは、時刻ｔ１’の第２フレームから抽出された第２特徴量である。第２特徴量６０ｂは、時刻ｔ２’の第２フレームから抽出された第２特徴量である。第２特徴量６０ｃは、時刻ｔ３’の第２フレームから抽出された第２特徴量である。第２特徴量６０ｄは、時刻ｔ４’の第２フレームから抽出された第２特徴量である。第２特徴量６０ｅは、時刻ｔ５’の第２フレームから抽出された第２特徴量である。【００５４】
特徴量抽出部１５０ｂは、各第１特徴量を、抽出元の第２フレームに対応する時刻と対応付けて第２特徴量テーブル１４０ｄに登録する。例えば、第２特徴量テーブル１４０ｄの各時刻ｔ１’〜ｔｎ’は、異常検出段階において、ロボット５に対する撮像を開始した時刻を起点とする相対時刻であるものとする。【００５５】
図６の説明に戻る。判定部１５０ｃは、第１特徴量と、第２特徴量とを比較して、第２特徴量と最も近い第１特徴量を特定し、特定した第１特徴量と第２特徴量との異常値に基づいて、作業動作に異常があるか否かを判定する処理部である。以下において、判定部１５０ｃの処理の一例について説明する。【００５６】
図９は、本実施例１に係る判定部の処理を説明するための図である。判定部１５０ｃは、第２特徴量を選択し、選択した第２特徴量の時刻を基準に、前後所定時間に含まれる複数の第１特徴量を選択する。判定部１５０ｃは、選択した第２特徴量および複数の第１特徴量との異常値を算出する。判定部１５０ｃは、第２特徴量のベクトルと、第１特徴量のベクトルとの距離を、異常値として算出する。【００５７】
【数２】
0006504180.tif 000003
【００５８】
例えば、判定部１５０ｃは、第２特徴量のベクトルと、第１特徴量のベクトルとの距離を算出する場合に、マハラノビス距離を用いてもよい。マハラノビス距離は、式（２）によって定義される。式（２）において、ｘは、第２特徴量のベクトルを示し、μは、第１特徴量の平均ベクトルを示す。Σは、分散共分散行列を示す。【００５９】
判定部１５０ｃは、複数の異常値のうち、最小の異常値を、選択した第２特徴量の異常値であると判定する。判定部１５０ｃは、他の第２特徴量についても、上記処理を繰り返し実行することで、各第２特徴量の異常値を算出する。【００６０】
図９において、例えば、判定部１５０ｃは、時刻ｔ２’の第２特徴量６０ｂを選択し、時刻ｔ２’を基準に、前後所定時間に含まれる時刻の第１特徴量を、時刻ｔ１〜ｔ３の特徴量５０ａ〜５０ｃであるものとする。前後所定時間は、管理者が予め設定しておくものとする。この場合には、判定部１５０ｃは、第２特徴量６０ｂと第１特徴量５０ａ〜５０ｃとをそれぞれ比較して、複数の異常値を特定し、特定した異常値のうち、最小の異常値を、第２特徴量６０ｂの異常値と判定する。判定部１５０ｃは、他の第２特徴量についても、上記処理を繰り返し実行する。【００６１】
判定部１５０ｃは、各第２特徴量の異常値を基にして、所定の閾値を超える異常値が存在するか否かを判定する。判定部１５０ｃは、所定の閾値を超える異常値が存在する場合には、異常検出段階において、ロボット５の作業動作に異常があると判定し、判定結果を表示部１３０または他の外部装置に出力する。【００６２】
次に、本実施例１に係る異常検出装置１００の処理手順の一例について説明する。図１０は、本実施例１に係る異常検出装置の処理手順を示すフローチャートである。図１０に示すように、異常検出装置１００の通信処理部１５０ａは、第１動画データ１４０ａおよび第２動画データ１４０ｂを取得する（ステップＳ１０１）。異常検出装置１００の判定部１５０ｃは、比較を開始する時刻ｔを算出する（ステップＳ１０２）。例えば、ステップＳ１０２において、判定部１５０ｃは、第１動画データ１４０ａまたは第２動画データ１４０ｂに含まれるフレームのうち、初めのフレームの時刻を、比較を開始する時刻ｔとして算出する。【００６３】
判定部１５０ｃは、時刻ｔにオフセットを加算することで、時刻ｔを更新する（ステップＳ１０３）。例えば、オフセットの初期値を０とする。判定部１５０ｃは、時刻ｔに対応する第２フレームを取得する（ステップＳ１０４）。判定部１５０ｃは、時刻ｔ−α〜時刻ｔ＋βの各第１フレームと、時刻ｔの第２フレームとを比較して複数の異常値を算出する（ステップＳ１０５）。図１０では説明を省略するが、ステップＳ１０５において、判定部１５０ｃは、第１フレームの第１特徴量と、第２フレームの第２特徴量とを比較して、異常値を算出する。【００６４】
判定部１５０ｃは、算出した複数の異常値のうち、最小の異常値を採用する（ステップＳ１０６）。判定部１５０ｃは、最小の異常値となる第１フレームの時刻Ｔｎｅｗを保持する（ステップＳ１０７）。例えば、ステップＳ１０７において、判定部１５０ｃは、最小の異常値となる第１フレームと第２フレームとの組が、時刻ｔ１の第１フレームと、時刻ｔ１’の第２フレームとの組である場合には、時刻ｔｎｅｗに、時刻ｔ１を設定する。【００６５】
判定部１５０ｃは、時刻ｔと時刻ｔｎｅｗとの差分を、オフセットに設定する（ステップＳ１０８）。判定部１５０ｃは、処理を終了するか否かを判定する（ステップＳ１０９）。判定部１５０ｃは、処理を終了しない場合には（ステップＳ１０９，Ｎｏ）、ステップＳ１０３に移行する。判定部１５０ｃは、処理を終了する場合には（ステップＳ１０９、Ｙｅｓ）、ロボット５の作業処理を終了する。【００６６】
次に、本実施例１に係る異常検出装置１００の効果について説明する。異常検出装置１００は、第２特徴量の異常値を算出する場合に、第２特徴量の時刻を基準にした所定の時間範囲内で、第２特徴量に最も近い第１特徴量を検索し、検索した第１特徴量と第２特徴量との異常値を算出する。これによって、組立作業に悪影響を及ぼさない作業変動が発生した場合でも、かかる作業変動によって異常値が大きくなることを抑止し、ロボット５の作業に異常が発生したと誤検出するという問題を解消することができる。【００６７】
図１１は、本実施例１の効果を説明するための図である。図１１の縦軸は異常値に対応する軸であり、横軸は時刻に対応する軸である。図１１に示す線分１ａは、図２に示した線分１ａと同様にして、平常空間の平均値を示す線分である。線分１ｄは、参考例の異常検出装置４０によって算出された、異常値の推移である。線分１ｅは、本実施例１の異常検出装置１００によって算出された、異常値の推移である。【００６８】
例えば、参考例の異常検出装置４０では、組立作業に悪影響を及ぼさない作業変動が発生した場合でも、線分１ｄに示すように、異常値が閾値を超えて、異常が発生したと誤検出してしまう。これに対して、線分１ｅに示すように、本実施例１に係る異常検出装置１００では、組立作業に悪影響を及ぼさない作業変動が発生した場合でも、異常値が閾値を超えず、異常の誤検出を抑止することができる。【００６９】
ところで、本実施例に係る判定部１５０ｃは、第２特徴量と、各第１特徴量とをそれぞれ一つずつ比較して、複数の異常値を算出していたが、これに限定されるものではない。例えば、判定部１５０ｃは、第２特徴量と、複数の第１特徴量とをまとめて比較し、複数の異常値を一度に算出してもよい。また、判定部１５０ｃは、第２特徴量と、第１特徴量とを比較する場合に、一部の次数について、第２特徴量と類似する第１特徴量を絞り込み、絞り込んだ第１特徴量から、第２特徴量に最も類似する第１特徴量を、異常値の算出対象として、特定してもよい。【００７０】
特徴量抽出部１５０ｂが、第１フレームから特徴量を抽出するその他の処理について説明する。特徴量抽出部１５０ｂは、時刻ｔにおいて、撮像素子１０ａが撮像した動画データの第１フレームから抽出した第１特徴量と、撮像素子１０ｂが撮像した動画データの第１フレームから抽出した第１特徴量とを平均化、あるいは、たとえば撮像装置の被写体に対する向きなどにより、被写体の動き量がより大きく観測される時間帯の撮像装置の各第１フレームの第１特徴量を選択する。そして、特徴量抽出部１５０ｂは、平均化、あるいは選択した第１特徴量を、時刻ｔにおける第１フレームの第１特徴量として、第１特徴量テーブル１４０ｃに登録してもよい。【００７１】
特徴量抽出部１５０ｂが、第２フレームから特徴量を抽出するその他の処理について説明する。特徴量抽出部１５０ｂは、時刻ｔ’において、撮像素子１０ａが撮像した動画データの第２フレームから抽出した第２特徴量と、撮像素子１０ｂが撮像した動画データの第２フレームから抽出した第２特徴量とを平均化、あるいは、たとえば撮像装置の被写体に対する向きなどにより、被写体の動き量がより大きく観測される時間帯の撮像装置の各第２フレームの第２特徴量を選択する。そして、特徴量抽出部１５０ｂは、平均化、あるいは選択した第２特徴量を、時刻ｔ’における第２フレームの第２特徴量として、第２特徴量テーブル１４０ｄに登録してもよい。【００７２】
上記のように、特徴量抽出部１５０ｂが、異なる位置に設置された撮像素子１０ａ，１０ｂに撮像された動画データのフレームの特徴量を平均化、あるいは選択したものを、該当フレームの特徴量として設定する。これによって、ノイズなどの影響を除いて、精度よく特徴量を特定することができる。
【実施例２】
【００７３】
次に、本実施例２に係るシステムの構成について説明する。図１２は、本実施例２に係るシステムの構成を示す図である。図１２に示すように、このシステムは、ロボット５と、撮像素子１０ａ，１０ｂと、照明１１ａ，１１ｂと、撮像素子コントローラ２０と、照明コントローラ３０と、異常検出装置２００とを有する。【００７４】
図１２において、ロボット５、撮像素子１０ａ，１０ｂ、照明１１ａ，１１ｂと、撮像素子コントローラ２０、照明コントローラ３０に関する説明は、図１で説明したものと同様であるため、ここでは説明を省略する。【００７５】
異常検知装置２００は、ロボット５の動作に異常があるか否かを検出する装置である。図１３は、本実施例２に係る異常検出装置の構成を示す機能ブロック図である。図１３に示すように、この異常検出装置２００は、インタフェース部２１０、入力部２２０、表示部２３０、記憶部２４０、制御部２５０を有する。【００７６】
インタフェース部２１０は、ロボット５、撮像素子コントローラ２０、照明コントローラ３０とデータ通信を実行する処理部である。後述する制御部２５０は、インタフェース部２１０を介して、ロボット５、撮像素子コントローラ２０、照明コントローラ３０との間でデータをやり取りする。【００７７】
入力部２２０は、各種の情報を異常検出装置２００に入力する入力装置である。入力部２２０は、例えば、キーボードやマウスに対応する。表示部２３０は、制御部２５０から出力される各種の情報を表示する表示装置であり、液晶ディスプレイやモニタ等に対応する。【００７８】
記憶部２４０は、第１動画データ２４０ａ、第２動画データ２４０ｂ、第１特徴量テーブル２４０ｃ、第２特徴量テーブル２４０ｄ、ティーチデータ２４０ｅを有する。記憶部２４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。【００７９】
第１動画データ２４０ａおよび第２動画データ２４０ｂに関する説明は、図６に示した第１動画データ１４０ａおよび第２動画データ１４０ｂに関する説明と同様である。また、第１特徴量テーブル２４０ｃおよび第２特徴量テーブル２４０ｄに関する説明は、図６に示した第１特徴量テーブル１４０ｃ、第２特徴量テーブル１４０ｄに関する説明と同様である。【００８０】
ティーチデータ２４０ｅは、ロボット５が作業を開始してからの時刻を示すティーチポイントと、ロボット５の作業内容とを対応付けたデータである。図１４は、ティーチデータのデータ構造の一例を示す図である。図１４に示すように、このティーチデータ２４０ｅは、ティーチポイントと、作業内容とを対応付ける。ティーチデータ２４０ｅと同じティーチデータが、ロボット５にアップロードされ、ロボット５は、ティーチデータに基づいて、作業を行う。【００８１】
図１３の説明に戻る。制御部２５０は、通知制御部２５０ａと、特徴量抽出部２５０ｂと、判定部２５０ｃとを有する。制御部２５０は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部２５０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。【００８２】
通信制御部２５０ａは、撮像素子コントローラ２０とデータ通信を行って、動画データを取得する処理部である。例えば、通信制御部２５０ａは、準備段階におけるロボット５の正常な作業動作を撮像した動画データを、撮像素子コントローラ２０から取得する。通信制御部２５０ａは、準備段階において、撮像素子コントローラ２０から取得した動画データを、第１動画データ２４０ａとして、記憶部２４０に格納する。【００８３】
通信制御部２５０ａは、異常検出段階におけるロボット５の作業動作を撮像した動画データを、撮像素子コントローラ２０から取得する。通信制御部２５０ａは、異常検出段階において、撮像素子コントローラ２０から取得した動画データを、第２動画データ２４０ａとして、記憶部２４０に格納する。【００８４】
通信制御部２５０ａは、準備段階および異常検出段階において、撮像素子１０が撮像する間、照明コントローラ３０に対して、照明を作動させる制御命令を出力する。【００８５】
通信制御部２５０ａは、インタフェース部２１０または入力部２２０等を介して、ティーチデータ２４０ｅを取得し、取得したティーチデータ２４０ｅを、記憶部２４０に格納する。また、通信制御部２５０ａは、異常検出段階において、撮像素子コントローラ２０が、第２動画データ２４０ｂを撮像している間に、ロボット５とデータ通信を行って、ロボット５がどのティーチポイントまでの作業を進めたのかを示す情報をロボット５から取得する。通信処理部２５０ａは、第２動画データ２４０ｂの第２フレームの時刻と、終了した作業内容のティーチポイントとを対応付けた対応情報を、判定部２５０ｃに出力する。【００８６】
特徴量抽出部２５０ｂは、第１動画データ２４０ａの各第１フレームから第１特徴量を抽出し、抽出した第１特徴量を、抽出元の第１フレームに対応する時刻と対応付けて第１特徴量テーブル２４０ｃに登録する。また、特徴量抽出部２５０ｂは、第２動画データ２４０ｂの各第２フレームから第２特徴量を抽出し、抽出した第２特徴量を、抽出元の第２フレームに対応する時刻と対応付けて第２特徴量テーブル２４０ｄに格納する。特徴量抽出部２５０ｂが、フレームから特徴量を抽出する処理は、実施例１に示した特徴量抽出部１５０ｂと同様である。【００８７】
判定部２５０ｃは、第１特徴量と、第２特徴量とを比較して、第２特徴量と最も近い第１特徴量を特定し、特定した第１特徴量と第２特徴量との異常値に基づいて、作業動作に異常があるか否かを判定する処理部である。以下において、判定部２５０ｃの処理の一例について説明する。【００８８】
判定部２５０ｃは、第２特徴量を選択し、選択した第２特徴量の時刻を基準に、前後所定時間に含まれる複数の第１特徴量を選択する。ここで、判定部２５０ｃは、第２特徴量の時刻と、対応情報とを比較して、第２フレームから抽出された第２特徴量の時刻において、どのティーチポイントの作業内容まで終了したのかを特定し、前後所定時間を決定する。【００８９】
図１５は、本実施例２に係る判定部の処理を説明するための図である。図１５において、例えば、選択した第２特徴量の時刻をｔ’とし、時刻ｔ’において、ティーチポイントＴ３の作業内容まで終了しているものとする。この場合には、判定部２５０ｃは、作業の終了したティーチポイントＴ３から次のティーチポイントＴ４の時間に含まれる複数の第１特徴量を選択する。図１５に示す例では、判定部２５０ｃは、ｔ’−α〜ｔ’＋βに含まれる時刻の第１特徴量を判定する。ここで、αは、Ｔ３からｔ’を減算した時間に対応する。βは、Ｔ４からｔ’を減算した時間に対応する。【００９０】
判定部２５０ｃは、第２特徴量および複数の第１特徴量との異常値を算出する。例えば、判定部２５０ｃは、第２特徴量のベクトルと、第１特徴量のベクトルとの距離を、異常値として算出する。判定部２５０ｃは、複数の異常値のうち、最小の異常値を、選択した第２特徴量の異常値であると判定する。判定部２５０ｃは、他の第２特徴量についても、上記処理を繰り返し実行することで、各第２特徴量の異常値を算出する。【００９１】
次に、本実施例２に係る異常検出装置２００の処理手順の一例について説明する。図１６は、本実施例２に係る異常検出装置の処理手順を示すフローチャートである。図１６に示すように、異常検出装置２００の通信処理部２５０ａは、第１動画データ２４０ａおよび第２動画データ２４０ｂを取得する（ステップＳ２０１）。異常検出装置２００の判定部２５０ｃは、比較を開始する時刻ｔを算出する（ステップＳ２０２）。例えば、ステップＳ２０２において、判定部２５０ｃは、第１動画データ２４０ａまたは第２動画データ２４０ｂに含まれるフレームのうち、初めのフレームの時刻を、比較を開始する時刻ｔとして算出する。【００９２】
判定部２５０ｃは、時刻ｔにオフセットを加算することで、時刻ｔを更新する（ステップＳ２０３）。例えば、オフセットの初期値を０とする。判定部２５０ｃは、時刻ｔに対応する第２フレームを取得する（ステップＳ２０４）。判定部２５０ｃは、ティーチポイントの通過状況を基にして、αおよびβを特定する（ステップＳ２０５）。【００９３】
判定部２５０ｃは、時刻ｔ−α〜時刻ｔ＋βの各第１フレームと、時刻ｔの第２フレームとを比較して複数の異常値を算出する（ステップＳ２０６）。図１６では説明を省略するが、ステップＳ２０６において、判定部２５０ｃは、第１フレームの第１特徴量と、第２フレームの第２特徴量とを比較して、異常値を算出する。【００９４】
判定部２５０ｃは、算出した複数の異常値のうち、最小の異常値を採用する（ステップＳ２０７）。判定部２５０ｃは、最小の異常値となる第１フレームの時刻ｔｎｅｗを保持する（ステップＳ２０８）。例えば、ステップＳ２０８において、判定部２５０ｃは、最小の異常値となる第１フレームと第２フレームとの組が、時刻ｔ１の第１フレームと、時刻ｔ１’の第２フレームとの組である場合には、時刻ｔｎｅｗに、時刻ｔ１を設定する。【００９５】
判定部２５０ｃは、時刻ｔと時刻ｔｎｅｗとの差分を、オフセットに設定する（ステップＳ２０９）。判定部２５０ｃは、処理を終了するか否かを判定する（ステップＳ２１０）。判定部２５０ｃは、処理を終了しない場合には（ステップＳ２１０，Ｎｏ）、ステップＳ２０３に移行する。判定部２５０ｃは、処理を終了する場合には（ステップＳ２１０，Ｙｅｓ）、ロボット５の作業処理を終了する。【００９６】
次に、本実施例２に係る異常検出装置２００の効果について説明する。異常検出装置２００は、第２特徴量の異常値を算出する場合に、ティーチポイントの通過状況を基にして、第２特徴量と比較する第１特徴量の時刻を特定する。これによって、第２特徴量との異常値を算出する第１特徴量の数を絞り込むことができ、効率的に異常値を算出することができる。【００９７】
次に、上記実施例に示した異常検出装置１００，２００と同様の機能を実現する異常検出プログラムを実行するコンピュータの一例について説明する。図１７は、異常検出プログラムを実行するコンピュータの一例を示す図である。【００９８】
図９に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読取る読み取り装置３０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置３０５とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。【００９９】
ハードディスク装置３０７は、特徴量抽出プログラム３０７ａ、判定プログラム３０７ｂを読み出してＲＡＭ３０６に展開する。特徴量抽出プログラム３０７ａは、特徴量抽出プロセス３０６ａとして機能する。判定プログラム３０７ｂは、判定プロセス３０６ｂとして機能する。【０１００】
なお、特徴量抽出プログラム３０７ａ、判定プログラム３０７ｂについては、必ずしも最初からハードディスク装置３０７に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が特徴量抽出プログラム３０７ａ、判定プログラム３０７ｂを読み出して実行するようにしてもよい。
【符号の説明】
【０１０１】
１００，２００  異常検出装置
１５０ｂ，２５０ｂ  特徴量抽出部
１５０ｃ，２５０ｃ  判定部
【図１】
0006504180.tif 000004
【図２】
0006504180.tif 000005
【図３】
0006504180.tif 000006
【図４】
0006504180.tif 000007
【図５】
0006504180.tif 000008
【図６】
0006504180.tif 000009
【図７】
0006504180.tif 000010
【図８】
0006504180.tif 000011
【図９】
0006504180.tif 000012
【図１０】
0006504180.tif 000013
【図１１】
0006504180.tif 000014
【図１２】
0006504180.tif 000015
【図１３】
0006504180.tif 000016
【図１４】
0006504180.tif 000017
【図１５】
0006504180.tif 000018
【図１６】
0006504180.tif 000019
【図１７】
0006504180.tif 000020