説明

ジェスチャ認識装置、及びプログラム

【課題】従来技術と比較して、より演算量が少ない処理でジェスチャを認識する。
【解決手段】ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きを検出し(102)、検出された各方向の傾きの各時系列データの周波数分析を、各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算し(104、106、108)、各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを人物(例えばドライバ)のジェスチャとして認識する(110、112、114、116、118)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジェスチャ認識装置、及びプログラムに関する。
【背景技術】
【0002】
従来から、ユーザの意志を示す動作を認識する認識装置が知られている(例えば、特許文献1参照)。
【0003】
特許文献1に記載の認識装置では、カメラにより撮影された画像データに基づいて、顔方向検知部がユーザの顔の向きを検知し、視線方向検知部がユーザの視線の向きを検知し、うなずき認識部が、顔が下を向き、顔の向きに対して視線が上方向を向く状態である場合、ユーザがうなずいたと認識する(ユーザが頷くジェスチャを行ったと認識する)と共に、首振り認識部が、顔が右または左に向くのに対し、視線が顔の向きに対して左右方向に逆方向を向く状態である場合、ユーザが首を横に振ったと認識する(ユーザが首を振るジェスチャを行ったと認識する)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−94619号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載の認識装置では、ユーザの顔の向きと視線の向きとを用いて、ユーザの頭部ジェスチャ(上記の例では、ユーザが頷くジェスチャ、ユーザが首を振るジェスチャ)を認識するための処理が行われており、ジェスチャを認識するための処理の演算量(処理量)が多い、という問題がある。
【0006】
本発明は上記問題点を解決するために成されたものであり、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができるジェスチャ認識装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の目的を達成するために、第1の発明のジェスチャ認識装置は、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きを検出する検出手段と、前記検出手段により検出された各方向の傾きの各時系列データの周波数分析を前記各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する演算手段と、前記演算手段により各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段とを含んで構成されている。
【0008】
第1の発明のジェスチャ認識装置によれば、演算手段が、人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きの各時系列データの周波数分析を、各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する。そして、ジェスチャ認識手段が、演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0009】
このように、第1の発明のジェスチャ認識装置によれば、人物の視線の向きを用いずに、顔の方向(ロール方向、ピッチ方向、ヨー方向の少なくとも2つの方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0010】
また、第1の発明のジェスチャ認識装置によれば、所定周波数帯域のパワー値を各方向の傾き毎に演算し、演算されたパワー値の各々と対応する各閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、ヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。
【0011】
また、前記ジェスチャ認識手段を、前記最も大きいパワー値に対応する方向がロール方向である場合には、首を傾げるジェスチャを前記人物のジェスチャとして認識し、前記最も大きいパワー値に対応する方向がピッチ方向である場合には、頷くジェスチャを前記人物のジェスチャとして認識し、前記最も大きいパワー値に対応する方向がヨー方向である場合には、首を振るジェスチャを前記人物のジェスチャとして認識するようにしてもよい。
【0012】
また、前記検出手段を、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きを検出するようにしてもよい。
【0013】
また、上記の目的を達成するために、第2の発明のジェスチャ認識装置は、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する検出手段と、前記検出手段により検出された方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する演算手段と、前記演算手段により演算されたパワー値と前記検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段とを含んで構成されている。
【0014】
第2の発明のジェスチャ認識装置によれば、演算手段が、人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する。そして、ジェスチャ認識手段が、演算されたパワー値と検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0015】
このように、第2の発明のジェスチャ認識装置によれば、人物の視線の向きを用いずに、顔の方向(ロール方向、ピッチ方向、またはヨー方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0016】
また、第2の発明のジェスチャ認識装置によれば、所定周波数帯域のパワー値を演算し、演算されたパワー値と対応する閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、またはヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。
【0017】
また、前記ジェスチャ認識手段を、前記対応する閾値を超えたパワー値に対応する方向がロール方向である場合には、首を傾げるジェスチャを前記人物のジェスチャとして認識し、前記対応する閾値を超えたパワー値に対応する方向がピッチ方向である場合には、頷くジェスチャを前記人物のジェスチャとして認識し、前記対応する閾値を超えたパワー値に対応する方向がヨー方向である場合には、首を振るジェスチャを前記人物のジェスチャとして認識するようにしてもよい。
【0018】
また、上記の目的を達成するために第3の発明のプログラムは、コンピュータを、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きを検出する検出手段により検出された各方向の傾きの各時系列データの周波数分析を前記各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する演算手段、及び前記演算手段により各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段として機能させるためのプログラムである。
【0019】
第3の発明のプログラムによれば、演算手段が、人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きの各時系列データの周波数分析を、各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する。そして、ジェスチャ認識手段が、演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0020】
このように、第3の発明のプログラムによれば、人物の視線の向きを用いずに、顔の各方向(ロール方向、ピッチ方向、及びヨー方向の少なくとも2つの方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0021】
また、第3の発明のプログラムによれば、所定周波数帯域のパワー値を各方向の傾き毎に演算し、演算されたパワー値の各々と対応する各閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、ヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。
【0022】
また、上記の目的を達成するために第4の発明のプログラムは、コンピュータを、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する検出手段により検出された方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する演算手段、及び前記演算手段により演算されたパワー値と前記検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段として機能させるためのプログラムである。
【0023】
第4の発明のプログラムによれば、演算手段が、人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する。そして、ジェスチャ認識手段が、演算されたパワー値と検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0024】
このように、第4の発明のプログラムによれば、人物の視線の向きを用いずに、顔の方向(ロール方向、ピッチ方向、またはヨー方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0025】
また、第4の発明のプログラムによれば、所定周波数帯域のパワー値を演算し、演算されたパワー値と対応する閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、またはヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。
【発明の効果】
【0026】
以上、説明したように、本発明に係るジェスチャ認識装置、及びプログラムによれば、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる、という効果が得られる。
【図面の簡単な説明】
【0027】
【図1】第1の実施の形態に係るジェスチャ認識装置を示す図である。
【図2】第1の実施の形態に係る方向―ジェスチャ対応テーブルの模式図である。
【図3】第1の実施の形態に係るジェスチャ認識装置の機能ブロック図である。
【図4】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を示すフローチャートである。
【図5】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図6】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図7】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図8】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図9】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図10】第1の実施の形態に係るジェスチャ認識装置が実行するジェスチャ認識処理を説明するための図である。
【図11】第2の実施の形態に係るジェスチャ認識装置を示す図である。
【図12】第2の実施の形態に係るジェスチャ認識装置の機能ブロック図である。
【発明を実施するための形態】
【0028】
以下、図面を参照して、本発明のジェスチャ認識装置の各実施の形態を詳細に説明する。
【0029】
[第1の実施の形態]
まず、第1の実施の形態のジェスチャ認識装置について説明する。なお、本実施の形態では、車両に搭載された場合のジェスチャ認識装置について説明する。また、ジェスチャが認識される対象の人物として、車両のドライバを例に挙げて説明する。
【0030】
図1に示すように、本実施の形態に係るジェスチャ認識装置10は、顔撮影用カメラ12、及びコンピュータ14を備えている。
【0031】
顔撮影用カメラ12は、人物、例えばドライバの顔及び頭部を撮影可能な位置に設けられている。顔撮影用カメラ12は、撮影した画像の画像データを出力する。すなわち、顔撮影用カメラ12によって、人物の顔の画像である顔画像の画像データ及び頭部の画像である頭部画像の画像データが出力される。なお、このような人物は、ジェスチャを行うことが考えられるので、ジェスチャを行った人物の顔画像の画像データ及び頭部画像の画像データが顔撮影用カメラ12から出力される。
【0032】
コンピュータ14は、ROM(Read Only Memory)14a、HDD(Hard Disk Drive)14b、CPU(Central Processing Unit)14c、RAM(Random Access Memory)14d、及びI/O(入出力)ポート14eを備えている。これらROM14a、HDD14b、CPU14c、RAM14d、及びI/Oポート14eは互いにバス14fで接続されている。
【0033】
記憶媒体(記憶手段)としてのROM14aには、OS等の基本プログラムが記憶されている。
【0034】
記憶媒体(記憶手段)としてのHDD14bには、詳細を以下で説明するジェスチャ認識処理の処理ルーチンを実行するためのプログラムが記憶されている。
【0035】
また、HDD18bには、図2に示す、方向―ジェスチャ対応テーブル16(以下、方向―ジェスチャ対応テーブル16を、テーブル16と呼ぶ)が記憶されている。同図に図示されるように、テーブル16には、人物の予め定められた顔の傾きの方向と、人物の顔の傾きの方向が示す(方向に対応する)人物の頭部ジェスチャ(ジェスチャ)とが対応付けられて登録されている。
【0036】
例えば、図2に図示されるように、人物の顔の傾きの方向である「ロール方向」と、人物の顔の傾きがロール方向である場合のジェスチャである首を傾げるジェスチャを示す「首かしげ(首傾げ)」が対応付けられて、それぞれフィールド16a、フィールド16bに登録されている。また、人物の顔の傾きの方向である「ピッチ方向」と、人物の顔の傾きがピッチ方向である場合のジェスチャである頷くジェスチャを示す「頷き」が対応付けられて、それぞれフィールド16a、フィールド16bに登録されている。更に、人物の顔の傾きの方向である「ヨー方向」と、人物の顔の傾きがヨー方向である場合のジェスチャである首を振るジェスチャを示す「首振り」が対応付けられて、それぞれフィールド16a、フィールド16bに登録されている。
【0037】
CPU14cは、プログラムをROM14a及びHDD14bから読み出して実行する。
【0038】
RAM14dには、各種データが一時的に記憶される。
【0039】
I/Oポート14eには、顔撮影用カメラ12が接続されている。
【0040】
コンピュータ14を以下で詳細を説明するジェスチャ認識処理に従って機能ブロックで表すと、図3に示すように、検出手段70、演算手段72、及びジェスチャ認識手段74で表すことができる。
【0041】
検出手段70は、ジェスチャを行った人物の顔のロール方向の傾き(人物の顔のロール方向の角度)、ピッチ方向の傾き(人物の顔のピッチ方向の角度)、及びヨー方向の傾き(人物の顔のヨー方向の角度)を検出する。
【0042】
演算手段72は、検出手段70により検出された各方向の傾きの各時系列データ(ロール方向の傾きの時系列データ、ピッチ方向の傾きの時系列データ、ヨー方向の傾きの時系列データ)の周波数分析を、各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する。
【0043】
ジェスチャ認識手段74は、演算手段72により各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを人物(例えばドライバ)のジェスチャとして認識する。
【0044】
次に、コンピュータ14のCPU14cが実行するジェスチャ認識処理の処理ルーチンについて図4を参照して説明する。
【0045】
なお、本実施の形態において、ジェスチャ認識処理は、ジェスチャ認識装置10の電源(図示せず)がオンされると、実行される。また、ジェスチャ認識処理は、車両に乗車している人物であってジェスチャが認識される対象となる人物の操作が必要な時間帯である状況である場合にのみ、実行されるようにしてもよい。ここで、この「人物の操作が必要な時間帯」とは、車両に搭載された装置(例えばカーナビゲーション装置(図示しない))が、所定の処理(例えば、ルート探索処理)を行う場合に、ユーザの操作(例えば、タッチパネルの操作、またはマイクに対する音声の入力操作)によって所定の情報(例えば、目的地)が入力されるのを必要とする時間帯などのことを指す。
【0046】
まず、ステップ100で、所定時間(例えば、1/33秒)間隔で、顔撮影用カメラ12からの画像データ(人物の顔画像の画像データ及び頭部画像の画像データ)を取得することを開始する。これにより、以降、所定時間(例えば、1/33秒)間隔で、顔撮影用カメラ12からの画像データが取得される。
【0047】
次のステップ102では、取得された画像データに対して、公知の技術(例えば、特開2000−97676号公報に記載の技術)を適用することにより、顔撮影用カメラ12からの画像データから、ドライバの顔向き(ピッチ角、ヨー角、ロール角)を検出する。
【0048】
ここで、ドライバの顔向き(顔角度)として検出されたピッチ角、ヨー角、ロール角は、それぞれ、ジェスチャを行ったドライバの顔のロール方向の傾き、ピッチ方向の傾き、ヨー方向の傾きと考えることができる。すなわち、ステップ102では、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きを検出する。なお、ステップ102は、本発明の検出手段に対応する。
【0049】
次のステップ104では、上記ステップ102で検出されたドライバの顔向きの数が、所定数N個以上となったか否かを判定する。ここで、このN個の数は、詳細を以下で説明するステップ106での高速フーリエ変換(FFT)による周波数解析に必要な数であり、例えば、ステップ106での高速フーリエ変換による周波数解析においてサンプリングの周期が33Hzである場合には、N個として128個が設定される。なお、この場合における高速フーリエ変換の際に用いられるデータのフレーム長は約3.9秒である。
【0050】
ステップ104で、上記ステップ102で検出されたドライバの顔向きの数が、所定数N個以上となったと判定された場合には、上記ステップ102により検出された各方向の傾きの各時系列データ(ロール方向の傾きの時系列データ、ピッチ方向の傾きの時系列データ、ヨー方向の傾きの時系列データ)が、ステップ106での処理に適したデータであると判断して、次のステップ106へ進む。
【0051】
ここで、ステップ104で、上記ステップ102で検出されたドライバの顔向きの数が、所定数N個以上となったと判定された場合には、図5(A)、図6(A)、図7(A)、図8(A)、図9(A)、図10(A)に示すような、時間(秒、sec)に対する顔角度のデータが上記ステップ102で検出されている。図5(A)は、ドライバがニュートラルの状態である場合(すなわち、ドライバが首を傾げるジェスチャを行っていない場合)のロール方向の傾きのデータの一例を示しており、図6(A)は、ドライバが首を傾げるジェスチャを行った場合のロール方向の傾きのデータの一例を示している。また、図7(A)は、ドライバがニュートラルの状態である場合(すなわち、ドライバが頷くジェスチャを行っていない場合)のピッチ方向の傾きのデータの一例を示しており、図8(A)は、ドライバが頷くジェスチャを行った場合のピッチ方向の傾きのデータの一例を示している。更に、図9(A)は、ドライバがニュートラルの状態である場合(すなわち、ドライバが首を振るジェスチャを行っていない場合)のヨー方向の傾きのデータの一例を示しており、図10(A)は、ドライバが首を振るジェスチャを行った場合のヨー方向の傾きのデータの一例を示している。なお、これらのデータは、RAM14dに記憶されている。
【0052】
一方、ステップ104で、上記ステップ102で検出されたドライバの顔向きの数が、所定数N個以上となっていない(所定数N個未満である)と判定された場合には、ステップ102へ戻り、再び上記で説明した処理を行う。なお、ステップ102で処理が実行されてから、再びステップ102へ戻って処理が実行されるまでの間隔は、顔撮影用カメラ12からの画像データが取得される間隔(上記の例では、1/33秒)とほぼ同一であることが好ましい。
【0053】
ステップ106では、上記ステップ102により検出された各方向の傾きの各時系列データ(ロール方向の傾きの時系列データ、ピッチ方向の傾きの時系列データ、ヨー方向の傾きの時系列データ)に対して、高速フーリエ変換による周波数解析を各時系列データ毎に行って、各周波数におけるパワー(パワー値)を各時系列データ毎に演算する。すなわち、ステップ106では、変動成分のデータ(周波数、パワー)を演算する。ここで、ステップ106で、図5(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図5(B)に示すようなものとなる。また、ステップ106で、図6(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図6(B)に示すようなものとなる。また、ステップ106で、図7(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図7(B)に示すようなものとなる。また、ステップ106で、図8(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図8(B)に示すようなものとなる。また、ステップ106で、図9(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図9(B)に示すようなものとなる。更に、ステップ106で、図10(A)に示すような時系列データに対して周波数解析を行った場合には、周波数解析の結果は、図10(B)に示すようなものとなる。
【0054】
次のステップ108では、上記ステップ106の周波数解析の結果から、所定の周波数範囲(下限の周波数fl〜上限の周波数fhの周波数帯域)の帯域パワー(所定周波数帯域のパワー値)を各時系列データ毎に演算する。これにより、ロール方向の傾きの時系列データに対して行われた周波数解析の結果から、帯域パワーPrが演算され、ピッチ方向の傾きの時系列データに対して行われた周波数解析の結果から、帯域パワーPpが演算され、ヨー方向の傾きの時系列データに対して行われた周波数解析の結果から、帯域パワーPyが演算される。ここで、下限の周波数flとして、例えば、0.5Hzを用いることができる。また、上限の周波数fhとして、例えば、2.0Hzを用いることができる。なお、各時系列データ毎に周波数帯域の下限の周波数fl及び上限の周波数fhを設定して各時系列データ毎に帯域パワーを演算してもよい。ステップ108で、図5(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図5(C)に示すようなものとなる。また、ステップ108で、図6(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図6(C)に示すようなものとなる。また、ステップ108で、図7(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図7(C)に示すようなものとなる。また、ステップ108で、図8(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図8(C)に示すようなものとなる。また、ステップ108で、図9(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図9(C)に示すようなものとなる。更に、ステップ108で、図10(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、図10(C)に示すようなものとなる。
【0055】
以上、説明したように、ステップ104、106、108では、上記ステップ102により検出された各方向の傾きの各時系列データ(ロール方向の傾きの時系列データ、ピッチ方向の傾きの時系列データ、ヨー方向の傾きの時系列データ)の周波数分析を、各方向の傾き(ロール方向、ピッチ方向、ヨー方向)毎に行って、所定周波数帯域のパワー値(Pr、Pp、Py)を各方向の傾き毎に演算する。なお、ステップ104、106、108は、本発明の演算手段に対応する。
【0056】
次のステップ110では、帯域パワーPr、Pp、Pyの各々と、各方向(ロール方向、ピッチ方向、ヨー方向)に対応させて定めた閾値Vr、Vp、Vyの各々とを比較し、少なくとも1つの帯域パワーが対応する閾値を超えるか否かを判定する。ここで、「少なくとも1つの帯域パワーが対応する閾値を超える」場合とは、Prが閾値Vrを超えるか、帯域パワーPpが閾値Vpを超えるか、または、帯域パワーPyが閾値Vyを超える場合である。
【0057】
ここで、閾値Vr、Vp、Vyの設定方法の一例を挙げる。対象とする多数のジェスチャ(本実施の形態では、多数の首を傾げるジェスチャ、多数の頷くジェスチャ、多数の首を振るジェスチャ)に対して上記と同様の処理を行って帯域パワーを演算し、各ジェスチャについて判定正解率が最大となるような帯域パワーをそれぞれ実験によって予め求めておき、求められたそれぞれの帯域パワーを閾値Vr、Vp、Vyとして設定しておくこととする。
【0058】
ステップ110で、否定判定された場合(全ての帯域パワーが対応する閾値を超えないと判定された場合)には、次のステップ120に進む。ステップ120では、ドライバのジェスチャは首を傾げるジェスチャ、頷くジェスチャ、及び首を振るジェスチャ以外のジェスチャであると認識する。そして、ステップ102に戻る。
【0059】
一方、ステップ110で、肯定判定された場合(少なくとも1つの帯域パワーが対応する閾値を超えると判定された場合)には、次のステップ112へ進む。
【0060】
ステップ112では、対応する閾値を超える帯域パワーの各々について、{(帯域パワー)−(対応する閾値)}の値を演算する。より具体的には、帯域パワーPrが閾値Vrを超える場合には、(Pr−Vr)の値を演算し、帯域パワーPpが閾値Vpを超える場合には、(Pp−Vp)の値を演算し、帯域パワーPyが閾値Vyを超える場合には、(Py−Vy)の値を演算する。
【0061】
次のステップ114では、上記ステップ112で演算された値のうち最大の値の帯域パワーを特定する。そして、特定された帯域パワーに対応する方向を特定する。より具体的には、ステップ114では、例えば、(Pr−Vr)の値が最大の値である場合には、帯域パワーPrが特定され、帯域パワーPrに対応する方向としてロール方向が特定される。また、ステップ114では、例えば、(Pp−Vp)の値が最大の値である場合には、帯域パワーPpが特定され、帯域パワーPpに対応する方向としてピッチ方向が特定される。また、ステップ114では、例えば、(Py−Vy)の値が最大の値である場合には、帯域パワーPyが特定され、帯域パワーPyに対応する方向としてヨー方向が特定される。
【0062】
次のステップ116では、上記ステップ114で特定された方向に対応するジェスチャを示す表現を、テーブル16から取得する。ステップ116では、例えば、上記ステップ114で特定された方向がロール方向である場合には、テーブル16から、首を傾げるジェスチャを示す「首かしげ」が取得される。また、ステップ116では、例えば、上記ステップ114で特定された方向がピッチ方向である場合には、テーブル16から、頷くジェスチャを示す「頷き」が取得される。更に、ステップ116では、例えば、上記ステップ114で特定された方向がヨー方向である場合には、テーブル16から、首を振るジェスチャを示す「首振り」が取得される。
【0063】
次のステップ118では、上記ステップ116で取得された表現が示すジェスチャを人物(例えばドライバ)のジェスチャとして認識する。ステップ118では、例えば、上記ステップ116で「首かしげ」が取得された場合には、首を傾げるジェスチャを人物のジェスチャとして認識する。また、ステップ118では、例えば、上記ステップ116で「頷き」が取得された場合には、頷くジェスチャを人物のジェスチャとして認識する。また、ステップ118では、例えば、上記ステップ116で「首振り」が取得された場合には、首を振るジェスチャを人物のジェスチャとして認識する。そして、ステップ102に戻る。
【0064】
以上、説明したように、ステップ110、112、114、116、118では、上記ステップ108により各方向の傾き毎に演算されたパワー値Pr、Pp、Pyの各々と各方向に対応させて定めた閾値Vr、Vp、Vyとを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを人物(例えばドライバ)のジェスチャとして認識する。
【0065】
以上、本実施の形態のジェスチャ認識処理について説明した。なお、ステップ100、102は検出手段70によって実行され、ステップ104、106、108は演算手段72によって実行され、ステップ110、112、114、116、118、120はジェスチャ認識手段74によって実行される。
【0066】
以上、本実施の形態のジェスチャ認識装置10について説明した。本実施の形態のジェスチャ認識装置10によれば、人物の視線の向きを用いずに、顔の各方向(ロール方向、ピッチ方向、ヨー方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0067】
また、本実施の形態のジェスチャ認識装置10によれば、所定周波数帯域のパワー値を各方向の傾き毎に演算し、演算されたパワー値の各々と対応する各閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、ヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。なお、基本姿勢とは人物のニュートラルな状態におけるロール角、ピッチ角、ヨー角を指す。
【0068】
なお、上記では、顔撮影用カメラ12からの画像データからドライバの顔向き(ピッチ角、ヨー角、ロール角)を検出する例について説明したが、本発明はこれに限られない。例えば、顔向き(ピッチ角、ヨー角、ロール角)を検出して検出結果を示す信号を出力する角度センサを人物の頭部に設置して、この角度センサからの信号に基づいて、顔向き(ピッチ角、ヨー角、ロール角)を検出するようにしてもよい。
【0069】
また、上記のステップ102では、ジェスチャを行ったドライバの顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの3種類の方向の傾きを検出して、3種類の方向の傾きに対してステップ104以降の処理を行う例について説明したが、上記のステップ102で、ジェスチャを行ったドライバの顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの複数の方向の傾きのうち少なくとも2つの方向の傾きを検出して、検出された傾きに対して、ステップ104以降の処理を同様に行うようにしてもよい。
【0070】
[第2の実施の形態]
次に第2の実施の形態について説明する。第1の実施の形態では、ジェスチャを行ったドライバの顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの複数の方向の傾きの3種類の方向の傾き、または、ジェスチャを行ったドライバの顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの複数の方向の傾きのうち少なくとも2つの方向の傾きを検出する場合について説明したが、第2の実施の形態では、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する。なお、第1の実施の形態と同様の構成及び処理(ステップ)については同様の符号を付して説明を省略する場合がある。
【0071】
第2の実施の形態では、図11に示すジェスチャ認識処理の処理ルーチンを実行するためのプログラムがHDD14bに記憶されており、CPU14cがHDD14bから図11に示すジェスチャ認識処理の処理ルーチンを実行するためのプログラムを読み出して、図11に示すジェスチャ認識処理を実行する。
【0072】
本実施の形態のコンピュータ14を以下で詳細を説明する図11に示すジェスチャ認識処理に従って機能ブロックで表すと、図12に示すように、検出手段76、演算手段78、及びジェスチャ認識手段80で表すことができる。
【0073】
検出手段76は、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する。
【0074】
演算手段78は、検出手段76により検出された方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する。
【0075】
ジェスチャ認識手段80は、演算手段78により演算されたパワー値と検出手段76により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0076】
次に、コンピュータ14のCPU14cが実行する図11に示すジェスチャ認識処理の処理ルーチンについて説明する。なお、本実施の形態において、図11に示すジェスチャ認識処理は、第1の実施の形態で説明したタイミングで実行される。
【0077】
まず、ステップ100で、第1の実施の形態と同様に、所定時間(例えば、1/33秒)間隔で、顔撮影用カメラ12からの画像データ(人物の顔画像の画像データ及び頭部画像の画像データ)を取得することを開始する。
【0078】
次のステップ202では、取得された画像データに対して、公知の技術(例えば、特開2000−97676号公報に記載の技術)を適用することにより、顔撮影用カメラ12からの画像データから、ドライバの顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する。なお、以下では、ステップ202で、ドライバの顔のロール方向の傾き(ロール角)を検出した場合について説明する。また、ステップ202は、本発明の検出手段に対応する。
【0079】
次のステップ204では、上記ステップ202で検出されたドライバの顔向きの数が、所定数N´個以上となったか否かを判定する。ここで、このN´個の数は、詳細を以下で説明するステップ206での高速フーリエ変換(FFT)による周波数解析に必要な数であり、例えば、ステップ206での高速フーリエ変換による周波数解析においてサンプリングの周期が33Hzである場合には、N´個として128個が設定される。
【0080】
ステップ204で、上記ステップ102で検出されたドライバの顔向きの数が、所定数N´個以上となったと判定された場合には、上記ステップ202により検出されたロール方向の傾きの時系列データが、ステップ206での処理に適したデータであると判断して、次のステップ206へ進む。
【0081】
ここで、ステップ204で、上記ステップ202で検出されたドライバの顔向きの数が、所定数N個以上となったと判定された場合には、第1の実施の形態で説明したように、図5(A)、図6(A)に示すような、時間(秒、sec)に対する顔角度のデータが上記ステップ202で検出されている。
【0082】
一方、ステップ204で、上記ステップ202で検出されたドライバの顔向きの数が、所定数N´個以上となっていない(所定数N´個未満である)と判定された場合には、ステップ202へ戻り、再び上記で説明した処理を行う。
【0083】
ステップ206では、上記ステップ202により検出されたロール方向の傾きの時系列データに対して、高速フーリエ変換による周波数解析を行って、各周波数におけるパワー(パワー値)を演算する。すなわち、ステップ206では、変動成分のデータ(周波数、パワー)を演算する。ここで、ステップ206で、図5(A)に示すような時系列データに対して周波数解析を行った場合には、第1の実施の形態で説明したように、周波数解析の結果は、図5(B)に示すようなものとなる。また、ステップ206で、図6(A)に示すような時系列データに対して周波数解析を行った場合には、第1の実施の形態で説明したように、周波数解析の結果は、図6(B)に示すようなものとなる。
【0084】
次のステップ208では、上記ステップ206の周波数解析の結果から、所定の周波数範囲(下限の周波数fl〜上限の周波数fhの周波数帯域)の帯域パワー(所定周波数帯域のパワー値)を演算する。これにより、ロール方向の傾きの時系列データに対して行われた周波数解析の結果から、帯域パワーPrが演算される。ここで、下限の周波数flとして、例えば、0.5Hzを用いることができる。また、上限の周波数fhとして、例えば、2.0Hzを用いることができる。ステップ208で、図5(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、第1の実施の形態で説明したように、図5(C)に示すようなものとなる。また、ステップ208で、図6(B)に示すような変動成分データ(周波数、パワー)に対して帯域パワーを演算した場合には、その結果は、第1の実施の形態で説明したように、図6(C)に示すようなものとなる。
【0085】
以上、説明したように、ステップ204、206、208では、上記ステップ202により検出されたロール方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値Prを演算する。なお、ステップ204、206、208は、本発明の演算手段に対応する。
【0086】
次のステップ210では、帯域パワーPrと、ロール方向に対応させて定めた閾値Vrとを比較し、帯域パワーPrが対応する閾値Vrを超えるか否かを判定する。
【0087】
なお、閾値Vr、Vp、Vyの設定方法については、第1の実施の形態と同様である。
【0088】
ステップ210で、否定判定された場合(帯域パワーPrが対応する閾値Vrを超えないと判定された場合)には、次のステップ218に進む。ステップ218では、ドライバのジェスチャは首を傾げるジェスチャ以外のジェスチャであると認識する。そして、ステップ202に戻る。
【0089】
一方、ステップ210で、肯定判定された場合(帯域パワーPrが対応する閾値Vrを超えると判定された場合)には、次のステップ212へ進む。
【0090】
次のステップ212では、上記ステップ208で演算された帯域パワーに対応する方向を特定する。より具体的には、ステップ212では、例えば、上記ステップ208で帯域パワーPrが演算された場合には、帯域パワーPrに対応する方向としてロール方向が特定される。また、ステップ212では、例えば、上記ステップ208で帯域パワーPpが演算された場合には、帯域パワーPpに対応する方向としてピッチ方向が特定される。また、ステップ212では、例えば、上記ステップ208で帯域パワーPyが演算された場合には、帯域パワーPyに対応する方向としてヨー方向が特定される。
【0091】
次のステップ214では、上記ステップ212で特定された方向に対応するジェスチャを示す表現を、テーブル16から取得する。
【0092】
次のステップ216では、上記ステップ214で取得された表現が示すジェスチャを人物(例えばドライバ)のジェスチャとして認識する。そして、ステップ202に戻る。
【0093】
以上、説明したように、ステップ210、212、214、216では、上記ステップ208により演算されたパワー値(上記の一例ではPr)と上記ステップ202により傾きが検出された方向(上記の一例ではロール方向)に対応させて定めた閾値(上記の一例ではVr)とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを人物のジェスチャとして認識する。
【0094】
以上、本実施の形態のジェスチャ認識処理について説明した。なお、ステップ100、202は検出手段76によって実行され、ステップ204、206、208は演算手段78によって実行され、ステップ210、212、214、216、218はジェスチャ認識手段80によって実行される。
【0095】
以上、第2の実施の形態のジェスチャ認識装置について説明した。本実施の形態のジェスチャ認識装置によれば、人物の視線の向きを用いずに、顔の方向(ロール方向、ピッチ方向、またはヨー方向)の傾きを用いてジェスチャを認識しているので、従来技術と比較して、より演算量が少ない処理でジェスチャを認識することができる。
【0096】
また、本実施の形態のジェスチャ認識装置によれば、所定周波数帯域のパワー値を演算し、演算されたパワー値と対応する閾値とを比較することによりジェスチャを認識するので、基本姿勢(ロール角、ピッチ角、またはヨー角)が人物毎に異なっていても正確にジェスチャを認識することができる。
【0097】
なお、上記では、ステップ202で顔撮影用カメラ12からの画像データからドライバの顔向きとしてロール角を検出して、ステップ204以降の処理でロール角に対応する処理を行う例について説明したが、本発明はこれに限られない。例えば、ステップ202でドライバの顔向きとしてピッチ角を検出して、ステップ204以降の処理でピッチ角に対応する処理を行うようにしてもよい。この場合には、ステップ208で帯域パワーPpを演算し、ステップ210、212、214、216では、ステップ208で演算された帯域パワーPpとステップ202により傾きが検出されたピッチ方向に対応させて定めた閾値Vpとを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャ(この場合には、頷くジェスチャ)を人物のジェスチャとして認識する。同様に、ステップ202でドライバの顔向きとしてヨー角を検出して、ステップ204以降の処理でヨー角に対応する処理を行うようにしてもよい。この場合には、ステップ208で帯域パワーPyを演算し、ステップ210、212、214、216では、ステップ208で演算された帯域パワーPyとステップ202により傾きが検出されたヨー方向に対応させて定めた閾値Vyとを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャ(この場合には、首を振るジェスチャ)を人物のジェスチャとして認識する。
【0098】
また、第1の実施の形態のジェスチャ認識装置10及び第2の実施の形態のジェスチャ認識装置におけるジェスチャ(頭部ジェスチャ)の認識結果を用いて、人物の状態を推定することが可能となる。これは、人物(人)の心理状態は、しばしばジェスチャとして表現されるからである。例えば、人物が首を傾げるジェスチャを行ったと認識した場合には、この人物は困惑している状態であると推定できる。また、人物が頷くジェスチャを行ったと認識した場合には、この人物は同意している状態であると推定できる。更に、人物が首を振るジェスチャを行ったと認識した場合には、この人物は拒絶している状態であると推定できる。
【0099】
また、人と機械との対話装置において、推定した人の心理状態に応じて適切な対話を進めることが可能となる。より具体的には、例えば、情報検索時に機械側から「この条件でよろしいですか」と尋ねた場合に、人が首を傾げているジェスチャを行ったと認識された場合には、この人の心理状態は「困惑している状態であり、状況把握ができていない」と判断して、「内容がわかりませんか」と適切な対話を進めることが可能となる。また、情報検索時に機械側から「この条件でよろしいですか」と尋ねた場合に、人が首を振るジェスチャを行ったと認識された場合には、この人の心理状態は「拒絶している状態であり、条件に納得していない」と判断して、「お気に召しませんか。他の条件で探してみます。」等と適切な対話を進めることが可能となる。なお、「適切な対話を進める」とは、例えば、「円滑に対話を進める」ことである。また、第1の実施の形態のジェスチャ認識装置10及び第2の実施の形態のジェスチャ認識装置におけるジェスチャの認識結果は、対話装置に限られず、機器操作においても用いることができる。すなわち、機器を操作する人(ユーザ)の心理状態に応じた機器操作の誘導につなげることができる。
【符号の説明】
【0100】
10 ジェスチャ認識装置
12 顔撮影用カメラ
14 コンピュータ
14c CPU
16 方向―ジェスチャ対応テーブル
70 検出手段
72 演算手段
74 ジェスチャ認識手段

【特許請求の範囲】
【請求項1】
ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きを検出する検出手段と、
前記検出手段により検出された各方向の傾きの各時系列データの周波数分析を前記各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する演算手段と、
前記演算手段により各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段と、
を含むジェスチャ認識装置。
【請求項2】
前記ジェスチャ認識手段は、前記最も大きいパワー値に対応する方向がロール方向である場合には、首を傾げるジェスチャを前記人物のジェスチャとして認識し、前記最も大きいパワー値に対応する方向がピッチ方向である場合には、頷くジェスチャを前記人物のジェスチャとして認識し、前記最も大きいパワー値に対応する方向がヨー方向である場合には、首を振るジェスチャを前記人物のジェスチャとして認識する請求項1記載のジェスチャ認識装置。
【請求項3】
前記検出手段は、ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きを検出する請求項1または請求項2記載のジェスチャ認識装置。
【請求項4】
ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する検出手段と、
前記検出手段により検出された方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する演算手段と、
前記演算手段により演算されたパワー値と前記検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段と、
を含むジェスチャ認識装置。
【請求項5】
前記ジェスチャ認識手段は、前記対応する閾値を超えたパワー値に対応する方向がロール方向である場合には、首を傾げるジェスチャを前記人物のジェスチャとして認識し、前記対応する閾値を超えたパワー値に対応する方向がピッチ方向である場合には、頷くジェスチャを前記人物のジェスチャとして認識し、前記対応する閾値を超えたパワー値に対応する方向がヨー方向である場合には、首を振るジェスチャを前記人物のジェスチャとして認識する請求項4記載のジェスチャ認識装置。
【請求項6】
コンピュータを、
ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、及びヨー方向の傾きの少なくとも2つの方向の傾きを検出する検出手段により検出された各方向の傾きの各時系列データの周波数分析を前記各方向の傾き毎に行って、所定周波数帯域のパワー値を各方向の傾き毎に演算する演算手段、及び
前記演算手段により各方向の傾き毎に演算されたパワー値の各々と各方向に対応させて定めた閾値とを比較し、対応する閾値を超え、かつ対応する閾値との差が最も大きいパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段
として機能させるためのプログラム。
【請求項7】
コンピュータを、
ジェスチャを行った人物の顔のロール方向の傾き、ピッチ方向の傾き、またはヨー方向の傾きを検出する検出手段により検出された方向の傾きの時系列データの周波数分析を行って、所定周波数帯域のパワー値を演算する演算手段、及び
前記演算手段により演算されたパワー値と前記検出手段により傾きが検出された方向に対応させて定めた閾値とを比較し、対応する閾値を超えたパワー値に対応する方向に対応するジェスチャを前記人物のジェスチャとして認識するジェスチャ認識手段
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate