(57)【特許請求の範囲】
【請求項１】
撮影手段と、
前記撮影手段によって撮影された画像全体を複数のブロックに分割し、前記各ブロック毎に動き量情報を検出する動き検出手段と、
前記動き検出手段で検出された動き量情報に基づき、前記複数のブロックから動きのあるブロックを抽出する動き部分抽出手段と、
少なくとも前記抽出されたブロックを含む領域に、操作コマンドを認識するためのウインドウを設定する被写体ウインドウ設定手段と、
前記ウインドウ内における複数の特定部分について、各特定部分ごとに画素データの輝度レベル変化を検出し、前記各特定部分ごとに検出した前記輝度レベル変化の頻度に基づき、前記ウインドウ内の被写体の向きと形状とを検出する画像認識手段と、
前記画像認識手段で検出された前記ウインドウ内の被写体の向きと形状とに基づき、複数の操作対象機器から一つの操作対象機器を特定する動作と、その特定した一つの操作対象機器に対する操作コマンドを決定する動作とを行い、前記特定した一つの操作対象機器に対応したインターフェース部を介して前記特定した一つの操作対象機器に前記決定した操作コマンドを送信する操作機器インターフェース手段と、
を備えることを特徴とする機器制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機器を遠隔制御するための装置に関し、特にカメラで検出した画像情報、動き情報、又は双方の情報を用いて機器の制御を行う機器制御装置に関する。
【０００２】
【従来の技術】
従来、テレビやビデオ等に用いられている赤外線を利用したリモコンがある。また、ＣＣＤカメラ等を使用して、画像の動きを認識し、動きが検出された場合に、カメラに接続しているＶＴＲの録画を開始させる監視システム等の装置が存在している。
【０００３】
特開平５−３０７７９３号公報に開示された遠隔制御装置は、図１６に示すように、使用者とのインターフェースとなり、表示内容を変更可能な表示・入力部１００と、マイコン（演算処理部）２００と、ＶＴＲ等の制御対象部４００と、メモリ等の記憶手段３００とで構成されている。そして、表示・入力部１００によって指示された命令を、演算処理部２００によって演算処理し、命令を解釈した後実行し、メモリ３００に新しい表示・入力部１００のための情報を保存して、その情報により表示・入力部１００を使用状態によって可変できるようにしている。これは、制御対象部４００を使用している間に、使用者の使用状態（癖や特徴や傾向など）を学習し、より使いやすいインターフェースに自動的に設定する目的で発明されたものである。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記した従来の機器制御装置では、入力装置としてユーザーとのインターフェース用のボタンやタッチパネルが必要であった。このような入力装置では、ユーザーが入力装置の前まで移動して操作する必要があった。また、ユーザーが入力装置の前まで移動せずに操作するために赤外線などの制御信号を送信するリモートコントロール（遠隔制御）装置が必要であったが、リモートコントロール装置がユーザーの近くに無かったり、一時的に紛失することで操作上の不便を感じることが多々あった。
【０００５】
更に、監視システムにおいて、カメラによって撮影した画像の動きを検出してＶＴＲの録画を開始するように制御する方法があるが、これはあくまでも画像の動きの有無を検出して簡単な制御を行うものであり、ユーザーインターフェースとしての役割を果たしているとは言い難いものであった。
【０００６】
【課題を解決するための手段】
上述した課題を解決するために、
撮影手段と、
前記撮影手段によって撮影された画像全体を複数のブロックに分割し、前記各ブロック毎に動き量情報を検出する動き検出手段と、
前記動き検出手段で検出された動き量情報に基づき、前記複数のブロックから動きのあるブロックを抽出する動き部分抽出手段と、
少なくとも前記抽出されたブロックを含む領域に、操作コマンドを認識するためのウインドウを設定する被写体ウインドウ設定手段と、
前記ウインドウ内における複数の特定部分について、各特定部分ごとに画素データの輝度レベル変化を検出し、前記各特定部分ごとに検出した前記輝度レベル変化の頻度に基づき、前記ウインドウ内の被写体の向きと形状とを検出する画像認識手段と、
前記画像認識手段で検出された前記ウインドウ内の被写体の向きと形状とに基づき、複数の操作対象機器から一つの操作対象機器を特定する動作と、その特定した一つの操作対象機器に対する操作コマンドを決定する動作とを行い、前記特定した一つの操作対象機器に対応したインターフェース部を介して前記特定した一つの操作対象機器に前記決定した操作コマンドを送信する操作機器インターフェース手段と、
を備えることを特徴とする機器制御装置、
を提供する。
【００１１】
このような構成によって、ユーザーは入力装置の前まで移動したり、赤外線などで制御信号を送信するリモートコントロール装置を使用しなくても、体の一部、例えば手の動きによって機器を制御することが可能となる。
【００１３】
【発明の実施の形態】
以下、本発明に係る機器制御装置について、その概念を説明する。本発明では、まず、カメラによって撮影した画像の動き検出を行い、動きのある部分にウインドウをかける。次に、ウインドウ内の画像を認識し、その認識結果によって機器を操作する。
【００１４】
この場合、カメラは制御機器として設置されており、常にユーザーの動きを捉えている。ユーザーの動きとしてはユーザーの手の動きを認識するようにしている。なお、カメラはＣＣＤカメラを使用すれば良く、ＮＴＳＣの画像のように、２９．９７Ｈｚのフレームレートで作動しているのが好ましいが、１０Ｈｚ程度でも構わない。
【００１５】
撮影された画像データはＡＤ変換され、デジタル化されたフレーム画像データは連続する２フレームをフレームメモリに取り込む。そして、この２つのフレームの画像データに対して動き検出を行う。動き検出は図１に示すように、時間ｔで連続する２つのフレームの中で対象画像である花ａが右上に向かって動いていたとすると、右側のカレント画像の花ａのあるブロックｂ′が１フレーム前の画像においてどこに存在していたかを検出する動作のことであり、この場合は１フレーム前のにはｂの位置にあった。
【００１６】
実際には、カレント画像を１６画素×１６画素程度のブロックに分けて、その一つ一つのブロックが一つ前の画像でどのブロックに一番似ているかを、差分を取ってパターンマッチングをし、その差分データの総和や、２乗和の最も小さい場所（アドレス）を求める。アドレスは水平方向画素と垂直方向画素の数で示すことが多いので、これを動きベクトルと呼ぶこともある。
【００１７】
パターンマッチングの検索エリアは、サーチレンジといって、２９．９７Ｈｚのフレームレートで水平方向解像度が７２０画素の場合、１フレーム離れたとき、±１５画素程度で行う。この技術はＭＰＥＧなどの画像データ圧縮技術にて既に実施されている技術である。
【００１８】
例えば、図２に示すようにカメラによって撮影されているエリア内で手ｃを左右に振ったと仮定する。すると、手ｃを振った部分のブロックにのみ動きベクトルは有効な大きさを示す。即ち、図３に示す有効ブロックｄのみ動きベクトルは有効な大きさを示し、それ以外のブロックは略静止しているため有効な動きベクトルの値を持たない。実際のベクトルの水平方向（Ｘ画素）、垂直方向（Ｙ画素）のデータに対して、それぞれの２乗和の平方根を、そのベクトルの大きさとし、その大きさが８以上の場合に有効であるとする。そこで、動いた部分に相当する画像に対して長方形のウインドウを設定する。
【００１９】
このウインドウは図４に示すように、有効な動きベクトル値を有するブロックが上下、左右全て含まれるエリアを長方形に設定する。そして、動きベクトルが８以上の大きさを持つことを検出し、ウインドウ内の画像を取り込む。これによって、手ｃを所定の時間振った後、指を１本立てて上に向けた状態の、ほぼ手首より上の部分だけの画像が図５のように取り込まれる。
【００２０】
次に、図６に示すように取り込んだ画像の認識を行う。ここでは、手ｃの指が何本立っているか、また、その方向が上を向いているか、下を向いているかを認識する。図６の右側の画像は取り込んだ手ｃの画像を拡大した画像である。この拡大画像において、上から約１／４の位置にある水平方向の線Ａと、下から約１／４の位置にある水平方向の線Ｂとの輝度信号のレベル変化を検出する。
【００２１】
図７は線Ａと線Ｂにおける輝度信号のレベル変化の検出例を示している。これは、背景の輝度レベルの方が手ｃの部分の輝度レベルよりも大きい（明るい）場合の例である。図７のＡは輝度の変化が頻繁に起きるため、手ｃの指が１本出されていると考えられ、図７のＢは輝度の変化がウインドウ幅のうちほとんど起きないので手のひらに相当していると判別できる。これによって手ｃが上を向いているか、下を向いているかを認識する。また、Ｂの手のひらに相当する部分の中にＡの指に相当する部分がいくつ存在するかで、画像内に何本の指が立っているかを認識することが可能である。
【００２２】
この方式で、立っている指の数、指が指す方向（上下）を認識できるので、全部で１０種類の制御を実行することができる。例えば、このうち、手ｃを数回振ったあとで、
（１）１本の指を上にする・・・ＴＶのスイッチＯＮ
（２）１本の指を下にする・・・ＴＶのスイッチＯＦＦ
（３）２本の指を上にする・・・ＴＶのチャンネルをインクリメント（＋）する
（４）２本の指を下にする・・・ＴＶにチャンネルをデクリメント（−）する
などのコマンドを実行することが可能である。
【００２３】
次に、このような画像認識の精度を向上するための方法を説明する。手ｃを振ったときにその背景にある画像と手ｃの画像とを区別するために、カメラと被写体である振られた手ｃとの距離を認識し、その距離に相当する画像のみを検出する。そのためにはカメラを２台使用し、その２台のカメラに映る画像の視差を用いることで、画像の距離を検出することができる。その原理を以下に説明する。
【００２４】
ステレオ画像を用いた３次元画像入力装置は、例えば、「グラフィックスとビジョン」（オーム社刊：Ｐ２８）に記載されている。これは図８に示すように、光軸間に一定の距離Ｌを置いて配置された左右の画像の各画素の対応を求め、その視差からその画像に対応する測定点までの距離を求める方法が採用されている。ここで、ステレオ画像を用いた３次元画像入力装置では、通常、２台のカメラの光軸が同一平面上に含まれるように配置するので、対応点探索はエピポーラ線である同じ走査線上で行えば良い（エピポーラ拘束条件）。すなわち、カメラの光軸間の距離をＬ、焦点距離をｆとすると、対象物上の点Ｐ（ｘ、ｙ、ｚ）が左右の画面上の点Ｐｌ（Ｘｌ，Ｙｌ）、Ｐｒ（Ｘｒ，Ｙｒ）にそれぞれ投影されたとき、距離ｚは
ｚ＝Ｌ×ｆ／（Ｘｌ−Ｘｒ）
で表される。ここで、Ｘｌ−Ｘｒは視差を表し、向かって左の画像を基準画像とした場合、点Ｐｌ（Ｘｌ，Ｙｌ）における視差ベクトルはＶｐ（Ｘｌ−Ｘｒ，Ｙｌ−Ｙｒ）と表される。
【００２５】
この方法によれば、画像の画素毎の距離を検出することが可能になるので、例えば図９に示すように、モニター用のＴＶ１にカメラ２が１台設置されており、前述した方法で手ｃを認識しようとした場合、その背景に家具３やカーテン４が存在していて、家具３やカーテン４の模様などで手ｃの指の検出が良好に行われないときでも、図１０に示すようにモニター用のＴＶ１にカメラ２ａ及びカメラ２ｂの２台のカメラが設置されている場合、２台のカメラ２ａ，２ｂによって撮影された画像の視差ベクトルを上記エピポーラ拘束条件を使用して演算し、手ｃのカメラ２ａ，２ｂからの距離を検出し、前述した動き検出と共に距離検出した部分の距離に存在する画像のみを抽出することが可能となる。
【００２６】
即ち、図１１に示すように、コマンドを送信するための被写体である手ｃと家具３とカーテン４が存在していた画像から、動き領域であって、動いた部分と同じ距離に存在する領域であるという２つの条件を満たしている部分を抽出すると、図１２に示すように手ｃの部分のみが抽出できる。そして、背景の距離が大きい領域には例えば、黒や白などを埋め込むことによって、より手ｃの上下認識や指の本数認識を精度良く行うことが可能となる。
【００２７】
上述したような技術を用いて本発明に係る第１実施例の機器制御装置について図１３を使用して説明する。まず、カメラ２によって撮影された画像は動き検出器５に送信される。動き検出器５に送信された画像は所定のブロックに分割されて、フレーム毎に動き検出がなされる。動き検出されたブロック毎の動きベクトル情報は、動き部分抽出器６に送信される。次に、コマンド送信被写体ウインドウ設定部７では、動きのあるブロックとして検出されたブロックを含む長方形のウインドウ領域を設定し、そのウインドウ領域内に存在する画像を画像認識器９へ送信する。画像認識器９では前述したコマンドを送信するための被写体（手ｃ）の指の本数及び指の指す方向の上下を認識する。認識した情報は操作機器インターフェース８へ送られ、スイッチのＯＮ／ＯＦＦなどの予め設定した操作機器１０に対する制御信号に変換される。そして、この制御信号によって操作機器１０が制御される。
【００２８】
次に、図１０に示すように、２台のカメラを所定の間隔で設置した場合と対応して本発明に係る第２実施例の機器制御装置について図１４を使用して説明する。２台のカメラ２ａ，２ｂによって撮影された画像はそれぞれエピポーラ拘束視差ベクトル抽出器１１に送信される。エピポーラ拘束視差ベクトル抽出器１１では２つの画像の視差ベクトルをエピポーラ拘束条件を使用して演算し、距離算出器１２へ送信する。距離算出器１２では入力された視差ベクトルからコマンドを送信する被写体（手ｃ）の各カメラ面からの距離を検出し、画素毎の距離情報をコマンド送信被写体ウインドウ設定器７へ送信する。その一方で、カメラ２ｂによって撮影された画像は動き検出器５に送信される。動き検出器５に送信された画像は所定のブロックに分割されて、フレーム毎に動き検出される。そして、動き検出されたブロック毎の動きベクトル情報は動き部分抽出器６に送信され、ここで動きベクトルの絶対値を演算し８以上の値を持つブロックを抽出する。
【００２９】
抽出されたブロックのアドレスはコマンド送信被写体ウインドウ設定部７に送信される。コマンド送信被写体ウインドウ設定部７では、動き部分抽出器６から入力された動きブロックのアドレス情報と、距離算出器１２から入力された画素毎の距離情報を基に、動いている部分の距離と等しい画像部分を抽出し、動きのあるブロックとして検出されたブロックとを含む長方形のウインドウ領域を設定し、コマンドを送信する被写体以外の背景画像は白（画素レベル２５５）に設定し、そのウインドウ内に存在する画像を画像認識器９へ送信する。画像認識部９では前述したコマンドを送信する被写体である手ｃの立っている指の本数及び指の指す方向の上下を認識する。認識した指の本数情報や上下の情報は操作機器インターフェース８に送信されて、スイッチのＯＮ／ＯＦＦなどの予め設定した機器制御に対応した制御信号に変換される。そして、制御信号は操作機器１０へと送信され、操作機器１０が制御される。
【００３０】
次に、カメラを２台使用し、複数の機器を制御する場合として本発明に係る第３実施例の機器制御装置について、図１５を使用して説明する。
【００３１】
２台のカメラ２ａ，２ｂによって撮影された画像はそれぞれエピポーラ拘束視差ベクトル抽出器１１に送信される。エピポーラ拘束視差ベクトル抽出器１１では、２台のカメラ２ａ、２ｂによって撮影された２つの画像の視差ベクトルをエピポーラ拘束条件を使用して演算し、距離算出器１２に送信する。距離算出器１２では入力された視差ベクトルからコマンドを送信するための被写体である手ｃの各カメラ面からの距離を検出し、画素毎の距離情報をコマンド送信被写体ウインドウ設定器７に送信する。一方、カメラ２ｂによって撮影された画像は動き検出器５に送信される。動き検出器５に送信された画像は所定のブロックに分割されて、フレーム毎に動き検出される。動き検出されたブロック毎の動きベクトル情報は動き部分抽出器６に送信され、動き部分抽出器６では動きベクトルの絶対値を計算し、８以上の値を持つブロックを抽出するするようにしている。このように抽出されたブロックのアドレスはコマンド送信被写体ウインドウ設定器７に送信される。
【００３２】
コマンド送信被写体ウインドウ設定器７では、入力された動きブロックのアドレス情報と、画素毎の距離情報とを基にして、動いている部分の距離と等しい画像部分を抽出し、動きのあるブロックとして検出されたブロックを含む長方形のウインドウ領域を設定し、コマンド送信被写体以外の背景画像は白（画素レベル２５５）に設定し、そのウインドウ内に存在する画像を画像認識器９へ送信する。画像認識器９では、前述したコマンドを送信するための被写体である手ｃの立っている指の本数、指の指す方向の上下を認識する。そして、このような情報は操作機器判定器１３に送信され、操作機器を特定する。
【００３３】
例えば、手を数回振った後に、その位置で
（１）１本の指を上にする・・・操作機器ＡのスイッチをＯＮにする。
（２）１本の指を下にする・・・操作機器ＡのスイッチをＯＦＦにする。
（３）２本の指を上にする・・・操作機器ＢのスイッチをＯＮにする。
（４）２本の指を下にする・・・操作機器ＢのスイッチをＯＦＦにする。
（５）３本の指を上にする・・・操作機器ＣのスイッチをＯＮにする。
（６）３本の指を下にする・・・操作機器ＣのスイッチをＯＦＦにする。
（７）４本の指を上にする・・・操作機器ＤのスイッチをＯＮにする。
（８）４本の指を下にする・・・操作機器ＤのスイッチをＯＦＦにする。
というコマンドを割り当てていたとすると、立っている指の本数で操作機器を特定し、特定された操作機器では、指の上下（手ｃの方向）の情報が対象の機器に接続した操作機器インターフェース８ａ〜８ｄのいずれかに送信され、スイッチのＯＮ／ＯＦＦなど予め設定した機器制御に対応した制御信号に変換され、その信号は制御機器１０ａ〜１０ｄのいずれかに送信されて、各機器の制御が行われる。ここで、操作機器としては、ＴＶやＶＴＲ、エアコン、証明など、リモコンが使用できるものであれば適応可能である。
【００３４】
なお、本実施例では、コマンドを送信するための被写体として、人間の体の一部である手を用いて説明したが、画像認識の技術の進歩によって、顔や目の動きなどを用いても良い。また、人間の体の一部ではなく、所定のパターンの印刷物やバーコードなどを使用しても良い。
【００３５】
以上、詳述したように、本発明に係る機器制御装置によれば、ユーザーが入力装置の前に移動したり、別途リモートコントロール装置を使用しなくても機器を制御することが可能となる。
【図面の簡単な説明】
【図１】  動き検出を説明するための図である。
【図２】  動き部分の抽出を説明するための図である。
【図３】  動き部分の抽出を説明するための図である。
【図４】  コマンド送信被写体のウインドウの設定を説明するための図である。
【図５】  コマンド送信被写体のウインドウの設定を説明するための図である。
【図６】  コマンド送信被写体の画像認識方法を説明するための図である。
【図７】  コマンド送信被写体の画像認識方法を説明するための図である。
【図８】  ３次元入力とエピポーラ拘束条件を説明するための図である。
【図９】  カメラが２台ある場合のカメラ設定位置の説明図である。
【図１０】  カメラが２台ある場合のカメラ設定位置の説明図である。
【図１１】  カメラが２台ある場合のウインドウ設定を説明するための図である。
【図１２】  カメラが２台ある場合のウインドウ設定を説明するための図である。
【図１３】  本発明に係る第１実施例の機器制御装置の一実施例を示すブロック図である。
【図１４】  本発明に係る第２実施例の機器制御装置の一実施例を示すブロック図である。
【図１５】  本発明に係る第３実施例の機器制御装置の一実施例を示すブロック図である。
【図１６】  従来の機器制御装置を示すブロック図である。
【符号の説明】
１    ＴＶ
２，２ａ，２ｂ    カメラ
３    家具
４    カーテン
５    動き検出器
６    動き部分抽出器
７    コマンド送信被写体ウインドウ設定部
８    操作機器インターフェース
９    画像認識器
１０    操作機器
１１    エピポーラ拘束視差ベクトル抽出器
１２    距離算出器
１３    操作機器判別器
【図１】
0004010708.tif 000002
【図２】
0004010708.tif 000003
【図３】
0004010708.tif 000004
【図４】
0004010708.tif 000005
【図５】
0004010708.tif 000006
【図６】
0004010708.tif 000007
【図７】
0004010708.tif 000008
【図８】
0004010708.tif 000009
【図９】
0004010708.tif 000010
【図１０】
0004010708.tif 000011
【図１１】
0004010708.tif 000012
【図１２】
0004010708.tif 000013
【図１３】
0004010708.tif 000014
【図１４】
0004010708.tif 000015
【図１５】
0004010708.tif 000016
【図１６】
0004010708.tif 000017