(57)【要約】【課題】作業者による作業を撮影した映像から作業が正しく行われたか否かを正しく判定する。【解決手段】分析装置１００は、作業者の移動または物体の移動の少なくとも一方を映像から検知する分析部５０２、および、作業を構成する複数の動作の順序を定義するとともに分割点によって複数の部分に分割された定義動作列と、分割点に対応するとともに作業中に発生する分割イベントを記憶するＲＡＭ１０３を有する。分析部５０２は、検知された複数の動作を並べた検知動作列を生成するとともに、分割イベントによって検知動作列を複数の部分に分割し、分割された検知動作列とのマッチングを行うことで、作業が正しく行われたか否かを判定する。【選択図】図１
2019101919.tif 000002
【特許請求の範囲】
【請求項１】
作業者による作業を撮影した映像を取得する映像取得手段と、
前記取得された映像から、前記作業者の移動または物体の移動の少なくとも一方を検知する移動検知手段と、
前記作業を構成する複数の動作の順序を定義するとともに少なくとも１つの分割点によって複数の部分に分割された定義動作列と、前記分割点に対応するとともに前記作業で発生するイベントである分割イベントを記憶する記憶手段と、
前記移動検知手段での検知結果から前記動作を検知して、検知された複数の動作を並べた検知動作列を生成する検知動作列生成手段と、
前記取得された映像から前記分割イベントを検知して、検知された分割イベントにより前記検知動作列を複数の部分に分割し、前記分割された前記定義動作列と前記分割された検知動作列とのマッチングを行って、前記作業が正しく行われたか否かを判定する分析手段と、を備えることを特徴とする、
情報処理装置。
【請求項２】
前記分析手段は、前記分割イベントを検知した場合に、前記定義動作列と前記分割イベントを検知するまでに生成された検知動作列とのマッチングを行うことを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記検知動作列生成手段は、前記検知された複数の動作を時系列順に並べて前記検知動作列を生成することを特徴とする、
請求項１または２に記載の情報処理装置。
【請求項４】
前記分析手段は、前記定義動作列と前記検知動作列とをそれぞれ分割された部分ごとに比較した結果から前記マッチングを行うことを特徴とする、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記分析手段は、前記分割点および対応する前記分割イベントが複数存在する場合、前記定義動作列と、前記少なくとも１つの対応する分割イベントでの分割を行わないものとした動作列とのマッチングを行い、前記定義動作列と前記分割された検知動作列とのマッチングとの比較を行うことで、前記作業者による作業が正しいか否かを判定することを特徴とする、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記映像取得手段は、前記作業者が作業を行う作業場と前記作業とを撮影した映像を取得し、
前記移動検知手段は、前記作業者の身体の特定の一部の領域を更に検知し、
前記検知動作列生成手段は、前記作業者の身体の特定の一部の領域と前記作業場の映像とを比較し、その比較結果から前記動作を検知することを特徴とする、
請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記作業者の身体の特定の一部の領域は、前記作業者の手を含む領域であることを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
前記作業場は、それぞれが前記動作の少なくとも１つが行われる領域である複数の動作領域から構成され、前記検知動作列生成手段は、前記動作領域に前記身体の一部の領域が移動したか否かを判定して前記動作を検知することを特徴とする、
請求項６または７に記載の情報処理装置。
【請求項９】
前記分析手段は、前記検知された動作が、当該検知された動作が含まれる前記検知動作列の前記分割された部分に対応する前記定義動作列の前記分割された部分では実行されない動作である場合には、前記検知された動作を前記検知動作列から除いたうえで、前記マッチングを行うことを特徴とする、
請求項８に記載の情報処理装置。
【請求項１０】
前記移動検知手段は、前記作業で用いられる物体の出現、移動、回転、変形または消失を検知することを特徴とする、請求項１〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記移動検知手段は、前記物体のテンプレートと前記映像の背景のテンプレートとを用いて前記物体の移動を判定することを特徴とする、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
作業者による作業を撮影する撮像装置に接続される情報処理装置により実行される情報処理方法であって、
前記撮像装置により撮像された映像から前記作業者の移動または物体の移動の少なくとも一方を検知し、その検知結果から、前記作業を構成する複数の動作を検知して、検知された複数の動作を並べた検知動作列を生成する生成工程と、
前記作業を構成する複数の動作の順序を定義するとともに少なくとも１つの分割点によって複数の部分に分割された定義動作列と、前記分割点に対応するとともに前記作業の感に発生するイベントである分割イベントによって複数の部分に分割された検知動作列とのマッチングを行って、前記作業が正しく行われたか否かを判定する分析工程と、を備えることを特徴とする、
情報処理方法。
【請求項１３】
作業者による作業を撮影する撮影装置に接続されるコンピュータを、
作業者による作業を撮影した映像を取得する映像取得手段、
前記取得された映像から、前記作業者の移動または物体の移動の少なくとも一方を検知する移動検知手段、
前記作業を構成する複数の動作の順序を定義するとともに少なくとも１つの分割点によって複数の部分に分割された定義動作列と、前記分割点に対応するとともに前記作業の間に発生するイベントである分割イベントを記憶する記憶手段、
前記移動検知手段での検知結果から前記動作を検知して、検知された複数の動作を並べた検知動作列を生成する検知動作列生成手段、および、
前記取得された映像から前記分割イベントを検知して、検知された分割イベントにより前記検知動作列を複数の部分に分割し、前記分割された前記定義動作列と前記分割された検知動作列とのマッチングを行って、前記作業が正しく行われたか否かを判定する分析手段、
として動作させるためのコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムが記憶された、コンピュータにより読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工場の組立作業などの映像を用いた作業分析などの情報処理技術に関するものである。
【背景技術】
【０００２】
従来、情報処理技術において、工場等で組立作業等の作業が正しく行われているかを分析する手法が知られている。ここで、作業とは、組立作業の作業者が所定の順番で行う複数の動作のことを指す。上述した分析手法では、組立作業のシーンを撮影した映像中の作業員の動きから、作業者が実行した動作を検知して作業標準書に定義された所定の動作が行われているかを分析する手法が知られている。例えば、特許文献１は、撮影した映像中において組立作業が発生する領域に矩形領域を設定し、その矩形領域に手が入ったかどうかで組立作業を実施したかを判定する技術を開示している。
【０００３】
また、特許文献２は、オブジェクトが配置された空間を撮影して空間内におけるユーザの身体を検知し、その身体の位置を特定する部位データを取得する技術を開示している。この技術では、３Ｄモデル化された空間内でオブジェクトモデルが占有する空間の周囲の空間に上述した部位データが含まれるかどうかを判定することで、ライトの明るさ調整等の所定機能を実行している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２０９６９４号公報
【特許文献２】特開２０１６−２４６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
作業者によって行われた組立作業が正しいか否かを判定するには、作業が実行されたかを判定するだけでなく、作業が実行された順番を判定することが望ましい場合が多い。例えば、作業標準書には、組立作業において行われる作業の実行順番が記載されており、作業がなされたか否かだけでなく、その順番が正しいかの判定が必要な場合がある。
【０００６】
特許文献１は、個別作業が発生したか否かを判定する技術を開示するものの、作業の実行順番を判定する作業分析を実現することは困難である。従って、作業の実行順番を判定する技術が必要となっている。
【０００７】
そのような技術として、ＤＰマッチングに代表されるような、シーケンスの並びのあいまいさを許容して一致度を求めるシーケンスマッチングが知られている。しかし、「通常とは異なる腕の動きに起因して、手が意図せずに矩形領域に進入する」など、手が矩形領域に進入しているものの、その進入は注目すべき作業ではない、という事態が多発することがある。この場合、シーケンスマッチングがうまく機能せず、その結果として正常な分析を行うことが難しくなる場合もある。
【０００８】
特許文献２は動作の対象となるオブジェクトを検知する技術を開示するもの、動作の順番やオブジェクトの移動を検知対象とはしていない。従って、動作の順番やオブジェクトの移動の関係性から作業が成功したか否かを判定することは困難である。
【０００９】
本発明は、作業者による作業を撮影した映像から作業が正しく行われたか否かを正しく判定することを目的とする。
【課題を解決するための手段】
【００１０】
この課題を解決するため、本発明の情報処理装置は、作業者による作業を撮影した映像を取得する映像取得手段と、前記取得された映像から、前記作業者の移動または物体の移動の少なくとも一方を検知する移動検知手段と、前記作業を構成する複数の動作の順序を定義するとともに少なくとも１つの分割点によって複数の部分に分割された定義動作列と、前記分割点に対応するとともに前記作業で発生するイベントである分割イベントを記憶する記憶手段と、前記移動検知手段での検知結果から前記動作を検知して、検知された複数の動作を並べた検知動作列を生成する検知動作列生成手段と、前記取得された映像から前記分割イベントを検知して、検知された分割イベントにより前記検知動作列を複数の部分に分割し、前記分割された前記定義動作列と前記分割された検知動作列とのマッチングを行って、前記作業が正しく行われたか否かを判定する分析手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、作業者による作業を撮影した映像から作業が正しく行われたか否かを正しく判定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】（ａ）は情報処理装置のハードウェア構成の概略図、（ｂ）はその機能ブロック図。
【図２】作業場の説明図。
【図３】（ａ）、（ｂ）、（ｃ）はフレーム画像の説明図。
【図４】（ａ）、（ｂ）はＤＰパスの説明図、（ｃ）は定義動作列と検知動作列との関連付け結果の説明図。
【図５】（ａ）、（ｂ）は定義動作列と検知動作列とのシーケンスマッチング例の説明図。
【図６】（ａ）は動作領域番号が記載されたテーブルの説明図、（ｂ）はその動作検知結果の説明図。
【図７】情報処理装置が実行する処理の概要を示すフローチャート。
【図８】分析処理の詳細を表すフローチャート。
【図９】分析処理で参照されるテンプレート管理テーブル。
【図１０】（ａ）は動作領域を対象とする検知動作列、（ｂ）は分割点で検知動作列を分割して生成された検知動作列、（ｃ）はそのＤＰマッチング結果を表す説明図。
【図１１】分析処理のフローチャート。
【図１２】生成された検知動作列の説明図。
【発明を実施するための形態】
【００１３】
以下、本発明を工場の組立作業での作業分析を行う情報処理装置に適用した場合を例に挙げて説明する。
【００１４】
第１実施形態
図１（ａ）に、情報処理装置１００のハードウェア構成を表す概略図を示す。なお、第１実施形態では、情報処理装置１００は、作業者が組立作業標準書に従って作業を行ったかどうかを判定する作業分析装置として動作する。
【００１５】
情報処理装置１００は、単一のコンピュータ装置で実現してもよく、あるいは、必要に応じた複数のコンピュータ装置に各機能を分散して実現するようにしてもよい。複数のコンピュータ装置で構成される場合、各コンピュータは、互いに通信可能なようにＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）などで接続される。コンピュータ装置は、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）等によって実現することができる。
【００１６】
図１（ａ）において、情報処理装置１００のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、情報処理装置１００全体の処理を制御する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２は変更を必要としないプログラムやパラメータを格納する読出し専用記録装置である。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、外部装置などから供給されるプログラムやデータを一時記憶する書き換え可能な記憶装置である。外部記憶装置１０４は、情報処理装置１００に固定して設置されたハードディスクやメモリカードなどの書き換え可能な記憶装置である。なお、外部記憶装置１０４は、情報処理装置１００に対して着脱可能なフレキシブルディスク（ＦＤ）やＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）等の光ディスク、磁気カード、光カード、ＩＣカード、メモリカードなどであってもよい。
【００１７】
入力デバイスＩ／Ｆ１０５は、作業者の操作を受けてデータを入力するためのポインティングデバイスやキーボードなどと入力デバイス１０９とのインターフェイスである。出力デバイスＩ／Ｆ１０６は、情報処理装置１００が保持するデータや供給されたデータを作業者に対して表示するためのモニタ１１０とのインターフェイスである。モニタ１１０は、作業者による作業を撮影した映像を取得する映像取得手段として機能する。作業者は、入力デバイス１０９を通じて組立作業の分析の開始、終了の指示等を情報処理装置１００に入力する。
【００１８】
通信Ｉ／Ｆ１０７は、インターネットなどのネットワーク回線１１１に接続するための通信インターフェイスである。カメラ１１２は、監視カメラなどの映像の撮像装置であり、ネットワーク回線１１１を介して情報処理装置１００に接続されている。カメラ１１２は、通信インターフェイス１０７を介してＣＰＵ１０１により動作が制御されるとともに、作業場内を俯瞰できる位置に設けられて作業者２８および作業場全体を撮影する。システムバス１０８は、１０１〜１０７の各ユニットを通信可能に接続する伝送路である。
【００１９】
後述する各動作は、ＲＯＭ１０２等のコンピュータ読取り可能な記憶媒体に格納されたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等のプログラムをＣＰＵ１０１がＲＡＭ１０３に展開して実行することにより実行される。ＣＰＵ１０１は、ＲＯＭ１０２に格納されるコンピュータプログラムを、ＲＡＭ１０３を作業領域に用いて実行することで、情報処理装置１００を作業分析装置として機能させる。また、ＲＡＭ１０３は、後述する定義動作列および分割イベントを記憶する記憶手段としても機能する。
【００２０】
図１（ｂ）は、情報処理装置１００の機能ブロック図である。ＣＰＵ１０１がコンピュータプログラムを実行することで、情報処理装置１００は、制御部５００、映像取得部５０１、分析部５０２、映像処理部５０３、入力部５０４、出力部５０５として機能する。なお、これらの各機能ブロックは、ハードウェアにより実現されてもよい。
【００２１】
制御部５００は、情報処理装置１００、カメラ１１２、モニタ１１０の動作を制御する。映像取得部５０１は、制御部５００の指示によりカメラ１１２の動作を制御し、カメラ１１２から作業者２８を含む作業場を撮影した映像を取得する。分析部５０２は、制御部５００の制御により、作業が正しく行われたか否かを判定する。映像処理部５０３は、制御部５００の制御により、映像取得部から取得された映像を処理してＲＡＭ１０３に記憶させる。入力部５０４は、入力デバイスＩ／Ｆを通じて入力デバイス１０９からの指示、データ等の入力を受け付けて制御部５００へ送信する。出力部５０５は、制御部５００の制御により、モニタ１１０に画像を表示する。
作業分析を行う際の制御部５００等の動作は、後述する適用システム例の説明において詳述する。
【００２２】
図２に、工場において組立作業を行う作業場の説明図を示す。図中において作業台２１、ワークベンチ２２、組立対象物２３、シールケース２４、ビスケース２５、ゴミ箱２６、ドライバ受け２７、作業者２８が示される。また、作業者２８の左手を含む領域である左手領域２９と、右手を含む領域である右手領域３０も示される。また、点線で囲まれてそれぞれ０〜６の番号が付された矩形領域は、後述する作業領域０〜６である。図中において、作業領域０〜６の番号は、その他の符号と区別しやすくなるように、それぞれ下線が付されている。
【００２３】
作業者２８は、組立対象物２３を作業台２１上のワークベンチ２２において、作業標準書に従って組立作業を行う。作業者２８は、必要に応じてシールケース２４からシールを取り出し、また、ビスケース２５からビスを取り出してシール付けやビス付け等の作業を行う。作業者２８は、必要に応じてドライバを手にして作業を行い、ドライバが不要であるときはドライバ受け２７にドライバを置く。
組立対象物としては、例えば、複写機の内部に組み込まれる現像器や定着器などが挙げられるが、これらに限定されずに任意の物品を組立対象物とすることができる。
【００２４】
次に、本実施形態で想定する組立作業の例を説明する。作業者は、所定の順番で複数の動作を実行することで作業を行う。第１実施形態における作業は、作業０、作業１という２つの作業から構成される。具体的には、作業シールの貼付（作業０）、ビス締め（作業１）という動作を連続して行う。以下、作業０、１の具体的な内容について説明する。
【００２５】
作業０では、シールを取り、対象物のシール右端貼付、対象物のシール左端貼り付け、ゴミ箱に裏紙を捨てる。
作業０を行った後、作業１の予備動作として、対象物を裏返す。
作業１では、右手でドライバを取り、左手でビス箱からビスを取り、対象物中央の黒丸のビス穴にビスを締め、ドライバを戻す。
【００２６】
これらは、作業標準書に作業内容および作業順序が記載されており、作業者はこの順番で組立作業を進めなければならない。以降の説明では、作業を構成する組立作業１つ１つを動作と称する。以下に示すように、各作業は複数の動作から構成され、作業者は、所定の順番で複数の動作を実行することで作業を行う。また、工程の定義に記載された組立作業１回分のことをサイクルと呼ぶ。この例では対象物を設置して作業０の開始から作業１を終了して対象物を運び出すまでが１サイクルとなる。
【００２７】
作業０：シール貼付
動作０：シール取得
動作１：シール右端貼付
動作２：シール左端貼付
動作３：シール裏紙破棄
予備動作：
対象物裏返し
作業１：ビス締め
動作０：ドライバ取得
動作１：ビス取得
動作２：ビス締め
動作３：ドライバ戻し
なお、作業の内容は組立対象物、組立工程により異なり、これに限定するものではない。
【００２８】
［処理概要］
以下、情報処理装置１００で実行される処理の概要を説明する。実施形態１では、作業場の上部に設置したカメラ１１２によって作業場を撮影することで作業者による作業を撮影する。撮影された映像の各フレーム画像において、作業者の手がどこにあるかを検知し、作業の流れに沿って動作を検知する。そのために、分析部５０２は、身体の特定の一部の領域と作業場の映像とを比較し、その比較結果から動作を検知する。第１実施形態では、分析部５０２は、作業者の右手領域または左手領域と動作領域との映像を比較し、その比較結果から動作を検知する。
【００２９】
また、分析部５０２は、作業者の手が設定された動作領域の順に動いていれば組立作業は正しく実施されたと判断する。なお、第１実施形態では作業者の手が動作領域に移動しているか否かを判定しているが、作業者の手に限らず、作業者の足や膝等、作業者の身体における任意の一部を用いて組立作業が正しく実施されたかを判定することができる。また、手のみならず、手と足、手と膝と頭等、身体の複数の箇所を用いて判定を行うこともできる。
【００３０】
動作領域は、動作を行うときに手が動く領域であり、予め作業者が設定する。上述したように、図２では動作領域が点線の矩形として示されている。各動作領域には「１」、「２」、「３」および「４」という番号がラベル付けされて各動作と以下のように対応付けられる。
【００３１】
作業０：シール貼付
動作０：シール取得  …動作領域０
動作１：シール右端貼付  …動作領域１
動作２：シール左端貼付  …動作領域２
動作３：シール裏紙破棄  …動作領域３
予備動作：
対象物裏返し
作業１：ビス締め
動作０：ドライバ取得  …動作領域４
動作１：ビス取得  …動作領域５
動作２：ビス締め  …動作領域６
動作３：ドライバ戻し  …動作領域４
【００３２】
これらの処理を実現するためには、作業者の手領域の検知、物体の位置や移動の検知、フェーズ判定、動作検知、検知された動作列（検知動作列）と作業標準書から得られる定義動作列とを比較するシーケンスマッチングの各処理を行う。以下、各処理について説明するが、特に断りのない限り、作業時における差分画像からの動体抽出、手領域検出、分析処理等は分析部５０２が実行する。
【００３３】
［手領域検知処理］
分析部５０２は、作業者がいない状態でカメラ１１２を通じて撮像された作業場の映像から背景画像を取得する。作業時には、分析部５０２は、撮像された映像から作業者の移動および物体の移動を検知して、対象となるフレーム画像と背景画像との差分画像から動体を抽出する。従って、分析部５０２は、カメラ１１２を通じて取得された映像から作業者の移動または物体の移動の少なくとも一方を検知する移動検知手段としての機能を有する。
【００３４】
分析部５０２は、ドライバやビス等の作業者によって移動される工具などの物体や人体などを動体として検知する。検知された動体は、画像処理などにより人体やドライバ等の物体として判定される。第１実施形態では、分析部５０２は、人体として判定された動体から作業者の頭部や腕などを画像認識処理により除くことで、手領域を検知する。
なお、手領域検知はこの方法に限定されるものではなく、任意の方法を用いることができる。例えば、機械学習を利用する方法、皮膚の色領域を抽出して手領域を検知する方法、赤外線を利用した皮膚の温度領域を抽出して手領域を検知する方法等を用いることができる。
【００３５】
［物体の位置や移動の検知処理］
次に、作業対象物、部品、道具などの物体の位置を、類似度を検知して出力する処理を説明する。ここでは、テンプレートマッチングを利用した例で説明するが、これに限定するものではない。テンプレートマッチング以外では機械学習などが利用可能である。
テンプレートマッチングは、テンプレート画像を入力画像に対して走査させ，入力画像上の各位置における類似度を算出して最大（もしくは，しきい値以上）の類似度をとる位置を検知する手法である。
【００３６】
具体的には、入力となるフレーム画像から、対象物のテンプレート画像と最も類似度の高い位置を検知する。その検知位置と類似度から、対象物の移動、回転、部品の着脱などの変化、出現、消失を検知する。対象物とテンプレートとの類似度が高く、位置が閾値以上に変化しない場合、対象物は「静止している」と判定する。
【００３７】
位置が閾値以上に変化した場合、それぞれ「移動した」、「回転した」と判定する。また、対象物のテンプレートとの類似度が低くなった場合、手などによる「隠れ」や見た目が変化している「変形」である可能性がある。対象物が消失した場合は「終了」と判定する。
【００３８】
テンプレートマッチングでは、類似度によって動きを検知するが、静止位置から物が移動して類似度が低下したのか、または、手などによって対象物が隠れて類似度が低下したのかを誤判定する場合がある。
物体の移動判定の精度向上方法として、第１実施形態では物体の移動判定のために２つのテンプレートを併用する。２つのテンプレートとは、物体テンプレートと、物体が置かれた場所（背景）テンプレートである。
【００３９】
図３（ａ）に、対象物が静止した状態のフレーム画像の説明図を示す。図中にはカメラ１１２、組立対象物２３、作業台２１が示されている。領域２３１は、作業台の一部領域であり、組立対象物２３が作業台に設置されているときに、カメラ１１２からは死角となる領域である。以下、この領域２３１を対象物背景と称する場合がある。
図３（ｂ）は、対象物が移動したときのフレーム画像の説明図である。図３（ａ）で死角となっていた領域２３１は、組立対象物２３が移動したことでカメラ１１２によって撮影可能となっている。
図３（ｃ）は、作業者の手２３２によって組立対象物２３の一部がカメラ１１２から隠されている状態のフレーム画像の説明図である。
【００４０】
図３（ａ）の状態では、フレーム画像では対象物テンプレートと高い類似度が出力され、組立対象物２３が存在することが示される。しかし、図３（ｂ）、図３（ｃ）では、ともに対象物のテンプレートとフレーム画像類似度が低下し、対象物テンプレートとの類似度だけでは両者は区別がつかない。
そこで、組立体象物２３に対する対象物テンプレートと対象物背景１２０３に対する対象物背景テンプレートとをそれぞれ用意し、分析部５０２でのフレーム画像との判定に併用する。これにより、図３（ｂ）の対象物が移動した状態でのフレーム画像は、対象物テンプレートに対する類似度が低下し、対象物背景テンプレートに対する類似度が高くなる。
【００４１】
図３（ｃ）の対象物が手で隠された場合は、フレーム画像は、対象物テンプレートに対する類似度が低下する一方で、対象物背景テンプレートに対する類似度は低いままとなる。これにより、対象物の移動した場合と、作業者の手などにより対象物が隠された場合とを高精度に区別することができる。
さらに、手検知処理で検知された手領域と、組立対象物２３との重なりを判定することで、より高精度の移動判定が可能となる。
【００４２】
［フェーズ判定処理］
フェーズ判定処理では、分析部５０２は、物体の位置や移動の検知を行い、また、後述する作業者の手領域の判定を行うことで、実行された動作が作業０および作業１におけるどの動作であるのかを識別する。また、フェーズ判定処理では、作業を識別した後に作業分析を行うことで、識別された各動作が正しい順番で行われたか否かを判定する。
【００４３】
作業０、作業１における各動作が正しい順番で行われたか否かを判定する場合、一連の長い動作列を一度に処理すると、多数のノイズが発生して作業実施判定の精度が低下するおそれがある。例えば、作業０、作業１、作業２、作業３の順で作業を行う場合、作業者の手が誤って同じ動作領域に複数回移動してしまうことなどがある。この場合、例えば作業０、作業１、作業１、作業２、作業３、作業３、作業３、作業４の順で作業が行われたと検出される場合がある。この場合において、作業１、作業３で重複して複数回検出されている作業が「ノイズ」に相当する。
【００４４】
第１実施形態では、物体の移動検知に基づいて動作列を複数の部分に分割することでノイズを抑制する。この作業実施判定が行われる、分解された動作列をフェーズと記載する。
フェーズ判定では、物体の位置や移動の検知の結果から、処理対象のフレーム画像がどのフェーズに属するかを判定する。具体的には、分析部５０２は、フレーム画像を分析し、特定のイベントが発生したことを検知して、動作列を複数のフェーズに分割する。第１実施形態では、「対象物を裏返す」という予備動作の発生を検知して動作列をフェーズ０（作業０に対応）、フェーズ１（作業１に対応）に分割する。従って、対象物を裏返すという動作を検知することで、分割イベントを検知している。なお、分割イベントが複数存在する場合もあり、この場合には、分割イベントごとに動作列を分割するようにする。
【００４５】
フェーズ０では対象物は裏返されていないので、「対象物裏」はフレーム画像には現れない。従って、テンプレートして「対象物裏」を用いる場合、フレーム画像と対象物裏のテンプレートとの類似度が閾値以下であって、「対象物裏」の状態が現れていないと判定されている場合、分析部５０２は、現在の作業はフェーズ０に属すると判定する。対象物裏のテンプレートとの類似度が閾値以上で、「対象物裏」の状態が現れたと判定された場合、分析部５０２は現在の作業はフェーズ１に属すると判定する。
【００４６】
作業０：シール貼付  
動作０：シール取得      …動作領域０  …フェーズ０
動作１：シール右端貼付  …動作領域１  …フェーズ０
動作２：シール左端貼付  …動作領域２  …フェーズ０
動作３：シール裏紙破棄  …動作領域３  …フェーズ０
予備動作：
対象物裏返し  …動作列の分割イベント
作業１：ビス締め
動作０：ドライバ取得  …動作領域４  …フェーズ１
動作１：ビス取得      …動作領域５  …フェーズ１
動作２：ビス締め      …動作領域６  …フェーズ１
動作３：ドライバ戻し  …動作領域４  …フェーズ１
【００４７】
なお、上記の作業および動作は例示的なものであり、これに限られるものではない。
例えば、テンプレートとして「対象物表」をも用いる場合には、「対象物表」との類似が高く「対象物裏」との類似度が低い場合にはフェーズ０、「対象物表」との類似が低く「対象物裏」との類似度が高い場合にはフェーズ２と判定するようにしてもよい。このように「対象物表」、「対象物裏」という２種類のテンプレートを併用することで、移動判定の精度向上を図り、誤検知を減少させて作業実施判定の精度を向上させることも可能である。
【００４８】
［動作検知処理］
動作検知処理では、動作領域１〜６のそれぞれについて、検知された手領域が各動作領域と重複しているか否かを後述する動作判定部で判定する。この判定は、手領域と動作領域との重なりを判定する。重なりがあれば、作業者の手がその動作領域に移動してその領域に対応する動作を行っていると判定し、その動作領域を出力する。
作業者の手が動作領域にない場合、その動作領域での作業はなされていない蓋然性が高い。従って、上記のような領域の重なりがない動作領域では、対応する動作は行われていないと判定する。
また、動作検知処理において判定対象となる動作領域は、上述したフェーズ判定によって判定されたフェーズに属している動作領域に制限される。つまり、判定されたフェーズに属していない動作領域で検知された動作は、検知動作列から除かれる。
したがって、検知された手領域が判定されたフェーズに属していない動作領域と重なっても、動作検知の判定対象とはならないので、動作の誤検出によるノイズの発生が抑えられる。
【００４９】
［シーケンスマッチング処理］
第１実施形態では、作業中に手領域と重なったと検知された動作領域のラベルを時系列順に並べた列を検知動作列とする。検知動作列は分析部５０２により生成される。従って、分析部５０２は、検知動作列生成手段として動作する。例として、手領域が動作領域１、動作領域２、動作領域４、動作領域３、動作領域４の順に動作領域と重なった場合、検知動作列は１、２、４、３、４となる。また、作業標準書で記載されている動作の順序に基づいて動作領域のラベルを並べた列を定義動作列とする。
【００５０】
次に、検知動作列が定義動作列と同一であるか否かを判定する。検知動作列において、動作領域のラベルが定義動作列のとおり並んでいると判定されれば、組立作業が成功したと判定される。その他の場合は組立作業が正しく行われなかったと判定する。
この判定において、第１実施形態では、シーケンスマッチングを用いる。シーケンスマッチングとは、２つの時系列データを比較し、両者が一致していなくても、動作列を構成するラベルの発生順序が類似していれば２つの動作列は同一であるとみなす、あいまい性を有するマッチング手法のことである。
【００５１】
ある動作から次の動作に移る間など、本来動作が行われない期間に作業者の手が動作領域に入る場合が生じ得る。つまり、組立作業を指定された順に行っていても、検知動作列が定義動作列に一致しない場合がある。このような場合であっても正しく判定を行うために、シーケンスマッチングが導入される。
【００５２】
第１実施形態においては、シーケンスマッチングとして、ＤＰマッチングと呼ばれる手法を用いた。ＤＰマッチングは、２つのデータ列同士の類似度を測定する手法であり、第１実施形態では定義動作列と検知動作列との類似度を測定する。そのために、定義動作列と検知動作列とをマッチングさせるためのコストを定義し、そのコストが最も小さくなるように、定義動作列のラベルと検知動作列のラベルとを関連付ける。
その過程で、ＤＰマッチングでは、組立作業を指定された順に行っているときに意図せずに手領域が作業領域に重なったことで生じたラベルをノイズとみなして処理をすることで、シーケンスマッチングとして用いることができる。
【００５３】
具体的な事例を参照したマッチング方法の概略を図４（ａ）に示す。図示の例では、上述した作業標準書に基づいた定義動作列として「１、２、３、４」を、作業中に検知された検知動作列として「１、２、４、３、４」を用いる。検知動作列において最初に現れるラベルである「４」は、作業者が意図せずに手を作業領域に動かしてしまったことに起因するノイズである。
【００５４】
図示の例において、左下から右上に向かってラベルの関連付けを行うものとして、各セルには左下から、該当のセルを共有する定義動作列，検知動作列の各時系列のラベルを関連付けるまでの最低コストを記す。
また、各セルの最低コストの算出には、最低コストを算出済みの下，左下，左の３つのセルから算出し、これを繰り返すという簡易な演算で左下から右上までを関連付けていく上での最低コストを導出する。
【００５５】
なお、この例では、セルは右のセル、上のセル、または斜め右上のセルに関連付けられるものとし、右のセルまたは上のセルに関連付けるときのコストを１、斜め右上のセルに関連付けるときのコストを２とした。ただし、各セルにおいて、検知動作列の数字と定義動作列の数値とが異なる場合には、そのセルへの移動コストは１０倍になるものとした。
【００５６】
また、各セルのコストは一番左下のセルを起点として計算する。図４（ａ）においては、Ｃ１で示すセルを起点とする。セルＣ２は、検知動作列の数字と定義動作列の数値とが等しいのでコストは２である。セルＣ２からは、その上のセルＣ３、その右のセルＣ４、その右斜め上のセルＣ５へとそれぞれ関連付けが可能である。
セルＣ３、Ｃ４は、いずれも検知動作列の数字と定義動作列の数値とが異なるので、セルＣ２から上および右への移動コストは１０倍されて１０になる。また、セルＣ３、Ｃ４には、移動元のセルであるＣ２のセル自体におけるコストも加算される。従って、Ｃ３、Ｃ４のセルのコストは、いずれも（２＋１０）＝１２となる。他の移動経路を採用した場合、コストの値は更に高くなることから、セルＣ３、Ｃ４の最低コストは１２となる。
【００５７】
一方、Ｃ５のセルは、検知動作列の数字と定義動作列の数値とが等しいので、移動コストが１０倍になることはない。従って、セルＣ２からセルＣ５への斜め右の移動コストは２であり、セルＣ２自体のコストである２を加算することで、セルＣ５のコストは４となる。他の経路を採用した場合、セルＣ５のコストは更に高くなるので、セルＣ５の最低コストは４となる。
同様にして、セルＣ６の最低コストは、セルＣ５のコストの４に右移動のコストの１０倍である１０を加算して１４となる。セルＣ７の最低コストは、セルＣ６のコストである１４に右斜め移動のコスト２を加算して１６となる。
【００５８】
また、あるセルに対する移動元のセルは、左のセル、下のセル、または左下のセルという３つのセルのいずれかとなる。これら３つのセルのうちいずれのセルを採用したかを記録しておく。従って、最終的な右上の最低コストの導出では、どのような経路を通ったかを導くことができる。
【００５９】
図４（ａ）の例においてＤＰマッチングを実行して各セルについて最低コストを計算した結果を図４（ｂ）に示す。図中において、灰色の背景で示される経路が最低コストを実現した経路となる。各セルの最低コストから求められた関連付けの結果を図４（ｃ）に示す。図示されるように、ノイズの”４”は定義動作列の”４”ではなく、”２”に付随したノイズとして関連付けられている。
なお、ＤＰマッチングは周知の手法であり、移動コスト等は他の値を用いることもできる。第１実施形態では簡易に実現可能であるＤＰマッチングを採用したが、その他のマッチング方法を用いてシーケンスマッチングを行うことも可能である。
【００６０】
しかし、ＤＰマッチングのようなシーケンスマッチングを行う場合、ノイズではないラベル（正ラベル）を正しく関連付けることができない場合がある。図５（ａ）、（ｂ）を用いて具体的に説明する。
図５（ａ）にこの例における定義動作列と検知動作列の説明図を示し、図５（ｂ）に両者のマッチングによる関連付け結果の説明図を示す。検知動作列においては、「３３４３３３」というラベル列が含まれる。最初の２つのラベル「３」は正ラベル、次の「４」も正ラベルであり、その後ノイズのラベルである「３」が３つ続いている。この場合、ＤＰマッチングにおいては、検知動作列における正ラベル「４」を、定義動作列のラベル「４」に正しく関連付けると、３つの連続したノイズ「３」を定義動作列の「４」もしくは「５」に関連付ける必要がある。
【００６１】
しかし、ＤＰマッチングにおいてはこのような関連付けには大きなコストが発生するので、３つのノイズ「３」は、検知動作列における正ラベルの「３」、「４」とセットにされた上で、定義動作列のラベル「３」に関連付けられる。その結果として、正ラベル「４」はマッチングできずに正しく関連付けられなくなり、精度が低くなる。
図５（ｂ）の例では、実際にはラベル「４」に相当する動作が実施されているにも関わらず、ＤＰマッチングでは、検知動作列における「４」が定義動作列の「４」に関連付けられないので、「非実施」であると判定されてしまう。
【００６２】
［適用システム例］
情報処理装置１００を用いて作業分析を実行する場合、作業者２８は、入力デバイス１０９を通じて作業分析開始および終了の指示を行う。また、作業者２８は、事前に作業に必要な動作を行う動作領域の設定と、作業の順序として動作領域の順序を設定する。
図１（ｂ）を参照すると、制御部５００は、入力デバイス１０９により作業分析開始が指示されると、ＲＯＭ１０２あるいは外部記憶装置１０４から、分析対象とする工程の定義をＲＡＭ１０３にロードする。工程の定義とは、工程の最初から最後までの動作の順序を定義したものであり、工程の作業内容を示した作業標準書、もしくは動作の順序などを所定のフォーマットに書き出したファイル（作業情報）が用いられる。
【００６３】
図６（ａ）に、第１実施形態における所定のフォーマットとして、作業番号、動作番号、および動作が発生する領域の番号である動作領域番号が記載されたテーブルの説明図を示す。作業標準書が入力される場合には、作業標準書から図６（ａ）に示した情報を取得する。
【００６４】
制御部５００は、入力された作業標準書からその情報を取得してＲＡＭ１０３または外部記憶装置１０４に記憶させる。また、制御部５００は、作業分析が開始されると、カメラ１１２を通じて作業映像取得を開始して、撮影したフレーム画像のデータをいったんＲＡＭ１０３へ格納する。制御部５００は、ＲＡＭ１０３に格納されたフレーム画像に各種映像処理を加えて保存用のファイル（Ｍｏｔｉｏｎ  ＪＰＥＧ，  Ｈ．２６４など）を生成してＲＡＭ１０３または外部記憶装置１０４に保存する。
【００６５】
映像処理部５０３は、制御部５００により制御され、ＲＡＭ１０３または外部記憶装置１０４に格納されたフレーム毎の画像に各種映像処理を加えて保存用のファイル（Motion JPEG, H.264等）を生成する。生成されたファイルはＲＡＭ１０３または外部記憶装置１０４に保存される。
分析部５０２は、制御部５００により制御され、ＲＡＭ１０３または外部記憶装置１０４記憶されたフレーム画像のデータを読出して、１サイクルの全フレームに対して動作の検知を行い、全動作検知の結果を用いて作業分析を行う。なお「サイクル」とは、工程の定義に記載された１回分の組立作業であり、組立作業を１サイクル行うと１つの組立対象物が完成する。
【００６６】
制御部５００は、分析部５０２による分析結果を出力部５０５によりディスプレイ５９に出力させる。組立作業に問題がなかった場合、出力部５０５から何も出力されず、問題があった場合（例えば行われなかった動作があった場合）、出力部５０５はその旨を出力する。具体的には、サイクルの組立作業開始時刻、終了時刻と併せて、行われなかった動作名を出力する。分析結果の出力は、ディスプレイ５９への表示だけではなく、警告音を鳴らす、監督者が所持する携帯端末のディスプレイに表示する、といった方法であってもよい。ユーザは、ディスプレイ５９に出力された分析結果により、工程定義に沿って組立作業が行われなかった組立対象物の完成品を特定し、組立作業のやり直し指示等を行う。
【００６７】
図６（ａ）の例において、情報処理装置１００が動作検知を行った結果を図６（ｂ）に示す。この例では、動作番号０〜７において、いずれも動作検知結果が「ＴＲＵＥ」となっており、動作が正常に行われたと判定されたことが示される。
【００６８】
情報処理装置１００での分析結果は出力デバイス１０６に出力される。出力方法は任意であるが、第１実施形態では、組立作業に問題がなかったときには何も出力せず、問題があった場合、即ち、実施されなかった動作があったと判定された場合に、その旨を出力するものとする。
具体的には、サイクルの組立作業開始時刻，終了時刻とあわせて、実施されなかった動作番号または動作名を出力する。結果の出力は出力デバイス１０６への表示だけではなく、警告音を鳴らす、監督者が所持する端末のディスプレイに表示する。または、作業者の有する携帯端末等にメールを送信するようにしてもよい。
図６（ｂ）の例では、動作番号０〜７においていずれも組立作業に問題がなかったと判定されているので、出力は行われない。
【００６９】
作業者２８は、出力デバイス１０６に出力された分析結果を見て、工程定義に沿って作業が行われなかった対象物を特定し、作業のやり直し指示などを行う。
【００７０】
［処理フロー］
第１実施形態では、情報処理装置１００が実行する処理の概要を図７のフローチャートに基づいて説明する。各処理は、ＲＯＭ１０２やコンピュータ読取可能な記憶媒体に格納されたプログラムをＣＰＵ１０１が実行することにより機能する。
【００７１】
分析部５０２は、外部記憶装置１０４またはＲＡＭ１０３から、格納されている工程定義の情報を取得し（Ｓ７０１）、かつ、カメラ１１２を通じて作業場の映像を取得して（Ｓ７０２）作業分析を行う（Ｓ７０３）。その後、分析部５０２は、作業者あるいは監督者から分析処理中止が指示されたかを判定する（Ｓ７０４）。分析処理中止が指示された場合（Ｓ７０４：Ｙ）、分析部５０２は分析処理を終了する。分析処理中止が指示されていなければ（Ｓ７０４：Ｎ）分析部５０２は再度Ｓ７０３を実行する。
Ｓ７０３で分析部５０２が実行する１サイクルの分析処理の詳細を表すフローチャートを図８に示す。また、１サイクルの分析処理で参照されるテンプレート管理テーブルを図９に示す。
【００７２】
図９のテンプレート管理テーブルにおいては、フェーズ番号、テンプレート、検知条件、閾値、探索範囲および検知フレーム数のそれぞれの項目についてその内容が示されている。フェーズ番号は、実行された動作列を物体の移動検知に基づいて分割したフェーズのそれぞれに割り当てられた番号である。上述したように、フェーズ０では、作業０の動作０〜４が実行される。テンプレートの内容には、フェーズごとにテンプレートとして指定される物体が記載される。図９の例では、フェーズ０では対象物、フェーズ１では対象物裏、フェーズ−１では作業台が記載されている。なお、フェーズ−１とは、作業を開始する前の状態であり、対象物は作業台に配置されていない状態であることから、テンプレートとしては作業台が記載されている。
【００７３】
検知条件としてはＧＴ(閾値以上)やＬＴ(閾値以下)を用いる。また、第１実施形態では、画像とテンプレートとの類似度を求め、その類似度が閾値以上の値である場合に、フレーム画像内の画像がテンプレートであると判定する。画像とテンプレートとがすべて一致した場合には類似度が１となる。図９においては、その類似度の閾値が示されており、フェーズ０〜−１のいずれにおいても０．８に設定されている。探索範囲は、フレーム画像における領域を表すものである。この領域は矩形領域とし、その左下の頂点座標であるｘ１，ｙ１と、その右上の頂点座標であるｘ２，ｙ２により矩形領域を特定している。探索範囲は任意に設定でき、撮像した画像フレームの全体としてもよく、あるいは、撮像した画像フレームにおいて作業場を含む一部を探索範囲としてもよい。また、検知フレーム数は、条件を満たす検知フレーム数であり、第１実施形態ではどのフェーズにおいても２フレームとしている。
【００７４】
図８を参照すると、分析処理が開始されると、分析部５０２は、カメラ１１２で撮像された映像のフレーム画像を１枚取得するフレーム画像取得処理を実行する（Ｓ８０１）。その後、分析部５０２は、フレーム画像から対象となる物体あるいはオブジェクトを検知してその位置を出力する物体検知処理を実行する（Ｓ８０２）。図３のフレーム画像の例を用いて説明すると、分析部５０２は、分析処理開始後のフェーズは０であることから、図９のテンプレート管理テーブルから「対象物」のテンプレートを使用して２３の対象物の位置を出力する。
【００７５】
その後、分析部５０２は、Ｓ８０２で出力された位置を基準として、その対象物が静止したか否かの判定を行う（Ｓ８０３）。具体的には、前フレーム画像での対象物の位置と現フレーム画像での対象物の位置とが同じであれば静止していると判定する。分析部５０２は、静止していないと判定された場合（Ｓ８０３：Ｎ）、再度Ｓ８０２を実行し、静止したと判定された場合（Ｓ８０３：Ｙ）、フレーム画像から手の検知を行う（Ｓ８０４）。Ｓ８０４での手の検知は公知の任意の手法で行うことができる。
【００７６】
次に、分析部５０２は、フレーム画像から指定されたテンプレートでテンプレートマッチングを行って物体の位置を検知して（Ｓ８０５）テンプレートとの類似度を出力する。
分析部５０２は、Ｓ８０２〜Ｓ８０５における対象物および／または手の移動検知の結果およびテンプレートマッチングの結果からフェーズ判定処理を行う（Ｓ８０６）。第１実施形態では、フェーズ０とフェーズ１との分割イベントは「対象物裏」の検知であり、分析部５０２は、「対象物裏」が検知されるまではフェーズ０、検知されると「フェーズ１」であると判定する。
【００７７】
具体的には、分析部５０２は、図９のテンプレート管理テーブルから次のフェーズであるフェーズ１のテンプレートである「対象物裏」を使用して、対象物の動きから作業０と作業１の間の予備動作である「対象物を裏返す」動作のタイミングを検知する。
つまり、「対象物裏」テンプレートとの類似度がテンプレート管理テーブルの閾値と検知条件である０．８以上であれば作業０（フェーズ０）が終了しており、作業１（フェーズ１）に入ったと判定する。
【００７８】
その後、分析部５０２は、検知した手領域が動作領域に入っているかを検知してその動作領域のラベルを記録する動作検知処理を行う（Ｓ８０７）。具体的には、Ｓ８０６のフェーズ判定処理の結果がフェーズ０である場合は、分析部５０２は、動作領域０、動作領域１、動作領域２、動作領域３の４つの領域で動作検知を行う。このように、フェーズ０では動作領域４〜６では動作が行われないことから、動作検知を行う動作領域を動作領域０〜３に制限する。
【００７９】
一方、Ｓ８０６のフェーズ判定処理の結果がフェーズ１である場合、分析部５０２は、動作領域４〜６の３つの領域で動作検知を行う。いずれの場合でも、分析部５０２は、動作検知した領域の検知動作列生成を行う。
図１０（ａ）に、比較例として全動作領域を対象として動作領域の検知を行った場合の検知動作列Ａを示す。この場合、分割点による分割を行っていない検知動作列Ａは、０、１、２、２、３、３、４、３、３、３、５、４、２、６、４となる。
【００８０】
図１０（ｂ）に、第１実施形態による、分割点で検知動作列を分割して生成された検知動作列Ｂを示す。第１実施形態では、検知動作列Ｂでフェーズ０と判定されている場合には動作領域０、１、２、３の４つの領域のみを対象として検知動作列が生成される。また、フェーズ１と判定されている場合には、動作領域４、５、６の３つの領域のみを対象として検知動作列Ｂが生成される。
【００８１】
従って、図１０（ｂ）に示すように、検知動作列Ｂでは、フェーズ０での部分の動作列は０、１、２、２、３、３となる。この部分は、図９（ａ）の比較例のフェーズ０の部分と同一である。
しかし、フェーズ１では、動作領域２、３によるノイズが削除されるので、検知動作列Ｂの部分の動作列は４、５、４、６、４となり、図９（ａ）の比較例よりもノイズが劇的に減少していることが示される。
【００８２】
分析部５０２は、その後、サイクル終了か否かを判定し（Ｓ８０８）、終了でなければ（Ｓ８０８：Ｎ）、Ｓ８０１を再度実行してフレーム画像を取得する。具体的には、図９のテンプレート管理テーブルから「作業台」テンプレートを使用して、検知条件を判定する。つまり、対象物に対する作業が終わり、対象物が作業台から移動されたことを判定する。
【００８３】
サイクル終了と判定された場合（Ｓ８０８：Ｙ）、分析部５０２は、検知動作列に対してシーケンスマッチング処理を行い（Ｓ８０９）、その結果から作業実施判定を行う。
具体的には、Ｓ８０６では「対象物裏」のテンプレートを利用して分割を行うことでフェーズ判定がなされており、その結果から検知動作列を作業０、作業１に分割し、作業０、作業１のそれぞれの定義動作列ごとにＤＰマッチングを行う。
【００８４】
ＤＰマッチング結果を図１０（ｃ）に示す。このようにＤＰマッチングが行われたことで、図６（ｂ）に示すように、全ての作業および動作において動作検知結果が「ＴＲＵＥ」となり、全作業が正常に行われたと判定される。
【００８５】
なお、シーケンスマッチングを行うタイミングは、サイクル終了を待たず、各フェーズの終了時に、終了したフェーズについて逐次シーケンスマッチングを行うことも可能である。この場合、分割点に対応するイベントを検知することはフェーズの終了を検知することでもある。従って、分析部５０２は、イベントを検知するごとに、イベントの検知前に生成されて終了したと判定される検知動作列と、定義動作列と、のシーケンスマッチングを行う。このシーケンスマッチングは、好ましくはフェーズごとに行われ、検知動作列のフェーズと、定義動作列の対応する部分とについてシーケンスマッチングを行う。
【００８６】
このようにフェーズ終了時にシーケンスマッチングを実行する場合、作業実施判定を逐次出力することが可能となり、作業が実施されていないことをより早く検知して作業者に通知することが可能となる。
その後、分析部５０２は、分析結果を出力する（Ｓ８１０）。この出力では、動作検知結果を出力する。出力手法は特に限定されず、モニタ１１０に表示を行う、または作業者あるいは作業の監督者にメールを送信するなど任意の手法を用いることができる。
【００８７】
具体的な例としては、作業の監督者に「１０時２３分２９秒開始の作業１が実行されませんでした。」のようなメッセージとリンクがメールとして送られる。ここでいうリンクとは、外部記憶装置１０４に保存された該当サイクルの開始画像ファイルと終了画像ファイルへのリンクであるが、リンクの内容はこれに限定されるものではない。例えば、リンクは、「非実施」の前後作業の開始終了や該当サイクルのリストファイルなどへのリンクでもよい。あるいは、該当する画像ファイルを張り付けることも可能である。
【００８８】
第１実施形態によれば、対象物の移動と手の動きとを組み合わせて、検知動作列を分割した上でシーケンスマッチングすることで、作業が正常に行われたか否かの判定精度が向上する。
その理由としては、検知動作列を分割することで動作列が短くなることが挙げられる。特に、図１０（ｂ）、（ｃ）の例のように、分割された検知動作列で検知対象となる動作領域数が減少する場合には、ノイズが減少することにより判定精度が一層向上する。
【００８９】
[第２実施形態]
第２実施形態では、情報処理装置１００のハードウェア構成は第１実施形態と同様であり、分析部５０２が実行する分析処理に関しては、第１実施形態とは一部異なるものとなっている。
第２実施形態で分析部５０２が実行する分析処理のフローチャート図１１に示す。図１１において、Ｓ８０１〜Ｓ８０８およびＳ８１０は、図８に示される分析処理のフローチャートと同一である。
【００９０】
分析部５０２は、Ｓ８０８を実行した後に、フェーズ判定による分割点を採用した検知動作列と採用しない検知動作列とを組み合わせた候補群を生成してシーケンスマッチングを行う（Ｓ１１０９）。
その後、分析部５０２は、全ての候補群に対してシーケンスマッチングを行ってスコアを決定し（Ｓ１１１０）、最適解決定処理を実行する（Ｓ１０１１）。
【００９１】
以下、Ｓ１１０９以降の処理を詳細に説明する。分析部５０２は、Ｓ８０６で生成される分割点により分割された検知動作列に加えて、分割点による分割を行わない検知動作列を生成する。なお、分割点が複数あるときには、少なくとも１つの分割点について分割を行わない検知動作列を生成する。第２実施形態では、各分割点について分割を行うか行わないかを選択することで生成されるすべての分割パターンについて検知動作列を生成した。
【００９２】
図１２に、２つの分割点を有する検知動作列について、分割点ごとに分割を行うか行わないかを選択することで検知動作列を生成する処理の説明図を示す。この例では、作業０と作業１との間に対象物の移動による分割点が存在する。また、作業１と作業２の間にも、対象物の移動による分割点の候補がある。
【００９３】
分析部５０２は、分割点での分割を行っていない検知動作列を検知動作列Ａを生成する。分析部５０２は、Ｓ８０６で、すべての分割点で分割を行った検知動作列を生成して検知動作列Ｂとし、更に検知動作列Ｃ、検知動作列Ｄを生成する。
【００９４】
検知動作列Ｃは、作業１と作業２の間の分割点でのみ分割を行って得られる検知動作列であり、検知動作列Ｄは、作業２と作業３の間の分割点でのみ分割を行って得られる検知動作列である。以下、これらの検知動作列Ａ〜Ｄを候補動作列と記載する場合がある。分割点が２個の場合、２×２＝４種類の候補動作列が生成される。同様に、分割点が３、４...ｎ個である場合、候補動作列は、それぞれ２３＝８、２４＝...２ｎ個生成される。
【００９５】
Ｓ１１１０では、分析部５０２は、候補動作列であるすべての検知動作列Ａ〜Ｄに対して、定義動作列とのシーケンスマッチングを行って評価を行う。第２実施形態では、以下のように各検知動作列Ａ〜Ｄに対してスコアを求めることで評価を行った。
図１２に示される例では、検知動作列Ａ〜Ｄのそれぞれについて、分割された部分ごとに、以下に示す式を用いて定義動作列の対応する部分に対するスコアを求める。例えば、検知動作列Ｂはすべての分割点で分割されており、定義列の作業０に対応する部分と検知動作列Ｂの作業０に対応する部分を比較する。同様に、定義列の作業１に対応する部分と検知動作列Ｂの作業１に対応する部分、および定義列の作業２に対応する部分と検知動作列Ｂの作業２に対応する部分同士を比較する。なお、定義動作列と分割された検知動作列との比較の手法はこの例に限定されるものではない。
その後、各部分について求められたスコアの総和をマッチングスコアとする。
スコア＝ＯＤ×ＳＭ×ＷＮ×α
【００９６】
ここで、ＯＤは物体の確信度のスコアであり、動作列の分割点前後の区切となる物体の移動に対応するテンプレートマッチングの類似度を表す。例えば、作業０と作業１との間の分割点において区切となる物体の移動前に対応するテンプレートマッチングの値をＯＤ１、物体の移動後に対応するテンプレートマッチングの類似度の値をＯＤ２とする。分割点が複数ある場合には、それぞれの分割点ごとに類似度を求めてＯＤの値を決定する。
【００９７】
ＳＭは、区切られた動作列におけるシーケンスマッチングのコストであり、個々の区切られた動作列ごとに求められる。例えば、図１２の検知動作列Ｂでは、検知動作列の作業０、作業１および作業２に対応する３つの部分ごとにそれぞれシーケンスマッチングのコストを求める。また、検知動作列Ｃでは、検知動作列の作業０および作業１に対応する部分と、作業２に対応する部分と、の２つの部分ごとにそれぞれシーケンスマッチングのコストを求める。また、ＷＮは、区切られた定義動作列の動作数、αは補正のための定数である。
なお、検知動作列Ａは分割されていないので、通常のＤＰマッチングを行ってシーケンスマッチングスコアを求め、その値をマッチングスコアとする。
【００９８】
第２実施形態でのスコアの特徴は、ＯＤ１，ＯＤ２（前後の物体の確信度スコア）が両方とも高く、ＳＭ（シーケンスマッチングのスコア）が高い場合に高くなる。特に、ＷＮ（分割された定義動作列：分割単位）が小さい方が、フェーズごとに判定対象となる動作領域数が制限されるので、ノイズが抑制される。その結果、ＳＭ（シーケンスマッチングのスコア）も高くなるので、物体の確信度のスコアが高い分割点は採用したほうが、全体スコアがより高くなるようになっている。
【００９９】
また、スコアの計算方法はこの例の手法に限定されるものではなく、このような特徴を有するスコア計算であれば、他の手法を用いることもできる。
最適解決定処理１０１１は、１０１０でスコア計算した候補の中から最も高いスコアの候補を最適解として決定して、作業実施判定を行う。
【０１００】
第２実施形態によれば、第１実施形態でのすべての分割点で分割を行うという分割パターンだけでなく、検知動作列のすべての分割パターンごとに、シーケンスマッチングスコアを求め、その値が最も高い分割パターンを選択している。このように複数の分割パターンから選択を行うことで、最適な分割パターンを用いたシーケンスマッチングを行うことが可能となり、動作検知精度および作業検知精度が向上する。
【０１０１】
第１実施形態および第２実施形態を説明したが、本発明はその他の様々な形態で実施することができる。例えば、第１実施形態および第２実施形態では、工場での組立作業を対象として作業分析を行っている。しかし、本発明は、装置点検など、その実行順がマニュアルなどによって予め定められた作業に対して適用が可能である。
【０１０２】
また、第１実施形態および第２実施形態では、作業対象物や組立対象物等における部品、道具等の物体、および作業者の手を検知対象とした。しかし、本発明は、装置本体、点検器具、コピー用紙や充填液等の消耗物の補充および回収等に適用することもできる。
【０１０３】
装置本体や点検器具を検知対象とする場合、予め定められた順番で決められた位置にあるスイッチなどを押して機能の確認などを行う場合に、各スイッチおよび作業者の手を検知対象として作業分析を行うために本発明を適用することができる。決められた位置に予め定められた順番で消耗品の補充などを行うという作業に対しても、第１実施形態および第２実施形態と同様に作業分析を行うことが可能である。
更に、各実施形態では、物体の移動の検知と人間の手の検知とを組み合わせることで、誤検知が減少して作業実施判定の精度を向上されている。
【０１０４】
以上本発明を例示的実施形態により説明した。しかし、本発明は、実施形態の１以上の機能を実現するプログラムを、ネットワーク等を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、上述した実施形態の機能を実現するソフトウエアのプログラムコードをコンピュータ読取可能な記録媒体に記録することもできる。この記録媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによって本発明を実施することができる。
【０１０５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施例の機能が実現される。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【０１０６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図１】
2019101919.tif 000003
【図２】
2019101919.tif 000004
【図３】
2019101919.tif 000005
【図４】
2019101919.tif 000006
【図５】
2019101919.tif 000007
【図６】
2019101919.tif 000008
【図７】
2019101919.tif 000009
【図８】
2019101919.tif 000010
【図９】
2019101919.tif 000011
【図１０】
2019101919.tif 000012
【図１１】
2019101919.tif 000013
【図１２】
2019101919.tif 000014