(57)【要約】【課題】  誤った作業区間の認識を抑制するための技術を提供すること。【解決手段】  作業者が複数種の作業を順次行っているシーンの映像を取得する。映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する。作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、映像における認識区間を作業区間に基づいて特定する。該特定した認識区間に対して行った動作の認識結果に応じて作業区間を補正する。【選択図】  図３
2019193019.tif 000002
【特許請求の範囲】
【請求項１】
作業者が複数種の作業を順次行っているシーンの映像を取得する取得手段と、
前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第１の特定手段と、
前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第２の特定手段と、
前記第２の特定手段が特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正手段と
を備えることを特徴とする作業分析装置。
【請求項２】
前記第１の特定手段は、前記作業認識により、同じ種別の作業が連続して認識されたフレームの区間に基づいて前記作業区間を特定することを特徴とする請求項１に記載の作業分析装置。
【請求項３】
前記第２の特定手段は、前記作業区間の区間長を拡大した区間を認識区間として特定することを特徴とする請求項１又は２に記載の作業分析装置。
【請求項４】
前記第２の特定手段は、前記作業区間に、非作業が認識されたフレームの区間が隣接している場合には、該区間におけるフレームの位置を認識区間の端部とすることを特徴とする請求項１乃至３の何れか１項に記載の作業分析装置。
【請求項５】
前記第２の特定手段は、前記作業区間に、作業認識の信頼性が低い区間が隣接している場合には、該区間の端部を認識区間の端部とすることを特徴とする請求項１乃至４の何れか１項に記載の作業分析装置。
【請求項６】
前記第２の特定手段は、作業区間の区間長及び作業種別の並び及び複数の作業認識の結果の一貫性の少なくとも１つに基づいて、作業認識の区間の信頼性を判断することを特徴とする請求項５に記載の作業分析装置。
【請求項７】
前記補正手段は、端部において動作認識の信頼性が低いと判断する場合には、前記作業区間を補正しないことを特徴とする請求項１乃至６の何れか１項に記載の作業分析装置。
【請求項８】
前記補正手段は、前記認識区間の端部において前記作業者の手の検出に失敗している場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項７に記載の作業分析装置。
【請求項９】
前記補正手段は、前記認識区間において前記作業を構成する各動作のシーケンスの端部における動作の認識が失敗している場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項７に記載の作業分析装置。
【請求項１０】
前記補正手段は、前記作業者が作業を行うために手を重ねる領域を動作領域とし、前記認識区間の端部において前記作業者の手が重なっていると判断した動作領域から予め定めた距離の範囲に他の動作領域が存在する場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項７に記載の作業分析装置。
【請求項１１】
前記補正手段は、前記作業を構成する各動作のシーケンスを規定する定義動作列と、前記第２の特定手段が特定した認識区間に対する動作認識により得られる各動作のシーケンスと、を用いてＤＰマッチングを行い、前記定義動作列の最初の動作および最後の動作に対応する動作を認識したフレームの区間を認識区間として特定することを特徴とする請求項１乃至１０の何れか１項に記載の作業分析装置。
【請求項１２】
前記取得手段は、前記シーンを撮像する撮像装置から前記映像を取得することを特徴とする請求項１乃至１１の何れか１項に記載の作業分析装置。
【請求項１３】
作業分析装置が行う作業分析方法であって、
前記作業分析装置の取得手段が、作業者が複数種の作業を順次行っているシーンの映像を取得する取得工程と、
前記作業分析装置の第１の特定手段が、前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第１の特定工程と、
前記作業分析装置の第２の特定手段が、前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第２の特定工程と、
前記作業分析装置の補正手段が、前記第２の特定工程で特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正工程と
を備えることを特徴とする作業分析方法。
【請求項１４】
作業分析装置のコンピュータを、請求項１乃至１２の何れか１項に記載の作業分析装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業者が行う作業の分析技術に関するものである。
【背景技術】
【０００２】
工場の組立作業が正しく行われているかを分析する手法として、組立作業のシーンを撮影した映像中の作業員の動きを解析し、作業標準書の記載内容に照らし合わせる手法が知られている。例えば、映像中の組立作業の発生する箇所に矩形を設定して、その矩形に手が入ったかどうかで組立作業を実施したかを判定する手法がある（特許文献１）。また、映像中の動作と動作区間の認識の手法として、フレームごとに各動作のスコアを算出して動作の種類およびその区間の推定を行う手法がある（非特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２０９６９４号公報
【非特許文献】
【０００４】
【非特許文献１】宮澤  一之，Ｚｈｅｎｇ  Ｓｈｏｕ，Ｊｏｎａｔｈａｎ  Ｃｈａｎ，Ａｌｉｒｅｚａ  Ｚａｒｅｉａｎ，Ｓｈｉｈ−Ｆｕ  Ｃｈａｎｇ、「映像への密なラベリングを実現する畳み込み−逆畳み込み層を用いた行動認識」、画像の認識・理解シンポジウム（ＭＩＲＵ２０１７）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
作業標準書には組立作業において行われる作業の順番が記載されていることもあり、作業者によって行われた組立作業の良否を判断するためには、作業の順番をも加味しなければならないことが多い。そのような作業の順番を加味した作業分析は、特許文献１のような、個別作業の発生の有無に注目しているだけでは実現できず、それらの発生の順序を分析する必要がある。そのような手法として、ＤＰマッチングに代表されるような、シーケンスの並びのあいまいさを許容するシーケンスマッチングが知られている。しかし、「通常とは異なる腕の動きに起因した手の矩形への進入」など、注目すべきでない手の矩形への進入が多発するとシーケンスマッチングがうまく機能せず、その結果として分析に失敗することもあった。一方、非特許文献１に記載の技術を用いることで、映像中の作業と作業区間を認識できる。しかし、非特許文献１に記載の技術では、作業を構成する細かな動作の実施有無を認識しておらず、作業区間の認識に失敗することがあった。本発明では、誤った作業区間の認識を抑制するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、作業者が複数種の作業を順次行っているシーンの映像を取得する取得手段と、前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第１の特定手段と、前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第２の特定手段と、前記第２の特定手段が特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、誤った作業区間の認識を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】作業分析システムの構成例を示すブロック図。
【図２】組立作業を行う作業場を説明する図。
【図３】作業分析装置１００の機能構成例及び処理を示す図。
【図４】ステップＳ３０６ｂにおける処理の詳細及び具体例を示す図。
【図５】ステップＳ３１０ｂ、ステップＳ５０１ａにおける処理の詳細を示す図。
【図６】マッチング方法の概略を説明する図。
【図７】ステップＳ３０２ｂにおける処理の詳細を示すフローチャート。
【図８】ステップＳ７１１における処理の詳細を示すフローチャート。
【図９】図８の処理の具体例を示す図。
【図１０】ステップＳ８０８を説明する図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の１つである。
【００１０】
［第１の実施形態］
本実施形態では、作業者が複数種類の作業を順次行っているシーンの映像から、該作業者が各作業や各作業を構成する各動作を正しい順で行っているのかを分析（作業分析）するための構成について説明する。以下の説明は、この構成の一例について説明するものであって、同様の効果を達することができるのであれば、この構成を適宜変更／変形しても構わない。
【００１１】
先ず、本実施形態に係る作業分析システムの構成例について、図１のブロック図を用いて説明する。図１に示す如く、本実施形態に係る作業分析システムは、作業分析装置１００とカメラ１１２とを有し、作業分析装置１００及びカメラ１１２はネットワーク回線１１１に接続されており、互いにデータ通信が可能なように構成されている。また、作業分析装置１００には、入力デバイス１０９及びモニタ１１０が接続されている。
【００１２】
先ず、作業分析装置１００及び該作業分析装置１００に接続されている入力デバイス１０９及びモニタ１１０について説明する。作業分析装置１００は、カメラ１１２による映像から上記の作業分析を行ってその結果を出力する装置である。作業分析装置１００には、ＰＣ（パーソナルコンピュータ）、ＷＳ（ワークステーション）、タブレット型端末装置等のコンピュータ装置を適用することができる。
【００１３】
ＣＰＵ１０１は、ＲＡＭ１０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、作業分析装置１００全体の動作制御を行うと共に、作業分析装置１００が行うものとして後述する各処理を実行若しくは制御する。
【００１４】
ＲＯＭ１０２には、作業分析装置１００の設定データや起動プログラムなどが格納されている。ＲＡＭ１０３は、外部記憶装置１０４からロードされたコンピュータプログラムやデータ、インターフェース１０７を介してカメラ１１２から受信した画像を格納するためのエリア、を有する。更にＲＡＭ１０３は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１０３は、各種のエリアを適宜提供することができる。
【００１５】
外部記憶装置１０４は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置１０４には、ＯＳ（オペレーティングシステム）や、作業分析装置１００が行うものとして後述する各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置１０４に保存されているデータには、以下の説明において既知の情報として取り扱う情報が含まれている。外部記憶装置１０４に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０３にロードされ、ＣＰＵ１０１による処理対象となる。
【００１６】
なお、外部記憶装置１０４は、作業分析装置１００から着脱可能なフレキシブルディスク（ＦＤ）やＣｏｍｐａｃｔ  Ｄｉｓｋ（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカードなどを含んでもよい。
【００１７】
上記のＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、外部記憶装置１０４は何れもシステムバス１０８に接続されている。また、システムバス１０８には、インターフェース１０５，１０６，１０７が接続されている。
【００１８】
インターフェース１０５は、入力デバイス１０９を作業分析装置１００に接続するためのインターフェースとして機能するものである。入力デバイス１０９は、キーボードやマウス等のユーザインターフェースである。ユーザが入力デバイス１０９を操作することで入力した各種の指示は、インターフェース１０５及びシステムバス１０８を介してＣＰＵ１０１に通知される。
【００１９】
インターフェース１０６は、モニタ１１０を作業分析装置１００に接続するためのインターフェースとして機能するものである。モニタ１１０は、液晶画面やタッチパネル画面などの表示画面を有し、ＣＰＵ１０１による処理結果を画像や文字などでもって表示する。
【００２０】
インターフェース１０７は、作業分析装置１００をネットワーク回線１１１に接続するためのインターフェースであり、ネットワーク回線１１１を介してカメラ１１２から順次送出される画像はインターフェース１０７を介してＲＡＭ１０３や外部記憶装置１０４に格納される。
【００２１】
次に、カメラ１１２について説明する。カメラ１１２は、図２（ａ）に示す如く、作業者２８が組立作業を行っているシーンの映像を撮像し、該映像の各フレームの画像を順次、ネットワーク回線１１１を介して作業分析装置１００に対して送信する。ここで、カメラ１１２は、可視光画像と距離画像とを撮像するカメラであるから、カメラ１１２は、各フレームが可視光画像である映像（可視光映像）と、各フレームが距離画像である映像（距離映像）と、を作業分析装置１００に対して送信することになる。
【００２２】
可視光画像とは、可視光を撮像することで得られる画像であり、赤外光を撮像した赤外光画像であっても良いし、各画素の画素値が輝度成分を有する輝度画像であっても良い。距離画像とは、各画素の画素値が該画素に対応する現実空間の位置までの距離を表す画像である。なお、カメラ１１２は、可視光画像及び距離画像の両方を撮像するカメラで構成しても良いし、可視光画像を撮像するカメラと、距離画像を撮像するカメラと、で構成しても良い。また、カメラ１１２は距離画像は撮像せずに可視光画像を撮像するカメラであっても良く、その場合は、可視光画像から各画素に対応する距離を算出する。
【００２３】
本実施形態では、このような作業分析システムを用いて、工場にて作業者が行う組み立て作業のシーンの映像から該作業を分析し、該作業者が組立作業標準書に従って作業を行ったかどうかを判定すると共に、作業時間が長くかかっているかどうかを判定する。本実施形態で想定している組立作業を行う作業場について図２（ａ）を用いて説明する。図２（ａ）は、この作業場の俯瞰図である。図２（ａ）において点線で示す矩形は作業者２８の動作を判定するために設けられた領域（動作領域）を表しており、各動作領域に付している下線付きの数字は、判定順（該動作領域に対するラベル）を表している。以下では、下線付きの数字Ｘが記されている動作領域を動作領域Ｘと称する場合がある。
【００２４】
図２（ａ）では、作業者２８が作業台２１の前に立って作業を行っている。作業台２１には、ワークベンチ２２が載置されており、該ワークベンチ２２には、組立対象物２３が載置されている。また、作業台２１には、複数枚のシールを収納しているシールケース２４、複数個のビスを収納しているビスケース２５が載置されている。また、作業台２１には、ゴミ箱２６、ドライバ受け２７が設けられている。
【００２５】
この作業場は、組立対象物２３をワークベンチ２２に置き、組立対象物２３の組み立てを行う作業場であり、作業者２８はこの作業場にて組立作業標準書に従って組立作業を行う。組立対象物２３には例えば、複写機の内部に組み込む現像器や定着器などがあるが、これに限定されるものではない。この作業場における組立作業の例を図２（ｂ）を用いて説明する。
【００２６】
図２（ｂ）では、組立作業は２つの作業から構成されており、シールの貼付（作業０）とビス締め（作業１）とをこの順で連続して行うことで１回分の組み立て作業（１サイクル）が完了する。ここで、作業０，作業１のそれぞれの作業は複数の動作から構成され、また各動作の順序も規定されている。
【００２７】
作業０は、シールケース２４（動作領域０）からシールを取るシール取得（動作０）、シール右端の組立対象物２３（動作領域１）への貼付（動作１）、シール左端の組立対象物２３（動作領域２）への貼付（動作２）、シールの裏紙をゴミ箱２６（動作領域３）に捨てるシール裏紙破棄（動作３）により構成されている。動作０，動作１，動作２，動作３をこの順で行うことで作業０が完了する。
【００２８】
作業０の後、作業１の予備動作として、組立対象物２３を裏返す動作（対象物裏返し）がある。そして予備動作の後、作業１が開始される。
【００２９】
作業１は、ドライバ取得（動作０），ビス取得（動作１），ビス締め（動作２），ドライバ戻し（動作３）をこの順で行うことで完了する。作業１の動作０では、作業者２８は、ドライバ受け２７（動作領域４）から右手でドライバを取る。作業１の動作１では、作業者２８は、ビスケース２５（動作領域５）から左手でビスを取る。作業１の動作２では、作業者２８は、ドライバを用いて組立対象物２３の中央（動作領域６）に示す黒丸部分にビスを締める。作業１の動作３では、作業者２８は、ドライバをドライバ受け２７（動作領域４）に戻す。
【００３０】
上記の各作業及び各動作の内容及び順番は組立作業標準書に記載されており、作業者２８はこの作業標準書に従って組立作業を進めなければならない。本実施形態では、作業者２８が組立作業を行っている様子をカメラ１１２により撮像し、該撮像した映像から、該作業者２８が組立作業標準書に記載の各作業及び各動作を正しい内容で正しい順序で行っているのかを分析する。なお、組立対象物、組立作業標準書が規定する内容は上記の例に限らない。
【００３１】
次に、作業分析装置１００の機能構成例を、図３（ａ）のブロック図に示す。以下では、図３（ａ）の機能部を処理の主体として説明する場合があるが、実際には、該機能部の機能をＣＰＵ１０１に実行させるためのコンピュータプログラムを該ＣＰＵ１０１が実行することで、該機能部の機能が実現される。なお、図３（ａ）の各機能部をソフトウェア（コンピュータプログラム）で実装することに限らず、ハードウェアで実装しても良い。図３（ａ）の各機能部の動作により達成される、作業者２８の組立作業の分析処理について、同処理のフローチャートを示す図３（ｂ）を用いて説明する。
【００３２】
ステップＳ３０１ｂでは、保存部３０１ａは、カメラ１１２から順次出力される各フレームの画像をインターフェース１０７を介して受信し、該受信した画像をＲＡＭ１０３に格納する。そして保存部３０１ａは、ＲＡＭ１０３に格納したそれぞれの画像に対して各種の画像処理を行い、全ての画像について画像処理を行うと、該全ての画像を１つのファイルとして外部記憶装置１０４に保存する。つまり保存部３０１ａは、カメラ１１２により撮像された映像の各フレームについて画像処理を行ってから、該映像を１つのファイルとして外部記憶装置１０４に保存する。本実施形態では、カメラ１１２からは、可視光映像と距離映像とが出力される。然るに保存部３０１ａは、それぞれの映像を（画像処理を施してから）別個のファイルとして保存しても良いし、それぞれの映像を（画像処理を施してから）１つのファイルとして保存しても良い。つまり、映像の保存形態については特定の保存形態に限らない。
【００３３】
ステップＳ３０２ｂでは、認識部３０２ａは、映像（以下、単に「映像」と称した場合は可視光映像、距離映像の何れであっても良い）を構成する各フレームの撮像画像に対して作業の種別を認識する作業認識を行う。これにより認識部３０２ａは、映像において連続して同じ種別の作業が認識されたフレームの区間を作業区間として特定（認識）する。ステップＳ３０２ｂにおける処理の詳細について、図７のフローチャートを用いて説明する。
【００３４】
ステップＳ７０１では、認識部３０２ａは、映像から未選択の１フレームを選択フレームとして選択する。ステップＳ７０１では、映像の先頭フレーム（時間的に最も古いフレーム）から順に１フレームずつ選択する。
【００３５】
ステップＳ７０２では、認識部３０２ａは、選択フレームの画像内で行われている作業が、組立作業を構成する各作業の何れであるのかを認識するべく、組立作業を構成する各作業に対する確からしさ（スコア）を求める。例えば、組立作業を構成する作業における動作の特徴と、該作業に対応するラベル値と、の対応関係を学習した学習モデルを予め作成しておく。そして、このような学習モデルを用いて、選択フレームの画像で行われている作業について、組立作業を構成する各作業に対するスコアを求める。なお、ステップＳ７０２における処理は、非特許文献１などに記載の機械学習の方法により実現可能である。なお、スコア算出方法は学習モデルを利用した方法に限らず、例えば各作業の代表的な動きの画像を用意しておき、該画像と選択フレームの画像との類似度をスコアとしても良いし、各作業時に必ず触れるエリアを設定しておき、そこを作業者２８の手が触ったかどうか、どの程度触ったかに応じてスコアを算出する、といった方法が考えられる。領域に対する手の検出については後述する構成により実現可能である。
【００３６】
ここで、本実施形態では、ラベル値は作業順を表すものとする。図２（ａ）の例では、作業０のラベル値は「１」、作業１のラベル値は「２」となる。なお、ラベル値の定義はこれに限らない。
【００３７】
ステップＳ７０３では、認識部３０２ａは、ステップＳ７０２で求めたスコアのうち最大のスコアに対応する作業を、選択フレームの画像内で行われている作業として認識し、該最大のスコアに対応する作業のラベル値を該選択フレームに関連づける。
【００３８】
なお、認識部３０２ａは、選択フレームの画像内で行われている作業が組立作業を構成する何れの作業でもないと判断した場合には、「非作業」と認識し、対応するラベル値を選択フレームの画像に関連づける。例えば、ステップＳ７０２で求めた全てのスコアが第１の閾値以下であれば、選択フレームの画像内で行われている作業は組立作業を構成する作業の何れでもないと判断する。なお、上記の学習モデルに組立作業を構成する作業以外の他作業の特徴と対応するラベル値との対応関係を学習させておいても良い。このとき、このような該学習モデルを用いて求めた最大のスコアが他作業に対応するスコアである場合、「非作業」と認識するようにしても良い。このように、選択フレームの画像に対して「非作業」と認識するための構成については様々な構成が考えられ、特定の構成に限らない。
【００３９】
また認識部３０２ａは、選択フレームの画像内で行われている作業が判定できなかった場合には、「判定不能」と認識し、対応するラベル値を選択フレームの画像に関連づける。例えば、ステップＳ７０２で求めた全てのスコアが第１の閾値よりも小さい第２の閾値以下であれば、選択フレームの画像内で行われている作業の認識はできない（判定不能）と判断する。なお、選択フレームの画像に対して「判定不能」と認識するための構成については様々な構成が考えられ、特定の構成に限らない。
【００４０】
ステップＳ７０４では、認識部３０２ａは、選択フレームが映像における最後のフレーム（最終フレーム）であるのか否かを判断する。この判断の結果、選択フレームが最終フレームである場合には、処理はステップＳ７０６に進み、選択フレームが最終フレームではない場合には、処理はステップＳ７０５に進む。
【００４１】
ステップＳ７０５で認識部３０２ａは、選択フレームについてステップＳ７０３で特定した作業の種別と、該選択フレームの１フレーム前（該選択フレームの直前に選択したフレーム）についてステップＳ７０３で特定した作業の種別と、が同じかを判断する。つまり、認識部３０２ａは、ステップＳ７０３で選択フレームに関連づけたラベル値と、ステップＳ７０３で該選択フレームの１フレーム前（該選択フレームの直前に選択したフレーム）に関連づけたラベル値と、が同じであるか否かを判断する。この判断の結果、同じであると判断した場合には、処理はステップＳ７０１に戻り、同じではないと判断した場合には、処理はステップＳ７０６に進む。
【００４２】
ステップＳ７０６では、認識部３０２ａは、選択フレームまで連続して「選択フレームについて認識した作業の種別」と同じ種別であると認識されたフレームの数（同じ作業が連続するフレーム数）をカウントする。つまり認識部３０２ａは、選択フレームから映像の先頭フレームに向けて１フレームずつ戻りながら、連続して並ぶ「選択フレームのラベル値と同じラベル値が関連づけられているフレーム」の数をカウントする。例えば、選択フレームが１０フレーム目であり、５フレーム目から１０フレーム目までの各フレームについてステップＳ７０３で判断した作業の種別が同じである（同じラベル値が関連づけられている）場合には、カウントするフレーム数＝６とする。
【００４３】
ステップＳ７０７では、認識部３０２ａは、ステップＳ７０６においてカウントしたフレーム数（連続フレーム数）が、予め定められた閾値を超えているか否かを判断する。この判断の結果、連続フレーム数が閾値を超えている場合には、処理はステップＳ７０８に進み、連続フレーム数が閾値以下である場合には、処理はステップＳ７０９に進む。
【００４４】
ステップＳ７０８では、認識部３０２ａは、ステップＳ７０６にてカウント対象となったフレームの区間を、作業が実施された区間（期間）の候補（候補区間）とする。上記の例では５フレーム目から１０フレーム目までの区間が候補区間となる。そして認識部３０２ａは、該候補区間の開始フレームの位置（上記の例では５フレーム目）、該候補区間の終端フレームの位置（上記の例では１０フレーム目）、該候補区間のラベル値（候補区間における何れかのフレームのラベル値）、を関連づけてＲＡＭ１０３に格納する。
【００４５】
一方、ステップＳ７０９では、認識部３０２ａは、ステップＳ７０６にてカウント対象となったフレームの区間は、ノイズもしくは誤認識であると判断する。以下では、ステップＳ７０６にてカウント対象となったフレームの区間（連続フレーム数が閾値以下である区間）を、補完区間（規定フレーム数以下連続して同じ種別の作業が認識されたフレーム区間）と称する。これは、連続して同じ作業と推定されたフレーム数、つまり作業の実施期間が極端に短いことはないという前提に基づいている。この場合、認識部３０２ａは、補完区間の開始フレームの位置、該補完区間の終端フレームの位置、該補完区間に近接する区間に対応するラベル値、を関連づけてＲＡＭ１０３に格納する。「補完区間に近接する区間に対応するラベル値」としては、例えば、映像の先頭側に該補完区間と隣接する区間（候補区間、補完区間）に対応するラベル値を使用する。
【００４６】
このように、ステップＳ７０８，Ｓ７０９により、連続フレーム数が閾値を超えている若しくは閾値以下の区間について、該区間の開始フレームの位置、該区間の終端フレームの位置、該区間のラベル値、が関連づけられてＲＡＭ１０３に格納される。
【００４７】
ステップＳ７１０では、認識部３０２ａは、後続するステップＳ７１１において区間（ステップＳ７０６にてカウント対象となったフレームの区間）に対する判定処理を行うために必要な他の区間が得られたのか否かを判断する。本実施形態では、判定対象となる区間を判定するためには、該判定対象となる区間に隣接する前後の区間が必要となるため、判定対象となる区間に隣接する前後の区間が得られたのかを否かを判断する。この判断の結果、得られた場合には処理はステップＳ７１１に進み、得られていない場合には、処理はステップＳ７０１に戻る。なお、最終フレームを含む区間については、その次の区間が存在することはないが、特例としてステップＳ７１１に進む。
【００４８】
ステップＳ７１１で認識部３０２ａは、判定対象となる区間（判定対象区間）に対し、組立作業を構成する作業を行っている区間として確定する、他の区間と統合する、組立作業を構成する作業を行っている区間ではないものとして確定する等の判定処理を行う。このステップＳ７１１における処理により、区間の補正及びノイズの除去、作業実施の有無判定が行われる。ステップＳ７１１における処理の詳細について、図８のフローチャートを用いて説明する。
【００４９】
なお、図８のフローチャートに従った処理の説明では、図９に示す具体例を挙げて説明する。図９に示す如く、テーブル９０１は、ラベル値の区分を登録したものであり、テーブル９０１の場合、ラベル値１〜７は、組立作業を構成する各作業に対応するラベル値であり、ラベル値ｉ（１≦ｉ≦７）は、組立作業において開始からｉ番目の作業に対応するラベル値である。またテーブル９０１において、ラベル値８，９は、組立作業には含まれていない作業に対応するラベル値であり、例えばそれぞれ、「非作業」、「判定不能」に対応するラベル値である。区間テーブル９０２は、上記のステップＳ７０８やステップＳ７０９にてＲＡＭ１０３に登録した情報から生成したテーブルであり、ステップＳ７０８やステップＳ７０９にてＲＡＭ１０３に登録した情報を該登録の順に上から並べたテーブルである。区間テーブル９０２において左端の列（Ｎｏ）は各行を指し示すために模式的に示したものである。左端から２番目の列（＃ｂｅｇｉｎ＿ｆｒａｍｅ）には、区間の開始フレームの位置が登録されており、左端から３番目の列（＃ｅｎｄ＿ｆｒａｍｅ）には、区間の終端フレームの位置が登録されている。また、右端の列（ｌａｂｅｌ）には、区間のラベル値が登録されている。例えば、行番号（Ｎｏ）＝１の行には、ある区間についての開始フレームの位置、終端フレームの位置、ラベル値が登録されており、それぞれ、１００，１５０，８となっている。
【００５０】
ステップＳ８０１では、認識部３０２ａは、判定対象区間に対応するラベル値が「非作業」に対応するラベル値であるか否かを判断する。この判断の結果、判定対象区間に対応するラベル値が「非作業」に対応するラベル値である場合には、処理はステップＳ８０５に進み、判定対象区間に対応するラベル値が「非作業」に対応するラベル値ではない場合には、処理はステップＳ８０２に進む。
【００５１】
ステップＳ８０５では、認識部３０２ａは、判定対象区間を区間テーブル９０２から削除（除外）する。例えば、判定対象区間が行番号＝１の行に対応する区間であるとすると、該判定対象区間のラベル値＝８となっており、ラベル値＝８は組立作業を構成する作業に対応するラベル値ではない。そこでこのような場合は、処理はステップＳ８０５に進み、区間テーブル９０２から、行番号＝１の行に登録されている情報を削除する。その結果、区間テーブル９０２は区間テーブル９０３に更新される。区間テーブル９０３では、区間テーブル９０２から、行番号＝１の行に登録されている開始フレームの位置、終端フレームの位置、ラベル値が削除されたものとなっている。
【００５２】
ステップＳ８０２では、認識部３０２ａは、判定対象区間に対応するラベル値が、該判定対象区間に先行する区間に対応するラベル値と同じであるか否か、つまり、判定対象区間と該判定対象区間に先行する区間とで同じ作業が認識されたのか否かを判断する。ここで、「判定対象区間に先行する区間」とは、区間テーブル９０２においては、判定対象区間の行の１つ上の行に対応する区間を指し示している。この判断の結果、同じである場合には、処理はステップＳ８０６に進み、同じではない場合には、処理はステップＳ８０３に進む。
【００５３】
ステップＳ８０６では、認識部３０２ａは、判定対象区間と、該判定対象区間に先行する区間と、を統合して１つの作業区間を形成する。例えば、判定対象区間が行番号＝５の行に対応する区間であるとすると、判定対象区間のラベル値は「３」となる。一方、該判定対象区間に先行する区間は行番号＝４の行に対応する区間であり、この区間のラベル値もまた「３」となる。つまり、判定対象区間のラベル値と、該判定対象区間に先行する区間のラベル値と、は同じ「３」である。そこでこの場合は、処理はステップＳ８０６に進み、行番号＝４に対応する区間と、行番号＝５に対応する区間と、を統合して、行番号＝４に対応する区間と、行番号＝５に対応する区間と、を含む１つの作業区間を形成する。この統合では、区間テーブル９０３に示す如く、区間テーブル９０２における行番号＝４の行と行番号＝５の行とを統合して１つの行にしている。つまり、該１つの行に、行番号＝４に対応する区間の開始フレームの位置「２００」、行番号＝５に対応する区間の終端フレームの位置「２２５」、行番号＝４（若しくは５）に対応する区間のラベル値「３」、が登録される。
【００５４】
ステップＳ８０３では、認識部３０２ａは、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも小さいか否かを判断する。この判断の結果、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも小さい場合には、処理はステップＳ８０７に進む。一方、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも大きい場合には、処理はステップＳ８０４に進む。
【００５５】
ステップＳ８０７では、認識部３０２ａは、判定対象区間をノイズ成分とし、判定対象区間を区間テーブル９０２から削除（除外）すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。判定対象区間は、該判定対象区間に先行する区間よりも時間的に後の区間であるから、判定対象区間に対応する作業は、該判定対象区間に先行する区間に対応する作業よりも後に実施されるべきである。よって、判定対象区間のラベル値＞該区間に先行する区間のラベル値、となるべきである。よって、判定対象区間のラベル値＜該判定対象区間に先行する区間のラベル値、となった場合には、判定対象区間はノイズ成分とみなされる。区間テーブル９０２の場合、判定対象区間が行番号＝７の行に対応する区間であるとすると、判定対象区間のラベル値は「２」となる。一方、判定対象区間に先行する区間は行番号＝６の行に対応する区間であり、この区間のラベル値は「４」となり、判定対象区間のラベル値「２」＜該判定対象区間に先行する区間のラベル値「４」となっている。そこでこの場合は、処理はステップＳ８０７に進み、判定対象区間を区間テーブル９０２から削除（除外）すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。
【００５６】
ステップＳ８０４では、認識部３０２ａは、判定対象区間のラベル値から該判定対象区間に先行する区間のラベル値を引いた結果（減算結果）が１であるか否かを判断する。つまり、判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当するか否かを判断する。この判断の結果、減算結果が１（判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当する）場合には、処理はステップＳ８０８に進む。一方、減算結果が１ではない（判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当しない）場合には、処理はステップＳ８１０に進む。
【００５７】
ステップＳ８０８では、認識部３０２ａは、判定対象区間を作業区間として確定する。区間テーブル９０２の場合、判定対象区間が行番号＝３の行に対応する区間であるとすると、該判定対象区間のラベル値は「２」となっている。一方、判定対象区間に先行する区間のラベル値は「１」となっており、上記の減算結果は１となる。然るにこの場合、行番号＝３の行に対応する区間を作業区間として確定し、該区間に対応する行に登録されている情報は更新しない。あるいは、区間テーブルとして図１０に示す区間テーブル１００２が作成されていた場合には、行番号＝１１の行に対応する区間を作業区間として確定する。また、作業間のラベルの差を１以外に設定した場合にはステップＳ８０４での判定条件もその差に合わせることになる。すなわち、作業間のラベルの差を３と設定した場合にはステップＳ８０４で判定するラベルの差も３になるということである。
【００５８】
ステップＳ８１０では、認識部３０２ａは、判定対象区間に後続する区間のラベル値から、判定対象区間に先行する区間のラベル値を引いた結果（減算結果）が１であるか否かを判断する。ここで、「判定対象区間に後続する区間」とは、区間テーブル９０２においては、判定対象区間の行の１つ下の行に対応する区間を指し示している。この判断の結果、減算結果が１である場合には、処理はステップＳ８１１に進み、減算結果が１以外である場合には、処理はステップＳ８１２に進む。なお、ステップＳ８１０の条件判定はステップＳ８０４と同様、作業間のラベルの差を１以外に設定した場合にはその値に合わせた判定条件になる。
【００５９】
ステップＳ８１１では、認識部３０２ａは、判定対象区間をノイズ成分とし、判定対象区間を区間テーブル９０２から削除（除外）すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。減算結果が１である場合とは、判定対象区間に後続する区間に対応する作業が、組立作業順において、判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当する場合であるから、判定対象区間はノイズであると判断できる。例えば、区間テーブル１００２において判定対象区間が行番号＝１２の行に対応する区間であるとする。このとき、判定対象区間のラベル値は「４」、判定対象区間に後続する区間のラベル値は「３」、判定対象区間に先行する区間のラベル値は「２」となる。このとき、判定対象区間に先行する区間に対応する作業の次に、判定対象区間に後続する区間に対応する作業が実施されたと見なすことができるため、この場合、判定対象となる区間はノイズとなる。
【００６０】
ステップＳ８１２では、認識部３０２ａは、判定対象区間を作業区間として確定する。ここで、ステップＳ８１２に進んだ場合、判定対象区間のラベル値と該判定対象区間に先行する区間のラベル値との差が２以上、且つ判定対象区間に先行する区間のラベル値と該判定対象区間に後続する区間のラベル値との差が１以外となっている。
【００６１】
区間テーブル１００２の場合、判定対象区間が行番号＝２１の行に対応する区間であるとすると、該判定対象区間のラベル値は「６」となっている。一方、判定対象区間に先行する区間のラベル値は「４」、判定対象区間に後続する区間のラベル値は「７」となっており、この場合、ラベル値「５」に対応する作業が抜けていることが分かる。然るにこの場合、作業漏れがあったとみなし、行番号＝２１の行に対応する区間を作業区間として確定し、該区間に対応する行に登録されている情報は更新しない。
【００６２】
区間テーブル９０２，１００２について図８のフローチャートに従った処理を行うことで、それぞれ区間テーブル９０３，１００３となる。以下では、区間テーブルから削除されなかった区間（候補区間、補完区間、統合された区間）、区間テーブルから削除された区間（非作業に対応する区間、判定不能に対応する区間）、をそれぞれ作業区間と称する。
【００６３】
そして処理は図７のステップＳ７１２に進む。ステップＳ７１２では、認識部３０２ａは、映像から全てのフレームを選択フレームとして選択したか否か（ステップＳ７０１で選択したフレームが映像における最終フレームであるか否か）を判断する。この判断の結果、映像から全てのフレームを選択フレームとして選択した場合には、処理は図３（ｂ）のステップＳ３０３ｂに進む。一方、映像からまだ選択フレームとして選択していないフレームが残っている場合には、処理はステップＳ７０１に戻る。
【００６４】
ステップＳ３０３ｂ〜Ｓ３１１ｂの処理は、ステップＳ３０２ｂまでの処理で確定した各作業区間を古い順（映像において発生した順）に選択して処理するものである。ステップＳ３０３ｂでは、認識部３０２ａは、全ての作業区間に対応する処理状態を未処理に初期化する。
【００６５】
ステップＳ３０４ｂでは、認識部３０２ａは、全ての作業区間のうち未選択の１つ（処理状態が未処理の作業区間のうち１つ）を選択作業区間として選択し、該選択作業区間に対応する処理状態を処理済みに設定する。
【００６６】
ステップＳ３０５ｂでは、認識部３０２ａは、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値であるか否かを判断する。この判断の結果、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値である場合には、処理はステップＳ３０６ｂに進む。一方、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値ではない場合（例えば、非作業や判定不能に対応するラベル値である場合）には、処理はステップＳ３１１ｂに進む。
【００６７】
ステップＳ３０６ｂでは、決定部３０３ａは、選択作業区間に基づいて、該選択作業区間に対応する作業を構成する各動作を認識するための区間（動作認識区間）を設定する。ステップＳ３０６ｂにおける処理の詳細について、図４（ａ）のフローチャートに従って説明する。
【００６８】
ステップＳ４０１ａでは、決定部３０３ａは、空の連続作業リストを作成し、該連続作業リストに選択作業区間（作業区間ｉ）に対応する開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
【００６９】
ステップＳ４０２ａでは、決定部３０３ａは、選択作業区間の直後の作業区間（作業区間ｊ）のラベル値を取得し、ステップＳ４０３ａでは、決定部３０３ａは、作業区間ｊのラベル値が、組立作業を構成する何れかの作業に対応するラベル値であるか否かを判断する。この判断の結果、作業区間ｊのラベル値が、組立作業を構成する何れかの作業に対応するラベル値である場合には、処理はステップＳ４０４ａに進む。一方、作業区間ｊのラベル値が、組立作業を構成する何れかの作業に対応するラベル値ではない場合（例えば、非作業や判定不能に対応するラベル値である場合）には、処理はステップＳ４０６ａに進む。
【００７０】
ステップＳ４０６ａでは、決定部３０３ａは、作業区間ｊの処理状態を処理済みにする。なお、ステップＳ４０６ａで作業区間ｊの処理状態を処理済みとした場合、この作業区間ｊはステップＳ３０４ｂでは選択されない。
【００７１】
ステップＳ４０４ａでは、決定部３０３ａは、作業区間ｉのラベル値と作業区間ｊのラベル値とが同じであるか否を判断する。この判断の結果、作業区間ｉのラベル値と作業区間ｊのラベル値とが同じである場合には、処理はステップＳ４０５ａに進み、作業区間ｉのラベル値と作業区間ｊのラベル値とが同じではない場合には、処理はステップＳ４０７ａに進む。ステップＳ４０５ａでは、決定部３０３ａは、連続作業リストの末尾に、作業区間ｊに対応する開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
【００７２】
ステップＳ４０７ａでは、決定部３０３ａは、連続作業リストの先頭に登録されている作業区間（作業区間ｉ）を始端作業区間として設定する。そしてステップＳ４０８ａでは、決定部３０３ａは、始端作業区間から映像の先頭側に隣接する作業区間が補完区間であるか否かを判断する。始端作業区間から映像の先頭側に隣接する作業区間が補完区間である場合には、処理はステップＳ４０９ａに進み、始端作業区間から映像の先頭側に隣接する作業区間が補完区間ではない場合には、処理はステップＳ４１０ａに進む。
【００７３】
ステップＳ４０９ａでは、決定部３０３ａは、始端作業区間から映像の先頭側に隣接する補完区間の開始フレームの位置を取得し、該取得した開始フレームの位置を、動作認識区間の先頭フレーム位置として設定する。
【００７４】
ステップＳ４１０ａでは、決定部３０３ａは、始端作業区間の開始フレームの位置から映像の先頭側に規定フレーム数移動したフレーム位置を、動作認識区間の先頭フレーム位置として設定する。
【００７５】
ステップＳ４１１ａでは、決定部３０３ａは、連続作業リストの末尾に登録されている作業区間を終端作業区間として設定する。そしてステップＳ４１２ａでは、決定部３０３ａは、終端作業区間から映像の後端側に隣接する作業区間が補完区間であるか否かを判断する。終端作業区間から映像の後端側に隣接する作業区間が補完区間である場合には、処理はステップＳ４１３ａに進み、終端作業区間から映像の後端側に隣接する作業区間が補完区間ではない場合には、処理はステップＳ４１４ａに進む。
【００７６】
ステップＳ４１３ａでは、決定部３０３ａは、終端作業区間から映像の後端側に隣接する補完区間の終端フレームの位置を取得し、該取得した終端フレームの位置を、動作認識区間の後端フレーム位置として設定する。
【００７７】
ステップＳ４１４ａでは、決定部３０３ａは、終端作業区間の終端フレームの位置から映像の後端側に規定フレーム数移動したフレーム位置を、動作認識区間の後端フレーム位置として設定する。
【００７８】
ここで、図４（ａ）のフローチャートに従った処理について、図４（ｂ）に示す具体例を挙げて説明する。図４（ａ）に示した各矩形は作業区間を表しており、各矩形に記した記号（Ｎ以外）は対応するラベル値を表している。Ｗ１，Ｗ２，Ｗ３，Ｗ４は何れも、組立作業を構成する作業に対応するラベル値である。Ｃは非作業に対応するラベル値、Ｌは判定不能に対応するラベル値である。４０１ｂは、左端から右端に向けて各矩形に割り当てたインデックスである。Ｎは、対応する矩形が補完区間であることを表している。図４（ｂ）では、スペースの都合上、インデックス＝１〜１３の行と、インデックス＝１４〜１９の行と、を上下に分けて記しているが、同じ参照番号で示す行は同じ行であるものとする。以下では、行Ｘにおけるインデックス＝Ｙの作業区間を作業区間Ｘ−Ｙと称する。
【００７９】
行４０２ｂに並ぶ作業区間のうち、作業区間（補完区間）４０２ｂ−５のラベル値は、上記のステップＳ７０９により、行４０３ｂに示す如く、その直前の作業区間（作業区間４０２ｂ−４）のラベル値Ｗ２に設定される。また、作業区間（補完区間）４０２ｂ−１０のラベル値は、上記のステップＳ７０９により、行４０３ｂに示す如く、その直前の作業区間（作業区間４０２ｂ−９）のラベル値Ｃに設定される。また、作業区間（補完区間）４０２ｂ−１２のラベル値は、上記のステップＳ７０９により、行４０３ｂに示す如く、その直前の作業区間（作業区間４０２ｂ−１１）のラベル値Ｗ３に設定される。以降、作業区間（補完区間）４０２ｂ−１４，１６のラベル値についても同様にしてそれぞれ、Ｃ，Ｗ４に設定される。
【００８０】
そして行４０３ｂに並ぶ作業区間において作業区間４０３ｂ−４〜６は、同じラベル値Ｗ２を有する作業区間の列であるから、図８のフローチャートに従った処理により、行４０４ｂに示す如く、ラベル値Ｗ２を有する１つの作業区間に統合されている。また、作業区間４０３ｂ−１１〜１２は、同じラベル値Ｗ３を有する作業区間の列であるから、図８のフローチャートに従った処理により、行４０４ｂに示す如く、ラベル値Ｗ３を有する１つの作業区間に統合されている。また、作業区間４０３ｂ−１５〜１６は、同じラベル値Ｗ４を有する作業区間の列であるから、図８のフローチャートに従った処理により、行４０４ｂに示す如く、ラベル値Ｗ４を有する１つの作業区間に統合されている。
【００８１】
このような行４０４ｂに対して動作認識区間を設定する場合、先ず、先頭の作業区間（作業区間４０４ｂ−１）から順に参照すると、作業区間４０４ｂ−１のラベル値はＣであるから、ステップＳ３０６ｂの対象外となる。
【００８２】
次に、作業区間４０４ｂ−２のラベル値はＷ１であるからステップＳ３０６ｂの対象となり、先ず連続作業リストには、作業区間４０４ｂ−２の情報が登録される。そして作業区間４０４ｂ−２に後続する作業区間には、作業区間４０４ｂ−２のラベル値Ｗ１と同じラベル値を有する作業区間が登場しないので、作業区間４０４ｂ−２の情報のみが登録された連続作業リストがステップＳ４０７ａ〜ステップＳ４１４ａの対象となる。作業区間４０４ｂ−２の前後には補完区間が隣接していない。然るに作業区間４０４ｂ−２の開始フレームの位置を映像の先頭側に規定フレーム数移動させたフレーム位置から、該作業区間の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置までの区間４０５ｂが動作認識区間として求まる。この区間４０５ｂが、作業区間４０４ｂ−２に対する動作認識区間となる。つまり、作業区間４０４ｂ−２の区間長を拡大した作業区間を、作業区間４０４ｂ−２に対する動作認識区間としている。
【００８３】
次に、作業区間４０４ｂ−３のラベル値はＣであるから、ステップＳ３０６ｂの対象外となる。
【００８４】
次に、作業区間４０４ｂ−４のラベル値はＷ２であるからステップＳ３０６ｂの対象となり、先ず連続作業リストには、作業区間４０４ｂ−４の情報が登録される。そして作業区間４０４ｂ−４には「ラベル値Ｗ２の作業区間」として作業区間４０４ｂ−５，６，８が後続し、作業区間４０４ｂ−９以降はＷ２以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間４０４ｂ−４の情報、末尾には作業区間４０４ｂ−８の情報、が登録されており、このような連続作業リストがステップＳ４０７ａ〜ステップＳ４１４ａの対象となる。作業区間４０４ｂ−４の映像先頭側には補完区間が隣接していない。然るにステップＳ４１０ａでは、作業区間４０４ｂ−４の開始フレームの位置を映像の先頭側に規定フレーム数移動させたフレーム位置を区間４０６ｂの先頭フレーム位置（端部）とする。また、作業区間４０４ｂ−８の映像後端側には補完区間が隣接していない。然るにステップＳ４１４ａでは、作業区間４０４ｂ−８の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間４０６ｂの終端フレームの位置（端部）とする。この区間４０６ｂが、作業区間４０４ｂ−４〜８に対する動作認識区間となる。つまり、作業区間４０４ｂ−４〜８の区間長を拡大した作業区間を、作業区間４０４ｂ−４〜８に対する動作認識区間としている。
【００８５】
次に、作業区間４０４ｂ−９，１０のラベル値はＣであるから、ステップＳ３０６ｂの対象外となる。
【００８６】
次に、作業区間４０４ｂ−１１のラベル値はＷ３であるからステップＳ３０６ｂの対象となり、先ず連続作業リストには、作業区間４０４ｂ−１１の情報が登録される。そして作業区間４０４ｂ−１１には「ラベル値Ｗ３の作業区間」として作業区間４０４ｂ−１２が後続し、作業区間４０４ｂ−１３以降はＷ３以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間４０４ｂ−１１の情報、末尾には作業区間４０４ｂ−１２の情報、が登録されており、このような連続作業リストがステップＳ４０７ａ〜ステップＳ４１４ａの対象となる。作業区間４０４ｂ−１１の映像先頭側には補完区間（作業区間４０４ｂ−１０）が隣接している。然るにステップＳ４０９ａでは、この補完区間（作業区間４０４ｂ−１０）の開始フレームの位置（端部）を区間４０７ｂの先頭フレーム位置（端部）とする。また、作業区間４０４ｂ−１２の映像後端側には補完区間が隣接していない。然るにステップＳ４１４ａでは、作業区間４０４ｂ−１２の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間４０７ｂの終端フレームの位置とする。この区間４０７ｂが、作業区間４０４ｂ−１１〜１２に対する動作認識区間となる。つまり、作業区間４０４ｂ−１１〜１２の区間長を拡大した作業区間を、作業区間４０４ｂ−１１〜１２に対する動作認識区間としている。
【００８７】
次に、作業区間４０４ｂ−１３〜１４のラベル値はＣであるから、ステップＳ３０６ｂの対象外となる。
【００８８】
次に、作業区間４０４ｂ−１５のラベル値はＷ４であるからステップＳ３０６ｂの対象となり、先ず連続作業リストには、作業区間４０４ｂ−１５の情報が登録される。そして作業区間４０４ｂ−１５には「ラベル値Ｗ４の作業区間」として作業区間４０４ｂ−１６，１８が後続し、作業区間４０４ｂ−１９以降はＷ４以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間４０４ｂ−１５の情報、末尾には作業区間４０４ｂ−１８の情報、が登録されており、このような連続作業リストがステップＳ４０７ａ〜ステップＳ４１４ａの対象となる。作業区間４０４ｂ−１５の映像先頭側には補完区間（作業区間４０４ｂ−１４）が隣接している。然るにステップＳ４０９ａでは、この補完区間（作業区間４０４ｂ−１４）の開始フレームの位置（端部）を区間４０８ｂの先頭フレーム位置（端部）とする。また、作業区間４０４ｂ−１８の映像後端側には補完区間が隣接していない。然るにステップＳ４１４ａでは、作業区間４０４ｂ−１８の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間４０８ｂの終端フレームの位置とする。この区間４０８ｂが、作業区間４０４ｂ−１４〜１８に対する動作認識区間となる。つまり、作業区間４０４ｂ−１４〜１８の区間長を拡大した作業区間を、作業区間４０４ｂ−１４〜１８に対する動作認識区間としている。
【００８９】
次に、作業区間４０４ｂ−１９のラベル値はＣであるから、ステップＳ３０６ｂの対象外となる。
【００９０】
このように、映像に対して決定した作業区間に基づき、該映像における動作認識区間を設定する。なお、図４（ｂ）において、作業区間４０４ｂ−１２は補完区間であるから、区間４０７ｂの終端フレームの位置を作業区間４０４ｂ−１１の終端フレームの位置としても良い。このとき、区間４０７ｂの終端は作業区間４０４ｂ−１１と同じになる。これによって、補完区間が作業区間の端に含まれるときに、動作認識区間が広く設定されすぎることを防ぐことができる。
【００９１】
図３に戻って、次に、ステップＳ３０７ｂでは、管理部３０５ａは、外部記憶装置１０４に保存されている定義動作列及び動作領域情報をＲＡＭ１０３に読み出す。動作領域情報とは、動作領域を規定する情報であり、図２（ａ）の例では、点線で示した領域を規定する情報に該当する。また、定義動作列とは、組立作業を構成する作業ごとに、該作業を構成する各動作に対応する動作領域のラベルが動作順に登録されている情報であり、図２（ａ）の例では、手を進入させる各動作領域のラベルが動作順に登録されている情報である。つまり、定義動作列とは、作業を構成する各動作のシーケンスを規定する情報である。なお、動作領域は、１次元領域、２次元領域、３次元領域、の何れであっても良いし、その形状も、矩形、球形等、の何れの形状であっても良い。
【００９２】
ステップＳ３０８ｂでは、検知部３０６ａ及び検知部３０７ａによって、ステップＳ３０６ｂにおいて決定部３０３ａが決定した動作認識区間に対して動作認識を行う。ステップＳ３０８ｂにおける処理の一例について説明する。
【００９３】
検知部３０６ａは、動作認識区間に含まれる各フレームの画像に対して、該画像内における手の領域（手領域）を検出する。手領域は２次元領域であっても良いし、３次元領域であっても良い。手領域の検出方法としては、例えば、可視光画像と距離画像の双方を用いて、対象となる画像と背景画像との差分画像から動体（人体）を抽出し、該抽出された人体から頭部や動体、腕などを除き、手領域を検知する方法がある。また例えば、皮膚の色を有する領域を手領域として画像から抽出しても良い。また例えば、規定の色味の手袋を装着して作業することを前提として、その手袋の色を有する領域を手領域として画像から抽出しても良い。また例えば、機械学習などを利用して画像から手領域を検知してもよい。このように、画像から手領域を検出する方法には様々な方法があり、特定の方法に限らない。
【００９４】
そして検知部３０７ａは、検知部３０６ａが検知した手領域が、動作領域情報が規定する何れかの動作領域に属しているのか、何れの動作領域にも属していないのか、を判断する。例えば検知部３０７ａは、手領域（一部若しくは全部）が着目動作領域と重なっている場合には、手領域が該着目動作領域に属しているものと判断する。一方、検知部３０７ａは、手領域（一部若しくは全部）が着目動作領域と重なっていない場合には、手領域が該着目動作領域に属していないものと判断する。なお、検知部３０７ａは、手領域（一部若しくは全部）が着目動作領域と重なっている状態が規定時間以上経過した場合に限って、手領域が該着目動作領域に属しているものと判断するようにしても良い。このように、検知部３０６ａが検知した手領域が、動作領域情報が規定する何れかの動作領域に属しているのか、何れの動作領域にも属していないのか、を判断するための方法には様々な方法があり、特定の方法に限らない。そして検知部３０７ａは、手領域が着目動作領域に属していると判断した場合には、該着目動作領域に対応するラベルを検知動作列に登録する。検知動作列には、手領域が属したと判断された動作領域順に、該動作領域に対応するラベルが登録されている。
【００９５】
このようにして、検知部３０６ａ及び検知部３０７ａによって、動作認識区間内で手領域が属したものと判断された各動作領域のラベルが該判断の順番で登録された検知動作列を生成する。
【００９６】
ステップＳ３０９ｂでは、マッチング部３０８ａは、検知動作列と定義動作列とを用いてＤＰマッチング（シーケンスマッチング）を行うことで、検知動作列が表す各動作の順序と定義動作列が表す各動作の順序との対応関係を求める。
【００９７】
シーケンスマッチングとは、順序比較して、２つの時系列データが完全一致していなくても動作列を構成するラベルの発生順序が概略似ていれば２つの動作列は同一であるとみなす、あいまいなマッチング手法のことである。シーケンスマッチングを導入する理由は、動作から次の動作に移る間など、動作以外にも手が動作領域に入ることがあり、正しく組立作業を行っていても検知動作列は定義動作列と完全一致することはないからである。本実施形態においては、ＤＰマッチングと呼ばれるシーケンスマッチングを使うものとする。ＤＰマッチングは、２つのデータ列（定義動作列、検知動作列）の類似度を測定する手法であり、マッチングのコストが最も小さくなるように定義動作列のラベルに、検知動作列のラベルを紐づけていく。その過程でＤＰマッチングはノイズをノイズとみなして処理をするため、シーケンスマッチングとして用いることができる。具体的な事例を交えたマッチング方法の概略は図６（ａ）に記しており、定義動作列として１，２，３，４、検知動作列として１，２，４，３，４を用いる。検知動作列における最初の４はノイズである。同図において、左下から右上に向かってラベルの紐付けを行うものとして、各セルには左下から、該当のセルを共有する定義動作列、検知動作列の各時系列のラベルを紐づけるまでの最低コストを記す。また、各セルの最低コストの算出には、最低コストを算出済みの下、左下、左の３つのセルから算出し、これを繰り返すという簡易な演算で左下から右上までを紐づけていく上での最低コストを導出する。また、３つのセルのうち、いずれのセルを採用したかを記録しておくので、最終的な右上の最低コストの導出では、どのような経路を通ったかを導くことはできる。詳細な計算は周知のため省略するが、図６（ａ）のＤＰマッチングをした結果は図６（ｂ）となり、太線経路が最低コストを実現した経路となる。紐付けの結果を具体的に示した図は図６（ｃ）となり、ノイズの“４”は定義動作列の“４”ではなく、“２”に付随したノイズとして紐づけられている。コストの設計方法等、ＤＰマッチングの詳細については公知資料を参考にされたい。前述のとおりＤＰマッチングは簡易で実現できる点に着目し、本実施形態ではシーケンスマッチングとしてＤＰマッチングを利用する。
【００９８】
次に、ステップＳ３１０ｂでは、認識部３０２ａは、ステップＳ３０９ｂにおける処理結果に基づいて、選択作業区間の修正を行う。ステップＳ３１０ｂにおける処理の詳細について、図５（ａ）のフローチャートに従って説明する。
【００９９】
ステップＳ５０１ａでは、認識部３０２ａは、ステップＳ３０９ｂにおける動作認識結果において、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性を評価する。ステップＳ５０１ａにおける処理の詳細について、図５（ｂ）のフローチャートに従って説明する。
【０１００】
ステップＳ５０１ｂでは、認識部３０２ａは、動作認識区間の始端付近（端部）で手領域の検知が失敗しているか否か、動作認識区間の終端付近（端部）で手領域の検知が失敗しているか否か、を判定する。上記の通り、ステップＳ３０８ｂでは、動作認識区間の映像に対して検知部３０６ａにより手領域の検知が実施されるが、このとき手領域が頭部などにより隠れていると、手領域の検知に失敗することがある。そのため、手領域検知はフレームごとに成否が分かる。そこで、動作認識区間の始端から予め定めた範囲内のフレーム群について手領域検知が失敗している場合は、始端側での手領域検知が失敗していると判断する。あるいは、動作認識区間の始端から予め定めた範囲内のフレーム群において規定のフレーム数若しくは規定の割合以上のフレーム数のフレームについて手領域検知が失敗している場合には、始端側での手領域検知が失敗していると判断してもよい。同様に、動作認識区間の終端から予め定めた範囲内のフレーム群について手領域検知が失敗している場合は、終端側での手領域検知が失敗していると判断する。あるいは、動作認識区間の終端から予め定めた範囲内のフレーム群において規定のフレーム数若しくは規定の割合以上のフレーム数のフレームについて手領域検知が失敗している場合には、終端側での手領域検知が失敗していると判断してもよい。
【０１０１】
なお、動作認識区間の始端付近で手領域の検知が失敗しているか否か、動作認識区間の終端付近で手領域の検知が失敗しているか否か、を判定するための方法には様々な方法があり、特定の方法に限らない。
【０１０２】
そして、「動作認識区間の始端付近及び終端付近のうち少なくとも一方について手領域の検知が失敗している」という条件が満たされた場合には、処理はステップＳ５０５ｂに進み、この条件が満たされていない場合には、処理はステップＳ５０２ｂに進む。
【０１０３】
ステップＳ５０２ｂでは、認識部３０２ａは、作業の最初（端部）あるいは最後（端部）の動作認識に失敗しているか否かを判断する。上記の如く、ステップＳ３０９ｂでは、定義動作列と検知動作列の対応関係が作成されるが、この定義動作列の先頭の動作および最後の動作に対して、検知動作列との対応がなかった場合、失敗と判断する。あるいは、最初と最後の動作に複数の動作が対応している場合も、信頼性が落ちるため、失敗と判断するようにしてもよい。あるいは、最初と最後の動作に対応があったとしても、途中の動作への対応がない場合は、全体としての信頼性が落ち、最初と最後の対応の信頼性も落ちるため、失敗と判断するようにしてもよい。作業の最初あるいは最後の動作認識に失敗しているか否かを判断するための方法には様々な方法があり、特定の方法に限らない。
【０１０４】
作業の最初あるいは最後の動作認識に失敗しているという条件が満たされた場合には、処理はステップＳ５０５ｂに進み、この条件が満たされなかった場合には、処理はステップＳ５０３ｂに進む。
【０１０５】
ステップＳ５０３ｂでは、認識部３０２ａは、動作認識区間において認識した作業の最初（端部）あるいは最後（端部）の動作の動作領域の近傍に、他の動作領域が存在するか否かを判断する。動作領域同士が近傍にあると、動作を実施している本来の動作領域での重なりと同時に、近傍の動作領域と重なりが発生することがある。そのため、誤検知を発生しやすくなるためそのような動作領域の分布は信頼性を下げることになる。そこで、最初及び最後の動作に対応する動作領域を得て、動作領域ごとに予め定めた距離の範囲に他の動作領域があるか否かを求める。各動作領域の実空間における位置や範囲は動作領域情報にて規定されているので、該動作領域情報にて規定されている各動作領域の位置を用いることで、動作領域間の距離を求めることができる。
【０１０６】
作業の最初あるいは最後の動作の動作領域の近傍に他の動作領域が存在するという条件が満たされた場合には、処理はステップＳ５０５ｂに進み、この条件が満たされていない場合には、処理はステップＳ５０４ｂに進む。
【０１０７】
ステップＳ５０４ｂでは、認識部３０２ａは、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性は高い（「高」）と評価する。一方、ステップＳ５０５ｂでは、認識部３０２ａは、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性は低い（「低」）と評価する。
【０１０８】
なお、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性の判定方法は、上記の判定方法に限らない。例えば、上記のステップＳ７０２で得られるスコアも用いて判断するようにしてもよい。具体的には、動作認識区間の始端や終端のフレームのスコアが高いとき、ステップＳ３０２ｂで得られた作業区間は正しい可能性が高いと判断できるため、相対的に動作認識の信頼性を低いと判断させるようにしてもよい。また、図５（ｂ）に示した全ての条件（ステップＳ５０１ｂ〜Ｓ５０４ｂ）は必須ではなく、１つ以上を削除しても良いし、１つ以上を他の条件に変えても良い。
【０１０９】
次に、ステップＳ５０２ａでは、認識部３０２ａは、ステップＳ５０１ａにおいて評価した信頼性が「高」であるのか、それとも「低」であるのか、を判断する。この判断の結果、ステップＳ５０１ａにおいて評価した信頼性が「高」であれば、処理はステップＳ５０３ａに進み、「低」であれば、処理はステップＳ３１１ｂに進む。
【０１１０】
ステップＳ５０３ａでは、認識部３０２ａは、選択作業区間を動作認識結果に基づいて補正する。例えば、認識部３０２ａは、定義動作列における最初の動作（ラベル）に対してステップＳ３０９ｂにて紐付けた検知動作列における動作（ラベル）を特定し、動作認識区間において該特定したラベルを最初に検出したフレームの位置Ｓを特定する。同様に認識部３０２ａは、定義動作列における最後の動作（ラベル）に対してステップＳ３０９ｂにて紐付けた検知動作列における動作（ラベル）を特定し、動作認識区間において該特定したラベルを最後に検出したフレームの位置Ｅを特定する。そして認識部３０２ａは、選択作業区間の開始フレームの位置として登録されている位置を位置Ｓに更新すると共に、選択作業区間の終端フレームの位置として登録されている位置を位置Ｅに更新することで、選択作業区間を補正する。
【０１１１】
なお、上記の説明では、動作認識区間の最初と最後の双方が信頼できると判断できるときに選択作業区間を修正していたが、片方のみが信頼できるか否かを判定し、信頼できる方だけを修正してもよい。つまり、最初のみが信頼できると判断できるときは、選択作業区間の始端側のみを修正し、終端側は修正しないようにする。逆に、最後のみが信頼できると判断できるときは、選択作業区間の終端側のみを修正し、始端側は修正しないようにする。これによって、片方が信頼できるときは区間修正を実施するようになり、作業区間の精度向上が期待できる。
【０１１２】
ステップＳ３１１ｂでは、認識部３０２ａは、全ての作業区間を選択作業区間として選択したか否かを判断する。この判断の結果、全ての作業区間を選択作業区間として選択した場合には、処理はステップＳ３１２ｂに進み、未だ選択作業区間として選択していない作業区間が残っている場合には、処理はステップＳ３０４ｂに戻る。
【０１１３】
ステップＳ３１２ｂでは、保存部３０９ａは、上記の処理によって決定した各作業区間の情報を外部記憶装置１０４に保存する。例えば保存部３０９ａは、各作業区間について、開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
【０１１４】
なお、図３（ｂ）のフローチャートに従った処理の後、保存部３０９ａによって外部記憶装置１０４に保存された情報の取り扱いについては特定の取り扱いに限らない。例えば、出力部３１０ａは、上記のステップＳ３０１ｂでＲＡＭ１０３に格納した映像や、ステップＳ３１１ｂで外部記憶装置１０４に保存した各種の情報、に基づく情報を外部の装置に送信しても良いし、モニタ１１０に表示するようにしても良い。例えば出力部３１０ａは、作業漏れがあった作業に対応する映像をモニタ１１０に表示するようにしても良い。作業漏れは、映像の先頭フレームから順に対応するラベル値を外部記憶装置１０４から読み出したときに、該読み出したラベル値に対応する動作が、１サイクル分の作業を構成する各動作の動作順に並んでいないとき、作業漏れとして判断する。そして、出力部３１０ａは、作業漏れがあった映像の一覧をモニタ１１０に表示する。あるいは出力部３１０ａは、作業漏れがあった付近の映像を順にモニタ１１０に表示するようにしてもよい。また、出力部３１０ａは、作業時間が長い作業に対応する映像をモニタ１１０に出力するようにしても良い。作業時間が長い作業とは、例えば、作業漏れのない同一種類の作業の作業時間（該作業の映像のフレーム数に対応する時間）の平均作業時間との差が規定時間以上となる作業である。
【０１１５】
このように、本実施形態によれば、作業を構成する動作の認識結果に応じて作業区間が修正されるため、作業区間の精度が向上する。加えて、動作認識区間における最初および最後の動作認識の信頼性が低いときは、作業区間を修正しないことにより、修正によって作業区間の精度が悪化することを防ぐことができる。
【０１１６】
［第２の実施形態］
第１の実施形態では、作業分析装置１００は、単一のコンピュータ装置であるものとして説明した。しかし、作業分析装置１００は複数のコンピュータ装置で構成しても良く、その場合、作業分析装置１００が行うものとして上述した各処理を複数のコンピュータ装置に分担させて実行させることで、同様の処理結果を得るようにしても良い。作業分析装置１００を複数のコンピュータ装置で構成する場合には、複数のコンピュータ装置は、互いに通信可能なようにＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）などで接続されている。また、第１の実施形態では、カメラ１１２の数を１としているが、２以上であっても良い。この場合、作業分析装置１００は、それぞれのカメラ１１２による映像に対して同様の処理を行うことができる。
【０１１７】
また、第１の実施形態において、動作も区間として認識されるように構成したときは、動作区間はフレーム位置の範囲により定めされる。また、保存部３０９ａは、フレーム位置に代えて若しくは加えて、該フレーム位置に対応する時刻（例えば映像における各フレームの撮像時刻）を外部記憶装置１０４に保存するようにしても良い。
【０１１８】
また、第１の実施形態において、動作認識区間の決定（Ｓ３０６ｂ）では作業区間に補完区間が隣接するとき、補完区間と作業区間を連結した区間を動作認識区間としていた。しかし、補完区間に限らず、Ｓ３０２ｂでの作業認識の信頼性が低い区間を用いてもよい。
【０１１９】
第一に、作業認識により得る区間の信頼性は「区間長」の観点により決められる。具体的には、予め定めた作業種別ごとの最低の作業長に基づいて、その作業長を満たさない場合は、信頼性が低い区間とすることが考えられる。補完区間もこの一種であり、作業種別に関わらず定められた最低の区間長に基づいて、信頼性が低いと判断した場合である。
【０１２０】
第二に、作業認識により得る区間の信頼性は「作業種別の並び」の観点により決められる。工場などの組立作業は予め定められた順序で作業を行う。作業の発生順序として不自然なケースは信頼性が低いと判断できる。具体的には、Ｓ８０７に到達するケースは、順番に従わずに前の作業に戻って作業をしている不自然なケースになる。加えて、Ｓ８１１に到達するケースも、順番に従わずにいくつか先の作業をしている不自然なケースになる。このように予め定められた作業順序に整合しない場合は、信頼性が低い区間とすることが考えられる。
【０１２１】
第三に、作業認識により得る区間の信頼性は「複数の作業認識の結果の一貫性」の観点により決められる。具体的には、複数の作業認識を用意しておき、各作業認識から得た同じラベル作業区間が７割以上重複する区間のみを作業区間として、それ以外を信頼性の低い区間とすることが考えられる。複数の作業認識は、Ｓ７０２において利用する機械学習のモデルとしていくつかのものを用意することなどで得ることができる。
【０１２２】
なお、作業認識の信頼性が低い区間を決定する方法はこれらに限定されるものではない。以上のようにして得た信頼性の低い区間を用いて、動作認識区間の決定（Ｓ３０６ｂ）では作業区間に信頼性の低い区間が隣接するとき、信頼性の低い区間と作業区間を連結した区間を動作認識区間としてもよい。
【０１２３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２４】
３０１ａ：保存部  ３０２ａ：認識部  ３０３ａ：決定部  ３０５ａ：管理部  ３０６ａ：検知部  ３０７ａ：検知部  ３０８ａ：マッチング部  ３０９ａ：保存部  ３１０ａ：出力部
【図１】
2019193019.tif 000003
【図２】
2019193019.tif 000004
【図３】
2019193019.tif 000005
【図４】
2019193019.tif 000006
【図５】
2019193019.tif 000007
【図６】
2019193019.tif 000008
【図７】
2019193019.tif 000009
【図８】
2019193019.tif 000010
【図９】
2019193019.tif 000011
【図１０】
2019193019.tif 000012