入力装置、入力認識方法
【課題】ユーザのジェスチャー等による操作入力を検知する入力装置において簡易な処理で精度の高い入力認識を行うようにする。
【解決手段】 赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出する。さらに検出した肌温度画像部のうちで、動きが観測される肌温度画像部を検出対象画像とする。そして検出対象画像の動き状態から操作入力を認識する。
【解決手段】 赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出する。さらに検出した肌温度画像部のうちで、動きが観測される肌温度画像部を検出対象画像とする。そして検出対象画像の動き状態から操作入力を認識する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は入力装置、入力認識方法に関し、例えばユーザのジェスチャー操作等を検知する装置及びその入力認識の技術に関する。
【先行技術文献】
【特許文献】
【0002】
【特許文献1】特開2001−282456号公報
【背景技術】
【0003】
上記特許文献1では、机上でのマンマシンインターフェースを実現する技術として、机上の手を赤外線カメラで撮像した画像から、指先形状の特徴を利用したパターンマッチングを行って指先位置を特定し、その座標を求め機器を操作する手法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示では、テレビジョン受像器などの電子機器に対して、ユーザが空間で手を移動させたり手を振ったりするような動作(以下、このような動作を「ジェスチャー」と総称する)を行うことで、操作入力を行うことができるようにすること考える。
この場合、テレビジョン受像器等にカメラを設置し、ユーザを撮像して、その撮像画像からユーザの手の動きを判定するということが考えられる。しかしながら、上記特許文献1の技術のように机上を観察対象とするものでない場合、多様な物体が観察されることとなる。例えばユーザの手以外に、顔、身体、周囲の家具、電灯などである。
【0005】
このような状況を想定した場合、カメラに撮像される多様の物体の中からユーザのジェスチャーとしての例えば手の動きを判定し、それを操作入力に反映させなければならない。
例えば特許文献1の技術では赤外線カメラで撮像された画像から、人の体温を基に手の画像を抽出することとしているが、机上ではなく空間での操作を想定すると、顔の部分なども同じく抽出されてしまう。
従って手の部分を抽出するには、多様な物体の中から手の形状的な特徴を抽出するなどの複雑な画像処理が必要となり、処理装置が複雑となり処理時間が増大してしまう。これは赤外線カメラを用いて簡便に検出対象物を抜き出すという利点に反する。
また赤外線カメラの撮像範囲内に、体温と同等もしくは温度が高い物体(暖房器具、電球等)が有った場合も同様な課題が生じる。
【0006】
そこで本開示では、赤外線カメラを用いた入力装置において、複雑な処理を行うことなく、ユーザが空間で行うジェスチャーを的確に操作として認識できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本開示の入力装置は、赤外線カメラと、所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、上記画像取込部に取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部とを備える。
【0008】
本開示の入力認識方法は、赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識方法である。
【0009】
即ち本開示では、赤外線カメラで撮像される温度分布画像により、人の肌の温度に相当する肌温度画像部を検出することで、容易に操作入力のためのジェスチャーを行った「手」等を認識できるようにする。但し、肌の温度を基準とするのみでは、人の顔などジェスチャー操作をしていない部分も肌温度画像部として認識されてしまう。そこで肌温度画像部のうちで、動きが観測される部分を検出対象画像(ジェスチャー操作を行っている手などの検出対象物の画像)として認識するようにする。そしてその検出対象画像の動き状態で操作入力を認識する。
【発明の効果】
【0010】
本開示によれば、ユーザの空間でのジェスチャー操作を、赤外線カメラを用いた撮像画像から、簡易な処理で精度良く認識できるようになるという効果がある。
【図面の簡単な説明】
【0011】
【図1】本開示の実施の形態の操作方式において電子機器と対向する操作者の様子の説明図である。
【図2】実施の形態のジェスチャー操作の例の説明図である。
【図3】実施の形態の入力装置のブロック図である。
【図4】実施の形態の入力装置の機能構成を示したブロック図である。
【図5】実施の形態の赤外線カメラで撮像される温度分布画像の説明図である。
【図6】実施の形態の画像メモリエリア及び重心座標メモリエリアの説明図である。
【図7】赤外線カメラで撮像される温度分布画像とその2値化画像の説明図である。
【図8】実施の形態の温度分布画像と2値化画像の説明図である。
【図9】実施の形態の差分画像と重心計算の説明図である。
【図10】実施の形態の2値化処理の説明図である。
【図11】実施の形態の差分画像の処理の説明図である。
【図12】第1の実施の形態の入力認識処理のフローチャートである。
【図13】赤外線カメラの位置が機器の下方にある場合の説明図である。
【図14】赤外線カメラの位置が機器の上方にある場合の説明図である。
【図15】第2の実施の形態の入力認識処理のフローチャートである。
【図16】第2の実施の形態の変形例の入力認識処理のフローチャートである。
【図17】第3の実施の形態の動き判定の説明図である。
【図18】第3の実施の形態の動き判定処理のフローチャートである。
【図19】第4の実施の形態の肌温度画像部の抽出の説明図である。
【図20】第4の実施の形態の閾値調整処理のフローチャートである。
【図21】第5の実施の形態の検出対象範囲設定の説明図である。
【図22】第5の実施の形態の入力認識処理のフローチャートである。
【図23】第5の実施の形態の検出対象範囲算出処理のフローチャートである。
【図24】第6の実施の形態の差分画像で検出対象画像が認識できなくなる場合の説明図である。
【図25】第6の実施の形態のメッセージ表示を行う場合の入力認識処理のフローチャートである。
【図26】第7の実施の形態の複数の検出対象画像が存在する場合の処理の説明図である。
【図27】第7の実施の形態の入力認識処理のフローチャートである。
【発明を実施するための形態】
【0012】
以下、実施の形態を次の順序で説明する。
<1.ジェスチャー入力概要>
<2.入力装置の構成>
<3.第1の実施の形態>
[3−1:入力認識の手法]
[3−2:入力認識処理]
[3−3:赤外線カメラの位置]
<4.第2の実施の形態>
<5.第3の実施の形態>
<6.第4の実施の形態>
<7.第5の実施の形態>
<8.第6の実施の形態>
<9.第7の実施の形態>
<10.変形例>
なお、実施の形態では、テレビジョン受像器に内蔵される入力装置の例とし、該入力装置は、ユーザの手の動きによるジェスチャー操作を認識する。テレビジョン受像器の制御部は、入力装置が認識した操作に応じて、各種機能の制御を行う例とする。
また、実施の形態で用いる用語は、以下の意味とする。
・温度分布画像・・・赤外線カメラで撮像される画像であり、各画素が被写体の温度に応じた画素値を持つ画像をいう。
・肌温度画像部・・・温度分布画像内で、人の肌の温度に相当する画像部分(画素領域)をいう。
・検出対象画像・・・肌温度画像部のうちで、動き状況を判断する対象、即ちジェスチャー操作の認識を行う対象物の画像である。本実施の形態の場合、操作者の手の画像となる。なお検出対象画像として温度分布画像等の画像上に表れているもの(例えばユーザの手)を「検出対象物」という。
【0013】
<1.ジェスチャー入力概要>
図1は本例の入力装置を備えたテレビジョン受像器20と、テレビジョン受像器20を視聴するユーザを示している。
テレビジョン受像器20の例えば筐体上方には、赤外線カメラ1が配置されている。この赤外線カメラ1は本例の入力装置の一部となる。
赤外線カメラ1によってユーザが撮像される。テレビジョン受像器20に内蔵された本例の入力装置は、赤外線カメラ1によって連続的に撮像される各フレームの撮像画像(温度分布画像)から、ユーザのジェスチャーを検出し、ジェスチャーの内容に応じて、ユーザの操作を認識する。
【0014】
図2はジェスチャー操作の例を示している。
図2Aはジェスチャー操作により、音量やチャンネルの操作を行う例を示している。例えばユーザがテレビジョン受像器20側(つまり赤外線カメラ1側)に向かって、手を上方に移動させると、音量アップ操作、手を下方に移動させると音量ダウン操作とする。また、手を左方に移動させるとチャンネルアップ、右方に移動させるとチャンネルダウンとする。
このように、各種のジェスチャー態様に対して操作内容を予め割り当てておき、入力装置は、ユーザのジェスチャーが、このいずれかに該当すると認識した場合に、それを該当する操作内容(音量操作やチャンネル操作)と認識する。
【0015】
もちろん、図2Aは一例に過ぎず、ジェスチャーの態様や操作内容は多様に考えられる。図2Bは、ユーザが手を右回りに回したり、左回りに回す例を示しているが、このようなジェスチャーの態様に、特定の操作内容、例えば音量アップ/ダウン等を割り当てても良い。
さらに図示しないが、手を左右に振る、手を前後に振る、手を三角形を描くように移動させる、手をZ次状に移動させる等、多様なジェスチャーの態様を特定の操作に割り当てることも当然に考えられる。
【0016】
<2.入力装置の構成>
テレビジョン受像器20に内蔵される本例の入力装置10の構成を図3に示す。
図3はテレビジョン受像器20の内部構成において、特に入力装置10に相当する部分を主に示したものである。
図示のようにテレビジョン受像器20内には、赤外線カメラ1、CPU(Central Processing Unit)2、RAM(Random Access Memory)3、ROM(Read Only Memory)4、インプット・アウトプットポート(I・Oポート)5、主機能部6と、それぞれを接続するバスBUSが設けられる。
【0017】
赤外線カメラ1は、図1に示したように例えばテレビジョン受像器20の筐体上方に装備され、ユーザ側を被写体として撮像する。これによりユーザ側の温度分布画像を得る。
主機能部6とは、テレビジョン受像器20の主たる機能部位を包括的に示したものである。即ち、チューナ部、受信した放送信号についてのデコード部、デコードした映像・音声信号についての処理部、表示駆動部、表示部、音声出力部等、通常のテレビジョン受像器20に設けられる構成要素を含む。
【0018】
CPU2、RAM3、ROM4は、テレビジョン受像器20の制御部としての各種処理を実行するために設けられるが、本例の入力装置10を構成する要素ともなる。
CPU2は、例えばROM4に記憶されたプログラムを実行することで、テレビジョン受像器20の全体を統括的に制御する。即ちCPU2は、ユーザ操作やプログラムに応じて、I・Oポート5を介して主機能部6に制御コマンドや制御データを送り、主機能部6において必要な動作が実行されるように制御する。その上でCPU2は、本例の入力装置10を実現するためにジェスチャー操作を認識する機能も有する。
【0019】
RAM3は各種データや処理係数の記憶、プログラムの展開、ワーク領域等、CPU2の各種処理に必要な記憶領域として用いられる。また入力装置10の機能として赤外線カメラ1で撮像される温度分布画像や、入力認識処理の過程で生成される画像、重心座標値等の記憶も行う。
ROM4は例えばCPU2が実行するプログラム、固定の係数値、調整値等の記憶を行う。
【0020】
入力装置10の構成を機能という点に注目してCPU2、RAM3、ROM4による機能を示したものが図4である。
CPU2、RAM3、ROM4によって、画像取込部11、入力認識部12、機器制御部13が形成される。
【0021】
画像取込部11は、赤外線カメラ1で所定の時間間隔で撮像される温度分布画像の取込を行う。例えば1フレーム間隔で温度分布画像を取り込む。
具体的には、赤外線カメラ1で撮像されたフレーム単位の撮像画像データ(温度分布画像)は、I・Oポート5を介してRAM3に記憶され、CPU2が温度分布画像に対して必要な処理を行うことができる状態とされる。画像取込部11とは、このようなRAM3及びCPU2で実現される機能部位を示している。
図5には、赤外線カメラ1で撮像される各フレーム(N−1、N、N+1、N+2)の温度分布画像の例を示している。
【0022】
入力認識部12は、画像取込部11により取り込まれた、時間的に連続した複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する処理を行う。
具体的にはCPU2が、各フレームの温度分布画像について後述する2値化処理や差分画像処理を行い、ユーザのジェスチャー操作を認識する処理のことであり、ROM4に記憶されたプログラムに基づいて、CPU2がRAM3を用いて実行する処理として、入力認識部12が実現される。
【0023】
機器制御部13は、入力認識部12で認識されたジェスチャー操作に応じて、主機能部6に対して必要な制御を行う。例えば音量アップのジェスチャー操作を認識した場合、機器制御部13は音量アップのコマンドを主機能部6に送信し、音量アップを実行させる。具体的には、ジェスチャー操作の認識に応じてCPU2が実行するコマンド発行動作として、機器制御部13が実現される。
【0024】
本例の入力装置10は、図4に示すように、少なくとも赤外線カメラ1、画像取込部11、入力認識部12を備えた構成となる。
入力認識部12として、機器制御部13を加えた構成としてもよい。
【0025】
なお、具体的な処理例は後述するが、入力認識部12の処理においては、RAM3で各種データ記憶が行われる。このために、入力認識部12を構成する要素として、RAM3に図6Aのようなメモリエリアが用意される。
即ち画像メモリエリアAR−a,AR−b,AR−c,AR−d、及び重心座標メモリエリアARGである。
詳しくは後述するが、画像メモリエリアAR−a,AR−bには、赤外線カメラ1で撮像された温度分布画像の2値化画像が記憶される。
画像メモリエリアAR−cには、画像メモリエリアAR−a,AR−bにおける2つの2値化画像の差分として求めた差分画像が記憶される。
画像メモリエリアAR−dには、差分画像からさらに微小領域を消去した後の差分画像が記憶される。
【0026】
重心座標メモリエリアARGには、画像メモリエリアAR−dに記憶された画像の重心位置が記憶される。
重心座標メモリエリアARGは図6Bのように、各時点で画像メモリエリアAR−dに記憶された画像の重心位置の座標(X値、Y値)が記憶されていく。この重心座標メモリエリアARGには、1つの検出対象画像について時間的に連続するn個の重心位置座標が記憶可能とされる。重心座標メモリエリアARGはリングメモリ形式で用いられn個の重心位置座標を記憶した後は、古い重心座標から上書き消去されていくようにされてもよい。
なお、図6Bは、1つの検出対象画像についての重心位置座標の記憶領域を示している。場合によっては、複数の検出対象画像について重心位置座標を記憶していくことも有り、その場合、図6Bのような記憶領域が複数用意されることとなる。
【0027】
<3.第1の実施の形態>
[3−1:入力認識の手法]
以上の構成を有する本例の入力装置10において実行される第1の実施の形態としての入力認識処理について説明する。
【0028】
まず実施の形態の入力認識処理の開発に至る事情を簡単に説明する。
赤外線カメラ1を用いて温度分布画像を得ることによれば、その温度分布からユーザの肌(手)の部分を検出できる。これは、画像解析等の複雑な処理を行うことなくユーザの手を判別し、ジェスチャー検出を行うという点で有用である。
【0029】
但し次の点で正確な検出が困難になるという事情があった。
赤外線カメラ1で撮像された画像は、上記の図5の様に連続した画像になっている。このような温度分布画像に対して、人の肌の部分を検出するには、所定の閾値で周囲温度より高い温度の部分を検出する。例えば、30℃を閾値として、画像を2値化する。
図7Aは赤外線カメラ1で撮像されるあるフレームの撮像画像(温度分布画像)であり、図7Bは、例えば30℃を閾値として2値化した画像である。
2値化により手の部分が検出されるのであるが、この図7Bからわかるように、手以外の部分、例えばユーザの顔の部分も検出されてしまう。また、体温よりも温度が高い物体、例えば照明器具等も、同様に検出されてしまい、結局、手、顔、その他温度が高い物体が同一に検出されてしまうことになる。
このように単純に2値化したのみでは、本来検出したい部分(例えば手の部分)のみが正確に検出できない。そこで本実施の形態では、赤外線カメラ1による温度分布画像を用いた上で、以下説明するように手の部分の検出、及びそれによる入力認識を行う。
【0030】
図8、図9、図10、図11で説明する。
図8は、赤外線カメラ1で撮像されたフレームNの温度分布画像と、その2値化画像Pic−aを示しており、また時間的に連続する次のフレームN+1の温度分布画像と、その2値化画像Pic−bを示している。
【0031】
本例の場合、温度分布画像についての2値化には2つの閾値を用いる。すなわち、まずは、体温よりも温度が低い物体と高い物体を排除して、体温に近い物のみ検出する為、体温より若干低い第1の閾値と、体温より若干高い第2の閾値を設定する。
図10Bは、フレームNとフレームN+1における画面上の或る水平ラインの画素毎の温度値を示している。これは図10Aの画像における一点鎖線で示した水平ラインの画素と考えればよい。水平ライン上の各画素の温度値は、概ね図10Bに実線で示したようになっている。つまり、手、顔、後方の照明の部分で温度が高くなっている。
図10Bにおける横軸は、1フレームの水平ラインの画素数を640画素とした場合の画素数で、縦軸は温度である。
そして、この或る水平ラインの各画素におけるフレームNの温度値を実線で示し、フレームN+1の温度値を破線で示している。
この図10Bにおいて温度が高くなっている領域は、手の部分(領域HD)と、顔の部分(領域FC)と、照明等の高温物体部分(領域HT)である。
【0032】
フレームN、N+1は、ユーザが手を動かしているときの撮像画像であり、このため手の画像に相当する領域HDでは、フレームN、N+1で高温となる画素がずれている。一方、顔や照明等は殆ど動きがないため、領域FCや領域HTでは、フレームN、N+1で高温となる画素はほぼ一致している。
【0033】
ここで上記のように、2つの閾値th1、th2により、温度分布画像の2値化を行う。
例えば32℃程度の、体温より若干低い第1の閾値th1と、体温より若干高い例えば38℃程度の第2の閾値th2である。
図10Cには、フレームNとフレームN+1について、それぞれ2値化をした状態を示している。即ち閾値th1〜閾値th2の温度範囲に含まれる画素を「1」とし、閾値th1以下、及び閾値th2以上の画素を「0」とする処理である。
閾値th1,th2を用いた2値化は、人の肌の温度に相当する部分を抽出し、人の肌より低温又は高温の部分を除外することを目的とする。
これにより、図10Cのように、フレームN、N+1でそれぞれ、手に相当する部分と顔に相当する部分で、「1」の領域が観測されることになる。つまり、2値化により肌温度画像部を抽出する。
なお、図10Cの例では、領域HTの照明等の部分も、わずかに「1」の領域が存在する。これは温度変化のエッジ部分に相当する画素部分などによる。
図8における2値化画像Pic−a、Pic−bは、以上のように2値化を行った結果の画像であり、肌温度画像部を抽出した画像となっている。(「1」の部分を白、「0」の部分を黒で示している)。
但し、肌以外の照明等のエッジ部分も、わずかに「1」の画素が存在する。
【0034】
ここまでは、主に肌温度画像部を抽出するために2値化を行ったが、続いて、連続する2つの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成する。
【0035】
図11A、図11Bは、図10Cに示したフレームN、N+1の2値化画像の或る水平ラインを示しているが、この2値化画像の各画素について排他的論理和をとる。この排他的論理和の結果を図11Cに示している。これが差分画像Pic−cとなる。
差分画像Pic−cでは、元の撮像画像であるフレームN、N+1で動きのある手の部分である程度の「1」の領域が発生する。なお、顔の部分も、微小な動きが存在することで、わずかに「1」の領域が発生している。
差分画像Pic−cの例を図9Aに示す。図示のように、手の部分の比較的明らかな動き、及び顔の部分の微小な動きが、差分画像Pic−cに表れることになる。
なお、照明等の他の物体については、動きがないことから、差分画像Pic−cの時点で消失する。
【0036】
以降、差分画像Pic−cを用いて、検出対象画像を判定し、その動き状態を検出する。
このため、図9A及び図11Cの差分画像Pic−cについて、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする。
例えば差分画像Pic−cから、画素数(=画面上の面積)が微小の領域を消去する。これにより図9B及び図11Dに示すように、微小領域消去後の差分画像Pic−dを得る。
この微小領域消去後の差分画像Pic−dに表れている画像部分が、即ちユーザがジェスチャー操作のために動かした手の部分である検出対象画像となる。
なお、体温よりも温度が高い物体の部分で残っていた部分は、フレーム間で動きが無かったために、上記のように差分画像Pic−cの段階で無くなるが、例えば蝋燭の火のようにわずかな動きがあると、差分画像Pic−cにおいて微小領域として表れる。しかし、さらに微小領域を消去した差分画像Pic−dでは、そのような部分も消去され、ジェスチャー操作としての明らかな手の動き部分のみが残る可能性は非常に高くなる。
【0037】
画像Pic−dとして検出対象画像が抽出されたら、その検出対象画像(手)の特徴点として典型的には重心位置座標を判定する。
図9Cに示すように、動きのある画像としての検出対象画像の重心gを判定し、その画像上のX座標値(Xg)とY座標値(Yg)を求める。
この重心座標が、ジェスチャー操作にかかる手の、1つの位置座標とされ、上述した図6Bの重心座標メモリエリアARGに記憶される。
【0038】
手の動きは、以降、同様に求められる重心位置座標の変化、つまり順次重心座標メモリエリアARGに記憶されていく重心座標から求められる動きベクトルで判定される。
即ち、以上のようにフレームN、N+1の2値化後の差分画像から1つの重心座標が求められたら、例えば次にフレームN+1、N+2について同様に差分画像を生成して重心座標を求め、重心座標メモリエリアARGに記憶する。
さらにフレームN+2とN+3、フレームN+3とN+4・・・と、同様に差分画像から求めた重心座標を求め、重心座標メモリエリアARGに記憶する。
このような動作の過程で、CPU2(入力認識部12)は、重心座標メモリエリアARGに記憶された座標値の変化から、手の動きを判定することができる。
なお、ここでは検出対象画像(手)の特徴点として典型的な例として重心位置座標を用いて説明するが、特徴点としてはこれに限定されず、指先に相当する最上部の座標や、重心と最上部の中間部の座標などを用いてもよい。ジェスチャー操作に割り当てる手の動きによっては、手首よりも指先の方が大きく動きやすい場合もあるため、特徴点は適宜選択すればよい。
【0039】
[3−2:入力認識処理]
以上の入力認識処理を行うCPU2の具体的な処理例を、図12により説明する。図12の処理は、図4の構成でいえば、画像取込部11が順次取り込む赤外線カメラ1からの温度分布画像について、入力認識部12がステップF101〜F109の処理を行ってジェスチャー操作を認識し、それに応じて機器制御部13がステップF110で、操作に応じた制御を行うものとなる。以下、CPU2の処理として説明する。
【0040】
CPU2は、まずステップF101で、初期処理として、図6で説明した画像メモリエリアAR−a,AR−bをクリアする。
以降CPU2は、ジェスチャー操作の入力認識を終了するまで、赤外線カメラ1の撮像画像を取り込む毎に、ステップF102〜F110の処理を継続して行うこととなる。
【0041】
RAM3に確保される画像メモリエリアAR−a,AR−bは、図8に示したような2値化画像Pic−a、Pic−bを記憶するエリアとされる。赤外線カメラ1からの各フレームの撮像画像(温度分布画像)は、順次2値化された後、差分画像Pic−cの生成のために画像メモリエリアAR−a、AR−bに記憶される。
このためCPU2は、ステップF102では、画像メモリエリアAR−bの画像データを、画像メモリエリアAR−aに移動させる。
またCPU2はステップF103で、今回取り込んだフレームの撮像画像(温度分布画像)を、閾値th1,th2を用いて2値化し、画像メモリエリアAR−bに記憶する。
ステップF104でCPU2は、画像メモリエリアAR−aに2値化画像が記憶されているか否かを確認し、記憶されていなければ、ステップF102に戻る。
【0042】
以上の処理は、順次撮像されるフレームとして、今回のフレーム(フレームN+1)に係る2値化画像が画像メモリエリアAR−bに記憶され、前回のフレーム(フレームN)に係る2値化画像が画像メモリエリアAR−aに記憶されるようにする処理となる。
つまり処理開始後の最初のフレームの撮像画像に関しては、まずステップF103で2値化画像とされて画像メモリエリアAR−bに記憶される。
次のフレームが取り込まれた時点では、ステップF102で、前のフレームの2値化画像が画像メモリエリアAR−aに移動され、今回のフレームの2値化画像が画像メモリエリアAR−bに記憶される。
従って、今回のフレームに係る2値化画像Pic−bが画像メモリエリアAR−bに記憶され、前回のフレームに係る2値化画像Pic−aが画像メモリエリアAR−aに記憶される。ステップF102,F103では、これが以降のフレームの取込時にも継続されることになる。
【0043】
撮像画像の2フレーム目以降の取込時点の処理は、画像メモリエリアAR−a、AR−bに、今回の2値化画像Pic−bと前回の2値化画像Pic−aが記憶されている状態となっている。その場合は、ステップF104からF105に進む。
CPU2は、ステップF105で、画像メモリエリアAR−a、AR−bに記憶されている2値化画像Pic−a、Pic−bの各画素値の排他的論理和を計算し、差分画像Pic−cを生成する。そして差分画像Pic−cを画像メモリエリアAR−cに記憶する。
【0044】
次にCPU2はステップF106で、差分画像Pic−cのうちで微小領域を消去し、例えば図9Bに示したような、微小領域が消去された差分画像Pic−dを生成して、それを画像メモリエリアAR−dに記憶する。
具体的には、差分画像Pic−cのうちで「1」の画素が連続する領域のうちで、その領域の面積が、所定値(所定画素数)以下である領域について、画素値を「0」に置き換えれば良い。
【0045】
これにより、画像Pic−dは、ユーザの手などの検出対象物に相当する検出対象画像が残された差分画像となる。そこでCPU2はステップF107で、画像Pic−dに表れている検出対象画像について、重心計算を行う。そして求めた重心座標値を、重心座標メモリエリアARGに記憶する。
【0046】
ステップF108では、CPU2は、その時点で重心座標メモリエリアARGに保持されている座標値を解析し、検出対象画像の動き状態を判定する。
具体的には、重心座標メモリエリアARGに複数の重心座標が存在している場合に、その重心座標の変化のベクトル(方向及び変化量)を求める。
求められた1又は複数のベクトルから、検出対象画像がどのような動き(画像上での位置変動)を行っているかを判定する。
なお、このような処理のため、動き状態を判定するのは、重心座標メモリエリアARGに、少なくとも2以上の座標値が格納された以降となる。つまり少なくとも第3フレーム目の撮像画像の取込後に、ステップF102〜F107の処理が行われた後に、動き状態が判定可能となる。第2フレームの取込後に、第1,第2のフレームについての差分画像に基づいて1つ目の重心座標が判定でき、第2,第3のフレームについての差分画像について2つ目の重心座標が判定できるためである。
【0047】
CPU2は、ステップF109では、ステップF108での動き状態の解析の結果により、或るジェスチャー操作が行われたか否かを判定し、まだ動き状態が解析できない第2フレーム目までの時点、或いは動き状態が検出できるが、それが特定のジェスチャー操作に該当する動きではないと判定された場合は、ステップF102に戻って、次の取込画像に応じた上記処理を継続する。
一方、或る時点で、ステップF108で判定された検出対象画像の動き状態が、或るジェスチャー操作の動きに該当すると判定した場合は、CPU2はステップF110に進み、当該ジェスチャー操作に応じた制御コマンドを主機能部6に送信する。
例えば図2Aに示したうちで、ユーザの手の動きとして、左方に移動させるという動き状態を認識した場合、CPU2は、チャンネルアップの制御コマンドを主機能部6に送信し、チャンネルアップ動作を実行させることとなる。
【0048】
以上の処理により、CPU2は赤外線カメラ1の撮像画像から、ユーザの手(検出対象物)の画像(検出対象画像)の動き状態を判定し、その動き状態が予め設定されたジェスチャー操作の動きに該当している場合、当該操作に応じた機器動作が実行されるように制御を行うこととなる。
このような第1の実施の形態の入力認識処理によれば、次のような効果が得られる。
【0049】
まず、赤外線カメラ1の画像を人の肌の温度範囲を示す閾値th1,th2を用いて2値化することで、人の肌の温度とは異なる温度のものを、検出対象から排除できる。例えば照明、暖房器具等の高温の物、及び通常は体温より温度の低い家具等である。従って、赤外線撮像された温度分布画像の2値化で、人の肌の部分、即ち肌温度画像部を容易に抽出できる。
その上で、差分画像として動きのある肌温度画像部を抽出する。これによって、手を検出対象物とする場合に、顔など、肌温度ではあるが検出対象物ではない部分を除外できる。
即ち、2値化及び差分画像の生成により、画像のパターンマッチングによる形状解析等の複雑な処理を行うことなく、検出対象画像を抽出できる。
【0050】
また、このような処理では、差分画像上には、微小領域として、検出対象画像以外の画像もわずかに残される場合があるが、そのような微小領域、例えば連続画素領域の面積(画素数)が所定以下の部分を消去することで(画像Pic−d)、より正確に動きのある部分としての検出対象画像を判定できる。
なお、微小領域の消去は、例えばテレビジョン受像器20から離れた場所にいる人の手の動きなど、ジェスチャー操作に関係のない人の動きを、ジェスチャー操作と誤認定しないようにするという効果も生ずる。即ち遠くに居る人の肌の部分の画像は、小さい面積の画像部分となり、差分画像Pic−cに表れていても、画像Pic−dでは消去されている部分となるからである。
【0051】
以上のように画像Pic−dで検出対象画像を検出したら、検出対象画像の重心座標を求め、重心座標の変化から、検出対象画像の位置変動、つまり動きの量や方向性による動き状態を判定する。これも単純な重心位置間のベクトル計算で可能となる。
このような本例の処理では、容易な演算処理で、正確にジェスチャー操作を認識でき、ジェスチャー操作に応じた制御が可能となる。これによってジェスチャー操作によるヒューマンインターフェースを簡易かつ正確に実現できる。
提供できる。
【0052】
なお赤外線カメラ1を用いることによれば、照明の消えた暗い場所でも操作者のジェスチャー操作に用いる肌の部位を検出することができるため、室内が暗い場合でも入力認識を適切に実行できるという利点もある。
【0053】
[3−3:赤外線カメラの位置]
ところでテレビジョン受像器20に配置する赤外線カメラ1については、図1に示したように、なるべく機器の上方に配置することが好ましい。
図13Aは、仮に、テレビジョン受像器20の筐体の下方位置に赤外線カメラ1を配置した状態を示している。
この場合、赤外線カメラ1の撮像視野角度は、図示のようにある程度の仰角をもって設定される。通常、ユーザは、手によるジェスチャー操作は、自分の胸の前方位置で行うと考えられ、そのジェスチャー操作が行われる空間を適切に撮像できるようにするためである。
ところがこの場合、図13Bのように、撮像画像として手の部分のバックに顔の部分が重なることが多くなると考えられる。
このような撮像画像では、2値化すると手と顔の部分が同一の領域となり、差分画像Pic−c上に手の動きが表れなく場合が発生しやすい。
【0054】
これに対して図14Aのように、赤外線カメラ1をなるべく上方に配置すると、撮像画像上では図14Bのように顔の部分と手の部分が明確に分かれて撮像されやすくなる。
つまりこの場合は、差分画像Pic−c上で、手の動きが顔に隠れてしまうということが殆どなくなり、手の動きが明確に判定できることとなる。
以上のことから理解されるように、通常は、ユーザの顔よりも手の位置の方が低いことを考慮し、手によるジェスチャー操作を検出する入力装置とする場合は、赤外線カメラ1は、なるべく高い位置(撮像画面上で手と顔が重なりにくい位置)から撮像を行うようにすることが好ましい。
このため機器筐体の上方部位に赤外線カメラ1を内蔵したり、或いは機器筐体とは別体で、上方に赤外線カメラ1が位置されるようにするとよい。
【0055】
<4.第2の実施の形態>
続いて第2の実施の形態としての入力認識処理例を図15で説明する。図15は上述の図12と同様にCPU2の処理を示したものである。なお、図15において図12と同一の処理は同一のステップ番号を付し、説明を省略する。
【0056】
この処理例は、CPU2(入力認識部12)は、赤外線カメラ1で撮像された温度分布画像の2値化画像において、所定以上の面積を持つ肌温度画像部から、検出対象画像を選定するようにするものである。
図15の処理例は、図12と同様のステップF101〜F104の後に、ステップF140を加えたものである。
ステップF140はCPU2が、画像メモリエリアAR−a、AR−bに記憶された2値化画像Pic−a、Pic−bに、所定面積以上の「1」の画素領域が存在するかを確認する処理となる。上述の第1の実施の形態の説明のとおり、「1」の画素とは、閾値th1,th2の間の温度である手や顔などに相当する肌温度画像部である。
CPU2は、「1」の画素が連続する画素領域を確認し、その面積(=画素数)を求める。そして、2値化画像Pic−a、Pic−bに、それぞれ面積(画素数)が所定値以上の肌温度画像部が存在する場合に、ステップF105以降に進むようにする。ステップF105〜F110の処理は図12と同様である。
またCPU2は、ステップF140の処理で、2値化画像Pic−a、Pic−bの一方でも、面積が所定以上の肌温度画像部が存在しなければ、ステップF102に戻る。つまりその場合は差分画像Pic−cの生成や座標計算は行わない。
【0057】
この処理例は、不要な演算処理の不実行による処理の効率化と、操作者たるユーザの手以外の動きをジェスチャー操作と誤認する可能性を低くする点で有用である。
すなわち、ステップF140で所定面積以上の肌温度画像部が存在しないとされるのは、操作者たるユーザのジェスチャー操作が行われていないと考えられることに着目した処理となる。
【0058】
通常、ジェスチャー操作を行うユーザは、図1のようにテレビジョン受像器20の正面側で比較的近い位置に居る。従って、操作者の手や顔は、赤外線カメラ1での撮像画像において比較的大きな面積(画素領域)を占めることとなる。
一方、操作者がテレビジョン受像器20の前から席を外した場合は、そのような操作者の手や顔は、温度分布画像に撮像されない。また或る人が通常はジェスチャー操作を行わないような離れた位置にいる場合は、赤外線カメラ1でその人の手や顔が撮像されたとしても、それによる肌温度画像部は面積の小さいものとなる。
これらのことから、2値化画像において肌温度画像部が表れていたとしても、その面積が小さい画像は、「ジェスチャー操作の可能性のあるユーザの手の部分」ではないと判断し、ステップF140から処理を抜ける(ステップF105以降を行わない)ようにする。
【0059】
これによって、遠くの人の動きをジェスチャー操作と誤認することを防止したり、また人が居ないときに無駄な差分画像生成や座標演算を行わないといった処理の効率化を実現できる。
【0060】
ところで、同じ目的の処理として図16のような処理も考えられる。図16は、図12の処理にステップF141を加えたものである。
ステップF101〜F105は図12と同様である。
【0061】
CPU2は、ステップF141では、ステップF105で差分画像Pic−cを生成した時点で、差分画像Pic−cに所定面積以上の「1」の画素が連続した領域が存在するか否かを確認する。
そして差分画像Pic−cに、面積(画素数)が所定値以上の「1」画素部分が存在する場合に、ステップF106以降に進むようにする。ステップF106〜F110の処理は図12と同様である。
またCPU2は、ステップF141の処理で、差分画像Pic−cに、面積が所定以上の「1」画素部分が存在しなければ、ステップF102に戻る。つまりその場合は座標計算は行わない。
【0062】
差分画像Pic−cにおける「1」の画素とは、肌温度画像部のうち、動きのある部分を示すものである。従ってステップF141で差分画像Pic−cにおいて連続した「1」画素の面積が所定以上である場合とは、手や顔に相当する肌温度画像部のうちで、ある程度はっきりした動きが認められる領域があると判定できる場合となる。
第1の実施の形態で説明したように、ステップF106では差分画像Pic−cにおいて微小領域を消去するが、この図16においてステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、ジェスチャー操作としての有効な動きが検出されない場合となる。
【0063】
例えばステップF141の面積判定の閾値と、ステップF106の微小領域の判定の閾値を同一値とした場合は、ステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、もしステップF106で微小領域を消去した時点で、画像Pic−dには「1」画素が存在しなくなる状況となる。つまり、ジェスチャー操作に係る動きのある画像が元々存在していない状況である。
また例えばステップF141の面積判定の閾値を、ステップF106の微小領域の判定の閾値よりも大きい値とした場合は、ステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、もしステップF106で微小領域を消去した後の画像Pic−dにおける「1」画素は、さほど動きが大きくない画像に対応した情報となっている場合である。つまりその場合の「1」画素は、ジェスチャー操作に対応した情報であるという可能性は低い。
【0064】
これらのことから差分画像Pic−cにおいて所定面積以上の「1」画素領域が存在しない場合とは、それはジェスチャー操作に係る画像である確率は極めて低い。そこでそのような場合は、座標値の計算を行わずにステップF141からF102に戻るようにすることで処理の効率化を図り、また微小な動きをジェスチャー操作の一部として誤認することを解消する。
【0065】
<5.第3の実施の形態>
第3の実施の形態の処理を図17,図18で説明する。
この例は、CPU2(入力認識部12)が、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行うものである。
【0066】
図17はフレームN、N+1、N+2の2値化画像としてユーザの手の部分のみを示している。ジェスチャー操作が行われた場合、ユーザの手は各フレームで連続してある程度以上の量の動きが観測される。例えば図示のようにフレームN、N+1、N+2・・・と連続して画像上の手の位置の変動が観測される。
一方、手の画像が2値化画像に表れたとしても、連続したフレーム間でほぼ同じ位置である場合は、手は動いておらず、ジェスチャー操作を行っているものではないと判断できる。
そこで、検出対象画像である手の画像の動き状態を示す位置の変化が所定フレーム以上連続して所定量以上であることを条件とすることで、的確にジェスチャー操作に係る動きを判定できる。
【0067】
具体的な例としてはCPU2は、図12の処理のステップF108において、図18に示す処理を含むようにすればよい。
第1の実施の形態で説明したように図12のステップF108では、重心座標メモリエリアARGの座標値を解析して動き状態を判定する。このときにCPU2は、図18の動き判定処理を行う。
なお、図18の処理例は、動きが2回連続して所定量以上であることを条件とする例である。
【0068】
まずステップF150でCPU2は、フレームNとフレームN+1間の検出対象物の動きベクトルを求め、これを動きベクトルV1とする。
またステップF151でCPU2は、フレームN+1とフレームN+2間の検出対象物の動きベクトルを求め、これを動きベクトルV2とする。
【0069】
なお図17では模式的に2値化画像でフレームNとフレームN+1間の検出対象物の動きベクトルV1とし、フレームN+1とフレームN+2間の検出対象物の動きベクトルV2としているが、図12の処理例に則していえば多少異なる点がある。
図12の処理例では、実際には座標値は微小領域消去後の差分画像Pic−dから求めているため、動きベクトルV1は、フレームNとフレームN+1から生成した画像Pic−dから求められる座標値と、フレームN+1とフレームN+2から生成した画像Pic−dから求められる座標値から求められるものとなる。同様に、動きベクトルV2は、フレームN+1とフレームN+2から生成した画像Pic−dから求められる座標値と、フレームN+2とフレームN+3から生成した画像Pic−dから求められる座標値から求められるものとなる。
つまり、動きベクトルV1、V2は、座標メモリエリアARGに順次記憶された座標値の差分として求めれば良い。
【0070】
CPU2は、ステップF152で、動きベクトルV1、V2が、それぞれ動き量の閾値Vsより大きいか否かを判定する。
そしてV1>Vs、かつV2>VsであればステップF153に進み、動き有りと判定する。一方、V1>Vs、かつV2>VsでなければステップF154に進み、動き無しと判定する。
【0071】
この図18はステップF108内の処理の一部(動き判定)のみを示しているが、CPU2は、動き有りと判定した場合は、さらに座標メモリエリアARGの各座標値から動き状態を判定し、それがジェスチャー操作に該当するか否かを判断することになる。
一方、動き無しと判定した場合は、動き状態がジェスチャー操作に該当するか否かの判断を行わずに、即座に操作入力は行われていないと判定できる。
【0072】
このように、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であること、つまり動きベクトルで求められる動きの量が連続して所定量以上であることを条件として動き状態の判断を行うことで、ユーザの一瞬の動きや微小な動きにむやみに反応してしまうことによる誤動作を防止すると共に、処理の効率化を実現できる。
なお、図18の例では2回連続してVs以上の動きという条件の例としたが、もちろん回数については3回連続、4回連続などを条件としても良い。
例えば3回連続の場合は、さらに続くフレームに関しての動きベクトルV3を求め、V1>Vs、かつV2>Vs、かつV3>Vsを条件とすれば良い。
【0073】
また、上記例は図18の処理を図12のステップF108内で行うものとしたが、このような例に限られない。例えば図17に示したように各フレームの2値化画像からベクトルV1、V2・・・を求めるようにして、その段階で所定回数、所定量の条件を満たしているか否かを判断しても良い。
【0074】
<6.第4の実施の形態>
第4の実施の形態の処理例を図19,図20で説明する。
これは2値化画像の生成において、はじめに第1の閾値th1と第2の閾値th2を用いて、対象となる例えば手の部分を検出した後、検出対象物の温度が絞り込めた場合、第1の閾値より高い第3の閾値th3と第2の閾値より低い第4の閾値th4を設定し、検出範囲を狭め、より肌温度画像部を特定し易くするものである。
【0075】
CPU2(入力認識部12)は、図19Aに示すように、人の肌の温度範囲として設定した閾値th1、th2に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での肌温度画像部の検出を行う。これは第1の実施の形態で説明したとおりである。
その後CPU2は、検出対象画像とされた肌温度画像部の温度値に基づいて、閾値th1、th2で示される温度範囲より狭い温度範囲を示す閾値th3、th4(図19A参照)を設定し、以降、閾値th3,th4を用いて、温度分布画像内での肌温度画像部の検出、つまり2値化画像の生成を行うようにする。赤外線による温度検出は分解能が高く、0.1度未満の差でも検出できるため、ユーザの顔と手の温度差や、体温の個人差等も十分検出が可能であり、このようにすることでジェスチャー操作の認識精度を向上できるからである。
【0076】
このためにはCPU2は、入力認識処理については例えば図12と同様に行えば良い。CPU2(入力認識部12)は図12の処理と並行して、例えば図20のような閾値調整処理を実行するようにする。
【0077】
CPU2はステップF201で、初期設定として温度幅Tdの設定を行う。温度幅Tdとは、図19Bに示す、目的温度Tgからの閾値th3,th4までの温度幅である。目的温度Tgとは、例えば検出対象物たる手の温度である。
【0078】
CPU2は、ステップF202で、まずは人の肌を検出するための一般的な温度範囲として閾値th1,th2を、図12のステップF103で使用する閾値として設定する。
これにより、図12の処理は、第1の実施の形態で説明したように実行される状態となる。
【0079】
その後CPU2は、ステップF203で検出対象物の温度(目的温度Tg)の測定を行う。この処理は図12の処理の実行中に、或る時点で検出対象画像が特定された際に可能となる。例えば図12のステップF106で微小領域消去後の差分画像Pic−dが得られた時点で、検出対象画像が特定される。
差分画像上で特定される検出対象画像に相当する2値化画像の画素位置(座標値)を求め、該2値化画像の元となった温度分布画像において、該当の画素位置における温度値を検出すれば、それが検出対象物(例えば操作者たるユーザの手)の温度、つまり目的温度Tgとして検出できる。
【0080】
CPU2は、目的温度Tgの測定を完了したらステップF204からF205に進み、先に設定した温度幅Tdと目的温度Tgを用いて閾値th3,th4を次のように決定する。
閾値th3=Tg−Td
閾値th4=Tg+Td
このように閾値th3、th4を決定したら、CPU2はステップF206で、閾値th3、th4を図12のステップF103で使用する閾値として設定する。
これにより、以降も継続される図12の処理は、ステップF103において閾値th3、th4を用いての2値化処理が行われることになる。
【0081】
閾値th3,th4を用いて2値化画像が生成されることで、2値化画像では、操作者の肌の部分以外の排除能力が高まり、2値化画像に表れる肌温度画像部は、操作者の肌の部分である可能性を一層高くできる。
従って、図12等の処理によるジェスチャー操作の認識の確度が高まることとなる。即ち2値化画像として肌温度画像部をより正確に判定できるためである。
また、複数の人が居る場合に、操作者ではない人の肌の部分の画像を2値化画像から排除できる可能性も高められることからも、ジェスチャー操作認識の確度を向上できる。
さらには、例えば操作者の手の温度と顔の温度が多少異なる場合に、手の部分のみを2値化画像で抽出できる場合もあり、その場合もジェスチャー操作の認識確度を高めることとなる。すなわち操作者が手を動かす範囲のうちの一部が顔と重なっていたとしても、手の動きだけを確実に認識する等の効果がある。
【0082】
閾値th3、th4を用いる状態は、その後、ジェスチャー追尾が終了とされるまで継続され、ジェスチャー追尾が終了とされたら、ステップF202に戻って、閾値th1,th2を使用する状態にセットする。
【0083】
ステップF207でいうジェスチャー追尾の終了の判断は各種の例が考えられる。
例えば図12の処理で1つのジェスチャー操作が認識され、ステップF110で操作コマンドが発行された時点をジェスチャー追尾の終了としてもよい。このようにした場合、1回のジェスチャー操作に関しての各フレームの処理において、閾値th3、th4をセットした後の2値化画像の精度を高めることができ、ジェスチャー操作としての動き状態の認識の精度を向上させることができる。
また或るユーザの肌温度を目的温度Tgとして閾値th3、th4を設定すると、他のユーザのジェスチャー操作が認識できない場合が生ずる。そのため、1回のジェスチャー操作の完了で閾値th3、th4の設定を解除して、閾値th1,th2の使用状態に戻すこととすれば、複数の人のジェスチャー操作に対応するという意味で好適である。
【0084】
一方、ある程度の時間間隔で、ジェスチャー操作が認識されなかったら、ジェスチャー追尾の終了と判断しても良い。
例えば或る一人のユーザが、続けてジェスチャー操作を行うことが通常に考えられる。その場合、一旦或るユーザの肌の温度を目的温度Tgとして閾値th3、th4を使用設定した場合、以降、その閾値th3、th4を用いることが好ましいともいえる。そこで、短い時間間隔で繰り返し何らかのジェスチャー操作が行われている間は、同一人が操作していると仮定して、閾値th3、th4の使用設定を継続するとよい。
またこのように、ある程度継続して閾値th3、th4の使用状態を継続するものとする場合は、ステップF203での目的温度Tgの測定は、少なくとも1回のジェスチャー操作を検知した後に行うようにしてもよい。ジェスチャー操作と認識された場合に、その際の該当する画像を検出対象画像とすることで、検出対象物の温度を正確に検出でき、もって閾値th3、th4の精度を高めることができるためである。
また、同様の目的で、閾値th3、th4の設定を行った後、一定時間を経たらジェスチャー追尾の終了と判断しても良い。
さらには、特定のジェスチャー操作を、閾値th3、th4の設定解除操作とし、ユーザの指示でジェスチャー追尾の終了とするようにしてもよい。
【0085】
なお、以上の図20の処理は図12の入力認識処理と並行して行うとしたが、例えば設定モードとして、閾値th3、th4の設定を行うことも考えられる。
例えば設定モードとして、閾値th1,th2の使用状態でユーザに手を赤外線カメラ1の前にかざしてもらったり、ジェスチャー操作を行ってもらう。そしてその状態で肌温度画像部を検出し、温度分布画像における該当部分の画素の温度を目的温度Tgとする。目的温度Tgを求めたら、閾値th3、th4を設定し、以降は常時、閾値th3、th4を図12のステップF103で使用する閾値とする。
ジェスチャー操作に関しては特定ユーザが常に使用するような場合、このように予めそのユーザの体温に合わせた閾値th3、th4を設定しておくことも精度向上に好適である。
【0086】
ところで閾値th3、th4は目的温度Tgから求める値としたが、閾値th1,th2よりも狭い温度範囲を示す値としての固定値を用いることも考えられる。例えば検出対象物であるユーザの手の温度が、閾値th3、th4の範囲内にある場合は、閾値th3、th4の使用に切り換える等の処理が考えられる。
【0087】
<7.第5の実施の形態>
第5の実施の形態の処理を図21,図22,図23で説明する。
この第5の実施の形態は、CPU2(入力認識部12)が、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の温度分布画像や2値化画像における位置に基づいて検出対象範囲を設定し、以降、その検出対象範囲内で、検出対象画像の検出を行うようにする例である。
【0088】
図21に例を示す。図21Aは2値化画像においてユーザの手の部分である領域HDと顔の部分である領域FCが表れている状態で示している。
ここで、入力認識処理の過程で、ユーザが範囲設定動作としての特定の動きとして、破線矢印RDのように手で円を描くような動作を行ったとする。
このような特定の動きを検出した場合、当該動きの画像上の位置に基づいて、図21Bに示すように検出対象範囲Adetを設定する。
以降は、この検出対象範囲Adet内で、検出対象画像の検出及び動き状態の判定を行うものとする。
【0089】
CPU2の処理例を図22に示す。なおステップF101〜F110は図12と同様であり、説明を省略する。
この図22は、基本的な処理は図12と同様となるが、例えば上記の図21のように、円を描くようなジェスチャーを特定のジェスチャーとして予め設定しておく。そして、ユーザがこの特定のジェスチャーを行った場合は、検出対象範囲Adetの設定を行う。
即ちCPU2は、ステップF108での検出対象画像の動き状態の判定によって、ジェスチャー操作としての動きが認められた場合は、ステップF109からF110に進んで対応したコマンドの発行を行うが、本例の場合、ステップF108での動き判定において、ジェスチャー操作の動きであるか否かの判定と共に、例えば円を描くような範囲設定動作としての「特定のジェスチャー」に相当する動きであるか否かの判定も行うようにする。
そして範囲設定動作としての特定のジェスチャーが認められた場合は、ステップF120からF121に進み、CPU2は、検出対象範囲Adetの算出処理を行う。
【0090】
このステップF121の検出対象範囲Adetの算出処理の例を図23に示している。
図21Aに示したようにユーザが破線矢印RDのように円弧を描く動作を行ったことに応じて、CPU2はステップF301で、画像上における円弧の中心座標CPと、直径Dを求める。
なお、各フレームでの手の画像の重心座標は、図22のステップF107で求められ、順次重心座標メモリエリアARGに記憶されている。従って、図22のステップF108では重心座標値の変位(動きベクトルの方向)から、円を描くようなジェスチャーを認識できる。さらに図23のステップF301では、重心座標メモリエリアARGに記憶された各重心座標の軌跡で形成される円について、その中心座標CP及び直径Dを、その各重心座標値から求めることができる。
【0091】
次にCPU2はステップF302で、検出対象物(手)の高さHと幅Wを求める。検出対象物の高さHと幅Wは、或るフレームの2値化画像における手の部分の高さ方向と幅方向の画素数から求めることができる。
【0092】
そしてCPU2はステップF303で、中心座標CPを中心にして、幅W+D、高さH+Dの範囲を、検出対象範囲Adetとして設定する。即ち図21Bに示すように、手の画像が通常撮されるであろう範囲が、検出対象範囲Adetとされる。
図22のステップF121で以上のように検出対象範囲Adetを算出したら、CPU2はステップF122で、当該検出対象範囲Adetに限定した入力認識処理を開始して、ステップF102からの処理を行う。
従って以降は、検出対象範囲Adetのみを対象として、ステップF102〜F108の処理が実行される。
例えば検出対象範囲Adetについて、2値化画像が生成される。そして複数の2値化画像の差分画像が生成され、微小領域の消去が行われ、検出対象画像が特定されて、その重心位置が記憶される。そして重心位置の変化状況から、検出対象画像の動き状態が判定される。
なお、2値化画像については画面全体で通常に行い、その後、差分画像Pic−cの生成範囲を、検出対象範囲Adet内のみに限定してもよい。
【0093】
以上のような処理例によれば、撮像画像上での範囲として、ユーザの手のジェスチャー操作が位置する範囲が限定されて入力認識が行われる。このため、顔の部分や他の物を除外して入力認識を行う確立を高めることができ、ジェスチャー操作認識の確度を,高めることができる。
【0094】
なお、以上の例では図22の入力認識処理の過程で、ユーザが特定のジェスチャーを行うことに応じて検出対象範囲Adetを設定するものとしたが、入力認識処理とは独立した設定モード等で検出対象範囲Adetの設定を行っても良い。
例えば設定モード状態においてユーザに特定のジェスチャーを実行してもらい、CPU2は、それを認識して図23のような処理で検出対象範囲Adetを設定する。以降は検出対象範囲Adetにおいて入力認識処理を行うようにしても良いし、ユーザの操作により検出対象範囲Adetが有効化されるようにしてもよい。
【0095】
また、特定のジェスチャーは、円を描くようなジェスチャー以外に多様に考えられることは言うまでもない。
また、検出対象範囲Adetの設定手法も多様に考えられる。
例えばユーザに手を四角形や円形に動かすような「特定のジェスチャー」を実行してもらい、その移動軌跡を元に、移動軌跡外縁より若干広い画像上の範囲を検出対象範囲Adetとすることなども考えられる。
【0096】
<8.第6の実施の形態>
第6の実施の形態を図24,図25で説明する。これは、CPU2(入力認識部12)が、差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う例である。
【0097】
図24A,図24Bに、或る連続するフレームの2値化画像Pic−a、Pic−bを示している。この場合に撮像画像にはユーザの顔と手が写されており、2値化画像Pic−a、Pic−bには、ユーザの顔に相当する領域FCと手に相当する領域HDが表れているとしている。ところが図示のように手の領域HDが顔の領域FCと重なっており、手の領域HDのみを抽出できない状況にある。換言すれば、手の動きが、背後の顔の領域FCに隠れて検出できない。
CPU2から見れば、この2値化画像Pic−a、Pic−bの差分画像Pic−cは図24Cのように、動きを表す差分画素が表れない状態となってしまう。
ユーザが顔の前で手を動かすようなジェスチャー操作を行うと、このような状況が発生することがある。そしてこのような状況が続くと、ジェスチャー操作を的確に検出できない。
【0098】
そこでCPU2は、このような状況において、ユーザにメッセージを出力する処理を行うようにする。
例えばCPU2は、図12のステップF105の処理として、図25に示すような処理を行うようにする。
【0099】
図12においてステップF105に進む場合は、画像メモリエリアAR−a,AR−bに2値化画像Pic−a、Pic−bが格納され、これらの差分画像Pic−cを生成する場合である。
この際にCPU2は、図25のステップF401として、2値化画像Pic−a、Pic−bに肌温度画像部があるか否かを確認する。肌温度画像部は、即ち閾値th1,th2による2値化で「1」となる画素の領域である。
もし2値化画像Pic−a、Pic−bに肌温度画像部が存在しなければ、差分画像Pic−cを生成する必要はないため、図12のステップF102に戻る。
【0100】
2値化画像Pic−a、Pic−bに肌温度画像部がある場合は、CPU2はステップF402に進んで、2値化画像Pic−a、Pic−bの各画素について排他的論理和を演算し、差分画像Pic−cを生成する。
この場合にCPU2は、ステップF403で、有効な差分画像Pic−cが生成できたか否かを確認する。有効な差分画像とは、動きのある肌温度画像部が存在している差分画像と考えればよい。例えば差分画像Pic−cにおいて「1」の画素として所定面積以上の連続領域が存在していれば、有効な差分画像Pic−cと判定する。一方、図24Cのように「1」画素が存在しない場合、あるいは存在しても微小な領域の場合は、有効な差分画像Pic−cではないとする。
【0101】
有効な差分画像Pic−cが得られた場合は、ステップF404に進んで、差分画像Pic−cを画像メモリエリアAR−cに記憶する。これにより図12のステップF105の処理を完了し、ステップF106に進む。
【0102】
一方、有効な差分画像Pic−cが生成できなかった場合は、ステップF405にすすみ、無効差分画像生成の連続回数をカウントする変数CTをインクリメントする。
そしてステップF406で変数CTが、カウント閾値CTth以上となっているか否かを判断し、CT<CTthであれば、そのまま図12のステップF102に進む。
赤外線カメラ1の撮像画像のフレーム取込毎に行われる図12の処理の過程で、2値化画像に肌温度画像部が存在するにもかかわらず、有効な差分画像Pic−cが生成できない状態が、長時間継続すると、或る時点でステップF406で変数CT≧カウント閾値CTthとなる。
この場合、CPU2はステップF406からF407に進み、メッセージ表示制御を行う。即ち図24で説明したような状況で、ジェスチャー操作が良好に検出できない状態であると推定し、それに応じて主機能部6に例えば「ジェスチャー操作の手の位置を変えて下さい」等の表示出力を実行させる。例えば、一定時間、当該メッセージ表示を実行するように制御すれば良い。
そしてステップF408で変数CTを0リセットして、図12のステップF102に戻る。
【0103】
例えばこのような処理を行うことで、ユーザの手の位置の都合などで長時間ジェスチャー操作が検出できない場合に、ユーザにジェスチャー操作を行う位置の是正を求めることができる。メッセージ表示に応じて、ユーザが手の位置を下げるなどすれば、その後は有効な差分画像Pic−cが得られる状態となり、ジェスチャー操作認識が正常に可能となる。
【0104】
以上はユーザのジェスチャー位置の変更を求めるメッセージ表示を行う処理例であるが、どのようなタイミングや条件でメッセージ表示を行うかは多様に考えられる。
例えば、テレビジョン受像器20の前に人が居て、2値化画像に肌温度画像部が表れていたとしても、その人が全くジェスチャー操作を行っていない場合は、長時間、有効な差分画像Pic−cが得られないといった判定が為される可能性がある。
そこで、テレビジョン受像機20がジェスチャー操作を待っているモードにもかかわらず、ジェスチャー操作が所定の時間検出されない場合にメッセージ表示を行うようにしてもよい。
またジェスチャー操作を行っている場合には、手以外の顔なども多少の動きが生ずることなどに着目して、顔に相当する部分で微小な動きが表れているが、手の動きが表れていない差分画像Pic−cを、有効ではない差分画像Pic−cと判断するなどの手法も考えられる。
即ち、ジェスチャー操作を行っているであろうと推定されるにもかかわらず、手の動きが観測できないというような場合に、メッセージ表示を行うことが適切である。
【0105】
<9.第7の実施の形態>
第7の実施の形態を図26,図27で説明する。
これはCPU2(入力認識部12)が、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う例である。
例えば検出条件としては、選定した検出対象画像に応じた温度範囲の条件(温度条件)と、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲Adetの条件(位置条件)とする。
またCPU2(入力認識部12)は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、一の検出対象画像として選定する。
【0106】
図26に概要を示す。
例えばテレビジョン受像器20の前に3人の人が居たとする。そして図26Aに示すように、例えば2値化画像において3人のそれぞれの手の領域HD1,HD2,HD3が肌温度画像部として表れているとする。
なお、ここでは3人の手の温度は、35.5℃(領域HD1)、35.7℃(領域HD2)、34.9℃(領域HD3)であったとする。
【0107】
このように複数の人の手が撮像される場合、どの手の動きがジェスチャー操作を行ったかを特定してジェスチャー操作認識を行うことが必要になる。
そこで本例では、ジェスチャー操作を行う人は、予め特定の動作(特定ジェスチャー)を行った人(手)を操作者の手とし、その手の動きを検出してジェスチャー操作認識を行うこととする。
例えば特定ジェスチャーを、図26Aに破線矢印RDで示すように円を描くような手振りであるとする。
CPU2は、このような特定ジェスチャーを検知した場合、その手の温度に合わせて2値化のための閾値th3、th4の設定を行い、かつ、例えば図26Bに示すように検出対象範囲Adetを設定する。検出対象範囲Adetの設定は例えば上記第5の実施の形態で説明した処理と同様とする。
以降は、閾値th3、th4による温度条件と、検出対象範囲Adetによる画像上での位置の条件の上で、ジェスチャー操作の検出対象画像を特定し、操作認識を行う。
例えば温度条件として閾値th3=35.0℃、閾値th4=36.0℃とした場合、図26Aのうちで、領域HD1,HD2としての手の画像が該当する。つまり閾値th3、th4で2値化を行うと、図26Bのように2値化画像には領域HD1,HD2としての手の画像が抽出される。さらに位置条件として検出対象範囲Adetでの検出を行うものとすると、領域HD1の手の画像のみが該当する。このような状況の場合、CPU2は領域HD1の画像について、動き状態を検出してジェスチャー操作認識を行うものとする。
なお、温度条件による検出対象画像の特定と、画像上の位置の条件による検出対象画像の特定は、どちらか一方のみを用いてもよい。
【0108】
CPU2の具体的な処理例を図27に示す。図27は、図12の処理を変形したものとして、図12のステップF107,F108の内容を示すと共に、図12の処理に追加する処理として、ステップF501〜F505を加えたものである。図12と共に説明する。
【0109】
CPU2は、図12のステップF101〜F106は上述同様に実行する。なお当初は、ステップF103で使用する閾値は、閾値th1,th2としている。
CPU2はステップF106で微小領域消去後の差分画像Pic−dを生成した後は、ステップF107として、検出対象画像の重心算出を行うことになる。
【0110】
本例の場合、このステップF107を図27に示すように実行する。
まずCPU2はステップF107aで、微小領域消去後の差分画像Pic−dに、複数の検出対象画像が存在するか否かを確認する。
検出対象画像が1つであれば、CPU2はステップF107bに進み、その検出対象画像の重心計算を行って、重心座標メモリエリアARGに記憶する。これは図12のステップF107として説明したとおりの処理である。
一方、検出対象画像が複数存在する場合、CPU2はステップF107cに進み、各検出対象画像について、それぞれ重心計算を行い、重心座標メモリエリアARGに記憶する。なおこのため、重心座標メモリエリアARGには、複数の検出対象画像に対応して、それぞれ重心座標値が順次フレーム期間毎に記憶していくことができるように記憶領域が用意される。例えば図6Bのような記憶領域が、検出対象画像の数に応じて複数単位用意される。
【0111】
続く図12のステップF108では、重心座標メモリエリアARGの内容から重心座標変化を解析し、検出対象画像の動き状態を判定する。本例の場合、このステップF108で、図27に示す処理を行う。
まずCPU2は、ステップF108aで、検出対象画像が複数であったか否かで処理を分岐する。検出対象画像が1つの場合、ステップF108bで重心座標メモリエリアARGに記憶された一連の重心座標値から、動き状態を解析する。これは図12で述べたとおりの処理である。
この処理でジェスチャー操作に相当する動きが検出された場合は、CPU2は図12のステップF109→F110と進み、対応する制御コマンドを主機能部6に対して発行することとなる。
【0112】
一方、検出対象画像が複数で、それぞれについて重心座標メモリエリアARGに一連の重心座標値が記憶されている場合、CPU2はステップF108aからF108cに進み、各検出対象画像について重心座標の変化を解析して動き状態を判定する。
この場合の動き状態の判定は、上述の円弧を描く動きのような、特定ジェスチャーが合ったか否かの判定である。
そしていずれの検出対象画像にも特定の動き(特定ジェスチャー)が検出されなければ、ステップF501から図12のステップF109に進み、さらにステップF102に戻ることになる。
【0113】
赤外線カメラ1から順次供給されるフレームについて、図12(及び図27)の処理を継続していくことで、或る時点で、ステップF501で特定の動きがあると判定されることがある。
例えば図26Aのように3つの手の画像が撮像されて、それらが微小領域消去後の差分画像Pic−dにおいて動きのある部分(つまり検出対象画像)として表れている場合を例に挙げる。各フレームに対する処理期間において、上記ステップF107cでは、それぞれの検出対象画像について重心座標が求められて記憶される。
重心座標メモリエリアARGに、それぞれの検出対象画像について、それぞれ所要数の重心座標値が記憶された時点で、或る検出対象画像の動き状態が、円弧を描くような動きであると判定されることがある。
【0114】
例えば図26Aの領域HDの手の画像に相当するユーザが、手で円弧を描くと、その特定ジェスチャーが、或る時点でのステップF108cでの解析により検出される。
その場合、CPU2はステップF501からF502に処理を進め、一の検出対象画像を特定する。即ち領域HD1に相当する微小領域消去後の差分画像Pic−d上の画像を、検出対象画像として特定する。
そしてCPU2はステップF503で、当該領域HD1に相当する温度分布画像から求められる温度(領域HD1に相当する手の温度)を用いて、閾値th3、th4を求める。例えば第4の実施の形態で説明したように、領域HD1に相当する温度値を目的温度Tgとして、閾値th3=Tg−Td、閾値th4=Tg+Td等の演算で決定すればよい。閾値th3、th4を決定したら、これを図12のステップF103で閾値th1,th2に代えて使用する閾値とする。
【0115】
さらにCPU2はステップF504で、検出対象範囲Adetを算出する。検出対象範囲Adetの算出は第5の実施の形態で述べた図23の処理を実行すればよい。
検出対象範囲Adetを算出したら、CPU2はステップF505で、検出対象範囲Adetを対象としての入力認識処理を開始させて図12のステップF101に戻る。
【0116】
このステップF502〜F505の処理を経た後は、複数の検出対象画像が検知される場合でも、そのうちの1つが検出対象画像として特定され、ジェスチャー操作の監視が行われる状態となる。
即ち、2値化画像は閾値th3(例えば35.0℃)、閾値th4(例えば36.0℃)による温度条件で生成されることで、図26Aの例の場合、2値化画像に領域HD3に相当する部分は肌温度画像部としては表れず、除外される。
さらに図26Bのような検出対象範囲Adetで差分画像Pic−cの生成が行われることで、差分画像Pic−c、Pic−dには、領域HD2に相当する部分の動き成分は除外される。結局、ステップF107では、領域HD1に対応する部分について、ステップF107bの処理が行われ、またステップF108では、ステップF108bの処理が行われる状態となる。
これによって、先に特定ジェスチャーを行った或る一人のユーザの手の動きが監視されて、その後のジェスチャー操作の認識が行われることとなる。
【0117】
以上のように本例では、例えばテレビジョン受像器20の前に複数の人が居るような場合に、特定ジェスチャーを行った人の手を特定してジェスチャー操作認識を行うことで、複数の人の多様な動きによって認識処理が不安定になることはなく、操作者のジェスチャー操作を的確に検知できる。
【0118】
なお、特定のジェスチャーは、もちろん円弧を描くような動きに限るものではない。
また、一旦、1つの検出対象画像を特定して温度条件、位置条件を設定した後は、その状態を、1回のジェスチャー操作の完了まで維持することとしてもよいし、特定の時間だけ継続して維持するようにしてもよい。
【0119】
1回のジェスチャー操作の完了で温度条件、位置条件を解除することとすれば、複数の人のジェスチャー操作に対応するという意味で好適である。
一方、或る一人のユーザが、続けてジェスチャー操作を行うことを想定すれば、一旦或るユーザの手の温度や位置に対応して温度条件、位置条件を設定した後は、その条件をある程度の時間維持することが好適となる。
また、温度条件、位置条件の解除は、テレビジョン受像器20がオフされた場合としてもよい。
また、他の特定のジェスチャー(例えば円弧の描き方が反対周り)を解除指示と認識するようにして、操作者が当該解除指示を行ったら、温度条件、位置条件を解除するようにしてもよい。
また他の人が、特定のジェスチャーを行うことを検出できるようにし、その場合に、その人の手を対象に、新たに温度条件、位置条件を設定し直すということも考えられる。
【0120】
なお、上記例では検出条件としては、温度条件と位置条件のAND条件としたが、温度条件のみ、或いは位置条件のみを設定するという処理例も考えられる。
【0121】
また、特定のジェスチャーを行ったユーザの手の画像を検出対象画像として特定するとしたが、特定手法は多様に考えられる。
例えば複数の検出対象画像のうちで、或るジェスチャー操作に相当する動きが最初に観測された検出対象画像を、操作者の手の画像として特定し、それに応じてジェスチャー操作に係るコマンド発行とともに、図27のステップF503〜F505のような、以降の処理における条件設定を行っても良い。
また、複数の肌温度画像部が2値化画像上で表れている場合に、最初に動きが検出された画像領域(最初に差分画像Pic−c上で動きが観測される領域)を、検出対象画像として特定して、当該画像部分に対応して、図27のステップF503〜F505のような条件設定を行っても良い。
また、複数の肌温度画像部が2値化画像上で表れている場合に、動き量が最も大きい画像領域(差分画像Pic−c上で最も大きい動き量が観測される領域)を、検出対象画像として特定して、当該画像部分に対応して、図27のステップF503〜F505のような条件設定を行っても良い。
【0122】
<10.変形例>
以上、各種実施の形態の処理例を説明してきたが、処理例はさらに多様に考えられる。
第1の実施の形態で述べた図12の処理例では、差分画像Pic−cを生成した後、微小領域を消去した差分画像Pic−dを生成して、その差分画像Pic−dの重心を求めた。これに対して、微小領域消去処理を行わずに差分画像Pic−cから重心を求めてもよい。例えば所定面積以上の「1」領域を検出対象画像として扱って、その検出対象画像の重心座標値を求めることもできる。
【0123】
また手に相当する部分の重心座標の変化によって動き状態を判定するものとしたが、例えば差分画像Pic−c(又はPic−d)における「1」画素位置の中心座標の変位や、或いは画像エッジ部分の位置変位によって動き状態を判定してもよい。
【0124】
また各実施の形態の処理は、赤外線カメラ1の撮像画像の1フレーム毎の取込に応じて実行する例を挙げたが、nフレームおきというように間欠的に撮像画像のフレームを取り込んで処理を行うようにしてもよい。
【0125】
また各実施の形態では、ユーザの手を対象としてジェスチャー操作を認識する例で延べたが、手に限られない。例えば顔の動きとしてのジェスチャー操作に対応するようにすることも当然可能である。
【0126】
実施の形態ではテレビジョン受像器20に搭載される入力装置10の例で述べたが、本開示に係る入力装置、入力認識方法は多様な電子機器に搭載することができる。例えばビデオ機器、オーディオ機器、カメラ機器、コンピュータ機器、通信機器、家電機器などにおいて本開示の入力装置を搭載したり、入力認識方法を採用できる。
さらに、本開示の入力装置は、機器に接続する独立の機器として構成することもできる。
【0127】
また赤外線カメラ1による温度分布画像を得ることで、ユーザの肌の温度が通常より高温となっていることも検出可能とすることができる。例えば第5の閾値を設け、ユーザの肌の温度が第5の閾値より高い場合に、健康上の危険性を通知するなどの動作を実行するようにすることも考えられる。
【0128】
なお本技術は以下のような構成も採ることができる。
(1)赤外線カメラと、
所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、
上記画像取込部により取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部と、
を備えた入力装置。
(2)上記入力認識部は、人の肌の温度範囲として設定した第1の閾値と第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行う上記(1)に記載の入力装置。
(3)上記入力認識部は、温度分布画像の各画素の温度値が、上記第1の閾値と第2の閾値による温度範囲に含まれるか否かにより2値化を行って上記肌温度画像部が示される2値化画像を生成し、
さらに、複数の温度分布画像のそれぞれの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成し、
上記差分画像を用いて、検出対象画像の動き状態を判定する上記(2)に記載の入力装置。
(4)上記入力認識部は、上記差分画像について、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする上記(3)に記載の入力装置。
(5)上記入力認識部は、上記差分画像から検出対象画像の特徴点の位置を求め、特徴点の位置の変化から、検出対象画像の動き状態を判定する上記(3)又は(4)に記載の入力装置。
(6)上記所定の時間間隔は、上記赤外線カメラの撮像動作の1フレーム間隔である上記(1)乃至(5)のいずれかに記載の入力装置。
(7)上記入力認識部は、所定以上の面積を持つ上記肌温度画像部から、検出対象画像を選定する上記(1)乃至(6)のいずれかに記載の入力装置。
(8)上記入力認識部は、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行う上記(1)乃至(7)のいずれかに記載の入力装置。
(9)上記入力認識部は、人の肌の温度範囲として設定した上記第1の閾値と上記第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行った後、検出対象画像とされた肌温度画像部の温度値に基づいて、上記第1の閾値と上記第2の閾値で示される温度範囲より狭い温度範囲を示す第3の閾値と第4の閾値を設定し、以降、上記第3の閾値と上記第4の閾値を用いて、温度分布画像内での肌温度画像部の検出を行う上記(2)乃至(5)のいずれかに記載の入力装置。
(10)上記入力認識部は、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の画像位置に基づいて検出対象範囲を設定し、以降、上記検出対象範囲内で、検出対象画像の検出を行う上記(1)乃至(9)のいずれかに記載の入力装置。
(11)上記入力認識部は、上記差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う上記(3)乃至(5)のいずれかに記載の入力装置。
(12)上記入力認識部は、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う上記(1)乃至(11)のいずれかに記載の入力装置。
(13)上記検出条件は、選定した検出対象画像に応じた温度範囲の条件、又は、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲の条件である上記(12)に記載の入力装置。
(14)上記入力認識部は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、上記一の検出対象画像として選定する上記(12)又は(13)に記載の入力装置。
(15)上記入力認識部が認識した操作入力に応じて、制御を行う機器制御部をさらに備えた上記(1)乃至(14)のいずれかに記載の入力装置。
【符号の説明】
【0129】
1 赤外線カメラ、2 CPU、3 RAM、4 ROM、5 I・Oポート、6 主機能部、10 入力装置、11 画像取込部、12 入力認識部、13 機器制御部、20 テレビジョン受像器
【技術分野】
【0001】
本開示は入力装置、入力認識方法に関し、例えばユーザのジェスチャー操作等を検知する装置及びその入力認識の技術に関する。
【先行技術文献】
【特許文献】
【0002】
【特許文献1】特開2001−282456号公報
【背景技術】
【0003】
上記特許文献1では、机上でのマンマシンインターフェースを実現する技術として、机上の手を赤外線カメラで撮像した画像から、指先形状の特徴を利用したパターンマッチングを行って指先位置を特定し、その座標を求め機器を操作する手法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示では、テレビジョン受像器などの電子機器に対して、ユーザが空間で手を移動させたり手を振ったりするような動作(以下、このような動作を「ジェスチャー」と総称する)を行うことで、操作入力を行うことができるようにすること考える。
この場合、テレビジョン受像器等にカメラを設置し、ユーザを撮像して、その撮像画像からユーザの手の動きを判定するということが考えられる。しかしながら、上記特許文献1の技術のように机上を観察対象とするものでない場合、多様な物体が観察されることとなる。例えばユーザの手以外に、顔、身体、周囲の家具、電灯などである。
【0005】
このような状況を想定した場合、カメラに撮像される多様の物体の中からユーザのジェスチャーとしての例えば手の動きを判定し、それを操作入力に反映させなければならない。
例えば特許文献1の技術では赤外線カメラで撮像された画像から、人の体温を基に手の画像を抽出することとしているが、机上ではなく空間での操作を想定すると、顔の部分なども同じく抽出されてしまう。
従って手の部分を抽出するには、多様な物体の中から手の形状的な特徴を抽出するなどの複雑な画像処理が必要となり、処理装置が複雑となり処理時間が増大してしまう。これは赤外線カメラを用いて簡便に検出対象物を抜き出すという利点に反する。
また赤外線カメラの撮像範囲内に、体温と同等もしくは温度が高い物体(暖房器具、電球等)が有った場合も同様な課題が生じる。
【0006】
そこで本開示では、赤外線カメラを用いた入力装置において、複雑な処理を行うことなく、ユーザが空間で行うジェスチャーを的確に操作として認識できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本開示の入力装置は、赤外線カメラと、所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、上記画像取込部に取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部とを備える。
【0008】
本開示の入力認識方法は、赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識方法である。
【0009】
即ち本開示では、赤外線カメラで撮像される温度分布画像により、人の肌の温度に相当する肌温度画像部を検出することで、容易に操作入力のためのジェスチャーを行った「手」等を認識できるようにする。但し、肌の温度を基準とするのみでは、人の顔などジェスチャー操作をしていない部分も肌温度画像部として認識されてしまう。そこで肌温度画像部のうちで、動きが観測される部分を検出対象画像(ジェスチャー操作を行っている手などの検出対象物の画像)として認識するようにする。そしてその検出対象画像の動き状態で操作入力を認識する。
【発明の効果】
【0010】
本開示によれば、ユーザの空間でのジェスチャー操作を、赤外線カメラを用いた撮像画像から、簡易な処理で精度良く認識できるようになるという効果がある。
【図面の簡単な説明】
【0011】
【図1】本開示の実施の形態の操作方式において電子機器と対向する操作者の様子の説明図である。
【図2】実施の形態のジェスチャー操作の例の説明図である。
【図3】実施の形態の入力装置のブロック図である。
【図4】実施の形態の入力装置の機能構成を示したブロック図である。
【図5】実施の形態の赤外線カメラで撮像される温度分布画像の説明図である。
【図6】実施の形態の画像メモリエリア及び重心座標メモリエリアの説明図である。
【図7】赤外線カメラで撮像される温度分布画像とその2値化画像の説明図である。
【図8】実施の形態の温度分布画像と2値化画像の説明図である。
【図9】実施の形態の差分画像と重心計算の説明図である。
【図10】実施の形態の2値化処理の説明図である。
【図11】実施の形態の差分画像の処理の説明図である。
【図12】第1の実施の形態の入力認識処理のフローチャートである。
【図13】赤外線カメラの位置が機器の下方にある場合の説明図である。
【図14】赤外線カメラの位置が機器の上方にある場合の説明図である。
【図15】第2の実施の形態の入力認識処理のフローチャートである。
【図16】第2の実施の形態の変形例の入力認識処理のフローチャートである。
【図17】第3の実施の形態の動き判定の説明図である。
【図18】第3の実施の形態の動き判定処理のフローチャートである。
【図19】第4の実施の形態の肌温度画像部の抽出の説明図である。
【図20】第4の実施の形態の閾値調整処理のフローチャートである。
【図21】第5の実施の形態の検出対象範囲設定の説明図である。
【図22】第5の実施の形態の入力認識処理のフローチャートである。
【図23】第5の実施の形態の検出対象範囲算出処理のフローチャートである。
【図24】第6の実施の形態の差分画像で検出対象画像が認識できなくなる場合の説明図である。
【図25】第6の実施の形態のメッセージ表示を行う場合の入力認識処理のフローチャートである。
【図26】第7の実施の形態の複数の検出対象画像が存在する場合の処理の説明図である。
【図27】第7の実施の形態の入力認識処理のフローチャートである。
【発明を実施するための形態】
【0012】
以下、実施の形態を次の順序で説明する。
<1.ジェスチャー入力概要>
<2.入力装置の構成>
<3.第1の実施の形態>
[3−1:入力認識の手法]
[3−2:入力認識処理]
[3−3:赤外線カメラの位置]
<4.第2の実施の形態>
<5.第3の実施の形態>
<6.第4の実施の形態>
<7.第5の実施の形態>
<8.第6の実施の形態>
<9.第7の実施の形態>
<10.変形例>
なお、実施の形態では、テレビジョン受像器に内蔵される入力装置の例とし、該入力装置は、ユーザの手の動きによるジェスチャー操作を認識する。テレビジョン受像器の制御部は、入力装置が認識した操作に応じて、各種機能の制御を行う例とする。
また、実施の形態で用いる用語は、以下の意味とする。
・温度分布画像・・・赤外線カメラで撮像される画像であり、各画素が被写体の温度に応じた画素値を持つ画像をいう。
・肌温度画像部・・・温度分布画像内で、人の肌の温度に相当する画像部分(画素領域)をいう。
・検出対象画像・・・肌温度画像部のうちで、動き状況を判断する対象、即ちジェスチャー操作の認識を行う対象物の画像である。本実施の形態の場合、操作者の手の画像となる。なお検出対象画像として温度分布画像等の画像上に表れているもの(例えばユーザの手)を「検出対象物」という。
【0013】
<1.ジェスチャー入力概要>
図1は本例の入力装置を備えたテレビジョン受像器20と、テレビジョン受像器20を視聴するユーザを示している。
テレビジョン受像器20の例えば筐体上方には、赤外線カメラ1が配置されている。この赤外線カメラ1は本例の入力装置の一部となる。
赤外線カメラ1によってユーザが撮像される。テレビジョン受像器20に内蔵された本例の入力装置は、赤外線カメラ1によって連続的に撮像される各フレームの撮像画像(温度分布画像)から、ユーザのジェスチャーを検出し、ジェスチャーの内容に応じて、ユーザの操作を認識する。
【0014】
図2はジェスチャー操作の例を示している。
図2Aはジェスチャー操作により、音量やチャンネルの操作を行う例を示している。例えばユーザがテレビジョン受像器20側(つまり赤外線カメラ1側)に向かって、手を上方に移動させると、音量アップ操作、手を下方に移動させると音量ダウン操作とする。また、手を左方に移動させるとチャンネルアップ、右方に移動させるとチャンネルダウンとする。
このように、各種のジェスチャー態様に対して操作内容を予め割り当てておき、入力装置は、ユーザのジェスチャーが、このいずれかに該当すると認識した場合に、それを該当する操作内容(音量操作やチャンネル操作)と認識する。
【0015】
もちろん、図2Aは一例に過ぎず、ジェスチャーの態様や操作内容は多様に考えられる。図2Bは、ユーザが手を右回りに回したり、左回りに回す例を示しているが、このようなジェスチャーの態様に、特定の操作内容、例えば音量アップ/ダウン等を割り当てても良い。
さらに図示しないが、手を左右に振る、手を前後に振る、手を三角形を描くように移動させる、手をZ次状に移動させる等、多様なジェスチャーの態様を特定の操作に割り当てることも当然に考えられる。
【0016】
<2.入力装置の構成>
テレビジョン受像器20に内蔵される本例の入力装置10の構成を図3に示す。
図3はテレビジョン受像器20の内部構成において、特に入力装置10に相当する部分を主に示したものである。
図示のようにテレビジョン受像器20内には、赤外線カメラ1、CPU(Central Processing Unit)2、RAM(Random Access Memory)3、ROM(Read Only Memory)4、インプット・アウトプットポート(I・Oポート)5、主機能部6と、それぞれを接続するバスBUSが設けられる。
【0017】
赤外線カメラ1は、図1に示したように例えばテレビジョン受像器20の筐体上方に装備され、ユーザ側を被写体として撮像する。これによりユーザ側の温度分布画像を得る。
主機能部6とは、テレビジョン受像器20の主たる機能部位を包括的に示したものである。即ち、チューナ部、受信した放送信号についてのデコード部、デコードした映像・音声信号についての処理部、表示駆動部、表示部、音声出力部等、通常のテレビジョン受像器20に設けられる構成要素を含む。
【0018】
CPU2、RAM3、ROM4は、テレビジョン受像器20の制御部としての各種処理を実行するために設けられるが、本例の入力装置10を構成する要素ともなる。
CPU2は、例えばROM4に記憶されたプログラムを実行することで、テレビジョン受像器20の全体を統括的に制御する。即ちCPU2は、ユーザ操作やプログラムに応じて、I・Oポート5を介して主機能部6に制御コマンドや制御データを送り、主機能部6において必要な動作が実行されるように制御する。その上でCPU2は、本例の入力装置10を実現するためにジェスチャー操作を認識する機能も有する。
【0019】
RAM3は各種データや処理係数の記憶、プログラムの展開、ワーク領域等、CPU2の各種処理に必要な記憶領域として用いられる。また入力装置10の機能として赤外線カメラ1で撮像される温度分布画像や、入力認識処理の過程で生成される画像、重心座標値等の記憶も行う。
ROM4は例えばCPU2が実行するプログラム、固定の係数値、調整値等の記憶を行う。
【0020】
入力装置10の構成を機能という点に注目してCPU2、RAM3、ROM4による機能を示したものが図4である。
CPU2、RAM3、ROM4によって、画像取込部11、入力認識部12、機器制御部13が形成される。
【0021】
画像取込部11は、赤外線カメラ1で所定の時間間隔で撮像される温度分布画像の取込を行う。例えば1フレーム間隔で温度分布画像を取り込む。
具体的には、赤外線カメラ1で撮像されたフレーム単位の撮像画像データ(温度分布画像)は、I・Oポート5を介してRAM3に記憶され、CPU2が温度分布画像に対して必要な処理を行うことができる状態とされる。画像取込部11とは、このようなRAM3及びCPU2で実現される機能部位を示している。
図5には、赤外線カメラ1で撮像される各フレーム(N−1、N、N+1、N+2)の温度分布画像の例を示している。
【0022】
入力認識部12は、画像取込部11により取り込まれた、時間的に連続した複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する処理を行う。
具体的にはCPU2が、各フレームの温度分布画像について後述する2値化処理や差分画像処理を行い、ユーザのジェスチャー操作を認識する処理のことであり、ROM4に記憶されたプログラムに基づいて、CPU2がRAM3を用いて実行する処理として、入力認識部12が実現される。
【0023】
機器制御部13は、入力認識部12で認識されたジェスチャー操作に応じて、主機能部6に対して必要な制御を行う。例えば音量アップのジェスチャー操作を認識した場合、機器制御部13は音量アップのコマンドを主機能部6に送信し、音量アップを実行させる。具体的には、ジェスチャー操作の認識に応じてCPU2が実行するコマンド発行動作として、機器制御部13が実現される。
【0024】
本例の入力装置10は、図4に示すように、少なくとも赤外線カメラ1、画像取込部11、入力認識部12を備えた構成となる。
入力認識部12として、機器制御部13を加えた構成としてもよい。
【0025】
なお、具体的な処理例は後述するが、入力認識部12の処理においては、RAM3で各種データ記憶が行われる。このために、入力認識部12を構成する要素として、RAM3に図6Aのようなメモリエリアが用意される。
即ち画像メモリエリアAR−a,AR−b,AR−c,AR−d、及び重心座標メモリエリアARGである。
詳しくは後述するが、画像メモリエリアAR−a,AR−bには、赤外線カメラ1で撮像された温度分布画像の2値化画像が記憶される。
画像メモリエリアAR−cには、画像メモリエリアAR−a,AR−bにおける2つの2値化画像の差分として求めた差分画像が記憶される。
画像メモリエリアAR−dには、差分画像からさらに微小領域を消去した後の差分画像が記憶される。
【0026】
重心座標メモリエリアARGには、画像メモリエリアAR−dに記憶された画像の重心位置が記憶される。
重心座標メモリエリアARGは図6Bのように、各時点で画像メモリエリアAR−dに記憶された画像の重心位置の座標(X値、Y値)が記憶されていく。この重心座標メモリエリアARGには、1つの検出対象画像について時間的に連続するn個の重心位置座標が記憶可能とされる。重心座標メモリエリアARGはリングメモリ形式で用いられn個の重心位置座標を記憶した後は、古い重心座標から上書き消去されていくようにされてもよい。
なお、図6Bは、1つの検出対象画像についての重心位置座標の記憶領域を示している。場合によっては、複数の検出対象画像について重心位置座標を記憶していくことも有り、その場合、図6Bのような記憶領域が複数用意されることとなる。
【0027】
<3.第1の実施の形態>
[3−1:入力認識の手法]
以上の構成を有する本例の入力装置10において実行される第1の実施の形態としての入力認識処理について説明する。
【0028】
まず実施の形態の入力認識処理の開発に至る事情を簡単に説明する。
赤外線カメラ1を用いて温度分布画像を得ることによれば、その温度分布からユーザの肌(手)の部分を検出できる。これは、画像解析等の複雑な処理を行うことなくユーザの手を判別し、ジェスチャー検出を行うという点で有用である。
【0029】
但し次の点で正確な検出が困難になるという事情があった。
赤外線カメラ1で撮像された画像は、上記の図5の様に連続した画像になっている。このような温度分布画像に対して、人の肌の部分を検出するには、所定の閾値で周囲温度より高い温度の部分を検出する。例えば、30℃を閾値として、画像を2値化する。
図7Aは赤外線カメラ1で撮像されるあるフレームの撮像画像(温度分布画像)であり、図7Bは、例えば30℃を閾値として2値化した画像である。
2値化により手の部分が検出されるのであるが、この図7Bからわかるように、手以外の部分、例えばユーザの顔の部分も検出されてしまう。また、体温よりも温度が高い物体、例えば照明器具等も、同様に検出されてしまい、結局、手、顔、その他温度が高い物体が同一に検出されてしまうことになる。
このように単純に2値化したのみでは、本来検出したい部分(例えば手の部分)のみが正確に検出できない。そこで本実施の形態では、赤外線カメラ1による温度分布画像を用いた上で、以下説明するように手の部分の検出、及びそれによる入力認識を行う。
【0030】
図8、図9、図10、図11で説明する。
図8は、赤外線カメラ1で撮像されたフレームNの温度分布画像と、その2値化画像Pic−aを示しており、また時間的に連続する次のフレームN+1の温度分布画像と、その2値化画像Pic−bを示している。
【0031】
本例の場合、温度分布画像についての2値化には2つの閾値を用いる。すなわち、まずは、体温よりも温度が低い物体と高い物体を排除して、体温に近い物のみ検出する為、体温より若干低い第1の閾値と、体温より若干高い第2の閾値を設定する。
図10Bは、フレームNとフレームN+1における画面上の或る水平ラインの画素毎の温度値を示している。これは図10Aの画像における一点鎖線で示した水平ラインの画素と考えればよい。水平ライン上の各画素の温度値は、概ね図10Bに実線で示したようになっている。つまり、手、顔、後方の照明の部分で温度が高くなっている。
図10Bにおける横軸は、1フレームの水平ラインの画素数を640画素とした場合の画素数で、縦軸は温度である。
そして、この或る水平ラインの各画素におけるフレームNの温度値を実線で示し、フレームN+1の温度値を破線で示している。
この図10Bにおいて温度が高くなっている領域は、手の部分(領域HD)と、顔の部分(領域FC)と、照明等の高温物体部分(領域HT)である。
【0032】
フレームN、N+1は、ユーザが手を動かしているときの撮像画像であり、このため手の画像に相当する領域HDでは、フレームN、N+1で高温となる画素がずれている。一方、顔や照明等は殆ど動きがないため、領域FCや領域HTでは、フレームN、N+1で高温となる画素はほぼ一致している。
【0033】
ここで上記のように、2つの閾値th1、th2により、温度分布画像の2値化を行う。
例えば32℃程度の、体温より若干低い第1の閾値th1と、体温より若干高い例えば38℃程度の第2の閾値th2である。
図10Cには、フレームNとフレームN+1について、それぞれ2値化をした状態を示している。即ち閾値th1〜閾値th2の温度範囲に含まれる画素を「1」とし、閾値th1以下、及び閾値th2以上の画素を「0」とする処理である。
閾値th1,th2を用いた2値化は、人の肌の温度に相当する部分を抽出し、人の肌より低温又は高温の部分を除外することを目的とする。
これにより、図10Cのように、フレームN、N+1でそれぞれ、手に相当する部分と顔に相当する部分で、「1」の領域が観測されることになる。つまり、2値化により肌温度画像部を抽出する。
なお、図10Cの例では、領域HTの照明等の部分も、わずかに「1」の領域が存在する。これは温度変化のエッジ部分に相当する画素部分などによる。
図8における2値化画像Pic−a、Pic−bは、以上のように2値化を行った結果の画像であり、肌温度画像部を抽出した画像となっている。(「1」の部分を白、「0」の部分を黒で示している)。
但し、肌以外の照明等のエッジ部分も、わずかに「1」の画素が存在する。
【0034】
ここまでは、主に肌温度画像部を抽出するために2値化を行ったが、続いて、連続する2つの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成する。
【0035】
図11A、図11Bは、図10Cに示したフレームN、N+1の2値化画像の或る水平ラインを示しているが、この2値化画像の各画素について排他的論理和をとる。この排他的論理和の結果を図11Cに示している。これが差分画像Pic−cとなる。
差分画像Pic−cでは、元の撮像画像であるフレームN、N+1で動きのある手の部分である程度の「1」の領域が発生する。なお、顔の部分も、微小な動きが存在することで、わずかに「1」の領域が発生している。
差分画像Pic−cの例を図9Aに示す。図示のように、手の部分の比較的明らかな動き、及び顔の部分の微小な動きが、差分画像Pic−cに表れることになる。
なお、照明等の他の物体については、動きがないことから、差分画像Pic−cの時点で消失する。
【0036】
以降、差分画像Pic−cを用いて、検出対象画像を判定し、その動き状態を検出する。
このため、図9A及び図11Cの差分画像Pic−cについて、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする。
例えば差分画像Pic−cから、画素数(=画面上の面積)が微小の領域を消去する。これにより図9B及び図11Dに示すように、微小領域消去後の差分画像Pic−dを得る。
この微小領域消去後の差分画像Pic−dに表れている画像部分が、即ちユーザがジェスチャー操作のために動かした手の部分である検出対象画像となる。
なお、体温よりも温度が高い物体の部分で残っていた部分は、フレーム間で動きが無かったために、上記のように差分画像Pic−cの段階で無くなるが、例えば蝋燭の火のようにわずかな動きがあると、差分画像Pic−cにおいて微小領域として表れる。しかし、さらに微小領域を消去した差分画像Pic−dでは、そのような部分も消去され、ジェスチャー操作としての明らかな手の動き部分のみが残る可能性は非常に高くなる。
【0037】
画像Pic−dとして検出対象画像が抽出されたら、その検出対象画像(手)の特徴点として典型的には重心位置座標を判定する。
図9Cに示すように、動きのある画像としての検出対象画像の重心gを判定し、その画像上のX座標値(Xg)とY座標値(Yg)を求める。
この重心座標が、ジェスチャー操作にかかる手の、1つの位置座標とされ、上述した図6Bの重心座標メモリエリアARGに記憶される。
【0038】
手の動きは、以降、同様に求められる重心位置座標の変化、つまり順次重心座標メモリエリアARGに記憶されていく重心座標から求められる動きベクトルで判定される。
即ち、以上のようにフレームN、N+1の2値化後の差分画像から1つの重心座標が求められたら、例えば次にフレームN+1、N+2について同様に差分画像を生成して重心座標を求め、重心座標メモリエリアARGに記憶する。
さらにフレームN+2とN+3、フレームN+3とN+4・・・と、同様に差分画像から求めた重心座標を求め、重心座標メモリエリアARGに記憶する。
このような動作の過程で、CPU2(入力認識部12)は、重心座標メモリエリアARGに記憶された座標値の変化から、手の動きを判定することができる。
なお、ここでは検出対象画像(手)の特徴点として典型的な例として重心位置座標を用いて説明するが、特徴点としてはこれに限定されず、指先に相当する最上部の座標や、重心と最上部の中間部の座標などを用いてもよい。ジェスチャー操作に割り当てる手の動きによっては、手首よりも指先の方が大きく動きやすい場合もあるため、特徴点は適宜選択すればよい。
【0039】
[3−2:入力認識処理]
以上の入力認識処理を行うCPU2の具体的な処理例を、図12により説明する。図12の処理は、図4の構成でいえば、画像取込部11が順次取り込む赤外線カメラ1からの温度分布画像について、入力認識部12がステップF101〜F109の処理を行ってジェスチャー操作を認識し、それに応じて機器制御部13がステップF110で、操作に応じた制御を行うものとなる。以下、CPU2の処理として説明する。
【0040】
CPU2は、まずステップF101で、初期処理として、図6で説明した画像メモリエリアAR−a,AR−bをクリアする。
以降CPU2は、ジェスチャー操作の入力認識を終了するまで、赤外線カメラ1の撮像画像を取り込む毎に、ステップF102〜F110の処理を継続して行うこととなる。
【0041】
RAM3に確保される画像メモリエリアAR−a,AR−bは、図8に示したような2値化画像Pic−a、Pic−bを記憶するエリアとされる。赤外線カメラ1からの各フレームの撮像画像(温度分布画像)は、順次2値化された後、差分画像Pic−cの生成のために画像メモリエリアAR−a、AR−bに記憶される。
このためCPU2は、ステップF102では、画像メモリエリアAR−bの画像データを、画像メモリエリアAR−aに移動させる。
またCPU2はステップF103で、今回取り込んだフレームの撮像画像(温度分布画像)を、閾値th1,th2を用いて2値化し、画像メモリエリアAR−bに記憶する。
ステップF104でCPU2は、画像メモリエリアAR−aに2値化画像が記憶されているか否かを確認し、記憶されていなければ、ステップF102に戻る。
【0042】
以上の処理は、順次撮像されるフレームとして、今回のフレーム(フレームN+1)に係る2値化画像が画像メモリエリアAR−bに記憶され、前回のフレーム(フレームN)に係る2値化画像が画像メモリエリアAR−aに記憶されるようにする処理となる。
つまり処理開始後の最初のフレームの撮像画像に関しては、まずステップF103で2値化画像とされて画像メモリエリアAR−bに記憶される。
次のフレームが取り込まれた時点では、ステップF102で、前のフレームの2値化画像が画像メモリエリアAR−aに移動され、今回のフレームの2値化画像が画像メモリエリアAR−bに記憶される。
従って、今回のフレームに係る2値化画像Pic−bが画像メモリエリアAR−bに記憶され、前回のフレームに係る2値化画像Pic−aが画像メモリエリアAR−aに記憶される。ステップF102,F103では、これが以降のフレームの取込時にも継続されることになる。
【0043】
撮像画像の2フレーム目以降の取込時点の処理は、画像メモリエリアAR−a、AR−bに、今回の2値化画像Pic−bと前回の2値化画像Pic−aが記憶されている状態となっている。その場合は、ステップF104からF105に進む。
CPU2は、ステップF105で、画像メモリエリアAR−a、AR−bに記憶されている2値化画像Pic−a、Pic−bの各画素値の排他的論理和を計算し、差分画像Pic−cを生成する。そして差分画像Pic−cを画像メモリエリアAR−cに記憶する。
【0044】
次にCPU2はステップF106で、差分画像Pic−cのうちで微小領域を消去し、例えば図9Bに示したような、微小領域が消去された差分画像Pic−dを生成して、それを画像メモリエリアAR−dに記憶する。
具体的には、差分画像Pic−cのうちで「1」の画素が連続する領域のうちで、その領域の面積が、所定値(所定画素数)以下である領域について、画素値を「0」に置き換えれば良い。
【0045】
これにより、画像Pic−dは、ユーザの手などの検出対象物に相当する検出対象画像が残された差分画像となる。そこでCPU2はステップF107で、画像Pic−dに表れている検出対象画像について、重心計算を行う。そして求めた重心座標値を、重心座標メモリエリアARGに記憶する。
【0046】
ステップF108では、CPU2は、その時点で重心座標メモリエリアARGに保持されている座標値を解析し、検出対象画像の動き状態を判定する。
具体的には、重心座標メモリエリアARGに複数の重心座標が存在している場合に、その重心座標の変化のベクトル(方向及び変化量)を求める。
求められた1又は複数のベクトルから、検出対象画像がどのような動き(画像上での位置変動)を行っているかを判定する。
なお、このような処理のため、動き状態を判定するのは、重心座標メモリエリアARGに、少なくとも2以上の座標値が格納された以降となる。つまり少なくとも第3フレーム目の撮像画像の取込後に、ステップF102〜F107の処理が行われた後に、動き状態が判定可能となる。第2フレームの取込後に、第1,第2のフレームについての差分画像に基づいて1つ目の重心座標が判定でき、第2,第3のフレームについての差分画像について2つ目の重心座標が判定できるためである。
【0047】
CPU2は、ステップF109では、ステップF108での動き状態の解析の結果により、或るジェスチャー操作が行われたか否かを判定し、まだ動き状態が解析できない第2フレーム目までの時点、或いは動き状態が検出できるが、それが特定のジェスチャー操作に該当する動きではないと判定された場合は、ステップF102に戻って、次の取込画像に応じた上記処理を継続する。
一方、或る時点で、ステップF108で判定された検出対象画像の動き状態が、或るジェスチャー操作の動きに該当すると判定した場合は、CPU2はステップF110に進み、当該ジェスチャー操作に応じた制御コマンドを主機能部6に送信する。
例えば図2Aに示したうちで、ユーザの手の動きとして、左方に移動させるという動き状態を認識した場合、CPU2は、チャンネルアップの制御コマンドを主機能部6に送信し、チャンネルアップ動作を実行させることとなる。
【0048】
以上の処理により、CPU2は赤外線カメラ1の撮像画像から、ユーザの手(検出対象物)の画像(検出対象画像)の動き状態を判定し、その動き状態が予め設定されたジェスチャー操作の動きに該当している場合、当該操作に応じた機器動作が実行されるように制御を行うこととなる。
このような第1の実施の形態の入力認識処理によれば、次のような効果が得られる。
【0049】
まず、赤外線カメラ1の画像を人の肌の温度範囲を示す閾値th1,th2を用いて2値化することで、人の肌の温度とは異なる温度のものを、検出対象から排除できる。例えば照明、暖房器具等の高温の物、及び通常は体温より温度の低い家具等である。従って、赤外線撮像された温度分布画像の2値化で、人の肌の部分、即ち肌温度画像部を容易に抽出できる。
その上で、差分画像として動きのある肌温度画像部を抽出する。これによって、手を検出対象物とする場合に、顔など、肌温度ではあるが検出対象物ではない部分を除外できる。
即ち、2値化及び差分画像の生成により、画像のパターンマッチングによる形状解析等の複雑な処理を行うことなく、検出対象画像を抽出できる。
【0050】
また、このような処理では、差分画像上には、微小領域として、検出対象画像以外の画像もわずかに残される場合があるが、そのような微小領域、例えば連続画素領域の面積(画素数)が所定以下の部分を消去することで(画像Pic−d)、より正確に動きのある部分としての検出対象画像を判定できる。
なお、微小領域の消去は、例えばテレビジョン受像器20から離れた場所にいる人の手の動きなど、ジェスチャー操作に関係のない人の動きを、ジェスチャー操作と誤認定しないようにするという効果も生ずる。即ち遠くに居る人の肌の部分の画像は、小さい面積の画像部分となり、差分画像Pic−cに表れていても、画像Pic−dでは消去されている部分となるからである。
【0051】
以上のように画像Pic−dで検出対象画像を検出したら、検出対象画像の重心座標を求め、重心座標の変化から、検出対象画像の位置変動、つまり動きの量や方向性による動き状態を判定する。これも単純な重心位置間のベクトル計算で可能となる。
このような本例の処理では、容易な演算処理で、正確にジェスチャー操作を認識でき、ジェスチャー操作に応じた制御が可能となる。これによってジェスチャー操作によるヒューマンインターフェースを簡易かつ正確に実現できる。
提供できる。
【0052】
なお赤外線カメラ1を用いることによれば、照明の消えた暗い場所でも操作者のジェスチャー操作に用いる肌の部位を検出することができるため、室内が暗い場合でも入力認識を適切に実行できるという利点もある。
【0053】
[3−3:赤外線カメラの位置]
ところでテレビジョン受像器20に配置する赤外線カメラ1については、図1に示したように、なるべく機器の上方に配置することが好ましい。
図13Aは、仮に、テレビジョン受像器20の筐体の下方位置に赤外線カメラ1を配置した状態を示している。
この場合、赤外線カメラ1の撮像視野角度は、図示のようにある程度の仰角をもって設定される。通常、ユーザは、手によるジェスチャー操作は、自分の胸の前方位置で行うと考えられ、そのジェスチャー操作が行われる空間を適切に撮像できるようにするためである。
ところがこの場合、図13Bのように、撮像画像として手の部分のバックに顔の部分が重なることが多くなると考えられる。
このような撮像画像では、2値化すると手と顔の部分が同一の領域となり、差分画像Pic−c上に手の動きが表れなく場合が発生しやすい。
【0054】
これに対して図14Aのように、赤外線カメラ1をなるべく上方に配置すると、撮像画像上では図14Bのように顔の部分と手の部分が明確に分かれて撮像されやすくなる。
つまりこの場合は、差分画像Pic−c上で、手の動きが顔に隠れてしまうということが殆どなくなり、手の動きが明確に判定できることとなる。
以上のことから理解されるように、通常は、ユーザの顔よりも手の位置の方が低いことを考慮し、手によるジェスチャー操作を検出する入力装置とする場合は、赤外線カメラ1は、なるべく高い位置(撮像画面上で手と顔が重なりにくい位置)から撮像を行うようにすることが好ましい。
このため機器筐体の上方部位に赤外線カメラ1を内蔵したり、或いは機器筐体とは別体で、上方に赤外線カメラ1が位置されるようにするとよい。
【0055】
<4.第2の実施の形態>
続いて第2の実施の形態としての入力認識処理例を図15で説明する。図15は上述の図12と同様にCPU2の処理を示したものである。なお、図15において図12と同一の処理は同一のステップ番号を付し、説明を省略する。
【0056】
この処理例は、CPU2(入力認識部12)は、赤外線カメラ1で撮像された温度分布画像の2値化画像において、所定以上の面積を持つ肌温度画像部から、検出対象画像を選定するようにするものである。
図15の処理例は、図12と同様のステップF101〜F104の後に、ステップF140を加えたものである。
ステップF140はCPU2が、画像メモリエリアAR−a、AR−bに記憶された2値化画像Pic−a、Pic−bに、所定面積以上の「1」の画素領域が存在するかを確認する処理となる。上述の第1の実施の形態の説明のとおり、「1」の画素とは、閾値th1,th2の間の温度である手や顔などに相当する肌温度画像部である。
CPU2は、「1」の画素が連続する画素領域を確認し、その面積(=画素数)を求める。そして、2値化画像Pic−a、Pic−bに、それぞれ面積(画素数)が所定値以上の肌温度画像部が存在する場合に、ステップF105以降に進むようにする。ステップF105〜F110の処理は図12と同様である。
またCPU2は、ステップF140の処理で、2値化画像Pic−a、Pic−bの一方でも、面積が所定以上の肌温度画像部が存在しなければ、ステップF102に戻る。つまりその場合は差分画像Pic−cの生成や座標計算は行わない。
【0057】
この処理例は、不要な演算処理の不実行による処理の効率化と、操作者たるユーザの手以外の動きをジェスチャー操作と誤認する可能性を低くする点で有用である。
すなわち、ステップF140で所定面積以上の肌温度画像部が存在しないとされるのは、操作者たるユーザのジェスチャー操作が行われていないと考えられることに着目した処理となる。
【0058】
通常、ジェスチャー操作を行うユーザは、図1のようにテレビジョン受像器20の正面側で比較的近い位置に居る。従って、操作者の手や顔は、赤外線カメラ1での撮像画像において比較的大きな面積(画素領域)を占めることとなる。
一方、操作者がテレビジョン受像器20の前から席を外した場合は、そのような操作者の手や顔は、温度分布画像に撮像されない。また或る人が通常はジェスチャー操作を行わないような離れた位置にいる場合は、赤外線カメラ1でその人の手や顔が撮像されたとしても、それによる肌温度画像部は面積の小さいものとなる。
これらのことから、2値化画像において肌温度画像部が表れていたとしても、その面積が小さい画像は、「ジェスチャー操作の可能性のあるユーザの手の部分」ではないと判断し、ステップF140から処理を抜ける(ステップF105以降を行わない)ようにする。
【0059】
これによって、遠くの人の動きをジェスチャー操作と誤認することを防止したり、また人が居ないときに無駄な差分画像生成や座標演算を行わないといった処理の効率化を実現できる。
【0060】
ところで、同じ目的の処理として図16のような処理も考えられる。図16は、図12の処理にステップF141を加えたものである。
ステップF101〜F105は図12と同様である。
【0061】
CPU2は、ステップF141では、ステップF105で差分画像Pic−cを生成した時点で、差分画像Pic−cに所定面積以上の「1」の画素が連続した領域が存在するか否かを確認する。
そして差分画像Pic−cに、面積(画素数)が所定値以上の「1」画素部分が存在する場合に、ステップF106以降に進むようにする。ステップF106〜F110の処理は図12と同様である。
またCPU2は、ステップF141の処理で、差分画像Pic−cに、面積が所定以上の「1」画素部分が存在しなければ、ステップF102に戻る。つまりその場合は座標計算は行わない。
【0062】
差分画像Pic−cにおける「1」の画素とは、肌温度画像部のうち、動きのある部分を示すものである。従ってステップF141で差分画像Pic−cにおいて連続した「1」画素の面積が所定以上である場合とは、手や顔に相当する肌温度画像部のうちで、ある程度はっきりした動きが認められる領域があると判定できる場合となる。
第1の実施の形態で説明したように、ステップF106では差分画像Pic−cにおいて微小領域を消去するが、この図16においてステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、ジェスチャー操作としての有効な動きが検出されない場合となる。
【0063】
例えばステップF141の面積判定の閾値と、ステップF106の微小領域の判定の閾値を同一値とした場合は、ステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、もしステップF106で微小領域を消去した時点で、画像Pic−dには「1」画素が存在しなくなる状況となる。つまり、ジェスチャー操作に係る動きのある画像が元々存在していない状況である。
また例えばステップF141の面積判定の閾値を、ステップF106の微小領域の判定の閾値よりも大きい値とした場合は、ステップF141で、所定面積以上の「1」画素領域が存在しない場合とは、もしステップF106で微小領域を消去した後の画像Pic−dにおける「1」画素は、さほど動きが大きくない画像に対応した情報となっている場合である。つまりその場合の「1」画素は、ジェスチャー操作に対応した情報であるという可能性は低い。
【0064】
これらのことから差分画像Pic−cにおいて所定面積以上の「1」画素領域が存在しない場合とは、それはジェスチャー操作に係る画像である確率は極めて低い。そこでそのような場合は、座標値の計算を行わずにステップF141からF102に戻るようにすることで処理の効率化を図り、また微小な動きをジェスチャー操作の一部として誤認することを解消する。
【0065】
<5.第3の実施の形態>
第3の実施の形態の処理を図17,図18で説明する。
この例は、CPU2(入力認識部12)が、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行うものである。
【0066】
図17はフレームN、N+1、N+2の2値化画像としてユーザの手の部分のみを示している。ジェスチャー操作が行われた場合、ユーザの手は各フレームで連続してある程度以上の量の動きが観測される。例えば図示のようにフレームN、N+1、N+2・・・と連続して画像上の手の位置の変動が観測される。
一方、手の画像が2値化画像に表れたとしても、連続したフレーム間でほぼ同じ位置である場合は、手は動いておらず、ジェスチャー操作を行っているものではないと判断できる。
そこで、検出対象画像である手の画像の動き状態を示す位置の変化が所定フレーム以上連続して所定量以上であることを条件とすることで、的確にジェスチャー操作に係る動きを判定できる。
【0067】
具体的な例としてはCPU2は、図12の処理のステップF108において、図18に示す処理を含むようにすればよい。
第1の実施の形態で説明したように図12のステップF108では、重心座標メモリエリアARGの座標値を解析して動き状態を判定する。このときにCPU2は、図18の動き判定処理を行う。
なお、図18の処理例は、動きが2回連続して所定量以上であることを条件とする例である。
【0068】
まずステップF150でCPU2は、フレームNとフレームN+1間の検出対象物の動きベクトルを求め、これを動きベクトルV1とする。
またステップF151でCPU2は、フレームN+1とフレームN+2間の検出対象物の動きベクトルを求め、これを動きベクトルV2とする。
【0069】
なお図17では模式的に2値化画像でフレームNとフレームN+1間の検出対象物の動きベクトルV1とし、フレームN+1とフレームN+2間の検出対象物の動きベクトルV2としているが、図12の処理例に則していえば多少異なる点がある。
図12の処理例では、実際には座標値は微小領域消去後の差分画像Pic−dから求めているため、動きベクトルV1は、フレームNとフレームN+1から生成した画像Pic−dから求められる座標値と、フレームN+1とフレームN+2から生成した画像Pic−dから求められる座標値から求められるものとなる。同様に、動きベクトルV2は、フレームN+1とフレームN+2から生成した画像Pic−dから求められる座標値と、フレームN+2とフレームN+3から生成した画像Pic−dから求められる座標値から求められるものとなる。
つまり、動きベクトルV1、V2は、座標メモリエリアARGに順次記憶された座標値の差分として求めれば良い。
【0070】
CPU2は、ステップF152で、動きベクトルV1、V2が、それぞれ動き量の閾値Vsより大きいか否かを判定する。
そしてV1>Vs、かつV2>VsであればステップF153に進み、動き有りと判定する。一方、V1>Vs、かつV2>VsでなければステップF154に進み、動き無しと判定する。
【0071】
この図18はステップF108内の処理の一部(動き判定)のみを示しているが、CPU2は、動き有りと判定した場合は、さらに座標メモリエリアARGの各座標値から動き状態を判定し、それがジェスチャー操作に該当するか否かを判断することになる。
一方、動き無しと判定した場合は、動き状態がジェスチャー操作に該当するか否かの判断を行わずに、即座に操作入力は行われていないと判定できる。
【0072】
このように、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であること、つまり動きベクトルで求められる動きの量が連続して所定量以上であることを条件として動き状態の判断を行うことで、ユーザの一瞬の動きや微小な動きにむやみに反応してしまうことによる誤動作を防止すると共に、処理の効率化を実現できる。
なお、図18の例では2回連続してVs以上の動きという条件の例としたが、もちろん回数については3回連続、4回連続などを条件としても良い。
例えば3回連続の場合は、さらに続くフレームに関しての動きベクトルV3を求め、V1>Vs、かつV2>Vs、かつV3>Vsを条件とすれば良い。
【0073】
また、上記例は図18の処理を図12のステップF108内で行うものとしたが、このような例に限られない。例えば図17に示したように各フレームの2値化画像からベクトルV1、V2・・・を求めるようにして、その段階で所定回数、所定量の条件を満たしているか否かを判断しても良い。
【0074】
<6.第4の実施の形態>
第4の実施の形態の処理例を図19,図20で説明する。
これは2値化画像の生成において、はじめに第1の閾値th1と第2の閾値th2を用いて、対象となる例えば手の部分を検出した後、検出対象物の温度が絞り込めた場合、第1の閾値より高い第3の閾値th3と第2の閾値より低い第4の閾値th4を設定し、検出範囲を狭め、より肌温度画像部を特定し易くするものである。
【0075】
CPU2(入力認識部12)は、図19Aに示すように、人の肌の温度範囲として設定した閾値th1、th2に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での肌温度画像部の検出を行う。これは第1の実施の形態で説明したとおりである。
その後CPU2は、検出対象画像とされた肌温度画像部の温度値に基づいて、閾値th1、th2で示される温度範囲より狭い温度範囲を示す閾値th3、th4(図19A参照)を設定し、以降、閾値th3,th4を用いて、温度分布画像内での肌温度画像部の検出、つまり2値化画像の生成を行うようにする。赤外線による温度検出は分解能が高く、0.1度未満の差でも検出できるため、ユーザの顔と手の温度差や、体温の個人差等も十分検出が可能であり、このようにすることでジェスチャー操作の認識精度を向上できるからである。
【0076】
このためにはCPU2は、入力認識処理については例えば図12と同様に行えば良い。CPU2(入力認識部12)は図12の処理と並行して、例えば図20のような閾値調整処理を実行するようにする。
【0077】
CPU2はステップF201で、初期設定として温度幅Tdの設定を行う。温度幅Tdとは、図19Bに示す、目的温度Tgからの閾値th3,th4までの温度幅である。目的温度Tgとは、例えば検出対象物たる手の温度である。
【0078】
CPU2は、ステップF202で、まずは人の肌を検出するための一般的な温度範囲として閾値th1,th2を、図12のステップF103で使用する閾値として設定する。
これにより、図12の処理は、第1の実施の形態で説明したように実行される状態となる。
【0079】
その後CPU2は、ステップF203で検出対象物の温度(目的温度Tg)の測定を行う。この処理は図12の処理の実行中に、或る時点で検出対象画像が特定された際に可能となる。例えば図12のステップF106で微小領域消去後の差分画像Pic−dが得られた時点で、検出対象画像が特定される。
差分画像上で特定される検出対象画像に相当する2値化画像の画素位置(座標値)を求め、該2値化画像の元となった温度分布画像において、該当の画素位置における温度値を検出すれば、それが検出対象物(例えば操作者たるユーザの手)の温度、つまり目的温度Tgとして検出できる。
【0080】
CPU2は、目的温度Tgの測定を完了したらステップF204からF205に進み、先に設定した温度幅Tdと目的温度Tgを用いて閾値th3,th4を次のように決定する。
閾値th3=Tg−Td
閾値th4=Tg+Td
このように閾値th3、th4を決定したら、CPU2はステップF206で、閾値th3、th4を図12のステップF103で使用する閾値として設定する。
これにより、以降も継続される図12の処理は、ステップF103において閾値th3、th4を用いての2値化処理が行われることになる。
【0081】
閾値th3,th4を用いて2値化画像が生成されることで、2値化画像では、操作者の肌の部分以外の排除能力が高まり、2値化画像に表れる肌温度画像部は、操作者の肌の部分である可能性を一層高くできる。
従って、図12等の処理によるジェスチャー操作の認識の確度が高まることとなる。即ち2値化画像として肌温度画像部をより正確に判定できるためである。
また、複数の人が居る場合に、操作者ではない人の肌の部分の画像を2値化画像から排除できる可能性も高められることからも、ジェスチャー操作認識の確度を向上できる。
さらには、例えば操作者の手の温度と顔の温度が多少異なる場合に、手の部分のみを2値化画像で抽出できる場合もあり、その場合もジェスチャー操作の認識確度を高めることとなる。すなわち操作者が手を動かす範囲のうちの一部が顔と重なっていたとしても、手の動きだけを確実に認識する等の効果がある。
【0082】
閾値th3、th4を用いる状態は、その後、ジェスチャー追尾が終了とされるまで継続され、ジェスチャー追尾が終了とされたら、ステップF202に戻って、閾値th1,th2を使用する状態にセットする。
【0083】
ステップF207でいうジェスチャー追尾の終了の判断は各種の例が考えられる。
例えば図12の処理で1つのジェスチャー操作が認識され、ステップF110で操作コマンドが発行された時点をジェスチャー追尾の終了としてもよい。このようにした場合、1回のジェスチャー操作に関しての各フレームの処理において、閾値th3、th4をセットした後の2値化画像の精度を高めることができ、ジェスチャー操作としての動き状態の認識の精度を向上させることができる。
また或るユーザの肌温度を目的温度Tgとして閾値th3、th4を設定すると、他のユーザのジェスチャー操作が認識できない場合が生ずる。そのため、1回のジェスチャー操作の完了で閾値th3、th4の設定を解除して、閾値th1,th2の使用状態に戻すこととすれば、複数の人のジェスチャー操作に対応するという意味で好適である。
【0084】
一方、ある程度の時間間隔で、ジェスチャー操作が認識されなかったら、ジェスチャー追尾の終了と判断しても良い。
例えば或る一人のユーザが、続けてジェスチャー操作を行うことが通常に考えられる。その場合、一旦或るユーザの肌の温度を目的温度Tgとして閾値th3、th4を使用設定した場合、以降、その閾値th3、th4を用いることが好ましいともいえる。そこで、短い時間間隔で繰り返し何らかのジェスチャー操作が行われている間は、同一人が操作していると仮定して、閾値th3、th4の使用設定を継続するとよい。
またこのように、ある程度継続して閾値th3、th4の使用状態を継続するものとする場合は、ステップF203での目的温度Tgの測定は、少なくとも1回のジェスチャー操作を検知した後に行うようにしてもよい。ジェスチャー操作と認識された場合に、その際の該当する画像を検出対象画像とすることで、検出対象物の温度を正確に検出でき、もって閾値th3、th4の精度を高めることができるためである。
また、同様の目的で、閾値th3、th4の設定を行った後、一定時間を経たらジェスチャー追尾の終了と判断しても良い。
さらには、特定のジェスチャー操作を、閾値th3、th4の設定解除操作とし、ユーザの指示でジェスチャー追尾の終了とするようにしてもよい。
【0085】
なお、以上の図20の処理は図12の入力認識処理と並行して行うとしたが、例えば設定モードとして、閾値th3、th4の設定を行うことも考えられる。
例えば設定モードとして、閾値th1,th2の使用状態でユーザに手を赤外線カメラ1の前にかざしてもらったり、ジェスチャー操作を行ってもらう。そしてその状態で肌温度画像部を検出し、温度分布画像における該当部分の画素の温度を目的温度Tgとする。目的温度Tgを求めたら、閾値th3、th4を設定し、以降は常時、閾値th3、th4を図12のステップF103で使用する閾値とする。
ジェスチャー操作に関しては特定ユーザが常に使用するような場合、このように予めそのユーザの体温に合わせた閾値th3、th4を設定しておくことも精度向上に好適である。
【0086】
ところで閾値th3、th4は目的温度Tgから求める値としたが、閾値th1,th2よりも狭い温度範囲を示す値としての固定値を用いることも考えられる。例えば検出対象物であるユーザの手の温度が、閾値th3、th4の範囲内にある場合は、閾値th3、th4の使用に切り換える等の処理が考えられる。
【0087】
<7.第5の実施の形態>
第5の実施の形態の処理を図21,図22,図23で説明する。
この第5の実施の形態は、CPU2(入力認識部12)が、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の温度分布画像や2値化画像における位置に基づいて検出対象範囲を設定し、以降、その検出対象範囲内で、検出対象画像の検出を行うようにする例である。
【0088】
図21に例を示す。図21Aは2値化画像においてユーザの手の部分である領域HDと顔の部分である領域FCが表れている状態で示している。
ここで、入力認識処理の過程で、ユーザが範囲設定動作としての特定の動きとして、破線矢印RDのように手で円を描くような動作を行ったとする。
このような特定の動きを検出した場合、当該動きの画像上の位置に基づいて、図21Bに示すように検出対象範囲Adetを設定する。
以降は、この検出対象範囲Adet内で、検出対象画像の検出及び動き状態の判定を行うものとする。
【0089】
CPU2の処理例を図22に示す。なおステップF101〜F110は図12と同様であり、説明を省略する。
この図22は、基本的な処理は図12と同様となるが、例えば上記の図21のように、円を描くようなジェスチャーを特定のジェスチャーとして予め設定しておく。そして、ユーザがこの特定のジェスチャーを行った場合は、検出対象範囲Adetの設定を行う。
即ちCPU2は、ステップF108での検出対象画像の動き状態の判定によって、ジェスチャー操作としての動きが認められた場合は、ステップF109からF110に進んで対応したコマンドの発行を行うが、本例の場合、ステップF108での動き判定において、ジェスチャー操作の動きであるか否かの判定と共に、例えば円を描くような範囲設定動作としての「特定のジェスチャー」に相当する動きであるか否かの判定も行うようにする。
そして範囲設定動作としての特定のジェスチャーが認められた場合は、ステップF120からF121に進み、CPU2は、検出対象範囲Adetの算出処理を行う。
【0090】
このステップF121の検出対象範囲Adetの算出処理の例を図23に示している。
図21Aに示したようにユーザが破線矢印RDのように円弧を描く動作を行ったことに応じて、CPU2はステップF301で、画像上における円弧の中心座標CPと、直径Dを求める。
なお、各フレームでの手の画像の重心座標は、図22のステップF107で求められ、順次重心座標メモリエリアARGに記憶されている。従って、図22のステップF108では重心座標値の変位(動きベクトルの方向)から、円を描くようなジェスチャーを認識できる。さらに図23のステップF301では、重心座標メモリエリアARGに記憶された各重心座標の軌跡で形成される円について、その中心座標CP及び直径Dを、その各重心座標値から求めることができる。
【0091】
次にCPU2はステップF302で、検出対象物(手)の高さHと幅Wを求める。検出対象物の高さHと幅Wは、或るフレームの2値化画像における手の部分の高さ方向と幅方向の画素数から求めることができる。
【0092】
そしてCPU2はステップF303で、中心座標CPを中心にして、幅W+D、高さH+Dの範囲を、検出対象範囲Adetとして設定する。即ち図21Bに示すように、手の画像が通常撮されるであろう範囲が、検出対象範囲Adetとされる。
図22のステップF121で以上のように検出対象範囲Adetを算出したら、CPU2はステップF122で、当該検出対象範囲Adetに限定した入力認識処理を開始して、ステップF102からの処理を行う。
従って以降は、検出対象範囲Adetのみを対象として、ステップF102〜F108の処理が実行される。
例えば検出対象範囲Adetについて、2値化画像が生成される。そして複数の2値化画像の差分画像が生成され、微小領域の消去が行われ、検出対象画像が特定されて、その重心位置が記憶される。そして重心位置の変化状況から、検出対象画像の動き状態が判定される。
なお、2値化画像については画面全体で通常に行い、その後、差分画像Pic−cの生成範囲を、検出対象範囲Adet内のみに限定してもよい。
【0093】
以上のような処理例によれば、撮像画像上での範囲として、ユーザの手のジェスチャー操作が位置する範囲が限定されて入力認識が行われる。このため、顔の部分や他の物を除外して入力認識を行う確立を高めることができ、ジェスチャー操作認識の確度を,高めることができる。
【0094】
なお、以上の例では図22の入力認識処理の過程で、ユーザが特定のジェスチャーを行うことに応じて検出対象範囲Adetを設定するものとしたが、入力認識処理とは独立した設定モード等で検出対象範囲Adetの設定を行っても良い。
例えば設定モード状態においてユーザに特定のジェスチャーを実行してもらい、CPU2は、それを認識して図23のような処理で検出対象範囲Adetを設定する。以降は検出対象範囲Adetにおいて入力認識処理を行うようにしても良いし、ユーザの操作により検出対象範囲Adetが有効化されるようにしてもよい。
【0095】
また、特定のジェスチャーは、円を描くようなジェスチャー以外に多様に考えられることは言うまでもない。
また、検出対象範囲Adetの設定手法も多様に考えられる。
例えばユーザに手を四角形や円形に動かすような「特定のジェスチャー」を実行してもらい、その移動軌跡を元に、移動軌跡外縁より若干広い画像上の範囲を検出対象範囲Adetとすることなども考えられる。
【0096】
<8.第6の実施の形態>
第6の実施の形態を図24,図25で説明する。これは、CPU2(入力認識部12)が、差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う例である。
【0097】
図24A,図24Bに、或る連続するフレームの2値化画像Pic−a、Pic−bを示している。この場合に撮像画像にはユーザの顔と手が写されており、2値化画像Pic−a、Pic−bには、ユーザの顔に相当する領域FCと手に相当する領域HDが表れているとしている。ところが図示のように手の領域HDが顔の領域FCと重なっており、手の領域HDのみを抽出できない状況にある。換言すれば、手の動きが、背後の顔の領域FCに隠れて検出できない。
CPU2から見れば、この2値化画像Pic−a、Pic−bの差分画像Pic−cは図24Cのように、動きを表す差分画素が表れない状態となってしまう。
ユーザが顔の前で手を動かすようなジェスチャー操作を行うと、このような状況が発生することがある。そしてこのような状況が続くと、ジェスチャー操作を的確に検出できない。
【0098】
そこでCPU2は、このような状況において、ユーザにメッセージを出力する処理を行うようにする。
例えばCPU2は、図12のステップF105の処理として、図25に示すような処理を行うようにする。
【0099】
図12においてステップF105に進む場合は、画像メモリエリアAR−a,AR−bに2値化画像Pic−a、Pic−bが格納され、これらの差分画像Pic−cを生成する場合である。
この際にCPU2は、図25のステップF401として、2値化画像Pic−a、Pic−bに肌温度画像部があるか否かを確認する。肌温度画像部は、即ち閾値th1,th2による2値化で「1」となる画素の領域である。
もし2値化画像Pic−a、Pic−bに肌温度画像部が存在しなければ、差分画像Pic−cを生成する必要はないため、図12のステップF102に戻る。
【0100】
2値化画像Pic−a、Pic−bに肌温度画像部がある場合は、CPU2はステップF402に進んで、2値化画像Pic−a、Pic−bの各画素について排他的論理和を演算し、差分画像Pic−cを生成する。
この場合にCPU2は、ステップF403で、有効な差分画像Pic−cが生成できたか否かを確認する。有効な差分画像とは、動きのある肌温度画像部が存在している差分画像と考えればよい。例えば差分画像Pic−cにおいて「1」の画素として所定面積以上の連続領域が存在していれば、有効な差分画像Pic−cと判定する。一方、図24Cのように「1」画素が存在しない場合、あるいは存在しても微小な領域の場合は、有効な差分画像Pic−cではないとする。
【0101】
有効な差分画像Pic−cが得られた場合は、ステップF404に進んで、差分画像Pic−cを画像メモリエリアAR−cに記憶する。これにより図12のステップF105の処理を完了し、ステップF106に進む。
【0102】
一方、有効な差分画像Pic−cが生成できなかった場合は、ステップF405にすすみ、無効差分画像生成の連続回数をカウントする変数CTをインクリメントする。
そしてステップF406で変数CTが、カウント閾値CTth以上となっているか否かを判断し、CT<CTthであれば、そのまま図12のステップF102に進む。
赤外線カメラ1の撮像画像のフレーム取込毎に行われる図12の処理の過程で、2値化画像に肌温度画像部が存在するにもかかわらず、有効な差分画像Pic−cが生成できない状態が、長時間継続すると、或る時点でステップF406で変数CT≧カウント閾値CTthとなる。
この場合、CPU2はステップF406からF407に進み、メッセージ表示制御を行う。即ち図24で説明したような状況で、ジェスチャー操作が良好に検出できない状態であると推定し、それに応じて主機能部6に例えば「ジェスチャー操作の手の位置を変えて下さい」等の表示出力を実行させる。例えば、一定時間、当該メッセージ表示を実行するように制御すれば良い。
そしてステップF408で変数CTを0リセットして、図12のステップF102に戻る。
【0103】
例えばこのような処理を行うことで、ユーザの手の位置の都合などで長時間ジェスチャー操作が検出できない場合に、ユーザにジェスチャー操作を行う位置の是正を求めることができる。メッセージ表示に応じて、ユーザが手の位置を下げるなどすれば、その後は有効な差分画像Pic−cが得られる状態となり、ジェスチャー操作認識が正常に可能となる。
【0104】
以上はユーザのジェスチャー位置の変更を求めるメッセージ表示を行う処理例であるが、どのようなタイミングや条件でメッセージ表示を行うかは多様に考えられる。
例えば、テレビジョン受像器20の前に人が居て、2値化画像に肌温度画像部が表れていたとしても、その人が全くジェスチャー操作を行っていない場合は、長時間、有効な差分画像Pic−cが得られないといった判定が為される可能性がある。
そこで、テレビジョン受像機20がジェスチャー操作を待っているモードにもかかわらず、ジェスチャー操作が所定の時間検出されない場合にメッセージ表示を行うようにしてもよい。
またジェスチャー操作を行っている場合には、手以外の顔なども多少の動きが生ずることなどに着目して、顔に相当する部分で微小な動きが表れているが、手の動きが表れていない差分画像Pic−cを、有効ではない差分画像Pic−cと判断するなどの手法も考えられる。
即ち、ジェスチャー操作を行っているであろうと推定されるにもかかわらず、手の動きが観測できないというような場合に、メッセージ表示を行うことが適切である。
【0105】
<9.第7の実施の形態>
第7の実施の形態を図26,図27で説明する。
これはCPU2(入力認識部12)が、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う例である。
例えば検出条件としては、選定した検出対象画像に応じた温度範囲の条件(温度条件)と、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲Adetの条件(位置条件)とする。
またCPU2(入力認識部12)は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、一の検出対象画像として選定する。
【0106】
図26に概要を示す。
例えばテレビジョン受像器20の前に3人の人が居たとする。そして図26Aに示すように、例えば2値化画像において3人のそれぞれの手の領域HD1,HD2,HD3が肌温度画像部として表れているとする。
なお、ここでは3人の手の温度は、35.5℃(領域HD1)、35.7℃(領域HD2)、34.9℃(領域HD3)であったとする。
【0107】
このように複数の人の手が撮像される場合、どの手の動きがジェスチャー操作を行ったかを特定してジェスチャー操作認識を行うことが必要になる。
そこで本例では、ジェスチャー操作を行う人は、予め特定の動作(特定ジェスチャー)を行った人(手)を操作者の手とし、その手の動きを検出してジェスチャー操作認識を行うこととする。
例えば特定ジェスチャーを、図26Aに破線矢印RDで示すように円を描くような手振りであるとする。
CPU2は、このような特定ジェスチャーを検知した場合、その手の温度に合わせて2値化のための閾値th3、th4の設定を行い、かつ、例えば図26Bに示すように検出対象範囲Adetを設定する。検出対象範囲Adetの設定は例えば上記第5の実施の形態で説明した処理と同様とする。
以降は、閾値th3、th4による温度条件と、検出対象範囲Adetによる画像上での位置の条件の上で、ジェスチャー操作の検出対象画像を特定し、操作認識を行う。
例えば温度条件として閾値th3=35.0℃、閾値th4=36.0℃とした場合、図26Aのうちで、領域HD1,HD2としての手の画像が該当する。つまり閾値th3、th4で2値化を行うと、図26Bのように2値化画像には領域HD1,HD2としての手の画像が抽出される。さらに位置条件として検出対象範囲Adetでの検出を行うものとすると、領域HD1の手の画像のみが該当する。このような状況の場合、CPU2は領域HD1の画像について、動き状態を検出してジェスチャー操作認識を行うものとする。
なお、温度条件による検出対象画像の特定と、画像上の位置の条件による検出対象画像の特定は、どちらか一方のみを用いてもよい。
【0108】
CPU2の具体的な処理例を図27に示す。図27は、図12の処理を変形したものとして、図12のステップF107,F108の内容を示すと共に、図12の処理に追加する処理として、ステップF501〜F505を加えたものである。図12と共に説明する。
【0109】
CPU2は、図12のステップF101〜F106は上述同様に実行する。なお当初は、ステップF103で使用する閾値は、閾値th1,th2としている。
CPU2はステップF106で微小領域消去後の差分画像Pic−dを生成した後は、ステップF107として、検出対象画像の重心算出を行うことになる。
【0110】
本例の場合、このステップF107を図27に示すように実行する。
まずCPU2はステップF107aで、微小領域消去後の差分画像Pic−dに、複数の検出対象画像が存在するか否かを確認する。
検出対象画像が1つであれば、CPU2はステップF107bに進み、その検出対象画像の重心計算を行って、重心座標メモリエリアARGに記憶する。これは図12のステップF107として説明したとおりの処理である。
一方、検出対象画像が複数存在する場合、CPU2はステップF107cに進み、各検出対象画像について、それぞれ重心計算を行い、重心座標メモリエリアARGに記憶する。なおこのため、重心座標メモリエリアARGには、複数の検出対象画像に対応して、それぞれ重心座標値が順次フレーム期間毎に記憶していくことができるように記憶領域が用意される。例えば図6Bのような記憶領域が、検出対象画像の数に応じて複数単位用意される。
【0111】
続く図12のステップF108では、重心座標メモリエリアARGの内容から重心座標変化を解析し、検出対象画像の動き状態を判定する。本例の場合、このステップF108で、図27に示す処理を行う。
まずCPU2は、ステップF108aで、検出対象画像が複数であったか否かで処理を分岐する。検出対象画像が1つの場合、ステップF108bで重心座標メモリエリアARGに記憶された一連の重心座標値から、動き状態を解析する。これは図12で述べたとおりの処理である。
この処理でジェスチャー操作に相当する動きが検出された場合は、CPU2は図12のステップF109→F110と進み、対応する制御コマンドを主機能部6に対して発行することとなる。
【0112】
一方、検出対象画像が複数で、それぞれについて重心座標メモリエリアARGに一連の重心座標値が記憶されている場合、CPU2はステップF108aからF108cに進み、各検出対象画像について重心座標の変化を解析して動き状態を判定する。
この場合の動き状態の判定は、上述の円弧を描く動きのような、特定ジェスチャーが合ったか否かの判定である。
そしていずれの検出対象画像にも特定の動き(特定ジェスチャー)が検出されなければ、ステップF501から図12のステップF109に進み、さらにステップF102に戻ることになる。
【0113】
赤外線カメラ1から順次供給されるフレームについて、図12(及び図27)の処理を継続していくことで、或る時点で、ステップF501で特定の動きがあると判定されることがある。
例えば図26Aのように3つの手の画像が撮像されて、それらが微小領域消去後の差分画像Pic−dにおいて動きのある部分(つまり検出対象画像)として表れている場合を例に挙げる。各フレームに対する処理期間において、上記ステップF107cでは、それぞれの検出対象画像について重心座標が求められて記憶される。
重心座標メモリエリアARGに、それぞれの検出対象画像について、それぞれ所要数の重心座標値が記憶された時点で、或る検出対象画像の動き状態が、円弧を描くような動きであると判定されることがある。
【0114】
例えば図26Aの領域HDの手の画像に相当するユーザが、手で円弧を描くと、その特定ジェスチャーが、或る時点でのステップF108cでの解析により検出される。
その場合、CPU2はステップF501からF502に処理を進め、一の検出対象画像を特定する。即ち領域HD1に相当する微小領域消去後の差分画像Pic−d上の画像を、検出対象画像として特定する。
そしてCPU2はステップF503で、当該領域HD1に相当する温度分布画像から求められる温度(領域HD1に相当する手の温度)を用いて、閾値th3、th4を求める。例えば第4の実施の形態で説明したように、領域HD1に相当する温度値を目的温度Tgとして、閾値th3=Tg−Td、閾値th4=Tg+Td等の演算で決定すればよい。閾値th3、th4を決定したら、これを図12のステップF103で閾値th1,th2に代えて使用する閾値とする。
【0115】
さらにCPU2はステップF504で、検出対象範囲Adetを算出する。検出対象範囲Adetの算出は第5の実施の形態で述べた図23の処理を実行すればよい。
検出対象範囲Adetを算出したら、CPU2はステップF505で、検出対象範囲Adetを対象としての入力認識処理を開始させて図12のステップF101に戻る。
【0116】
このステップF502〜F505の処理を経た後は、複数の検出対象画像が検知される場合でも、そのうちの1つが検出対象画像として特定され、ジェスチャー操作の監視が行われる状態となる。
即ち、2値化画像は閾値th3(例えば35.0℃)、閾値th4(例えば36.0℃)による温度条件で生成されることで、図26Aの例の場合、2値化画像に領域HD3に相当する部分は肌温度画像部としては表れず、除外される。
さらに図26Bのような検出対象範囲Adetで差分画像Pic−cの生成が行われることで、差分画像Pic−c、Pic−dには、領域HD2に相当する部分の動き成分は除外される。結局、ステップF107では、領域HD1に対応する部分について、ステップF107bの処理が行われ、またステップF108では、ステップF108bの処理が行われる状態となる。
これによって、先に特定ジェスチャーを行った或る一人のユーザの手の動きが監視されて、その後のジェスチャー操作の認識が行われることとなる。
【0117】
以上のように本例では、例えばテレビジョン受像器20の前に複数の人が居るような場合に、特定ジェスチャーを行った人の手を特定してジェスチャー操作認識を行うことで、複数の人の多様な動きによって認識処理が不安定になることはなく、操作者のジェスチャー操作を的確に検知できる。
【0118】
なお、特定のジェスチャーは、もちろん円弧を描くような動きに限るものではない。
また、一旦、1つの検出対象画像を特定して温度条件、位置条件を設定した後は、その状態を、1回のジェスチャー操作の完了まで維持することとしてもよいし、特定の時間だけ継続して維持するようにしてもよい。
【0119】
1回のジェスチャー操作の完了で温度条件、位置条件を解除することとすれば、複数の人のジェスチャー操作に対応するという意味で好適である。
一方、或る一人のユーザが、続けてジェスチャー操作を行うことを想定すれば、一旦或るユーザの手の温度や位置に対応して温度条件、位置条件を設定した後は、その条件をある程度の時間維持することが好適となる。
また、温度条件、位置条件の解除は、テレビジョン受像器20がオフされた場合としてもよい。
また、他の特定のジェスチャー(例えば円弧の描き方が反対周り)を解除指示と認識するようにして、操作者が当該解除指示を行ったら、温度条件、位置条件を解除するようにしてもよい。
また他の人が、特定のジェスチャーを行うことを検出できるようにし、その場合に、その人の手を対象に、新たに温度条件、位置条件を設定し直すということも考えられる。
【0120】
なお、上記例では検出条件としては、温度条件と位置条件のAND条件としたが、温度条件のみ、或いは位置条件のみを設定するという処理例も考えられる。
【0121】
また、特定のジェスチャーを行ったユーザの手の画像を検出対象画像として特定するとしたが、特定手法は多様に考えられる。
例えば複数の検出対象画像のうちで、或るジェスチャー操作に相当する動きが最初に観測された検出対象画像を、操作者の手の画像として特定し、それに応じてジェスチャー操作に係るコマンド発行とともに、図27のステップF503〜F505のような、以降の処理における条件設定を行っても良い。
また、複数の肌温度画像部が2値化画像上で表れている場合に、最初に動きが検出された画像領域(最初に差分画像Pic−c上で動きが観測される領域)を、検出対象画像として特定して、当該画像部分に対応して、図27のステップF503〜F505のような条件設定を行っても良い。
また、複数の肌温度画像部が2値化画像上で表れている場合に、動き量が最も大きい画像領域(差分画像Pic−c上で最も大きい動き量が観測される領域)を、検出対象画像として特定して、当該画像部分に対応して、図27のステップF503〜F505のような条件設定を行っても良い。
【0122】
<10.変形例>
以上、各種実施の形態の処理例を説明してきたが、処理例はさらに多様に考えられる。
第1の実施の形態で述べた図12の処理例では、差分画像Pic−cを生成した後、微小領域を消去した差分画像Pic−dを生成して、その差分画像Pic−dの重心を求めた。これに対して、微小領域消去処理を行わずに差分画像Pic−cから重心を求めてもよい。例えば所定面積以上の「1」領域を検出対象画像として扱って、その検出対象画像の重心座標値を求めることもできる。
【0123】
また手に相当する部分の重心座標の変化によって動き状態を判定するものとしたが、例えば差分画像Pic−c(又はPic−d)における「1」画素位置の中心座標の変位や、或いは画像エッジ部分の位置変位によって動き状態を判定してもよい。
【0124】
また各実施の形態の処理は、赤外線カメラ1の撮像画像の1フレーム毎の取込に応じて実行する例を挙げたが、nフレームおきというように間欠的に撮像画像のフレームを取り込んで処理を行うようにしてもよい。
【0125】
また各実施の形態では、ユーザの手を対象としてジェスチャー操作を認識する例で延べたが、手に限られない。例えば顔の動きとしてのジェスチャー操作に対応するようにすることも当然可能である。
【0126】
実施の形態ではテレビジョン受像器20に搭載される入力装置10の例で述べたが、本開示に係る入力装置、入力認識方法は多様な電子機器に搭載することができる。例えばビデオ機器、オーディオ機器、カメラ機器、コンピュータ機器、通信機器、家電機器などにおいて本開示の入力装置を搭載したり、入力認識方法を採用できる。
さらに、本開示の入力装置は、機器に接続する独立の機器として構成することもできる。
【0127】
また赤外線カメラ1による温度分布画像を得ることで、ユーザの肌の温度が通常より高温となっていることも検出可能とすることができる。例えば第5の閾値を設け、ユーザの肌の温度が第5の閾値より高い場合に、健康上の危険性を通知するなどの動作を実行するようにすることも考えられる。
【0128】
なお本技術は以下のような構成も採ることができる。
(1)赤外線カメラと、
所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、
上記画像取込部により取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部と、
を備えた入力装置。
(2)上記入力認識部は、人の肌の温度範囲として設定した第1の閾値と第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行う上記(1)に記載の入力装置。
(3)上記入力認識部は、温度分布画像の各画素の温度値が、上記第1の閾値と第2の閾値による温度範囲に含まれるか否かにより2値化を行って上記肌温度画像部が示される2値化画像を生成し、
さらに、複数の温度分布画像のそれぞれの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成し、
上記差分画像を用いて、検出対象画像の動き状態を判定する上記(2)に記載の入力装置。
(4)上記入力認識部は、上記差分画像について、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする上記(3)に記載の入力装置。
(5)上記入力認識部は、上記差分画像から検出対象画像の特徴点の位置を求め、特徴点の位置の変化から、検出対象画像の動き状態を判定する上記(3)又は(4)に記載の入力装置。
(6)上記所定の時間間隔は、上記赤外線カメラの撮像動作の1フレーム間隔である上記(1)乃至(5)のいずれかに記載の入力装置。
(7)上記入力認識部は、所定以上の面積を持つ上記肌温度画像部から、検出対象画像を選定する上記(1)乃至(6)のいずれかに記載の入力装置。
(8)上記入力認識部は、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行う上記(1)乃至(7)のいずれかに記載の入力装置。
(9)上記入力認識部は、人の肌の温度範囲として設定した上記第1の閾値と上記第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行った後、検出対象画像とされた肌温度画像部の温度値に基づいて、上記第1の閾値と上記第2の閾値で示される温度範囲より狭い温度範囲を示す第3の閾値と第4の閾値を設定し、以降、上記第3の閾値と上記第4の閾値を用いて、温度分布画像内での肌温度画像部の検出を行う上記(2)乃至(5)のいずれかに記載の入力装置。
(10)上記入力認識部は、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の画像位置に基づいて検出対象範囲を設定し、以降、上記検出対象範囲内で、検出対象画像の検出を行う上記(1)乃至(9)のいずれかに記載の入力装置。
(11)上記入力認識部は、上記差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う上記(3)乃至(5)のいずれかに記載の入力装置。
(12)上記入力認識部は、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う上記(1)乃至(11)のいずれかに記載の入力装置。
(13)上記検出条件は、選定した検出対象画像に応じた温度範囲の条件、又は、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲の条件である上記(12)に記載の入力装置。
(14)上記入力認識部は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、上記一の検出対象画像として選定する上記(12)又は(13)に記載の入力装置。
(15)上記入力認識部が認識した操作入力に応じて、制御を行う機器制御部をさらに備えた上記(1)乃至(14)のいずれかに記載の入力装置。
【符号の説明】
【0129】
1 赤外線カメラ、2 CPU、3 RAM、4 ROM、5 I・Oポート、6 主機能部、10 入力装置、11 画像取込部、12 入力認識部、13 機器制御部、20 テレビジョン受像器
【特許請求の範囲】
【請求項1】
赤外線カメラと、
所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、
上記画像取込部により取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部と、
を備えた入力装置。
【請求項2】
上記入力認識部は、人の肌の温度範囲として設定した第1の閾値と第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行う請求項1に記載の入力装置。
【請求項3】
上記入力認識部は、温度分布画像の各画素の温度値が、上記第1の閾値と第2の閾値による温度範囲に含まれるか否かにより2値化を行って上記肌温度画像部が示される2値化画像を生成し、
さらに、複数の温度分布画像のそれぞれの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成し、
上記差分画像を用いて、検出対象画像の動き状態を判定する請求項2に記載の入力装置。
【請求項4】
上記入力認識部は、上記差分画像について、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする請求項3に記載の入力装置。
【請求項5】
上記入力認識部は、上記差分画像から検出対象画像の特徴点の位置を求め、特徴点の位置の変化から、検出対象画像の動き状態を判定する請求項3に記載の入力装置。
【請求項6】
上記所定の時間間隔は、上記赤外線カメラの撮像動作の1フレーム間隔である請求項1に記載の入力装置。
【請求項7】
上記入力認識部は、所定以上の面積を持つ上記肌温度画像部から、検出対象画像を選定する請求項1に記載の入力装置。
【請求項8】
上記入力認識部は、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行う請求項1に記載の入力装置。
【請求項9】
上記入力認識部は、人の肌の温度範囲として設定した上記第1の閾値と上記第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行った後、検出対象画像とされた肌温度画像部の温度値に基づいて、上記第1の閾値と上記第2の閾値で示される温度範囲より狭い温度範囲を示す第3の閾値と第4の閾値を設定し、以降、上記第3の閾値と上記第4の閾値を用いて、温度分布画像内での肌温度画像部の検出を行う請求項2に記載の入力装置。
【請求項10】
上記入力認識部は、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の画像位置に基づいて検出対象範囲を設定し、以降、上記検出対象範囲内で、検出対象画像の検出を行う請求項1に記載の入力装置。
【請求項11】
上記入力認識部は、上記差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う請求項3に記載の入力装置。
【請求項12】
上記入力認識部は、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う請求項1に記載の入力装置。
【請求項13】
上記検出条件は、選定した検出対象画像に応じた温度範囲の条件、又は、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲の条件である請求項12に記載の入力装置。
【請求項14】
上記入力認識部は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、上記一の検出対象画像として選定する請求項12に記載の入力装置。
【請求項15】
上記入力認識部が認識した操作入力に応じて、制御を行う機器制御部をさらに備えた請求項1に記載の入力装置。
【請求項16】
赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、
取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、
該検出対象画像の動き状態から操作入力を認識する入力認識方法。
【請求項1】
赤外線カメラと、
所定の時間間隔で上記赤外線カメラで撮像された温度分布画像を順次取り込む画像取込部と、
上記画像取込部により取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、該検出対象画像の動き状態から操作入力を認識する入力認識部と、
を備えた入力装置。
【請求項2】
上記入力認識部は、人の肌の温度範囲として設定した第1の閾値と第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行う請求項1に記載の入力装置。
【請求項3】
上記入力認識部は、温度分布画像の各画素の温度値が、上記第1の閾値と第2の閾値による温度範囲に含まれるか否かにより2値化を行って上記肌温度画像部が示される2値化画像を生成し、
さらに、複数の温度分布画像のそれぞれの2値化画像の差分を取ることで、動きが観測される肌温度画像部としての検出対象画像を示す差分画像を生成し、
上記差分画像を用いて、検出対象画像の動き状態を判定する請求項2に記載の入力装置。
【請求項4】
上記入力認識部は、上記差分画像について、動きが微小と判定される画像部分を消去した後に示される肌温度画像部を、検出対象画像とする請求項3に記載の入力装置。
【請求項5】
上記入力認識部は、上記差分画像から検出対象画像の特徴点の位置を求め、特徴点の位置の変化から、検出対象画像の動き状態を判定する請求項3に記載の入力装置。
【請求項6】
上記所定の時間間隔は、上記赤外線カメラの撮像動作の1フレーム間隔である請求項1に記載の入力装置。
【請求項7】
上記入力認識部は、所定以上の面積を持つ上記肌温度画像部から、検出対象画像を選定する請求項1に記載の入力装置。
【請求項8】
上記入力認識部は、検出対象画像の動き状態を示す位置の変化が所定回数以上連続して所定量以上であることを条件として、操作入力の認識処理を行う請求項1に記載の入力装置。
【請求項9】
上記入力認識部は、人の肌の温度範囲として設定した上記第1の閾値と上記第2の閾値に対して、温度分布画像の各画素の温度値を比較することで、温度分布画像内での上記肌温度画像部の検出を行った後、検出対象画像とされた肌温度画像部の温度値に基づいて、上記第1の閾値と上記第2の閾値で示される温度範囲より狭い温度範囲を示す第3の閾値と第4の閾値を設定し、以降、上記第3の閾値と上記第4の閾値を用いて、温度分布画像内での肌温度画像部の検出を行う請求項2に記載の入力装置。
【請求項10】
上記入力認識部は、検出対象画像の特定の動きを検出した場合、該特定の動きの際の検出対象画像の画像位置に基づいて検出対象範囲を設定し、以降、上記検出対象範囲内で、検出対象画像の検出を行う請求項1に記載の入力装置。
【請求項11】
上記入力認識部は、上記差分画像で動きが観測される肌温度画像部が所定の時間内に検出できない場合に、メッセージ出力を実行させる処理を行う請求項3に記載の入力装置。
【請求項12】
上記入力認識部は、検出対象画像が複数検出された場合、一の検出対象画像を選定し、該選定した検出対象画像に合致する検出条件を設定して、以降の検出対象画像の検出を行う請求項1に記載の入力装置。
【請求項13】
上記検出条件は、選定した検出対象画像に応じた温度範囲の条件、又は、選定した検出対象画像の画像位置に基づいて設定した検出対象範囲の条件である請求項12に記載の入力装置。
【請求項14】
上記入力認識部は、検出対象画像が複数検出された場合、特定の動きが検出された検出対象画像を、上記一の検出対象画像として選定する請求項12に記載の入力装置。
【請求項15】
上記入力認識部が認識した操作入力に応じて、制御を行う機器制御部をさらに備えた請求項1に記載の入力装置。
【請求項16】
赤外線カメラによって所定の時間間隔で撮像された温度分布画像を順次取り込み、
取り込まれた複数の温度分布画像のそれぞれについて、人の肌の温度に相当する肌温度画像部を検出し、さらに検出した肌温度画像部のうちで動きが観測される肌温度画像部を検出対象画像とし、
該検出対象画像の動き状態から操作入力を認識する入力認識方法。
【図1】
【図2】
【図3】
【図4】
【図6】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図5】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図6】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図5】
【図7】
【図8】
【図9】
【公開番号】特開2013−80413(P2013−80413A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−220771(P2011−220771)
【出願日】平成23年10月5日(2011.10.5)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願日】平成23年10月5日(2011.10.5)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]