JP2019193019A - 作業分析装置、作業分析方法 - Google Patents
作業分析装置、作業分析方法 Download PDFInfo
- Publication number
- JP2019193019A JP2019193019A JP2018081735A JP2018081735A JP2019193019A JP 2019193019 A JP2019193019 A JP 2019193019A JP 2018081735 A JP2018081735 A JP 2018081735A JP 2018081735 A JP2018081735 A JP 2018081735A JP 2019193019 A JP2019193019 A JP 2019193019A
- Authority
- JP
- Japan
- Prior art keywords
- work
- section
- recognition
- frame
- label value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- General Factory Administration (AREA)
Abstract
【課題】 誤った作業区間の認識を抑制するための技術を提供すること。【解決手段】 作業者が複数種の作業を順次行っているシーンの映像を取得する。映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する。作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、映像における認識区間を作業区間に基づいて特定する。該特定した認識区間に対して行った動作の認識結果に応じて作業区間を補正する。【選択図】 図3
Description
本発明は、作業者が行う作業の分析技術に関するものである。
工場の組立作業が正しく行われているかを分析する手法として、組立作業のシーンを撮影した映像中の作業員の動きを解析し、作業標準書の記載内容に照らし合わせる手法が知られている。例えば、映像中の組立作業の発生する箇所に矩形を設定して、その矩形に手が入ったかどうかで組立作業を実施したかを判定する手法がある(特許文献1)。また、映像中の動作と動作区間の認識の手法として、フレームごとに各動作のスコアを算出して動作の種類およびその区間の推定を行う手法がある(非特許文献1)。
宮澤 一之,Zheng Shou,Jonathan Chan,Alireza Zareian,Shih−Fu Chang、「映像への密なラベリングを実現する畳み込み−逆畳み込み層を用いた行動認識」、画像の認識・理解シンポジウム(MIRU2017)
作業標準書には組立作業において行われる作業の順番が記載されていることもあり、作業者によって行われた組立作業の良否を判断するためには、作業の順番をも加味しなければならないことが多い。そのような作業の順番を加味した作業分析は、特許文献1のような、個別作業の発生の有無に注目しているだけでは実現できず、それらの発生の順序を分析する必要がある。そのような手法として、DPマッチングに代表されるような、シーケンスの並びのあいまいさを許容するシーケンスマッチングが知られている。しかし、「通常とは異なる腕の動きに起因した手の矩形への進入」など、注目すべきでない手の矩形への進入が多発するとシーケンスマッチングがうまく機能せず、その結果として分析に失敗することもあった。一方、非特許文献1に記載の技術を用いることで、映像中の作業と作業区間を認識できる。しかし、非特許文献1に記載の技術では、作業を構成する細かな動作の実施有無を認識しておらず、作業区間の認識に失敗することがあった。本発明では、誤った作業区間の認識を抑制するための技術を提供する。
本発明の一様態は、作業者が複数種の作業を順次行っているシーンの映像を取得する取得手段と、前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第1の特定手段と、前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第2の特定手段と、前記第2の特定手段が特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正手段とを備えることを特徴とする。
本発明の構成によれば、誤った作業区間の認識を抑制することができる。
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施形態の1つである。
[第1の実施形態]
本実施形態では、作業者が複数種類の作業を順次行っているシーンの映像から、該作業者が各作業や各作業を構成する各動作を正しい順で行っているのかを分析(作業分析)するための構成について説明する。以下の説明は、この構成の一例について説明するものであって、同様の効果を達することができるのであれば、この構成を適宜変更/変形しても構わない。
本実施形態では、作業者が複数種類の作業を順次行っているシーンの映像から、該作業者が各作業や各作業を構成する各動作を正しい順で行っているのかを分析(作業分析)するための構成について説明する。以下の説明は、この構成の一例について説明するものであって、同様の効果を達することができるのであれば、この構成を適宜変更/変形しても構わない。
先ず、本実施形態に係る作業分析システムの構成例について、図1のブロック図を用いて説明する。図1に示す如く、本実施形態に係る作業分析システムは、作業分析装置100とカメラ112とを有し、作業分析装置100及びカメラ112はネットワーク回線111に接続されており、互いにデータ通信が可能なように構成されている。また、作業分析装置100には、入力デバイス109及びモニタ110が接続されている。
先ず、作業分析装置100及び該作業分析装置100に接続されている入力デバイス109及びモニタ110について説明する。作業分析装置100は、カメラ112による映像から上記の作業分析を行ってその結果を出力する装置である。作業分析装置100には、PC(パーソナルコンピュータ)、WS(ワークステーション)、タブレット型端末装置等のコンピュータ装置を適用することができる。
CPU101は、RAM103に格納されているコンピュータプログラムやデータを用いて処理を実行することで、作業分析装置100全体の動作制御を行うと共に、作業分析装置100が行うものとして後述する各処理を実行若しくは制御する。
ROM102には、作業分析装置100の設定データや起動プログラムなどが格納されている。RAM103は、外部記憶装置104からロードされたコンピュータプログラムやデータ、インターフェース107を介してカメラ112から受信した画像を格納するためのエリア、を有する。更にRAM103は、CPU101が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM103は、各種のエリアを適宜提供することができる。
外部記憶装置104は、ハードディスクドライブ装置などの大容量情報記憶装置である。外部記憶装置104には、OS(オペレーティングシステム)や、作業分析装置100が行うものとして後述する各処理をCPU101に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置104に保存されているデータには、以下の説明において既知の情報として取り扱う情報が含まれている。外部記憶装置104に保存されているコンピュータプログラムやデータは、CPU101による制御に従って適宜RAM103にロードされ、CPU101による処理対象となる。
なお、外部記憶装置104は、作業分析装置100から着脱可能なフレキシブルディスク(FD)やCompact Disk(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含んでもよい。
上記のCPU101、ROM102、RAM103、外部記憶装置104は何れもシステムバス108に接続されている。また、システムバス108には、インターフェース105,106,107が接続されている。
インターフェース105は、入力デバイス109を作業分析装置100に接続するためのインターフェースとして機能するものである。入力デバイス109は、キーボードやマウス等のユーザインターフェースである。ユーザが入力デバイス109を操作することで入力した各種の指示は、インターフェース105及びシステムバス108を介してCPU101に通知される。
インターフェース106は、モニタ110を作業分析装置100に接続するためのインターフェースとして機能するものである。モニタ110は、液晶画面やタッチパネル画面などの表示画面を有し、CPU101による処理結果を画像や文字などでもって表示する。
インターフェース107は、作業分析装置100をネットワーク回線111に接続するためのインターフェースであり、ネットワーク回線111を介してカメラ112から順次送出される画像はインターフェース107を介してRAM103や外部記憶装置104に格納される。
次に、カメラ112について説明する。カメラ112は、図2(a)に示す如く、作業者28が組立作業を行っているシーンの映像を撮像し、該映像の各フレームの画像を順次、ネットワーク回線111を介して作業分析装置100に対して送信する。ここで、カメラ112は、可視光画像と距離画像とを撮像するカメラであるから、カメラ112は、各フレームが可視光画像である映像(可視光映像)と、各フレームが距離画像である映像(距離映像)と、を作業分析装置100に対して送信することになる。
可視光画像とは、可視光を撮像することで得られる画像であり、赤外光を撮像した赤外光画像であっても良いし、各画素の画素値が輝度成分を有する輝度画像であっても良い。距離画像とは、各画素の画素値が該画素に対応する現実空間の位置までの距離を表す画像である。なお、カメラ112は、可視光画像及び距離画像の両方を撮像するカメラで構成しても良いし、可視光画像を撮像するカメラと、距離画像を撮像するカメラと、で構成しても良い。また、カメラ112は距離画像は撮像せずに可視光画像を撮像するカメラであっても良く、その場合は、可視光画像から各画素に対応する距離を算出する。
本実施形態では、このような作業分析システムを用いて、工場にて作業者が行う組み立て作業のシーンの映像から該作業を分析し、該作業者が組立作業標準書に従って作業を行ったかどうかを判定すると共に、作業時間が長くかかっているかどうかを判定する。本実施形態で想定している組立作業を行う作業場について図2(a)を用いて説明する。図2(a)は、この作業場の俯瞰図である。図2(a)において点線で示す矩形は作業者28の動作を判定するために設けられた領域(動作領域)を表しており、各動作領域に付している下線付きの数字は、判定順(該動作領域に対するラベル)を表している。以下では、下線付きの数字Xが記されている動作領域を動作領域Xと称する場合がある。
図2(a)では、作業者28が作業台21の前に立って作業を行っている。作業台21には、ワークベンチ22が載置されており、該ワークベンチ22には、組立対象物23が載置されている。また、作業台21には、複数枚のシールを収納しているシールケース24、複数個のビスを収納しているビスケース25が載置されている。また、作業台21には、ゴミ箱26、ドライバ受け27が設けられている。
この作業場は、組立対象物23をワークベンチ22に置き、組立対象物23の組み立てを行う作業場であり、作業者28はこの作業場にて組立作業標準書に従って組立作業を行う。組立対象物23には例えば、複写機の内部に組み込む現像器や定着器などがあるが、これに限定されるものではない。この作業場における組立作業の例を図2(b)を用いて説明する。
図2(b)では、組立作業は2つの作業から構成されており、シールの貼付(作業0)とビス締め(作業1)とをこの順で連続して行うことで1回分の組み立て作業(1サイクル)が完了する。ここで、作業0,作業1のそれぞれの作業は複数の動作から構成され、また各動作の順序も規定されている。
作業0は、シールケース24(動作領域0)からシールを取るシール取得(動作0)、シール右端の組立対象物23(動作領域1)への貼付(動作1)、シール左端の組立対象物23(動作領域2)への貼付(動作2)、シールの裏紙をゴミ箱26(動作領域3)に捨てるシール裏紙破棄(動作3)により構成されている。動作0,動作1,動作2,動作3をこの順で行うことで作業0が完了する。
作業0の後、作業1の予備動作として、組立対象物23を裏返す動作(対象物裏返し)がある。そして予備動作の後、作業1が開始される。
作業1は、ドライバ取得(動作0),ビス取得(動作1),ビス締め(動作2),ドライバ戻し(動作3)をこの順で行うことで完了する。作業1の動作0では、作業者28は、ドライバ受け27(動作領域4)から右手でドライバを取る。作業1の動作1では、作業者28は、ビスケース25(動作領域5)から左手でビスを取る。作業1の動作2では、作業者28は、ドライバを用いて組立対象物23の中央(動作領域6)に示す黒丸部分にビスを締める。作業1の動作3では、作業者28は、ドライバをドライバ受け27(動作領域4)に戻す。
上記の各作業及び各動作の内容及び順番は組立作業標準書に記載されており、作業者28はこの作業標準書に従って組立作業を進めなければならない。本実施形態では、作業者28が組立作業を行っている様子をカメラ112により撮像し、該撮像した映像から、該作業者28が組立作業標準書に記載の各作業及び各動作を正しい内容で正しい順序で行っているのかを分析する。なお、組立対象物、組立作業標準書が規定する内容は上記の例に限らない。
次に、作業分析装置100の機能構成例を、図3(a)のブロック図に示す。以下では、図3(a)の機能部を処理の主体として説明する場合があるが、実際には、該機能部の機能をCPU101に実行させるためのコンピュータプログラムを該CPU101が実行することで、該機能部の機能が実現される。なお、図3(a)の各機能部をソフトウェア(コンピュータプログラム)で実装することに限らず、ハードウェアで実装しても良い。図3(a)の各機能部の動作により達成される、作業者28の組立作業の分析処理について、同処理のフローチャートを示す図3(b)を用いて説明する。
ステップS301bでは、保存部301aは、カメラ112から順次出力される各フレームの画像をインターフェース107を介して受信し、該受信した画像をRAM103に格納する。そして保存部301aは、RAM103に格納したそれぞれの画像に対して各種の画像処理を行い、全ての画像について画像処理を行うと、該全ての画像を1つのファイルとして外部記憶装置104に保存する。つまり保存部301aは、カメラ112により撮像された映像の各フレームについて画像処理を行ってから、該映像を1つのファイルとして外部記憶装置104に保存する。本実施形態では、カメラ112からは、可視光映像と距離映像とが出力される。然るに保存部301aは、それぞれの映像を(画像処理を施してから)別個のファイルとして保存しても良いし、それぞれの映像を(画像処理を施してから)1つのファイルとして保存しても良い。つまり、映像の保存形態については特定の保存形態に限らない。
ステップS302bでは、認識部302aは、映像(以下、単に「映像」と称した場合は可視光映像、距離映像の何れであっても良い)を構成する各フレームの撮像画像に対して作業の種別を認識する作業認識を行う。これにより認識部302aは、映像において連続して同じ種別の作業が認識されたフレームの区間を作業区間として特定(認識)する。ステップS302bにおける処理の詳細について、図7のフローチャートを用いて説明する。
ステップS701では、認識部302aは、映像から未選択の1フレームを選択フレームとして選択する。ステップS701では、映像の先頭フレーム(時間的に最も古いフレーム)から順に1フレームずつ選択する。
ステップS702では、認識部302aは、選択フレームの画像内で行われている作業が、組立作業を構成する各作業の何れであるのかを認識するべく、組立作業を構成する各作業に対する確からしさ(スコア)を求める。例えば、組立作業を構成する作業における動作の特徴と、該作業に対応するラベル値と、の対応関係を学習した学習モデルを予め作成しておく。そして、このような学習モデルを用いて、選択フレームの画像で行われている作業について、組立作業を構成する各作業に対するスコアを求める。なお、ステップS702における処理は、非特許文献1などに記載の機械学習の方法により実現可能である。なお、スコア算出方法は学習モデルを利用した方法に限らず、例えば各作業の代表的な動きの画像を用意しておき、該画像と選択フレームの画像との類似度をスコアとしても良いし、各作業時に必ず触れるエリアを設定しておき、そこを作業者28の手が触ったかどうか、どの程度触ったかに応じてスコアを算出する、といった方法が考えられる。領域に対する手の検出については後述する構成により実現可能である。
ここで、本実施形態では、ラベル値は作業順を表すものとする。図2(a)の例では、作業0のラベル値は「1」、作業1のラベル値は「2」となる。なお、ラベル値の定義はこれに限らない。
ステップS703では、認識部302aは、ステップS702で求めたスコアのうち最大のスコアに対応する作業を、選択フレームの画像内で行われている作業として認識し、該最大のスコアに対応する作業のラベル値を該選択フレームに関連づける。
なお、認識部302aは、選択フレームの画像内で行われている作業が組立作業を構成する何れの作業でもないと判断した場合には、「非作業」と認識し、対応するラベル値を選択フレームの画像に関連づける。例えば、ステップS702で求めた全てのスコアが第1の閾値以下であれば、選択フレームの画像内で行われている作業は組立作業を構成する作業の何れでもないと判断する。なお、上記の学習モデルに組立作業を構成する作業以外の他作業の特徴と対応するラベル値との対応関係を学習させておいても良い。このとき、このような該学習モデルを用いて求めた最大のスコアが他作業に対応するスコアである場合、「非作業」と認識するようにしても良い。このように、選択フレームの画像に対して「非作業」と認識するための構成については様々な構成が考えられ、特定の構成に限らない。
また認識部302aは、選択フレームの画像内で行われている作業が判定できなかった場合には、「判定不能」と認識し、対応するラベル値を選択フレームの画像に関連づける。例えば、ステップS702で求めた全てのスコアが第1の閾値よりも小さい第2の閾値以下であれば、選択フレームの画像内で行われている作業の認識はできない(判定不能)と判断する。なお、選択フレームの画像に対して「判定不能」と認識するための構成については様々な構成が考えられ、特定の構成に限らない。
ステップS704では、認識部302aは、選択フレームが映像における最後のフレーム(最終フレーム)であるのか否かを判断する。この判断の結果、選択フレームが最終フレームである場合には、処理はステップS706に進み、選択フレームが最終フレームではない場合には、処理はステップS705に進む。
ステップS705で認識部302aは、選択フレームについてステップS703で特定した作業の種別と、該選択フレームの1フレーム前(該選択フレームの直前に選択したフレーム)についてステップS703で特定した作業の種別と、が同じかを判断する。つまり、認識部302aは、ステップS703で選択フレームに関連づけたラベル値と、ステップS703で該選択フレームの1フレーム前(該選択フレームの直前に選択したフレーム)に関連づけたラベル値と、が同じであるか否かを判断する。この判断の結果、同じであると判断した場合には、処理はステップS701に戻り、同じではないと判断した場合には、処理はステップS706に進む。
ステップS706では、認識部302aは、選択フレームまで連続して「選択フレームについて認識した作業の種別」と同じ種別であると認識されたフレームの数(同じ作業が連続するフレーム数)をカウントする。つまり認識部302aは、選択フレームから映像の先頭フレームに向けて1フレームずつ戻りながら、連続して並ぶ「選択フレームのラベル値と同じラベル値が関連づけられているフレーム」の数をカウントする。例えば、選択フレームが10フレーム目であり、5フレーム目から10フレーム目までの各フレームについてステップS703で判断した作業の種別が同じである(同じラベル値が関連づけられている)場合には、カウントするフレーム数=6とする。
ステップS707では、認識部302aは、ステップS706においてカウントしたフレーム数(連続フレーム数)が、予め定められた閾値を超えているか否かを判断する。この判断の結果、連続フレーム数が閾値を超えている場合には、処理はステップS708に進み、連続フレーム数が閾値以下である場合には、処理はステップS709に進む。
ステップS708では、認識部302aは、ステップS706にてカウント対象となったフレームの区間を、作業が実施された区間(期間)の候補(候補区間)とする。上記の例では5フレーム目から10フレーム目までの区間が候補区間となる。そして認識部302aは、該候補区間の開始フレームの位置(上記の例では5フレーム目)、該候補区間の終端フレームの位置(上記の例では10フレーム目)、該候補区間のラベル値(候補区間における何れかのフレームのラベル値)、を関連づけてRAM103に格納する。
一方、ステップS709では、認識部302aは、ステップS706にてカウント対象となったフレームの区間は、ノイズもしくは誤認識であると判断する。以下では、ステップS706にてカウント対象となったフレームの区間(連続フレーム数が閾値以下である区間)を、補完区間(規定フレーム数以下連続して同じ種別の作業が認識されたフレーム区間)と称する。これは、連続して同じ作業と推定されたフレーム数、つまり作業の実施期間が極端に短いことはないという前提に基づいている。この場合、認識部302aは、補完区間の開始フレームの位置、該補完区間の終端フレームの位置、該補完区間に近接する区間に対応するラベル値、を関連づけてRAM103に格納する。「補完区間に近接する区間に対応するラベル値」としては、例えば、映像の先頭側に該補完区間と隣接する区間(候補区間、補完区間)に対応するラベル値を使用する。
このように、ステップS708,S709により、連続フレーム数が閾値を超えている若しくは閾値以下の区間について、該区間の開始フレームの位置、該区間の終端フレームの位置、該区間のラベル値、が関連づけられてRAM103に格納される。
ステップS710では、認識部302aは、後続するステップS711において区間(ステップS706にてカウント対象となったフレームの区間)に対する判定処理を行うために必要な他の区間が得られたのか否かを判断する。本実施形態では、判定対象となる区間を判定するためには、該判定対象となる区間に隣接する前後の区間が必要となるため、判定対象となる区間に隣接する前後の区間が得られたのかを否かを判断する。この判断の結果、得られた場合には処理はステップS711に進み、得られていない場合には、処理はステップS701に戻る。なお、最終フレームを含む区間については、その次の区間が存在することはないが、特例としてステップS711に進む。
ステップS711で認識部302aは、判定対象となる区間(判定対象区間)に対し、組立作業を構成する作業を行っている区間として確定する、他の区間と統合する、組立作業を構成する作業を行っている区間ではないものとして確定する等の判定処理を行う。このステップS711における処理により、区間の補正及びノイズの除去、作業実施の有無判定が行われる。ステップS711における処理の詳細について、図8のフローチャートを用いて説明する。
なお、図8のフローチャートに従った処理の説明では、図9に示す具体例を挙げて説明する。図9に示す如く、テーブル901は、ラベル値の区分を登録したものであり、テーブル901の場合、ラベル値1〜7は、組立作業を構成する各作業に対応するラベル値であり、ラベル値i(1≦i≦7)は、組立作業において開始からi番目の作業に対応するラベル値である。またテーブル901において、ラベル値8,9は、組立作業には含まれていない作業に対応するラベル値であり、例えばそれぞれ、「非作業」、「判定不能」に対応するラベル値である。区間テーブル902は、上記のステップS708やステップS709にてRAM103に登録した情報から生成したテーブルであり、ステップS708やステップS709にてRAM103に登録した情報を該登録の順に上から並べたテーブルである。区間テーブル902において左端の列(No)は各行を指し示すために模式的に示したものである。左端から2番目の列(#begin_frame)には、区間の開始フレームの位置が登録されており、左端から3番目の列(#end_frame)には、区間の終端フレームの位置が登録されている。また、右端の列(label)には、区間のラベル値が登録されている。例えば、行番号(No)=1の行には、ある区間についての開始フレームの位置、終端フレームの位置、ラベル値が登録されており、それぞれ、100,150,8となっている。
ステップS801では、認識部302aは、判定対象区間に対応するラベル値が「非作業」に対応するラベル値であるか否かを判断する。この判断の結果、判定対象区間に対応するラベル値が「非作業」に対応するラベル値である場合には、処理はステップS805に進み、判定対象区間に対応するラベル値が「非作業」に対応するラベル値ではない場合には、処理はステップS802に進む。
ステップS805では、認識部302aは、判定対象区間を区間テーブル902から削除(除外)する。例えば、判定対象区間が行番号=1の行に対応する区間であるとすると、該判定対象区間のラベル値=8となっており、ラベル値=8は組立作業を構成する作業に対応するラベル値ではない。そこでこのような場合は、処理はステップS805に進み、区間テーブル902から、行番号=1の行に登録されている情報を削除する。その結果、区間テーブル902は区間テーブル903に更新される。区間テーブル903では、区間テーブル902から、行番号=1の行に登録されている開始フレームの位置、終端フレームの位置、ラベル値が削除されたものとなっている。
ステップS802では、認識部302aは、判定対象区間に対応するラベル値が、該判定対象区間に先行する区間に対応するラベル値と同じであるか否か、つまり、判定対象区間と該判定対象区間に先行する区間とで同じ作業が認識されたのか否かを判断する。ここで、「判定対象区間に先行する区間」とは、区間テーブル902においては、判定対象区間の行の1つ上の行に対応する区間を指し示している。この判断の結果、同じである場合には、処理はステップS806に進み、同じではない場合には、処理はステップS803に進む。
ステップS806では、認識部302aは、判定対象区間と、該判定対象区間に先行する区間と、を統合して1つの作業区間を形成する。例えば、判定対象区間が行番号=5の行に対応する区間であるとすると、判定対象区間のラベル値は「3」となる。一方、該判定対象区間に先行する区間は行番号=4の行に対応する区間であり、この区間のラベル値もまた「3」となる。つまり、判定対象区間のラベル値と、該判定対象区間に先行する区間のラベル値と、は同じ「3」である。そこでこの場合は、処理はステップS806に進み、行番号=4に対応する区間と、行番号=5に対応する区間と、を統合して、行番号=4に対応する区間と、行番号=5に対応する区間と、を含む1つの作業区間を形成する。この統合では、区間テーブル903に示す如く、区間テーブル902における行番号=4の行と行番号=5の行とを統合して1つの行にしている。つまり、該1つの行に、行番号=4に対応する区間の開始フレームの位置「200」、行番号=5に対応する区間の終端フレームの位置「225」、行番号=4(若しくは5)に対応する区間のラベル値「3」、が登録される。
ステップS803では、認識部302aは、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも小さいか否かを判断する。この判断の結果、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも小さい場合には、処理はステップS807に進む。一方、判定対象区間のラベル値が、該判定対象区間に先行する区間のラベル値よりも大きい場合には、処理はステップS804に進む。
ステップS807では、認識部302aは、判定対象区間をノイズ成分とし、判定対象区間を区間テーブル902から削除(除外)すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。判定対象区間は、該判定対象区間に先行する区間よりも時間的に後の区間であるから、判定対象区間に対応する作業は、該判定対象区間に先行する区間に対応する作業よりも後に実施されるべきである。よって、判定対象区間のラベル値>該区間に先行する区間のラベル値、となるべきである。よって、判定対象区間のラベル値<該判定対象区間に先行する区間のラベル値、となった場合には、判定対象区間はノイズ成分とみなされる。区間テーブル902の場合、判定対象区間が行番号=7の行に対応する区間であるとすると、判定対象区間のラベル値は「2」となる。一方、判定対象区間に先行する区間は行番号=6の行に対応する区間であり、この区間のラベル値は「4」となり、判定対象区間のラベル値「2」<該判定対象区間に先行する区間のラベル値「4」となっている。そこでこの場合は、処理はステップS807に進み、判定対象区間を区間テーブル902から削除(除外)すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。
ステップS804では、認識部302aは、判定対象区間のラベル値から該判定対象区間に先行する区間のラベル値を引いた結果(減算結果)が1であるか否かを判断する。つまり、判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当するか否かを判断する。この判断の結果、減算結果が1(判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当する)場合には、処理はステップS808に進む。一方、減算結果が1ではない(判定対象区間に対応する作業が、組立作業順において、該判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当しない)場合には、処理はステップS810に進む。
ステップS808では、認識部302aは、判定対象区間を作業区間として確定する。区間テーブル902の場合、判定対象区間が行番号=3の行に対応する区間であるとすると、該判定対象区間のラベル値は「2」となっている。一方、判定対象区間に先行する区間のラベル値は「1」となっており、上記の減算結果は1となる。然るにこの場合、行番号=3の行に対応する区間を作業区間として確定し、該区間に対応する行に登録されている情報は更新しない。あるいは、区間テーブルとして図10に示す区間テーブル1002が作成されていた場合には、行番号=11の行に対応する区間を作業区間として確定する。また、作業間のラベルの差を1以外に設定した場合にはステップS804での判定条件もその差に合わせることになる。すなわち、作業間のラベルの差を3と設定した場合にはステップS804で判定するラベルの差も3になるということである。
ステップS810では、認識部302aは、判定対象区間に後続する区間のラベル値から、判定対象区間に先行する区間のラベル値を引いた結果(減算結果)が1であるか否かを判断する。ここで、「判定対象区間に後続する区間」とは、区間テーブル902においては、判定対象区間の行の1つ下の行に対応する区間を指し示している。この判断の結果、減算結果が1である場合には、処理はステップS811に進み、減算結果が1以外である場合には、処理はステップS812に進む。なお、ステップS810の条件判定はステップS804と同様、作業間のラベルの差を1以外に設定した場合にはその値に合わせた判定条件になる。
ステップS811では、認識部302aは、判定対象区間をノイズ成分とし、判定対象区間を区間テーブル902から削除(除外)すると共に、該判定対象区間のラベル値を、判定不能に対応するラベル値に設定する。減算結果が1である場合とは、判定対象区間に後続する区間に対応する作業が、組立作業順において、判定対象区間に先行する区間に対応する作業の次に行うべき作業に該当する場合であるから、判定対象区間はノイズであると判断できる。例えば、区間テーブル1002において判定対象区間が行番号=12の行に対応する区間であるとする。このとき、判定対象区間のラベル値は「4」、判定対象区間に後続する区間のラベル値は「3」、判定対象区間に先行する区間のラベル値は「2」となる。このとき、判定対象区間に先行する区間に対応する作業の次に、判定対象区間に後続する区間に対応する作業が実施されたと見なすことができるため、この場合、判定対象となる区間はノイズとなる。
ステップS812では、認識部302aは、判定対象区間を作業区間として確定する。ここで、ステップS812に進んだ場合、判定対象区間のラベル値と該判定対象区間に先行する区間のラベル値との差が2以上、且つ判定対象区間に先行する区間のラベル値と該判定対象区間に後続する区間のラベル値との差が1以外となっている。
区間テーブル1002の場合、判定対象区間が行番号=21の行に対応する区間であるとすると、該判定対象区間のラベル値は「6」となっている。一方、判定対象区間に先行する区間のラベル値は「4」、判定対象区間に後続する区間のラベル値は「7」となっており、この場合、ラベル値「5」に対応する作業が抜けていることが分かる。然るにこの場合、作業漏れがあったとみなし、行番号=21の行に対応する区間を作業区間として確定し、該区間に対応する行に登録されている情報は更新しない。
区間テーブル902,1002について図8のフローチャートに従った処理を行うことで、それぞれ区間テーブル903,1003となる。以下では、区間テーブルから削除されなかった区間(候補区間、補完区間、統合された区間)、区間テーブルから削除された区間(非作業に対応する区間、判定不能に対応する区間)、をそれぞれ作業区間と称する。
そして処理は図7のステップS712に進む。ステップS712では、認識部302aは、映像から全てのフレームを選択フレームとして選択したか否か(ステップS701で選択したフレームが映像における最終フレームであるか否か)を判断する。この判断の結果、映像から全てのフレームを選択フレームとして選択した場合には、処理は図3(b)のステップS303bに進む。一方、映像からまだ選択フレームとして選択していないフレームが残っている場合には、処理はステップS701に戻る。
ステップS303b〜S311bの処理は、ステップS302bまでの処理で確定した各作業区間を古い順(映像において発生した順)に選択して処理するものである。ステップS303bでは、認識部302aは、全ての作業区間に対応する処理状態を未処理に初期化する。
ステップS304bでは、認識部302aは、全ての作業区間のうち未選択の1つ(処理状態が未処理の作業区間のうち1つ)を選択作業区間として選択し、該選択作業区間に対応する処理状態を処理済みに設定する。
ステップS305bでは、認識部302aは、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値であるか否かを判断する。この判断の結果、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値である場合には、処理はステップS306bに進む。一方、選択作業区間に対応するラベル値が、組立作業を構成する何れかの作業に対応するラベル値ではない場合(例えば、非作業や判定不能に対応するラベル値である場合)には、処理はステップS311bに進む。
ステップS306bでは、決定部303aは、選択作業区間に基づいて、該選択作業区間に対応する作業を構成する各動作を認識するための区間(動作認識区間)を設定する。ステップS306bにおける処理の詳細について、図4(a)のフローチャートに従って説明する。
ステップS401aでは、決定部303aは、空の連続作業リストを作成し、該連続作業リストに選択作業区間(作業区間i)に対応する開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
ステップS402aでは、決定部303aは、選択作業区間の直後の作業区間(作業区間j)のラベル値を取得し、ステップS403aでは、決定部303aは、作業区間jのラベル値が、組立作業を構成する何れかの作業に対応するラベル値であるか否かを判断する。この判断の結果、作業区間jのラベル値が、組立作業を構成する何れかの作業に対応するラベル値である場合には、処理はステップS404aに進む。一方、作業区間jのラベル値が、組立作業を構成する何れかの作業に対応するラベル値ではない場合(例えば、非作業や判定不能に対応するラベル値である場合)には、処理はステップS406aに進む。
ステップS406aでは、決定部303aは、作業区間jの処理状態を処理済みにする。なお、ステップS406aで作業区間jの処理状態を処理済みとした場合、この作業区間jはステップS304bでは選択されない。
ステップS404aでは、決定部303aは、作業区間iのラベル値と作業区間jのラベル値とが同じであるか否を判断する。この判断の結果、作業区間iのラベル値と作業区間jのラベル値とが同じである場合には、処理はステップS405aに進み、作業区間iのラベル値と作業区間jのラベル値とが同じではない場合には、処理はステップS407aに進む。ステップS405aでは、決定部303aは、連続作業リストの末尾に、作業区間jに対応する開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
ステップS407aでは、決定部303aは、連続作業リストの先頭に登録されている作業区間(作業区間i)を始端作業区間として設定する。そしてステップS408aでは、決定部303aは、始端作業区間から映像の先頭側に隣接する作業区間が補完区間であるか否かを判断する。始端作業区間から映像の先頭側に隣接する作業区間が補完区間である場合には、処理はステップS409aに進み、始端作業区間から映像の先頭側に隣接する作業区間が補完区間ではない場合には、処理はステップS410aに進む。
ステップS409aでは、決定部303aは、始端作業区間から映像の先頭側に隣接する補完区間の開始フレームの位置を取得し、該取得した開始フレームの位置を、動作認識区間の先頭フレーム位置として設定する。
ステップS410aでは、決定部303aは、始端作業区間の開始フレームの位置から映像の先頭側に規定フレーム数移動したフレーム位置を、動作認識区間の先頭フレーム位置として設定する。
ステップS411aでは、決定部303aは、連続作業リストの末尾に登録されている作業区間を終端作業区間として設定する。そしてステップS412aでは、決定部303aは、終端作業区間から映像の後端側に隣接する作業区間が補完区間であるか否かを判断する。終端作業区間から映像の後端側に隣接する作業区間が補完区間である場合には、処理はステップS413aに進み、終端作業区間から映像の後端側に隣接する作業区間が補完区間ではない場合には、処理はステップS414aに進む。
ステップS413aでは、決定部303aは、終端作業区間から映像の後端側に隣接する補完区間の終端フレームの位置を取得し、該取得した終端フレームの位置を、動作認識区間の後端フレーム位置として設定する。
ステップS414aでは、決定部303aは、終端作業区間の終端フレームの位置から映像の後端側に規定フレーム数移動したフレーム位置を、動作認識区間の後端フレーム位置として設定する。
ここで、図4(a)のフローチャートに従った処理について、図4(b)に示す具体例を挙げて説明する。図4(a)に示した各矩形は作業区間を表しており、各矩形に記した記号(N以外)は対応するラベル値を表している。W1,W2,W3,W4は何れも、組立作業を構成する作業に対応するラベル値である。Cは非作業に対応するラベル値、Lは判定不能に対応するラベル値である。401bは、左端から右端に向けて各矩形に割り当てたインデックスである。Nは、対応する矩形が補完区間であることを表している。図4(b)では、スペースの都合上、インデックス=1〜13の行と、インデックス=14〜19の行と、を上下に分けて記しているが、同じ参照番号で示す行は同じ行であるものとする。以下では、行Xにおけるインデックス=Yの作業区間を作業区間X−Yと称する。
行402bに並ぶ作業区間のうち、作業区間(補完区間)402b−5のラベル値は、上記のステップS709により、行403bに示す如く、その直前の作業区間(作業区間402b−4)のラベル値W2に設定される。また、作業区間(補完区間)402b−10のラベル値は、上記のステップS709により、行403bに示す如く、その直前の作業区間(作業区間402b−9)のラベル値Cに設定される。また、作業区間(補完区間)402b−12のラベル値は、上記のステップS709により、行403bに示す如く、その直前の作業区間(作業区間402b−11)のラベル値W3に設定される。以降、作業区間(補完区間)402b−14,16のラベル値についても同様にしてそれぞれ、C,W4に設定される。
そして行403bに並ぶ作業区間において作業区間403b−4〜6は、同じラベル値W2を有する作業区間の列であるから、図8のフローチャートに従った処理により、行404bに示す如く、ラベル値W2を有する1つの作業区間に統合されている。また、作業区間403b−11〜12は、同じラベル値W3を有する作業区間の列であるから、図8のフローチャートに従った処理により、行404bに示す如く、ラベル値W3を有する1つの作業区間に統合されている。また、作業区間403b−15〜16は、同じラベル値W4を有する作業区間の列であるから、図8のフローチャートに従った処理により、行404bに示す如く、ラベル値W4を有する1つの作業区間に統合されている。
このような行404bに対して動作認識区間を設定する場合、先ず、先頭の作業区間(作業区間404b−1)から順に参照すると、作業区間404b−1のラベル値はCであるから、ステップS306bの対象外となる。
次に、作業区間404b−2のラベル値はW1であるからステップS306bの対象となり、先ず連続作業リストには、作業区間404b−2の情報が登録される。そして作業区間404b−2に後続する作業区間には、作業区間404b−2のラベル値W1と同じラベル値を有する作業区間が登場しないので、作業区間404b−2の情報のみが登録された連続作業リストがステップS407a〜ステップS414aの対象となる。作業区間404b−2の前後には補完区間が隣接していない。然るに作業区間404b−2の開始フレームの位置を映像の先頭側に規定フレーム数移動させたフレーム位置から、該作業区間の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置までの区間405bが動作認識区間として求まる。この区間405bが、作業区間404b−2に対する動作認識区間となる。つまり、作業区間404b−2の区間長を拡大した作業区間を、作業区間404b−2に対する動作認識区間としている。
次に、作業区間404b−3のラベル値はCであるから、ステップS306bの対象外となる。
次に、作業区間404b−4のラベル値はW2であるからステップS306bの対象となり、先ず連続作業リストには、作業区間404b−4の情報が登録される。そして作業区間404b−4には「ラベル値W2の作業区間」として作業区間404b−5,6,8が後続し、作業区間404b−9以降はW2以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間404b−4の情報、末尾には作業区間404b−8の情報、が登録されており、このような連続作業リストがステップS407a〜ステップS414aの対象となる。作業区間404b−4の映像先頭側には補完区間が隣接していない。然るにステップS410aでは、作業区間404b−4の開始フレームの位置を映像の先頭側に規定フレーム数移動させたフレーム位置を区間406bの先頭フレーム位置(端部)とする。また、作業区間404b−8の映像後端側には補完区間が隣接していない。然るにステップS414aでは、作業区間404b−8の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間406bの終端フレームの位置(端部)とする。この区間406bが、作業区間404b−4〜8に対する動作認識区間となる。つまり、作業区間404b−4〜8の区間長を拡大した作業区間を、作業区間404b−4〜8に対する動作認識区間としている。
次に、作業区間404b−9,10のラベル値はCであるから、ステップS306bの対象外となる。
次に、作業区間404b−11のラベル値はW3であるからステップS306bの対象となり、先ず連続作業リストには、作業区間404b−11の情報が登録される。そして作業区間404b−11には「ラベル値W3の作業区間」として作業区間404b−12が後続し、作業区間404b−13以降はW3以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間404b−11の情報、末尾には作業区間404b−12の情報、が登録されており、このような連続作業リストがステップS407a〜ステップS414aの対象となる。作業区間404b−11の映像先頭側には補完区間(作業区間404b−10)が隣接している。然るにステップS409aでは、この補完区間(作業区間404b−10)の開始フレームの位置(端部)を区間407bの先頭フレーム位置(端部)とする。また、作業区間404b−12の映像後端側には補完区間が隣接していない。然るにステップS414aでは、作業区間404b−12の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間407bの終端フレームの位置とする。この区間407bが、作業区間404b−11〜12に対する動作認識区間となる。つまり、作業区間404b−11〜12の区間長を拡大した作業区間を、作業区間404b−11〜12に対する動作認識区間としている。
次に、作業区間404b−13〜14のラベル値はCであるから、ステップS306bの対象外となる。
次に、作業区間404b−15のラベル値はW4であるからステップS306bの対象となり、先ず連続作業リストには、作業区間404b−15の情報が登録される。そして作業区間404b−15には「ラベル値W4の作業区間」として作業区間404b−16,18が後続し、作業区間404b−19以降はW4以外のラベル値を有する作業区間である。然るに、連続作業リストの先頭には作業区間404b−15の情報、末尾には作業区間404b−18の情報、が登録されており、このような連続作業リストがステップS407a〜ステップS414aの対象となる。作業区間404b−15の映像先頭側には補完区間(作業区間404b−14)が隣接している。然るにステップS409aでは、この補完区間(作業区間404b−14)の開始フレームの位置(端部)を区間408bの先頭フレーム位置(端部)とする。また、作業区間404b−18の映像後端側には補完区間が隣接していない。然るにステップS414aでは、作業区間404b−18の終端フレームの位置を映像の後端側に規定フレーム数移動させたフレーム位置を区間408bの終端フレームの位置とする。この区間408bが、作業区間404b−14〜18に対する動作認識区間となる。つまり、作業区間404b−14〜18の区間長を拡大した作業区間を、作業区間404b−14〜18に対する動作認識区間としている。
次に、作業区間404b−19のラベル値はCであるから、ステップS306bの対象外となる。
このように、映像に対して決定した作業区間に基づき、該映像における動作認識区間を設定する。なお、図4(b)において、作業区間404b−12は補完区間であるから、区間407bの終端フレームの位置を作業区間404b−11の終端フレームの位置としても良い。このとき、区間407bの終端は作業区間404b−11と同じになる。これによって、補完区間が作業区間の端に含まれるときに、動作認識区間が広く設定されすぎることを防ぐことができる。
図3に戻って、次に、ステップS307bでは、管理部305aは、外部記憶装置104に保存されている定義動作列及び動作領域情報をRAM103に読み出す。動作領域情報とは、動作領域を規定する情報であり、図2(a)の例では、点線で示した領域を規定する情報に該当する。また、定義動作列とは、組立作業を構成する作業ごとに、該作業を構成する各動作に対応する動作領域のラベルが動作順に登録されている情報であり、図2(a)の例では、手を進入させる各動作領域のラベルが動作順に登録されている情報である。つまり、定義動作列とは、作業を構成する各動作のシーケンスを規定する情報である。なお、動作領域は、1次元領域、2次元領域、3次元領域、の何れであっても良いし、その形状も、矩形、球形等、の何れの形状であっても良い。
ステップS308bでは、検知部306a及び検知部307aによって、ステップS306bにおいて決定部303aが決定した動作認識区間に対して動作認識を行う。ステップS308bにおける処理の一例について説明する。
検知部306aは、動作認識区間に含まれる各フレームの画像に対して、該画像内における手の領域(手領域)を検出する。手領域は2次元領域であっても良いし、3次元領域であっても良い。手領域の検出方法としては、例えば、可視光画像と距離画像の双方を用いて、対象となる画像と背景画像との差分画像から動体(人体)を抽出し、該抽出された人体から頭部や動体、腕などを除き、手領域を検知する方法がある。また例えば、皮膚の色を有する領域を手領域として画像から抽出しても良い。また例えば、規定の色味の手袋を装着して作業することを前提として、その手袋の色を有する領域を手領域として画像から抽出しても良い。また例えば、機械学習などを利用して画像から手領域を検知してもよい。このように、画像から手領域を検出する方法には様々な方法があり、特定の方法に限らない。
そして検知部307aは、検知部306aが検知した手領域が、動作領域情報が規定する何れかの動作領域に属しているのか、何れの動作領域にも属していないのか、を判断する。例えば検知部307aは、手領域(一部若しくは全部)が着目動作領域と重なっている場合には、手領域が該着目動作領域に属しているものと判断する。一方、検知部307aは、手領域(一部若しくは全部)が着目動作領域と重なっていない場合には、手領域が該着目動作領域に属していないものと判断する。なお、検知部307aは、手領域(一部若しくは全部)が着目動作領域と重なっている状態が規定時間以上経過した場合に限って、手領域が該着目動作領域に属しているものと判断するようにしても良い。このように、検知部306aが検知した手領域が、動作領域情報が規定する何れかの動作領域に属しているのか、何れの動作領域にも属していないのか、を判断するための方法には様々な方法があり、特定の方法に限らない。そして検知部307aは、手領域が着目動作領域に属していると判断した場合には、該着目動作領域に対応するラベルを検知動作列に登録する。検知動作列には、手領域が属したと判断された動作領域順に、該動作領域に対応するラベルが登録されている。
このようにして、検知部306a及び検知部307aによって、動作認識区間内で手領域が属したものと判断された各動作領域のラベルが該判断の順番で登録された検知動作列を生成する。
ステップS309bでは、マッチング部308aは、検知動作列と定義動作列とを用いてDPマッチング(シーケンスマッチング)を行うことで、検知動作列が表す各動作の順序と定義動作列が表す各動作の順序との対応関係を求める。
シーケンスマッチングとは、順序比較して、2つの時系列データが完全一致していなくても動作列を構成するラベルの発生順序が概略似ていれば2つの動作列は同一であるとみなす、あいまいなマッチング手法のことである。シーケンスマッチングを導入する理由は、動作から次の動作に移る間など、動作以外にも手が動作領域に入ることがあり、正しく組立作業を行っていても検知動作列は定義動作列と完全一致することはないからである。本実施形態においては、DPマッチングと呼ばれるシーケンスマッチングを使うものとする。DPマッチングは、2つのデータ列(定義動作列、検知動作列)の類似度を測定する手法であり、マッチングのコストが最も小さくなるように定義動作列のラベルに、検知動作列のラベルを紐づけていく。その過程でDPマッチングはノイズをノイズとみなして処理をするため、シーケンスマッチングとして用いることができる。具体的な事例を交えたマッチング方法の概略は図6(a)に記しており、定義動作列として1,2,3,4、検知動作列として1,2,4,3,4を用いる。検知動作列における最初の4はノイズである。同図において、左下から右上に向かってラベルの紐付けを行うものとして、各セルには左下から、該当のセルを共有する定義動作列、検知動作列の各時系列のラベルを紐づけるまでの最低コストを記す。また、各セルの最低コストの算出には、最低コストを算出済みの下、左下、左の3つのセルから算出し、これを繰り返すという簡易な演算で左下から右上までを紐づけていく上での最低コストを導出する。また、3つのセルのうち、いずれのセルを採用したかを記録しておくので、最終的な右上の最低コストの導出では、どのような経路を通ったかを導くことはできる。詳細な計算は周知のため省略するが、図6(a)のDPマッチングをした結果は図6(b)となり、太線経路が最低コストを実現した経路となる。紐付けの結果を具体的に示した図は図6(c)となり、ノイズの“4”は定義動作列の“4”ではなく、“2”に付随したノイズとして紐づけられている。コストの設計方法等、DPマッチングの詳細については公知資料を参考にされたい。前述のとおりDPマッチングは簡易で実現できる点に着目し、本実施形態ではシーケンスマッチングとしてDPマッチングを利用する。
次に、ステップS310bでは、認識部302aは、ステップS309bにおける処理結果に基づいて、選択作業区間の修正を行う。ステップS310bにおける処理の詳細について、図5(a)のフローチャートに従って説明する。
ステップS501aでは、認識部302aは、ステップS309bにおける動作認識結果において、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性を評価する。ステップS501aにおける処理の詳細について、図5(b)のフローチャートに従って説明する。
ステップS501bでは、認識部302aは、動作認識区間の始端付近(端部)で手領域の検知が失敗しているか否か、動作認識区間の終端付近(端部)で手領域の検知が失敗しているか否か、を判定する。上記の通り、ステップS308bでは、動作認識区間の映像に対して検知部306aにより手領域の検知が実施されるが、このとき手領域が頭部などにより隠れていると、手領域の検知に失敗することがある。そのため、手領域検知はフレームごとに成否が分かる。そこで、動作認識区間の始端から予め定めた範囲内のフレーム群について手領域検知が失敗している場合は、始端側での手領域検知が失敗していると判断する。あるいは、動作認識区間の始端から予め定めた範囲内のフレーム群において規定のフレーム数若しくは規定の割合以上のフレーム数のフレームについて手領域検知が失敗している場合には、始端側での手領域検知が失敗していると判断してもよい。同様に、動作認識区間の終端から予め定めた範囲内のフレーム群について手領域検知が失敗している場合は、終端側での手領域検知が失敗していると判断する。あるいは、動作認識区間の終端から予め定めた範囲内のフレーム群において規定のフレーム数若しくは規定の割合以上のフレーム数のフレームについて手領域検知が失敗している場合には、終端側での手領域検知が失敗していると判断してもよい。
なお、動作認識区間の始端付近で手領域の検知が失敗しているか否か、動作認識区間の終端付近で手領域の検知が失敗しているか否か、を判定するための方法には様々な方法があり、特定の方法に限らない。
そして、「動作認識区間の始端付近及び終端付近のうち少なくとも一方について手領域の検知が失敗している」という条件が満たされた場合には、処理はステップS505bに進み、この条件が満たされていない場合には、処理はステップS502bに進む。
ステップS502bでは、認識部302aは、作業の最初(端部)あるいは最後(端部)の動作認識に失敗しているか否かを判断する。上記の如く、ステップS309bでは、定義動作列と検知動作列の対応関係が作成されるが、この定義動作列の先頭の動作および最後の動作に対して、検知動作列との対応がなかった場合、失敗と判断する。あるいは、最初と最後の動作に複数の動作が対応している場合も、信頼性が落ちるため、失敗と判断するようにしてもよい。あるいは、最初と最後の動作に対応があったとしても、途中の動作への対応がない場合は、全体としての信頼性が落ち、最初と最後の対応の信頼性も落ちるため、失敗と判断するようにしてもよい。作業の最初あるいは最後の動作認識に失敗しているか否かを判断するための方法には様々な方法があり、特定の方法に限らない。
作業の最初あるいは最後の動作認識に失敗しているという条件が満たされた場合には、処理はステップS505bに進み、この条件が満たされなかった場合には、処理はステップS503bに進む。
ステップS503bでは、認識部302aは、動作認識区間において認識した作業の最初(端部)あるいは最後(端部)の動作の動作領域の近傍に、他の動作領域が存在するか否かを判断する。動作領域同士が近傍にあると、動作を実施している本来の動作領域での重なりと同時に、近傍の動作領域と重なりが発生することがある。そのため、誤検知を発生しやすくなるためそのような動作領域の分布は信頼性を下げることになる。そこで、最初及び最後の動作に対応する動作領域を得て、動作領域ごとに予め定めた距離の範囲に他の動作領域があるか否かを求める。各動作領域の実空間における位置や範囲は動作領域情報にて規定されているので、該動作領域情報にて規定されている各動作領域の位置を用いることで、動作領域間の距離を求めることができる。
作業の最初あるいは最後の動作の動作領域の近傍に他の動作領域が存在するという条件が満たされた場合には、処理はステップS505bに進み、この条件が満たされていない場合には、処理はステップS504bに進む。
ステップS504bでは、認識部302aは、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性は高い(「高」)と評価する。一方、ステップS505bでは、認識部302aは、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性は低い(「低」)と評価する。
なお、動作認識区間の始端及び終端のそれぞれ付近における動作認識結果に対する信頼性の判定方法は、上記の判定方法に限らない。例えば、上記のステップS702で得られるスコアも用いて判断するようにしてもよい。具体的には、動作認識区間の始端や終端のフレームのスコアが高いとき、ステップS302bで得られた作業区間は正しい可能性が高いと判断できるため、相対的に動作認識の信頼性を低いと判断させるようにしてもよい。また、図5(b)に示した全ての条件(ステップS501b〜S504b)は必須ではなく、1つ以上を削除しても良いし、1つ以上を他の条件に変えても良い。
次に、ステップS502aでは、認識部302aは、ステップS501aにおいて評価した信頼性が「高」であるのか、それとも「低」であるのか、を判断する。この判断の結果、ステップS501aにおいて評価した信頼性が「高」であれば、処理はステップS503aに進み、「低」であれば、処理はステップS311bに進む。
ステップS503aでは、認識部302aは、選択作業区間を動作認識結果に基づいて補正する。例えば、認識部302aは、定義動作列における最初の動作(ラベル)に対してステップS309bにて紐付けた検知動作列における動作(ラベル)を特定し、動作認識区間において該特定したラベルを最初に検出したフレームの位置Sを特定する。同様に認識部302aは、定義動作列における最後の動作(ラベル)に対してステップS309bにて紐付けた検知動作列における動作(ラベル)を特定し、動作認識区間において該特定したラベルを最後に検出したフレームの位置Eを特定する。そして認識部302aは、選択作業区間の開始フレームの位置として登録されている位置を位置Sに更新すると共に、選択作業区間の終端フレームの位置として登録されている位置を位置Eに更新することで、選択作業区間を補正する。
なお、上記の説明では、動作認識区間の最初と最後の双方が信頼できると判断できるときに選択作業区間を修正していたが、片方のみが信頼できるか否かを判定し、信頼できる方だけを修正してもよい。つまり、最初のみが信頼できると判断できるときは、選択作業区間の始端側のみを修正し、終端側は修正しないようにする。逆に、最後のみが信頼できると判断できるときは、選択作業区間の終端側のみを修正し、始端側は修正しないようにする。これによって、片方が信頼できるときは区間修正を実施するようになり、作業区間の精度向上が期待できる。
ステップS311bでは、認識部302aは、全ての作業区間を選択作業区間として選択したか否かを判断する。この判断の結果、全ての作業区間を選択作業区間として選択した場合には、処理はステップS312bに進み、未だ選択作業区間として選択していない作業区間が残っている場合には、処理はステップS304bに戻る。
ステップS312bでは、保存部309aは、上記の処理によって決定した各作業区間の情報を外部記憶装置104に保存する。例えば保存部309aは、各作業区間について、開始フレームの位置、終端フレームの位置、ラベル値、のセットを登録する。
なお、図3(b)のフローチャートに従った処理の後、保存部309aによって外部記憶装置104に保存された情報の取り扱いについては特定の取り扱いに限らない。例えば、出力部310aは、上記のステップS301bでRAM103に格納した映像や、ステップS311bで外部記憶装置104に保存した各種の情報、に基づく情報を外部の装置に送信しても良いし、モニタ110に表示するようにしても良い。例えば出力部310aは、作業漏れがあった作業に対応する映像をモニタ110に表示するようにしても良い。作業漏れは、映像の先頭フレームから順に対応するラベル値を外部記憶装置104から読み出したときに、該読み出したラベル値に対応する動作が、1サイクル分の作業を構成する各動作の動作順に並んでいないとき、作業漏れとして判断する。そして、出力部310aは、作業漏れがあった映像の一覧をモニタ110に表示する。あるいは出力部310aは、作業漏れがあった付近の映像を順にモニタ110に表示するようにしてもよい。また、出力部310aは、作業時間が長い作業に対応する映像をモニタ110に出力するようにしても良い。作業時間が長い作業とは、例えば、作業漏れのない同一種類の作業の作業時間(該作業の映像のフレーム数に対応する時間)の平均作業時間との差が規定時間以上となる作業である。
このように、本実施形態によれば、作業を構成する動作の認識結果に応じて作業区間が修正されるため、作業区間の精度が向上する。加えて、動作認識区間における最初および最後の動作認識の信頼性が低いときは、作業区間を修正しないことにより、修正によって作業区間の精度が悪化することを防ぐことができる。
[第2の実施形態]
第1の実施形態では、作業分析装置100は、単一のコンピュータ装置であるものとして説明した。しかし、作業分析装置100は複数のコンピュータ装置で構成しても良く、その場合、作業分析装置100が行うものとして上述した各処理を複数のコンピュータ装置に分担させて実行させることで、同様の処理結果を得るようにしても良い。作業分析装置100を複数のコンピュータ装置で構成する場合には、複数のコンピュータ装置は、互いに通信可能なようにLocal Area Network(LAN)などで接続されている。また、第1の実施形態では、カメラ112の数を1としているが、2以上であっても良い。この場合、作業分析装置100は、それぞれのカメラ112による映像に対して同様の処理を行うことができる。
第1の実施形態では、作業分析装置100は、単一のコンピュータ装置であるものとして説明した。しかし、作業分析装置100は複数のコンピュータ装置で構成しても良く、その場合、作業分析装置100が行うものとして上述した各処理を複数のコンピュータ装置に分担させて実行させることで、同様の処理結果を得るようにしても良い。作業分析装置100を複数のコンピュータ装置で構成する場合には、複数のコンピュータ装置は、互いに通信可能なようにLocal Area Network(LAN)などで接続されている。また、第1の実施形態では、カメラ112の数を1としているが、2以上であっても良い。この場合、作業分析装置100は、それぞれのカメラ112による映像に対して同様の処理を行うことができる。
また、第1の実施形態において、動作も区間として認識されるように構成したときは、動作区間はフレーム位置の範囲により定めされる。また、保存部309aは、フレーム位置に代えて若しくは加えて、該フレーム位置に対応する時刻(例えば映像における各フレームの撮像時刻)を外部記憶装置104に保存するようにしても良い。
また、第1の実施形態において、動作認識区間の決定(S306b)では作業区間に補完区間が隣接するとき、補完区間と作業区間を連結した区間を動作認識区間としていた。しかし、補完区間に限らず、S302bでの作業認識の信頼性が低い区間を用いてもよい。
第一に、作業認識により得る区間の信頼性は「区間長」の観点により決められる。具体的には、予め定めた作業種別ごとの最低の作業長に基づいて、その作業長を満たさない場合は、信頼性が低い区間とすることが考えられる。補完区間もこの一種であり、作業種別に関わらず定められた最低の区間長に基づいて、信頼性が低いと判断した場合である。
第二に、作業認識により得る区間の信頼性は「作業種別の並び」の観点により決められる。工場などの組立作業は予め定められた順序で作業を行う。作業の発生順序として不自然なケースは信頼性が低いと判断できる。具体的には、S807に到達するケースは、順番に従わずに前の作業に戻って作業をしている不自然なケースになる。加えて、S811に到達するケースも、順番に従わずにいくつか先の作業をしている不自然なケースになる。このように予め定められた作業順序に整合しない場合は、信頼性が低い区間とすることが考えられる。
第三に、作業認識により得る区間の信頼性は「複数の作業認識の結果の一貫性」の観点により決められる。具体的には、複数の作業認識を用意しておき、各作業認識から得た同じラベル作業区間が7割以上重複する区間のみを作業区間として、それ以外を信頼性の低い区間とすることが考えられる。複数の作業認識は、S702において利用する機械学習のモデルとしていくつかのものを用意することなどで得ることができる。
なお、作業認識の信頼性が低い区間を決定する方法はこれらに限定されるものではない。以上のようにして得た信頼性の低い区間を用いて、動作認識区間の決定(S306b)では作業区間に信頼性の低い区間が隣接するとき、信頼性の低い区間と作業区間を連結した区間を動作認識区間としてもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
301a:保存部 302a:認識部 303a:決定部 305a:管理部 306a:検知部 307a:検知部 308a:マッチング部 309a:保存部 310a:出力部
Claims (14)
- 作業者が複数種の作業を順次行っているシーンの映像を取得する取得手段と、
前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第1の特定手段と、
前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第2の特定手段と、
前記第2の特定手段が特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正手段と
を備えることを特徴とする作業分析装置。 - 前記第1の特定手段は、前記作業認識により、同じ種別の作業が連続して認識されたフレームの区間に基づいて前記作業区間を特定することを特徴とする請求項1に記載の作業分析装置。
- 前記第2の特定手段は、前記作業区間の区間長を拡大した区間を認識区間として特定することを特徴とする請求項1又は2に記載の作業分析装置。
- 前記第2の特定手段は、前記作業区間に、非作業が認識されたフレームの区間が隣接している場合には、該区間におけるフレームの位置を認識区間の端部とすることを特徴とする請求項1乃至3の何れか1項に記載の作業分析装置。
- 前記第2の特定手段は、前記作業区間に、作業認識の信頼性が低い区間が隣接している場合には、該区間の端部を認識区間の端部とすることを特徴とする請求項1乃至4の何れか1項に記載の作業分析装置。
- 前記第2の特定手段は、作業区間の区間長及び作業種別の並び及び複数の作業認識の結果の一貫性の少なくとも1つに基づいて、作業認識の区間の信頼性を判断することを特徴とする請求項5に記載の作業分析装置。
- 前記補正手段は、端部において動作認識の信頼性が低いと判断する場合には、前記作業区間を補正しないことを特徴とする請求項1乃至6の何れか1項に記載の作業分析装置。
- 前記補正手段は、前記認識区間の端部において前記作業者の手の検出に失敗している場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項7に記載の作業分析装置。
- 前記補正手段は、前記認識区間において前記作業を構成する各動作のシーケンスの端部における動作の認識が失敗している場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項7に記載の作業分析装置。
- 前記補正手段は、前記作業者が作業を行うために手を重ねる領域を動作領域とし、前記認識区間の端部において前記作業者の手が重なっていると判断した動作領域から予め定めた距離の範囲に他の動作領域が存在する場合には、端部の動作認識の信頼性が低いと判断し前記作業区間を補正しないことを特徴とする請求項7に記載の作業分析装置。
- 前記補正手段は、前記作業を構成する各動作のシーケンスを規定する定義動作列と、前記第2の特定手段が特定した認識区間に対する動作認識により得られる各動作のシーケンスと、を用いてDPマッチングを行い、前記定義動作列の最初の動作および最後の動作に対応する動作を認識したフレームの区間を認識区間として特定することを特徴とする請求項1乃至10の何れか1項に記載の作業分析装置。
- 前記取得手段は、前記シーンを撮像する撮像装置から前記映像を取得することを特徴とする請求項1乃至11の何れか1項に記載の作業分析装置。
- 作業分析装置が行う作業分析方法であって、
前記作業分析装置の取得手段が、作業者が複数種の作業を順次行っているシーンの映像を取得する取得工程と、
前記作業分析装置の第1の特定手段が、前記映像における各フレームに対して作業の種別を認識する作業認識を行い、該作業認識の結果に基づいて、同じ種別の作業が行われているフレームの区間を作業区間として特定する第1の特定工程と、
前記作業分析装置の第2の特定手段が、前記作業区間に対応する種別の作業を構成する動作の認識を行うフレームの区間を認識区間とし、前記映像における認識区間を前記作業区間に基づいて特定する第2の特定工程と、
前記作業分析装置の補正手段が、前記第2の特定工程で特定した認識区間に対して行った動作の認識結果に応じて前記作業区間を補正する補正工程と
を備えることを特徴とする作業分析方法。 - 作業分析装置のコンピュータを、請求項1乃至12の何れか1項に記載の作業分析装置の各手段として機能させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018081735A JP2019193019A (ja) | 2018-04-20 | 2018-04-20 | 作業分析装置、作業分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018081735A JP2019193019A (ja) | 2018-04-20 | 2018-04-20 | 作業分析装置、作業分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019193019A true JP2019193019A (ja) | 2019-10-31 |
Family
ID=68387834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018081735A Pending JP2019193019A (ja) | 2018-04-20 | 2018-04-20 | 作業分析装置、作業分析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019193019A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021192119A1 (ja) * | 2020-03-25 | 2021-09-30 | ソニーグループ株式会社 | 情報処理装置、プログラム、および方法 |
WO2021192024A1 (ja) * | 2020-03-24 | 2021-09-30 | ソニーグループ株式会社 | 作業管理装置及び作業状態判定方法 |
WO2022097310A1 (ja) * | 2020-11-06 | 2022-05-12 | オムロン株式会社 | 作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 |
WO2023276332A1 (ja) * | 2021-06-28 | 2023-01-05 | パナソニックIpマネジメント株式会社 | 作業分析装置及び方法 |
WO2024106197A1 (ja) * | 2022-11-15 | 2024-05-23 | トヨタ紡織株式会社 | 検査装置 |
-
2018
- 2018-04-20 JP JP2018081735A patent/JP2019193019A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021192024A1 (ja) * | 2020-03-24 | 2021-09-30 | ソニーグループ株式会社 | 作業管理装置及び作業状態判定方法 |
WO2021192119A1 (ja) * | 2020-03-25 | 2021-09-30 | ソニーグループ株式会社 | 情報処理装置、プログラム、および方法 |
WO2022097310A1 (ja) * | 2020-11-06 | 2022-05-12 | オムロン株式会社 | 作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 |
WO2023276332A1 (ja) * | 2021-06-28 | 2023-01-05 | パナソニックIpマネジメント株式会社 | 作業分析装置及び方法 |
WO2024106197A1 (ja) * | 2022-11-15 | 2024-05-23 | トヨタ紡織株式会社 | 検査装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2019193019A (ja) | 作業分析装置、作業分析方法 | |
US20200226751A1 (en) | Surgical workflow and activity detection based on surgical videos | |
US10572736B2 (en) | Image processing apparatus, image processing system, method for image processing, and computer program | |
Ong et al. | A Bayesian filter for multi-view 3D multi-object tracking with occlusion handling | |
US20160300100A1 (en) | Image capturing apparatus and method | |
WO2019023921A1 (zh) | 一种手势识别方法、装置及设备 | |
CN110659600B (zh) | 物体检测方法、装置及设备 | |
Zhan et al. | DF-VO: What should be learnt for visual odometry? | |
US20150193698A1 (en) | Data processing device | |
US20130322740A1 (en) | Method of Automatically Training a Classifier Hierarchy by Dynamic Grouping the Training Samples | |
US8879789B1 (en) | Object analysis using motion history | |
CN111611903B (zh) | 动作识别模型的训练方法、使用方法、装置、设备和介质 | |
US10671887B2 (en) | Best image crop selection | |
JP2013065103A (ja) | 追跡装置、追跡方法およびプログラム | |
JP2020009141A (ja) | 機械学習装置及び方法 | |
JP2019101919A (ja) | 情報処理装置、情報処理方法、コンピュータプログラムおよび記憶媒体 | |
Jiao et al. | Comparing representations in tracking for event camera-based slam | |
CN112561963A (zh) | 目标跟踪的方法、装置、路侧设备以及存储介质 | |
US11521392B2 (en) | Image processing apparatus and image processing method for image analysis process | |
Fazl-Ersi et al. | Region classification for robust floor detection in indoor environments | |
CN113632077A (zh) | 识别信息赋予装置、识别信息赋予方法以及程序 | |
JP2007510994A (ja) | ビデオ画像内でのオブジェクトトラッキング | |
CN114663796A (zh) | 一种目标人物持续跟踪方法、装置及系统 | |
Yang et al. | Skeleton-based hand gesture recognition for assembly line operation | |
US20160085312A1 (en) | Gesture recognition system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |