(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022191674
(43)【公開日】2022-12-28
(54)【発明の名称】行動解析装置、行動解析方法及び行動解析プログラム
(51)【国際特許分類】
G06T 7/20 20170101AFI20221221BHJP
G06T 7/73 20170101ALI20221221BHJP
G06T 7/60 20170101ALI20221221BHJP
【FI】
G06T7/20 300Z
G06T7/73
G06T7/60 150D
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021100042
(22)【出願日】2021-06-16
(11)【特許番号】
(45)【特許公報発行日】2022-10-21
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】坂上 勉
(72)【発明者】
【氏名】廣橋 美葵
(72)【発明者】
【氏名】田中 太樹
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA04
5L096FA09
5L096FA67
5L096FA69
5L096HA02
5L096HA09
5L096JA11
(57)【要約】
【課題】事前に必要な設定作業の負荷を軽減しつつ、画像データから人の行動内容を特定できるようにする。
【解決手段】骨格情報抽出部24は、画像データに映った被写体について、骨格の関節の位置を示す骨格情報を抽出する。行動特定部25は、関節の位置に基づく解析項目を示す対象部品を用いて構成された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、取得された骨格情報が行動解析ルールにおける解析条件を満たす場合に、解析条件に対応付けられた行動内容が示す行動を前記被写体が行っていると特定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
骨格の関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とが組み合わされて構成された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動特定部
を備える行動解析装置。
【請求項2】
関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とを組み合わせた解析条件を指定させる条件指定部と、
前記条件指定部によって指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成するルール生成部と
を備える行動解析装置。
【請求項3】
前記対象部品は、解析項目毎に用意されており、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成された
請求項1又は2に記載の行動解析装置。
【請求項4】
前記内容部品は、解析内容毎に用意されており、処理対象とする対象部品を示す設定値が設定されるパラメータを用いて構成された
請求項1から3までのいずれか1項に記載の行動解析装置。
【請求項5】
前記解析条件は、さらに、他の内容部品による解析結果に対する解析内容を示す内容部品を用いて構成された
請求項1から4までのいずれか1項に記載の行動解析装置。
【請求項6】
前記内容部品は、解析内容毎に用意されており、処理対象とする対象部品と、処理対象とする解析結果の判定元の内容部品との少なくともいずれかを示す設定値が設定されるパラメータを用いて構成された
請求項5に記載の行動解析装置。
【請求項7】
前記解析項目は、処理対象とする複数の関節についての相対的な位置関係と、処理対象とする関節の位置の動きとの少なくともいずれかを含む
請求項1から6までのいずれか1項に記載の行動解析装置。
【請求項8】
前記解析項目は、固定された物体の位置と、処理対象とする1つ以上の関節の位置との位置関係を含む
請求項1から7までのいずれか1項に記載の行動解析装置。
【請求項9】
コンピュータが、骨格の関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とが組み合わされて構成された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動解析方法。
【請求項10】
骨格の関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とが組み合わされて構成された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動特定処理
を行う行動解析装置としてコンピュータを機能させる行動解析プログラム。
【請求項11】
コンピュータが、関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とを組み合わせた解析条件を指定させ、
コンピュータが、指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成する行動解析方法。
【請求項12】
関節の位置に基づく解析項目を示す対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品とを組み合わせた解析条件を指定させる条件指定処理と、
前記条件指定処理によって指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成するルール生成処理とを行う行動解析装置としてコンピュータを機能させる行動解析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像データから人の行動内容を特定する技術に関する。
【背景技術】
【0002】
映像を構成する画像データから人の2次元の関節位置情報を抽出して、人の姿勢等を特定することが行われている。
特許文献1には、人体の部位を複数の特徴点に分割し、それぞれの特徴点の形状特徴量を複数の姿勢モデルと比較して、最も類似する姿勢モデルを人体の姿勢と推定することが記載されている。形状特徴量は、関節の角度と方向と位置と等から計算される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された方法では、姿勢モデルを作成するためには、同じ姿勢をとっている人の画像データを学習データとして複数集める必要がある。
本開示は、事前に必要な設定作業の負荷を軽減しつつ、画像データから人の行動内容を特定できるようにすることを目的とする。
【課題を解決するための手段】
【0005】
本開示に係る行動解析装置は、
画像データに映った被写体について、骨格の関節の位置を示す骨格情報を抽出する骨格情報抽出部と、
関節の位置に基づく解析項目を示す対象部品を用いて構成された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、前記骨格情報取得部によって取得された前記骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動特定部と
を備える。
【発明の効果】
【0006】
本開示では、関節の位置に基づく解析項目を示す対象部品と、対象部品が示す解析項目に対する解析内容を示す内容部品とが組み合わされて構成された解析条件を行動内容に対応付けた行動解析ルールを用いて行動を特定する。対象部品と内容部品とを組み合わせて構成された解析条件を用いて行動を特定するため、事前に必要な設定作業として、特定する行動を行っている人等の画像データを取得する必要がない。したがって、事前に必要な設定作業の負荷を軽減しつつ、画像データから被写体の行動内容を特定可能である。
【図面の簡単な説明】
【0007】
【
図1】実施の形態1に係る行動解析装置10の構成図。
【
図2】実施の形態1に係る行動解析ルール31の説明図。
【
図6】実施の形態1に係る解析内容毎の処理対象とする値の説明図。
【
図8】実施の形態1に係る行動解析ルール31の具体例の説明図。
【
図9】実施の形態1に係る行動解析ルール31の具体例の説明図。
【
図10】実施の形態1に係る事前処理のフローチャート。
【
図11】実施の形態1に係る特定処理のフローチャート。
【
図12】変形例3に係る行動解析装置10の構成図。
【発明を実施するための形態】
【0008】
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る行動解析装置10の構成を説明する。
行動解析装置10は、画像データから画像データに映った被写体の行動を特定するためのコンピュータである。実施の形態1では、被写体は人である。しかし、被写体は、人に限らず、犬、猫といった動物であってもよい。また、被写体は、駆動するロボットであってもよい。
行動解析装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0009】
プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
【0010】
メモリ12は、データを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
【0011】
ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
【0012】
通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
【0013】
行動解析装置10は、通信インタフェース14を介して、1台以上のカメラ41と接続されている。
【0014】
行動解析装置10は、機能構成要素として、条件指定部21と、ルール生成部22と、フレーム抽出部23と、骨格情報抽出部24と、行動特定部25と、通知部26とを備える。行動解析装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、行動解析装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、行動解析装置10の各機能構成要素の機能が実現される。
【0015】
ストレージ13には、行動解析ルール31と、対象部品32と、内容部品33とが記憶される。
【0016】
図1では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。
【0017】
***動作の説明***
図2から
図11を参照して、実施の形態1に係る行動解析装置10の動作を説明する。
実施の形態1に係る行動解析装置10の動作手順は、実施の形態1に係る行動解析方法に相当する。また、実施の形態1に係る行動解析装置10の動作を実現するプログラムは、実施の形態1に係る行動解析プログラムに相当する。
【0018】
行動解析装置10の動作は、行動解析ルール31を設定する事前処理と、行動解析ルール31を用いて画像データに映った人の行動を特定する特定処理とに分けられる。
【0019】
図2を参照して、実施の形態1に係る行動解析ルール31を説明する。
行動解析ルール31は、解析条件が行動内容に対応付けられて構成される。
解析条件は、対象部品32と内容部品33とが組み合わされて構成される。対象部品32は、処理対象とする関節の位置に基づく解析項目を示す部品である。対象部品32は、解析項目毎に用意される。内容部品33は、対象部品32が示す解析項目と、他の内容部品33による解析結果との少なくともいずれかに対する解析内容を示す部品である。内容部品33は、解析内容毎に用意される。
【0020】
図3を参照して、実施の形態1に係る解析項目を説明する。
解析項目としては、X座標と、Y座標と、関節角度と、ベクトル角度と、距離(X座標)と、距離(Y座標)と、距離(ユークリッド)と、速度と、運動量と、動作といった項目がある。X座標と、Y座標と、関節角度と、ベクトル角度と、距離(X座標)と、距離(Y座標)と、距離(ユークリッド)とは、解析内容の分類を表す解析種別が姿勢である。速度と運動量と動作とは、それぞれ解析種別が速度と運動量と動作とである。
【0021】
解析項目“X座標”は、処理対象とする1つの関節のX座標が解析する対象であることを意味する。解析項目“Y座標”は、処理対象とする1つの関節のY座標が解析する対象であることを意味する。
解析項目“関節角度”は、処理対象とする関節の角度が解析する対象であることを意味する。解析項目“関節角度”は、処理対象とする関節として3つの関節a,b,cが指定され、関節aの位置と関節bの位置とを結んだ直線と、関節bの位置と関節cの位置とを結んだ直線との成す角度が解析する対象であることを意味する。例えば、処理対象とする関節として、右肩、右肘、右手首が指定された場合には、右肩の位置と右肘の位置とを結んだ直線と、右肘の位置と右手首の位置とを結んだ直線との成す角度、つまり右肘の角度が解析項目となる。
解析項目“ベクトル角度”は、処理対象とする4つの関節のうち2つの関節の位置から特定されるベクトルと、残り2つの関節の位置から特定されるベクトルとの成す角度が解析する対象であることを意味する。解析項目“ベクトル角度”は、処理対象とする関節として4つの関節a,b,c,dが指定され、関節aの位置から関節bの位置へのベクトルと、関節cの位置から関節dの位置へのベクトルとの成す角度が解析する対象であることを意味する。
解析項目“距離(X座標)”は、処理対象とする2つの関節の間のX座標の距離(X軸方向の距離)が解析する対象であることを意味する。解析項目“距離(Y座標)”は、処理対象とする2つの関節の間のY座標の距離(Y軸方向の距離)が解析する対象であることを意味する。解析項目“距離(ユークリッド)”は、処理対象とする2つの関節の間のユークリッド距離が解析する対象であることを意味する。つまり、解析項目“距離(X座標)”,“距離(Y座標)”,“距離(ユークリッド)”は、処理対象とする複数の関節についての相対的な位置関係が解析する対象であることを意味する。
解析項目“速度”は、映像を構成する2つのフレームの画像データ間における、処理対象とする関節の移動量が解析する対象であることを意味する。解析項目“運動量”は、映像を構成する指定されたフレームの画像データ間における、処理対象とする関節の移動量が解析する対象であることを意味する。解析項目“速度”及び解析項目“運動量”は、処理対象とする関節として1つ以上の関節が指定される。処理対象とする関節が1つだけ指定された場合には、関節の移動量が解析項目であり、処理対象とする関節が2つ以上指定された場合には、指定された各関節の移動量の合計が解析する対象である。
解析項目“動作”は、処理対象とする関節の移動方向が解析する対象であることを意味する。具体的には、解析項目“動作”は、処理対象とする関節が指定方向に移動しているか否かが解析する対象であることを意味する。つまり、解析項目“速度”,“動作”は、処理対象とする関節の位置の動きが解析する対象であることを意味する。
【0022】
図4を参照して、実施の形態1に係る対象部品32を説明する。
対象部品32は、対象部品32を識別するための識別子が設定されるパラメータと、処理対象とする関節を示す設定値が設定されるパラメータとを用いて構成される。
例えば、解析項目“Y座標”についての対象部品32は、識別子が設定されるパラメータt1と、処理対象とする関節を示す設定値が設定されるパラメータt2とを用いて構成される。同様に、解析項目“速度”についての対象部品32は、識別子が設定されるパラメータt3と、処理対象とする関節を示す設定値が設定されるパラメータt4とを用いて構成される。また、解析項目“距離(X座標)”についての対象部品32は、識別子が設定されるパラメータt5と、処理対象とする関節を示す設定値が設定される2つのパラメータt6,t7とを用いて構成される。
【0023】
図5を参照して、実施の形態1に係る解析内容を説明する。
解析内容としては、論理積と、論理和と、否定と、比較と、継続判定と、履歴判定と、繰返判定といったものがある。論理積と論理和と否定とは、解析内容の分類を表すルール種別が論理ルールである。比較は、ルール種別が比較である。継続判定と履歴判定とは、ルール種別が時間判定ルールである。繰返判定は、ルール種別が回数判定ルールである。
【0024】
解析内容“論理積”は、処理対象とする2つの値の論理積を解析結果として返すこと意味する。解析内容“論理和”は、処理対象とする2つの値の論理和を解析結果として返すこと意味する。解析内容“否定”は、処理対象とする1つの値の否定を解析結果として返すこと意味する。
解析内容“比較”は、処理対象とする2つの値を比較して、比較が正しい場合には真(1)を、比較が誤りである場合には偽(0)を解析結果として返すこと意味する。比較には、GT:“値1”>“値2”と、LT:“値1”<“値2”と、EQ“値1”=“値2”とがある。
解析内容“継続判定”は、処理対象とする1つの値が下限時間以上上限時間未満の間継続して真(1)である場合には真(1)を、継続していない場合には偽(0)を解析結果として返すこと意味する。
解析内容“履歴判定”は、処理対象とする1つの値が第1時刻から第2時刻の間の1つ以上のフレームの画像データについて真(1)であった場合には真(1)を、得られていない場合には偽(0)を解析結果として返すこと意味する。
解析内容“繰返判定”は、処理対象とする1つの値が第1時刻から第2時刻の間の指定数以上のフレームの画像データについて真(1)であった場合には真(1)を、得られていない場合には偽(0)を解析結果として返すこと意味する。
【0025】
図6を参照して、実施の形態1に係る解析内容毎の処理対象とする値について説明する。
ルール種別が、論理ルールと時間判定ルールと回数判定ルールとである解析内容については、処理対象とする値として、内容部品33による解析結果をとる。つまり、上述した解析内容のうち比較以外の論理積と論理和と否定と継続判定と履歴判定と繰返判定とは、処理対象とする値として、内容部品33による解析結果をとる。
一方、ルール種別が比較ルールである解析内容は、処理対象とする値として、対象部品32が示す解析項目と、数値とをとる。つまり、上述した解析内容のうち比較は、処理対象とする値として、対象部品32が示す解析項目と、数値とをとる。
【0026】
図7を参照して、実施の形態1に係る内容部品33を説明する。
内容部品33は、内容部品33を識別するための識別子が設定されるパラメータと、処理対象とする値を示す設定値が設定されるパラメータとを用いて構成される。処理対象とする値は、上述した通り、解析内容に応じて、内容部品33による解析結果と、対象部品32が示す解析項目と、数値とのいずれかになる。
例えば、解析内容“論理和”についての内容部品33は、識別子が設定されるパラメータc1と、処理対象とする値を示す設定値である内容部品33の識別子が設定される2つのパラメータc2,c3とを用いて構成される。また、解析内容“比較”についての内容部品33は、識別子が設定されるパラメータc4と、処理対象とする値を示す設定値である対象部品32の識別子又は数値が設定される2つのパラメータc5,c6と、比較演算であるGT,LT,EQが設定されるパラメータc7とを用いて構成される。
なお、
図7では、解析内容“比較”についての内容部品33は、比較演算であるGT,LT,EQのいずれかが評価タイプとしてパラメータc7に設定される構成になっている。しかし、比較演算であるGT,LT,EQそれぞれについて別々に内容部品33を用意しておいてもよい。この場合には、比較演算であるGT,LT,EQが設定されるパラメータc7は必要ない。
【0027】
図8及び
図9を参照して、実施の形態1に係る行動解析ルール31の具体例を説明する。
図8及び
図9では、行動解析ルール31は、XML(Extensible Markup Language)のプログラムコードにより構成されている。
図8及び
図9の左端の数値は、行動解析ルール31の行数を表している。この行数から分かるように、
図9に記載されたプログラムコードは、
図8に記載されたプログラムコードの続きになっている。
【0028】
図8及び
図9では、2行目から44行目のプログラムコードが1つの行動内容についての行動解析ルール31を表している。実際には、44行目と45行目との間に他の行動内容についての行動解析ルール31が記述される。
2行目から44行目のプログラムコードは、2行目に記載されたように、“手を振る”という行動内容についての行動解析ルール31である。3行目から43行目のプログラムコードが解析条件を表している。
解析条件のうち、3行目から19行目のプログラムコードは、解析項目に関するプログラムコードであり、対象部品32に対応している。解析条件のうち、20行目から43行目のプログラムコードは、解析内容に関するプログラムコードであり、内容部品33に対応している。
【0029】
4行目から6行目のプログラムコードと、7行目から9行目のプログラムコードと、10行目から12行目のプログラムコードとは、それぞれ解析項目“Y座標”についての対象部品32である。
4行目から6行目のプログラムコードは、識別子として“C1”がパラメータに設定され、処理対象とする関節を示す設定値として“右手首”がパラメータに設定されている。つまり、4行目から6行目のプログラムコードは、識別子が“C1”であり、“右手首”のY座標を解析項目とする対象部品32である。4行目から6行目のプログラムコードが実行されると、“右手首”のY座標の値が取得される。
同様に、7行目から9行目のプログラムコードは、識別子が“C2”であり、“首”のY座標を解析項目とする対象部品32である。7行目から9行目のプログラムコードが実行されると、“首”のY座標の値が取得される。また、同様に、10行目から12行目のプログラムコードは、識別子が“C3”であり、“左手首”のY座標を解析項目とする対象部品32である。10行目から12行目のプログラムコードが実行されると、“左首”のY座標の値が取得される。
【0030】
13行目から15行目のプログラムコードと、16行目から18行目のプログラムコードとは、それぞれ解析項目“速度”についての対象部品32である。
13行目から15行目のプログラムコードは、識別子として“C4”がパラメータに設定され、処理対象とする関節を示す設定値として“右手首”がパラメータに設定されている。つまり、13行目から15行目のプログラムコードは、識別子が“C4”であり、“右手首”の速度を解析項目とする対象部品32である。13行目から15行目のプログラムコードが実行されると、“右手首”の速度が取得される。
同様に、16行目から18行目のプログラムコードは、識別子が“C5”であり、“左手首”の速度を解析項目とする対象部品32である。16行目から18行目のプログラムコードが実行されると、“左手首”の速度が取得される。
【0031】
23行目から26行目のプログラムコードと、27行目から30行目のプログラムコードと、33行目から36行目のプログラムコードと、37行目から40行目のプログラムコードとは、それぞれ解析内容“比較”についての内容部品33である。
23行目から26行目のプログラムコードは、識別子として“R3”がパラメータに設定され、処理対象とする値として識別子“C1”及び識別子“C2”がパラメータに設定され、比較演算として“GT”がパラメータに設定されている。つまり、23行目から26行目のプログラムコードは、識別子が“R3”であり、識別子“C1”の対象部品32で取得された値が、識別子“C2”の対象部品32で取得された値よりも大きいか否かを判定する内容部品33である。23行目から26行目のプログラムコードが実行されると、識別子“C1”の対象部品32で取得された値が、識別子“C2”の対象部品32で取得された値よりも大きい場合には真(1)が返され、そうでない場合には偽(0)が返される。識別子“C1”の対象部品32で取得された値は、右手首のY座標の値であり、識別子“C2”の対象部品32で取得された値は、首のY座標の値である。したがって、右手首が首よりも高い位置にある場合には真(1)が返され、そうでない場合には偽(0)が返される。
同様に、27行目から30行目のプログラムコードは、識別子が“R4”であり、識別子“C4”の対象部品32で取得された値が、数値“30”よりも大きいか否かを判定する内容部品33である。識別子“C4”の対象部品32で取得された値は、右手首の速度である。したがって、右手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。また、同様に、33行目から36行目のプログラムコードは、識別子が“R6”であり、識別子“C3”の対象部品32で取得された値が、識別子“C2”の対象部品32で取得された値よりも大きいか否かを判定する内容部品33である。識別子“C3”の対象部品32で取得された値は、左手首のY座標の値であり、識別子“C2”の対象部品32で取得された値は、首のY座標の値である。したがって、左手首が首よりも高い位置にある場合には真(1)が返され、そうでない場合には偽(0)が返される。また、同様に、37行目から40行目のプログラムコードは、識別子が“R7”であり、識別子“C5”の対象部品32で取得された値が、数値“30”よりも大きいか否かを判定する内容部品33である。識別子“C4”の対象部品32で取得された値は、左手首の速度である。したがって、左手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。
【0032】
22行目及び31行目のプログラムコードと、32行目及び41行目のプログラムコードとは、解析内容“論理積”についての内容部品33である。
22行目及び31行目のプログラムコードは、識別子として“R2”がパラメータに設定され、処理対象とする値として識別子“R3”及び識別子“R4”がパラメータに設定されている。なお、22行目及び31行目のプログラムコードは、識別子“R2”の内容部品33に、識別子“R3”の内容部品33と、識別子“R4”の内容部品33とが入れ子の状態で記述されることにより、識別子“R2”の内容部品33で処理対象とする値として識別子“R3”及び識別子“R4”が設定されている。つまり、22行目及び31行目のプログラムコードは、識別子が“R2”であり、識別子“R3”の内容部品33で返された値と、識別子“R4”の内容部品33で返された値との論理積を返す内容部品33である。識別子“R3”の内容部品33では、右手首が首よりも高い位置にある場合には真(1)が返され、そうでない場合には偽(0)が返される。識別子“R4”の内容部品33では、右手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。したがって、右手首が首よりも高い位置にあり、かつ、右手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。
同様に、32行目及び41行目のプログラムコードは、識別子が“R5”であり、識別子“R6”の内容部品33で返された値と、識別子“R7”の内容部品33で返された値との論理積を返す内容部品33である。識別子“R6”の内容部品33では、左手首が首よりも高い位置にある場合には真(1)が返され、そうでない場合には偽(0)が返される。識別子“R7”の内容部品33では、左手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。したがって、左手首が首よりも高い位置にあり、かつ、左手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。
【0033】
21行目及び42行目のプログラムコードは、解析内容“論理和”についての内容部品33である。21行目及び42行目のプログラムコードは、識別子として“R1”がパラメータに設定され、処理対象とする値として識別子“R2”及び識別子“R5”がパラメータに設定されている。つまり、21行目及び42行目のプログラムコードは、識別子が“R1”であり、識別子“R2”の内容部品33で返された値と、識別子“R5”の内容部品33で返された値との論理和を返す内容部品33である。識別子“R2”の内容部品33では、右手首が首よりも高い位置にあり、かつ、右手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。識別子“R5”の内容部品33では、左手首が首よりも高い位置にあり、かつ、左手首の速度が30よりも速い場合には真(1)が返され、そうでない場合には偽(0)が返される。したがって、右手首と左手首とのどちらか一方でも、首の位置より高く、かつ、速度が速い場合には真(1)が返され、そうでない場合には偽(0)が返される。
【0034】
20行目及び43行目のプログラムコードは、解析内容“継続判定”についての内容部品33である。20行目及び43行目のプログラムコードは、識別子として“R0”がパラメータに設定され、処理対象とする値として識別子“R1”がパラメータに設定され、下限時間として3(秒)がパラメータに設定されている。なお、上限時間はパラメータに設定されていない。つまり、20行目及び43行目のプログラムコードは、識別子が“R0”であり、識別子“R1”の内容部品33で返された値が真(1)である状態が、下限時間以上継続しているか否か判定する内容部品33である。識別子“R1”の内容部品33は、右手首と左手首とのどちらか一方でも、首の位置より高く、かつ、速度が速い場合には真(1)が返され、そうでない場合には偽(0)が返される。したがって、右手首と左手首とのどちらか一方でも、首の位置より高く、かつ、速度が速い状態が3(秒)以上継続した場合には真(1)が返され、そうでない場合には偽(0)が返される。
【0035】
図10を参照して、実施の形態1に係る事前処理を説明する。
(ステップS11:条件指定処理)
条件指定部21は、関節の位置に基づく解析項目を示す対象部品32と、対象部品32が示す解析項目に対する解析内容を示す内容部品33とを組み合わせた解析条件をユーザに指定させる。ユーザはSE(System Engineer)もしくは顧客であり、顧客が直接解析条件を入力することもできる。
上述したように、解析項目毎に対象部品32が用意され、解析内容毎に内容部品33が用意されている。条件指定部21は、これらの対象部品32及び内容部品33を提供して、
図8及び
図9を参照して説明したように、対象部品32及び内容部品33を組み合わせて解析条件を指定させる。具体的には、条件指定部21は、
図4に示す対象部品32と、
図7に示す内容部品33とのように、プログラムコードで記述された対象部品32及び内容部品33を表示して、
図8及び
図9を参照して説明したように、対象部品32及び内容部品33をユーザに組み合わさせ、パラメータを設定させて、
図8及び
図9の3行目から43行目のような解析条件をユーザに作成させる。なお、条件指定部21は、プログラムコードで記述された対象部品32と内容部品33とを直接表示するのではなく、対象部品32及び内容部品33の組合せ方法と、設定するパラメータとを指定させるGUI画面を表示してもよい。そして、ユーザにGUI画面を操作させて、対象部品32及び内容部品33の組合せ方法と、設定するパラメータとを指定させることにより、解析条件を作成させてもよい。
【0036】
(ステップS12:ルール生成処理)
ルール生成部22は、ステップS11で指定された解析条件に対応する行動内容の名称を指定させて、解析条件と行動内容とを対応付けた行動解析ルール31を生成する。
具体的には、ルール生成部22は、ユーザによって指定された行動内容の名称を
図8の2行目のように解析条件と行動内容とを対応づけて設定することにより、行動解析ルール31を生成する。ルール生成部22は、行動解析ルール31をストレージ13に書き込む。
【0037】
図11を参照して、実施の形態1に係る特定処理を説明する。
(ステップS21:ルール取得処理)
行動特定部25は、事前処理で生成された行動解析ルール31をストレージ13から読み出す。
図8及び
図9では、“手を振る”という行動内容についての行動解析ルール31だけが示されていた。しかし、“立ち上がる”、“歩く”といった複数の行動内容についての行動解析ルール31が生成されていてもよい。この場合には、
図9の45行目以降に、“立ち上がる”、“歩く”といった他の行動内容についての行動解析ルール31が記述される。
【0038】
(ステップS22:画像読込処理)
フレーム抽出部23は、カメラ41によって得られた新しいフレームの画像データを読み込む。フレーム抽出部23は、読み込まれた画像データをメモリ12に書き込む。フレーム抽出部23は、一定時間以上前のフレームの画像データについては、メモリ12から削除する。例えば、必要になる過去一定数のフレーム(例えば、150フレーム)の画像データだけをメモリ12に記憶しておくようにしてもよい。
なお、新しいフレームの画像データがない場合には、フレーム抽出部23は処理を終了する。
【0039】
(ステップS23:骨格情報抽出処理)
骨格情報抽出部24は、ステップS22で取得された新しい画像データに映った人である被写体について、骨格の関節の位置を示す骨格情報を抽出する。骨格情報の抽出方法は、既存の技術を用いればよい。なお、骨格情報は、関節の位置だけでなく、目、口、鼻、耳といった体の部位の位置も示していてもよい。骨格情報抽出部24は、抽出された骨格情報を、画像データと対応付けてメモリ12に書き込む。
【0040】
なお、ステップS22からステップS23の処理は、行動解析装置10の外部の装置によって実現されてもよい。この場合には、行動解析装置10は、外部の装置によって抽出された骨格情報を取得すればよい。
【0041】
(ステップS24:行動特定処理)
行動特定部25は、ステップS23で取得された骨格情報が行動解析ルール31における解析条件を満たす場合に、解析条件に対応付けられた行動内容が示す行動を被写体が行っていると特定する。
具体的には、行動特定部25は、各行動内容についての行動解析ルール31を実行する。つまり、行動特定部25は、
図8及び
図9に示すような各行動内容についての行動解析ルール31を実行する。
図8及び
図9に示す行動解析ルール31が実行された場合には、3行目から19行目のプログラムコードにより各解析項目が特定され、20行目から43行目のプログラムコードによって解析条件を満たすか否かが判定される。ここでは、行動特定部25は、ある行動内容についての行動解析ルール31で真(1)が返された場合には、その行動内容が示す行動を被写体が行っていると特定する。
なお、2つ以上の行動を被写体が行っていると特定される場合もある。例えば、立ち上がりながら手を振っている場合には、“立ち上がる”という行動と、“手を振る”という行動との両方を行っていると特定される。
【0042】
ここで、解析項目“Y座標”については、1フレームの画像データだけから特定可能である。しかし、解析項目“速度”については、2フレーム以上の画像データが必要になる。このように複数のフレームの画像データが必要な解析項目の対象部品32は、直近に取得されたフレームの画像データについての骨格情報に加え、必要な数の過去のフレームの画像データについての骨格情報をメモリ12から読み出して、使用する。例えば、解析項目“速度”についての対象部品32は、直近に取得されたフレームの画像データについての骨格情報に加え、1つ前のフレームの画像データについての骨格情報をメモリ12から読み出して、使用する。
【0043】
また、複数のフレームを用いる際には、被写体が同一人物であることを特定する必要がある場合がある。例えば、解析項目“速度”の場合には、直近に取得されたフレームの画像データに映っている被写体と、1つ前のフレームの画像データに映っている被写体とが同一人物であることを特定する必要がある。このように同一人物であることを特定する処理については、対象部品32に実装されているものとする。例えば、被写体の位置等により同一人物であることを特定することが可能である。
また、解析項目の設定によっては、複数の被写体の間に相関関係があるか否かを判定する必要がある場合がある。相関関係があるかないかを判定する処理についても、必要に応じて対象部品32に実装されているものとする。
【0044】
(ステップS25:特定判定処理)
行動特定部25は、ステップS24で行動内容が特定されたか否かを判定する。
行動特定部25は、行動内容が特定された場合には、処理をステップS26に進める。一方、行動特定部25は、行動内容が特定されなかった場合には、処理をステップS22に戻す。
【0045】
(ステップS26:通知処理)
通知部26は、特定された行動内容を通知する。具体例としては、通知部26は、特定された行動内容を示す情報を表示装置に表示する、特定された行動内容に応じた態様で警告灯を点灯させる、管理者の端末に特定された行動を示すメッセージを送信するといった方法により、特定された行動内容を通知する。
【0046】
***実施の形態1の効果***
以上のように、実施の形態1に係る行動解析装置10は、対象部品32と内容部品33とを組み合わせて構成された解析条件を用いて行動を特定するため、事前に必要な設定作業として、特定する行動を行っている人の画像データを取得する必要がない。したがって、事前に必要な設定作業の負荷を軽減しつつ、画像データから人の行動内容を特定可能である。
【0047】
また、カメラ41の設置位置又は設置角度によって取得される画像データが異なる。特許文献1に記載された方法では、画像データを得るためのカメラの向き又は角度により形状特徴量が変化するため、カメラの向き及び角度が変われば、姿勢モデルを作成し直す必要がある。そのため、姿勢を特定する前提として事前に必要になる姿勢モデルの作成にかかる負担が重い。実施の形態1に係る行動解析装置10は、対象部品32と内容部品33とを組み合わせて構成された解析条件を用いて行動を特定するため、カメラ41の設置位置又は設置角度に応じて、パラメータの調整を行う等して容易に対応可能である。したがって、事前に必要な設定作業の負荷を軽減しつつ、画像データから人の行動内容を特定可能である。
【0048】
また、機械学習を行って生成された学習済モデルを用いた推論では、推論の結果が適切に得られない場合に、その原因を特定することが難しい。実施の形態1に係る行動解析装置10は、対象部品32と内容部品33とを組み合わせて構成された解析条件を用いて行動を特定するため、どの条件により適切な結果が得られなかったかを容易に特定可能である。そのため、解析条件の改善を容易に行うことができる。
【0049】
また、実施の形態1に係る行動解析装置10は、論理演算により複数の条件を組み合わせて解析条件を構成することが可能である。そのため、状況に応じた柔軟な条件設定を行うことが可能であり、適切に行動を特定することが可能である。
【0050】
また、実施の形態1に係る対象部品32及び内容部品33は、XMLといったタグ形式の言語を用いて記述可能である。そのため、プログラムに詳しくない人であっても、解析条件の内容を理解し易い。
【0051】
***他の構成***
<変形例1>
実施の形態1では、行動解析装置10は、事前処理と特定処理との両方を行った。しかし、事前処理を行う装置と、特定処理を行う装置とを分けてもよい。この場合には、事前処理を行う装置は、行動解析ルール31を外部の記憶装置に記憶する。そして、特定処理を行う装置は、外部の記憶装置から行動解析ルール31を読み出して使用する。なお、外部の記憶装置に代えて、事前処理を行う装置又は特定処理を行う装置のストレージが用いられてもよい。
【0052】
<変形例2>
実施の形態1では、手を振るという行動を特定する例を説明した。行動特定装置10は、人に加えて背景に映った物体を考慮して行動を特定することも可能である。具体的には、行動特定装置10は、画像データに映った、位置が固定された什器又は壁等の物体と、骨格情報が示す関節の位置との関係を考慮して、行動を特定することができる。例えば、レジやレジカウンタの位置に対して、いずれか一方の手首がレジの現金トレー近辺にあるのに対して、その人物の足首の位置(人物の立っている位置)がレジカウンタの外側にあるという状態を特定することができる。
この場合には、行動特定装置10は、固定された物体の位置と、処理対象とする1つ以上の関節の位置との位置関係を解析する対象とする解析項目を用いて行動を特定すればよい。
これにより、例えば、店舗のカウンタ越しにレジに手を入れるといった行動を特定することが考えられる。
【0053】
<変形例3>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例3として、各機能構成要素はハードウェアで実現されてもよい。この変形例3について、実施の形態1と異なる点を説明する。
【0054】
図12を参照して、変形例3に係る行動解析装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、行動解析装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0055】
電子回路15としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路15で実現してもよいし、各機能構成要素を複数の電子回路15に分散させて実現してもよい。
【0056】
<変形例4>
変形例4として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0057】
プロセッサ11とメモリ12とストレージ13と電子回路15とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0058】
また、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
【0059】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【0060】
10 行動解析装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、21 条件指定部、22 ルール生成部、23 フレーム抽出部、24 骨格情報抽出部、25 行動特定部、26 通知部、31 行動解析ルール、32 対象部品、33 内容部品、41 カメラ。
【手続補正書】
【提出日】2022-07-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
骨格の関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動特定部
を備える行動解析装置。
【請求項2】
関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を指定させる条件指定部と、
前記条件指定部によって指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成するルール生成部と
を備える行動解析装置。
【請求項3】
前記対象部品は、解析項目毎に用意された
請求項1又は2に記載の行動解析装置。
【請求項4】
前記内容部品は、解析内容毎に用意された
請求項1から3までのいずれか1項に記載の行動解析装置。
【請求項5】
前記解析条件は、さらに、他の内容部品による解析結果に対する解析内容を示す内容部品を用いて構成された
請求項1から4までのいずれか1項に記載の行動解析装置。
【請求項6】
前記内容部品は、解析内容毎に用意されており、処理対象とする対象部品と、処理対象とする解析結果の判定元の内容部品との少なくともいずれかを示す設定値が設定されるパラメータを用いて構成された
請求項5に記載の行動解析装置。
【請求項7】
前記解析項目は、処理対象とする複数の関節についての相対的な位置関係と、処理対象とする関節の位置の動きとの少なくともいずれかを含む
請求項1から6までのいずれか1項に記載の行動解析装置。
【請求項8】
前記解析項目は、固定された物体の位置と、処理対象とする1つ以上の関節の位置との位置関係を含む
請求項1から7までのいずれか1項に記載の行動解析装置。
【請求項9】
コンピュータが、骨格の関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動解析方法。
【請求項10】
骨格の関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を行動内容に対応付けた行動解析ルールを記憶装置から読み出して、画像データに映った被写体についての骨格の関節の位置を示す骨格情報が前記行動解析ルールにおける前記解析条件を満たす場合に、前記解析条件に対応付けられた前記行動内容が示す行動を前記被写体が行っていると特定する行動特定処理
を行う行動解析装置としてコンピュータを機能させる行動解析プログラム。
【請求項11】
コンピュータが、関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を指定させ、
コンピュータが、指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成する行動解析方法。
【請求項12】
関節の位置に基づく解析項目を示す対象部品であって、処理対象とする関節を示す設定値が設定されるパラメータを用いて構成される複数の対象部品のうちのいずれかの対象部品と、前記対象部品が示す前記解析項目に対する解析内容を示す内容部品であって、対象部品を示す設定値が設定されるパラメータを用いて構成される複数の内容部品のうちのいずれかの内容部品と、が選択され組み合わせて生成された解析条件に対して、前記対象部品のパラメータに処理対象とする関節を示す設定値が設定され、前記内容部品のパラメータに対象部品を示す設定値が設定された解析条件を指定させる条件指定処理と、
前記条件指定処理によって指定された前記解析条件に対応する行動内容を指定させて、前記解析条件と前記行動内容とを対応付けた行動解析ルールを生成するルール生成処理とを行う行動解析装置としてコンピュータを機能させる行動解析プログラム。